2016-07-29 2 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? property를 찾았습니다. hasValue? isValueOf WHERE { {? 속성? hasValue} UNION {? isValueOf? property } }하지만이 방법은 솔루션보다 훨씬 간단합니다. – duhaime

+0

@duhaime 확실히, 그것은 단지'사람으로 바뀝니다. dbo : Person; dbo : wikiPageID? id'. –

+0

완벽한, 감사합니다! 응답에 위키 백과의 '제목'이 포함되어있어 적어도 ID와 동일한 목적을 달성 할 수 있다는 점을 깨달았습니다. 다시 한 번 감사드립니다! – duhaime