为什么这个SPARQL查询缺少这么多结果?

2024-04-25 17:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

(首先,我很抱歉,因为这是一个公然的交叉帖子。我想开放数据.SE会是这个地方,但它几乎没有任何意见,它似乎不是一个非常活跃的网站,所以我想我应该在这里尝试一下,因为它与编程有关。)

我想得到世界上主要城市的名单:它们的名称、人口和位置。我在Wikidata上找到了一个很好的查询,稍微调整了一下他们的一个内置查询示例:

SELECT DISTINCT ?cityLabel ?population ?gps WHERE {
  ?city (wdt:P31/wdt:P279*) wd:Q515.
  ?city wdt:P1082 ?population.
  ?city wdt:P625 ?gps.
  FILTER (?population >= 500000) .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY DESC(?population)

乍一看,结果似乎不错,但却少了很多重要城市。例如,旧金山(人口80万以上)和西雅图(人口65万以上)不在名单中,当时我特别要求所有人口超过50万的城市。

我的询问有什么问题吗?如果没有,那么Wikidata使用的数据肯定有问题。不管怎样,我怎样才能获得一个有效的数据集,并且有一个可以从Python脚本查询的API?(我已经让脚本为之工作;我只是没有返回有效的数据。)

^{pr2}$

Tags: 数据脚本city地方交叉帖子gps意见
1条回答
网友
1楼 · 发布于 2024-04-25 17:54:15

西雅图的人口根本不在这个数据库中。在

如果执行:

#Largest cities of the world
#defaultView:BubbleChart
SELECT * WHERE {
 wd:Q5083 wdt:P1082 ?population.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

你得不到任何结果。尽管实例wd:Q5083(settle)存在,但它没有谓词wdt:P1082(population)。在

相关问题 更多 >