This module is a package of functions for accessing Wikidata properties which cannot be accessed with #property.
Code | Returns |
---|---|
{{#invoke:wikibase|capital}} | name of the "capital" property as listed in the Wikidata item associated with the current page, displayed as a link |
{{#invoke:wikibase|commonslink}} | name of the Wikimedia Commons category, as listed in the Wikidata item associated with the current page |
{{#invoke:wikibase|disambig}} | true if the Wikidata item corresponds to a Wikipedia disambiguation pagefalse if it does not |
{{#invoke:wikibase|flag}} | filename listed under the "flag" property in the Wikidata item associated with the current page |
{{#invoke:wikibase|id}} | ID number of the Wikidata item associated with the current page |
{{#invoke:wikibase|idLink}} | ID number of the Wikidata item associated with the current page, in the form of a link to that item |
{{#invoke:wikibase|label}} | label of the Wikidata item associated with the current page |
{{#invoke:wikibase|latitude}} | decimal latitude as listed in the Wikidata item associated with the current page |
{{#invoke:wikibase|longitude}} | decimal longitude as listed in the Wikidata item associated with the current page |
{{#invoke:wikibase|page|Qxxxxx}} | name of the local page associated with Wikidata item number Qxxxxx |
{{#invoke:wikibase|sitelink|enwiki}} | name of the English Wikipedia page name, as listed in the Wikidata item associated with the current pageenwiki can be replaced with other language codes to obtain corresponding page names for Wikipedia or Wikivoyage in other languages |
-- Module:Wikibase function getId( id ) if not mw.wikibase then return "wikibase module not found" end if id then return id end entity = mw.wikibase.getEntityObject() if not entity then return nil end return entity.id end -- Returns the link corresponding to the code provided. function sitelink(dbname) if dbname==nil or dbname=='' then return '' end local sl = mw.wikibase.getEntityObject() if sl and sl.sitelinks[dbname] then return sl.sitelinks[dbname].title end return '' end -- Returns the corresponding geographical coordinates of the item function coords(typ,fallback) if fallback~=nil and fallback~='' and string.match(fallback, '^<%!%-%-.*%-%->$')==nil then return fallback end local item = mw.wikibase.getEntityObject() if item~=nil and item.claims~=nil then local coords = item.claims.P625 if coords~=nil and coords[0]~=nil and coords[1]==nil then return coords[0].mainsnak.datavalue.value[typ] end end return '' end -- Returns the most updated info from a series of statements function updated(item,prop,frame) if item~=nil then local claims = item.claims if claims~=nil and claims[prop]~=nil then for index,claim in pairs(claims[prop]) do local qual = claim.qualifiers if qual==nil or qual.P582==nil then -- p582 è la data di fine, significa che non è il valore attuale local val = claim.mainsnak.datavalue.value if val['numeric-id']~=nil then local id = 'Q'..val['numeric-id'] local sl = mw.wikibase.sitelink(id) local lb = mw.wikibase.label(id) if sl~=nil and sl~='' then return frame:preprocess('[['..sl..'|'..lb..']]') end return lb end return val end end end end return '' end local p = {} -- Returns the ID number of the data item linked to the current page. function p.id(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return id end -- Returns the ID number of the data item linked to the current page in the form of a link to Wikidata. function p.idLink(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return "[[d:" .. id .. "|" .. string.upper(id) .. "]]" end -- Returns the label of the data item. function p.label(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return mw.wikibase.label( id ) end -- Returns the local page of the data item provided. function p.page(frame) id = getId(frame.args[1]) if id == nil then return "(no element found)" end return mw.wikibase.sitelink( id ) end -- Returns the link corresponding to the code provided. function p.sitelink(frame) return sitelink(frame.args.dbname or frame.args[1]) end -- Returns the corresponding link to Wikipedia in English. function p.enwikilink(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local sl = sitelink('enwiki') if sl~=nil and sl~='' then return sl end local t = mw.title.getCurrentTitle().text if t~=nil and t~='' then return t end return '' end -- Returns the Commons category of the data item. function p.commonslink(frame) if frame.args[1]~=nil and frame.args[1]~='' then return 'Category:'..frame.args[1] end local item = mw.wikibase.getEntityObject() if item~=nil and item.claims~=nil then local cat = item.claims.P373 if cat~=nil and cat[0]~=nil and cat[1]==nil and cat[0].mainsnak.datavalue.value~=nil then return 'Category:'..(cat[0].mainsnak.datavalue.value) end end local t = mw.title.getCurrentTitle().text if t~=nil and t~='' then return 'Category:'..t end return '' end -- Returns the name of the capital or main city. function p.capital(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local item = mw.wikibase.getEntityObject() return updated(item,'P36',frame) end function p.capoluogo(frame) return p.capital(frame) end function p.valuta(frame) if frame.args[1]~=nil and frame.args[1]~='' then return frame.args[1] end local item = mw.wikibase.getEntityObject() return updated(item,'P38',frame) end -- GET FLAG -- P41 thumb image function p.flag(frame) -- if frame.args[1]~=nil and frame.args[1]~='' then -- return frame.args[1] -- end -- local title="" - not using title local arg1 = frame.args[1] local item = mw.wikibase.getEntityObject(arg1) if item == nil then return end local flag = updated(item,'P41',frame) -- local title = mw.wikibase.sitelink(arg1) if flag ~= nil and flag ~= '' then return flag -- return "[[File:" .. flag .. "| thumb | 200px | " .. title .. "]]" end end -- Restituisce l'etichetta dell'elemento rappresentante la bandiera relativa all'elemento dell'articolo function p.bandiera_titolo(frame) local item = mw.wikibase.getEntityObject() if item~=nil then local claims = item.claims if claims~=nil and claims.P163~=nil and claims.P163[0]~=nil and claims.P163[1]==nil then return mw.wikibase.label('Q'..claims.P163[0].mainsnak.datavalue.value['numeric-id']) end end return mw.title.getCurrentTitle().text..' - Bandiera' end -- Restituisce la latitudine corrispondente all'articolo. function p.latitude(frame) return coords('latitude',frame.args[1]) end -- Restituisce la longitudine corrispondente all'articolo. function p.longitude(frame) return coords('longitude',frame.args[1]) end function p.disambig(frame) local item = mw.wikibase.getEntityObject() if item~=nil and item.descriptions~=nil then local desc = item.descriptions.en if desc~=nil and desc.value~=nil and desc.value:lower():find('disambiguation page')~=nil then return true end end return false end function p.instanceof(arg) arg = tonumber(arg.args[1] or arg) if item and item.claims and item.claims.P31 then local claims = item.claims.P31 for index, claim in pairs(claims) do if claim.mainsnak and claim.mainsnak.datavalue then local val = claim.mainsnak.datavalue.value if val and val['numeric-id'] and arg == val['numeric-id'] then return true end end end end return false end return p