コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

モジュール:Wikidata/doc


モジュール:Wikidataは、ウィキデータからデータを取得する複数の関数が定義されているモジュールです。

オリジナル実装・詳しい使い方は英語版(en:Module:Wikidata)を参照してください。

利用

[編集]

ウィキデータからプロパティ・修飾子などを取得して、記事内文章に埋め込むために利用します。基本的には記事主題のエンティティに紐付いたデータを取得しますが、明示的に対象をパラメータで指定することで他記事主題のエンティティに紐付いたデータを取得することも出来ます。

{{#invoke:Wikidata|(関数)|(引数...)}}でウィキデータのデータを取得します。

関数

[編集]

エンティティ関数

[編集]

エンティティのラベルや説明文を取得します。例えば、宇宙 (Q1)の「宇宙」や「惑星、恒星、...」を返します。

{{#invoke:Wikidata|labelIn|ja|Q1}}は、{{#invoke:Wikidata|descriptionIn|ja|Q1}}である。
エンティティ
関数 引数 説明
labelIn
  1. 言語コード
  2. エンティティID
エンティティのラベルを返します。
descriptionIn
  1. 言語コード
  2. エンティティID
エンティティの説明文を返します。

プロパティ関数

[編集]

記事主題に格納されたプロパティの値を返します。第1引数はプロパティID、第2引数は文字列、第3引数以降は省略可能です。第2引数にFETCH_WIKIDATAを指定した場合はウィキデータからデータを取得しますが、そうでない場合は指定した文字列を返します。

infoboxテンプレートで分類 (P31)を表示するにあたって、以下のように、明記されていたらそれを、明記されていなければウィキデータを、として利用できるかもしれません。

| label1=分類
| data1={{#invoke:Wikidata|getValue|P31|{{{分類|FETCH_WIKIDATA}}}}}

これでも同じ表示になります。明記時にモジュール呼び出しがない分、誤差程度に違いが出るかもしれません。

| label1=分類
| data1={{{分類|{{#invoke:Wikidata|getValue|P31|FETCH_WIKIDATA}}}}}
プロパティ
関数 引数 説明
getValue
  1. プロパティID
  2. FETCH_WIKIDATA
値を内部リンクに加工して返します。{{#property:}}と基本的には同様の動作をしますが、ウィキデータにpreferred rankが設定されている場合はその値のみを返します。値の型がwikibase-entityidで指定されている場合に内部リンクを返しますが、そうでない場合は加工なく値を返します。
getRawValue
  1. プロパティID
  2. FETCH_WIKIDATA
値を加工なく返します。{{#property:}}と同様の動作をします。preferred rankが設定されている場合でも区別なく全ての値を返します。
getDateValue
  1. プロパティID
  2. FETCH_WIKIDATA
  3. 年月日フォーマット(dmy)(省略可)
年月日情報を整形して返します。年月日の標準のフォーマットはday month yearです。第3引数に年(y)・月(m)・日(d)を与えることで指定のフォーマットに変更します。例えば、月日はmd、年のみはyを指定します。
getImage
  1. プロパティID
  2. FETCH_WIKIDATA
  3. セパレータ(省略可)
  4. サイズ(省略可)
画像ファイル情報を整形して返します。例えば画像 (P18)ジーンアトラス画像 (P692)のために利用します。値を画像毎に[[File:ファイル名|サイズ]]に整形して、セパレータで区切ります。ファイル種別がcommonsMediaでない場合はヌル文字を返します。
修飾子
関数 引数 説明
getQualifierValue
  1. プロパティID
  2. 修飾子ID
  3. FETCH_WIKIDATA
値を内部リンクに加工して返します。値の型がwikibase-entityidで指定されている場合に内部リンクを返しますが、そうでない場合は加工なく値を返します。getValueは出典を返しません。
getRawQualifierValue
  1. プロパティID
  2. 修飾子ID
  3. FETCH_WIKIDATA
値を加工なく返します。
getQualifierDateValue
  1. プロパティID
  2. 修飾子ID
  3. FETCH_WIKIDATA
  4. 年月日フォーマット(dmy)(省略可)
年月日情報を整形して返します。年月日の標準のフォーマットはday month yearです。第4引数に年(y)・月(m)・日(d)を与えることで指定のフォーマットに変更します。例えば、月日はmd、年のみはyを指定します。

詳細操作関数

[編集]

取得するエンティティ・プロパティ・修飾子の値を配列、優先度高の1つ、出典付きなどフォーマットを細かく指定して返します。

分類 (P31)の値を出典付きで複数値を取得するのならば、以下のような指定が楽です。

{{#invoke:Wikidata|claim|P31|references=yes|list=、}}
詳細操作
関数 引数 説明
claim
  1. プロパティID
  2. id=エンティティID(省略可)
  3. qualifier=修飾子ID(省略可)
  4. list=セパレータ(省略可)
  5. references=出典付与(省略可)
  6. showerrors=エラー表示(省略可)
  7. default=エラー時文字列(省略可)
値を細かな制御の下で返します。引数にプロパティIDのみを指定した場合はpreferred rankの高い1つの値を返します。引数idはエンティティIDを指定して他記事の情報を返します。引数qualifierは指定した修飾子の値を返します。引数listはセパレータを指定して複数の値をセパレータで区切って返します。引数referencesは出典情報を付与して値を返します。引数showerrorsはエラーが発生した場合にエラー文言を返します。引数defaultはエラーが発生した場合にエラー文言に代わり指定した文字列を返します。

構造体操作関数

[編集]

エンティティの全データを構造体と見なしてデータを返します。構造体はキーバリュー型の子入れ連想配列、いわゆるJSON形式、になっています。最上段のキーから順に引数で指定することで、任意の値を返します。

構造体操作
関数 引数 説明
ViewSomething
  1. 言語コード
  2. エンティティID
構造体情報から任意の値を返します。引数に構造体のキーを上から順に指定して、ラベル・説明・出典・ウィキリンク・値を返します。
Dump
  1. 言語コード
  2. エンティティID
構造体情報をJSONフォーマットで返します。引数はViewSomethingと同様です。構造体情報をデバッグするためだけに利用し、記事内で利用してはいけません。引数claimsを与えない場合はラベル・説明・出典・ウィキリンクなどの全ての情報を返します。

便利な機能

[編集]

ダンプ機能

[編集]

任意のページで、以下のコードを貼り付けてプレビューするとウィキデータのデータ構造が、ツリー形式で表示されます。接続されたウィキデータ・ページがない場合は、何も表示されません。開発・デバッグ目的で利用される関数です。

  • {{#invoke:Wikidata|Dump}}

任意のデータを取得

[編集]

ViewSomething関数を使うと、接続されたウィキデータ・ページから、任意のデータを取得できます。{{#invoke:Wikidata|ViewSomething| の後に続けて、上のダンプ機能から得たツリー構造に従って、上から順番にひとつひとつデータの場所を指定していくことで、好みのデータを取得する事ができます。

たとえば以下のコードを大脳のページで使うと、http://www.bartleby.com/107/189.html という値が返されます。

  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks|P854|1|datavalue|value}}

これは大脳の記事に接続されているウィキデータ・ページ(d:Q75855)において、「掲載している事典(P1343)」として登録されているアイテムの「情報源(references)」の「出典URL(P854)」に記入されている値です。

この複雑なコードは、ダンプ機能でツリー構造を見ながら、引用符 (" ")で囲まれている部分の文字を、順にひとつひとつ指定していくことで得られます。

  • {{#invoke:Wikidata|ViewSomething}} - ツリー全体を表示します
  • {{#invoke:Wikidata|ViewSomething|claims}} - ツリーのクレーム部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343}} - 「掲載している事典(P1343)」の部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1}} - ひとつ目のデータを表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references}} - 出典の部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1}} - ひとつ目のデータを表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks}} - snaks (?) の部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks|P854}} - 「出典URL(P854)」の部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks|P854|1}} - ひとつ目のデータを表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks|P854|1|datavalue}} - データ値の部分を表示します
  • {{#invoke:Wikidata|ViewSomething|claims|P1343|1|references|1|snaks|P854|1|datavalue|value}} - 値を表示します

出典付きデータ取得

[編集]
  • {{#invoke:Wikidata|claim|P31|references=yes}} - 分類 (P31)の優先度の高い値を1つだけ出典付きで表示します。
  • {{#invoke:Wikidata|claim|P31|references=yes|list=、}} - 分類 (P31)の複数の値を句点で区切って出典付きで表示します。

関連項目

[編集]
  • Template:Wikidata - 類似の機能を持った、別系統のテンプレート。名前が似ていてややこしいですが、別のものです
  • モジュール:WikidataIB - ウィキデータを利用するInfoboxに最適化されたモジュール。