owl:查询中的TransitiveProperty

问题描述 投票:1回答:1

我做了一棵家谱。我还定义了传递属性:childOf。现在我想制作SPARQL查询,它给了我一个家庭成员的所有后代。我该怎么做?谢谢

sparql owl semantic-web
1个回答
1
投票

如果您的三元组商店支持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/

© www.soinside.com 2019 - 2024. All rights reserved.