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