Questa è la pagina di documentazione per Modulo:Wikidata

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

Utilizzo da un altro modulo

[modifica]

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}}
  • _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