2016-07-29 9 views
1

Я хочу найти всех людей в базе данных Википедии, используя их 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

Вопрос отмечен Sparql, поэтому я предполагаю, что вы открыты для решений на основе Sparql. Есть ли проблема с запросом, как

select * { ?person a dbo:Person } 

SPARQL Results

+0

Ницца, я просто смотрел вокруг и видел много ваших предыдущих запросов SPARQL, как Что ж. Я придумал свойство SELECT? HasValue? IsValueOf WHERE { {? Property? HasValue} UNION {? IsValueOf? Property } }, но это гораздо менее компактно, чем ваше решение! – duhaime

+0

@duhaime уверен, он просто превращается в '? Person a dbo: Person; dbo: wikiPageID? id'. –

+0

Отлично, спасибо! Я понял, что ответы содержат названия wikipedia, которые могут служить той же цели, что и идентификатор, по крайней мере, в отношении API. Еще раз спасибо! – duhaime