这是“获取传递关系中的所有节点”的扩展
是否可以使用SPARQL获得两个传递节点之间的所有传递节点?我试图从此站点和answer-semanticweb上进行挖掘,但是,如果未按照Can JENA ARQ show property path details所建议的那样定义路径的长度,则目前看来是不可能的。但是我看到约书亚·泰勒(Joshua Taylor) 对第一个问题的回答充满了希望。
我提供了数据样本的图片以显示问题的严重程度:
[编辑]我想找到的路径:a
和:h
,应导致四个结果:
a -> b -> c -> d -> h
。
a -> b -> c -> e -> h
。
a -> f -> h
。
a -> g -> h
。
[编辑]使用约书亚·泰勒(Joshua Taylor)的解决方案,将每个节点分组为单个结果,这是到目前为止解决该问题的最接近的解决方案。
我认为这在纯SPARQL中是不可能的。解决相关问题的关键是group by
在结果的不同行中都有所不同。通常,我不知道您是否可以为每个路径都唯一,以便每个路径group by
获得一个结果行。
但是,在您的特定数据中(这是特定数据的外观,而不是一般的图形),有一个属性可以区分不同的路径:每个路径都包含该路径唯一的节点。也就是说,对于每个节点d
,e
,f
,和g
,恰好有包含节点的一个路径。这意味着,对于这个特殊的例子,你可能能够做到这一点,如果你能找到一种方法来确定在查询中唯一的节点。我不相信这是可能的两种,不过,因为它相当于问同一个问题:“之间有多少路径是存在?start
和x
(这里x
是一个d
,e
,f
,和g
在这种情况下)?”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句