Wikidata SPARQL查询缺少预期结果的一部分

Wikidata SPARQL查询缺少预期结果的一部分,sparql,wikidata,Sparql,Wikidata,在Wikidatas的SPARQL端点上,我试图找到全球人口超过100000的所有城市。 我的查询得到了很多正确的结果。但当我查看一些特定的城市时,它们没有出现在列表中 我的问题是: SELECT DISTINCT ?cityLabel ?population ?coord ?countryLabel ?shortCountry ?city WHERE { ?city (wdt:P31/(wdt:P279*)) wd:Q515; wdt:P1082 ?population;

在Wikidatas的SPARQL端点上,我试图找到全球人口超过100000的所有城市。 我的查询得到了很多正确的结果。但当我查看一些特定的城市时,它们没有出现在列表中

我的问题是:

  SELECT DISTINCT ?cityLabel ?population ?coord ?countryLabel ?shortCountry ?city  WHERE {
  ?city (wdt:P31/(wdt:P279*)) wd:Q515;
    wdt:P1082 ?population;
    wdt:P625 ?coord.
  FILTER(?population > 100000 )
  ?city wdt:P17 ?country.
  ?country wdt:P298 ?shortCountry.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC (?shortCountry)
我在结果中查找了以下城市:

  • 柏林
  • 贝鲁特
  • 里昂
但是他们没有出现


好的,我为自己想出了一个办法:

我对我提到的城市的wikidata对象进行了更深入的挖掘,发现它们不是“城市”(Q515)的实例

柏林属于“首都”、“拥有数百万居民的城市”、“大都市”

里昂属于“法国公社”和“大城市”

贝鲁特属于例如“首都”和“大城市”

但没有一个被列为“城市”。这当然不是故意的,因为其他较大的城市也是“城市”的一个例子,例如巴黎

因此,总而言之:


检查筛选的所有类别,并检查预期结果以匹配它们。

,那么为什么
wdt:P279*
:)