Mòdul:Wikibase
Mòdul que proporciona funcions bàsiques d'accés a Wikidata. Està copiat de la documentació de mw:Extension:Wikibase Client/Lua. Per a funcions més desenvolupades adaptades a les necessitats de la Viquipèdia, vegeu Mòdul:Wikidata.
Funcions:
id
Retorna l'id de l'element de Wikidata corresponent a la pàgina. Sintaxi:
{{#invoke:wikibase|id}}
No utilitza cap paràmetre, només analitza la pròpia pàgina. En cas de no existir l'element retorna una cadena buida "".
Exemple, per aquesta pàgina: {{#invoke:wikibase|id}} → Q8565357
label
Retorna l'etiqueta d'un element donat. Sintaxi:
{{#invoke:wikibase|label}}
{{#invoke:wikibase|label|<id>|<lang>}}
Sense cap paràmetre retorna l'etiqueta de l'element associat a la pàgina actual. Proporcionant l'id retornarà l'etiqueta corresponent. En cas de no existir o ser erroni no retorna res. Amb un segon paràmetre amb un codi de llengua obté l'etiqueta en la llengua especificada.
Exemple: {{#invoke:wikibase|label|Q713246}} → Víctor Balaguer i Cirera
label_lang
Retorna el codi de llengua de l'etiqueta obtinguda per a un element donat. Sintaxi:
{{#invoke:wikibase|label_lang}}
{{#invoke:wikibase|label_lang|<id>}}
Sense cap paràmetre retorna el codi de llengua de l'etiqueta de l'element associat a la pàgina actual. Proporcionant l'id retornarà el valor per l'etiqueta corresponent. Normalment obté l'etiqueta en la llengua local del wiki. Si no existeix pot ser en alguna de les llengües alternatives definides (actualment les alternatives al català són l'occità i l'anglès).
Exemple: {{#invoke:wikibase|label_lang|Q713246}} → ca
description
Retorna la descripció d'una entitat. Sintaxi:
{{#invoke:wikibase|description}}
{{#invoke:wikibase|description|<id>|<lang>}}
Per defecte retorna la descripció de l'element associat a la pàgina actual. Proporcionant l'id, d'un element Q o propietat P, retornarà la descripció corresponent. Amb un segon paràmetre amb un codi de llengua obté la descripció en la llengua especificada.
Exemple: {{#invoke:wikibase|description|Q713246}} → polític liberal, periodista, escriptor romàntic, poeta, dramaturg i historiador català. (1824-1901)
getSiteLink
O l'àlies page
, retorna el títol de pàgina local per un element donat. Sintaxi:
{{#invoke:wikibase|getSiteLink|<id>|<wiki>}}
Sense cap paràmetre retorna la pròpia pàgina. Proporcionant l'id retornarà la pàgina local enllaçada en l'element corresponent. En cas de no existir o ser erroni no retorna res. Amb un segon paràmetre amb un codi de wiki obté la pàgina en el wiki especificat (cawiki, cawiktionary, commonswiki, etc.)
Exemple: {{#invoke:wikibase|getSiteLink|Q713246|cawiki}} → Víctor Balaguer i Cirera
validproperty
Retorna "null" si la propietat no existeix o té un marcador "sense valor" o "valor desconegut". Es pot usar com a alternativa a #property.
Sintaxi:
{{#invoke:Wikibase|validproperty|<pxx>|type=value|item={{{item|}}}}}
-- Module:Wikibase
local p = {}
-- Return the item ID of the item linked to the current page.
-- mw.wikibase.getEntityIdForCurrentPage
function p.id(frame)
return mw.wikibase.getEntityIdForCurrentPage()
end
-- Return the label of a given data item, optionally in a given language.
-- mw.wikibase.getLabel, mw.wikibase.getLabelByLang
function p.label(frame)
local id
if frame.args[1] == nil then
id = mw.wikibase.getEntityIdForCurrentPage()
if not id then return nil end
else
id = mw.text.trim(frame.args[1])
end
if frame.args[2] then
return mw.wikibase.getLabelByLang(id, mw.text.trim(frame.args[2]))
end
return mw.wikibase.getLabel(id)
end
-- Return the language code of the label of a given data item.
-- mw.wikibase.getLabelWithLang
function p.label_lang(frame)
local id
if frame.args[1] == nil then
id = mw.wikibase.getEntityIdForCurrentPage()
if not id then return nil end
else
id = mw.text.trim(frame.args[1])
end
local _, lang = mw.wikibase.getLabelWithLang(id)
return lang
end
-- Return the description of a given data entity, optionally in a given language.
-- mw.wikibase.getDescription
function p.description(frame)
local id = frame.args[1] and mw.text.trim(frame.args[1]) or nil
local lang = frame.args[2] and mw.text.trim(frame.args[2]) or nil
local entity = mw.wikibase.getEntity(id)
if not entity then return nil end
return entity:getDescription(lang)
end
-- Return the local page about a given data item, optionary in a given wiki.
-- mw.wikibase.getSitelink
function p.page(frame) -- alias
return p.getSiteLink(frame)
end
function p.getSiteLink(frame)
local id = frame.args[1] and mw.text.trim(frame.args[1])
if id == nil or id == '' then
id = mw.wikibase.getEntityIdForCurrentPage()
if not id then return nil end
end
return mw.wikibase.getSitelink(id, mw.text.trim(frame.args[2] or ''))
end
-- Expansion of {{#if:{{#property:...}} }}
-- returns the first value of given property or nil if not found, not isValidEntityId or novalue/somevalue
-- mw.wikibase.isValidEntityId
function p.validproperty(frame)
local property = mw.text.trim(frame.args[1])
local item = frame.args.item or frame.args.from; if item == '' then item = nil end
local type = frame.args.type or "id"
local entity = mw.wikibase.getEntity(item)
if not entity then return end
if not entity.claims then return end
local hasProp = entity.claims[property]
if not hasProp then return end
if not hasProp[1].mainsnak.datavalue then return end
if type == "value" then return hasProp[1].mainsnak.datavalue.value end
if not hasProp[1].mainsnak.datavalue.value.id then return end
if not mw.wikibase.isValidEntityId(hasProp[1].mainsnak.datavalue.value.id) then return end
return hasProp[1].mainsnak.datavalue.value.id
end
return p