Используя Wikidata SPARQL service, я хотел бы получить список из 50 штатов и включить округ Колумбия из Wikidata. Я пришел с kludgy query to do so:С SPARQL, как SELECT для узла по идентификатору, в частности, в wikidata?
#-- wdt:P31 = instance of; wd:Q35657 = list of states
SELECT ?state ?stateLabel
WHERE {
{?state wdt:P31 wd:Q35657} UNION
{?state wdt:P3403 wd:Q3551781} . #-- coextensive with District of Columbia
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
мой запрос работает, но как извлечь DC в результаты некрасиво. (Вполне возможно, что будущие изменения данных в викиданные сломается этот запрос.) То, что я хотел бы быть в состоянии сказать что-то вроде
UNION {?state == wd:Q61}
непосредственно включают Washington, D.C. (Q61). Однако, как новичок SPARQL, я не могу понять синтаксис SPARQL для этого. Я был бы признателен за любую помощь, чтобы переписать этот запрос, чтобы напрямую забрать wd:Q61
.
Вы можете использовать SPARQL 1.1 BIND, то есть '{? State wdt: P31 wd: Q35657} UNION {BIND (wd: Q61 as? State)}', чтобы добавить фиксированные ресурсы в набор результатов. – AKSW