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提供的一些扩展,要么使用一些图形数据库。在任何情况下,您都必须提取出depthd
的输出子图,或者您只需要?