如何编写将连接节点从给定节点返回到根的 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 类

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

解决方法

我最终使用了 SPARQL: is there any path between two nodes? 中的通配符技巧来遍历节点。我刚刚编辑了通配符,使其只查看父节点。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...