维基数据查询服务跨 属性

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.
}

see on query.wikidata.org

您可以使用 属性 路径 (*) 语法。

在这种情况下 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://query.wikidata.org/#SELECT%20%3Fentity%20%3FentityLabel%20%28count%28%3Fmid%29%20as%20%3Fdepth%29%20WHERE%20%7B%0A%20%20wd%3AQ4421%20wdt%3AP279%2a%20%3Fmid.%0A%20%20%3Fmid%20wdt%3AP279%2a%20%3Fentity%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20.%0A%20%20%20%7D%0A%7D%20group%20by%20%3Fentity%20%3FentityLabel%0Aorder%20by%20%3Fdepth