[2020更新] 现在最好使用Wikidata查询服务来完成此操作,您可以通过一些SPARQL运行超特定的查询,例如:查找所有国家及其标签。请参阅Wikidata查询帮助。
获取整个图表可能有点繁琐,但您可以从实验性/非官方的Wikidata Query API中获取大部分数据。
我建议以下工作流程:
转到您想要处理的实体类型的实例,例如Estonia (Q191),并查找其instance of(P31)属性,您会发现:国家、主权国家、联合国成员、欧盟成员等。
使用Wikidata Query API claim命令输出每个具有所选P31属性的实体。让我们尝试一下country (Q6256):
http://wdq.wmflabs.org/api?q=claim[31:6256]
您可能需要更多的信息,因此您可以向Wikidata Official API请求实体数据:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q16&format=json&props=labels|claims&languages=en|fr
(这里是加拿大(Q16)的数据,以json格式呈现,仅包含英语和法语的声明和标签数据。请查看文档以根据您的需求调整参数)
您可以按以下方式一次查询多个实体,限制为50个:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q16|Q17|Q20|Q27|Q28|Q29|Q30|Q31|Q32|Q33|Q34|Q35|Q36|Q37|Q38|Q39|Q40|Q41|Q43|Q45|Q77|Q79|Q96|Q114&format=json&props=labels|claims&languages=en|fr
从每个国家的数据中,您可以查找注册为行政区划(P150)的实体,并在这些新实体上重复。
或者,您可以使用tree命令获取所有行政区划的树。例如,对于法国(Q142),可以使用http://wdq.wmflabs.org/api?q=tree[142][150]
。塔达,36994个项目!但是,由于您可能会从一个国家遇到不同类型的行政区划,因此更难进行细化。并且避免从浏览器执行此类查询,它可能会崩溃。
现在,您只需通过使用claim命令和适当的市镇(Q15284)实体的子类(P279)(all available here)来按国家细化此最后一个查询:对于法国,就是commune (Q484170),因此您的请求如下所示:
http://wdq.wmflabs.org/api?q=tree[142][150] AND claim[31:484170]
然后为所有国家重复:玩得开心!