Module:Interface Wikidata
Cette page donne accès à un ensemble de fonction permettant de traiter les données de Wikidata.
Elle contient deux parties : les fonctions "frame", que l'on peut utiliser depuis du Wikicode, et une partie plus fournie comportant également des fonctions qui ne peuvent être utilisées que depuis Lua.
Ce module fait appel au Module:Wikidata.
Utilisation
Fonctions Lua
nom | paramètres | description | exemple |
---|---|---|---|
getClaims | table d'arguments (voir Projet:Wikidata/Atelier/Manuel ) | récupère une série de "déclarations" Wikidata répondant aux critères données en arguments | |
stringTable | table d'arguments (voir Projet:Wikidata/Atelier/Manuel ) | même fonctionnement que getClaims, mais retourne une liste de chaîne plutôt qu'une liste de déclarations brutes | |
tableToText | table de valeurs, paramètres | transforme une liste de chaîne en une chaîne unique | (plus ou moins redondant avec linguistic.conj pourrait peut-être être supprimé) |
formatStatements | table d'arguments (voir Projet:Wikidata/Atelier/Manuel ) | récupère et formate une série de "déclarations" Wikidata répondant aux critères données en argument (comme stringTable), puis les assemble en une chaîne unique selon le paramètre donné par le paramètre "conjtype" | |
formatQualifiers | table d'arguments (voir Projet:Wikidata/Atelier/Manuel ) | similaire à formatStatements, mais ne retourne que des valeurs stockées dans des qualificatifs des déclarations, pas dans son mainsnak | |
formatAndCat | table d'arguments (voir Projet:Wikidata/Atelier/Manuel ) | comme formatStatents, mais ajoute en plus un catégorie de maintenance et un rétrolien vers Wikidata | |
formatClaimList | |||
wikidataDate | |||
addLinkback | |||
addtrackingcat | |||
getmainid | statement | retourne l'identifiant de la valeur principal de la déclaration | |
formatStatement | statement, args | formate une déclaration individuelle en utilisant les paramètres données en arguments (voir Projet:Wikidata/Atelier/Manuel ) | |
getFormattedQualifiers | statement, table de qualificatifs, paramètres d'affichage | sumilair à formatStatemnt (formatage d'une déclaration individuelle), mais n'affiche que des qualificatifs | |
statementDate | statement, params | affiche la date associée à une déclaration en recherchant dans différents qualificatifs (P580, P582, P585, P1319, P1326, P1480 | |
getQualifiers | |||
getReferences | |||
getid | snak | récupère l'identifiant de la valeur d'un snak | |
formatSnak | snak, params | formate un snak individuel, selon une logique identique à formatStatement | |
getEntity | id | charge les données d'un élément Wikidata | |
formatEntity | entity, params | retourne une chaîne affichant un libellé et éventuellement un lien vers l'entité indiquée, en utilisant les paramètres de mise en forme indiqués dans la table param. le paramètre "id" peut être soit un identifiant Qdd soit une table Wikidata déjà chargée. | |
getLink | entity, linktype, lang | retourne un lien vers la page wiki demande. Linktype doit être 'wikipedia', 'commons', wikisource' ou 'wikidata' (défaut : wikipédia) et "lang" le code Wiki de la langue désirée (défaut : français) | |
getLabel | entity, lang, labelformat | Par défaut, retourne le libellé Wikidata de l'élément dans la langue indiquée dans le paramètre lang. Le paramètre labelformat permet de changer ce comportement en générant un libellé à partir de n'importe quelle fonction prenant pour argument l'entité. | |
IsInstance | classe cible, élément source, profondeur max | retourne true Si l'élément source est une "instance" de la classe cible (utilise P31 et P279) |
|
IsSubclass | classe cible, élément source, profondeur max | retourn true Si l'élément source est une "sous-classe" de la classe cible (P279) |
|
addVals | list, query, maxdepth, maxnodes, stopval | ajoute des éléments Wikidata à une liste, en se basant sur le paramètre query, et en s'arrêtant lorsque maxdepth ou maxnodes est ateint, ou lorsque l'élément stopval est trouvé | |
transitiveVals | item, query, maxdepth, maxnodes, stopval | retourne les éléments correspondant aux paramètres définis par query, et les élémennts correspondant aux paramètre définis par query effectués sur les valeurs de query... | |
transitiveVals | searchedval, sourceval, query, maxdepth, maxnodes | retourne true si searchedval se trouve dans les valeurs retournée par la fonction transitiveVals( sourceval, query, maxdepth, maxnodes ) |
|
findVal | source, targetclass, query, maxrecursion, maxinstancedepth | trouver la première valeur pour un propriété "transitive" qui appartient à une class donnée. Par exemple, pour trouver dans quelle région administrative se trouve Toulouse. |
findVal("Q7880", "Q36784", "P131") {{#invoke:Interface Wikidata|findVal|source=Q7880|target=Q36784|property=P131}} ->Q18678265 |
mainDate | item | retourne la date associée à un élément (en utilisant P585, P571 et certains qualificatifs | |
keyDate | item, event | retourne la date associée à une événement sur l'élément Wikidata. L'élément peut-être de la forme PXX (P1619 (« date d'ouverture officielle »), ou de la forme QXX, dans ce cas il sera recherché dans la propriété P793 (« événement clé »)) | |
Dump | item | affiche l'intégralité des données Wikidata de l'élément |
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 (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local d = require 'Module:Wikidata'
-- fonctions ne pouvant être appelées que depuis un autre module
p.fromLua = {
-- manipulation d'une liste d'affirmations
getClaims = d.getClaims,
stringTable = d.stringTable,
tableToText = d.tableToText,
formatStatements = d.formatStatements,
formatQualifiers = d.showQualifier,
formatAndCat = d.formatAndCat,
wikidataDate = d.wikidataDate,
addLinkback = d.addLinkBack,
addtrackingcat = d.addTrackingCat,
-- manipulation d'une affirmation individelle
getmainid = d.getMainId,
formatStatement = d.formatStatement,
statementDate = d.getFormattedDate, -- récupère la date des qualificatifs
getFormattedQualifiers = d.getFormattedQualifiers,
getQualifiers = d.getQualifiers,
getReferences = d.getReferences,
-- manipulation de snaks
getid = d.getId,
formatSnak = d.formatSnak,
-- utilisation de qids
getEntity = d.getEntity,
formatEntity = d.formatEntity,
getLink = d.siteLink,
getLabel = d.getLabel, --getLabel est plus simple que formatEntity
-- utilisation des propriétés transitives
isInstance = d.isInstance,
isSubclass = d.isSubclass,
addVals = d.addVals,
transitiveVals = d.transitiveVals,
inTransitiveVals = d.inTransitiveVals,
findVal = d.findVal,
-- gestion des dates
mainDate = d.mainDate,
getDate = d.getTheDate,
keyDate = d.keyDate,
-- Fonctions diverses
translate = d.translate,
Dump = d.Dump,
}
-- Fonctions frame pour usage depuis le Wikitexte (avec parfois des options pour gérer des données moins propres
local function cleanargs(args)
local newargs = {}
for k, v in pairs(args) do
if v ~= '' then
--[[ possibilité de passer des booléen, convertion des valeur "true", "false" en booleen lua
(sinon le module lua ne prend pas en compte "excludespecial"
qui est "true" par défaut et considère toute chaîne comme vraie)
--]]
if v == "true" then
newargs[k] = true
elseif v == "false" then
newargs[k] = false
else
newargs[k] = v
end
end
end
return newargs
end
function p.formatStatements( frame ) -- pour Modèle:Wikidata
local args = {}
if frame == mw.getCurrentFrame() then
args = cleanargs(frame.args) -- paramètres en dur du code de Modèle:Wikidata
for k, v in pairs(cleanargs(frame:getParent().args)) do
-- chargement des paramètres de l'appel au modèle,
-- pour permettre la surcharge des paramètres par défaut dans "Modèle:Wikidata"
args[k] = v
end
else
args = frame
end
if args.blockers and args.blockers ~= '' then return args.value end
return p.fromLua.formatStatements( args )
end
function p.addLinkBack( frame )
local args = cleanargs(frame.args)
if args[1] and args[1]:match"%S" then
return d.addLinkBack( '', args.entity, mw.text.trim( args[1] ) )
end
end
function p.formatEntity(frame)
local args = cleanargs(frame.args)
local entity = args.entity or args[1]
return d.formatEntity(entity, args)
end
function p.formatAndCat(frame)
local args = cleanargs(frame.args)
return d.formatAndCat(args)
end
function p.getLabel(frame)
local args = cleanargs(frame.args)
local item = args[1]
local lang = args[2] or "fr"
return d.getLabel(item, lang)
end
function p.mainDate(frame)
return d.mainDate(frame.args['entity'])
end
function p.Dump(frame)
return d.Dump(frame.args[1])
end
function p.formatQualifiers(frame)
local args = frame.args
return d.formatQualifiers(args)
end
function p.getDescription(frame) -- fonction simpliste, mais bon, les descriptions Wikidata, c'est pas non plus super utile
return mw.wikibase.description(frame.args[1])
end
function p.getLink(frame)
local args = frame.args
local link, proj, lang = p.fromLua.getLink(args[1], args[2], args[3])
return link
end
function p.translate(frame)
return d.translate(frame.args[1])
end
function p.findVal(frame)
local args = frame.args
return d.findVal(args.source, args.target, args.property, args.recursion, args.instancedepth)
end
function p.transitiveVals(frame)
local args = frame.args
return d.transitiveVals(args.item, args, args.maxdepth, args.maxnodes, args.stopval, true)
end
return p