我刚刚阅读了 RDF(资源描述框架)的蕴涵概念。谁能告诉我两个 RDF 图的蕴涵示例并稍微解释一下。
谢谢
假设您有以下内容:
ex:book1 rdf:type ex:Publication .
ex:book2 rdf:type ex:Article .
所以像SELECT ?s { ?s rdf:type ex:Publication }这样的 Sparql 查询将只返回 ex:book1
如果您添加以下事实(或数据集中带有事实的图表):
ex:Article rdfs:subClassOf ex:Publication
如果您的 sparql 引擎处理蕴涵,它应该推断出 ex:Article 也是 ex:Publication
所以SELECT ?s { ?s rdf:type ex:Publication }将返回 ex:book1 和 ex:book2
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.
那么当且仅当 I(likes) 包含对 [a,b] 和 [b,c] 时,解释满足图。当且仅当满足 G1 的每个解释也满足 G2时,图 G1必然包含图 G2。如果图中没有空白节点,这很简单。
RDF Semantics 文档中的链接部分列出了一些简单的结果:
当 RDF 图中存在空白节点时,事情会变得更加复杂,因为空白节点被解释为存在变量。例如,考虑只有一个三元组的图(其中_:z
是一个空白节点):
a likes _:z
由于_:z
是一个存在变量,这意味着当且仅当存在一个个体x使得对喜欢的解释包含一对 [a, x ] 时,解释满足图。如果一个图有空白节点,那么用实际术语替换这些空白节点会生成该图的一个实例。例如,
a likes b
是图的一个实例
a likes _:z
链接的文档还提到了蕴涵关系
这很容易看出:如果一个解释满足a likes b
,那么它对likes的解释必然包含[a,b],所以肯定有一个x(即b)包含[a, x ],所以它也满足a likes _:z
。
这些只是 RDF 图蕴含的几个简单示例。我不知道这种类型的蕴涵实际上在 RDF 的日常工作中得到了很多使用。更常见的是 RDFS 蕴涵(在另一个答案中描述)、OWL 蕴涵和基于规则的推理。