Module:WikidataCheck
- ak:Module:WikidataCheck
- አማርኛ
- Anarâškielâ
- العربية
- Արեւմտահայերէն
- অসমীয়া
- Asturianu
- Авар
- Azərbaycanca
- تۆرکجه
- Basa Bali
- বাংলা
- 閩南語 / Bân-lâm-gú
- Беларуская (тарашкевіца)
- भोजपुरी
- Bosanski
- Cebuano
- Čeština
- Cymraeg
- Dansk
- الدارجة
- Eesti
- Ελληνικά
- Español
- فارسی
- Fiji Hindi
- Føroyskt
- Français
- Furlan
- Galego
- گیلکی
- ગુજરાતી
- 한국어
- Hausa
- हिन्दी
- Hrvatski
- Ilokano
- Bahasa Indonesia
- Íslenska
- Italiano
- Jawa
- ಕನ್ನಡ
- ქართული
- Ikinyarwanda
- Kurdî
- ລາວ
- Latviešu
- Lietuvių
- Ligure
- Magyar
- मैथिली
- Македонски
- മലയാളം
- مصرى
- Bahasa Melayu
- Minangkabau
- Мокшень
- မြန်မာဘာသာ
- 日本語
- Napulitano
- Norsk nynorsk
- ଓଡ଼ିଆ
- Oʻzbekcha / ўзбекча
- ਪੰਜਾਬੀ
- پښتو
- Português
- Qaraqalpaqsha
- Română
- Sakizaya
- Sardu
- Scots
- සිංහල
- Simple English
- Slovenščina
- کوردی
- Српски / srpski
- Srpskohrvatski / српскохрватски
- Sunda
- Suomi
- Tagalog
- Tarandíne
- တႆး
- తెలుగు
- ไทย
- Türkçe
- Türkmençe
- Українська
- اردو
- Vèneto
- Tiếng Việt
- Winaray
- 粵語
- 中文
To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.
Template:WikidataCheck compares a template parameter to a Wikidata property and adds pages using the template to one of three categories: not in, same as, or different from Wikidata. It is powered by the Lua module Module:WikidataCheck.
Usage
To add only articles to the categories:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix}}
To add pages in other namespaces to the categories:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix|namespaces=0,14}}
To prevent adding pages to a "same as" category:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix|nocatsame=1}}
To make comparison case insensitive for "different from" category:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix|ignorecase=1}}
Parameters
- Required
|property=
is the P### of the property. The "P" must be uppercase.|value=
is the value to use from the template. This would be something like{{{id|}}}
or{{{id|{{{1|}}}}}}
|category=
is the prefix to use in front of the category names. The categories created are "[prefix] not in Wikidata", "[prefix] same as Wikidata", and "[prefix] different from Wikidata".- It is recommended you create these categories with
{{hiddencat}}
before applying this template.
- It is recommended you create these categories with
- Optional
|namespaces=
is a comma separated list of the numerical namespaces to apply the template. The default is 0, which is just article space.|nocatsame=
if set to any value will prevent adding pages to a "same as" category. The "not in" and "different from" categories are still added, where applicable.|ignorecase=
if set to any value will ignore upper/lower case differences between value in template and value in Wikidata when adding pages to a "different from" category.|qid=
if specified will check a a different Wikidata item than the current article.|onlysourced=
if set to "yes" will ignore unsourced Wikidata properties, equivalent to Module:WikidataIB's|onlysourced=yes
.
Example
For {{MusicBrainz artist}}
, which checks MusicBrainz artist ID (P434), the following code would be added:
{{WikidataCheck|property=P434|value={{{mbid|{{{id|{{{1|}}}}}}}}}|category=MusicBrainz artist}}
Articles using that template with an ID would be placed in one of the following categories:
- Category:MusicBrainz artist not in Wikidata
- Category:MusicBrainz artist same as Wikidata
- Category:MusicBrainz artist different from Wikidata
See also
- {{Tracks Wikidata }} for use in template documentation
- {{Wikidata tracking category }} for use in hidden tracking categories
- Category:Wikipedia categories tracking data not in Wikidata
- Category:Wikipedia categories tracking data same as Wikidata
- Category:Wikipedia categories tracking Wikidata differences
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.
local p = {} function p.wikidatacheck(frame) local pframe = frame:getParent() local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template local property = config.property local value = config.value or "" local catbase = config.category local namespaces = config.namespaces local nocatsame = config.nocatsame or "" local ignorecase = config.ignorecase or "" local qid = config.qid or "" local onlysourced = (config.onlysourced == 'yes') or false local ok = false -- one-way flag to check if we're in a good namespace local ns = mw.title.getCurrentTitle().namespace for v in mw.text.gsplit( namespaces, ",", true) do if tonumber(v) == ns then ok = true end end if not ok then -- not in one of the approved namespaces return "" end local entity if qid == "" then entity = mw.wikibase.getEntityObject() else entity = mw.wikibase.getEntityObject(qid) end if not entity then -- no Wikidata item return "[[Category:" .. catbase .. " not in Wikidata]]" end if value == "" then return nil -- Using Wikidata end local claims = entity.claims or {} local hasProp = claims[property] if not hasProp then -- no claim of that property return "[[Category:" .. catbase .. " not in Wikidata]]" -- bad. Bot needs to add the property end if ignorecase ~= "" then value = string.lower( value ) end for i, v in ipairs(hasProp) do -- Now we try to iterate over all possible values? propValue = (v.mainsnak.datavalue or {}).value if ignorecase ~= "" then propValue = string.lower( propValue ) end local sourced = false -- check for external refs a la Module:WikidataIB onlysourced if v.references then for j, vr in ipairs(v.references) do local ref = mw.wikibase.renderSnaks(vr.snaks) if not ref:find("Wiki") then sourced = true break end end end if propValue == value and (not onlysourced or sourced) then if nocatsame == "" then return "[[Category:" .. catbase .. " same as Wikidata]]" -- yay! else return nil -- if nocatsame, the "same as" category is not added end end end return "[[Category:" .. catbase .. " different from Wikidata]]" -- needs human review :( end return p