从Wikipedia API

时间:2016-07-29 00:36:58

标签: sparql wikipedia dbpedia wikipedia-api

我想使用他们的API找到维基百科数据库中的所有人。到目前为止,我对此任务的处理方法是使用查询来获取属于某个类别的所有人,例如:

https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&list=categorymembers&cmlimit=100&cmtitle=Category:French_revolutionaries

这种方法要求我知道French_revolutionaries是一类人。我的问题是:如何从API中检索所有人(不仅仅是某类人)?

我考虑过的一种方法是从任意类别开始,例如French_revolutionaries。对于该类别的每个成员,检索他们的信息和他们所属的其他类别,然后以相同的方式搜索这些类别,以这种递归方式操作,直到没有新的类别来获取。但是,如果网络没有完全连接,这将无法工作,并且不如我想要的那么优雅。

有没有直接的方法来查找维基百科数据库中的所有人? dbpedia可以提供该阵列吗?我现在正在下载SQL dump of the Wiki category data,但想提出问题以防其他人知道快速解决方案。任何其他人可以提供的帮助将非常感谢!

2 个答案:

答案 0 :(得分:2)

问题是用Sparql标记的,所以我假设你对基于Sparql的解决方案开放。像

这样的查询是否存在问题
select * { ?person a dbo:Person }

SPARQL Results

答案 1 :(得分:2)

也许是维基数据

SELECT ?person WHERE { ?person wdt:P31 wd:Q5 }
limit 100

https://query.wikidata.org/#SELECT%20%3Fperson%20WHERE%20%7B%20%3Fperson%20wdt%3AP31%20wd%3AQ5%20%7D%0Alimit%20100