Extension:CommonsMetadata

From mediawiki.org
This page is a translated version of the page Extension:CommonsMetadata and the translation is 80% complete.
MediaWiki 拡張機能マニュアル
CommonsMetadata
リリースの状態: 安定
実装 API
説明 コモンズのページからメタデータの抽出を試みる
作者 Brian Wolff (bawolffトーク)
互換性の方針 MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。
MediaWiki 1.25+
PHP 5.4+
データベースの変更 いいえ
ライセンス GNU 一般公衆利用許諾書 2.0 以降
ダウンロード
  • $wgCommonsMetadataForceRecalculate
  • $wgCommonsMetadataPublicDomainPageUrl
  • $wgCommonsMetadataSetTrackingCategories
Quarterly downloads 68 (Ranked 80th)
Public wikis using 1,055 (Ranked 247th)
translatewiki.net で翻訳を利用できる場合は、CommonsMetadata 拡張機能の翻訳にご協力ください
問題点 未解決のタスク · バグを報告

CommonsMetadata 拡張機能はウィキメディア・コモンズのページからメタデータを抽出する試みで、ウィキメディアの他のどのプロジェクトでも同じデータを入手できます。 画像情報 API (imageinfo API) に情報を追加する基準として、画像の説明文にあるテンプレートやカテゴリを使います。 取得したメタデータはさまざまな拡張機能やツールで利用すると、ライトボックスあるいは画像選択のダイアログが改善されます (例: Extension:MultimediaViewer Extension:VisualEditor Extension:MobileFrontend Mobile-Content-Service (MCS))。

拡張機能の現在の形式は、暫定的な対策を意図したもので、のちにウィキデータのメディア情報(Wikidata on Commons)と交換されました。

インストール

  • ダウンロードして、ファイルをextensions/フォルダー内のCommonsMetadataという名前のディレクトリ内に配置します。
    開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CommonsMetadata
  • 以下のコードを LocalSettings.php ファイルの末尾に追加します:
    wfLoadExtension( 'CommonsMetadata' );
    
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

動機とデザインの選択肢

mailarchive:wikitech-l/2013-August/071593.html を参照してください

この拡張機能には次のような目的があります。

  • 将来的には、コモンズのメタデータを扱う役割はウィキデータに変更されます。壊滅的な変更ですぐに再び修正する必要がないように、拡張機能はコモンズのメタデータを現在と同様に(新しいパーサ関数を導入しないで)扱う必要があります。したがって、スクリーンスクレイピングを採用します。
  • コモンズの説明ページでは、多くの項目の内容に装飾付き書式を設定(具体的にはリンク、斜体、太字のこと。場合によっては埋め込み画像など複雑な要素)
    • その結果、拡張機能は処理済みのHTMLを出力 (ウィキテキストは手間がかかり、平文はデータを取得不能)
    • さらに、データは(例えば)機械可読な日付形式ではなく、人間が読解できる書式で表示される。日付のフィールドに「1600年代頃」と記述してあると、厳密な日付に変換不可能(他方、変換可能な例も少なくない)。
    • これをさらに進めて exif metadata 形式を当ててウィキ側で管理できるようにする(例えばコモンズではカメラの名称をウィキペディアの記事にリンク)
  • 説明文書のページから情報を抽出できなくてもファイルの作者がexif/XMP/iptcメタデータでタグ付けされている場合は、それをフォールバックに使わなければいけません。
  • 理想としては、そのようなシステムは可能な限りコモンズに特化せず標準化すべきで、コモンズ固有の部分とコモンズ外の部分を分離します。
  • コモンズの説明文書のページは多言語で記述されます。大部分の利用者には単一の言語で十分でしょう。
    • この実装では日付と物事に言語ごとの規則を適用します。 また、明示的に多言語のフィールド(説明)の場合、すべてを返すか、単一の言語だけ返すか選択肢があります。 単一言語モードであっても、いくつかの要素は言語固有です(数千とあるセパレータが好例)

設定

parameter default description
$wgCommonsMetadataSetTrackingCategories false Add the following tracking categories to file pages when the corresponding information is not provided either via templates on the file page of (for some of these) EXIF metadata:
  • Files with no machine-readable license (commonsmetadata-trackingcategory-no-license)
  • Files with no machine-readable description (commonsmetadata-trackingcategory-no-description)
  • Files with no machine-readable author (commonsmetadata-trackingcategory-no-author)
  • Files with no machine-readable source (commonsmetadata-trackingcategory-no-source)
  • Files with no machine-readable patent (commonsmetadata-trackingcategory-no-patent) (for 3D files)
$wgCommonsMetadataPublicDomainPageUrl https://commons.wikimedia.org/wiki/Help:Public_domain Link used for 'license' attribute in schema.org markup for files in the public domain.
$wgCommonsMetadataForceRecalculate false Force calculation of metadata even when the image is from a foreign repository which would provide it. This is meant for local development.

テスト

警告 警告: もしこの拡張機能の開発やテストに取り組むのなら、画像のメタデータを利用するためにコモンズのテンプレートをコピーしないよう助言します。コンパイル処理にあまりにも時間がかかるのと、Scribuntoなどとの複雑な依存関係があるためです。代わりに、ウィキテキストとHTMLだけで構成された拡張版を入手して、手動でさまざまな引数のレファレンスを追加する(もしくはしない)ようにしてください。(特別ページ:インポートと一緒に用いる)使用例はこちらにあります。 あるいはまた、既定でいくつかのテンプレートを同梱しているVagrantを使用してください。

遠隔の画像を使ってテストする(例えば$wgUseInstantCommons を有効にしてコモンズにある画像を使う)場合は、CommonsMetadataが強制的に画像の説明ページを解析してメタデータを抽出するように$wgCommonsMetadataForceRecalculate = true;を設定することができます(通常は遠隔のリポジトリにCommonsMetadataもインストールされているとそこからAPIの出力のみを転写します)。

使用法

imageinfo API を使用し、extmetadata 経由で画像データの属性を特定する iiprop を加えます。

使用例:

https://commons.wikimedia.org/w/api.php?action=query&prop=imageinfo&format=json&iiprop=extmetadata&iilimit=10&titles=File%3ACommon%20Kingfisher%20Alcedo%20atthis.jpg

この使用例を API サンドボックスで閲覧する:

https://www.mediawiki.org/wiki/Special:ApiSandbox#action=query&prop=imageinfo&format=json&iiprop=extmetadata&iilimit=10&titles=File%3ACommon%20Kingfisher%20Alcedo%20atthis.jpg

戻り値

この拡張機能は現在、戻り値の extmetadata フィールドに下記の項目を出力します (フィールド名は可能な限り EXIF のヘッダーに用いる IPTC-IIM 形式に従う)。

情報テンプレートが内蔵する機械可読データに基づくデータ:

  • ImageDescription - 画像の説明
  • Artist - 作者の名前(複雑なHTMLや複数の執筆者名などを含む)
  • Credit - 情報源
  • DateTimeOriginal - 作成時点(可能な限り、半角スペースで区切ったISO 8601タイムスタンプを使用だが、日付を文字で記述したもので、HTMLを含んでいれば可。)
  • ObjectName - 題名(書物や絵画の場合。その他ならファイル名のみ)
  • Permission - テンプレートの許諾欄。多くの要素が可能(ライセンステンプレート、ORTSのID、属性の詳細...)
  • AuthorCount - テンプレート件数と作者(例:書籍、写真...)。テンプレートの1行に複数の作者名が記された場合には、合計人数は表示よりも多い可能性がある。

machine-readable data in the Location template(位置テンプレートに内蔵する機械可読データ)に基づく情報:

  • GPSLatitude - 経度
  • GPSLongitude - 緯度
  • GPSMapDatum - 座標タイプ(現状ではWGS-84にのみ対応)

ライセンステンプレートが設定する機械可読データに基づくデータ:

  • LicenseShortName - 人間が読み取れる短いライセンス名称
  • LicenseUrl
  • UsageTerms
  • Copyrighted - TrueまたはFalse(パブリックドメイン画像の場合)

複合ライセンスの画像の場合、現在は値が提供されません。

For multi-licensed images these values are currently unreliable.

  • Attribution - 撮影者 + 権利関係の表示に代わる、帰属の特記事項(情報テンプレートから取ることも可能)
(can also originate from the Information template)
  • AttributionRequired - booleanish (phab:T86726), tells whether there is a legal requirement to attribute
  • NonFree - 真偽値に似た値で「true」の場合、画像はフリーライセンスではない(対象はコモンズにない画像限定)

その他のデータ:

  • CommonsMedadataExtension - メタデータのパーサバージョン番号; 主に内部利用向け
  • License - a best guess at the license of the image (主にMediaViewerによる内部利用向けで、変更の可能性あり;信頼性は LicenseShortNameの方が勝ると考えられる
  • Categories - |で区切った画像のカテゴリ一覧。
  • Assessments - 画像評価を|で区切った一覧 (現在は5項目に対応: 年間大賞今日の一枚秀逸良質valued (高価値))。 パーシングのカテゴリ名に基づく。コモンズに置かれていない画像には当てはまらない可能性がある。
  • Restrictions - 再利用の制限。商標や人格権など。キーワードの配列(こちらの表にあるクラス名から接頭辞restriction-を除外したもの)。MediaViewerにあるrestrict-* icons(アイコン)も参照。
  • DeletionReason - 有効にするとテンプレートを削除の対象とする。 (nukeテンプレートに基づく。コモンズ以外では信頼性が低い可能性がある。) It contains a deletion reason, but it is phrased to be applicable for a log entry, so it might be misleading (e.g. past tense when actually it is not yet decided whether the image will be deleted).

関連項目