是否可以保证 SPARQL 中的传递查询的结果按照它们被遍历的顺序返回?
所以,给定一些简单的数据:
<http://example.com/step0> ex:contains <http://example.com/step1>
<http://example.com/step1> ex:contains <http://example.com/step2>
<http://example.com/step2> ex:contains <http://example.com/step3>
(在实践中,这种关系可以重复很多次)
查询(使用 sparql 1.1):
SELECT ?parent
WHERE {
?parent ex:contains* <http://example.com/step3>
}
这样你总是会回来[step0,step1,step2]。在耶拿尝试这个时,我得到一致但随机排序的结果。
或者,如果我可以在传递步行中取回父母和孩子,这样我就可以在外面重新排序它会很好,但我不知道如何绑定?parent ex:contains* <http://example.com/step3>
和取回中间关系的对象而不编写一个非常慢的带有过滤的嵌套查询。