首页 > 解决方案 > 如何编写将连接节点从给定节点返回到根的 SPARQL 查询?

问题描述

我正在尝试编写一个 SPARQL 查询,给定一个节点,将连接的节点返回到根。

我试过使用属性路径:

SELECT ?subproperty WHERE { <leaf node URI> <http://www.w3.org/2000/01/rdf-schema#subPropertyOf>+ ?subproperty . }

但如果可能的话,我还想在同一个查询中遍历子类。基本上,我想找到从任何给定节点到根的所有父节点。

所以我的模型目前有:

A
类 B 类和 C 类(A 的子类)
属性 D(B 的属性)
属性 E(D 的子属性)

我想做一个查询,如果给定 E,则返回如下内容:

物业E,物业D,B级,A级

该模型将来可能会发生变化,因此我希望查询能够处理叶节点和根节点之间的任何长度。感谢您的任何帮助或指点!(也很抱歉模型的简化表示,对本体来说非常新)

标签: sparqljenaontology

解决方案


我最终使用了SPARQL 的通配符技巧:两个节点之间是否有任何路径?遍历节点。我刚刚编辑了通配符,以便它只查看父节点。


推荐阅读