我几乎在这个问题expresed一样的要求: 获取所有节点的传递关系
我使用的门生3.4.8。 这是一个猫头鹰精简版项目。 我有一个传递属性“包含”,其被定义为类型节点节点的一个对象的属性有类型A,B和C的后代
我有一个相互链接,通过包含这样的个人财产:
甲含有B含有C
当我运行以下SPARQL查询:
SELECT ?A ?B
WHERE
{
?A :contains ?B
}
我得到:
A1 B1
B1 C1
由于包含的传递性质,我期望得到
A1 C1
太。 我在做什么错在这里? 我已链接到的问题包括在耶拿的答案,它会有所作为做到这一点在耶拿模式?
好,
进一步搜索使我这个网页: http://opentox.org/data/documents/development/RDF%20files/JavaOnly/query-reasoning-with-jena-and-sparql
从这个页面(可能)以下报价解释的背后,我看到的行为的原因:
“对于我们而言SPARQL查询可以直接通过门徒或利用专用的耶拿库方法的Java应用程序内的SPARQL查询面板执行。这两种方法都能够处理涉及明确的对象和产权关系查询,但耶拿图书馆有优势用推理的,因此查询中使用耶拿库方法可以返回结果采取帐户也传递性和推断关系执行“。
SPARQL是一个RDF查询语言,所以不是所有的SPARQL引擎应该实现OWL蕴涵(即评估查询使用OWL语义)。 在进一步的细节http://www.w3.org/TR/sparql11-entailment/
不知道哪一个实现实际使用的Protege引擎盖下...