Module:Description
Apparence
[voir] [modifier] [historique] [purger]
Utilisation
Fonctions exportables :
description(frame)
– calcule une description textuelle d'une entité Wikidata (paramètre 1=identifiant de l'entité) à partir des déclaration génériques (nature, sous-classe, …) et de la description Wikidata.description_par_prio(frame)
– calcule une description textuelle d'une entité Wikidata. Si une description Wikidata est présente, l’afficher, sinon calculer la description auto.
Exemples
Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local wd = require("Module:Wikidata")
local util = require("Module:Utilitaire")
local p= {}
local proprietes = {instance_de= "P31", sous_classe_de = "P279" }
local function descriptionManuelle(label, description)
local res = nil
if label ~= nil and description ~= nil then
res = label .. ": " .. description
elseif label ~= nil then
res = label
elseif description ~= nil then
res = description
end
return res
end
function mainValueEntityId(statement)
-- TODO check the snak type : property, novalue, somevalue ...
mw.log(statement.mainsnak.datavalue.value["numeric-id"])
return "Q" .. tostring(statement.mainsnak.datavalue.value["numeric-id"])
end
local function descriptionAuto(entite)
local autodesc = nil
local props = util.Set:new(entite:getProperties())
local instance = proprietes["instance_de"]
local sousclasse = proprietes["sous_classe_de"]
if props:is_in(instance) or
props:is_in(sousclasse) then
if props:is_in(instance) then
stmts = entite:getBestStatements(instance)
autodesc = ""
if tablelength(stmts) > 0 then
ids = util.map (mainValueEntityId, stmts)
lbls = util.map (mw.wikibase.label, ids)
autodesc = util.formatTableWithLastSep(lbls, ", ", "et ")
end
end
end
return autodesc
end
function p.decrireEntite(id)
entite = mw.wikibase.getEntity(id)
local description = mw.wikibase.description(id)
local desc = descriptionManuelle(entite:getLabel(), description)
local autodesc = descriptionAuto(entite)
if autodesc ~= nil then
desc = desc .. " ; " .. autodesc
end
return desc
end
p.PropClass = PropClass
function p.description(frame)
return p.decrireEntite(frame.args[1])
end
return p