在检查官方示例查询“大陆,国家,地区和首都”的结果时(在https://query.wikidata.org/上,为了您的方便而限于德国:link),我注意到德国联邦州的一些首都不见了。例如威斯巴登作为黑塞的首都。我注意到威斯巴登是big city
的一个例子,但不是city
(见https://www.wikidata.org/wiki/Q1721),与其他一些城市形成鲜明对比。通过将第17行改为city
,我还能够通过包括?city wdt:P31/wdt:P279? wd:Q515
子类的城市来缓解这个问题。
仍然失踪的四个城市之一是萨克森 - 安哈尔特的首府马格德堡。
诊断查询
SELECT ?cityLabel ?props
WHERE {
?city wdt:P31 ?props.
FILTER(?city = wd:Q1733 || ?city = wd:Q1726).
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
表明马格德堡甚至不是city
的一个例子,虽然它显然是根据其维基数据页面https://www.wikidata.org/wiki/Q1733。
我是维基数据和SPARQL的新手。但是,这对我来说似乎不对。我怎样才能获得德国联邦各州的所有首都?这种行为的原因是什么?
这些缺失的陈述不是truthy:
SELECT ?statement ?valueLabel ?rank ?best
WHERE {
wd:Q1733 p:P31 ?statement.
?statement ps:P31 ?value .
?statement wikibase:rank ?rank .
OPTIONAL { ?statement a ?best . }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
它们是正常级别的陈述,但有一个首选等级陈述。
Truthy语句表示对给定属性具有最佳非弃用等级的语句。也就是说,如果存在属性P2的首选语句,那么只有P2的首选语句才会被认为是真实的。否则,P2的所有正常等级语句都被认为是真实的。
更新