我们可以定义如下属性链:
SubObjectPropertyOf(
ObjectPropertyChain( :hasParent :hasParent )
:hasGrandparent
)
使用推理器会相应地添加 hasGrandparent 关系。这个过程显然是推理
我可以像这样定义一个 SPARQL 查询,它使用相同的知识,因此(也进行推理)谁是祖父母:
SELECT ?person ?grandparent
WHERE {
?person x:hasParent ?x.
?x x:hasParent ?grandparent.
}
现在我会得到一个 ?person 和一个 ?grandparent 的列表,并将它们添加到 RDF 数据模型中,具有以下关系:
?person :hasGrandparent ?grandparent
这显然会产生与属性链和推理机相同的结果。
按照这种思路,我会说两者都是一种推理方式。在这两种情况下,我都会推断谁是祖父母。所以我想说这个令人兴奋的 SPARQL 查询可以被视为推理,因为我将隐性知识显化了。在两种情况下都这样做。那么说这是推理而不是推理是错误的吗?有什么理由吗?关于这个的任何来源?
人们经常争辩说 SPARQL 查询只是推理。