如何在两个资源之间找到路径?

时间:2017-03-21 09:07:14

标签: sparql stardog

我们说我有一个这样的图表:

:a :isConnectedTo :b
:b :isConnectedTo :c
:c :isConnectedTo :d

如果我在Stardog v4.1.3中运行以下查询,则返回true

ask {:a :isConnectedTo* :d}

这很棒,但我想知道这两种资源之间的路径。请注意,在我的实际情况中,可能存在多条路径,但我只需要其中一条,不一定是最短路径。

有没有办法用sparql实现这个目的?

1 个答案:

答案 0 :(得分:0)

我认为这可能特别适合您的情况。 让我知道你是否成功。

SELECT ?x ?y ?z WHERE {
    :a :isConnectedTo* ?x .
    ?x ?y ?z .
    FILTER(?y = :isConnectedTo)
    ?z :isConnectedTo* :d .
}