维基数据查询服务跨 属性
Wikidata Query Service traverse property
我正在尝试获取给定维基数据项目的所有超义词列表。
例如,我想遍历 https://www.wikidata.org/wiki/Q4421.
元素的“子类”
https://query.wikidata.org 的 SPARQL 命令会是什么样子?
刚刚找到了一个完全可以解决我的问题的工具。
https://angryloki.github.io/wikidata-graph-builder/?property=P279&item=Q4421
您可以使用 SPARQL 递归语法 *
:
SELECT ?entity WHERE {
wd:Q4421 wdt:P279* ?entity.
}
您可以使用 属性 路径 (*) 语法。
在这种情况下 wdt:P279* 提及 0 次或更多次 wdt:P279 这是维基数据模型中等价物的子类。
我在此处添加了一些变化以包括深度,因此您可以订购它们
SELECT ?entity ?entityLabel (count(?mid) as ?depth) WHERE {
wd:Q4421 wdt:P279* ?mid.
?mid wdt:P279* ?entity
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
} group by ?entity ?entityLabel
order by ?depth
我正在尝试获取给定维基数据项目的所有超义词列表。 例如,我想遍历 https://www.wikidata.org/wiki/Q4421.
元素的“子类”https://query.wikidata.org 的 SPARQL 命令会是什么样子?
刚刚找到了一个完全可以解决我的问题的工具。 https://angryloki.github.io/wikidata-graph-builder/?property=P279&item=Q4421
您可以使用 SPARQL 递归语法 *
:
SELECT ?entity WHERE {
wd:Q4421 wdt:P279* ?entity.
}
您可以使用 属性 路径 (*) 语法。
在这种情况下 wdt:P279* 提及 0 次或更多次 wdt:P279 这是维基数据模型中等价物的子类。
我在此处添加了一些变化以包括深度,因此您可以订购它们
SELECT ?entity ?entityLabel (count(?mid) as ?depth) WHERE {
wd:Q4421 wdt:P279* ?mid.
?mid wdt:P279* ?entity
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
} group by ?entity ?entityLabel
order by ?depth