Wikidata: список всех физических объектов
Я пытаюсь получить название всех физических вещей (осязаемых понятий), которые знает викидата (объекты, места, страны и т. Д.), Или, другими словами, все неабстрактно.
Есть примеры, близкие к тому, что мне нужно, но только с глубиной один: все вещи, которые являются экземплярами телефона.
Я нашел этот пример, который выполняет поиск с большей глубиной, и изменил начальную точку для объекта:
#Children of Genghis Khan
#added before 2016-10
#defaultView:Graph
PREFIX gas: <http://www.bigdata.com/rdf/gas#>
SELECT ?item ?itemLabel ?pic ?linkTo
WHERE
{
SERVICE gas:service {
gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" ;
gas:in wd:Q35120 ;
gas:traversalDirection "Forward" ;
gas:out ?item ;
gas:out1 ?depth ;
gas:maxIterations 4 ;
gas:linkType wdt:279 .
}
OPTIONAL { ?item wdt:P40 ?linkTo }
OPTIONAL { ?item wdt:P18 ?pic }
SERVICE wikibase:label {bd:serviceParam wikibase:language "en" }
}
Я до сих пор не получил результатов.
1 ответ
Как упомянуто в комментарии, ваш вопрос слишком широкий, и вы получите слишком много ответов.
Вы ищете A, которые являются экземпляром подкласса B
поэтому запрос, на который вы указываете, является правильным
SELECT DISTINCT ?item
WHERE {
?item wdt:P31/wdt:P279* wd:Q35120
}
проблема в размере wd:Q35120 имеет много подклассов.
SELECT ?a ?aLabel WHERE { ?a wdt:P279 wd:Q35120.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
SELECT ?a ?aLabel WHERE { ?a wdt:P279/wdt:P279? wd:Q35120.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
SELECT ?a ?aLabel WHERE { ?a wdt:P279/wdt:P279?/wdt:P279? wd:Q35120.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
И так далее: вы увидите, что на четвертом уровне уже есть 40'000+, что огромно
Вы могли бы также огромный этот хороший инструмент, чтобы иметь более точное представление
https://tools.wmflabs.org/bambots/WikidataClasses.php?id=Q35120&lang=en