相关疑难解决方法(0)

SPARQL:两个节点之间有路径吗?

是否存在一种良好的SPARQL查询,如果两个给定节点连接在单个/多个SPARQL端点上,我们可以回答这个问题吗?

假设我想检查两个节点

<http://wiktionary.dbpedia.org/resource/dog>
Run Code Online (Sandbox Code Playgroud)

<http://dbpedia.org/resource/Dog>
Run Code Online (Sandbox Code Playgroud)

连接了.如果是的话,我会对这条路感兴趣.

通过猜测我已经知道它们是通过标签连接的,所以像这样的查询返回长度为3的路径:

SELECT * WHERE {
  <http://wiktionary.dbpedia.org/resource/dog> ?p1 ?n1. 
  # SERVICE <http://dbpedia.org/sparql> {
    <http://dbpedia.org/resource/Dog> ?p2 ?n1 .
  # }
}
Run Code Online (Sandbox Code Playgroud)

试试自己

现在如果我还没有想法并希望自动完成并且任意长度和方向怎么办?

我知道SPARQL 1.1的属性路径,但它们似乎只适用于已知属性(http://www.w3.org/TR/sparql11-query/#propertypaths):

变量不能用作路径本身的一部分,只能用作结尾.

此外,我想要允许任何路径,因此路径上的谓词可能会改变.

我当前(因为我觉得很荒谬)的方法是查询所有可能的长度k达到极限的路径n.

倾倒不是我的选择,因为它有数十亿的三元组...我想使用SPARQL!

sparql

3
推荐指数
1
解决办法
2710
查看次数

标签 统计

sparql ×1