2011-09-17 4 views
12

내가에서 위키 공유지에 대한 위키 미디어 API를 사용하는 것을 시도하고있다 :검색 중 이미지 라이센스 및 위키 공유지의 저자 정보

http://commons.wikimedia.org/w/api.php 

이 API는 매우 미숙 커먼즈 라이센스를 검색하는 자신의 document that mentions the possibility의 일부처럼 보인다 작성자 정보가 비어 있습니다.

어쨌든 API를 사용하여 라이선스에 대한 정보가 포함 된 단락을 검색 할 수 있습니까? 예를 들어 제목 "Licensing"at this page의 단락을 참조하십시오. 물론 전체 페이지를 다운로드하여 구문 분석 할 수는 있지만 API는 무엇입니까?

답변

3

Wikimedia Toolserver에서 Magnus Manske's Commons API tool을 사용해보세요. 그것은 공식적인 서비스가 아니며 문서가 다소 희박한 것 같습니다 (즉, 거의 존재하지 않음). 그러나 XML output은 매우 자명합니다.

어디서나 Magnus의 스크립트 소스를 찾을 수없는 것 같지만 파일이 속한 categories에서 라이센스 정보를 추출한다고 가정합니다. 원할 경우 직접 할 수 있습니다. 범주 목록을 가져오고 필요한 경우 license category을 찾을 때까지 카테고리 트리를 따라 가십시오. 아아, tree-walking 부분에는 여러 API 요청 또는 Commons 범주의 데이터베이스 (Toolserver에서 라이브 액세스 또는 database dumps에서 재구성 된 사본)가 필요합니다.

예, 나는이 대답이 불만스럽게 느껴질 수도 있음을 알고 있습니다. 사실 Magnus의 스크립트는 현재 가장 가까운 기존의 것으로 보이며 심지어 실험적이거나 불완전한 것으로 표시됩니다. 기본적으로 이것은 누군가가 (더 나은) 솔루션을 구현하기를 기다리는 문제입니다.

+0

도구가 다운 된 것 같습니다. 아무도 확인할 수 없습니까? – user5950

+0

@ user5950 : 그래, 내게 너무 무너지는 것 같아. –

+0

누군가가 좋은 대안을 발견하면 알려 주시기 바랍니다! – user5950

1

나는 Magnus' Commons API tool을 사용했습니다. 프로젝트에 그냥 삽입 할 수있는 것은 아니지만, 호출하는 Wiki 페이지의 소스를 복사하여 로컬에 캐시 한 다음 로직을 클래스로 옮기면보다 쉽게 ​​호출 할 수 있습니다. Here's the source for Magnus' version. 내가 만든 수업을 원한다면 알려주세요.

-3

페이지 참조 : http://www.mediawiki.org/wiki/API:Meta

당신은 foreach는 이미지를 사용할 수 있습니다 태그 '메타 = siteinfo'와 태그 'siprop = rightsinfo'(siprop이 siteinfo의 소품입니다) 가 그런 다음의 rightsinfo를 볼 수 있습니다 그림. http://www.mediawiki.org/wiki/API_talk:Main_page#Image_license_information 에서

http://en.wikipedia.org/w/api.php?format=jsonfm&action=query&titles=File:Brad_Pitt_at_Incirlik2.jpg&prop=imageinfo&iiprop=url&meta=siteinfo&siprop=rightsinfo

+0

올바르지 않습니다. 'siteinfo'는 이미지가 아닌 사이트에 대한 정보를 제공합니다. 예를 들어, [File : Flag_of_the_United_Kingdom.svg] (http://en.wikipedia.org/wiki/File:Flag_of_the_United_Kingdom.svg)의 페이지를 보면 공개 도메인으로 라이센스 된 것을 볼 수 있습니다. 그러나 제공 한 쿼리에서이 파일을 사용하면 이미지가 아닌 페이지가 Creative Commons로 라이선스된다는 것을 알 수 있습니다. 이미지에 대한 정보는 제공하지 않습니다. – ishmael

+0

그래, 내가 틀렸다. – Bvbever

+0

Bvbever가 정확합니다. 이미지에서는 작동하지 않습니다. –

1

이 API를 통해 이미지의 라이센스를 얻을 수있는 방법이 있나요 :처럼 브래드 피트의 귀하의 경우에는

그것은 것입니까? 사이트는 라이센스별로 분류한다고 가정 할 때 아마 가장 쉽습니다. 라이센스 정보에는 모듈이 내장되어 있지 않습니다. Splarka 08:45, 2010 년 1 월 22 일

그러나 라이센스를 지정 했는데도 카테고리를 사용하면 많은 이미지가 반환되지 않습니다. 아마도 가장 좋은 방법은 이미지 페이지의 렌더링 된 html을 구문 분석하는 것입니다.

13

늦은 대답하지만 당신은 다음 쿼리와 함께 "extmetadata"데이터를 요청할 수 있습니다 imageinfo.extmetadata에서

http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=json

봐.사용법 용어, 아티스트, 크레딧 등

+2

이것은 올바른 대답입니다. 쉬운 확인을 위해 jsonfm 형식을 사용하십시오. http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=jsonfm –