使用维基数据SPARQL服务,我想获得50个州的列表,并包括维基数据区的哥伦比亚特区.我想出了一个kludgy查询来做到这一点:
#-- 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}
直接包括华盛顿特区(Q61).但是,作为一个SPARQL新手,我无法弄清楚这样做的SPARQL语法.我很感激任何帮助重写这个查询直接拉入wd:Q61
.
您可以使用SPARQL 1.1 BIND
将固定资源添加到结果集,即
SELECT ?state ?stateLabel WHERE {
{?state wdt:P31 wd:Q35657}
UNION
{BIND(wd:Q61 as ?state)}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}