Discussioni modulo:Wikidata: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullata la modifica di 87.26.12.197 (discussione), riportata alla versione precedente di Pil56 Etichette: Rollback SWViewer [1.6] |
|||
(39 versioni intermedie di 11 utenti non mostrate) | |||
Riga 206:
:::Secondo me dovremmo farci aiutare da qualche esperto di wikidata per far "capire" al modulo quando ci sono i presupposti per utilizzare il template {{tl|Cita testo}}. Per esempio il modulo potrebbe controllare se è compilata la proprietà [[d:Property:P357]] (chiamata "titolo") e in caso affermativo utilizzare il template {{tl|Cita testo}}.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 13:57, 10 nov 2014 (CET)
::: Il problema che vedo in questo momento, è che una fonte di un dato, soprattutto in caso di fonti letterarie, è un item stesso che contiene tutti i dati e quindi ricadiamo nel problema dell'accesso arbitrario agli elementi di Wikidata. Per capirci, se la fonte è una edizione di un certo libro, troveremo come fonte semplicemente il titolo di quella edizione del libro e se volessimo i dati dell'autore o della casa editrice dovremmo andare a pescare questi dati nell'item dell'edizione. In altri casi fortunatamente è più semplice --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 22:45, 10 nov 2014 (CET)
:::: Come siamo rimasti qui? Perchè l'idea di poter avere un semplice modulo che evochi un {{Tl|Cita testo}} ogni volta che ci sia {{WikidataProp|P1476
:::::{{ping|Moroboshi|Sakretsu}} Dato che di recente è stata aperta una discussione analoga in [[DP:Coordinamento/Wikidata#Rendere visibili le fonti]], vi pingo per un parere tecnico. --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 16:47, 4 mar 2021 (CET)
:::::: {{Ping|Horcrux}}, la discussione dove è unificata? Altrimenti discutiamo su 3 posti diversi. -- '''[[User:Blackcat|<span style="font-family:Bookman Old Style,Palatino Linotype,Times New Roman;color:#000">Blackcat</span>]]''' <sup><small>[[File:Ar Icon Contact.svg|15px|link=discussioni utente:blackcat]]</small></sup> 21:09, 4 mar 2021 (CET)
== Sitelink ==
Line 290 ⟶ 292:
Mi servirebbe per estrapolare uno o più ''statement'' che non possiedono un dato qualificatore. Questo mi è utile per gestire gli equipaggi delle missioni spaziali. Per sapere se un astronauta ha partecipato a tutta la missione (e non solo al lancio o al rientro) vado a vedere che un esiste il qualificatore "parte coinvolta", se non c'è ha fatto tutto il volo. Ho già testato in sandbox e, in particolare, nella voce [[Sojuz TMA-18M]]. Cosa ne dite? Grazie. --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 12:36, 28 mag 2016 (CEST)
: Scusa Adert, solo una cosa, non ho capito perché stai usando il template Wikidata nella voce ([[Sojuz TMA-18M]]), va usato nel template ([[T:
:: Era solo per fare un esempio di quello che vorrei fare, se approvato lo sposterei nel template (ma non subito, perchè ci sarebbero delle cose da rivedere). --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 12:54, 28 mag 2016 (CEST)
::: Si fa così allora in questi casi: fai la modifica che vuoi far vedere in [[T:
:::: {{Fatto}} scusa. --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 13:11, 28 mag 2016 (CEST)
::::: Ok aggiungo questo parametro noqualifier. Solo una cosa, questa proprietà "parte coinvolta" è già usata negli elementi Wikidata che riguardano questi voli? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:33, 28 mag 2016 (CEST)
:::::: Si, praticamente in tutti gli rquipaggi delle missioni. L'unico problema è che a volte è stato utilizzato come qualificatore per il lancio lo statement "lancio del razzo vettore" o "decollo". Dovrò uniformare il tutto --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 13:37, 28 mag 2016 (CEST)
::::::: {{fatto}} --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:53, 28 mag 2016 (CEST)
{{rientro}} Sempre pensando al template {{tl|
: {{ping|Adert}} Ciao, andrebbe solo estesa la funzionalità del template {{tl|WikidataN}}, tramite getClaims. Solo un attimo e lo aggiungo (aggiungo anche la precisione al secondo per il tipo time). --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 15:11, 2 giu 2016 (CEST)
:: {{ping|Adert}} Ho esteso la funzionalità di {{tl|WikidataN}} ([//it.wikipedia.org/w/index.php?title=Modulo:Wikidata&curid=4503178&diff=81226355&oldid=81185028 diff] e [//it.wikipedia.org/w/index.php?title=Template:WikidataN/man&curid=5209512&diff=81226581&oldid=77336201 diff]), guarda se ora ti è sufficiente per quello che volevi fare.
Line 304 ⟶ 306:
::: Inizialmente era possibile tramite API, poi l'hanno impedito, c'è un [https://phabricator.wikimedia.org/T57755 ticket su phabricator]. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 16:36, 2 giu 2016 (CEST)
:::: Ah grazie! Ci stavo arrivando da [[d:Help:Dates]], dalla cui sezione "Known issues" era risalito a [[phab:T87764]], e poi il tuo [[phab:T57755]]. {{ping|Adert}} a questo punto non ci rimane che continuare con la solita precisione al "giorno". --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 16:41, 2 giu 2016 (CEST)
::::: già, speriamo che lo implementino. Andando avanti con il template {{tl|
:::::: Oltre una certa complessità è normale fare un modulo ad hoc, vedi [[Modulo:Eruzione]], [[Modulo:Infobox aeroporto]], ... Certo più si riesce ad utilizzare solo il template Wikidata più avremo un sistema flessibile, ma fino a un certo limite comunque. Eventualmente scrivi qui cosa vuoi ottenere da Wikidata e ti posso dire se secondo me è ottenibile con l'attuale template Wikidata (con eventuali minime aggiunte) o se necessita sicuramente di un modulo a parte. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 18:17, 2 giu 2016 (CEST)
::::::: Beh, sicuramente gli aspetti più compelssi riguarderanno l'equipaggio. Ad esempio vorrei creare un template che illustri l'equipaggio di una missione (dunque chi sale, chi scende, la loro qualifica, se fanno parte di una expedition, l'agenzia di provenienza, la nazionalità...); sul template {{tl|astronauta}} ci sarebbe da elencare tutte le missioni a cui hanno partecipato, ordinandole cronologicamente, aggiungendo il logo e possibilmente distinguendo tra missione ed expedition. Nel template infobox missione spaziale, potrebbe essere buona cosa che il dato di ritorno da wikidata "Space Shuttle Columbia", "Space Shuttle Discovery",... venga trasformato in <nowiki>[[space shuttle Columbia|Columbia]]</nowiki>; bisogna fare il conto del numero di membri di equipaggio di una missione, considerando chi sale e chi scende (questo si potrebbe fare anche con un po' di funzioni parser...). Tutti questi sono solo alcuni esempi che mi vengono in mente adesso. E ancora non sto considerando le missioni lunari e interplanetarie!! Già che ci sono ti chiedo una cosa: nel testo multilingua (utilizzato come qualificatore) coem faccio a ritornare solo il testo in italiano? Mi tornerebbe comodo per mettere le didascalie dei membri dell'equipaggio su Wikidata. Grazie ancora di tutta la tua disponibilità! --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 18:47, 2 giu 2016 (CEST)
Line 311 ⟶ 313:
{{rientro}} {{ping|Adert}} Riguardo al testo multilingua finora era servita solo l'operazione di esclusione l'italiano. Ho quindi ampliato con [//it.wikipedia.org/w/index.php?title=Template:Wikidata/man&diff=prev&oldid=81238328 due nuovi parametri]: ora per includere solo l'italiano puoi usare <code>includelang=it</code>.
Riguardo agli altri esempi che hai fatto per l'utilizzo di Wikidata, guardiamoli uno per volta. Ho iniziato dal template {{tl|
. Ti va bene così? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 11:44, 3 giu 2016 (CEST)
:: Grazie mille, splendido lavoro! Non avevo pensato ad un sottotemplate. Ora mi fermerei con le nuove implementazione perché vorrei rendere effettive le varie modifiche sui template e togliere i parametri rindondati dalle pagine di Wikipedia, perlomeno dalle missioni Shuttle e Sojuz. Ci vorrà un po' di tempo. --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 12:22, 3 giu 2016 (CEST)
Line 339 ⟶ 341:
Domanda. Ma perchè {{Tl|WikidataIstanza|[[d:Q341|Q341]]|[[d:Q1130645|Q1130645]]}} non dà <code>1</code> nella voce [[DotNetNuke]] ([[d:Q1251148]])? E.g.: "{{WikidataIstanza|Q341|Q1130645|from=Q1251148}}". --[[Utente:Valerio Bozzolan|Valerio Bozzolan]] ([[Discussioni utente:Valerio Bozzolan|msg]]) 02:26, 28 feb 2017 (CET)
: P.S. A dirla tutta non va manco con {{Tl|WikidataIstanza|[[d:Q341|Q341]]}}. E.g.: "{{WikidataIstanza|Q341|from=Q1251148}}" --[[Utente:Valerio Bozzolan|Valerio Bozzolan]] ([[Discussioni utente:Valerio Bozzolan|msg]]) 02:29, 28 feb 2017 (CET)
:: Ciao, se provi a scrivere in [[DotNetNuke]] <nowiki>{{#property:P31}}</nowiki> e fai anteprima vedrai che otterrai solo {{WikidataEl|Q131093
::: Ho sistemato anche su Wikidata, non aveva senso avere come istanza :Sowtware libero, per questo esiste la prorprità sul tipo di licenza [[:D:property:P275|P275]]. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 13:06, 28 feb 2017 (CET)
:::: Sicuro? La maggior parte dei software che incontro hanno instanceof free software. --[[Utente:Valerio Bozzolan|Valerio Bozzolan]] ([[Discussioni utente:Valerio Bozzolan|msg]]) 13:51, 28 feb 2017 (CET)
::::: Diciamo che ne sono ragionevolmente sicuro, ma per sicurezza [[:D:Wikidata:Project_chat#It's correct instance of (P31)=free software AND license (P275)?|ho preferito chiedere]] :) Vediamo le risposte. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 18:05, 28 feb 2017 (CET)
:::::: (Ho letto la risposta) Quindi per sapere se una voce è software libero meglio cercare fra i valori della {{WikidataProp|P275
::::::: Non so cosa devi fare ma se lo devi usare in un template riporti direttamente la licenza indicata. Puoi vedere come è attualmente utilizzato nel template {{tl|Software}} --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 08:15, 2 mar 2017 (CET)
:::::::: <small>XD Sono un po' spiazzato perchè stiamo parlando proprio del {{Tl|Software}} che sto (poverino) scarnificando da molti giorni (e che appunto fra l'altro non ho ancora ricevuto un solo feedback... significa che tutto funziona? asd.) sviluppando [[Modulo:Software]] per iniziare (pian piano, eh!) ad integrare i dati specificati dal template con quelli in Wikidata. Nello specifico [[Modulo:Software#isFreeSoftware]] sta già operando in molte voci che ''non'' specificano <code>SoftwareLibero=sì/no</code>. Ad esempio se vai in [[Ekiga]] e levi <code>SoftwareLibero=</code>, dall'anteprima noterai che è come se ci fosse.</small> Anteponendo ciò, ripongo la domanda <code>00:28, 2 mar 2017 (CET)</code>: per fruire dei valori della {{WikidataProp|P275
::::::::: Non lo so, io ho solo verificato se era una proprietà utilizzata e ho visto che è usata si ain {{tl|software}} che in {{tl|Linguaggio di programmazione}}, e ho pensato fossero corrette, non pensavo che stessi lavorando su un template già utilizzato. Queste prove è sempre meglio farle in una sandbox se no si rischia di fare casini. Comunque il parametro from lo puoi utilizzare. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 13:07, 2 mar 2017 (CET)
:::::::::: <small>Comunque sìsì, ho operato prima dal [[Template:Software/Sandbox]]? {{Diff|86159988}} ;)</small> Procedo allora fruendo del <code>from</code> che a lungo termine è meglio, sebbene sia potenzialmente dispendioso. --[[Utente:Valerio Bozzolan|Valerio Bozzolan]] ([[Discussioni utente:Valerio Bozzolan|msg]]) 16:43, 2 mar 2017 (CET)
Line 358 ⟶ 360:
== Generalizzare InstanceOf ==
Sempre io :) Si potrebbe creare una funzione che generalizzi <code>_instanceOf()</code>? Perchè oltre che {{WikidataProp|P31
: Penso ad esempio a:
<source lang="lua">
Line 427 ⟶ 429:
::: Ah ok, se devi fare controlli particolari su P518... Per filtrare sulla lingua, aggiungi "includelang = 'it'" al parametro "args" di getClaims. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 18:27, 6 gen 2018 (CET)
:::: Risolto, grazie anche a {{ping|Sakretsu}} che ci ha messo le mani. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 21:10, 6 gen 2018 (CET)
::::: @ValterVB Sì scusa, "di _formatStatement" non di getClaims :) Comunque lo riguardo, l'ho detto senza controllare perché logicamente dovrebbe stare in getClaims, vedo se c'erano ragioni storiche perché andasse usato in una e non nell'altra funzione. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 21:39, 6 gen 2018 (CET)
:::::: Pensavo di aver sistemato con l'ultima modifica, ma non basta, perché che deve funzionare anche per filtrare i qualificatori (il cui unico utilizzo con includelang/excludelang è per la didascalia in italiano delle immagini lette da Wikidata, caso ancora poco usato ma che c'è e deve funzionare). Mi richiede ancora un po' di lavoro. Inoltre ho trovato che anche per i qualificatori c'è una selezione in base al parametro "nq" che è rimasta nella parte di formattazione, e va spostata per lo stesso motivo. Appena ho fatto ti riaggiorno il modulo, il funzionamento rimane sempre identico. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:57, 6 gen 2018 (CET)
::::::: Ho ritrovato l'origine del fatto per cui la selezione dei qualificatori (possibile solo con il parametro nq o con includelang/excludelang) era fatta nella parte di formattazione. I qualificatori fino ai parametri nq/includelang/excludelang non avevano la possibilità di essere filtrati, ma solo visualizzati, con la dovuta formattazione, o non visualizzati. Quindi esisteva solo la funzione formatQualifiers. Andrebbe invece aggiunta anche una getQualifiers (rimuovendo di conseguenza il parametro "claim" di formatQualifiers). È una modifica un po' lunga, che necessita l'aggiornamento di un paio di altri moduli che usano formatQualifiers, ma penso che valga la pena di farla per rendere anche più flessibile il codice a future aggiunte di parametri che agiscono sulla selezione dei qualificatori. La metto in cantiere, non so ancora esattamente quanto ci vorrà. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:23, 7 gen 2018 (CET)
== _getClaims : Come controllare se non esiste la proprietà? ==
In [[Modulo:Sandbox/ValterVB/Tracklist]] uso la funzione </br>
<code>wdBasatoSu = mWikidata._getClaims('P144', { from = ddato })</code> </br>
per recuperare una proprietà e poi con </br>
<code>if wdBasatoSu then</code> </br>
controllo se la proprietà è presente oppure no. Il problema è che anche se il dato non è presente mi passa sempre il test e quindi prosegue all'interno dell'if. Se invece faccio il testo con </br>
<code>if next(wdBasatoSu) ~= nil then </code> </br>
il test funziona correttamente e rileva correttamente il <code>nil</code>. E' cambiato qualcosa? un po' di tempo fa il primo if era sufficiente per controllare la tabella. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 10:02, 27 gen 2018 (CET)
: Sì vero grazie, nell'ultimo passaggio alle nuove getBestStatements/getAllStatements ho dimenticato quel controllo. Un momento e lo riaggiungo. Devo aggiungere un test in [[Modulo:Wikidata/test]] per la prossima volta. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 10:32, 27 gen 2018 (CET)
:: Riguardando il codice c'era in realtà un motivo per il cambiamento. Una volta diversificavo tra:
::* _getClaims che restituiva nil: perché l'elemento o la proprietà Wikidata non esistevano
::* _getClaims che restituiva un sequence Lua vuota: perché non c'erano valori della proprietà che soddisfacevano i filtri passati come argomenti
:: Questo portava tuttavia, dopo averla usata, a dover spesso scrivere "if claims and #claims > 0" ... Ora che il modulo non usa più getEntity non mi è più possibile fare questa differenza e getBestStatements/getAllStatements restituiscono una sequence Lua vuota anche se la proprietà non esiste. Cosa che alla fine penso sia la soluzione migliore, è giusto che il modulo segua la filosofia della libreria su cui si basa. La funzione _getClaims è richiamata centinaia di volte in una sola voce di Wikipedia, non la posso complicare ulteriormente per fare questa differenza, che neppure le funzioni di libreria fanno. Quindi sostituisci dove hai "if next(wdBasatoSu) ~= nil" con "if #wdBasatoSu > 0". --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 11:57, 27 gen 2018 (CET)
::: Lascio ancora tuttavia il valore di ritorno nil se proprio la pagina non è collegata a un item (getBestStatements/getAllStatements ricevono come argomento l'identificativo dell'item, quindi è implicito che debba esistere). Quindi sostituisci il "if next(wdBasatoSu) ~= nil" con "if wdBasatoSu and #wdBasatoSu > 0" (a meno che avessi già controllato in precedenza che l'item esiste, per cui basta solo "if #wdBasatoSu > 0"). --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:14, 27 gen 2018 (CET)
:::: Tutto chiaro, funziona. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 16:58, 27 gen 2018 (CET)
== P5061 ==
Stavo aggiornando il modulo alla nuova proprietà {{WikidataProp|P5061}} che sostituirà P558 in cancellazione, quando ho notato che un sistema di fallback delle lingue servirà anche per il template {{tl|unità}} che usa P558. Aggiungerò un paramtro "fallbacklang", che si aggiungerà ai già esistenti includelang ed excludelang. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 10:09, 24 apr 2018 (CEST)
== snaktype ==
In seguito alla discussione [[Discussioni template:Divisione amministrativa#Problemi con stemmi inesistenti presi da wikidata (P94)]] ho fatto in modo che il filtro snaktype=value ci sia di default. Quindi, di default il modulo non restituisce proprietà, né qualificatori, di tipo "nessun valore" o "valore sconosciuto". Il parametro snaktype non è mai stato usato se non qualche rara volta con appunto value. Da una ricerca che ho fatto sulle apparizioni che c'erano delle suddette scritte (qualche centinaio), non mi sono sembrate mai corrette o intenzionali (ad es. siti ufficiali in cui l'url diventava "nessun valore"). --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 01:49, 29 apr 2019 (CEST)
== Controllo di ereditarietà ricorsivo ==
Su Wikidata, l'ereditarietà delle classi è espressa tramite la proprietà {{WikidataEl|P279}}. Per esempio, tramite Wikidata sappiamo che la {{WikidataEl|Q183}} è {{WikidataEl|P31}} {{WikidataEl|Q3624078}} e, tramite la propriertà P279 (applicata a quest'ultimo elemento), anche che è un'{{WikidataEl|Q15642541}}.
Tuttavia, mentre la prima dichiarazione può essere verificata tramite {{tl|WikidataIstanza}}, con le attuali funzioni del modulo la seconda non può essere verificata, per cui ho aggiunto qualche riga di codice in sandbox ('''[[Special:Diff/106687558/106688882|diff]]''') per sfruttare l'ereditarietà. Ho modificato la funzione {{code|_propertyHasEntity}} perché questo controllo non dovrebbe essere riservato alla proprietà {{WikidataEl|P31}}, ma esteso in generale a tutte le proprietà.
Altro esempio (con la proprietà {{WikidataEl|P106}}): sappiamo che un'occupazione di {{WikidataEl|Q5593}} è {{WikidataEl|Q1028181}} ma, indirettamente, anche {{WikidataEl|Q483501}}.
{{ping|Sakretsu|Bultro|Moroboshi}}, se poteste verificare che non ci sono problemi nel codice.
[[Special:Permalink/106689478|Qui]] Ho fatto qualche test.
[[Discussioni template:Collegamenti esterni#Discogs e MusicBrainz|Qui]] un esempio reale in cui questa funzione potrebbe essere molto utile (se ne discuteva con {{ping|Epìdosis}}). --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 14:29, 21 lug 2019 (CEST)
:A occhio non dovresti fare una copia (usando mw.clone) di <code>args</code> prima dell'assegnamento:
::<code>args.recursion = recursion - 1</code>
:e usare la copia di args ? Altrimenti nel ciclo for una volta che raggiungi la massima profondità e azzeri il valore args.recursion lo azzeri anche per tutte le chiamate successive del for.--[[Utente:Moroboshi|<span style="color:#800000;font-weight: bold;">Moroboshi</span>]]<sup> [[Discussioni utente:Moroboshi|scrivimi]]</sup> 15:19, 21 lug 2019 (CEST)
::{{ping|Moroboshi}} Non sono un esperto di Lua ma, dai test di cui sopra (che sembrano funzionare), pare che non ci sia side effect su {{code|args}} e che quindi questo non risulti modificato quando si torna indietro nel call stack. Sbaglio?
::Ho provato a dichiarare una variabile {{code|1=local argsCopy = mw.clone(args)}}, decrementarne il campo {{code|argsCopy.recursion}} e passarla all'invocazione ricorsiva della funzione, ma il risultato dei test è identico.
::Ovviamente sei libero di modificare la mia sandbox come credi! --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 18:02, 21 lug 2019 (CEST)
:::Per quello che so le tabelle sono passate come riferimento, quindi le modifiche si propagano. Facendo un test con un esempio semplice (vedi [[Modulo:Sandbox/moroboshi3]] il valore viene decrementato a ogni chiamata: La chiamata ritorna {{#Invoke:Sandbox/moroboshi3|test}} (dovrebbe ritornare 2 se non ci fossero side effect). Ma in questo momento non riesco a metterci mano (e dovrei studiarmi il modulo, non lo conosco bene).--[[Utente:Moroboshi|<span style="color:#800000;font-weight: bold;">Moroboshi</span>]]<sup> [[Discussioni utente:Moroboshi|scrivimi]]</sup> 21:43, 21 lug 2019 (CEST)
::::{{conflittato}} Moroboshi intende che così il valore di recursion si esaurisce in profondità. Per esempio, se cerchi [[d:Q27096213]] vedrai che ti servirà impostare 31 nonostante dovrebbe bastare 6. Ogni for deve mantenere il suo numero dopo che i for interni sono terminati, anche se in generale la soluzione del clonare ogni volta args mi sa di overkill.<br />Comunque prima ragionerei sul limite di 400 entità uniche caricabili per voce. In termini di performance immagino serva a rendere il carico di lavoro sostenibile per Wikidata più che per noi. Ponendo caso che nell'elemento Germania non ci fosse il best rank, con ricorsività infinita già dovremmo caricare le 40 entità uniche di Stato sovrano prima di passare al secondo valore di "istanza di". D'altro canto cercare una sottoclasse piuttosto generica con ricorsività ridotta potrebbe rivelarsi infruttuoso e svilire il meccanismo. Potremmo contare le entità caricate e inserire una categoria di tracciamento oltre una soglia medio-bassa per capire quando e dove c'è il rischio che la combinazione di più template si avvicini troppo al limite--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 21:52, 21 lug 2019 (CEST)
:::::{{ping|Sakretsu}} Per evitare di clonare {{code|args}} più volte ho implementato la ricorsione in una funzione ausiliaria, ora [[Special:Diff/106689478/106698966|dovrebbe essere ok]]. Mi piace l'idea della categoria di tracciamento, potresti pensarci tu? --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 01:08, 22 lug 2019 (CEST)
::::::Intanto ho semplificato [[Speciale:Diff/106719229|così]] la funzione. Se riesco domani continuo--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 01:03, 23 lug 2019 (CEST)
:::::::Per la categorizzazione penso che l'opzione migliore sia [https://it.wikipedia.org/w/index.php?title=Modulo%3ASandbox%2FHorcrux%2FWikidata&type=revision&diff=106755807&oldid=106719229 restituire] un booleano, in modo che nei moduli come il Collegamenti esterni si possa leggerne il valore e aggiungere la propria categoria di tracciamento. In merito al [[t:WikidataIstanza]], al momento mi risulta che sia transcluso solo dal [[t:Opera d'arte]]. Con le funzioni parser immagino dovremmo prevedere una soluzione meno entusiasmante come uno switch, ma finché sperimentiamo con il Collegamenti esterni ci possiamo pensare con calma.--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 15:42, 25 lug 2019 (CEST)
::::::::{{ping|Sakretsu}} Hey! Hai delle novità? Credi di poter rendere queste modifiche operative? --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 11:23, 13 ago 2019 (CEST)
:::::::::Pardon, mi ero fermato perché lato modulo Wikidata non credo ci sia altro da fare. Ho effettuato qualche modifica nella sandbox del Collegamenti esterni per renderlo compatibile. Domani cerco di fare qualche test--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 02:22, 19 ago 2019 (CEST)
::::::::::A opera compiuta, segnalo che alla fine ho sostituito il booleano con la tabella contenente gli ID delle entità caricate, in modo che il Collegamenti esterni possa calcolare il numero complessivo delle entità caricate in tutte le chiamate del modulo Wikidata, duplicati esclusi. Al momento, se si supera la soglia delle 100 entità, la voce finisce in [[:Categoria:Voci con template Collegamenti esterni e molte entità Wikidata caricate]]. La ricorsione ha una profondità pari a 8 che dovrebbe essere più che soddisfacente. Se tutto funziona correttamente, dovrebbe essere possibile lasciare solo i vincoli principali e verificare man mano se qualche voce supera il limite. Se non accade, possiamo aumentare la ricorsione e poi togliere il limite come pianificato.--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 00:28, 26 ago 2019 (CEST)
:::::::::::A questo punto lascerei per sicurezza un pinghino a {{ping|Epìdosis}}. --[[Utente:Ignazio Cannata|Ignazio]] ([[Discussioni utente:Ignazio Cannata|msg]]) 03:04, 26 ago 2019 (CEST)
== Self-link ==
Segnalo [[Discussioni_template:Collegamenti_esterni#Self-link|questo problema]]. Non mi vengono in mente casi in cui i link alla voce stessa possano essere desiderabili, quindi meglio evitarli alla fonte. Se ho capito bene la fonte è questo modulo. Dovrebbe essere una modifica semplice da effettuare --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 12:25, 29 ago 2019 (CEST)
:Corretto {{diff|107400989}}. Dato che dovrebbe trattarsi solo di riferimenti autobiografici, ho passato direttamente il sitelink.--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 13:19, 29 ago 2019 (CEST)
== Ricavare un interlink in automatico ==
[[Discussioni progetto:Coordinamento/Wikidata#Ricavare un interlink in automatico|Segnalo]] --[[User:Horcrux|Horcrux]] ([[User talk:Horcrux|msg]]) 18:04, 29 mar 2020 (CEST)
== Errore formatnum ==
Non capisco come non ce ne siamo accorti prima, ma il parametro ''formatnum'' non funziona quando il dato è passato in locale, funziona solo col dato da Wikidata
*<nowiki>{{Wikidata|P1082|formatnum=sì|from=Q3776464}}</nowiki> = {{Wikidata|P1082|formatnum=sì|from=Q3776464}}
*<nowiki>{{Wikidata|P1082|123456|formatnum=sì}}</nowiki> = {{Wikidata|P1082|123456|formatnum=sì}}
--[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 14:36, 31 lug 2021 (CEST)
:In effetti a giudicare dal manuale del [[template:Wikidata]] il modulo non è del tutto coerente. Ci sono parametri che funzionano anche col parametro locale e altri come formatnum e rounding che non lo fanno nonostante sarebbe possibile. La domanda è cosa ne facciamo dei valori inseriti che non corrispondono a un numero?--[[Utente:Sakretsu|Sakretsu]] ([[Discussioni utente:Sakretsu|炸裂]]) 15:57, 31 lug 2021 (CEST)
::Li passiamo al formatnum e poi se la vede lui. Attualmente dovrebbe dare una categoria di errore ma in realtà nessun problema visibile ([[Discussioni_template:Divisione_amministrativa#Altitudine_e_formatnum_(again)|discussione correlata]]) --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 20:19, 2 ago 2021 (CEST)
|