Utente:ValterVB/Sandbox/1: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
.
(Nessuna differenza)

Versione delle 13:12, 3 apr 2020

<!DOCTYPE html> <html class="client-nojs" lang="it" dir="ltr"> <head> <meta charset="UTF-8"/> <title>Modulo:Wikidata - Wikiquote</title> <script>document.documentElement.className="client-js";RLCONF={"wgBreakFrames":!1,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"XocZRQpAICkAAKr2kj0AAACC","wgCSPNonce":!1,"wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":!1,"wgNamespaceNumber":828,"wgPageName":"Modulo:Wikidata","wgTitle":"Wikidata","wgCurRevisionId":1054061,"wgRevisionId":1054061,"wgArticleId":101174,"wgIsArticle":!0,"wgIsRedirect":!1,"wgAction":"view","wgUserName":"ValterVB","wgUserGroups":["*","user","autoconfirmed"],"wgCategories":["Moduli"],"wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Modulo:Wikidata","wgRelevantArticleId":101174,"wgUserId":32070,"wgUserEditCount":202,"wgUserRegistration":1373698421000,"wgIsProbablyEditable":!0,"wgRelevantPageIsProbablyEditable":!0, "wgRestrictionEdit":[],"wgRestrictionMove":[],"wgGlobalGroups":[],"wgMediaViewerOnClick":!0,"wgMediaViewerEnabledByDefault":!0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":!0,"nearby":!0,"watchlist":!0,"tagline":!0},"wgWMESchemaEditAttemptStepOversample":!1,"wgULSAcceptLanguageList":["it","it-it","en","en-gb","en-us"],"wgULSBabelLanguages":["it","en"],"wgULSCurrentAutonym":"italiano","wgNoticeProject":"wikiquote","wgNoticeUserData":{"registration":"20130713065341"},"wgWikibaseItemId":"Q24575438","wgEditSubmitButtonLabelPublish":!0,"wgEchoSeenTime":{"alert":"2020-04-03T10:17:21Z","notice":"2020-04-02T18:06:43Z"}};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","noscript":"ready","user.styles":"ready","ext.globalCssJs.user":"loading","user":"loading","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","mediawiki.toc.styles":"ready", "skins.vector.styles.legacy":"ready","wikibase.client.init":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.echo.styles.badge":"ready","oojs-ui.styles.icons-alerts":"ready","ext.uls.interlanguage":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.startup","skins.vector.js","mediawiki.page.ready","mediawiki.toc","mediawiki.page.watch.ajax","ext.gadget.site","ext.gadget.ReferenceTooltips","ext.gadget.HiddenCat","ext.centralauth.centralautologin.clearcookie","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.init","ext.eventLogging","ext.wikimediaEvents","ext.wikimediaEvents.loggedin","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.centralNotice.geoIP","ext.centralNotice.startUp"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.load("//meta.wikimedia.org/w/load.php?lang=it\u0026modules=ext.globalCssJs.user\u0026skin=vector\u0026user=ValterVB\u0026version=1kto2");mw.loader.load("/w/load.php?lang=it\u0026modules=user\u0026skin=vector\u0026user=ValterVB\u0026version=1sejq");mw.loader.implement("user.options@1hzgi",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"patrolToken":"0f0805319c6fb7a73788820adcb7f8b75e871945+\\","watchToken":"45d4de6d87e7779922ef453bdbe802d75e871945+\\","csrfToken":"6a1da38c7f0a0140c387118306ef61dc5e871945+\\"});mw.user.options.set({"rcenhancedfilters-seen-highlight-button-counter":"3","visualeditor-hidebetawelcome":"1","uls-preferences":"{\"ime\":{\"language\":\"en\",\"previousLanguages\":[\"en\"],\"previousInputMethods\":[],\"imes\":{\"en\":\"system\"}}}","rcdays":"30","echo-subscriptions-email-edit-user-talk":1,"cx-invite-chosen":"1","cx-new-version":"1","echo-seen-time":"20150810073644","rcenhancedfilters-seen-tour":"1","rcenhancedfilters-tried-highlight":"1","rcfilters-limit":"500","rcfilters-rc-collapsed":0,"rcfilters-saved-queries":"{\"queries\":{},\"version\":\"2\"}","rcfilters-wl-collapsed":0,"rcfilters-wl-saved-queries":"{\"queries\":{},\"version\":\"2\"}","watchlisttoken":"d1f0b4f2941a206a355568a7b103303afa02ff0a","wlenhancedfilters-seen-tour":"1"}); });});</script> <link rel="stylesheet" href="/w/load.php?lang=it&modules=ext.cite.styles%7Cext.echo.styles.badge%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.toc.styles%7Coojs-ui.styles.icons-alerts%7Cskins.vector.styles.legacy%7Cwikibase.client.init&only=styles&skin=vector"/> <script async="" src="/w/load.php?lang=it&modules=startup&only=scripts&raw=1&skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""/> <link rel="stylesheet" href="/w/load.php?lang=it&modules=site.styles&only=styles&skin=vector"/> <link rel="stylesheet" href="//meta.wikimedia.org/w/load.php?lang=it&modules=ext.globalCssJs.user.styles&only=styles&skin=vector&user=ValterVB&version=io78m"/> <meta name="generator" content="MediaWiki 1.35.0-wmf.26"/> <meta name="referrer" content="origin"/> <meta name="referrer" content="origin-when-crossorigin"/> <meta name="referrer" content="origin-when-cross-origin"/> <link rel="alternate" type="application/x-wiki" title="Modifica" href="/w/index.php?title=Modulo:Wikidata&action=edit"/> <link rel="edit" title="Modifica" href="/w/index.php?title=Modulo:Wikidata&action=edit"/> <link rel="shortcut icon" href="/static/favicon/wikiquote.ico"/> <link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Wikiquote (it)"/> <link rel="EditURI" type="application/rsd+xml" href="//it.wikiquote.org/w/api.php?action=rsd"/> <link rel="license" href="//creativecommons.org/licenses/by-sa/3.0/"/> <link rel="alternate" type="application/atom+xml" title="Feed Atom di Wikiquote" href="/w/index.php?title=Speciale:UltimeModifiche&feed=atom"/> <link rel="canonical" href="https://it.wikiquote.org/wiki/Modulo:Wikidata"/> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <!--[if lt IE 9]><script src="/w/resources/lib/html5shiv/html5shiv.js"></script><![endif]--> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject mw-editable page-Modulo_Wikidata rootpage-Modulo_Wikidata skin-vector action-view"> <div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice" class="mw-body-content"><!-- CentralNotice --></div> <div class="mw-indicators mw-body-content"> </div> <h1 id="firstHeading" class="firstHeading" lang="en">Modulo:Wikidata</h1> <div id="bodyContent" class="mw-body-content"> <div id="siteSub" class="noprint">Da Wikiquote, aforismi e citazioni in libertà.</div> <div id="contentSub"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Jump to navigation</a> <a class="mw-jump-link" href="#p-search">Jump to search</a> <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><div lang="it" dir="ltr" class="mw-content-ltr"> <p>Il <a href="/wiki/Aiuto:Moduli" title="Aiuto:Moduli">modulo</a> <a href="/wiki/Aiuto:Lua" title="Aiuto:Lua">Lua</a> <b>Wikidata</b> serve per leggere il valore delle proprietà di <a href="/wiki/Aiuto:Wikidata" title="Aiuto:Wikidata">Wikidata</a> relative alla pagina corrente, cioè la pagina in cui è utilizzato il modulo. Sarà in futuro possibile leggere le proprietà anche di pagine diverse da quella corrente. Il modulo fornisce un utilizzo più avanzato, a volte senza alternativa, rispetto a quello che si può ottenere con la <i>magic word</i>: <code>{{#property:proprietà}}</code>. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="it" dir="ltr"><h2 id="mw-toc-heading">Indice</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1"><a href="#Utilizzo"><span class="tocnumber">1</span> <span class="toctext">Utilizzo</span></a> <ul> <li class="toclevel-2"><a href="#Parametri_di_formatStatements"><span class="tocnumber">1.1</span> <span class="toctext">Parametri di formatStatements</span></a></li> <li class="toclevel-2"><a href="#Parametri_di_getQualifier"><span class="tocnumber">1.2</span> <span class="toctext">Parametri di getQualifier</span></a></li> <li class="toclevel-2"><a href="#Parametri_di_N"><span class="tocnumber">1.3</span> <span class="toctext">Parametri di N</span></a></li> <li class="toclevel-2"><a href="#Parametri_di_checkStatements"><span class="tocnumber">1.4</span> <span class="toctext">Parametri di checkStatements</span></a></li> </ul> </li> <li class="toclevel-1"><a href="#Note"><span class="tocnumber">2</span> <span class="toctext">Note</span></a></li> <li class="toclevel-1"><a href="#Pagine_correlate"><span class="tocnumber">3</span> <span class="toctext">Pagine correlate</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Utilizzo">Utilizzo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-1" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h2> <p>Il modulo ha quattro funzioni: </p> <ul><li><b>formatStatements</b>: restituisce il valore di una proprietà di Wikidata. Nel caso una proprietà abbia più di una dichiarazione (<i>statement</i>) può restituire tutti i valori, separandoli con una virgola e inserendo la congiunzione "e" prima dell'ultimo valore, oppure filtrarli se si specifica un <i>rank</i> (classificazione), un <i>qualifier</i> (qualificatore) o un indice. Permette di formattare il risultato attraverso delle opzioni (da qui il nome formatStatements). Se la pagina non ha un elemento su Wikidata, oppure non ha la proprietà specificata, oppure il valore della proprietà è a sua volta un elemento che non ha un'etichetta in italiano, non restituisce nulla. Se possibile (<a href="#nolink">e se non diversamente specificato</a>), i valori delle proprietà sono restituiti con wikilink, compresa eventuale disambiguazione nascosta con la barra verticale (es. <code>[[Savoia (dipartimento)|Savoia]]</code>). Il collegamento viene ricavato dall'interlink in italiano del rispettivo elemento su Wikidata; se il soggetto non è presente su Wikidata, oppure non possiede un interlink in italiano, il valore viene restituito senza wikilink.</li> <li><b>getQualifier</b>: restituisce il valore di un <i>qualifier</i> (qualificatore) di una proprietà di Wikidata. Se la proprietà ha più <i>statement</i> (dichiarazioni) e il <i>qualifier</i> è presente in più <i>statement</i>, oppure se il <i>qualifier</i> ha più valori, li può restituire tutti, oppure si possono filtrare in base a <i>rank</i> (classificazione) e indice (dello <i>statement</i>) come per la funzione <i>formatStatements</i>.</li> <li><b>N</b>: ritorna il numero di <i>statement</i> (dichiarazioni) della proprietà richiesta.</li> <li><b><span style="color:teal;">checkStatements</span></b><sup id="cite_ref-newpedia_1-0" class="reference"><a href="#cite_note-newpedia-1">[1]</a></sup> verifica se una proprietà di Wikidata ha un determinato valore. Nel caso una proprietà abbia più di una dichiarazione (<i>statement</i>) ne verifica tutti i valori. Se la pagina non ha un elemento su Wikidata, oppure non ha la proprietà specificata, oppure il valore della proprietà non corrisponde a quello da verificare, non restituisce nulla; altrimenti restituisce un numero corrispondente all'indice dello <i>statement</i> verificato.</li></ul> <h3><span class="mw-headline" id="Parametri_di_formatStatements">Parametri di formatStatements</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-2" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h3> <p>La funzione <i>formatStatements</i> ha i seguenti parametri, l'unico <b>obbligatorio</b> è <i>property</i>. Gli esempi utilizzati fanno riferimento alla voce <a href="/wiki/Dante_Alighieri" title="Dante Alighieri">Dante Alighieri</a> (il cui elemento su Wikidata è: <a href="https://www.wikidata.org/wiki/Q1067" class="extiw" title="d:Q1067">Q1067</a>). </p> <dl><dt>Parametri di selezione</dt></dl> <ul><li><i>property</i>: l'identificatore della proprietà; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p19}}</code> ritornerà: <a href="/wiki/Firenze" title="Firenze">Firenze</a> (<a href="https://www.wikidata.org/wiki/Property:P19" class="extiw" title="d:Property:P19">P19</a> è il luogo di nascita).</li></ul></li> <li><i>rank</i>: se valorizzato, il modulo ritorna solo gli <i>statement</i> che hanno un certo <i>rank</i> (classificazione). I <i>rank</i> disponibili sono i tre definiti da Wikidata: <i>deprecated</i> (sconsigliato), <i>normal</i> (normale) e <i>preferred</i> (preferito), più il tipo <i>best</i> (migliore). Con quest'ultimo vengono ritornati gli <i>statement</i> a partire dal <i>rank</i> più alto: i <i>preferred</i> se presenti, altrimenti i <i>normal</i>, mai i <i>deprecated</i>.</li> <li><i>qualifier</i>: l'identificatore di un <i>qualifier</i> (qualificatore) di una proprietà. Verranno ritornati solo gli <i>statement</i> che posseggono quel <i>qualifier</i>.</li> <li><i>qualifiervalue</i>: l'identificatore del valore del <i>qualifier</i> (qualificatore) specificato con il parametro <i>qualifier</i>. Verranno ritornati solo gli <i>statement</i> che posseggono quel <i>qualifier</i> e con il valore specificato con <i>qualifiervalue</i>.</li> <li><i>qualifiertype</i>: ulteriore filtro sul <i>qualifier</i> (qualificatore) specificato. Ha attualmente un unico valore accettato, <code>qualifiertype=latest</code>: se il <i>qualifier</i> contiene un valore di tipo "time", verrà ritornato solo lo <i>statement</i> che possiede quel <i>qualifier</i> e con il valore più recente.</li> <li><i>n</i>: se la proprietà ha più <i>statement</i> (dichiarazioni) ritorna solo il valore dell'n-esimo; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p106|n=1}}</code> ritornerà: <a href="/wiki/Poeta" title="Poeta">poeta</a> (<a href="https://www.wikidata.org/wiki/Property:P106" class="extiw" title="d:Property:P106">P106</a> è la professione, mentre con n=2 avrebbe ritornato <a href="/wiki/Scrittore" title="Scrittore">scrittore</a>, con n=3 <a href="/wiki/Politico" title="Politico">politico</a>, ecc.).</li></ul></li> <li><i>value</i>: se valorizzato, il modulo ritorna il valore di questo parametro invece di quello su Wikidata, formattandolo eventualmente secondo il pattern se specificato. Serve quando si usa il modulo all'interno di un template, per dare la precedenza al valore passato al template rispetto a quello su Wikidata; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p19|value={{{LuogoNascita|}}}}}</code> ritornerà: il valore di LuogoNascita se valorizzato nel template, altrimenti quello della proprietà <a href="https://www.wikidata.org/wiki/Property:P19" class="extiw" title="d:Property:P19">P19</a> su Wikidata.</li></ul></li> <li><i>entityId</i>: l'identificatore dell'entità – per ora <b><span style="color:red;">NON FUNZIONANTE</span></b> – quando sarà attivato permetterà di specificare un'entità (<i>entity</i>) di Wikidata relativa a una pagina diversa da quella in cui ci si trova.</li></ul> <dl><dt>Parametri per la formattazione del risultato</dt></dl> <ul><li><i>separator</i>: separatore tra valori multipli, se diverso da virgola_spazio;</li> <li><i>conjunction</i>: separatore tra gli ultimi due valori, se diverso da spazio_e_spazio; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p106|separator=/|conjunction=/}}</code> ritornerà: <a href="/wiki/Poeta" title="Poeta">poeta</a>/<a href="/wiki/Scrittore" title="Scrittore">scrittore</a>/<a href="/wiki/Politico" title="Politico">politico</a>.</li></ul></li> <li><i>pattern</i>: pattern utilizzato per ogni <i>statement</i>, sia per le proprietà che per il parametro "value" quando presente. La stringa "$1" verrà rimpiazzata dal valore ritornato per ogni sua occorrenza; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p18|pattern=[[File:$1|thumb|Il nome del file è $1]]}}</code> ritornerà: <code>[[File:Portrait de Dante.jpg|thumb|Il nome del file è Portrait de Dante.jpg]]</code> (<a href="https://www.wikidata.org/wiki/Property:P18" class="extiw" title="d:Property:P18">P18</a> è l'immagine).</li> <li>esempio con "value": <code>{{#invoke:Wikidata|formatStatements|property=p18|value={{{Immagine|}}}|pattern=[[File:$1|thumb|Il nome del file è $1]]}}</code> In un template, se il parametro Immagine fosse valorizzato a "Test.png" allora ritornerebbe <code>[[File:Test.png|thumb|Il nome del file è Test.png]]</code>, altrimenti se Immagine non fosse valorizzato, ritornerebbe lo stesso risultato dell'esempio precedente.</li></ul></li> <li><i><span style="color:teal;">novaluepattern</span></i>:<sup id="cite_ref-newpedia_1-1" class="reference"><a href="#cite_note-newpedia-1">[1]</a></sup> se valorizzato, applica il pattern precedentemente definito solo agli <i>statement</i> di Wikidata e non al parametro "value"; es: "novaluepattern=no".</li> <li><i>list</i>: formatta il risultato ritornato come lista non ordinata; si deve assegnargli un valore qualunque, es: "list=sì". Eventuali parametri <i>separator</i> e <i>conjunction</i> vengono ignorati; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p106|list=sì}}</code>.</li></ul></li> <li><i>orderedlist</i>: formatta il risultato ritornato come lista ordinata; si deve assegnargli un valore qualunque, es: "orderedlist=sì". Eventuali parametri <i>separator</i> e <i>conjunction</i> vengono ignorati. Se sono presenti entrambi i parametri <i>list</i> e <i>orderedlist</i> viene creata una lista non ordinata; <ul><li>esempio: <code>{{#invoke:Wikidata|formatStatements|property=p106|orderedlist=sì}}</code>.</li></ul></li></ul> <p><span id="nolink"></span> </p> <ul><li><i>formatting</i>: esegue formattazioni speciali, attulmente i valori consentiti sono: <ul><li><code><span style="color:teal;">formatting=nolink</span></code><sup id="cite_ref-newpedia_1-2" class="reference"><a href="#cite_note-newpedia-1">[1]</a></sup> per ritornare il risultato senza wikilink (anche se disponibile);</li> <li><code>formatting=latitude</code> e <code>formatting=longitude</code> per ritornare solo latitudine o longitudine in caso di proprietà di tipo coordinata.</li></ul></li> <li><i>value-module</i>: nome di un modulo che effettua una formattazione speciale.</li> <li><i>value-function</i>: funzione nel modulo <i>value-module</i>.</li></ul> <h3><span class="mw-headline" id="Parametri_di_getQualifier">Parametri di getQualifier</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-3" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h3> <p>Parametri di selezione: </p> <ul><li>gli stessi di <i>formatStatements</i>, con in più la differenza che i parametri obbligatori sono, oltre "property", anche "qualifier".</li></ul> <p>Parametri per la formattazione del risultato: </p> <ul><li>gli stessi di <i>formatStatements</i>, ad eccezione di <i>list</i> e <i>orderedlist</i> (non disponibili).</li></ul> <h3><span class="mw-headline" id="Parametri_di_N">Parametri di N</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-4" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h3> <p>La funzione <i>N</i> ha un unico parametro (ordinale) <b>obbligatorio</b> per specificare la proprietà. </p> <ul><li>esempio: <code>{{#invoke:Wikidata|N|p40}}</code> ritornerà: 2 (<a href="https://www.wikidata.org/wiki/Property:P40" class="extiw" title="d:Property:P40">P40</a> è "figlio").</li></ul> <h3><span class="mw-headline" id="Parametri_di_checkStatements">Parametri di checkStatements</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-5" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h3> <p>La funzione <i>checkStatements</i> ha due parametri, di cui <i>property</i> è <b>obbligatorio</b>. </p> <ul><li><i>property</i>: l'identificatore della proprietà.</li> <li><i>value</i>: il valore da verificare; <i>value</i> può essere espresso sia come stringa di testo sia come identificatore dell'elemento corrispondente su Wikidata; <ul><li>esempio: <code>{{#invoke:Wikidata|checkStatements|property=p106|value=poeta}}</code> ritornerà: 1 (<a href="https://www.wikidata.org/wiki/Property:P106" class="extiw" title="d:Property:P106">P106</a> è la professione, e "poeta" è la prima professione),</li> <li>esempio: <code>{{#invoke:Wikidata|checkStatements|property=p106|value=q49757}}</code> ritornerà: 1 (<a href="https://www.wikidata.org/wiki/Property:P106" class="extiw" title="d:Property:P106">P106</a> è la professione e <a href="https://www.wikidata.org/wiki/Q49757" class="extiw" title="d:Q49757">Q49757</a> è l'identificatore dell'elemento "poeta").</li></ul></li></ul> <h2><span class="mw-headline" id="Note">Note</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-6" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-newpedia-1"><span class="mw-cite-backlink">↑ <a href="#cite_ref-newpedia_1-0"><sup>a</sup></a> <a href="#cite_ref-newpedia_1-1"><sup>b</sup></a> <a href="#cite_ref-newpedia_1-2"><sup>c</sup></a></span> <span class="reference-text">:Funzionalità nuova e aggiuntiva rispetto al corrispondente modulo su Wikipedia.</span> </li> </ol></div> <h2><span class="mw-headline" id="Pagine_correlate">Pagine correlate</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Modulo:Wikidata/man&action=edit&section=T-7" title="Modifica la sezione ">modifica</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a href="/wiki/Template:Wikidata" title="Template:Wikidata">Template:Wikidata</a>, richiama in modo semplificato la funzione <i>formatStatements</i></li> <li><a href="/wiki/Template:Wikidata_Check" title="Template:Wikidata Check">Template:Wikidata Check</a>, richiama in modo semplificato la funzione <i>checkStatements</i></li> <li><a href="/wiki/Wikiquote:Pagina_delle_prove_di_Wikidata" title="Wikiquote:Pagina delle prove di Wikidata">Wikiquote:Pagina delle prove di Wikidata</a></li></ul> <div id="interProject" class="toccolours" style="display: none; clear: both; margin-top: 2em"><p id="sisterProjects" style="background-color: #efefef; font-weight: bold; margin: 0"><span>Altri progetti</span></p><div title="Collegamenti verso gli altri progetti Wikimedia"> <li class=""><a href="https://it.wikipedia.org/wiki/Modulo:Wikidata" class="extiw" title="w:Modulo:Wikidata">Wikipedia</a></li> <li class=""><a href="https://it.wikisource.org/wiki/Modulo:Wikidata" class="extiw" title="s:Modulo:Wikidata">Wikisource</a></li> <li class=""><a href="https://it.wikibooks.org/wiki/Modulo:Wikidata" class="extiw" title="b:Modulo:Wikidata">Wikibooks</a></li> <li class=""><a href="https://it.wikivoyage.org/wiki/Modulo:Wikidata" class="extiw" title="voy:Modulo:Wikidata">Wikivoyage</a></li> <li class=""><span class="plainlinks" title="Modulo:Wikidata"><a class="external text" href="https://species.wikimedia.org/wiki/Module:Wikidata?uselang=it">Wikispecies</a></span></li> <li class=""><span class="plainlinks" title="Modulo:Wikidata"><a class="external text" href="https://www.wikidata.org/wiki/Module:Wikidata?uselang=it">Wikidata</a></span></li> <li class=""><span class="plainlinks" title="Modulo:Wikidata"><a class="external text" href="https://commons.wikimedia.org/wiki/Module:Wikidata2?uselang=it">Commons</a></span></li></div></div> <hr /> </div> <!-- NewPP limit report Parsed by mw1320 Cached time: 20200403110853 Cache expiry: 2592000 Dynamic content: false Complications: [] CPU time usage: 0.052 seconds Real time usage: 0.059 seconds Preprocessor visited node count: 100/1000000 Post‐expand include size: 12442/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 4/40 Expensive parser function count: 0/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 1669/5000000 bytes Number of Wikibase entities loaded: 1/400 Lua time usage: 0.011/10.000 seconds Lua memory usage: 778 KB/50 MB --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 43.273 1 -total 100.00% 43.273 1 Modulo:Wikidata/man 65.01% 28.130 1 Template:Interprogetto --> <div class="mw-highlight"><pre><span></span><span class="cm">--[[</span> <span class="cm">* Modulo per implementare le funzionalità dei template:</span> <span class="cm">* {{Wikidata}}, {{WikidataQ}}, {{WikidataIdx}}, {{WikidataN}}, {{WikidataLabel}},</span> <span class="cm">* {{WikidataLink}}, {{WikidataId}}, {{WikidataTipo}} e {{WikidataIstanza}}.</span> <span class="cm">* Permette di accedere a Wikidata in modo più avanzato rispetto a {{#property}}.</span> <span class="cm">* Per la maggior parte riscritto e ampliato a partire dalla versione iniziale a:</span> <span class="cm">* http://test2.wikipedia.org/w/index.php?title=Module:Wikidata&oldid=52322</span> <span class="cm">]]</span> <span class="c1">-- =============================================================================</span> <span class="c1">-- Non utilizzare mai mw.wikibase.getEntity, per esempio un solo utilizzo di</span> <span class="c1">-- mw.wikibase.getEntity('Q183') fa aumentare di 7 MB l'utilizzo di memoria</span> <span class="c1">-- per Lua ed è molto lenta se ripetuta (unico utilizzo in getDatatype,</span> <span class="c1">-- solo per proprietà, non essendoci alternative).</span> <span class="c1">-- =============================================================================</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:No globals'</span><span class="p">)</span> <span class="kd">local</span> <span class="n">getArgs</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:Arguments'</span><span class="p">).</span><span class="n">getArgs</span> <span class="kd">local</span> <span class="n">mConvert</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:Conversione'</span><span class="p">)</span> <span class="kd">local</span> <span class="n">mLanguages</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="s1">'Module:Linguaggi'</span><span class="p">)</span> <span class="c1">-- Categoria per le pagine con errori</span> <span class="kd">local</span> <span class="n">errorCategory</span> <span class="o">=</span> <span class="s1">'[[Categoria:Voci con errori del modulo Wikidata]]'</span> <span class="c1">-- Messaggi</span> <span class="kd">local</span> <span class="n">i18n</span> <span class="o">=</span> <span class="p">{</span> <span class="n">errors</span> <span class="o">=</span> <span class="p">{</span> <span class="p">[</span><span class="s1">'entityid-param-not-provided'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Parametro ''entityid'' non fornito"</span><span class="p">,</span> <span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Parametro ''property'' non fornito"</span><span class="p">,</span> <span class="p">[</span><span class="s1">'qualifier-param-not-provided'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Parametro ''qualifier'' non fornito"</span><span class="p">,</span> <span class="p">[</span><span class="s1">'value-param-not-provided'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"Parametro ''valore'' da ricercare non fornito"</span><span class="p">,</span> <span class="p">[</span><span class="s1">'entity-not-found'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Entità non trovata'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'unknown-claim-type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Tipo asserzione sconosciuta'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'unknown-snak-type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Tipo di snak sconosciuto'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'unknown-datavalue-type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Tipo di dato sconosciuto'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'unknown-entity-type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Tipo di entità sconosciuta'</span> <span class="p">},</span> <span class="n">somevalue</span> <span class="o">=</span> <span class="s2">"''valore sconosciuto''"</span><span class="p">,</span> <span class="n">novalue</span> <span class="o">=</span> <span class="s2">"''nessun valore''"</span><span class="p">,</span> <span class="n">datatypes</span> <span class="o">=</span> <span class="p">{</span> <span class="p">[</span><span class="s1">'commonsMedia'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'file multimediale su Commons'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'external-id'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'identificativo esterno'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'geo-shape'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'forma geografica'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'globe-coordinate'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'coordinate geografiche'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'math'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'espressione matematica'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'monolingualtext'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'testo monolingua'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'quantity'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'quantità'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'string'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'stringa'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'tabular-data'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'tabular data'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'time'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'data e ora'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'url'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'URL'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'wikibase-item'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'elemento'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'wikibase-property'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'proprietà'</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">local</span> <span class="n">p</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Formatters</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">errhandler</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> <span class="kd">local</span> <span class="n">cat</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">getCurrentTitle</span><span class="p">().</span><span class="n">namespace</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">errorCategory</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">return</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'<span class="error">%s</span>%s'</span><span class="p">,</span> <span class="n">msg</span><span class="p">,</span> <span class="n">cat</span><span class="p">)</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatList</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">ordered</span><span class="p">)</span> <span class="kd">local</span> <span class="n">fmt</span> <span class="o">=</span> <span class="n">ordered</span> <span class="ow">and</span> <span class="s1">'<ol><li>%s</li></ol>'</span> <span class="ow">or</span> <span class="s1">'<ul><li>%s</li></ul>'</span> <span class="kr">return</span> <span class="o">#</span><span class="n">values</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">string.format</span><span class="p">(</span><span class="n">fmt</span><span class="p">,</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">listToText</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="s1">'</li><li>'</span><span class="p">,</span> <span class="s1">'</li><li>'</span><span class="p">))</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatExtLink</span><span class="p">(</span><span class="n">url</span><span class="p">)</span> <span class="kd">local</span> <span class="n">protocols</span> <span class="o">=</span> <span class="p">{</span> <span class="n">ftp</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="n">http</span> <span class="o">=</span> <span class="kc">true</span><span class="p">,</span> <span class="n">https</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}</span> <span class="kd">local</span> <span class="n">success</span><span class="p">,</span> <span class="n">uri</span> <span class="o">=</span> <span class="nb">pcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">uri</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">url</span><span class="p">)</span> <span class="kr">end</span><span class="p">)</span> <span class="kr">if</span> <span class="n">success</span> <span class="ow">and</span> <span class="n">uri</span><span class="p">.</span><span class="n">protocol</span> <span class="ow">and</span> <span class="n">protocols</span><span class="p">[</span><span class="n">uri</span><span class="p">.</span><span class="n">protocol</span><span class="p">]</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">dest</span> <span class="o">=</span> <span class="nb">tostring</span><span class="p">(</span><span class="n">uri</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'<span style="word-break: break-all;">[%s %s]</span>'</span><span class="p">,</span> <span class="n">dest</span><span class="p">,</span> <span class="n">dest</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="n">uri</span><span class="p">.</span><span class="n">protocol</span> <span class="o">..</span> <span class="s1">'://'</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> <span class="kr">else</span> <span class="kr">return</span> <span class="n">url</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatEntityId</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kd">local</span> <span class="n">label</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getLabel</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kd">local</span> <span class="n">siteLink</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getSitelink</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">entityId</span> <span class="o">==</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">siteLink</span> <span class="kr">elseif</span> <span class="n">siteLink</span> <span class="ow">and</span> <span class="n">label</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">():</span><span class="n">ucfirst</span><span class="p">(</span><span class="n">label</span><span class="p">)</span> <span class="o">==</span> <span class="n">siteLink</span> <span class="ow">and</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'[[%s]]'</span><span class="p">,</span> <span class="n">label</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'[[%s|%s]]'</span><span class="p">,</span> <span class="n">siteLink</span><span class="p">,</span> <span class="n">label</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">siteLink</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'[[%s]]'</span><span class="p">,</span> <span class="n">siteLink</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">label</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">label</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="s1">''</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatMonolingualtext</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="s1">''</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">includelang</span> <span class="ow">or</span> <span class="n">args</span><span class="p">.</span><span class="n">includelang</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'%f[a-z]'</span> <span class="o">..</span> <span class="n">value</span><span class="p">.</span><span class="n">language</span> <span class="o">..</span> <span class="s1">'%f[^a-z]'</span><span class="p">)</span> <span class="kr">then</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">excludelang</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">excludelang</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'%f[a-z]'</span> <span class="o">..</span> <span class="n">value</span><span class="p">.</span><span class="n">language</span> <span class="o">..</span> <span class="s1">'%f[^a-z]'</span><span class="p">)</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">text</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">showlang</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mLanguages</span><span class="p">.</span><span class="n">lingue</span><span class="p">({</span> <span class="n">value</span><span class="p">.</span><span class="n">language</span> <span class="p">})</span> <span class="o">..</span> <span class="s1">'&nbsp;'</span> <span class="o">..</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatTimeWithPrecision</span><span class="p">(</span><span class="n">time</span><span class="p">,</span> <span class="n">precision</span><span class="p">)</span> <span class="kd">local</span> <span class="n">months</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'gennaio'</span><span class="p">,</span> <span class="s1">'febbraio'</span><span class="p">,</span> <span class="s1">'marzo'</span><span class="p">,</span> <span class="s1">'aprile'</span><span class="p">,</span> <span class="s1">'maggio'</span><span class="p">,</span> <span class="s1">'giugno'</span><span class="p">,</span> <span class="s1">'luglio'</span><span class="p">,</span> <span class="s1">'agosto'</span><span class="p">,</span> <span class="s1">'settembre'</span><span class="p">,</span> <span class="s1">'ottobre'</span><span class="p">,</span> <span class="s1">'novembre'</span><span class="p">,</span> <span class="s1">'dicembre'</span> <span class="p">}</span> <span class="kd">local</span> <span class="n">ret</span><span class="p">,</span> <span class="n">year</span><span class="p">,</span> <span class="n">month</span><span class="p">,</span> <span class="n">day</span> <span class="n">year</span><span class="p">,</span> <span class="n">month</span><span class="p">,</span> <span class="n">day</span> <span class="o">=</span> <span class="n">time</span><span class="p">:</span><span class="n">match</span><span class="p">(</span><span class="s1">'(%d+)%-(%d%d)%-(%d%d).+'</span><span class="p">)</span> <span class="n">year</span><span class="p">,</span> <span class="n">month</span><span class="p">,</span> <span class="n">day</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">year</span><span class="p">),</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">month</span><span class="p">),</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">day</span><span class="p">)</span> <span class="kr">if</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">9</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">year</span> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">months</span><span class="p">[</span><span class="n">month</span><span class="p">]</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">year</span> <span class="kr">elseif</span> <span class="n">precision</span> <span class="o">==</span> <span class="mi">11</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">day</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">months</span><span class="p">[</span><span class="n">month</span><span class="p">]</span> <span class="o">..</span> <span class="s1">' '</span> <span class="o">..</span> <span class="n">year</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span><span class="p">:</span><span class="n">gsub</span><span class="p">(</span><span class="s1">'^1%s'</span><span class="p">,</span> <span class="s1">'1º '</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">if</span> <span class="n">precision</span> <span class="o">>=</span> <span class="mi">9</span> <span class="ow">and</span> <span class="n">precision</span> <span class="o"><=</span> <span class="mi">11</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="p">(</span><span class="n">time</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'-'</span> <span class="ow">and</span> <span class="s1">' a.C.'</span> <span class="ow">or</span> <span class="s1">''</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatTime</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="o">==</span> <span class="s1">'precision'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">precision</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="o">==</span> <span class="s1">'calendarmodel'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">calendarmodel</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="o">==</span> <span class="s1">'year'</span> <span class="ow">and</span> <span class="n">value</span><span class="p">.</span><span class="n">precision</span> <span class="o">>=</span> <span class="mi">9</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatTimeWithPrecision</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">time</span><span class="p">,</span> <span class="mi">9</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="o">==</span> <span class="s1">'month'</span> <span class="ow">and</span> <span class="n">value</span><span class="p">.</span><span class="n">precision</span> <span class="o">>=</span> <span class="mi">10</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatTimeWithPrecision</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">time</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="o">==</span> <span class="s1">'day'</span> <span class="ow">and</span> <span class="n">value</span><span class="p">.</span><span class="n">precision</span> <span class="o">>=</span> <span class="mi">11</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatTimeWithPrecision</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">time</span><span class="p">,</span> <span class="mi">11</span><span class="p">)</span> <span class="kr">elseif</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">time</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatTimeWithPrecision</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">time</span><span class="p">,</span> <span class="n">value</span><span class="p">.</span><span class="n">precision</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatGlobecoordinate</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">coord</span> <span class="o">==</span> <span class="s1">'latitude'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">latitude</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">coord</span> <span class="o">==</span> <span class="s1">'longitude'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">longitude</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">coord</span> <span class="o">==</span> <span class="s1">'globe'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="n">globe</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'%s, %s'</span><span class="p">,</span> <span class="n">value</span><span class="p">.</span><span class="n">latitude</span><span class="p">,</span> <span class="n">value</span><span class="p">.</span><span class="n">longitude</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatFromPattern</span><span class="p">(</span><span class="n">str</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">{'</span><span class="p">,</span> <span class="s1">'{'</span><span class="p">)</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">gsub</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">}'</span><span class="p">,</span> <span class="s1">'}'</span><span class="p">)</span> <span class="kr">return</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">():</span><span class="n">preprocess</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">newRawMessage</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">str</span><span class="p">):</span><span class="n">plain</span><span class="p">())</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatUserValue</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">extlink</span> <span class="kr">then</span> <span class="n">value</span> <span class="o">=</span> <span class="n">formatExtLink</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="ow">and</span> <span class="n">formatFromPattern</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="ow">or</span> <span class="n">value</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">getEntityIdFromValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="kd">local</span> <span class="n">prefix</span> <span class="o">=</span> <span class="s1">''</span> <span class="kr">if</span> <span class="n">value</span><span class="p">[</span><span class="s1">'entity-type'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'item'</span> <span class="kr">then</span> <span class="n">prefix</span> <span class="o">=</span> <span class="s1">'Q'</span> <span class="kr">elseif</span> <span class="n">value</span><span class="p">[</span><span class="s1">'entity-type'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'property'</span> <span class="kr">then</span> <span class="n">prefix</span> <span class="o">=</span> <span class="s1">'P'</span> <span class="kr">else</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'unknown-entity-type'</span><span class="p">])</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">prefix</span> <span class="o">..</span> <span class="n">value</span><span class="p">[</span><span class="s1">'numeric-id'</span><span class="p">]</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatUnitSymbol</span><span class="p">(</span><span class="n">entityId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">lang</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">({</span> <span class="s1">'mul'</span><span class="p">,</span> <span class="s1">'it'</span><span class="p">,</span> <span class="s1">'en'</span> <span class="p">})</span> <span class="kr">do</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_getProperty</span><span class="p">({</span> <span class="s1">'P5061'</span><span class="p">,</span> <span class="n">includelang</span> <span class="o">=</span> <span class="n">lang</span><span class="p">,</span> <span class="n">from</span> <span class="o">=</span> <span class="n">entityId</span> <span class="p">})</span> <span class="kr">if</span> <span class="n">ret</span> <span class="ow">and</span> <span class="n">ret</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> <span class="kr">break</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kd">local</span> <span class="n">space</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">==</span> <span class="s1">'°'</span> <span class="ow">and</span> <span class="s1">''</span> <span class="ow">or</span> <span class="s1">' '</span> <span class="kr">if</span> <span class="n">ret</span> <span class="ow">and</span> <span class="n">args</span><span class="p">.</span><span class="n">showunitlink</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">link</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getSitelink</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kr">if</span> <span class="n">link</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'[[%s|%s]]'</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">ret</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="ow">and</span> <span class="p">(</span><span class="n">space</span> <span class="o">..</span> <span class="n">ret</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">end</span> <span class="c1">-- http://lua-users.org/wiki/SimpleRound</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">round</span><span class="p">(</span><span class="n">num</span><span class="p">,</span> <span class="n">idp</span><span class="p">)</span> <span class="kd">local</span> <span class="n">mult</span> <span class="o">=</span> <span class="mi">10</span> <span class="o">^</span> <span class="p">(</span><span class="n">idp</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">math.floor</span><span class="p">(</span><span class="n">num</span> <span class="o">*</span> <span class="n">mult</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span> <span class="o">/</span> <span class="n">mult</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatQuantity</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">amount</span><span class="p">)</span> <span class="kr">if</span> <span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">unit</span> <span class="ow">or</span> <span class="n">args</span><span class="p">.</span><span class="n">showunit</span><span class="p">)</span> <span class="ow">and</span> <span class="n">value</span><span class="p">.</span><span class="n">unit</span> <span class="o">~=</span> <span class="s1">'1'</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">unitId</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">unit</span><span class="p">,</span> <span class="s1">'Q%d+'</span><span class="p">)</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">unit</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">opts</span> <span class="o">=</span> <span class="p">{</span> <span class="n">showunit</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">showunit</span><span class="p">,</span> <span class="n">showunitlink</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">showunitlink</span><span class="p">,</span> <span class="n">formatnum</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">formatnum</span><span class="p">,</span> <span class="n">rounding</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">rounding</span> <span class="p">}</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mConvert</span><span class="p">.</span><span class="n">_main</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">unitId</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">unit</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> <span class="kr">else</span> <span class="c1">-- se è richiesto solo il simbolo dell'unità</span> <span class="c1">-- senza la conversione lo ottiene da P5061</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">rounding</span> <span class="ow">and</span> <span class="n">round</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">rounding</span><span class="p">)</span> <span class="ow">or</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">formatnum</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">():</span><span class="n">formatNum</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> <span class="kr">end</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="o">..</span> <span class="n">formatUnitSymbol</span><span class="p">(</span><span class="n">unitId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">formatnum</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">rounding</span> <span class="ow">and</span> <span class="n">round</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">rounding</span><span class="p">)</span> <span class="ow">or</span> <span class="n">ret</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">():</span><span class="n">formatNum</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">formatduration</span> <span class="ow">and</span> <span class="n">value</span><span class="p">.</span><span class="n">unit</span> <span class="o">~=</span> <span class="s1">'1'</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">unitId</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">match</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="n">unit</span><span class="p">,</span> <span class="s1">'Q%d+'</span><span class="p">)</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mConvert</span><span class="p">.</span><span class="n">_main</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">unitId</span><span class="p">,</span> <span class="s1">'second'</span><span class="p">)</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">ret</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">language</span><span class="p">.</span><span class="n">getContentLanguage</span><span class="p">()</span> <span class="p">:</span><span class="n">formatDuration</span><span class="p">(</span><span class="nb">tonumber</span><span class="p">(</span><span class="n">ret</span><span class="p">),</span> <span class="p">{</span> <span class="s1">'days'</span><span class="p">,</span> <span class="s1">'hours'</span><span class="p">,</span> <span class="s1">'minutes'</span><span class="p">,</span> <span class="s1">'seconds'</span> <span class="p">})</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatDatavalue</span><span class="p">(</span><span class="n">datavalue</span><span class="p">,</span> <span class="n">snakdatatype</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'wikibase-entityid'</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">entityId</span> <span class="o">=</span> <span class="n">getEntityIdFromValue</span><span class="p">(</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">)</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">showprop</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_getProperty</span><span class="p">({</span> <span class="n">args</span><span class="p">.</span><span class="n">showprop</span><span class="p">,</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="n">from</span> <span class="o">=</span> <span class="n">entityId</span> <span class="p">})</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">formatting</span> <span class="o">==</span> <span class="s1">'raw'</span> <span class="ow">and</span> <span class="n">entityId</span> <span class="ow">or</span> <span class="n">formatEntityId</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'string'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">value</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">extlink</span> <span class="ow">and</span> <span class="n">snakdatatype</span> <span class="o">==</span> <span class="s1">'url'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatExtLink</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">urlencode</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">uri</span><span class="p">.</span><span class="n">encode</span><span class="p">(</span><span class="n">ret</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'monolingualtext'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatMonolingualtext</span><span class="p">(</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'time'</span> <span class="kr">then</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">formatting</span> <span class="o">==</span> <span class="s1">'raw'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">.</span><span class="n">time</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatTime</span><span class="p">(</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'globecoordinate'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatGlobecoordinate</span><span class="p">(</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">datavalue</span><span class="p">.</span><span class="n">type</span> <span class="o">==</span> <span class="s1">'quantity'</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatQuantity</span><span class="p">(</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">else</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'unknown-datavalue-type'</span><span class="p">])</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatSnak</span><span class="p">(</span><span class="n">snak</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'somevalue'</span> <span class="kr">then</span> <span class="kr">return</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'somevalue'</span><span class="p">]</span> <span class="kr">elseif</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'novalue'</span> <span class="kr">then</span> <span class="kr">return</span> <span class="n">i18n</span><span class="p">[</span><span class="s1">'novalue'</span><span class="p">]</span> <span class="kr">elseif</span> <span class="n">snak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'value'</span> <span class="kr">then</span> <span class="kr">return</span> <span class="n">formatDatavalue</span><span class="p">(</span><span class="n">snak</span><span class="p">.</span><span class="n">datavalue</span><span class="p">,</span> <span class="n">snak</span><span class="p">.</span><span class="n">datatype</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">else</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'unknown-snak-type'</span><span class="p">])</span> <span class="kr">end</span> <span class="kr">end</span> <span class="c1">-- È al plurale perché anche i qualifier possono avere più di un valore</span> <span class="c1">-- (si ottiene inserendo due volte lo stesso qualifier)</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">rawTable</span><span class="p">,</span> <span class="n">retTable</span><span class="p">)</span> <span class="kd">local</span> <span class="n">formattedQualifiers</span> <span class="o">=</span> <span class="n">retTable</span> <span class="ow">or</span> <span class="p">{}</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">qualifierId</span><span class="p">]</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">qualifiers</span> <span class="o">=</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">qualifierId</span><span class="p">]</span> <span class="c1">-- con args.nq seleziona solo l'n-esimo qualifier</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">nq</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">n</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">nq</span><span class="p">)</span> <span class="n">qualifiers</span> <span class="o">=</span> <span class="p">(</span><span class="n">n</span> <span class="ow">and</span> <span class="n">n</span> <span class="o"><=</span> <span class="o">#</span><span class="n">qualifiers</span><span class="p">)</span> <span class="ow">and</span> <span class="p">{</span> <span class="n">qualifiers</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="p">}</span> <span class="ow">or</span> <span class="p">{}</span> <span class="kr">end</span> <span class="c1">-- qualifier filtrati per snaktype, default "value"</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="ow">or</span> <span class="s1">'value'</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">qualifier</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">qualifiers</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="ow">or</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'all'</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">formattedQualifier</span> <span class="o">=</span> <span class="n">formatSnak</span><span class="p">(</span><span class="n">qualifier</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">formattedQualifier</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="kr">then</span> <span class="n">formattedQualifier</span> <span class="o">=</span> <span class="n">formatFromPattern</span><span class="p">(</span><span class="n">formattedQualifier</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">formattedQualifier</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="n">formattedQualifier</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">else</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="n">formattedQualifier</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">if</span> <span class="n">rawTable</span> <span class="kr">then</span> <span class="kr">return</span> <span class="n">formattedQualifiers</span> <span class="kr">end</span> <span class="kr">return</span> <span class="o">#</span><span class="n">formattedQualifiers</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">listToText</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">separator</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">conjunction</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">appendQualifiers</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">formattedQualifiers</span> <span class="o">=</span> <span class="p">{}</span> <span class="kd">local</span> <span class="n">qualifierIds</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">split</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">showqualifiers</span><span class="p">,</span> <span class="s1">','</span><span class="p">)</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">qualifierId</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">qualifierIds</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">statement</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">qualifierId</span><span class="p">]</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">formattedQualifier</span> <span class="o">=</span> <span class="n">formatQualifiers</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="n">formattedQualifier</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">if</span> <span class="o">#</span><span class="n">formattedQualifiers</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> <span class="n">text</span> <span class="o">=</span> <span class="nb">string.format</span><span class="p">(</span><span class="s1">'%s (%s)'</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">listToText</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="s1">', '</span><span class="p">,</span> <span class="s1">', '</span><span class="p">))</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">text</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatStatement</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">statement</span><span class="p">.</span><span class="n">type</span> <span class="ow">or</span> <span class="n">statement</span><span class="p">.</span><span class="n">type</span> <span class="o">~=</span> <span class="s1">'statement'</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'unknown-claim-type'</span><span class="p">])</span> <span class="kr">end</span> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatSnak</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="c1">-- eventuale showqualifiers</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">showqualifiers</span> <span class="ow">and</span> <span class="n">statement</span><span class="p">.</span><span class="n">qualifiers</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">appendQualifiers</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">ret</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">formatStatements</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">rawTable</span><span class="p">)</span> <span class="kd">local</span> <span class="n">formattedStatements</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kd">local</span> <span class="n">formattedStatement</span> <span class="o">=</span> <span class="n">formatStatement</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">formattedStatement</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> <span class="c1">-- eventuale pattern</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">pattern</span> <span class="kr">then</span> <span class="n">formattedStatement</span> <span class="o">=</span> <span class="n">formatFromPattern</span><span class="p">(</span><span class="n">formattedStatement</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">formattedStatement</span> <span class="o">~=</span> <span class="s1">''</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">formattedStatements</span><span class="p">,</span> <span class="n">formattedStatement</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">else</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">formattedStatements</span><span class="p">,</span> <span class="n">formattedStatement</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">if</span> <span class="n">rawTable</span> <span class="kr">then</span> <span class="kr">return</span> <span class="n">formattedStatements</span> <span class="kr">end</span> <span class="kr">return</span> <span class="p">((</span><span class="n">args</span><span class="p">.</span><span class="n">list</span> <span class="ow">or</span> <span class="n">args</span><span class="p">.</span><span class="n">orderedlist</span><span class="p">)</span> <span class="ow">and</span> <span class="o">#</span><span class="n">formattedStatements</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="ow">and</span> <span class="n">formatList</span><span class="p">(</span><span class="n">formattedStatements</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">orderedlist</span> <span class="o">~=</span> <span class="kc">nil</span><span class="p">)</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">listToText</span><span class="p">(</span><span class="n">formattedStatements</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">separator</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">conjunction</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Lettura e selezione statement</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Restituisce true se lo statement contiene il qualifier richiesto con un dato valore</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">hasQualifierValue</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">qualifierValue</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="kc">false</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">qualifier</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">statement</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">qualifierId</span><span class="p">])</span> <span class="kr">do</span> <span class="kd">local</span> <span class="n">isItem</span> <span class="o">=</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="s1">'value'</span> <span class="ow">and</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="nb">type</span> <span class="o">==</span> <span class="s1">'wikibase-entityid'</span> <span class="c1">-- per le proprietà di tipo item il confronto è eseguito sull'id</span> <span class="kr">if</span> <span class="n">formatSnak</span><span class="p">(</span><span class="n">qualifier</span><span class="p">,</span> <span class="n">isItem</span> <span class="ow">and</span> <span class="p">{</span> <span class="n">formatting</span> <span class="o">=</span> <span class="s1">'raw'</span> <span class="p">}</span> <span class="ow">or</span> <span class="p">{})</span> <span class="o">==</span> <span class="n">qualifierValue</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="kc">true</span> <span class="kr">break</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce i claim con il rank richiesto</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">filterRankValue</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">rank</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">rank</span> <span class="o">==</span> <span class="n">rank</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce una sequence Lua contenente gli statement per la property richiesta,</span> <span class="c1">-- anche vuota se la proprietà non esiste, o non ci sono valori che soddisfano i criteri</span> <span class="c1">-- ("rank", "qualifier", "qualifiertype", "noqualifier", ...).</span> <span class="c1">-- Restituisce nil solo se la pagina non è collegata a un elemento Wikidata e non è indicato il from.</span> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">entityId</span><span class="p">,</span> <span class="n">claims</span><span class="p">,</span> <span class="n">filteredClaims</span> <span class="n">entityId</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">from</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">entityId</span> <span class="kr">then</span> <span class="kr">return</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="c1">-- il default rank è 'best'</span> <span class="n">args</span><span class="p">.</span><span class="n">rank</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">rank</span> <span class="ow">or</span> <span class="s1">'best'</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">rank</span> <span class="o">==</span> <span class="s1">'best'</span> <span class="kr">then</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getBestStatements</span><span class="p">(</span><span class="n">entityId</span><span class="p">,</span> <span class="n">propertyId</span><span class="p">)</span> <span class="kr">else</span> <span class="c1">-- statements filtrati per rank</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getAllStatements</span><span class="p">(</span><span class="n">entityId</span><span class="p">,</span> <span class="n">propertyId</span><span class="p">)</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">filterRankValue</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">rank</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-- statements filtrati per snaktype, default "value"</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="ow">or</span> <span class="s1">'value'</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="ow">and</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">~=</span> <span class="s1">'all'</span> <span class="kr">then</span> <span class="n">filteredClaims</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">mainsnak</span><span class="p">.</span><span class="n">snaktype</span> <span class="o">==</span> <span class="n">args</span><span class="p">.</span><span class="n">snaktype</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">filteredClaims</span> <span class="kr">end</span> <span class="c1">-- statements filtrati per qualifier</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifier</span> <span class="kr">then</span> <span class="n">filteredClaims</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="kr">then</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifiervalue</span> <span class="kr">then</span> <span class="kr">if</span> <span class="n">hasQualifierValue</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifier</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifiervalue</span><span class="p">)</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">else</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">filteredClaims</span> <span class="kr">end</span> <span class="c1">-- statements filtrati per essere senza un qualifier</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">noqualifier</span> <span class="kr">then</span> <span class="n">filteredClaims</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">noqualifier</span><span class="p">])</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">filteredClaims</span> <span class="kr">end</span> <span class="c1">-- statements filtrati per non avere un certo valore a un certo qualifier opzionale</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifieroptnovalue</span> <span class="ow">and</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifiervalue</span> <span class="kr">then</span> <span class="n">filteredClaims</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">qualifieroptnovalue</span><span class="p">]</span> <span class="kr">then</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">hasQualifierValue</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifieroptnovalue</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifiervalue</span><span class="p">)</span> <span class="kr">then</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">else</span> <span class="nb">table.insert</span><span class="p">(</span><span class="n">filteredClaims</span><span class="p">,</span> <span class="n">claim</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">filteredClaims</span> <span class="kr">end</span> <span class="c1">-- con args.qualifiertype=latest restituisce solo il più recente</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifier</span> <span class="ow">and</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifiertype</span> <span class="o">==</span> <span class="s1">'latest'</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">latest</span><span class="p">,</span> <span class="n">latestTime</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span> <span class="ow">and</span> <span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">qualifier</span><span class="p">]</span> <span class="kr">then</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">qualifier</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claim</span><span class="p">.</span><span class="n">qualifiers</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">qualifier</span><span class="p">])</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="nb">type</span> <span class="o">==</span> <span class="s1">'time'</span> <span class="kr">then</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">latestTime</span> <span class="ow">or</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">.</span><span class="n">time</span> <span class="o">></span> <span class="n">latestTime</span> <span class="kr">then</span> <span class="n">latest</span> <span class="o">=</span> <span class="n">claim</span> <span class="n">latestTime</span> <span class="o">=</span> <span class="n">qualifier</span><span class="p">.</span><span class="n">datavalue</span><span class="p">.</span><span class="n">value</span><span class="p">.</span><span class="n">time</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">latest</span> <span class="ow">and</span> <span class="p">{</span> <span class="n">latest</span> <span class="p">}</span> <span class="ow">or</span> <span class="p">{}</span> <span class="kr">end</span> <span class="c1">-- con args.n restituisce solo l'n-esimo elemento</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">n</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">n</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">n</span><span class="p">)</span> <span class="n">claims</span> <span class="o">=</span> <span class="p">(</span><span class="n">n</span> <span class="ow">and</span> <span class="n">n</span> <span class="o"><=</span> <span class="o">#</span><span class="n">claims</span><span class="p">)</span> <span class="ow">and</span> <span class="p">{</span> <span class="n">claims</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="p">}</span> <span class="ow">or</span> <span class="p">{}</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">claims</span> <span class="kr">end</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Funzioni esportate per altri moduli</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">return</span> <span class="n">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span> <span class="ow">or</span> <span class="p">{})</span> <span class="kr">end</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_formatStatement</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">return</span> <span class="n">formatStatement</span><span class="p">(</span><span class="n">statement</span><span class="p">,</span> <span class="n">args</span> <span class="ow">or</span> <span class="p">{})</span> <span class="kr">end</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_formatQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">rawTable</span><span class="p">,</span> <span class="n">retTable</span><span class="p">)</span> <span class="kr">return</span> <span class="n">formatQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">args</span> <span class="ow">or</span> <span class="p">{},</span> <span class="n">rawTable</span><span class="p">,</span> <span class="n">retTable</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-- Restituisce il valore di una proprietà di Wikidata oppure nil se l'entity o</span> <span class="c1">-- la proprietà non esistono, o se per parametri di selezione gli statement sono zero.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getProperty</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">rawTable</span><span class="p">)</span> <span class="kd">local</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">claims</span><span class="p">,</span> <span class="n">ret</span> <span class="c1">-- parametri posizionali</span> <span class="n">propertyId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">propertyId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">value</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="c1">-- fix uppercase</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifier</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">qualifier</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">qualifier</span><span class="p">)</span> <span class="kr">if</span> <span class="n">value</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatUserValue</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">wd</span> <span class="o">~=</span> <span class="s1">'no'</span> <span class="kr">then</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">(</span><span class="n">claims</span> <span class="ow">and</span> <span class="o">#</span><span class="n">claims</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span> <span class="n">formatStatements</span><span class="p">(</span><span class="n">claims</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">rawTable</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce il valore di un qualifier di una proprietà di Wikidata,</span> <span class="c1">-- o nil se l'entity o la proprietà non esistono, o se per parametri di selezione non ci sono risultati.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getQualifier</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">claims</span><span class="p">,</span> <span class="n">ret</span> <span class="c1">-- parametri posizionali</span> <span class="n">propertyId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">propertyId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">qualifierId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">qualifierId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'qualifier-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">value</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="kr">if</span> <span class="n">value</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">formatUserValue</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">elseif</span> <span class="n">args</span><span class="p">.</span><span class="n">wd</span> <span class="o">~=</span> <span class="s1">'no'</span> <span class="kr">then</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">claims</span> <span class="ow">and</span> <span class="o">#</span><span class="n">claims</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">formattedQualifiers</span> <span class="o">=</span> <span class="p">{}</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="n">formattedQualifiers</span> <span class="o">=</span> <span class="n">formatQualifiers</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">qualifierId</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="n">formattedQualifiers</span><span class="p">)</span> <span class="kr">end</span> <span class="n">ret</span> <span class="o">=</span> <span class="o">#</span><span class="n">formattedQualifiers</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">listToText</span><span class="p">(</span><span class="n">formattedQualifiers</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">separator</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">conjunction</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce l'indice dello statement con il valore richiesto, o nil se non trovato.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_indexOf</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span><span class="p">,</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">claims</span> <span class="c1">-- parametri posizionali</span> <span class="n">propertyId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">propertyId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">value</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">value</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'value-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">if</span> <span class="n">claims</span> <span class="ow">and</span> <span class="o">#</span><span class="n">claims</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> <span class="n">args</span><span class="p">.</span><span class="n">formatting</span> <span class="o">=</span> <span class="s1">'raw'</span> <span class="kr">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">claim</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">claims</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">formatStatement</span><span class="p">(</span><span class="n">claim</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="n">value</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">i</span> <span class="kr">break</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce il numero di statement di una proprietà di Wikidata.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_N</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">claims</span> <span class="c1">-- parametri posizionali</span> <span class="n">propertyId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">propertyId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-- get claims</span> <span class="n">claims</span> <span class="o">=</span> <span class="n">getClaims</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">return</span> <span class="n">claims</span> <span class="ow">and</span> <span class="o">#</span><span class="n">claims</span> <span class="ow">or</span> <span class="mi">0</span> <span class="kr">end</span> <span class="c1">-- Restituisce true se la propriertà specificata ha come valore</span> <span class="c1">-- almeno uno tra gli entityId passati come argomento.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_propertyHasEntity</span><span class="p">(</span><span class="n">propertyId</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">statements</span> <span class="o">=</span> <span class="n">p</span><span class="p">.</span><span class="n">_getProperty</span><span class="p">({</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">from</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">from</span><span class="p">,</span> <span class="n">formatting</span> <span class="o">=</span> <span class="s1">'raw'</span> <span class="p">},</span> <span class="kc">true</span><span class="p">)</span> <span class="kr">if</span> <span class="n">statements</span> <span class="kr">then</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">statement</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">entityId</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="n">statement</span> <span class="o">==</span> <span class="n">entityId</span> <span class="kr">then</span> <span class="kr">return</span> <span class="kc">true</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="c1">-- Se non è stato trovato alcun valore, controlla se questo sia ereditato</span> <span class="c1">-- tramite la proprietà "sottoclasse di" (P279) scavando in profondità</span> <span class="c1">-- fino all'esaurirsi del numero specificato in args.recursion.</span> <span class="cm">--[[ TODO: Valutare se sia opportuna una ricerca ricorsiva potenzialmente infinita.</span> <span class="cm"> Per farlo si può aggiungere un parametro (opzionale) maxDepth</span> <span class="cm"> che svolga l'attuale funzione di recursion e cambiare quest'ultimo</span> <span class="cm"> in un parametro booleano.</span> <span class="cm"> ]]</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">recursion</span><span class="p">)</span> <span class="ow">or</span> <span class="mi">0</span> <span class="kr">if</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">recursion</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span><span class="p">)</span> <span class="o">~=</span> <span class="s1">'table'</span> <span class="kr">then</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span> <span class="o">=</span> <span class="nb">setmetatable</span><span class="p">({},</span> <span class="p">{</span> <span class="n">__newindex</span> <span class="o">=</span> <span class="kr">function</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="nb">rawset</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="nb">rawset</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="o">#</span><span class="n">t</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span> <span class="kr">end</span> <span class="p">})</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span><span class="p">[</span><span class="n">args</span><span class="p">.</span><span class="n">from</span> <span class="ow">or</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()]</span> <span class="o">=</span> <span class="kc">true</span> <span class="kr">end</span> <span class="kr">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">statement</span> <span class="kr">in</span> <span class="nb">ipairs</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="kr">do</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span><span class="p">[</span><span class="n">statement</span><span class="p">]</span> <span class="kr">then</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span><span class="p">[</span><span class="n">statement</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="o">=</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="o">-</span> <span class="mi">1</span> <span class="n">args</span><span class="p">.</span><span class="n">from</span> <span class="o">=</span> <span class="n">statement</span> <span class="kr">if</span> <span class="n">p</span><span class="p">.</span><span class="n">_propertyHasEntity</span><span class="p">(</span><span class="s1">'P279'</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">then</span> <span class="kr">return</span> <span class="kc">true</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span> <span class="kr">end</span> <span class="n">args</span><span class="p">.</span><span class="n">recursion</span> <span class="o">=</span> <span class="n">recursion</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">return</span> <span class="kc">false</span><span class="p">,</span> <span class="n">args</span><span class="p">.</span><span class="n">loadedEntities</span> <span class="kr">end</span> <span class="c1">-- Restituisce true se la proprietà P31 (instance of) ha come valore almeno uno tra gli entityId specificati</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_instanceOf</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_propertyHasEntity</span><span class="p">(</span><span class="s1">'P31'</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-- Restituisce true se la proprietà P279 (subclass of) ha come valore almeno uno tra gli entityId specificati</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_subclassOf</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_propertyHasEntity</span><span class="p">(</span><span class="s1">'P279'</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="kr">end</span> <span class="c1">-- Restituisce l'etichetta di un item o di una proprietà Wikidata.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getLabel</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">entityId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getLabelByLang</span><span class="p">(</span><span class="n">entityId</span><span class="p">,</span> <span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getLabel</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-- Restituisce il titolo della pagina collegata a un dato item Wikidata.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getLink</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="c1">-- parametri posizionali</span> <span class="kd">local</span> <span class="n">entityId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">entityId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'entityid-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">entityId</span><span class="p">:</span><span class="n">sub</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="s1">'Q'</span> <span class="ow">and</span> <span class="n">formatEntityId</span><span class="p">(</span><span class="n">entityId</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> <span class="kr">end</span> <span class="c1">-- Restituisce il datatype di una proprietà Wikidata.</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getDatatype</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">propertyId</span><span class="p">,</span> <span class="n">entity</span> <span class="c1">-- parametri posizionali</span> <span class="n">propertyId</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">and</span> <span class="nb">string.upper</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">propertyId</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'property-param-not-provided'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="n">entity</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntity</span><span class="p">(</span><span class="n">propertyId</span><span class="p">)</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">entity</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'entity-not-found'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">if</span> <span class="ow">not</span> <span class="n">i18n</span><span class="p">.</span><span class="n">datatypes</span><span class="p">[</span><span class="n">entity</span><span class="p">.</span><span class="n">datatype</span><span class="p">]</span> <span class="kr">then</span> <span class="nb">error</span><span class="p">(</span><span class="n">i18n</span><span class="p">.</span><span class="n">errors</span><span class="p">[</span><span class="s1">'unknown-datavalue-type'</span><span class="p">],</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">i18n</span><span class="p">.</span><span class="n">datatypes</span><span class="p">[</span><span class="n">entity</span><span class="p">.</span><span class="n">datatype</span><span class="p">]</span> <span class="kr">end</span> <span class="c1">-- Restituisce l'ID dell'item Wikidata collegato alla pagina corrente o a una pagina specificata</span> <span class="c1">-- (nota: segue i redirect fermandosi al primo redirect collegato a un elemento)</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">_getId</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="kd">local</span> <span class="n">ret</span> <span class="kr">if</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="kr">then</span> <span class="kd">local</span> <span class="n">title</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="kr">while</span> <span class="n">title</span> <span class="kr">do</span> <span class="kd">local</span> <span class="n">id</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForTitle</span><span class="p">(</span><span class="n">title</span><span class="p">.</span><span class="n">prefixedText</span><span class="p">)</span> <span class="kr">if</span> <span class="n">id</span> <span class="kr">then</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">id</span> <span class="kr">break</span> <span class="kr">else</span> <span class="n">title</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">redirectTarget</span> <span class="kr">end</span> <span class="kr">end</span> <span class="kr">else</span> <span class="n">ret</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">wikibase</span><span class="p">.</span><span class="n">getEntityIdForCurrentPage</span><span class="p">()</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">ret</span> <span class="kr">end</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Funzioni esportate per i template</span> <span class="c1">-------------------------------------------------------------------------------</span> <span class="c1">-- Funzione per il template {{Wikidata}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getProperty</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getProperty</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataQ}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getQualifier</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getQualifier</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataIdx}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">indexOf</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_indexOf</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataN}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">N</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_N</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataLabel}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getLabel</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getLabel</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataLink}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getLink</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getLink</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataIstanza}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">instanceOf</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_instanceOf</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="ow">and</span> <span class="mi">1</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataTipo}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getDatatype</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getDatatype</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataId}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">getId</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_getId</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="c1">-- Funzione per il template {{WikidataValido}}</span> <span class="kr">function</span> <span class="nc">p</span><span class="p">.</span><span class="nf">checkProperty</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="kr">return</span> <span class="nb">select</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="nb">xpcall</span><span class="p">(</span><span class="kr">function</span><span class="p">()</span> <span class="kr">return</span> <span class="n">p</span><span class="p">.</span><span class="n">_N</span><span class="p">(</span><span class="n">getArgs</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="p">{</span> <span class="n">parentOnly</span> <span class="o">=</span> <span class="kc">true</span> <span class="p">}))</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="mi">1</span> <span class="ow">or</span> <span class="s1">''</span> <span class="kr">end</span><span class="p">,</span> <span class="n">errhandler</span><span class="p">))</span> <span class="kr">end</span> <span class="kr">return</span> <span class="n">p</span> </pre></div> </div></div> <div class="printfooter">Estratto da "<a dir="ltr" href="https://it.wikiquote.org/w/index.php?title=Modulo:Wikidata&oldid=1054061">https://it.wikiquote.org/w/index.php?title=Modulo:Wikidata&oldid=1054061</a>"</div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Categoria:Categorie" title="Categoria:Categorie">Categoria</a>: <ul><li><a href="/wiki/Categoria:Moduli" title="Categoria:Moduli">Moduli</a></li></ul></div></div> <div class="visualClear"></div> </div> </div> <div id="mw-navigation"> <h2>Menu di navigazione</h2> <div id="mw-head"> <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label"> <h3 id="p-personal-label">Strumenti personali</h3> <ul > <li id="pt-userpage"><a href="/wiki/Utente:ValterVB" dir="auto" title="La tua pagina utente [.]" accesskey=".">ValterVB</a></li><li id="pt-notifications-alert"><a href="/wiki/Speciale:Notifiche" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-bell mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="I tuoi avvisi">Avvisi (0)</a></li><li id="pt-notifications-notice"><a href="/wiki/Speciale:Notifiche" class="mw-echo-notifications-badge mw-echo-notification-badge-nojs oo-ui-icon-tray mw-echo-notifications-badge-all-read" data-counter-num="0" data-counter-text="0" title="Le tue notizie">Notizie (0)</a></li><li id="pt-mytalk"><a href="/wiki/Discussioni_utente:ValterVB" title="La tua pagina di discussione [n]" accesskey="n">discussioni</a></li><li id="pt-preferences"><a href="/wiki/Speciale:Preferenze" title="Le tue preferenze">preferenze</a></li><li id="pt-betafeatures"><a href="/wiki/Speciale:Preferenze#mw-prefsection-betafeatures" title="Funzionalità sperimentali">beta</a></li><li id="pt-watchlist"><a href="/wiki/Speciale:OsservatiSpeciali" title="La lista delle pagine che stai tenendo sotto osservazione [l]" accesskey="l">osservati speciali</a></li><li id="pt-mycontris"><a href="/wiki/Speciale:Contributi/ValterVB" title="La lista dei tuoi contributi [y]" accesskey="y">contributi</a></li><li id="pt-logout"><a href="/w/index.php?title=Speciale:Esci&returnto=Modulo%3AWikidata" data-mw="interface" title="Uscita (logout)">esci</a></li> </ul> </div> <div id="left-navigation"> <div id="p-namespaces" role="navigation" class="vectorTabs " aria-labelledby="p-namespaces-label"> <h3 id="p-namespaces-label">Namespace</h3> <ul > <li id="ca-nstab-module" class="selected"><a href="/wiki/Modulo:Wikidata" title="Vedi la pagina del modulo">Modulo</a></li><li id="ca-talk"><a href="/wiki/Discussioni_modulo:Wikidata" rel="discussion" title="Vedi le discussioni relative a questa pagina [t]" accesskey="t">Discussione</a></li> </ul> </div> <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label"> <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-variants-label" /> <h3 id="p-variants-label"> <span>Varianti</span> </h3> <ul class="menu" > </ul> </div> </div> <div id="right-navigation"> <div id="p-views" role="navigation" class="vectorTabs " aria-labelledby="p-views-label"> <h3 id="p-views-label">Visite</h3> <ul > <li id="ca-view" class="collapsible selected"><a href="/wiki/Modulo:Wikidata">Leggi</a></li><li id="ca-edit" class="collapsible"><a href="/w/index.php?title=Modulo:Wikidata&action=edit" title="Modifica questa pagina [e]" accesskey="e">Modifica</a></li><li id="ca-history" class="collapsible"><a href="/w/index.php?title=Modulo:Wikidata&action=history" title="Versioni precedenti di questa pagina [h]" accesskey="h">Cronologia</a></li><li id="ca-watch" class="collapsible icon mw-watchlink"><a href="/w/index.php?title=Modulo:Wikidata&action=watch" data-mw="interface" title="Aggiungi questa pagina alla tua lista degli osservati speciali [w]" accesskey="w">Segui</a></li> </ul> </div> <div id="p-cactions" role="navigation" class="vectorMenu " aria-labelledby="p-cactions-label"> <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-cactions-label" /> <h3 id="p-cactions-label"> <span>Altro</span> </h3> <ul class="menu" > <li id="ca-move"><a href="/wiki/Speciale:Sposta/Modulo:Wikidata" title="Sposta questa pagina (cambia titolo) [m]" accesskey="m">Sposta</a></li> </ul> </div> <div id="p-search" role="search"> <h3 > <label for="searchInput">Ricerca</label> </h3> <form action="/w/index.php" id="searchform"> <div id="simpleSearch"> <input type="search" name="search" placeholder="Cerca in Wikiquote" title="Cerca in Wikiquote [f]" accesskey="f" id="searchInput"/> <input type="hidden" value="Speciale:Ricerca" name="title"/> <input type="submit" name="fulltext" value="Ricerca" title="Cerca il testo indicato nelle pagine" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/> <input type="submit" name="go" value="Vai" title="Vai a una pagina con il titolo indicato, se esiste" id="searchButton" class="searchButton"/> </div> </form> </div> </div> </div> <div id="mw-panel"> <div id="p-logo" role="banner"> <a title="Visita la pagina principale" class="mw-wiki-logo" href="/wiki/Pagina_principale"></a> </div> <div class="portal" role="navigation" id="p-navigation" aria-labelledby="p-navigation-label"> <h3 id="p-navigation-label"> Navigazione </h3> <div class="body"> <ul><li id="n-mainpage-description"><a href="/wiki/Pagina_principale" title="Visita la pagina principale [z]" accesskey="z">Pagina principale</a></li><li id="n-menu"><a href="/wiki/Categoria:Antologia">Antologia</a></li><li id="n-randompage"><a href="/wiki/Speciale:PaginaCasuale" title="Mostra una pagina a caso [x]" accesskey="x">Una voce a caso</a></li><li id="n-vetrina"><a href="/wiki/Wikiquote:Vetrina">Vetrina</a></li><li id="n-guida"><a href="/wiki/Aiuto:Guida_alla_lettura_di_Wikiquote">Guida alla lettura</a></li></ul> </div> </div> <div class="portal" role="navigation" id="p-Comunità" aria-labelledby="p-Comunità-label"> <h3 id="p-Comunità-label"> Comunità </h3> <div class="body"> <ul><li id="n-recentchanges"><a href="/wiki/Speciale:UltimeModifiche" title="Elenco delle ultime modifiche del sito [r]" accesskey="r">Ultime modifiche</a></li><li id="n-portal"><a href="/wiki/Portale:Comunit%C3%A0" title="Descrizione del progetto, cosa puoi fare, dove trovare le cose">Portale comunità</a></li><li id="n-help"><a href="/wiki/Aiuto:Aiuto" title="Pagine di aiuto">Aiuto</a></li><li id="n-villagepump"><a href="/wiki/Wikiquote:Bar">Bar</a></li><li id="n-bacheca"><a href="/wiki/Wikiquote:Bacheca">Bacheca</a></li><li id="n-sitesupport"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_it.wikiquote.org&uselang=it" title="Sostienici">Fai una donazione</a></li><li id="n-contactpage"><a href="/wiki/Wikiquote:Contatti">Contatti</a></li></ul> </div> </div> <div class="portal" role="navigation" id="p-tb" aria-labelledby="p-tb-label"> <h3 id="p-tb-label"> Strumenti </h3> <div class="body"> <ul><li id="t-whatlinkshere"><a href="/wiki/Speciale:PuntanoQui/Modulo:Wikidata" title="Elenco di tutte le pagine che sono collegate a questa [j]" accesskey="j">Puntano qui</a></li><li id="t-recentchangeslinked"><a href="/wiki/Speciale:ModificheCorrelate/Modulo:Wikidata" rel="nofollow" title="Elenco delle ultime modifiche alle pagine collegate a questa [k]" accesskey="k">Modifiche correlate</a></li><li id="t-upload"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard" title="Carica file multimediali [u]" accesskey="u">Carica un file</a></li><li id="t-specialpages"><a href="/wiki/Speciale:PagineSpeciali" title="Elenco di tutte le pagine speciali [q]" accesskey="q">Pagine speciali</a></li><li id="t-permalink"><a href="/w/index.php?title=Modulo:Wikidata&oldid=1054061" title="Collegamento permanente a questa versione della pagina">Link permanente</a></li><li id="t-info"><a href="/w/index.php?title=Modulo:Wikidata&action=info" title="Ulteriori informazioni su questa pagina">Informazioni pagina</a></li><li id="t-wikibase"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q24575438" title="Collegamento all'elemento connesso dell'archivio dati [g]" accesskey="g">Elemento Wikidata</a></li></ul> </div> </div> <div class="portal" role="navigation" id="p-wikibase-otherprojects" aria-labelledby="p-wikibase-otherprojects-label"> <h3 id="p-wikibase-otherprojects-label"> In altri progetti </h3> <div class="body"> <ul><li class="wb-otherproject-link wb-otherproject-commons"><a href="https://commons.wikimedia.org/wiki/Module:Wikidata2" hreflang="en">Wikimedia Commons</a></li><li class="wb-otherproject-link wb-otherproject-meta"><a href="https://meta.wikimedia.org/wiki/Module:Wikidata" hreflang="en">Meta-Wiki</a></li><li class="wb-otherproject-link wb-otherproject-species"><a href="https://species.wikimedia.org/wiki/Module:Wikidata" hreflang="en">Wikispecies</a></li><li class="wb-otherproject-link wb-otherproject-wikibooks"><a href="https://it.wikibooks.org/wiki/Modulo:Wikidata" hreflang="it">Wikibooks</a></li><li class="wb-otherproject-link wb-otherproject-wikidata"><a href="https://www.wikidata.org/wiki/Module:Wikidata" hreflang="en">Wikidata</a></li><li class="wb-otherproject-link wb-otherproject-wikipedia"><a href="https://it.wikipedia.org/wiki/Modulo:Wikidata" hreflang="it">Wikipedia</a></li><li class="wb-otherproject-link wb-otherproject-wikisource"><a href="https://it.wikisource.org/wiki/Modulo:Wikidata" hreflang="it">Wikisource</a></li><li class="wb-otherproject-link wb-otherproject-wikivoyage"><a href="https://it.wikivoyage.org/wiki/Modulo:Wikidata" hreflang="it">Wikivoyage</a></li></ul> </div> </div> <div class="portal" role="navigation" id="p-electronpdfservice-sidebar-portlet-heading" aria-labelledby="p-electronpdfservice-sidebar-portlet-heading-label"> <h3 id="p-electronpdfservice-sidebar-portlet-heading-label"> Stampa/esporta </h3> <div class="body"> <ul><li id="electron-print_pdf"><a href="/w/index.php?title=Speciale:ElectronPdf&page=Modulo%3AWikidata&action=show-download-screen">Scarica in formato PDF</a></li></ul> </div> </div> <div class="portal" role="navigation" id="p-lang" aria-labelledby="p-lang-label"> <h3 id="p-lang-label"> In altre lingue </h3> <div class="body"> <ul><li class="interlanguage-link interwiki-ar"><a href="https://ar.wikiquote.org/wiki/%D9%88%D8%AD%D8%AF%D8%A9:Wikidata2" title="وحدة:Wikidata2 - arabo" lang="ar" hreflang="ar" class="interlanguage-link-target">العربية</a></li><li class="interlanguage-link interwiki-be"><a href="https://be.wikiquote.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata" title="Модуль:Wikidata - bielorusso" lang="be" hreflang="be" class="interlanguage-link-target">Беларуская</a></li><li class="interlanguage-link interwiki-cs"><a href="https://cs.wikiquote.org/wiki/Modul:Wikidata" title="Modul:Wikidata - ceco" lang="cs" hreflang="cs" class="interlanguage-link-target">Čeština</a></li><li class="interlanguage-link interwiki-ru"><a href="https://ru.wikiquote.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Wikidata" title="Модуль:Wikidata - russo" lang="ru" hreflang="ru" class="interlanguage-link-target">Русский</a></li><li class="interlanguage-link interwiki-sl"><a href="https://sl.wikiquote.org/wiki/Modul:Wikidata" title="Modul:Wikidata - sloveno" lang="sl" hreflang="sl" class="interlanguage-link-target">Slovenščina</a></li><li class="interlanguage-link interwiki-zh"><a href="https://zh.wikiquote.org/wiki/%E6%A8%A1%E5%9D%97:Wikidata" title="模块:Wikidata - cinese" lang="zh" hreflang="zh" class="interlanguage-link-target">中文</a></li></ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q24575438#sitelinks-wikiquote" title="Modifica collegamenti interlinguistici" class="wbc-editpage">Modifica collegamenti</a></span></div> </div> </div> </div> </div> <div id="footer" role="contentinfo" > <ul id="footer-info" class=""> <li id="footer-info-lastmod"> Questa pagina è stata modificata per l'ultima volta il 3 apr 2020 alle 12:32.</li> <li id="footer-info-copyright">Il testo è disponibile secondo la <a href="http://creativecommons.org/licenses/by-sa/3.0/deed.it">licenza Creative Commons Attribuzione-Condividi allo stesso modo</a>; possono applicarsi condizioni ulteriori. Vedi le <a class='internal' href="/wiki/Wikiquote:Diritto_d'autore#Condizioni_d.27uso">condizioni d'uso</a> per i dettagli.</li> </ul> <ul id="footer-places" class=""> <li id="footer-places-privacy"><a href="https://meta.wikimedia.org/wiki/Privacy_policy/it" class="extiw" title="m:Privacy policy/it">Politica sulla privacy</a></li> <li id="footer-places-about"><a href="/wiki/Wikiquote:Wikiquote" title="Wikiquote:Wikiquote">Informazioni su Wikiquote</a></li> <li id="footer-places-disclaimer"><a href="/wiki/Wikiquote:Avvertenze_generali" title="Wikiquote:Avvertenze generali">Avvertenze di consultazione ed esclusione di responsabilità</a></li> <li id="footer-places-developers"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute">Sviluppatori</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/it.wikiquote.org">Statistiche</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Cookie_statement">Dichiarazione sui cookie</a></li> <li id="footer-places-mobileview"><a href="//it.m.wikiquote.org/w/index.php?title=Modulo:Wikidata&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Versione mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/"><img src="/static/images/wikimedia-button.png" srcset="/static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x" width="88" height="31" alt="Wikimedia Foundation"/></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="/static/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a></li> </ul> <div style="clear: both;"></div> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.052","walltime":"0.059","ppvisitednodes":{"value":100,"limit":1000000},"postexpandincludesize":{"value":12442,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":4,"limit":40},"expensivefunctioncount":{"value":0,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":1669,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 43.273 1 -total","100.00% 43.273 1 Modulo:Wikidata/man"," 65.01% 28.130 1 Template:Interprogetto"]},"scribunto":{"limitreport-timeusage":{"value":"0.011","limit":"10.000"},"limitreport-memusage":{"value":796680,"limit":52428800}},"cachereport":{"origin":"mw1320","timestamp":"20200403110853","ttl":2592000,"transientcontent":false}}});mw.config.set({"wgBackendResponseTime":200,"wgHostname":"mw1320"});});</script></body></html>