这是我不久前在Get location with Wikimedia API中提出的答案的全面而完整的版本。几天来,我碰巧浏览了所有的 Mediawiki API、GeoData API 和 Wikidata Query SPARQL 服务文档,在 Stackoverflow 和 Wikimedia 的几个讨论板上发布了我的问题,但没有找到令人满意的答案。
问题如下:我正在尝试使用 GeoData API 来执行上述任务 - 地理定位项目的国家和城市归属。我的任务的简短描述:获取使用坐标定义的特定位置周围的维基百科页面列表,获取一些页面属性(页面视图,主图像),然后获取国家和城市(人类可读 - 不是 ID)此页面项目属于。示例描述:假设我在圣家堂附近有一些地理坐标作为输入。我想在这个坐标周围 1 公里半径范围内收到 N 个维基百科页面的列表。我想接收每个页面的页面浏览量和主图像。我希望确定页面上描述的每个项目都位于西班牙巴塞罗那。
我发现 GeoData API 在根据项目的地理位置检索各种数据时非常干净、简单且用户友好。但是检索该项目的国家/城市从属关系存在困难。虽然理论上可以在单个请求中获取国家/地区(也并非总是如此,但仅在指定且不是以名称格式而是通过其字母指定)作为 GeoData API 本身的参数时,城市可能仅针对以下项目获取本身就是城市。另一方面,每个地理标记项目都存在此信息,例如可通过 Wikibase SPARQL 查询服务获得。但随后我需要对 WikiData 执行辅助请求,我希望通过各种方式避免这些请求。我设法尝试了所有方法:
从 Wikibase SPARQL 请求中调用 Wikimedia API(GeoData 扩展),但它似乎不起作用。
使用 Wikibase SPARQL 请求检索围绕特定坐标的 Wikidata 项目,但我无法从 Wikipedia 获取有关页面视图的信息。
使用“generator=geosearch”生成地理位置周围的页面列表,并将其传递给 Wikimedia API 的几个 props 和 pageprops 调用相关的 Wikidata 项目。但是我只获得了 Wikidata 属性的 ID,而我需要人类可读的标签。