跳至內容

模組:Wikidata/doc

維基百科,自由的百科全書

此頁面為 Module:Wikidata 的說明文件

方法

[編輯]

「Wikidata」模塊包含下列方法,將屬性ID作為首個參數提供,可從維基數據中檢索任何屬性的值:

  • getValue:以wiki內鏈形式返回值(如果適用)。其他值的輸出類似{{#property:}},但如果值有首選等級則值返回有首選等級的值。與w:ru:Модуль:WikidataformatStatements不同,getValue不獲取任何參考資料(另見w:en:Module talk:Wikidata/Archive 1#Why the references from Wikidata get dropped?)。
  • getRawValue:返回的屬性值不加內鏈,數字使用千位分隔符。將數量屬性的數值返回為純數字。其他值的輸出類似{{#property:}},包括一般的值,即使存在首選的值。
  • getDateValue:返回經過格式化的日期。默認格式[日 月 年];可選添加第三個參數來指定格式:[月 日, 年]用"mdy";"my"僅有月和年;"y"則僅有年。A further optional parameter, which must be fourth, such as "BCE", may be added to override the default "BC" that is suffixed for dates BC.
  • getImages:返回特定屬性的所有圖像。例如圖像 (P18),基因圖譜圖像 (P692)等。參數為| propertyID | value / FETCH_WIKIDATA / nil | separator (default=space) | size (default=220px). The returned text will be in the format [[File:Filename | size]] for each image with a selectable size and separator (which may be html). If a property is supplied that is not of type "commonsMedia", it will return empty text.
  • getUnits:需要將表示數量的一個屬性ID作為第一個參數,返回該屬性在當前頁面上使用的單位的名稱。屬性非數量類型或者未設置時返回空。如果第二個參數不是"FETCH_WIKIDATA",則會使用該參數代替從維基數據獲取值。
  • getUnitID:同上,但返回單位的QID。

可以通過以下方法檢索維基數據的限定符值(如果存在):

  • getQualifierValue:返回有wiki連結(內鏈)的值,如果適用。
  • getRawQualifierValue:返回非內鏈格式的值
  • getQualifierDateValue:返回格式化後的日期

如果調用此代碼的條目在維基數據中沒有定義屬性,則返回一個空字符串("")。

其他方法:

  • pageId:返回當前頁面的維基數據ID(QID),如果未連結維基數據則什麼也不返回。使用{{#invoke:ResolveEntityId|page}}獲取其他頁面的QID。
  • getTAValue:獲取P1323屬性的TA98值(《解剖學術語》第一版 1998)。它不需要參數,並將其輸出構造為列表,每個值都連結到外部資源。這是編寫需要返回外部連結的函數的示例。
  • ViewSomething:獲取結構化數據中的任何內容,包括標籤、描述、參考資料和跨wiki連結。另見[1]
  • getSiteLink:獲取一個頁面在參數指定的某個wiki中的名稱(例如"enwikiquote"對應英文維基語錄,"arwiki"對應阿拉伯語維基百科)。
  • Dump: {{#invoke:Wikidata|Dump|claims}} 用來探查結構化數據。參數與ViewSomething相同。僅通過預覽查看此調用的結果。這對開發訪問數據的Lua腳本大有幫助。如果不帶參數使用,會轉儲所有內容,包括標籤、描述、參考資料和跨wiki連結。封裝模板另見{{Dump}}。
  • getImageLegend:返回圖像圖例(非P18屬性,而是P2096屬性)。
    Call as {{#invoke:Wikidata |getImageLegend | <PARAMETER> | lang=<ISO-639code> |id=<QID>}}
    Returns PARAMETER, unless it is equal to "FETCH_WIKIDATA", from Item QID (expensive call). If QID is omitted or blank, the current article is used (not an expensive call). If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code.
    The label is returned from the first image with 'preferred' rank; or from the first image with 'normal' rank if no image has preferred rank.
  • getValueShortName:與getValue返回的數據相同,但儘可能運用簡稱屬性作為標籤。這樣可以讓管道連結首選使用較短的文字標籤。如果項沒有短名稱,則使用普通的標籤。

訪問其他QID

[編輯]

2015年9月16日起,可以通過其他條目的QID獲取其他條目的數據。 調用如下:

  • {{#invoke:Wikidata|getValueFromID|<QID>|<属性>|FETCH_WIKIDATA}}

與getValue相同,但使用一個額外的參數表示要獲取屬性值的QID。 例如:

  • {{#invoke:Wikidata|getValueFromID|{{Get QID|理查德·伯顿}}|P26|FETCH_WIKIDATA}}

將從本維基百科中的標題為理察·伯頓的頁面對應的維基數據項(理察·伯頓 (Q151973))中獲取'配偶'(P26)列表,以內鏈形式展示。

如此,可以在用戶命名空間中設置測試環境,但請注意,這些是「高成本」調用,請不要過度使用。

參數

[編輯]
  • 對一般用法(getValue),提供兩個未命名參數。第一個是要檢索的屬性ID(例如P19對應出生地)。第二個參數可能為空、"FETCH_WIKIDATA",或者將作為返回值的其他字符串。
  • 對於一般的不加內鏈用法(getRawValue),提供兩個未命名參數。第一個是要檢索的屬性ID(例如P21對應性別)。第二個參數可能為空、"FETCH_WIKIDATA",或者將作為返回值的其他字符串。
  • 對於一般的日期用法(getDateValue),提供三個未命名參數。第一個是要檢索的屬性ID(例如P569對應出生日期)。第二個參數可能為空、"FETCH_WIKIDATA",或者將作為返回值的其他字符串。第三個參數是返回的日期格式,可能為dmy, mdy, my或y(另見實際源碼)。

請注意,wikibase調用不再支持小寫參數:p123,因此如果出現問題,檢查是否正確使用了大寫參數(如P123)。

用法

[編輯]

例子:配偶 (P26)

[編輯]
  • {{#invoke:Wikidata|getValue|P26|}} = 不返回任何內容
  • {{#invoke:Wikidata|getValue|P26|FETCH_WIKIDATA}} = 返回內鏈形式的維基數據中存儲的P26(配偶)屬性
  • {{#invoke:Wikidata|getValue|P26|[[Hillary Rodham Clinton]]}} = 返回Hillary Rodham Clinton,即允許信息框使用本地自定義的值代替維基數據中的值。

信息框模板中使用

[編輯]

信息框的定義中可以這樣調用:

  • | data55 = {{#invoke:Wikidata|getValue|P26|{{{spouse|FETCH_WIKIDATA}}} }}

使信息框變為:

  1. 信息框參數|spouse設為空(即"| spouse =")時,不顯示spouse
  2. 未提供信息框參數|spouse時,根據維基數據內容顯示內鏈形式的一個或多個值
  3. 本地提供信息框參數時,顯示本地提供的參數|spouse。例如"|spouse = Hillary Rodham Clinton"

另一種方式:

  • | data55 = {{#invoke:Wikidata|getValue|P26|{{{spouse|}}} }}

使信息框變為:

  1. 信息框參數|spouse設為空(即"| spouse =")時,不顯示spouse
  2. 未提供信息框參數|spouse時,不顯示spouse
  3. 本地提供信息框參數時,顯示本地提供的參數|spouse。例如"|spouse = Hillary Rodham Clinton"
  4. 本地將信息框參數設為FETCH_WIKIDATA時,根據維基數據內容顯示內鏈形式的一個或多個值

另見Module:WikidataIB版本,支持在每個條目上用本地參數定義:不顯示的參數(黑名單);僅從維基數據自動獲取哪些參數(白名單)。用它可以修改信息框而不對使用信息框的條目內容和效果產生任何修改,直至在條目中明確啟用相應參數。

例子:出生地

[編輯]

方式如上所述:

  • {{#invoke:Wikidata|getValue|P19|}} = 不返回任何內容
  • {{#invoke:Wikidata|getValue|P19|FETCH_WIKIDATA}} = 返回內鏈形式的維基數據中存儲的P19(出生地)屬性,指向對應條目
  • {{#invoke:Wikidata|getValue|P19|[[Hope, Arkansas|Hope]]}} = 返回Hope,即允許信息框使用本地自定義的值代替維基數據中的值。

例子:性別

[編輯]

不希望返回內鏈形式的性別,因此使用:

  • - {{#invoke:Wikidata|getRawValue|P21|FETCH_WIKIDATA}}

例子:出生日期

[編輯]

使用dmy格式的出生日期則使用:

  • - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|dmy}}

使用mdy格式的出生日期則使用:

  • - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|mdy}}

僅獲取出生年份:

  • - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|y}}

獲取出生年份(BC)但希望顯示為BCE:

  • - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|y|BCE}}

例子:連結到一個維基數據項

[編輯]

使用下列代碼檢索QID:

  • - {{#invoke:Wikidata|pageId}}

用wiki語法的內鏈連結到維基數據:

  • - [[d:{{#invoke:Wikidata|pageId}}|Name of Link]]

例子:連結到另一個wiki頁面

[編輯]

連結到另一個wiki站點,此例為英文維基導遊:

  • - [[voy:{{#invoke:Wikidata|getSiteLink|enwikivoyage}}|Name of Link]]


測試

[編輯]

配偶

[編輯]

複製並粘貼下列代碼到任何條目並預覽(請勿保存!):

 * - {{#invoke:Wikidata|getValue|P26|}}
 * - {{#invoke:Wikidata|getValue|P26|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getValue|P26|[[希拉里·克林顿]]}}

比爾·柯林頓中可以看到:

但在貝拉克·歐巴馬中:

理察·伯頓中:


弗朗茨·卡夫卡中則是:

出生地

[編輯]

複製並粘貼下列代碼到任何條目並預覽(請勿保存!):

 * - {{#invoke:Wikidata|getValue|P19|}}
 * - {{#invoke:Wikidata|getValue|P19|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getValue|P19|[[纽波特]]}}

威廉·埃勒里中嘗試,看到維基數據如何正確的消歧義。

測試getValue、getRawValue及getDateValue

[編輯]

複製並粘貼下列代碼到任何條目並預覽(請勿保存!):

 * - {{#invoke:Wikidata|getValue|P19|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getValue|P26|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getValue|P27|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getValue|P140|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getRawValue|P21|FETCH_WIKIDATA}}
 * - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|dmy}}
 * - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|mdy}}
 * - {{#invoke:Wikidata|getDateValue|P569|FETCH_WIKIDATA|y}}

如果存在,這分別會返回出生地、配偶、國籍、宗教、性別、出生日期(兩種格式)、出生年份。

另見

[編輯]