Il modulo Wikidata implementa le funzionalità dei template {{Wikidata}}, {{WikidataQ}}, {{WikidataIdx}}, {{WikidataN}}, {{WikidataLabel}}, {{WikidataDescription}}, {{WikidataLink}}, {{WikidataId}}, {{WikidataTipo}} e {{WikidataIstanza}}.

Utilizzo da un altro modulo

cancia

Il modulo può essere usato anche da un altro modulo tramite "require". È sufficiente inserire all'inizio del modulo:

local mWikidata = require('Modulo:Wikidata')

Le funzioni hanno gli stessi nomi di quelle utilizzate dai template ma con un underscore iniziale e ricevono come argomento, invece del frame, una table con cui specificare gli argomenti.

  • _getProperty(args, rawTable): per l'utilizzo della tabella args vedere il manuale del template {{Wikidata}}. Il parametro aggiuntivo rawTable, se valorizzato a true, fa sì che le dichiarazioni non vengano unite in un'unica stringa come per il template (separate dalla virgola e con la "e" prima dell'ultima), ma venga invece restituita una sequence, contenente le stringhe separate per ciascuna dichiarazione.
  • _getQualifier(args): vedere {{WikidataQ}}
  • _indexOf(args): vedere {{WikidataIdx}}
  • _N(args): vedere {{WikidataN}}
  • _getLabel(args): vedere {{WikidataLabel}}
  • _getDescription(args): vedere {{WikidataDescription}}
  • _getLink(args): vedere {{WikidataLink}}
  • _getDatatype(args): vedere {{WikidataTipo}}
  • _getId(args): vedere {{WikidataId}}
  • _instanceOf(args): vedere {{WikidataIstanza}}
  • _subClassOf(args): analogamente, vedere {{WikidataIstanza}}

A queste si aggiungono tre funzioni specifiche del modulo, che permettono di iterare sulle dichiarazioni di una proprietà:

  • _getClaims(property, args): restituisce una sequence con le dichiarazioni di una proprietà, come _getProperty, ma senza formattarle. Per gli argomenti utilizzabili nella tabella args vedere i parametri di selezione nel manuale del template {{Wikidata}}. Può restituire nil nel caso in cui la pagina non sia collegata a Wikidata.
  • _formatStatement(statement, args): formatta una dichiarazione (parametro statement) ottenuta tramite getClaims. Per l'utilizzo della tabella args vedere i parametri di formattazione nel manuale del template {{Wikidata}}.
  • _formatQualifiers(claim, qualifier, args, rawTable, retTable): formatta un qualificatore (parametro qualifier) di una dichiarazione (parametro claim) ottenuta tramite getClaims. Per l'utilizzo della tabella args vedere i parametri di formattazione nel manuale del template {{Wikidata}}. Il parametro rawTable, se valorizzato a true, fa sì che eventuali valori multipli di un qualificatore vengano restituiti come sequence invece che come unica stringa (con retTable è possibile specificare una sequence già esistente).
Esempio
local mWikidata = require('Modulo:Wikidata')
local p = {}

function p.main(frame)
	local capitale, data, stati, italia, onu

	-- utilizzo della funzione getProperty
	capitale = mWikidata._getProperty( { 'P36', from = 'Q183' } )
	-- utilizzo della funzione getQualifier
	data = mWikidata._getQualifier( { 'P36', 'P580', from = 'Q183' } )
	-- utilizzo della funzione N
	stati = mWikidata._N( { 'P47', from = 'Q183' } )
	-- utilizzo della funzione indexOf
	italia = mWikidata._indexOf( { 'P47', 'Q38', from = 'Q183' } )
	-- utilizzo della funzione instanceOf
	onu = mWikidata._instanceOf( { 'Q160016', from = 'Q183' } )

	return string.format('La capitale della Germania è %s, dal %s. ' .. 
						 'Confina con %s Stati, con l\'Italia: %s. ' ..
						 'Membro delle Nazioni Unite: %s.',
						 capitale, data, stati, italia and 'si' or 'no', onu and 'sì' or 'no') 
end

return p
Esempio con getClaims, formatStatement e formatQualifiers
local mWikidata = require('Modulo:Wikidata')
local p = {}

function p.main(frame)
	local scuole = {}
	local claims

	claims = mWikidata._getClaims('P69', { from = 'Q42' })
	for _, claim in ipairs(claims) do
		local scuola = mWikidata._formatStatement(claim)
		local inizio = mWikidata._formatQualifiers(claim, 'P580')
		local fine = mWikidata._formatQualifiers(claim, 'P582')
		table.insert(scuole, string.format('%s dal %s al %s', scuola, inizio, fine))
	end

	return 'Douglas Adams ha frequentato: ' .. table.concat(scuole, ', ')
end

return p