Modul:Overgrupper
Moduldokumentasjon
Formål[rediger kilde]
For bruk i artikler om biologiske grupper. Henter nærmeste overgruppe fra Wikidata, med lenke til artikkel hvis det finnes.
Skal etter hvert utvides til å kunne gi tre (eller valgfritt antall?) overgrupper i «stigende» rekkefølge, separert med <br />
, men først må Wikidata API få støtte for å hente mer enn bare etikett og lenke fra andre items enn inneværende. Mulighet for å falle tilbake på vitenskapelig navn ved manglende etikett, og for å formatere vitenskapelig arts- og slektsnavn i kursivv, må også vente på dette. Se m:Talk:Wikidata/Deployment Questions#Phase II and Lua.
Bruk[rediger kilde]
Modulen brukes ved å legge inn {{#invoke:Overgrupper|liste}} i en mal. Malen {{Overgrupper}} har implementert dette.
Vedlikeholdskategorier[rediger kilde]
- Kategori:Artikler som ikke er koblet til Wikidata
- Kategori:Artikler som mangler utsagn på Wikidata
- Kategori:Artikler som mangler utsagn om taksonomisk kategori på Wikidata
- Kategori:Artikler med overgrupper som mangler etikett på Wikidata
- Kategori:Artikler med overgrupper som mangler nowiki-lenke på Wikidata
local p = {}
-- Returner overgruppe(r) til artikkelen
function cE(prop)
if prop then
local qnr = prop[1].mainsnak.datavalue.value["numeric-id"]
local lenke = mw.wikibase.sitelink('Q' .. qnr)
local etikett = mw.wikibase.label('Q' .. qnr)
if lenke and etikett then
return '[[' .. lenke .. '|' .. etikett .. ']]'
elseif lenke then
return '[[' .. lenke .. ']][[Kategori:Artikler med overgrupper som mangler etikett på Wikidata]]'
elseif etikett then
return '[[' .. etikett .. ']][[Kategori:Artikler med overgrupper som mangler nowiki-lenke på Wikidata]]'
-- kan i noen tilfeller gi blå lenker som skulle vært røde, men likevel bedre enn ulenket?
else
return '[[Kategori:Artikler med overgrupper som mangler etikett på Wikidata]][[Kategori:Artikler med overgrupper som mangler nowiki-lenke på Wikidata]]'
end
else
return false
end
end
function p.liste(frame)
if not mw.wikibase then
return ""
end
local artikkel = mw.wikibase.getEntityObject()
if not artikkel then
return "[[Kategori:Artikler som ikke er koblet til Wikidata]]"
end
local claims = artikkel.claims
if not claims then
return "[[Kategori:Artikler som mangler utsagn på Wikidata]]"
end
if cE(artikkel.claims.P171) then -- nærmeste overgruppe
return cE(artikkel.claims.P171)
end
local p105 = artikkel.claims.P105 -- taksonomisk kategori
if not p105 then
return "[[Kategori:Artikler som mangler utsagn om taksonomisk kategori på Wikidata]]"
end
local kat = artikkel.claims.P105[1].mainsnak.datavalue.value["numeric-id"]
if kat == 36732 then -- kingdom
if cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 38348 then -- phylum
if cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 37517 then -- class
if cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 36602 then -- order
if cE(artikkel.claims.P77) then -- class
return cE(artikkel.claims.P77)
elseif cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 35409 then -- family
if cE(artikkel.claims.P70) then -- order
return cE(artikkel.claims.P70)
elseif cE(artikkel.claims.P77) then -- class
return cE(artikkel.claims.P77)
elseif cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 34740 then -- genus
if cE(artikkel.claims.P71) then -- family
return cE(artikkel.claims.P71)
elseif cE(artikkel.claims.P70) then -- order
return cE(artikkel.claims.P70)
elseif cE(artikkel.claims.P77) then -- class
return cE(artikkel.claims.P77)
elseif cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 7432 then -- species
if cE(artikkel.claims.P74) then -- genus
return cE(artikkel.claims.P74)
elseif cE(artikkel.claims.P71) then -- family
return cE(artikkel.claims.P71)
elseif cE(artikkel.claims.P70) then -- order
return cE(artikkel.claims.P70)
elseif cE(artikkel.claims.P77) then -- class
return cE(artikkel.claims.P77)
elseif cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
elseif kat == 68947 then -- subspecies
if cE(artikkel.claims.P89) then -- species
return cE(artikkel.claims.P89)
elseif cE(artikkel.claims.P74) then -- genus
return cE(artikkel.claims.P74)
elseif cE(artikkel.claims.P71) then -- family
return cE(artikkel.claims.P71)
elseif cE(artikkel.claims.P70) then -- order
return cE(artikkel.claims.P70)
elseif cE(artikkel.claims.P77) then -- class
return cE(artikkel.claims.P77)
elseif cE(artikkel.claims.P76) then -- phylum
return cE(artikkel.claims.P76)
elseif cE(artikkel.claims.P75) then -- kingdom
return cE(artikkel.claims.P75)
elseif cE(artikkel.claims.P273) then -- domain
return cE(artikkel.claims.P273)
end
end
end
return p