我做了一棵家谱。我还定义了传递属性:childOf。现在我想制作SPARQL查询,它给了我一个家庭成员的所有后代。我该怎么做?谢谢
如果您的三元组商店支持OWL推理并且您已经定义了childOf
属性是可传递的(顺便说一下它不应该被称为descendantOf
!),那么它应该直接在所有相关节点之间推断childOf
属性。所以,它应该足够像这样查询(为简洁起见省略了前缀):
SELECT DISTINCT * {
?x :childOf ?y
}
但是,如果您的三元组存储不进行OWL推理,则可以通过使用SPARQL 1.1属性路径查询间接关系来实现相同的结果:
SELECT DISTINCT * {
?x :childOf+ ?y
}
注意childOf
之后的'+',这意味着谓词可能匹配1次或更多次。有关SPARQL 1.1属性路径的更多详细信息,请访问http://www.w3.org/TR/sparql11-property-paths/。