首页 > 解决方案 > 真实用例/示例,显示需要查询数据集中的谓词

问题描述

我想询问您对现实世界用例或示例的见解,说明为什么我们需要在数据集中查询谓词而不在查询中指定其他元素(例如,subjet 的值、object 的值)。目的是证明查询接口应该在基于图形的数据库上原生支持这种查询模式。

我的一个例子是在一个智能城市场景中,我们想要查询一个城市中被设备监控的所有区域。区域可以是街道、建筑物、公园等,而设备可以是网络摄像头、嗅探器等。因此查询可以形式化为

SELECT  ?s ?o
WHERE
   {  ?s ont:monitoredBy ?o
} LIMIT 50

您还有其他示例来展示此类查询的实际用途吗?目标是收集几个有代表性的例子,并说服管理层中根本不是数据管理专家的人。非常感谢您的反馈。

标签: nosqlcyphersparqlgraph-databasesquery-by-example

解决方案


当数据库提供一组特定的结构时,通常它应该提供查询所有这些结构的功能。对于 RDF 数据库,即主语/宾语/谓语。在 neo4j 的情况下,这是标签、属性和关系。

不需要用例来证明查询数据库方面的有用性。如果无法查询这些方面,您应该质疑数据库功能本身的有用性。(为什么将一些东西放入不可查询的数据模型中?)

但是,从用例的角度来看,有人为您生成的任何示例都必须绑定到特定的域和特定的数据模型。同时,您可以为相同的数据选择许多不同的数据模型。这就是为什么一些在您的问题下发表评论的人想知道为什么这里需要一个用例。

最后——您的示例与 RDF 相关联。询问一个人为什么要查询谓词有点好奇,因为一个三元组的谓词(比如 URI)可以是另一个三元组的主语。因此,对于三元组而言,事物通常不会只扮演一个角色,它们也可能扮演其他角色。


推荐阅读