N_4. Wikipedia Infobox 활용
Wikipedia의 데이터는 수많은 사람들이 모여 지식을 모음으로 방대한 양의 데이터를 보유하고 있다.
그중에 wikipedia의 infobox는 상당히 유용한 데이터가 많이 있다.
이 데이터를 사용할 수 있다면, 그리고 사용한다면
좀더 발전적인 일에 사용할 수 있을 것이다.
그런데 역시 개방과 공유의 페러다임으로 시작한 Wikipedia라서 그런지
infobox의 데이터를 활용할 수 있도록 API를 제공하여 준다.
Wikipedia의 Infobox는 사람들이 어떠한 데이터에 대해 통일된 형식으로
데이터를 수집하고 업데이트 할 수 있도록 미리 정의한 형식이다.
따라서 자신의 지식을 Wikipedia로 게재하기 위해서는 Infobox에서 다루는 몇가지 주요 데이터를
infobox template에 따라 작성하고 wikipedia에 제출하도록 되어 있다.
이는 key-value 의 집합으로서 이를 제공받으면 유용하게 사용이 가능하다.
위의 그림에서 우측 빨간색 부분이 Infobox이다.
이 데이터를 받아보기 위해서는
mediawiki에서 제공하는 API를 활용하면 된다.
윤석민에 대한 infobox를 받아보는 API는
혹은
http://ko.wikipedia.org/w/api.php?action=query
다음에 API에서 제공하는 인수를 선택하여 실행하면 된다.
titles에 찾고자 하는 자원의 이름을 입력하면 된다.
format에는 xml, txt, json, txtfm, jsonfm 등을 입력하여 여러가지 형태로 결과를 받아 볼 수 있다.
API에 대한 내용은
https://www.mediawiki.org/wiki/API
에서 자세한 사항을 찾아볼 수 있다.
또한 Wikipedia에서는 분류에 해당하는 자원들을 리스트 형태로 보여주기도 하는데
위와 같이 윤석민이 속한 분류는 "분류:대한민국의 야구 선수" 라는 분류로 되어 있다.
여기에는 infobox가 없고 해당하는 분류의 자원들이 list 형태로 나열되어 있다.
이 또한 API를 활용하여 데이터를 받아올 수 있다.
이 APi는 cmtitles에서 시작하는 부분이 "분류" 혹은 "Category"라고 시작하는 것에만 해당된다고 APi 설명에 나와있으니 참고해야 한다.
%EB%B6%84%EB%A5%98:%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%95%BC%EA%B5%AC_%EC%84%A0%EC%88%98 은 URLDecoder로 확인하면 분류:대한민국의 야구 선수 이다.
자 이제 위의 2개 API를 활용하여 간단한 Java 코딩이면 대한민국 야구 선수에 대한 기본적인 정보들을 Wikipedia에서 받아볼 수 있다..