问题描述
我正在尝试编写一个 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、房产 D、B 类、A 类
模型将来可能会改变,所以我希望查询能够处理叶节点和根节点之间的任何长度。感谢您的帮助或指点! (也很抱歉模型的简化表示,对本体来说非常新)
解决方法
我最终使用了 SPARQL: is there any path between two nodes? 中的通配符技巧来遍历节点。我刚刚编辑了通配符,使其只查看父节点。