SPARQL递归祖先查询

SPARQL递归祖先查询,sparql,Sparql,我被SPARQL中的递归查询困住了,我无法理解它。我想获得一个实例的所有祖先“a”(a hasParent b,b hasParent c,c hasParent d),因此如果实例是“a”,结果将是“b,c和d” 有没有想法如何构造链接部分,其中父对象有一个父对象,而另一个父对象有另一个父对象?(递归的深度未知)请参阅and运算符+ SELECT * { <a> <hasParent>+ ?ancestor } 选择* {+?祖先} 是否以任何方式定义了结果的顺序?是

我被SPARQL中的递归查询困住了,我无法理解它。我想获得一个实例的所有祖先“
a
”(
a hasParent b,b hasParent c,c hasParent d
),因此如果实例是“
a
”,结果将是“
b,c和d

有没有想法如何构造链接部分,其中父对象有一个父对象,而另一个父对象有另一个父对象?(递归的深度未知)

请参阅and运算符
+

SELECT *
{ <a> <hasParent>+ ?ancestor }
选择*
{+?祖先}

是否以任何方式定义了结果的顺序?是否保证始终精确
b、c、d
?未定义顺序。