2011-09-17 5 views
12

をイメージのライセンスおよび著作者の情報を取得:コモンズのAPIは、ライセンスを取得するために彼らのdocument that mentions the possibilityで非常に未熟と一部であるように思え私がウィキコモンズのためのウィキメディアAPIを使用しようとしていますウィキコモンズに

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

著者情報が空です。

とにかくAPIを使用してライセンスに関する情報を含む段落を取得できますか? (たとえば、「Licensing」というタイトルの下にある段落at this page)。もちろん、ページ全体をダウンロードして解析することはできますが、APIは何ですか?

答えて

3

Wikimedia ToolserverMagnus Manske's Commons API toolを試してみることができます。それは公式のサービスではなく、ドキュメントはむしろまばらである(つまり、ほとんど存在しない)ようだが、XML outputはかなり自明であるようだ。

Magnusのスクリプトのソースはどこにも見つからないようですが、ファイルが属しているcategoriesからライセンス情報を抽出すると仮定します。必要に応じて、自分でそれを行うことができます:カテゴリーのリストを取得し、必要であれば、あなたが認識するlicense categoryが見つかるまでカテゴリツリーを歩いてください。残念なことに、ツリーウォーキングの部分には、複数の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

ページを参照してください:あなたはforeachの画像にタグ「メタ= SITEINFO」とタグを使用することができますhttp://www.mediawiki.org/wiki/API:Meta

「を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

OK、私は間違っています。 – 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://ja.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=extmetadata&titles=File%3aBrad_Pitt_at_Incirlik2.jpg&format=jsonfm –

関連する問題