模块:WikidataIB/doc
这是Module:WikidataIB的文档页面
| 此页面是Module:WikidataIB的模块文档。 此页面可能包含了模板的使用说明、分类和其他内容。 |
| 此模块文档已被保护。此高度可见模块文档具有高风险,或已用于大量页面或被频繁替换引用。由于破坏或失误影响程度严重,因此已被保护,只有错误:页面未被保护。可以编辑。 |
| 此模块文档被引用于约142,000个页面,占全部页面的2%。 为了避免造成大规模的影响,所有对此模块文档的编辑应先于沙盒或测试样例上测试。实施修改前,建议先在讨论页发起讨论。 模板引用数量会自动更新。 |
| 如需使用本模块的更友好封装版本,请参见{{wdib}}。 |
此模块是为在{{infobox}}(资讯框)或其他模板中使用而设计,并经专门设计而允许条目编者(而非资讯框模板的编者)控制是否显示特定的维基数据值。IB为Info Box之缩写。
应使用两组沙盒页面来测试非琐碎修改。
| 模块 | 测试样例 | |
|---|---|---|
| 主要 | Module:WikidataIB | Module talk:WikidataIB/testcases |
| 沙盒 | Module:WikidataIB/sandbox(差异) | Module talk:WikidataIB/sandbox/testcases(差异) |
概述
[编辑]本模块提供以下调用,供资讯框使用:
getValue——主函数,用于获取指定属性(property)的值(value)。getQualifierValue——给定属性、该属性的值以及限定符(qualifier)的属性ID,返回匹配的值。getValueByQual——获取具有给定实体(entity)值的限定符的属性的值(此处下划线用于标示一个相对整体,帮助读者理解,下同)。getValueByLang——获取限定符作品或名称的语言 (P407)的值包含给定的语言代码的属性的值。getValueByRefSource——获取参考文献载于 (P248)的值包含指定实体ID的属性的值。getPropOfProp——如果属性1的值属于“维基数据项目”类型,则返回这些维基数据项目所对应的属性2的值。getAwardCat——如果项目包含得奖 (P166),则逐一检查这些奖项的获奖者专用分类 (P2517),并返回对应的分类,以项目的姓氏 (P734)作为排序键(若无姓氏则不设排序键)。getIntersectCat——针对属性1的每个值获取其主分类,再针对属性2的每个值进行同样操作,最终返回所有表示这些属性交集结果的分类。getSumOfParts——扫描拥有部分 (P527)属性,匹配给定的列表。若匹配到的值带有数量 (P1114)限定符,则将这些数量相加并返回(若总和为0则返回空值)。getCoords——获取坐标,并通过{{Coord}}模板进行格式化输出。getPreferredValue——已弃用,但为向后兼容而保留。请改用|getValue|rank=best参数组合。
已废弃的getSourcedValue调用现已移除,因为getValue通过|onlysourced=true参数(该参数默认启用)即可实现相同功能。
工具函数
[编辑]getLink——如果本地维基上有指向条目的网站链接,则返回该条目的链接,显示文本为维基数据标签;若无网站链接,则返回纯文本标签;若当前语言无对应标签,则返回实体ID。getAT(条目标题)——如果本地维基上有指向条目的网站链接,则以纯文本形式返回该网站链接;否则不返回任何内容。getSiteLink——获取指向指定维基站点的纯文本链接。getLabel——以纯文本形式返回当前语言的维基数据标签;若当前语言无标签,则返回实体ID。getAllLabels——获取全部标签集合并将其格式化为wikitext以供显示。labelorid——返回去除所有wikitext后的标签;若无标签则返回实体ID。getDescription——若本地参数为“Wikidata”,则返回该维基数据实体的条目描述。getAllDescriptions——获取全部描述集合并将其格式化为wikitext以供显示。getAliases——返回当前或指定语言下该实体的别名。getAllAliases——获取全部别名集合并将其格式化为wikitext以供显示。pageId——返回当前页面所关联的维基数据页面ID(即实体ID,QID)。formatDate——接收mw.wikibase.entity:formatPropertyValues输出的标准格式日期时间,并根据df(日期格式)和bc参数进行格式化。formatNumber——根据指定的语言代码对数字进行格式化。checkBlacklist——若字段不在黑名单中(即允许使用),则返回true。emptyor——若参数仅为标点符号、空白字符或HTML标签,则返回nil;否则原样返回该参数。getLang——返回当前内容的MediaWiki语言代码或完整的语言名称。getItemLangCode——查找国家 (P17),然后查找该国家的官方语言 (P37),并返回其维基媒体语言代码 (P424)。findLanguage——返回:(1)所传入的语言代码(若有效);或(2)用户设置的语言;或(3)当前站点的语言。getQid——返回:(1)所传入的实体ID(若有);或(2)分类主话题 (P301)的实体ID;或(3)当前页面关联的实体ID;或(4)不返回任何内容。followQid——给定属性列表,依次查找每个属性,并返回第一个匹配值的实体ID(可选地,也可返回所有匹配的实体ID)。getGlobe——返回地理坐标 (P625)中所使用的球体的实体ID;若无则返回nil。getCommonsLink——按优先顺序返回以下之一:所关联维基数据项的维基共享资源网站链接;所关联维基数据项“话题主分类”的维基共享资源网站链接。siteID——返回globalSiteID的根部分,例如“enwiki”中的“en”、“enwikisource”中的“en”、“en-gb”中的“en”等。projID——与siteID功能相同。location——从当前位置向上沿上级行政区划链扫描,逐级返回,直至到达国家层级。examine——返回指定属性的格式化转储资讯。url2——接收一个有效的URL参数,并将其格式化为适合资讯框使用的形式;该函数也接受自身输出作为输入。getWebsite——获取官方网站 (P856)并将其格式化为适合资讯框使用的形式。checkvalue——在指定属性中查找给定的实体ID作为其值,若找到则返回该实体ID;否则返回nil。checkValidity——返回第一个匿名参数是否为有效的实体ID。showNoLinks——显示不应添加链接的条目标题。
函数用法示例
[编辑]{{#invoke:WikidataIB |getValue |<属性ID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no> |noicon=<yes/no> |df=<dmy/mdy/y> |bc=<BC/BCE> |qual=<ALL/DATES/P999> |list=<ubl/hlist/prose> |linked=<yes/no> |<本地参数>}}
{{#invoke:WikidataIB |getCoords |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |<本地参数>}}
{{#invoke:WikidataIB |getQualifierValue |<属性ID> |pval=<属性目标值的ID> |qual=<目标值的限定符ID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
{{#invoke:WikidataIB |getValueByQual |<属性ID> |qualID=<要匹配的限定符属性ID> |qvalue=<限定符属性目标值的QID> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
{{#invoke:WikidataIB |getValueByLang |<属性ID> |lang=<要匹配的语言代码> |name=<字段名> |suppressfields=<永不显示的字段列表> |fetchwikidata=<从维基数据获取值的字段列表> |onlysourced=<yes/no>}}
getValue函数
[编辑]getValue参数说明
[编辑]| 参数名 | 别名 | 功能说明 | 默认值 |
|---|---|---|---|
| (第一个匿名参数) | 1 | 待获取值的属性ID。必填。 | |
| (第二个匿名参数) | 2 | 本地提供的值,若非空则优先返回该值,而不使用维基数据中的值。 | 空 |
| qid | 要查询其属性的维基数据项目编号(QID)。若未提供或为空,则默认为当前页面对应的维基数据条目——使用mw.wikibase.getEntityIdForCurrentPage()。 | 当前页面的实体ID | |
| eid | qid的替代参数。除eid外,getValue的所有参数将nil和空字符串视为相同,因此设置|x=与省略该参数效果一致。但为与其他模块保持兼容,使用|eid=时始终返回空字符串,而省略eid则允许qid正常工作。
|
当前页面的实体ID | |
| rank | (不区分大小写)设为best时,优先返回首选级(preferred)的值,若无则返回普通级(normal)的值;设为preferred时仅返回首选值;设为normal时仅返回普通值;设为deprecated时仅返回弃用级(deprecated)的值。任何以“b”开头的参数值视为“best”,以“p”开头视为“preferred”,以“n”开头视为“normal”,以“d”开头视为“deprecated”。可同时指定多个等级,如“p n d”将返回所有等级。“Best”会覆盖其他标识。无效值将被忽略;若未指定任何等级,则返回首选级和普通级的值。
|
preferred和normal | |
| qual | 以标点符号分隔的限定符属性ID列表,这些限定符将附在属性值后的括号中返回。设为qual=ALL时返回全部限定符。设为qual=DATES时返回始于 (P580)和终于 (P582),并附带日期分隔符。
|
无 | |
| qualsonly | qo | 布尔值,启用后仅显示限定符而不显示属性值和括号。no、false和0均为假,其他值均为真。
|
false |
| fetchwikidata | fwd | 需要从维基数据获取值的字段列表。ALL表示获取所有字段。NONE、空白或省略该参数表示不获取任何字段。
|
无 |
| suppressfields | spf | 永不显示的字段列表,即使该字段有本地值也会强制不显示。 | 无 |
| name | 字段名称。在编写资讯框时,这是fetchwikidata和suppressfields所识别的名称。若指定了fetchwikidata或suppressfields(fetchwikidata=ALL时除外),则此参数为必填。
|
nil | |
| onlysourced | osd | 布尔值,用于过滤掉无来源或仅引用维基百科的维基数据值。no、false和0均为假,其他值均为真。
|
true |
| df | 日期格式,可选dmy(日月年)、mdy(月日年)或y(仅年份)。
|
dmy | |
| qdf | 限定符的日期格式。若省略,则默认使用df参数的值;若df亦省略,则默认为“y”。
|
df的值或“y” | |
| bc | 公元前(BC/BCE)后缀的显示格式。 | BCE | |
| plaindate | pd | 用于修改日期格式化的字符串。设为“true”/“yes”/“1”将禁用资料出处状态 (P1480)的添加及所有链接。设为“adj”效果相同,但使用日期的形容词形式。 | false |
| linked | 布尔值,启用后通过维基数据上的网站链接链接至本地页面。no、false和0均为假,其他值均为真。
|
true | |
| displaytext | dt | 若非空,则覆盖链接项的显示文本。 | 空 |
| shortname | sn | 布尔值,启用后对链接项使用简称 (P1813)替代标签。no、false和0均为假,其他值均为真。
|
false |
| uselabel | uselbl | 布尔值,强制显示标签而非消歧义后的网站链接。注意标签比网站链接更容易遭到破坏。no、false和0均为假,其他值均为真。
|
false |
| wdlinks | wdl | 布尔值,当本地无对应条目时,启用指向维基数据的链接显示。no、false和0均为假,其他值均为真。
|
false |
| unitabbr | uabbr | 布尔值,启用常用单位的缩写形式。no、false和0均为假,其他值均为真。
|
false |
| convert | conv | 布尔值,启用后将数量传递给Template:Cvt进行处理。no、false和0均为假,其他值均为真。
|
false |
| showunits | su | 布尔值,启用后显示数量的单位。no、false和0均为假,其他值均为真。
|
true |
| scale | 设置数量格式的比例缩放。可选值:“a”=自动;“0”=不缩放;“3”=千;“6”=百万;“9”=十亿;“12”=万亿。 | 0 | |
| maxvals | 设置当存在多个值时返回的最大数量。设为1可在返回值用于其他调用(如图像)时非常有用。0和空值表示返回全部。
|
0(全部) | |
| collapse | 设置内容自动折叠的阈值数量。0和空值表示全部内容展开显示。
|
0(全部) | |
| linkprefix | lp | 链接前缀,在链接值时前置添加。仅适用于拥有条目的项及字符串(如URL)。使用后会触发字符串的链接。双引号“"”将被去除,以便传递带空格的参数。 | 空 |
| linkpostfix | 链接后缀,在链接值时后置附加。仅适用于拥有条目的项及字符串(如URL)。使用后会触发字符串的链接。双引号“"”将被去除,以便传递带空格的参数。 | 空 | |
| prefix | 前缀,在字符串(如URL)的显示值前添加。双引号“"”将被去除,以便传递带空格的参数。 | 空 | |
| postfix | 后缀,在字符串(如URL)的显示值后附加。双引号“"”将被去除,以便传递带空格的参数。 | 空 | |
| qlinkprefix | qlp | 限定符的链接前缀(参见linkprefix)。 | 空 |
| qlinkpostfix | 限定符的链接后缀(参见linkpostfix)。 | 空 | |
| qprefix | 限定符的前缀(参见prefix)。 | 空 | |
| qpostfix | 限定符的后缀(参见postfix)。 | 空 | |
| sorted | 布尔值,启用后对返回值进行排序。no、false和0均为假,其他值均为真。
|
false | |
| qsorted | 布尔值,启用后对每个返回项中的限定符值进行排序。no、false和0均为假,其他值均为真。
|
false | |
| noicon | 布尔值,启用后将隐藏末尾的“在维基数据上编辑”笔形图标。适用于返回值需要进一步处理的情形。no、false和0均为假(即显示图标),其他值均为真(即隐藏图标)。
|
false | |
| list | 用于处理多个值列表的模板名称。例如“cslist”“hlist”“ubl”“blist”“olist”“p-1”。特殊值prose将生成“1、2、3和4”格式。
|
无 | |
| sep | 自定义多个返回值之间的分隔符。双引号“"”将被去除,以便传递带空格的参数。若未传递或传递空字符串,则使用默认列表分隔符(英文环境下为“, ”)。 | “, ” | |
| qsep | 自定义多个限定符返回值之间的分隔符。双引号“"”将被去除,以便传递带空格的参数。若未传递或传递空字符串,则使用默认列表分隔符(英文环境下为“, ”)。 | “, ” | |
| format | 决定全球坐标的显示格式为度/分/秒还是十进制度数。任何以“dec”开头的值(不区分大小写)将渲染为十进制度数,其他值则渲染为度分秒(DMS)格式。 | dms | |
| show | 决定全球坐标的返回方式。设为“longlat”将返回经度, 纬度。其他以“lon”开头的值(不区分大小写)仅返回经度。以“lat”开头的值(不区分大小写)仅返回纬度。与|noicon=true配合使用时,以上所有情况均返回纯数字的十进制度数(带符号:北纬和东经为正),适用于地图模板等场景。其他任何值(或不填)则按常规显示为DMS或十进制度数,并附带“NSEW”等方位标识。
|
空 | |
| lang | 允许以指定语言返回无链接的值。接受MediaWiki识别的标准ISO语言代码。若未提供或为空,则默认使用本地语言(多语言维基则为用户设置的语言)。 | 本地语言 | |
| parameterset | ps | 便捷参数,允许通过单个参数指定常用的参数组合:ps=1获取尽可能简单的链接值;ps=2表示纯文本值。参见参数组合。 | |
| linkredir | 布尔值,当维基数据上该值没有网站链接时,是否开启检查是否存在与标签同名的重定向页面。no、false和0均为假,其他值均为真。
|
false |
基本参数
[编辑]- getValue可接受命名参数
|qid=,用于指定条目的维基数据ID。通常省略该参数,默认使用当前条目。 - 待获取值的属性通过第一个匿名参数传入,该参数为必填。
- 若提供了第二个匿名参数,则直接返回该值,不再调用维基数据。
白名单与黑名单
[编辑]- 调用该函数所在字段的名称通过命名参数
|name=传入。系统首先会对照永不显示字段的黑名单进行检查(即该调用在所有情况下都必须返回空值)。若字段不在黑名单中,则继续对照白名单检查。若字段名称匹配,则当第二个匿名参数提供了本地值时返回该值,否则返回维基数据中的值。 - 指定
|fetchwikidata=ALL是返回所有不在黑名单中的字段的快捷方式。 - 使用黑名单或白名单时,name参数为必填;若未提供(除非
|fetchwikidata=ALL),模块将返回空值。 - 黑名单通过命名参数
|suppressfields=传入。 - 白名单通过命名参数
|fetchwikidata=传入。
来源要求
[编辑]getValue函数接受布尔参数onlysourced,用于过滤掉无来源或仅引自维基媒体项目的维基数据值。省略该参数、传递空参数(|onlysourced=)或传递空字符串("")均默认为true(即仅返回有来源的值)。值no、false和0视为false(即返回所有值);其他任何值均视为true(为便于阅读,建议使用|onlysourced=yes/no)。
指向维基数据的链接
[编辑]getValue函数接受布尔参数noicon,用于在返回值需要由资讯框进一步处理时(如URL),隐藏末尾的“在维基数据上编辑”图标和链接。省略该参数或传递空参数(|noicon=)默认为false(即显示图标)。空字符串("")以及值no、false和0视为false;其他任何值均视为true(为便于阅读,建议使用|noicon=true)。
笔形图标对非自动确认用户隐藏。这意味着大多数读者看不到该图标,这是在兼顾页面美观与防止维基数据破坏,以及鼓励编辑维基数据之间的平衡。
日期
[编辑]为满足mdy、dmy或仅年份等日期格式要求,getValue接受命名参数|df=,可取值“dmy”、“mdy”或“y”——默认值为“dmy”。
由于不同条目可能需要BC或BCE后缀,getValue接受命名参数|bc=,可取值“BC”或“BCE”——默认值为“BCE”。
等级
[编辑]|rank=参数设为preferred时仅返回首选值;设为normal时仅返回普通值;设为deprecated时仅返回已弃用值。若设为best,则优先返回首选值(若存在),否则返回普通值。参数值以“p”开头表示preferred,以“n”开头表示normal,以“d”开头表示deprecated,以“b”开头表示best。允许组合使用,例如|rank=p n返回所有首选值和普通值(此为默认行为),但“best”会覆盖其他参数。
特定数据类型处理器
[编辑]模块对以下数据类型设有专用处理器:
- 对应某维基百科条目的项,称为“wikibase-item”。此类值将尽可能链接至中文维基百科上对应的(消歧义后的)条目。
- 表示日期的项,可为世纪、年份、年月或年月日。
- 表示维基共享资源媒体、URL、外部ID或其他纯文本的项。
- 表示数量的项,可带有单位或无单位,也可表示范围。
- 表示全球坐标的项,以经纬度表示,并带有相应精度。
其他数据类型的项目前尚未支持。
第三类数据类型可使用以下参数:
|prefix=、|postfix=、|linkprefix=、|linkpostfix=
若未提供|linkprefix=或|linkpostfix=中的至少一项,则仅使用|prefix=和|postfix=。例如,获取维也纳天文台(Q532127)中的小行星中心观测代码 (P717):
{{#invoke:WikidataIB|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}}→ before 045 after
若参数值含有前导或尾随空格,请用双引号将其括起(否则空格会被去除)。若提供了|linkprefix=或|linkpostfix=,则四个参数均被使用,每个值按如下格式生成链接:
[[ linkprefix WikidataValue1 linkpostfix | prefix WikidataValue1 postfix]], [[ linkprefix WikidataValue2 linkpostfix | prefix WikidataValue2 postfix]], 等。
这样可生成指向列表文章不同章节的多个链接,例如天文台编号列表。例如,获取维也纳天文台(Q532127)中的小行星中心观测代码 (P717)时,可生成如下链接:
{{#invoke:WikidataIB|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="天文台編號列表#" |linkpostfix= |qid=Q532127}}→ [天文台编号列表#045 045]
|prefix=、|postfix=、|linkprefix=、|linkpostfix=参数同样适用于wikibase-item(若其被链接)。
多个返回值的格式化
[编辑]|sorted=<yes|no>为布尔值,用于启用返回值排序。不传参、传空字符串、“false”、“no”或“0”均禁用排序。该排序仅为简单的字母顺序排序,链接值按“[[ ...”排序。|sep=<分隔符>允许自定义多个返回值之间的分隔符。默认值为"、"(顿号)。若分隔符含有前导或尾随空格,请用双引号括起(例如|sep=" - ")。分隔符中的双引号会被去除。管道符(|)须转义为{{!}}。出于无障碍考虑(参见MOS:PLIST),请勿使用|sep=<br>实现无项目符号垂直列表,应使用|list=ubl。|list=<prose|cslist|hlist|ubl|blist|olist>可将多个返回值显示为:用“和”连接最后两项的句子(|list=prose)、水平逗号分隔列表(|list=cslist,不适用于正文)、水平列表(|list=hlist)、垂直无项目符号列表(|list=ubl)、垂直项目符号列表(|list=blist)或垂直有序列表(|list=olist)。这些格式会覆盖分隔符设置,且不显示指向“在维基数据上编辑”的笔形图标。|list=p-1显示最后一个值。与|maxvals=n配合使用可显示第n个值。
限制返回值数量
[编辑]某些属性预期只有一个值,如图像 (P18),但维基数据上可能存在多个值。设置|maxvals=1可将返回值数量限制为1,返回第一个可用值。其他数值同样有效,但0视为“无限制”。关于如何返回最后一个可用值,请参见上文相应说明。
取消链接
[编辑]表示本地维基条目的返回值默认会被链接(包括重定向页面,但不包括消歧义页面)。若需取消链接,可设置|linked=no。
单位缩写
[编辑]当返回值为数量时,会附加其单位的名称。资讯框可能希望使用常用单位的缩写形式,可通过设置|unitabbr=true实现。
限定符
[编辑]可提供|qual=参数,若存在限定符则返回指定属性的限定符。若该值设为以标点分隔的属性ID列表(如P123, P456),则仅返回这些属性的限定符值。若设为|qual=ALL,则返回所有限定符值。若设为|qual=DATES,则返回始于 (P580)和终于 (P582)并附带日期分隔符。无论哪种情况,限定符值均跟在属性值之后,并置于括号内。若返回多个限定符值,默认以逗号分隔,但可通过|qsep=自定义分隔符(可用双引号括起,双引号会被去除,以便包含空格)。设置|qsorted=yes可对限定符值进行字母数字排序。
参数简写
[编辑]部分较长参数可使用缩写,使资讯框设计更紧凑:
fwd → fetchwikidataosd → onlysourcedspf → suppressfieldswdl → wdlinks
参数组合
[编辑]通常情况下,getValue的参数默认值体现了编辑者的共识。例如,|onlysourced=默认为true,因此仅返回来源优于“维基百科”的维基数据值;|fetchwikidata=默认为none,因此须通过设置某些字段名称或“ALL”来启用后才会返回值。这种安全默认设计使得资讯框可具备维基数据功能,而无需改动任何条目,直到为特定条目启用。
为简化getValue在其他场景下的使用,可通过|parameterset=或其别名|ps=指定常用参数组合。目前已实现两种组合:
- ps=1:一组常用覆盖参数,用于获取尽可能链接的简单值:
|rank ="best" |fetchwikidata ="ALL" |onlysourced ="no" |noicon ="true"
- ps=2:以纯文本形式获取原始值:
|rank = "best" |fetchwikidata = "ALL" |onlysourced = "no" |noicon = "true" |linked = "no" |plaindate = "true"
- ps=3:参数组合1,但启用
|onlysourced=yes:
|rank = "best" |fetchwikidata = "ALL" |onlysourced = "yes" |noicon = "true" |linked = "no" |plaindate = "true"
如有需求,可创建其他组合。
封装模板
[编辑]模板{{wdib}}可作为{{#invoke:WikidataIB |getValue}}的便捷封装使用。
其他主要函数
[编辑]getPreferredValue函数
[编辑]getPreferredValue函数与getValue用法完全相同,接受相同的参数,但仅返回等级设为“首选”的属性值。该函数现已弃用,请改用getValue|rank=best。
getCoords函数
[编辑]- getCoords可接受命名参数
|qid=,用于指定条目的维基数据ID。通常省略该参数,默认使用当前条目。 - 若提供了第一个匿名参数,则直接返回该值,不再调用维基数据。
- 从维基数据获取的坐标经解析后传递给Template:Coord,其显示效果与手动调用该模板一致。
- 永不显示字段的黑名单和白名单机制与getValue相同,通过
|suppressfields=和|fetchwikidata=实现。 format参数设置显示格式为十进制度数或度分秒。以“dec”开头的任何值均表示十进制度数,其他值则表示为度分秒。display参数设置显示位置,可选“inline”、“title”或“inline, title”。默认不设置(即使用{{Coord}}的默认值,当前为“inline”)。
getQualifierValue函数
[编辑]getQualifierValue函数用于获取限定符的值。使用时需指定属性、该属性对应的值以及相关的限定符。参数说明如下:
- 属性ID通过匿名参数(或
|1=)传入。 - 该属性的目标值通过
|pval=传入。 - 目标值的限定符ID通过
|qual=传入。 - 白名单和黑名单的实现参数与getValue相同。
- 可选布尔参数
|onlysourced=,用于指定是否仅返回有来源的属性值(默认为“no”)。 - 可选条目ID
|qid=,用于访问任意条目。 - 输出格式化的参数与getValue相同。
getQualifierValue示例
[编辑]在南极望远镜(Q1513315)中,属性重大事件 (P793)的值为建筑施工(Q385378),该值带有两个限定符始于 (P580)和终于 (P582)。要获取开始日期:
{{#invoke:WikidataIB |getQualifierValue |qid=Q1513315 |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL }}
在南极望远镜中返回:
getValueByQual函数
[编辑]getValueByQual函数返回某个属性的值,该属性包含一个限定符,其值为给定的实体ID。参数说明如下:
- 属性ID通过匿名参数(或
|1=)传入。 - 限定符的属性ID(或“ALL”或“DATES”)通过
|qualID=传入。 - 该限定符的目标值的维基数据实体ID通过
|qvalue=传入。 - 白名单和黑名单的实现参数与getValue相同。
- 可选布尔参数
|onlysourced=,用于指定是否仅返回有来源的属性值(默认为“no”)。 - 可选条目ID
|qid=,用于访问任意条目。 - 输出格式化的参数与getValue相同。
getValueByQual示例
[编辑]在肉类食物(Q10990)中,属性读音 (音频文件) (P443)有多个值,每个值均带有限定符作品或名称的语言 (P407)。我们可以返回限定符值为阿拉伯语(Q13955)所对应的属性值:
{{#invoke:WikidataIB |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q13955 |fwd=ALL |osd=no |noicon=true}}→ Ar-لحم.ogg
getValueByLang函数
[编辑]getValueByLang函数返回某个属性的值,该属性包含限定符作品或名称的语言 (P407),且该限定符的值为给定的语言代码。参数说明如下:
- 属性ID通过匿名参数(或
|1=)传入。 - 维基媒体语言代码 (P424)用于匹配语言,其代码由
|lang=xx[-yy]指定。若未提供代码,则使用默认语言。 - 白名单和黑名单的实现参数与getValue相同。
- 可选布尔参数
|onlysourced=,用于指定是否仅返回有来源的属性值(默认为“no”)。 - 可选条目ID
|qid=,用于访问任意条目。 - 输出格式化的参数与getValue相同。
getValueByLang示例
[编辑]在开源开发网络(Q7565108)中,属性官方网站 (P856)有多个值,每个值均带有限定符作品或名称的语言 (P407)。我们可以返回其作品或名称的语言 (P407)限定符值(维基数据项)本身具有维基媒体语言代码 (P424)属性且值为“ja”(即日语(Q5287))所对应的属性值:
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}→ https://ja.osdn.net/
若不指定|lang=,使用默认语言(此处为英语(Q1860),其维基媒体语言代码 (P424)值为“en”)也可获得相同结果:
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}→
工具函数
[编辑]getLink函数
[编辑]getLink接受一个维基数据实体的QID,作为第一个匿名参数或通过|qid=传入。
若当前维基站点存在指向某条目的网站链接,则返回该条目的链接,显示文本为维基数据标签。 若无网站链接,则以纯文本形式返回标签。 若当前语言无对应标签,则显示QID替代。
{{#invoke:WikidataIB |getLink |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |getLink |Q3621491}}→ 考古学家
getLabel函数
[编辑]getLabel接受一个维基数据实体的QID,作为第一个匿名参数或通过|qid=传入。
返回指定QID的维基数据项在当前语言下的标签。 若当前语言无对应标签,则返回QID替代。 请注意,返回的是维基数据条目中与当前维基语言相同的标签(若存在)。
{{#invoke:WikidataIB |getLabel |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |getLabel |Q3621491}}→ 考古学家{{#invoke:WikidataIB |getLabel |Q19805408}}→ Module:Biblio/Ouvrage
label函数
[编辑]label接受一个维基数据实体的QID,作为第一个匿名参数或通过|qid=传入。
返回指定QID的维基数据项在当前语言下的标签,或链接至当前页面。 若当前语言无对应标签,则返回空字符串。 请注意,返回的是维基数据条目中与当前维基语言相同的标签(若存在)。
{{#invoke:WikidataIB |label |Q29016906}}→ Corisca and the Satyr{{#invoke:WikidataIB |label |Q3621491}}→ 考古学家{{#invoke:WikidataIB |label |Q19805408}}→ Module:Biblio/Ouvrage
getAT函数
[编辑]getAT接受一个维基数据实体的QID,作为第一个匿名参数或通过|qid=传入。
若当前维基站点存在指向某条目的网站链接,则以纯文本形式返回该网站链接(即条目标题)。 若无网站链接,则不返回任何内容。 请注意,返回的是当前维基百科中对应的条目标题(若维基数据条目中存在跨语言链接)。
{{#invoke:WikidataIB |getAT |Q29016906}}→{{#invoke:WikidataIB |getAT |Q3621491}}→
getDescription函数
[编辑]getDescription接受一个维基数据实体的QID,通过|qid=传入(若省略则默认为当前条目关联的QID)。
同时接受一个本地参数,作为第一个匿名参数传入。
若传入的本地参数(除“Wikidata”或“none”外)非空,则直接返回该参数值。 若本地参数为“Wikidata”,则以纯文本形式返回该维基数据实体的条目描述。 若描述不存在,或本地参数为“none”,则不返回任何内容。
{{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}}→ painting by Artemisia Gentileschi{{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}}→ A painting{{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}→{{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}}→ 研究过去人类活动的人{{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}}→ A profession{{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}→
formatDate函数
[编辑]formatDate接受一个来自mw.wikibase.entity:formatPropertyValues的标准格式日期时间(例如“1 August 30 BCE”)作为参数1,并根据df(日期格式)和bc参数进行格式化。
{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}}→ 1 August 30 公元前{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}}→ August 1, 30 公元前- df可选“dmy”/“mdy”/“y”——默认值为“dmy”
- bc可选“BC”/“BCE”——默认值为“BCE”
checkBlacklist函数
[编辑]checkBlacklist用于检查指定字段是否被允许。 若字段不在黑名单中(即允许使用),则返回true。 若字段在黑名单中(即禁止使用),则返回false。
示例:
{{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | 不在黑名单 | 在黑名单}}→ 不在黑名单{{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | 不在黑名单 | 在黑名单}}→ 不在黑名单
emptyor函数
[编辑]若第一个匿名参数仅为标点符号、空白字符或HTML标签,则返回空值;否则原样返回该参数(包括前导/尾随空格)。
若参数可能包含“=”,则必须显式调用:
| 1 = 参数内容
此时前导和尾随空格将被去除。
该函数在资讯框中可用于替换如下形式的测试:
{{#if: {{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> | }}
改用仅需单次调用维基数据的形式:
{{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}
labelorid函数
[编辑]labelorid是一个公开函数,用于暴露labelOrId()的输出结果。
Q编号(实体ID)通过|qid=或作为匿名参数传入。
返回该实体的维基数据标签;若无标签则返回QID。
getQid函数
[编辑]- getQid针对当前页面及其关联的维基数据条目进行操作。
- 若提供了第一个匿名参数或
|qid=,则返回该QID; - 否则,若存在“分类的主主题”(P301)的维基数据实体ID,则返回该ID;
- 否则,若当前页面关联了维基数据实体ID,则返回该ID;
- 否则不返回任何内容。
examine函数
[编辑]examine提供指定属性的完整转储资讯。属性ID通过第一个匿名参数(或通过别名|pid=)传入,条目由参数“qid”指定;若未提供qid,则使用当前页面对应的条目。两个参数均可匿名传入,顺序不限。
其工作方式与Dump函数类似,但仅加载单个声明,而非整个维基数据条目。
- 示例:
{{#invoke:WikidataIB |examine |qid=Q1396889 |P50}}
url2函数
[编辑]url2接受参数url=,该参数为一个有效的URL,并将其格式化为适合资讯框使用的形式。
示例:
{{#invoke:WikidataIB |url2 |url= http://www.example.com/ }}→ www.example .com/ <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com/]</span>
{{#invoke:WikidataIB |url2 |url= http://www.example.com/path/ }}→ www.example .com/path/ <span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com/path/]</span>
{{#invoke:WikidataIB |url2 |url= {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}→ www.audi .com、https://www .audi .co .za/、https://www .audi .de/、https://www .audi .fr/ 
<span class="url">[https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/ www<wbr/>.audi<wbr/>.com、https://www<wbr/>.audi<wbr/>.co<wbr/>.za/、https://www<wbr/>.audi<wbr/>.de/、https://www<wbr/>.audi<wbr/>.fr/]</span> [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=编辑维基数据|link=https://www.wikidata.org/wiki/Q23317?uselang=zh-sg#P856|编辑维基数据]]
{{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}}→ https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/
https://www.audi.com、https://www.audi.co.za/、https://www.audi.de/、https://www.audi.fr/ [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=编辑维基数据|link=https://www.wikidata.org/wiki/Q23317?uselang=zh-sg#P856|编辑维基数据]]
{{#invoke:WikidataIB |url2 |url= {{url|http://www.example.com/}} }}→ www.example .com www .example .com/ www .example .com]] <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span> www<wbr/>.example<wbr/>.com/ www<wbr/><wbr/>.example<wbr/><wbr/>.com]</span>]</span>
与{{URL}}输出对比:
{{URL | http://www.example.com/ }}→ www.example .com <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span>
{{URL | http://www.example.com/path/ }}→ www.example .com /path / <span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com<wbr/>/path<wbr/>/]</span>
{{URL | {{wikidata|property|Q23317|P856}} }}→ www.audi .com <span class="url">[https://www.audi.com www<wbr/>.audi<wbr/>.com]</span>
{{wikidata|property|Q23317|P856}}→ https://www.audi.comhttps://www.audi.com
参见
[编辑]- {{#invoke:URL|url}}与{{#invoke:URL|url2}}
编入资讯框
[编辑]通常,getValue调用会在资讯框定义中通过适当的模板参数来调用。en:Template:Infobox book/Wikidata/Sandbox中给出了一个简单的实现示例。以资讯框中的“作者”字段为例,其编码方式如下:
| label2 = Author{{#if:{{{authors|}}}|s}}
| data2 = {{#invoke:WikidataIB |getValue |P50 |name=author |fetchwikidata={{{fetchwikidata|}}} |suppressfields={{{suppressfields|}}} |{{{authors|{{{author|}}}}}} }}
待获取的属性为第一个匿名参数,此处为作者 (P50)。
字段名称通过|name=传入,系统会将该名称与黑名单和白名单进行比对。若要在特定条目中始终隐藏作者字段,编者可在资讯框中设置|suppressfields=author,此后该字段将永不显示。
若字段不在黑名单中,则可通过在资讯框中设置|author=乔治·奥威尔等本地值来显示作者资讯。同时也可接受|authors=参数。若字段名称在白名单中(例如|fetchwikidata=author; genre; pub_date; pages; dewey; congress),且未提供本地值,则资讯框将显示从维基数据获取的值。分隔符可使用除|和{}之外的任意字符。
快捷方式|fetchwikidata=ALL将获取所有不在黑名单中的字段,前提是条目的对应字段未提供本地值。
资讯框中的调用示例
[编辑]getValue的基本用法:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{localparameter|}}} }}
完整参数集合:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |wdl={{{wikidatalink|}}} |df={{dateformat|}} |bc={{{bc|}}} |prefix= |postfix= |linkprefix= |linkpostfix= |sorted={{{sorted|}}} |sep={{{separator|}}} |list={{listtype|}}} |{{{localparameter|}}} }}
当然,资讯框中特定字段的参数可以采用固定值,而不必从资讯框接收参数(后者会影响所有字段)。例如,某个字段可能需要设置|list=hlist以显示一系列短词;而另一个字段则可能需要使用|list=ubl来显示每行若干词的垂直无项目符号列表。
坐标
[编辑]getCoords调用在接收到从维基数据返回的坐标后,将显示Template:Coord的输出结果。其编码方式如下:
|label20 = 坐标
| data20 = {{#invoke:WikidataIB |getCoords |name=coordinates |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{coordinates|}}} }}
示例参见en:Template:Infobox biosphere reserve:
{{Infobox biosphere reserve
| fetchwikidata = ALL
}}
在维基数据包含坐标的条目中使用时,坐标将显示在常规位置。
升级现有资讯框
[编辑]由于维基数据功能需要|fetchwikidata=参数,因此可将现有资讯框替换为集成了这些调用的新资讯框,而无需对任何条目做任何改动。使用新资讯框的每个条目可随后通过设置|fetchwikidata=ALL或该条目所需的字段列表来启用功能。在启用功能时,编者有责任检查是否显示了不想要的字段。若有,可通过设置|suppressfields=为不需要的字段列表,将其添加到条目的黑名单中。
可供查证
[编辑]当某个特定字段必须仅包含有来源的值时,应使用getValue并确保|onlysourced=未设为“false”、“0”或“no”。默认情况下,该函数会排除无来源或仅引自维基百科的值,从而降低条目层面的检查难度。若接受无来源数据,可设置|onlysourced=no。由于无法通过自动化机制判断现有来源在特定上下文中是否可靠,此项工作仍需由熟悉主题的编辑在条目层面完成,且应在首次为该条目启用维基数据时进行。
辅助模板
[编辑]- Template:If then show
- 测试第一个匿名参数是否非空,若非空则返回该参数;否则返回第二个匿名参数。可选的第三和第四个匿名参数为返回第一个参数时提供前缀和后缀。适用于第一个参数为维基数据调用的情况。
- Template:Ifnoteq then show
- 测试第一个匿名参数是否等于第二个匿名参数,若相等则返回第三个匿名参数;否则返回第一个匿名参数。适用于第一个参数为Lua模块的
{{#invoke:调用,且其返回值需要特定例外处理的情况。 - Template:If then wikilink
- 测试第一个匿名参数是否非空,若非空则返回带有可选命名空间前缀的内部链接格式。
- Template:Formatter link
- 接受外部标识符代码作为
|code=,并使用格式化URL作为|url=构建指向外部资源的链接,显示文本为代码本身。 - Template:Emptyor
- 测试一段文本是否实际为空或包含有效内容。若匿名参数仅包含HTML标签、标点符号(如维基标记)和空白字符,则返回空值;否则原样返回该参数。为p.emptyor函数的封装。
使用示例:Infobox book
[编辑]本节内容取自英文维基百科的en:Template:Infobox book/Wikidata/Sandbox/doc。
不使用维基数据
[编辑]{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata =
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
此用法与普通资讯框无异:仅显示本地提供的参数。
{{Infobox book/Wikidata/Sandbox
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
若不使用黑名单和白名单,可省略相关参数。
全部使用维基数据
[编辑]{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
从维基数据获取作者、出版日期、页数、杜威分类号和国会图书馆目录号。
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
}}
快捷方式:将|fetchwikidata=设为ALL可获取所有可用字段。
任何字段均可通过|suppressfields=指定来隐藏,或通过提供本地值来覆盖。
永不显示体裁字段
[编辑]{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
体裁字段将始终被隐藏,即使提供了本地值也不例外。
{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
本地值覆盖
[编辑]{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
体裁字段将显示“Political satire”,无论维基数据中存储的是什么。
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
| genre = Novel
}}
体裁字段将显示“Novel”,无论维基数据中存储的是什么。
不获取体裁字段
[编辑]{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata = author; pub_date; pages; dewey; congress
}}
体裁字段不会从维基数据获取。仅导入作者、出版日期、页数、杜威分类号和国会图书馆目录号。本地提供的体裁值将正常显示。
参见
[编辑]- Module:Wikidata,更底层的处理维基数据
- Template:WikidataOI,使用Module:Wd的模板,可选提供
|fetch=和|ifeq=选项,类似此模块的|fetchwikidata=与|fwd=
追踪分类
[编辑]- Category:缺少维基数据资讯的条目(500)