Module:Interface Wikidata : Différence entre versions

De Lagny-sur-Marne Wiki
Aller à : navigation, rechercher
m
m (A changé le niveau de protection pour « Module:Interface Wikidata » ([Modifier=Autoriser uniquement les utilisateurs autopatrolled] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini)))
 
(36 révisions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
local p = {}
 
local p = {}
 
local d = require 'Module:Wikidata'
 
local d = require 'Module:Wikidata'
local entities = require 'Module:Wikidata/Formatage entité'
+
local entities = function () return require 'Module:Wikidata/Formatage entité' end
local tools = require 'Module:Wikidata/Outils'
+
local tools = function () return require 'Module:Wikidata/Outils' end
local analysis = require 'Module:Wikidata/Analyse transitive'
+
local analysis = function () return require 'Module:Wikidata/Analyse transitive' end
 +
local util = function () return require "Module:Utilitaire Wikidata" end
 +
 
  
 
-- fonctions ne pouvant être appelées que depuis un autre module
 
-- fonctions ne pouvant être appelées que depuis un autre module
Ligne 9 : Ligne 11 :
 
 
 
-- manipulation d'une liste d'affirmations
 
-- manipulation d'une liste d'affirmations
getClaims = function(args) return d.getClaims(args) end,
+
getClaims = d.getClaims,
stringTable = function(args) return d.stringTable(args) end,
+
stringTable = d.stringTable,
formatStatements = function(args) return d._formatStatements(args) end,
+
tableToText = d.tableToText,
formatQualifiers = function(args) return d.showQualifier(args) end,
+
formatStatements = d.formatStatements,
formatAndCat = function(args) return d.formatAndCat(args) end,
+
formatQualifiers = d.showQualifier,
formatClaimList = function(claims, params) return d.formatClaimList(claims, params) end,
+
formatAndCat = d.formatAndCat,
addLinkback = function(val, entity, property) return d.addLinkback(val, entity, property) end,
+
wikidataDate = d.wikidataDate,
addtrackingcat = function(prop, cat) return d.addtrackingcat(prop, cat) end,
+
addLinkback = d.addLinkback,
 +
addtrackingcat = d.addtrackingcat,
 
 
 
-- manipulation d'une affirmation individelle
 
-- manipulation d'une affirmation individelle
getmainid = function(claim) return tools.getMainId(claim) end,
+
getmainid = tools().getMainId,
formatStatement = function(statement, params) return d.formatStatement(statement, params) end,
+
formatStatement = d.formatStatement,
statementDate = function(claim, params) return d.getFormattedDate(claim, params) end, -- récupère la date des qualificatifs
+
statementDate = d.getFormattedDate, -- récupère la date des qualificatifs
getFormattedQualifiers = function(statement, qualifs, params) return d.getFormattedQualifiers(statement, qualifs, params) end,
+
getFormattedQualifiers = d.getFormattedQualifiers,
 +
getQualifiers = d.getQualifiers,
 +
getReferences = d.getReferences,
  
 
-- manipulation de snaks
 
-- manipulation de snaks
getid = function(snak) return tools.getId(snak) end,
+
getid = tools().getId,
formatSnak = function(snak, params) return d.formatSnak(snak, params) end,
+
formatSnak = d.formatSnak,
 
 
 
-- utilisation de qids
 
-- utilisation de qids
getEntity = function(entity) return tools.getEntity(entity) end,
+
getEntity = tools().getEntity,
formatEntity = function(entity, args) return entities.formatEntity(entity, args) end,
+
formatEntity = entities().formatEntity,
getLink = function(entity, linktype, lang) return entities.getLink(entity, linktype, lang) end,
+
getLink = tools().siteLink,
getLabel = function(entity, lang) return entities.getLabel(entity, lang) end, --getLabel est moins sophistiqué que formatEntity, ce qui peut-être pratique
+
getLabel = entities().getLabel, --getLabel est plus simple que formatEntity
  
 
-- utilisation des propriétés transitives
 
-- utilisation des propriétés transitives
isInstance = function(targetclass, item, maxdepth) return analysis.isInstance(targetclass, item, maxdepth) end,
+
isInstance = analysis().isInstance,
isSubclass = function(class, item, maxdepth) return analysis.isSubclass(class, item, maxdepth) end,
+
isSubclass = analysis().isSubclass,
addVals = function() return analysis.addVals(origlist, query, maxdepth, maxnodes, stopval) end,
+
addVals = analysis().addVals,
transitiveVals = function(item, query, maxdepth, maxnodes, stopval) return analysis.transitiveVals(item, query, maxdepth, maxnodes, stopval) end,
+
transitiveVals = analysis().transitiveVals,
inTransitiveVals = function(searchedval, sourceval, query, maxdepth, stopva ) return analysis.inTransitiveVals(searchedval, sourceval, query, maxdepth, stopva ) end,
+
inTransitiveVals = analysis().inTransitiveVals,
+
findVal = analysis().findVal,
 +
 
 +
-- gestion des dates
 +
mainDate = util().maindate,
 +
getDate = d.getTheDate,
 +
keyDate = util().keydate,
 +
 
 
-- Fonctions diverses
 
-- Fonctions diverses
citeItem = function(item, page) return d.citeitem(item, page) end,
+
citeItem = d.citeitem,
keydate = function(args) return d.getTheDate(args) end,
+
translate = tools().translate,
Dump = function(item) return d.Dump(item) end,
+
Dump = d.Dump,
 
}
 
}
  
 
-- Fonctions frame pour usage depuis le Wikitexte (avec parfois des options pour gérer des données moins propres
 
-- Fonctions frame pour usage depuis le Wikitexte (avec parfois des options pour gérer des données moins propres
 
local function cleanargs(args)
 
local function cleanargs(args)
 +
local newargs = {}
 
for i, j in pairs(args) do
 
for i, j in pairs(args) do
if j == '' then args[i] = nil end
+
if j ~= '' then
 +
newargs[i] = j
 +
end
 
end
 
end
return args
+
return newargs
 
end
 
end
  
Ligne 73 : Ligne 87 :
 
local entity = args.entity or args[1]
 
local entity = args.entity or args[1]
 
if (not entity) or (entity == '') then
 
if (not entity) or (entity == '') then
return nil
+
entity = mw.wikibase.getEntityObject()
 
end
 
end
 
return p.fromLua.formatEntity(entity, args)
 
return p.fromLua.formatEntity(entity, args)
Ligne 87 : Ligne 101 :
 
local item, page = args[1], args['page']
 
local item, page = args[1], args['page']
 
return p.fromLua.citeItem(item, page)
 
return p.fromLua.citeItem(item, page)
 +
end
 +
 +
function p.getLabel(frame)
 +
local args = cleanargs(frame.args)
 +
local item = args[1]
 +
local lang = args[2] or "fr"
 +
return p.fromLua.getLabel(item, lang)
 +
end
 +
 +
 +
function p.mainDate(frame)
 +
return p.fromLua.mainDate(frame.args['entity'])
 
end
 
end
  
Ligne 97 : Ligne 123 :
 
return p.fromLua.formatQualifiers(args)
 
return p.fromLua.formatQualifiers(args)
 
end
 
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 p.fromLua.translate(frame.args[1])
 +
end
 +
 +
function p.findVal(frame)
 +
local args = frame.args
 +
return p.fromLua.findVal(args.source, args.target, args.property, args.recursion, args.instancedepth)
 +
end
 +
 +
function p.transitiveVals(frame)
 +
local args = frame.args
 +
return p.fromLua.transitiveVals(args.item, args, args.maxdepth, args.maxnodes, args.stopval, true)
 +
end
 +
 
return p
 
return p

Version actuelle datée du 17 mai 2017 à 13:47

La documentation pour ce module peut être créée à Module:Interface Wikidata/doc

local p = {}
local d = require 'Module:Wikidata'
local entities = function () return require 'Module:Wikidata/Formatage entité' end
local tools = function () return require 'Module:Wikidata/Outils' end
local analysis = function () return require 'Module:Wikidata/Analyse transitive' end
local util = function () return require "Module:Utilitaire Wikidata" end


-- 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 = tools().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 = tools().getId,
	formatSnak = d.formatSnak,
	
	-- utilisation de qids
	getEntity = tools().getEntity,
	formatEntity = entities().formatEntity,
	getLink = tools().siteLink,
	getLabel = entities().getLabel, --getLabel est plus simple que formatEntity

	-- utilisation des propriétés transitives
	isInstance = analysis().isInstance,
	isSubclass = analysis().isSubclass,
	addVals = analysis().addVals,
	transitiveVals = analysis().transitiveVals,
	inTransitiveVals = analysis().inTransitiveVals,
	findVal = analysis().findVal,

	-- gestion des dates
	mainDate = util().maindate,
	getDate = d.getTheDate,
	keyDate = util().keydate,

	-- Fonctions diverses
	citeItem = d.citeitem,
	translate = tools().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 i, j in pairs(args) do
		if j ~= '' then
			newargs[i] = j
		end
	end
	return newargs
end


function p.formatStatements( frame ) -- pour [[Modèle:Wikidata]]
	local args = {}
	if frame == mw.getCurrentFrame() then
		args = frame:getParent().args -- paramètres du modèle appelant (est-ce vraiment une bonne idée ?)
		for k, v in pairs(frame.args) do
			args[k] = v
		end
	else
		args = frame
	end
	return p.fromLua.formatStatements( args )
end

function p.formatEntity(frame)
	local args = cleanargs(frame.args)
	local entity = args.entity or args[1]
	if (not entity) or (entity == '') then
		entity = mw.wikibase.getEntityObject()
	end
	return p.fromLua.formatEntity(entity, args)
end

function p.formatAndCat(frame)
	local args = cleanargs(frame.args)
	return p.fromLua.formatAndCat(args)
end

function p.citeItem(frame)
	local args = cleanargs(frame.args)
	local item, page = args[1], args['page']
	return p.fromLua.citeItem(item, page)
end

function p.getLabel(frame)
	local args = cleanargs(frame.args)
	local item = args[1]
	local lang = args[2] or "fr"
	return p.fromLua.getLabel(item, lang)
end


function p.mainDate(frame)
	return p.fromLua.mainDate(frame.args['entity'])	
end

function p.Dump(frame)
	return p.fromLua.Dump(frame.args[1])
end

function p.formatQualifiers(frame)
	local args = frame.args
	return p.fromLua.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 p.fromLua.translate(frame.args[1])
end

function p.findVal(frame)
	local args = frame.args
	return p.fromLua.findVal(args.source, args.target, args.property, args.recursion, args.instancedepth)
end

function p.transitiveVals(frame)
	local args = frame.args
	return p.fromLua.transitiveVals(args.item, args, args.maxdepth, args.maxnodes, args.stopval, true)
end

return p