Я пытаюсь запросить вики-данные о численности населения всех административных единиц страны. Если я вручную найду провинцию Нидерландов, российскую область или район Франции, эта информация, по-видимому, будет доступна для большинства таких регионов страны.
Я создал следующий запрос:
SELECT ?land ?landLabel ?is_een ?is_eenLabel ?inwonertal WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?land wdt:P31 wd:Q56061.
OPTIONAL { ?land wdt:P17 ?land. }
OPTIONAL { ?land wdt:P31 ?is_een. }
OPTIONAL { ?land wdt:P1082 ?inwonertal. }
}
limit 10000
, где Q56061 - это «административно-территориальное образование», P17 (земля = страна), P31 (is_een = is_a), P1082 (inwonertal = население)
Этот запрос возвращает только 4271 результат. Почему в запросе отсутствует, например, https://www.wikidata.org/wiki/Q694 (провинция Южная Голландия)? Может быть, потому что Q694 является экземпляром Q134390 (провинция Нидерландов), который является подклассом Q56061 (административно-территориальная единица)?
Как должен выглядеть запрос, чтобы фильтровать не только для Q56061 (административная единица территории) но также для всех подклассов Q56061? Чтобы ограничить выходной поток, я бы предпочел фильтровать только те подклассы Q56061, которые на один географический уровень c ниже Q6256 (страна). Можно ли это сделать?