я пытаюсь получить список всех гиперонимов данного элемента Викиданных. Например, я хочу пройти по элементу «подкласс» для https://www.wikidata.org/wiki/Q4421
Как будет выглядеть команда SPARQL для https://query.wikidata.org?
я пытаюсь получить список всех гиперонимов данного элемента Викиданных. Например, я хочу пройти по элементу «подкласс» для https://www.wikidata.org/wiki/Q4421
Как будет выглядеть команда SPARQL для https://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://angryloki.github.io/wikidata-graph-builder/?property=P279&item=Q4421
вы можете использовать синтаксис рекурсии SPARQL *
:
SELECT ?entity WHERE {
wd:Q4421 wdt:P279* ?entity.
}