假设您有以下内容:
ex:book1 rdf:type ex:Publication .
ex:book2 rdf:type ex:Article .
Run Code Online (Sandbox Code Playgroud)
所以像SELECT?s {?s rdf:type ex:Publication}这样的Sparql查询只返回ex:book1
如果您添加事实(或数据集中的图形与事实),则说明:
ex:Article rdfs:subClassOf ex:Publication
Run Code Online (Sandbox Code Playgroud)
如果您的sparql引擎处理蕴含,它应该推断出ex:Article也是ex:Publication
所以选择s?{S RDF:?类型Ex:出版}将返回前两者:BOOK1和前:第二册
PS:有关更多信息,示例来自http://www.w3.org/TR/2009/WD-sparql11-entailment-20091022/
还有另一个关于 RDFS 蕴涵的答案,这很重要,也是 RDF 日常工作的重要组成部分,但 RDFS 蕴涵与 RDF 蕴涵不同。RDF蕴涵是整个RDF图之间的关系,并给出了一种说法“如果RDF图x成立,那么RDF图y也成立”。RDF 语义文档的简单蕴涵部分描述了基本蕴涵:
遵循传统术语,如果 I(E)=true,则 I 满足 E,并且如果满足 S 的每个成员的每个解释也满足 E,则一组 RDF 图(简单地)包含图 E。在后面的部分中,这些概念将被修改其他类别的解释,但在本节中,“蕴涵”应被解释为简单的蕴涵。
这假定理解图E的解释,表示为I(E)。解释将每个属性映射到一组对。例如,解释应该将属性映射到一组对 {[ x , y ] : x是y }的子类。对于满足图的解释,解释将属性映射到的对集必须至少包含在图中实际观察到的那些对。例如,如果图形包含rdfs:subClassOf
a likes b.
b likes c.
Run Code Online (Sandbox Code Playgroud)
那么当且仅当 I(likes) 包含 [a,b] 和 [b,c] 对时,解释才满足图。图 G1包含图 G2 当且仅当满足 G1 的每个解释也满足 G2。如果图中没有空白节点,这很简单。
RDF 语义文档中的链接部分列出了一些简单的结果:
当 RDF 图中存在空白节点时,事情会变得更加复杂,因为空白节点被解释为存在变量。例如,考虑只有一个三元组的图(其中_:z是一个空白节点):
a likes _:z
Run Code Online (Sandbox Code Playgroud)
由于_:z是存在变量,这意味着当且仅当存在个体x使得喜欢的解释包含一对 [a, x ] 时,解释满足图。如果图形有空白节点,则用实际项替换这些空白节点会生成该图形的实例。例如,
a likes b
Run Code Online (Sandbox Code Playgroud)
是图的一个实例
a likes _:z
Run Code Online (Sandbox Code Playgroud)
链接文件还提到了蕴涵关系
这很容易看出:如果一个解释满足a likes b,那么它对喜欢的解释必须包含 [a,b],所以肯定有一个x(即b)使得它包含 [a, x ],所以它也满足a likes _:z。
这些只是 RDF 图蕴涵的几个简单示例。我不知道这种类型的蕴涵实际上在 RDF 的日常工作中得到了很多使用。更常见的是 RDFS 蕴涵(在另一个答案中描述)、OWL 蕴涵和基于规则的推理。
| 归档时间: |
|
| 查看次数: |
1564 次 |
| 最近记录: |