Sparql owl:查询中的TransitiveProperty

Sparql owl:查询中的TransitiveProperty,sparql,owl,semantic-web,Sparql,Owl,Semantic Web,我做了一个家谱。我还定义了传递属性:childOf。现在我想进行SPARQL查询,它将为我提供一个家族成员的所有后代。我怎么做?谢谢如果您的三联存储支持OWL推理,并且您已经将childOf属性定义为可传递的(顺便说一句,它不应该被称为genderantof),那么它应该直接在所有相关节点之间推断childOf属性。因此,这样查询就足够了(为简洁起见省略前缀): 但是,如果您的triple store不进行OWL推理,则可以通过使用SPARQL 1.1属性路径查询间接关系来获得相同的结果: SE

我做了一个家谱。我还定义了传递属性:childOf。现在我想进行SPARQL查询,它将为我提供一个家族成员的所有后代。我怎么做?谢谢

如果您的三联存储支持OWL推理,并且您已经将
childOf
属性定义为可传递的(顺便说一句,它不应该被称为
genderantof
),那么它应该直接在所有相关节点之间推断
childOf
属性。因此,这样查询就足够了(为简洁起见省略前缀):

但是,如果您的triple store不进行OWL推理,则可以通过使用SPARQL 1.1属性路径查询间接关系来获得相同的结果:

SELECT DISTINCT * {
  ?x :childOf+ ?y
}

注意的
子级后面的“+”,这意味着谓词可以匹配1次或多次。有关SPARQL 1.1属性路径的更多详细信息,请访问。

如果您的三联存储支持OWL推理,并且您已经将
childOf
属性定义为可传递的(顺便说一下,它不应该被称为
genderantof
),那么它应该直接在所有相关节点之间推断
childOf
属性。因此,这样查询就足够了(为简洁起见省略前缀):

但是,如果您的triple store不进行OWL推理,则可以通过使用SPARQL 1.1属性路径查询间接关系来获得相同的结果:

SELECT DISTINCT * {
  ?x :childOf+ ?y
}
注意
子级后面的“+”,这意味着谓词可以匹配1次或多次。有关SPARQL 1.1属性路径的更多详细信息,请访问