这个 SPARQL 请求在 Wikidata 中查找所有名为“Berlin”的城市:
SELECT DISTINCT ?item ?itemLabel ?itemDescription WHERE {
?type (a | wdt:P279) wd:Q515. # Sub-type of city
?item wdt:P31 ?type.
?item rdfs:label "Berlin"@en.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
问题:它返回零结果。
同时,下面的请求正确地找到了Q64(德国的首都和城邦),但它也返回了很多其他称为柏林的东西,所以我想过滤城市(然后在未来阶段,我将按人口对这些城市进行排序,但这超出了这个问题的范围):
SELECT DISTINCT ?item ?itemLabel ?itemDescription WHERE {
?item rdfs:label "Berlin"@en.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
注意:我的获取 city 子类实例的代码(柏林是一个大城市,它是 city 的子类)似乎可以正常工作,如该查询的结果所示。