SPARQL:找出链接使用的属性

SPARQL:找出链接使用的属性,sparql,wikidata,Sparql,Wikidata,因此,我想扩展以下查询: SELECT ?item ?itemLabel ?p ?superItem ?superItemLabel WHERE { wd:Q146 (wdt:P279 | wdt:P31 | wdt:P361 )+ ?item. ?item ( wdt:P279 | wdt:P31 | wdt:P361) ?superItem. SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }

因此,我想扩展以下查询:

SELECT ?item ?itemLabel ?p ?superItem ?superItemLabel
WHERE { 
  wd:Q146 (wdt:P279 | wdt:P31 | wdt:P361 )+ ?item.
  ?item   ( wdt:P279 | wdt:P31 | wdt:P361) ?superItem.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
如果在中运行,可以看到一个空列。在那里,我想有一个特定的链接负责的财产。所以要么
wdt:P279
要么
wdt:P31
要么
wdt:P361

这有可能吗?如果是,怎么做

致意
Max

可以打印属性与关键字
值一起使用的三元组

PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 

SELECT ?item ?itemLabel ?p ?superItem ?superItemLabel
WHERE { 
  wd:Q146 (wdt:P279 | wdt:P31 | wdt:P361 )+ ?item.

  VALUES ?p { wdt:P279  wdt:P31  wdt:P361 }
  ?item  ?p ?superItem.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 50
前缀bd: 前缀wd: 前缀wdt: 前缀wikibase: 选择?项目?项目标签?p?上级项目?上级项目标签 何处{ wd:Q146(wdt:P279 | wdt:P31 | wdt:P361)+项目。 值?p{wdt:P279 wdt:P31 wdt:P361} ?项目?p?上级。 服务wikibase:标签{bd:serviceParam wikibase:语言“en”。} } 限制50
演示:


Doc:

?谢谢Stanislav,但据我所知,我找不到像
Q146--P31--a--P279--b--P279--end
这样的连接。如果您需要输出路径,我建议通过
construct
提取一个子图,然后将三元组加载到Stardog,然后使用Stardog查询。正如@StanislavKralin已经说过的那样,使用标准SPARQL无法找到任意路径。要么使用Stardog triple store提供的一些扩展,要么使用一些图形数据库。在任何情况下,您都必须提取出depth
d
的输出子图,或者您只需要?