Moduldokumentasjon

Modulen «Wikidata2» inneholder:

  • en funksjon (getValue) som gjør det mulig for skriptet å hente lenkede fra Wikidata ved å angi en gitt ID som første parameter.
  • en funksjon (getRawValue) som gjør det mulig for skriptet å hente ikke-lenkede verdier fra Wikidata ved å angi en gitt ID som første parameter.
  • en funksjon (getDateValue) som gjør det mulig for skriptet å hente datoverdier fra Wikidata ved å angi en gitt ID som første parameter.
  • en funksjon (getValueShortName) som gjør det mulig for skriptet å hente kortnavn (P1813) fra Wikidata ved å angi en gitt ID som første parameter.
  • en funksjon (getFile_extension) som gjør det mulig å legge et punktum (".") foran hvert statement
  • en funksjon (getVersion) som gjør det mulig å hente visse statement(s) basert på en qualifier (avansert)

Parametere rediger

For alle tre funksjoner kan det angis tre ubenevnte parametere: {{#invoke:Wikidata2|funksjon|1|2|3}}.

  • Funksjon kan her være getValue, getRawValue eller getDateValue, avhengig av hva du ønsker å hente ut.
    • getValue returnerer i utgangspunktet en lenke til en artikkel her på norsk bokmålswikipedia. Teksten som vises i lenken, er den etiketten (label) som er angitt på Wikidata. Dersom artikkelen ikke finnes her på norsk bokmål, vil den returnere kun etiketten i ulenket form. Dersom heller ikke etiketten er angitt for norsk bokmål, vil denne funksjonen returnere en tom streng. Når så etikett og artikkel etter hvert blir tilgjengelig på norsk bokmål, vil disse verdiene komme automatisk til syne.
    • getRawValue returnerer i utgangspunktet etiketten i ulenket form. Dersom etiketten ikke er angitt for norsk bokmål, vil denne funksjonen returnere en tom streng. Når så etikett etter hvert blir tilgjengelig på norsk bokmål, vil denne verdien komme automatisk til syne.
    • getDateValue returnerer en datoverdi i ulenket form. Dersom det ikke er angitt noen dato på Wikidata, vil denne funksjonen returnere en tom streng. Når så datoen etter hvert blir lagt inn, vil denne verdien komme automatisk til syne.
  • 1 Her angis ID-en til egenskapen (property) som ønskes hentet fra Wikidata. For eksempel p19 for fødested, p21 for kjønn eller p569 for fødselsdato.
  • 2 Her angis hva som skal vises. Dersom man setter inn hent_wikidata, vil data fra Wikidata returneres og vises. Ellers vises det man skriver inn. Dette gjør det mulig å benytte lokale verdier, for eksempel i en infoboks, fremfor å hente data fra Wikidata.
  • 3 Her angis måten en liste skal deles opp. Setter man inn <br /> vil man få ett element på hver linje. Standard er «, » (komma+mellomrom).

For {{#invoke:Wikidata2|getVersion|pid=|qqid=|ppid=}} se følgende bilde:

Bruk rediger

  • {{#invoke:Wikidata2|getValue|p26|}} = returnerer ingenting
  • {{#invoke:Wikidata2|getValue|p26|hent_wikidata}} = returnerer den lenkede verdien til egenskap p26 (ektefelle) lagret i Wikidata for den korresponderende artikkelen (for eksempel vil den i artikkelen om Bill Clinton returnere Hillary Rodham Clinton)
  • {{#invoke:Wikidata2|getValue|p26|[[Hillary Clinton]]}} = returnerer Hillary Clinton
  • {{#invoke:Wikidata2|getValueShortName|P264|hent_wikidata}} = returnerer den lenkede verdien til egenskap platemerke (P264) lagret i Wikidata for den korresponderende artikkelen (for eksempel vil den i artikkelen om Astrid S returnere [[Universal Music Group|Universal]])
  • {{#invoke:Wikidata2|getFile_extension|Q28865}} = returnerer filnavn slik for Python (Q28865): .py, .pyc, .pyd, .pyo, .pyw, .pyz . Ved bruk i infoboks fjern Q-id.
  • {{#invoke:Wikidata2|GetVersion|Q28865|pid=P348|qqid=Q2804309|ppid=P548}} = returnerer for Python (Q28865): 3.6.8, 3.7.3, 2.7.16, 3.5.7 . Ved bruk i infoboks fjern Q-id som står alene.



local p = {}
-- This is used to get a value like 'male' (for property p21) which won't be linked
p.getRawValue = function(frame)
	if not mw.wikibase then
        return ""
    end
    local propertyID = mw.text.trim(frame.args[1] or "")
    local input_parm = mw.text.trim(frame.args[2] or "")
    local table_separator = mw.text.trim(frame.args[3] or ",")
    if input_parm == "hent_wikidata" then
        local entity = tostring(mw.wikibase.getEntity())
        if not entity then
        	return ""
    	end
        if entity.claims[propertyID] ~= nil then
            local out = {}
            for k, v in pairs(entity.claims[propertyID]) do
                if mw.wikibase.label(v.mainsnak.datavalue.value["numeric-id"]) then
                    out[#out + 1] = mw.wikibase.label(v.mainsnak.datavalue.value["numeric-id"])
                else
                    return ""
                end
            end
            return table.concat(out, table_separator .. ' ')
        else
            return ""
        end
    else
        return input_parm
    end
end

return p