モジュール:WikidataIB/doc

19,000以上
モジュール:WikidataIBは、ウィキデータに格納されたデータをInfoboxで利用する判断をInfobox設計者から記事執筆者に移行する機構を実装するために設計されたモジュールです。
モジュールは英語版ウィキペディアでLua言語を用いて開発されています。オリジナル実装・新しい機能の使い方・詳しい使い方は英語版オリジナルモジュール（:en:Module:WikidataIB）を参照してください。

**関数**
2018年4月現在、モジュールはInfoboxで利用するための以下の関数を提供します。
# getValue
#: getSourcedValue - 廃止:getValueで代用
# getPreferredValue
# getNormalValue
# getCoords
# getQualifierValue
廃止されたgetSourcedValue関数は、getValue関数を引数trueで利用した動作と重複するものとして削除されました。
以下のユーティリティ関数も提供します。
# getLink
# getLabel
# getAT
# getDescription
# formatDate
# checkBlacklist
# emptyor

**共通仕様**
引数の真偽値は、真はtrue/yes/1、偽はfalse/no/0で指定します。ヌル文字はデフォルト値として扱われます。その他の全ての値は真として扱われてますが、可読性のためtrue/falseやyes/noを指定することが推奨されます。
引数の文字列は、任意の文字列・文を指定します。文字列にスペースを入れる場合は明示的にダブルクオーテーション（"）で括ります。ダブルクオーテーションで明示しない場合は前後のスペースはトリミングされます。パイプ文字はでエスケープします。
複数の値を返す関数は、複数の値をセパレータで区切って1つの文字列として返却します。デフォルトのセパレータは, です。引数で変更可能な場合があります。日本語版ウィキペディアでは区切り文字にカンマは推奨されないので（WP:YAKUMONO）、Infoboxに表示する場合には可能であれば変更するべきです。中点と読点のいずれを使うかはInfoboxの慣習に従います。
いくつかの関数は、qidなどで他記事のアイテムIDを指定してプロパティ・修飾子の値を取得できます。通常用途で利用することはなく、試験用途では便利かもしれません。通常用途でも利用は可能ですが、不必要に高負荷です。

**getValue**
関数getValueは、記事主題に関するウィキデータ エンティティから第1無名引数で指定したプロパティIDの値を取得します。

フィールド名はブラックリスト・ホワイトリストの表示有無の評価に使用します。与えられたフィールド名をまず最初にブラックリストで表示有無を判断します。例えば、どんな状況でも表示しない場合に利用します。ブラックリストにフィールドがない場合、次にホワイトリストで表示有無を判断します。ホワイトリストにフィールドがある場合、記事内の実値、ウィキデータの値、2番目の無名引数を値を順に評価していずれかを返却します。ブラックリスト・ホワイトリストが使われている場合は、名前付き引数nameは必須です。ブラックリスト・ホワイトリストが使われていて名前付き引数nameがない場合は、関数は空文字を返却します。
取得した値はprefix、postfix、linkprefix、linkpostfixで接頭語・接尾語の文字列を付与できます。linkprefixを利用しない場合、prefixとpostfixだけが利用されます。linkprefixを利用する際は4つの接頭語・接尾語が全て使用され、各値毎に付与されます。
複数の値を持つプロパティはソートせず、セパレータで区切って、1つの文字列として返却されます。ソートを指定した場合は非常に単純なアルファベットソートで並び替えを実施しますが、リンク型の値は ...として並び替えします。複数の値はsepやlistで結合・表示形式を変更できます。sepは結合する際の区切り文字を指定します。hlistは横リストで表示し、ublは非接頭句縦リストで表示します。アクセシビリティのため、非接頭句縦リストはではなくublを利用すべきです。
Infoboxのフィールドに値の改善を誘導するウィキデータで編集アイコンを表示します。アイコンは該当のプロパティのウィキデータページにリンクしています。
取得する値は出典がない、もしくは、出典がウィキペディアのみの値を除外して、適切な出典の付与された値のみを返却します。出典の有無を問わず値を取得する場合はfalseを指定します。
wikibase-itemsと呼ばれるウィキペディアの記事に紐付いたアイテムは、可能であればウィキペディアの記事に対応したウィキリンクに変換して返却します。URIとなるウィキメディア・コモンズのメディア、URL、外部リンク、その他の類似する文字列を表すアイテムは、リンクに変換して返却します。その他の値型は、mwdiawikiライブラリがformatPropertyValues()を呼び出して返却します。
引数- 1番目の無名引数は、取得対象のプロパティIDを指定します。- 2番目の無名引数は、ウィキデータに値がない場合のデフォルト値を指定します。- qidは、ウィキペディア記事のアイテムIDを指定します（高負荷）。- nameは、フィールドの名前を指定します。- suppressfieldsは、フィールド名のブラックリストを指定します。- fetchwikidataは、フィールド名のホワイトリストを指定します。キーワードALLは全フィールドを取得します。- onlysourcedは、出典有無による値返却を真偽値で指定します。デフォルトはtrueです。- noiconは、値の改善を促すため編集アイコンの非表示化を真偽値で指定します。デフォルトはfalseです。- dfは、年月日の値のフォーマットをdmy（日月年）、mdy（月日年）、y（年）のいずれかで指定します。デフォルトのフォーマットはdmyです。- bcは、年月日の値の接尾辞にBCもしくはBCEを必要とする値のために指定します。デフォルト値はBCEです。- prefix、postfixは、値の接頭語・接尾語を指定します。- linkprefix、linkpostfixは、リンク型の値の接頭語・接尾語を指定します。- sortedは、複数の値のソート有無を真偽値で指定します。デフォルトはfalseです。- sepは、複数の値を結合する際のセパレータを指定します。- listは、複数の値のリスト形式を指定します。セパレータ指定を上書きし、ウィキデータで編集アイコンを非表示にします。
例
を対象にした例です。- P127を取得
*** → qid=Q532127- P571を年で取得
*** → qid=Q532127- P717を接頭語・接尾語を付与して取得
*** → qid=Q532127- P717を天文台コード一覧の節にリンクして取得
*** → qid=Q532127

**getPreferredValue**
関数getPreferredValueは、関数getValueと同じ引数を扱い、同じ挙動をしますが、ウィキデータの値にpreferred rankが設定されている場合はそれらの値のみを取得します。


**getNormalValue**
関数getNormalValueは、関数getPreferredValueと同じ引数を扱い、同じ挙動をしますが、ウィキデータの値にnormal rankが設定されている場合はそれらの値のみを取得します。値にpreferred rankとnormal rankが混在している場合は、それぞれが個別の値を返却します。


**getCoord**
関数getCoordは、記事主題に関するウィキデータ エンティティからP625の値を取得して、値をTemplate:Coordに渡します。

引数- qidは、ウィキペディア記事のアイテムIDを指定します（高負荷）。- suppressfieldsは、ブラックリストを指定します。- fetchwikidataは、ホワイトリストを指定します。- displayは、Template:Coordのdisplayに渡す値を指定します。デフォルト値はinline, titleです。

**getQualifierValue**
関数getQualifierValueは、記事主題に関するウィキデータ エンティティからプロパティの修飾子の値を取得します。

引数- 1番目の無名引数は、プロパティIDを指定します。- qidは、ウィキペディア記事のアイテムIDを指定します（高負荷）。- pvalは、修飾子のプロパティIDを指定します。- qualは、修飾子IDを指定します。- suppressfieldsは、ブラックリストを指定します。- fetchwikidataは、ホワイトリストを指定します。- onlysourcedは、出典有無による値返却を真偽値で指定します。デフォルトはtrueです。
例
を対象にした例です。- P793のQ385378のP580を取得
*** → qid=Q1513315

**getLink**
関数getLinkは、アイテムIDに紐付いたウィキペディアに記事が存在する場合にウィキリンクを取得します。

取得する値はウィキデータにラベルが存在する場合はラベルにパイプし、ラベルが存在しない場合はIDにパイプします。ウィキペディアに記事が存在しない場合はラベルもしくはIDを返却します。
例- Q1のリンクを取得
*** → Q1- P10のリンクを取得
*** → P10

**getLabel**
関数getLabelは、アイテムIDのラベルもしくはIDを取得します。

例- Q1のラベルを取得
*** → Q1- P10のラベルを取得
*** → P10

**getAT**
関数getATは、アイテムIDの記事のタイトルを取得します。

取得する値はウィキペディア記事のタイトルです。記事が存在しないアイテムはヌル文字を返却します。
例- Q1の記事タイトルを取得
*** → Q1- P10の記事タイトルを取得
*** → P10

**getDescription**
関数getDescriptionは、アイテムIDの説明文を取得します。

引数- 1番目の無名引数は、wikidataが指定された場合はウィキデータの値を、noneが指定された場合はヌル文字を返却します。- qidは、ウィキペディア記事のアイテムIDを指定します（高負荷）。
例
を対象にした例です。- 説明文を取得
*** → qid=Q532127- 説明文を取得しない
*** → qid=Q532127- 説明文を指定
*** → qid=Q532127

**formatDate**
関数formatDateは、mw.wikibase.entity:formatPropertyValuesから取得する、1 August 30 BCEのような、日付フォーマットを第1引数に受け取り、df・bcで指定したフォーマットします。

引数- dfは、年月日の値のフォーマットをdmy（日月年）、mdy（月日年）、y（年）のいずれかで指定します。デフォルトのフォーマットはdmyです。- bcは、接尾辞にBCもしくはBCEを必要とする値のために指定します。デフォルト値はBCEです。
例- BCを指定
*** → bc=BC- mdy､BCを指定
*** → df=mdy

**Infoboxテンプレートのコーディング**
Infoboxテンプレートでは、特に関数getValueを適切なテンプレートパラメータを転用してInfoboxフィールドのdata部で利用します。
Infoboxテンプレートのコードは従来のものと基本的構成に変わりはありません。で締めます。主に異なるのはdataの値の箇所です。

**data部のコード**
Infoboxのdata部は従来のInfobox構成とは異なり、ウィキデータの値を利用するために