Phabricator のプロジェクト名 #CommonsMetadata

Extension:CommonsMetadata

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:CommonsMetadata and the translation is 98% complete.

Other languages:
Deutsch • ‎English • ‎català • ‎dansk • ‎español • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎sicilianu • ‎suomi • ‎中文 • ‎日本語
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
CommonsMetadata
リリースの状態: 安定
実装 API
説明 コモンズのページからメタデータの抽出を試みる
作者 Brian Wolff (bawolfftalk)
互換性ポリシー リリースブランチ
MediaWiki 1.25+
PHP 5.4+
データベースの変更 いいえ
ライセンス GNU General Public License 2.0 or later
ダウンロード
パラメーター

  • $wgCommonsMetadataForceRecalculate
  • $wgCommonsMetadataSetTrackingCategories
使用するフック
GetExtendedMetadata
ValidateExtendedMetadataCache
ContentAlterParserOutput
translatewiki.net で翻訳を利用できる場合は、CommonsMetadata 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告

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

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

動機とデザインの選択肢

Wikitechのメーリングリストの過去号も参照

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

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

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の CommonsMetadata という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'CommonsMetadata' );
    
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

MediaWiki 1.24 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。 この拡張機能をこれらの過去のバージョン (MediaWiki 1.24 以前) にインストールする必要がある場合は、wfLoadExtension( 'CommonsMetadata' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/CommonsMetadata/CommonsMetadata.php";

テスト

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

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

使用法

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

使用例:

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 sandboxで閲覧する:

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(パブリックドメイン画像の場合)

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

  • 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テンプレートに基づく。コモンズ以外では信頼性が低い可能性がある。) 削除徳勇が含まれるが、ログエントリに使用するために記述されるため、誤解を招きやすい表現の場合がある(例:画像の削除が未定でも過去形で記述してあり、すでに実行したかのように読めるなど)。

関連項目