在SPARQL中构造具有未知长度propertyPath的子图

在SPARQL中构造具有未知长度propertyPath的子图,sparql,wikidata,Sparql,Wikidata,我试图从一个大的数据集(即Wikidata,通过它们的数据库)中提取一个子图。我已经找到了我感兴趣的节点对(使用某个属性),现在我想构造一个新的图,该图将包含这些对,包括一个属性链和节点链,将它们连接在一起(子类链) 所以我有点像: CONSTRUCT { #todo } WHERE { ?s1 ex:p1 ?o1 . ?s2 ex:p2 ?o2 . #OPTIONAL {?s1 rdfs:subClassOf* ?s2.} #something-like }

我试图从一个大的数据集(即Wikidata,通过它们的数据库)中提取一个子图。我已经找到了我感兴趣的节点对(使用某个属性),现在我想
构造一个新的图,该图将包含这些对,包括一个属性链和节点链,将它们连接在一起(子类链)

所以我有点像:

CONSTRUCT { #todo }
WHERE {
        ?s1 ex:p1 ?o1 .
        ?s2 ex:p2 ?o2 .
#OPTIONAL {?s1 rdfs:subClassOf* ?s2.} #something-like
}
虽然,我的实际查询有点复杂,因为我也从同一属性中提取不同的信息(基于其字符串值),但这不会影响问题

现在,我想将
rdfs:subassof
propertyPaths
复制到新的图形中,它连接这些对。所以我想说--


--进入
构造{}
部分,但是,当然,语法是不允许的。

如果您还需要中间节点,那么这不起作用。即使使用
?开始:p+?中间?mid:p*?end.
您将丢失对的信息。顺便说一下,该属性名为rdfs
:subassof
@AKSW谢谢您的预期答案…:-/您是对的,我更正了原始问题中的Subassof属性,谢谢。@jmac,您可能可以使用
?start:p*?mid1?mid1:p?mid2?mid2:p*?end.
。另外,Wikidata上使用了
wdt:P279
,而不是
rdfs:subassof
?s1 rdfs:subClassOf* ?s2 .