Discussioni modulo:Wikidata e Erika Ferrara: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
 
Nessun oggetto della modifica
 
Riga 1:
{{Sportivo
== Proposta aggiunta funzione ==
|Nome = Erika Ferrara
Sarebbe interessante, per un futuro utilizzo di questo modulo nei template sinottici, la possibilità di poter richiedere solo l'''n''-esimo valore di ogni proprietà. Per esempio, il template {{tl|Software}} richiede di inserire il linguaggio con cui è stato scritto il software in un parametro, se il software è stato scritto in due linugaggi bisogna usare due parametri e scrivere solo un linguaggio per parametro. Io propongo di fare una cosa tipo <nowiki>{{#Wikidata|nome_funzione|property=999|5}}</nowiki>, e mi restituisce il quinto valore della property 999.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 20:49, 26 giu 2013 (CEST)
|Immagine =
:Navigando tra i moduli ho visto questa discussione. Posso aggiungere facilmente la funzionalità. Il termine corretto è "statement", cioè ogni proprietà può avere tanti statement (infatti attualmente la funzione l'hanno chiamata "formatStatement"). Non c'è neanche bisogno di creare una nuova funzione, posso aggiungere alla funzione "formatStatements" un nuovo parametro con nome che chiamerei "n", per simmetria con la funzione N che ritorna proprio il numero di statement. Quindi la chiamata sarebbe: <nowiki>{{#invoke:Wikidata|formatStatements|property=p47|n=3}}</nowiki> per ritornare il valore del terzo statement. Ovviamente se n > del numero di statement presenti ritornerà una stringa vuota o un errore, a scelta. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:08, 25 ott 2013 (CEST)
|Sesso = F
::Personalmente preferisco la stringa vuota.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 16:17, 25 ott 2013 (CEST)
|CodiceNazione = {{ITA}}
:::{{Fatto}} e ho aggiornato la documentazione. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 16:59, 25 ott 2013 (CEST)
|Disciplina = Calcio a 5
|Squadra = {{Calcio a 5 femminile Falconara}}
|Ruolo = [[Intermedio (calcio a 5)|Laterale]]
|TermineCarriera =
|SquadreGiovanili =
|Squadre =
{{Carriera sportivo
|2016-2017|{{Calcio a 5 femminile Real Lions Ancona|G}}|21 (16)
|2017|{{Calcio Dorica Torrette}}|9 (1)
|2017-|{{Calcio a 5 femminile Falconara|G}}|54 (4)
}}
|SquadreNazionali =
|Disciplina2 = Calcio
|Squadra2 =
|Ruolo2 = [[Centrocampista]]
|TermineCarriera2 =
|SquadreGiovanili2 =
{{Carriera sportivo
|2014-2015|{{Calcio femminile Jesina}} [[Campionato Primavera (calcio femminile)|Prim.]]|? (?)
}}
|Squadre2 =
{{Carriera sportivo
|2013-2014|{{simbolo|600px Giallo e Blu.svg}} Porto Sant'Elpidio|? (?)
|2015-2016|{{Calcio femminile Riviera di Romagna|G}}|15 (0)
}}
|SquadreNazionali2 =
|Aggiornato = 21 maggio 2016 (calcio a 11)
}}
{{Bio
| Nome = Erika
| Cognome = Ferrara
| Sesso = F
| LuogoNascita = Fermo
| GiornoMeseNascita = 16 luglio
| AnnoNascita = 1999
| LuogoMorte =
| GiornoMeseMorte =
| AnnoMorte =
| Attività = calciatrice
| Attività2 = giocatrice di calcio a 5
| Nazionalità = italiana
| PostNazionalità = , [[Intermedio (calcio a 5)|laterale]] del [[Città di Falconara]]
}}
 
== Carriera ==
==Applicazioni pratiche==
=== Club ===
Segnalo che in [[Discussioni_template:Divisione_amministrativa#Integrazione_wikidata]] si parla dell'uso su larga scala di Wikidata con questo modulo, ma si è visto che ancora ha dei seri limiti --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 12:12, 11 ago 2013 (CEST)
Erika Ferrara si appassiona al mondo del [[calcio (sport)|calcio]] fin dalla giovanissima età, tesserandosi con il Porto Sant'Elpidio e giocando in [[Eccellenza (calcio femminile)|Serie C]] dalla stagione 2013-2014 nel ruolo di [[centrocampista]].<ref name="RdRPDF">{{Cita web|url=http://www.rivieradiromagnacalcio.it/archivio/giocatori/145/erika%20ferrara.pdf|Scheda Erika Ferrara|sito=rivieradiromagnacalcio.it|accesso=22 aprile 2017}}</ref>
 
Nell'estate 2014 decide di passare alla [[Associazione Polisportiva Dilettantistica E.D.P. Jesina Femminile|E.D.P. Jesina]] che la inserisce nella sua formazione che partecipa al [[Campionato Primavera (calcio femminile)|Campionato Primavera]] di categoria.<ref name="RdRPDF" />
== Funzionalità "pattern" ==
 
Durante il calciomercato estivo 2015 coglie l'occasione per compiere un salto di categoria sottoscrivendo con la [[Associazione Sportiva Dilettantistica Riviera di Romagna|Riviera di Romagna]] un contratto per giocare in [[Serie A (calcio femminile)|Serie A]] per la [[Associazione Sportiva Dilettantistica Riviera di Romagna 2015-2016|stagione entrante]]. Ferrara, impiegata in 15 occasioni alle quali si aggiungono le due in [[Coppa Italia (calcio femminile)|Coppa Italia]], condivide le sorti della squadra la quale, dopo un girone di andata concluso all'ottavo posto e mantenendosi in zona salvezza anche per gran parte del campionato, in virtù dei risultati negativi degli ultimi incontri non riesce a evitare la retrocessione in [[Serie B (calcio femminile)|Serie B]], arrivata alla penultima giornata.<ref>{{Cita|Football.it|Erika Ferrara}}.</ref>
Sarebbe ora carino introdurre anche il parametro "pattern" che si trova sul [https://test2.wikipedia.org/s/4h4 modulo test], questo parametro mi permette di decidere il modo in cui dovrà essere formattato l'elemento di wikidata.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:41, 26 ott 2013 (CEST)
: Fatto, anche qui ho aggiornato la documentazione, con un esempio un più pratico di quello su test2. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:43, 26 ott 2013 (CEST)
 
=== RankCalcio a 5 ===
La decisione della società di non iscriversi al campionato successivo svincola la giocatrice che decide di cambiare categoria accettando la proposta del Real Lions Ancona per la sua prima esperienza nel [[calcio a 5]] femminile, per giocare in [[Serie A 2016-2017 (calcio a 5 femminile)|Serie A la stagione entrante]].<ref>{{Cita|ladyfutsal.com|Erika Ferrara}}.</ref>
 
La stagione successiva il Real Lions Ancona non si iscrive e la sua eredità viene presa dalla Dorica Torrette Femminile, nel campionato di A2. A dicembre 2017, durante la sessione invernale del futsalmercato, viene acquistata dal [[Città di Falconara]].
Ciao dega180, c'è qualcosa che non va con il codice aggiunto. Ho capito cosa volevi fare però anche senza averlo provato capisco che ci sono dei problemi. Nella funzione con cui volevi integrarti con options.n, statement esce dal ciclo while valorizzato anche quando non ha trovato lo statement giusto. Posso farti vedere un modo molto più pulito di farlo e senza questo bug? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 17:19, 25 gen 2014 (CET)
:Io l'avevo testato e sembrava funzionare è ovvio che se hai trovato un bug lo puoi correggere.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 17:44, 25 gen 2014 (CET)
::Scusami proprio dega, mi ero fatto ingannare dall'indentazione. Funziona, anche se continuo a trovarlo over-complicated. Mi sembra che la ricerca tra che fai tra le righe 70 e 90 circa è molto più chiara così:
<source lang=lua>
local n = 1
for i = 0, #claims do
if claims[i].rank == options.rank then
if n == options.n then
statement = claims[i]
break
end
n = n + 1
end
end
</source>
::poi messa in una funzione (getStatementByRank) ancora meglio. Sto aggiungendola alla sandbox, appena trovo un bug che mi sono auto-introdotto si può provare. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 20:07, 25 gen 2014 (CET)
:::Ora [[Modulo:Wikidata/sandbox]] dovrebbe essere a posto (avevo dimenticato di convertire in numero una stringa), e con notevoli semplificazioni. Inoltre ho aggiuto il controllo <code>n <= #entity.claims[property]</code> così che non ci siano inutili iterazioni se options.n è superiore in partenza al numero di statement. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:12, 25 gen 2014 (CET)
::::Cosa aspetti? Se è a posto implementalo pure, non ti fare scrupoli a sostituire il mio codice, è evidente che il tuo è più elegante del mio.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 23:54, 25 gen 2014 (CET)
:::::{{Fatto}} :) Provo a scrivere un po' di test. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:10, 26 gen 2014 (CET)
 
== Note ==
== Entità senza label e sitelink in italiano ==
<references />
 
== Collegamenti esterni ==
Testando il modulo, mi sono accorto di un problema che c'è quasi sicuramente da sempre e si verifica quando un elemento su Wikidata non ha label né sitelink in italiano.
* {{Collegamenti esterni}}
* {{Cita web|url=http://www.ladyfutsal.com/giocatori/ferrara/|Erika Ferrara|sito=ladyfutsal.com}}
* {{Cita web|url=http://www.realanconac5.it/rosa.asp|2=Erika Ferrara|sito=realanconac5.it|cid=realanconac5.it|urlmorto=sì|urlarchivio=https://web.archive.org/web/20170423064350/http://www.realanconac5.it/rosa.asp|dataarchivio=23 aprile 2017}}
 
{{Portale|biografie|calcio}}
Si può verificare prendendo [[Malmö (comune)]] e richiedendo la p361 ("Malmö metropolitan area") che non ha label e sitelink in italiano, e otteniamo:
* con <nowiki>{{#property:p361}}</nowiki> => Q94298
* con <nowiki>{{#invoke:Wikidata|formatStatements|property=p361}}</nowiki> => Tipo di dato sconosciuto
 
Ora, a parte fixare l'errore (il bug nel codice è evidente e già noto a chi ha sviluppato inizialmente il modulo perché ha commentato: "TODO what if no links and label + fallback language?"), volevo sapere: cosa dovrebbe ritornare esattamente il modulo per questi casi? Q94298, o altro? Magari anche [[Utente:ValterVB|ValterVB]] ci può aiutare. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:06, 26 gen 2014 (CET)
: Probabilmente, basterebbe far apparire Q94298 con link, in modo da poter andare facilmente su Wikidata e aggiungere l'etichetta, se poi fosse possibile, magari creare una categoria apposta per segnalare queste proprietà sarebbe perfetto (qualcosa tipo [[:Categoria:Proprietà Wikidata usate ma senza etichetta]]). --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 22:16, 26 gen 2014 (CET)
:: Intendi un link così: [[d:Q94298|Q94298]]? Scusami, faccio che chiederti un'altra cosa. Le altre tre possibilità sono: (1) solo label => ritorna la stringa della label senza link e (2) solo sitelink => ritorna il wikilink alla voce (3) sia label che sitelink => ritorna un piped wlink usando label come etichetta. Sono corretti questi tre invece giusto? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:34, 26 gen 2014 (CET)
::: Esatto pensavo così, in maniera che sia subito evidente e allo stesso tempo è facile andare a correggere il problema, inserendo l'etichetta e quindi ricadendo nella possibilità (1) o aggiungendo un link e quindi si ricade nella possibilità (2) o (3). Per i 3 punti indicati direi che mi sembra corretto, forse per il punto (1) farei apparire il link rosso, perché penso che le proprietà siano sempre enciclopediche. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 23:01, 26 gen 2014 (CET)
:::: Grazie ValterVB! Ho implementato la funzionalità del link a wikidata nella sandbox, si può provare sempre in [[Malmö (comune)]] usando <nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p361}}</nowiki> e <nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p47}}</nowiki>. Se va bene comincerei ad aggiungere questa modifica per poter continuare nei test, per poi vedere successivamente le altre due funzionalità a cui accennavi (categoria:Proprietà Wikidata usate ma senza etichetta e wlink rosso). --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 00:42, 27 gen 2014 (CET)
:::::Certo per il lettore quel codicillo non è molto amichevole... Per chi non se ne intende si capisce poco anche dopo averlo cliccato. Non c'è modo di ottenere almeno un'etichetta in lingua straniera? --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 17:54, 27 gen 2014 (CET)
::::::A meno di funzionalità non documentate non è possibile. La documentazione di "mw.wikibase.label( id )" è "takes an item ID and returns the label in the language of the local wiki." e non ci sono altre funzioni. Le alternative sono fare come fa #property che ritorna una stringa, invece del wikilink, oppure non ritornare proprio nulla. A me va bene come dice ValterVB (il wlink), ma in alternativa mi va bene anche come fa #property, che in fondo è parte del software su cui ci basiamo. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 18:42, 27 gen 2014 (CET)
{{outdent|::::::}}Non dimentichiamoci che il nostro obiettivo è redarre un'enciclopedia adatta ad un qualsiasi lettore che conosca l'italiano, se un non addetto ai lavori legge "Q3809" ovviamente non capisce (e magari cerca invano di capire) cosa voglia dire quel codice, oppure in futuro potranno arrivare casi particolari (per esempio in voci riguardanti fisica o informatica) in cui quel "Q3809" potrebbe assumere un significato fraintendibile (nella wiki in inglese, ma anche in quella italiana, esistono delle voci che iniziano con Q proseguito da un numero). Io sono per lasciare uno spazio vuoto quando mancano sia il label che il wikilink in italiano.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 19:42, 27 gen 2014 (CET)
: Gli altri cosa pensano? Io avrei preferito fare come ValterVB o in seconda istanza come #property, ma comunque anche toglierlo del tutto è sempre meglio di lasciare l'errore come adesso. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:28, 28 gen 2014 (CET)
::IMHO dato che questo modulo non dovrebbe essere usato direttamente in ns0 ma essere di appoggio a template e moduli dovrebbe "girare la patata" al livello superiore. Quindi ritornare stringa nulla normalmente, oppure (in caso sia settata un parametro di debug) ritornare lo stato di errore e lasciare al modulo/template chiamante decidere cosa fare--[[Utente:Moroboshi|Moroboshi]] <sup>[[Discussioni utente:Moroboshi|scrivimi]]</sup> 17:12, 28 gen 2014 (CET)
:::Grazie Moroboshi, l'unico "problema" è che vedo è che così andrebbe bene quando la proprietà ha 1 singolo statement, ma quando ne ha molti? Per esempio, basta che un solo statement non abbia link e label per ottenere: <code>Staffanstorp, Svedala, Vellinge, Tipo di dato sconosciuto, Tårnby, Dragør, Solrød, Greve e Burlöv</code>, mentre per la stessa richiesta #property ritornerebbe: <code>Staffanstorp, Svedala, Vellinge, Q504125, Tårnby, Dragør, Solrød, Greve e Burlöv</code>. Poi come farebbe il template a gestire il caso? Invaliderebbe tutto il risultato perché 1 solo degli statement non ha label e sitelink? P.S. Aggiungo per dovere di cronaca che ho visto che su fr.wiki utilizzano il metodo descritto da ValterVB. Si può verificare scrivendo <nowiki>{{#invoke:Wikidata|formatStatements|property=p47}}</nowiki> in [[fr:Malmö (commune)]]. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 17:31, 28 gen 2014 (CET)
::::Hmmm ... usare una parametro di debug. Di default la funzione ritorna la lista purgata dagli elementi in errore, con il parametro di debug attivo la funzione ritorna lista con anche i link alle proprietà Qxxxx non valorizzate in italiano. Eventualmeente si potrebbe pensare a una funzione a uso solo per i moduli lua che invece di ritornare una stringa ritorni due array, uno con i valori buoni e l'altro con quelli in errore (se ci sono.--[[Utente:Moroboshi|Moroboshi]] <sup>[[Discussioni utente:Moroboshi|scrivimi]]</sup> 17:42, 28 gen 2014 (CET)
:::::Per me va bene, però facciamolo a step successivi. Per ora togliamoci dagli impicci dell'errore che potrebbero già apparire in qualunque voce (i casi in cui non ci sono label e sitelink sono magari rari) non facendo apparire l'elemento della lista come dicono Moroboshi e Dega180 e successivamente aggiungiamo le altre feature (parametri, categorie, ...). Se va bene a tutti procedo. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 17:48, 28 gen 2014 (CET)
:{{rientro}} Passaggio veloce, <sub>questa settimana sono all'estero è ho qualche problema di connessione</sub>, visto che il tipo di errore è facilmente e velocemente risolvibile, si potrebbe tranquillamente omettere il valore, se viene indicato in qualche maniera l'errore (vedi categoria). Dopotutto basta inserire almeno l'etichetta su Wikidata e il problema è risolto. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 19:55, 28 gen 2014 (CET)
::Ho cominciato a riportare la correzione della stringa vuota. @[[Utente:ValterVB|ValterVB]] possiamo pensare ora alla categoria, nel frattempo mi è venuto un dubbio. Wikidata è un database per eccellenza (rispetto a itwiki intendo), e quindi sapere quali sono le voci senza label in italiano immagino sia banale (tant'è che ho trovato esiste una pagina speciale apposita [[d:Special:EntitiesWithoutLabel]] per ottenerle). Quindi mi chiedo se ha senso che su itwiki ci ricreiamo una sorta di database di queste informazioni. Ci sarebbe in più la differenza se questa pagina è veramente usata su itwiki o meno, ma a parte l'importanza o meno di questo fatto, immagino che anche per questo, se interessa, ci sarà il modo di ottenerlo. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:05, 29 gen 2014 (CET)
::: In realtà su etichette e descrizioni ci "lavoro" parecchio: [[D:User:ValterVBot/Labels_and_descriptions/it|vedi qui]] e [[D:User:ValterVBot/Labels and descriptions|qui per alcune statistiche]]. Normalmente l'aggiornamento è quotidiano. Se serve posso riportarle anche di qua. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 14:16, 29 gen 2014 (CET)
 
== Ordine statements ==
 
Ho corretto in [[Modulo:Wikidata/sandbox]] un problema che ci si porta dietro dall'inizio dovuto a due fattori concomitanti:
# entity.claims[property] è una sequence Lua, con la peculiarità di iniziare da 0 invece che da 1, anche se mi è stato detto che è in progetto di fixarlo (ma su una nuova interfaccia per mantenere la retrocompatibilità, quindi si potrà eventualmente poi aggiornare il codice)
# chi ha scritto inizialmente questo codice iterava su claims con pairs() invece che con un indice
Questo fa sì che se abbiamo una lista di statement (esempio p47 per il solito [[Malmö (comune)]]) otteniamo:
* <nowiki>{{#invoke:Wikidata|formatStatements|property=p47}}</nowiki> => Staffanstorp, Svedala, Vellinge, Copenaghen, Tårnby, Dragør, Solrød, Greve e Burlöv
Ma se poi richiediamo il primo elemento otteniamo:
* <nowiki>{{#invoke:Wikidata|formatStatements|property=p47|n=1}}</nowiki> => Burlöv
Ho quindi rimosso in [[Modulo:Wikidata/sandbox]] l'utilizzo di pairs() ottenendo:
* <nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p47}}</nowiki> => Burlöv, Staffanstorp, Svedala, Vellinge, Copenaghen, Tårnby, Dragør, Solrød e Greve
* <nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p47|n=1}}</nowiki> => Burlöv
Tra l'altro l'ordine ottenuto è così quello degli elementi come sono visualizzati su Wikidata, se non è stato modificato attraverso l'interfaccia web. Mantenere l'ordine anche con quando questo è stato modificato attraverso l'interfaccia web lo farei in uno step successivo. Comincerei da questo che dà comunque un risultato consistente tra la lista e l'accesso al singolo elemento. Se non ci sono pareri contrari procedo tra un po' a riportarlo su [[Modulo:Wikidata]]. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:38, 28 gen 2014 (CET)
:Questa cosa l'ho notata anche io, se sei riuscito a correggerla per me puoi sostituirla al modulo.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:25, 1 feb 2014 (CET)
 
== Bug del rank ==
 
Ho trovato un bug e penso di averlo risolto.
 
Io compilo il modulo nel seguente modo
<pre>{{#invoke:wikidata|formatStatements|property=p6|n=2|rank=preferred}}</pre>
io vorrei ottenere il secondo statement con rank preferred della property p6, se questo non esiste ovviamente vorrei ottenere il carattere vuoto.
 
Ipotizziamo che, per la voce che abbiamo scelto, la property p6 abbia un solo statement con rank preferred.
 
Il codice esegue il comando della riga 106:
<source lang="lua">local statement = options.rank and getStatementByRank( entity.claims[property], n, options.rank ) or entity.claims[property][n - 1]</source>
in questo caso <code>options.rank</code> è compilato ma <code>getStatementByRank( entity.claims[property], n, options.rank )</code> restituisce <code>nil</code> quindi l'<code>and</code> non viene eseguito e viene eseguito l'<code>or</code>, cioè <code>entity.claims[property][n - 1]</code>, in altre parole mi viene ritornato il seondo statement indipendentemente dal rank. Questo funzionamento può essere testato inserendo in una sandbox il codice
<source lang="lua">return "ciao" and nil or "prova"</source>
se lo eseguiamo ci viene restituito "prova" e non il carattere vuoto.
 
Penso di aver corretto il bug nella sandbox [[Modulo:Wikidata/sandbox2]].--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 13:05, 1 feb 2014 (CET)
: Giusto. Riassumendo, il problema è dovuto al fatto che Lua manca di un vero operatore ternario (come di tante altre cose), e questa mancanza è colmata dall'approssimazione di "x = a and b or c" dove però l'unico problema è quando b = false/nil (vedi [http://lua-users.org/wiki/TernaryOperator qui]). Si potrebbe per esempio spostare il caso nil in "c", faccio solo una prova. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:00, 1 feb 2014 (CET)
::Si può fare con
<source lang="lua">
local statement = not options.rank
and entity.claims[property][n - 1]
or getStatementByRank( entity.claims[property], n, options.rank )</source>
::ma non è più intuitivo mettere un classico if - else come ho fatto io?--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 14:14, 1 feb 2014 (CET)
:::Sì è più chiaro con l'if ma c'è un problema anche più ampio. Quello che non mi piace è che chi ha scritto inizialmente il codice aveva previsto che in formatStatements arrivassero solo stringhe con i valori di ritorno o con gli errori (o al limite una stringa vuota), non nil, questa è una cosa che ho aggiunto io e adesso dà questo problema che hai ben evidenziato. Voglio solo vedere un secondo se posso ritornare a non far mai ritornare nil (come in origine) e quindi togliere alla radice il problema. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:27, 1 feb 2014 (CET)
::::Alla fine ho riportato il tuo fix senza modificare altro. Ci ho provato ma diventava una modifica troppo invasiva. Nei prossimi giorni provo un approccio simile a quello che hanno eseguito su fr.wiki (funzione getClaims) cioè di filtrare i claims prima di chiamare formatStatements (in realtà loro la chiamano proprio all'inizio di formatStatements, ma è come fosse prima). Questo perché le funzioni "format*" si dovrebbero limitare a formattare l'output non a filtrare i claims come adesso avviene, portando così a un mix di valori di ritorno tra nil, stringhe vuote ed errori che non è chiaro. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 15:39, 1 feb 2014 (CET)
 
== Formattazione data ==
 
Il modulo formatta la data utilizzando la funzione [[:mw:Extension:Scribunto/Lua reference manual#mw.language:formatDate|mw.language:formatDate()]] che a sua volta si basa sulla funzione parser [[mw:Help:Extension:ParserFunctions#.23time|#time]]. Questa funzione ha un problema: le date che si riferiscono al primo giorno del mese, per esempio 1-10-2014 vengono formattate nel seguente modo:
:1 ottobre 2014
secondo le [[Wikipedia:Convenzioni_di_stile#Giorni_e_mesi|nostre convenzioni di stile]] però la data andrebbe formattata così
:1º ottobre 2014
da notare il simbolo º dopo il numero 1.
 
Le cose sono due: o chiediamo agli sviluppatori di mediawiki di modificare il funzionamento della funzione <code>mw.language.formatDate()</code> (e dunque penso anche della funzione parser <code>#time</code>), oppure dobbiamo modificare il nostro modulo. Alla riga 218, dopo aver formattato la data con <code>mw.language.formatDate()</code>, potremmo controllare se i primi due caratteri della stringa sono un "1" seguito da uno spazio vuoto, in tal caso sostituiamo 1 con 1º. Voi cosa ne pensate?--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 21:34, 4 feb 2014 (CET)
: Per me va bene la seconda, avevo fatto una funzione con scopo simile in [[Modulo:Bio]] (fixFirstOfMonth), se vuoi la riporto (parzialmente) qui, oppure integro semplicemente il <code>date = date:gsub("^1%s", "1º ")</code>. Oppure fallo tu, io al massimo mi permetto di ricontrollare. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:07, 4 feb 2014 (CET)
::Beh creare una funzione apposta per utilizzarla una volta sola mi sembra esagerato, per me si può benissimo aggiungere dopo la riga 218 di questo modulo i due comandi che si trovano nella funzione <code>fixFirstOfMonth()</code> del [[Modulo:Bio]]. Non capisco però a cosa serva questo comando <code>date = date:gsub("^1\194\176", "1º")</code>.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 22:52, 4 feb 2014 (CET)
:::Quella funzione come documentato esegue (eventualmente) due replace, quello è il secondo... --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:19, 4 feb 2014 (CET)
::::Ci sarebbero anche da aggiungere anche la altre precisioni. La funzione l'avevo importata da Modulo:Bio, dove l'avevo scritta inizialmente. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:31, 4 feb 2014 (CET)
:::::È che non capisco cosa indichi la regex <code>\194\176</code>. Ho notato anche io che c'è questa "precision" è solo che non riesco a capire il valore 11 e 9 a cosa si riferiscono, ho capito che c'entra col fatto che la data può essere espressa in giorno-mese-anno oppure in mese-anno oppure anche in giorno-mese-anno-ora, ma non capisco il numero a cosa sia legato.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 23:46, 4 feb 2014 (CET)
::::::Non è una regex, è un codice carattere. Riguardo al formato dei dati di wikidata, qualunque possibile informazione la trovi ovviamente su wikidata.org, dove altro altrimenti :) --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:55, 4 feb 2014 (CET)
{{outdent|::::::}}Il problema è che l'unica documentazione che ho trovato è [[mw:Extension:Wikibase Client/Lua]] e la "precision" per la data viene citata solo una volta in un esempio in cui è eguagliata ad 11 senza spiegare il perchè. Se sai dove posso trovare una documentazione migliore per piacere la puoi linkare?--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 00:02, 5 feb 2014 (CET)
:No grazie ho trovato in [[d:Special:ListDatatypes]].--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 00:04, 5 feb 2014 (CET)
 
== Valore più recente ==
 
Sarebbe utile, nel caso di più valori con il qualificatore data ([[:d:Property:P585]], forse anche [[:d:Property:P580]]), la possibilità di ottenere quello con la data più recente. Un'applicazione pratica è emersa in [[Discussioni_template:Divisione_amministrativa#Ritorno_a_wikidata]] --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 21:26, 16 feb 2014 (CET)
: Devo solo ristrutturare la lettura degli statement, come detto in una discussione precedente (funzione getClaims sullo stile di fr.wiki) e poi si dovrebbe implementare facilmente. Appena fatto riapro la discussione. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:01, 16 feb 2014 (CET)
::Ma perché per questo tipo di cose non ci concentriamo sul rank che è stato creato apposta per ottenere il parametro più recente? Sarebbe utile una funzione che controlla se esistono uno o più valori con rank preffered, se questi esistono allora me li restituisce altrimenti mi restituisce gli altri valori.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 22:21, 16 feb 2014 (CET)
:::Secondo me il fatto se è meglio usare il rank o un filtro su un qualificatore non è pertinenza del modulo. Cioè trovo giusto che il modulo sappia fare entrambe le cose, sta poi nelle discussioni in cui si decide come organizzare i dati su wikidata favorire un metodo o l'altro. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:38, 16 feb 2014 (CET)
{{outdent|:::}} Come preannunciato nella discussione "Bug del rank", ho aggiunto la funzione getClaims che semplifica decisamente il codice e permette di aggiungere facilmente qualsiasi tipo di filtro sui vari valori di una proprietà (gli "statement"). Per esempio ho aggiunto il filtro sui qualifier. Il codice è quindi diviso in due parti principali:
* la getClaims che ritorna gli statement che soddisfano i filtri richiesti
* la vecchia formatStatements che li legge e li formatta opportunamente
Nota: ho cambiato il senso del parametro qualifier, che intanto non era ancora stato utilizzato. Ho fatto come su fr.wiki dove, invocato con formatStatements, non serve per ritornare il qualifier ma per filtrare (eventualmente in coppia con qualifiervalue) gli statement. Per ritornare il qualifier si aggiungerà invece un nuovo metodo (getQualifier). A breve degli esempi. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:40, 20 feb 2014 (CET)
 
Ecco l'esempio della nuova implementazione. Faccio riferimento alla entity di [[D:Q100143|Caprino Bergamasco]], indicata da [[Utente:ValterVB|ValterVB]] nella [[Discussioni_template:Divisione_amministrativa#Ritorno_a_wikidata|discussione]] come più completa, e alla relativa [[d:property:p1082]], la popolazione, che attualmente contiene:
* 2813 - point in time(P585): 31 dicembre 2001
* 2861 - point in time: 31 dicembre 2002
* 2867 - point in time: 31 dicembre 2003
* 2908 - point in time: 31 dicembre 2004
* 2966 - point in time: 31 dicembre 2005
* 3022 - point in time: 31 dicembre 2006
* 3051 - point in time: 31 dicembre 2007
* 3115 - point in time: 31 dicembre 2008
* 3121 - point in time: 31 dicembre 2009
* 3120 - point in time: 31 dicembre 2010
* 3131 - point in time: 31 dicembre 2011
* 3122 - point in time: 31 dicembre 2012, con rank preferred
* 3127 - point in time: 9 ottobre 2011, determination method(P459): census(Q39825), questionnaire(Q747810)
 
Col modulo in sandbox scrivendo [[Caprino Bergamasco]] e usando Anteprima, ora si può ottenere:
* tutti gli statement: <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082}}</nowiki></code> => 2813, 2861, 2867, 2908, 2966, 3022, 3051, 3115, 3121, 3120, 3131, 3122 e 3127
* gli statement con rank preferred: <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082|rank=preferred}}</nowiki></code> => 3122
* gli statement che usano il qualifier determination method(P459): <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p459}}</nowiki></code> => 3127
* gli statement che usano il qualifier determination method(P459) e valorizzato a census(Q39825): <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p459|qualifiervalue=Q39825}}</nowiki></code> => 3127
* lo statment che usa il qualifier point in time(P585) e ha la data più recente: <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p585|qualifiertype=latest}}</nowiki></code> => 3122
--[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 11:24, 21 feb 2014 (CET)
: Quindi se capisco bene ora posso richiedere il valore della proprietà x con qualificatore y e valore del qualificatore z? Grande. Credo che questo possa coprire quasi tutti i casi, se poi fosse possibile anche aggiungere il filtro sulla fonte sarebbe completo :) --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 11:37, 21 feb 2014 (CET)
:: È come hai detto. <s>a parte che: "con qualificatore y e valore del qualificatore y" (y non z, cioè qualifiervalue si riferisce a qualifier). Nell'esempio sopra: gli statement con qualifier determination method(P459) valorizzato a census(Q39825).</s> (precisazione inutile perché mi sa che intendevi già questo). Riguardo al filtro sulla fonte con la nuova getClaims non c'è problema.
 
::Ne approfitto per fare una nota a margine: in generale mi sono rifatto ai parametri usati in [[:fr:Module:Wikidata]] e se il modulo coprisse perfettamente le nostre esigenze lo si potrebbe anche ricopiare qui tale e quale. Il fatto è che: (1) a questo modulo ho aggiunto alcune funzionalità (tutte testate) che mancano su fr.wiki (2) su fr.wiki ce ne sono tantissime che non usiamo e sarebbero da testare (3) wikidata è molto in evoluzione e anche quello su fr.wiki cambia anche spesso. Io preferisco sviluppare su un codice che ormai conosco abbastanza, cioè questo. Una volta che Wikidata raggiungesse una situazione stabile allora passarei a quello che si preferisce di più. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:28, 21 feb 2014 (CET)
:::{{conflittato}} Sbaglio o sono state cambiate le regole del modulo? Attualmente un codice di questo tipo
<pre>{{#invoke:Wikidata|formatStatements|property=p1082|qualifier=p459}}</pre>
:::ritorna (come scritto nella documentazione) il valore del qualifier p459 apposto alla property p1082, nel caso di Caprino Bergamasco dovrebbe ritornare "[[censimento]] e [[questionario]]" (in realtà ritorna un codice errato e non so perché) non la property che ha quel qualifier.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:31, 21 feb 2014 (CET)
:::: Sì guarda è scritto poco sopra => Nota: ho cambiato il senso del parametro qualifier, che intanto non era ancora stato utilizzato. Ho fatto come su fr.wiki dove, invocato con formatStatements, non serve per ritornare il qualifier ma per filtrare (eventualmente in coppia con qualifiervalue) gli statement. Per ritornare il qualifier si aggiungerà invece un nuovo metodo (getQualifier). Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:33, 21 feb 2014 (CET)
:::::Il [[template:Software]] usa il qualifier.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:38, 21 feb 2014 (CET)
::::::E va beh dai, c'è un'unica occorrenza in quel template su tutta wiki, lo sostituiamo con getQualifier. Il fatto che la formatStatements passasse a ritornare il qualifier invece del valore della proprietà me lo ero inventato a novembre, quando appena avevo iniziato a guardare Wikidata, ma in effetti è concettualmente più corretto che ci sia un altro metodo, come hanno fatto su fr.wiki. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:49, 21 feb 2014 (CET)
:::::::Molto bene. Attenzione solo a eventuali altri usi di qualifier nei template esistenti, non si trovano con la normale ricerca di testo.
:::::::Nel caso di "latest" servirebbe anche la possibilità di ottenere tale data --[[Utente:Bultro|Bultro]] ([[Discussioni utente:Bultro|m]]) 14:18, 21 feb 2014 (CET)
::::::::Sarà possibile ottenere anch'esso tramite getQualifier, che aggiungo a breve. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 19:22, 21 feb 2014 (CET)
{{outdent|::::::::}} Ho implementato la getQualifier. Si comporta esattamente come la formatStatements, ma ritorna il valore dei qualifiers invece che quello degli statements. Ritornando all'esempio di prima quindi:
* <code><nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p585|qualifiertype=latest}}</nowiki></code> => 3122
allora per ottenerne la data, basta usare il metodo getQualifier, gli altri parametri rimangono invariati:
* <code><nowiki> {{#invoke:Wikidata/sandbox|getQualifier|property=p1082|qualifier=p585|qualifiertype=latest}}</nowiki></code> => 31 dicembre 2012
Così come nel template software basta solo cambiare la stringa "formatStatements" con "getQualifier", quindi:
* <code><nowiki>{{#invoke:Wikidata|formatStatements|property=p348|qualifier=p577|value={{{DataUltimaVersione|}}}|pattern=($1)}}</nowiki></code>
diventa:
* <code><nowiki>{{#invoke:Wikidata|getQualifier|property=p348|qualifier=p577|value={{{DataUltimaVersione|}}}|pattern=($1)}}</nowiki></code>
Se nessuno trova controindicazioni passo alla nuova versione, correggendo anche il template Software e aggiornando la documentazione. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 09:55, 26 feb 2014 (CET)
: Ho aggiunto una minima modifica, un parametro "formatting" che, come su fr.wiki, permette di leggere latitudine e longitudine separatamente e ho corretto il primo del mese con 1º. In giornata passerò alla nuova versione, correggendo anche il template Software e aggiornando la documentazione. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 08:36, 27 feb 2014 (CET)
:: {{Fatto}} Successivamente ho aggiornato la sandbox con la nuova mw.wikibase.getEntityObject che va a sostituire la mw.wikibase.getEntity divenuta quindi deprecata. Domani provvedo a riportare la modifica e ad aggiornare anche gli altri moduli. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:24, 27 feb 2014 (CET)
::: Fatte entrambe le cose e ho riordinato le funzioni (definizione prima di utilizzo). Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:03, 28 feb 2014 (CET)
:::: È entrata in funzione una nuova versione di getEntityObject che ritorna delle sequence che iniziano da 1 invece che da 0, come avrebbe dovuto sempre essere per il linguaggio Lua. Ho aggiornato la sandbox per rispecchiare questa modifica, ho eseguito i test (senza errori) e a breve riporto la modifica sul modulo. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:01, 4 mar 2014 (CET)
::::: Aggiornato. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 20:34, 4 mar 2014 (CET)
 
== Richiedere il dato con il miglior rank ==
 
Come potete vedere in [[d:Q698]] (Mozilla Firefox), il 29 aprile sono uscite due versioni del browser di cui solo una è quella importante (l'altra è solo una versione supportata più a lungo riservata alle aziende), in questo caso non è possibile utilizzare il <code>qualifiertype=latest<code>, perché le due versioni sono uscite la stessa data, sarebbe comodo avere un parametro del modulo che ci permetta di avere lo statement (o gli statement) con il rank più alto (nell'ordine deprecated → normal → preferred). Come possiamo fare ad ottenere ciò? Creiamo un parametro chiamato <code>bestRank=</code> che, se compilato, ritorna lo statement (o il qualifier) con il rank più alto?--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:30, 1 mag 2014 (CEST)
: Va bene se facciamo come su fr.wiki (verso cui ho sempre cercato una compatibilità), ossia "rank" oltre che deprecated, normal e preferred, può valere "best" per ritornare i preferred se presenti, altrimenti i normal (il deprecated non viene ritornato), come desiderato? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:44, 1 mag 2014 (CEST)
:: Ho aggiunto il rank best nella sandbox, l'ho testato in [[Modulo:Wikidata/test]] e nella pagina [[Mozilla Firefox]] da te indicata. Ora provando in Mozilla Firefox con l'anteprima si ottiene:
::* <nowiki>{{#invoke:Wikidata/sandbox|formatStatements|property=p348|rank=best}}</nowiki> => 29.0
::* <nowiki>{{#invoke:Wikidata/sandbox|getQualifier|property=p348|qualifier=p577|rank=best}}</nowiki> => 29 aprile 2014
:: Più tardi riporto la modifica in Modulo:Wikidata e aggiorno la documentazione. Poi basterà aggiungere "rank=best" in Valore3 di [[Template:Software]]. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 18:33, 2 mag 2014 (CEST)
:::Mi sembra un ottima soluzione.--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 21:53, 2 mag 2014 (CEST)
::::Fatto, ciao! --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 00:59, 3 mag 2014 (CEST)
 
== Dal titolo all'ID in Wikidata ==
 
C'è una funzione da qualche parte che, preso il titolo di una pagina qui, mi dà l'ID corrispondente in Wikidata (se esistente e trascurando ritardi negli aggiornamenti)? --[[Utente:Nemo_bis|Nemo]] 18:27, 1 mag 2014 (CEST)
: In che contesto la vorresti usare? C'è l'[http://www.wikidata.org/w/api.php API] di Wikidata con cui potresti fare quella ricerca. Scusa per il rb mi è scappato il mouse. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 18:39, 1 mag 2014 (CEST)
:: Pensavo a qualcosa come una parola magica che si possa tenere tranquillamente in una pagina wiki. La documentazione dell'API l'avevo già letta, ma non c'è nulla di veramente comodo a quanto vedo. --[[Utente:Nemo_bis|Nemo]] 00:05, 2 mag 2014 (CEST)
::: Ho anche [[d:Template_talk:Q#Equivalent_on_client_wikis|chiesto dell'inverso]], cioè un template per andare dall'ID al titolo. --[[Utente:Nemo_bis|Nemo]] 13:04, 5 ott 2014 (CEST)
:::: Anche in questo caso puoi farlo con l'[http://www.wikidata.org/w/api.php API] di Wikidata. Il template Q funziona solo su Wikidata al momento. Questa particolare conversione tuttavia puoi farla diversamente dal template Q su Wikidata usando mw.wikibase.label('Q41'), e questo funziona da sempre anche qui. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:19, 5 ott 2014 (CEST)
 
== References ==
 
Sollecitato da [[Utente:Umberto NURS|Umberto NURS]] che ne avrebbe fatto uso, ho aggiunto il supporto alle reference nella sandbox del modulo ([//it.wikipedia.org/w/index.php?title=Modulo%3AWikidata%2Fsandbox&diff=69090580&oldid=65722962 diff]). Ho messo una prova [[Speciale:LinkPermanente/69090770|qui]]. Va bene per Pentium ma non ancora per Londra. Mi servirebbe in pratica sapere ({{ping|ValterVB}} magari ci può aiutare) se c'è qualche standard nella creazione di una reference su Wikidata, nel qual caso si potrebbero anche usare i vari template cita. PS Tuttavia anche senza cita web le note 3 e 4 di Londra posso già fare che unirle visto che fanno parte di una sola reference su Wikidata. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:15, 10 nov 2014 (CET)
:La linea guida delle reference su Wikidata si trova in [[d:Help:Sources]].--[[Utente:Dega180|dega180]] ([[Discussioni utente:Dega180|msg]]) 12:57, 10 nov 2014 (CET)
::Ah bene grazie. Nel frattempo sono riuscito a raggruppare le sottoproprietà di una singola reference (mantenendo anche l'ordine), [//it.wikipedia.org/w/index.php?title=Modulo:Wikidata/sandbox&diff=prev&oldid=69091697 diff]. L'esempio sempre [[Speciale:LinkPermanente/69090770|qui]]. Non è proprio come usare un cita web ma è già quasi utilizzabile. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:21, 10 nov 2014 (CET)
:::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)
 
== Sitelink ==
 
C'è modo di recuperare il sitelink dell'Item? --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 18:21, 10 gen 2015 (CET)
: {{ping|ValterVB}} Sì, l'entity ha una table "sitelinks" con queste informazioni. Servono? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:09, 11 gen 2015 (CET)
:: {{ping|Rotpunkt}} Non ne sono ancora sicuro, ma stavo cercando di immaginare come creare un wikilink da un item nel momento che sarà disponibile l'accesso arbitrario. Per esempio nel template {{tl|Ponte}}, c'è il parametro ''città'' o ''attraversa'', che viene mostrato come wikilink, penso che l'unico modo per creare il wikilink sia utilizzate il sitelink presente nell'Item o c'è qualche altro sistema? --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 20:32, 12 gen 2015 (CET)
::: Per quello c'è la funzione mw.wikibase.sitelink, no? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 21:18, 12 gen 2015 (CET)
:::: {{ping|Rotpunkt}} Non conosco molto le funzioni sviluppate per Wikidata, però ho trovato il [https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua#mw.wikibase.entity:getSitelink manuale], e in effetti sembra proprio quella, quindi come non detto. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 21:34, 12 gen 2015 (CET)
 
== mw.wikibase.renderSnak ==
 
Nei prossimi giorni, con la versione 1.25/wmf19 di MediaWiki, arriverà una nuova funzione mw.wikibase.renderSnak ([[Phab:T76213]]) che dovrebbe facilitare le varie funzioni in formatDatavalue. Bisogna solo verificare se compatibile con quanto fin'ora ritornato dal modulo, eventualmente aggiornando i template chiamanti se possibile. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:57, 26 feb 2015 (CET)
 
== Istanza di (P31) ==
 
È possibile, o qui o in [[Modulo:Infobox]], cercare una lista di valori nelle dichiarazioni "istanza di" (P31) sul soggetto e mostrarli se presenti?
 
Per esempio, nella voce su un famoso gatto potrei voler mostrare se è un gatto domestico o un gatto selvatico; è improbabile che crei la proprietà "Stato di domesticazione", è piú facile che aggiunga il valore "gatto selvatico" o "gatto domestico" a P31. Quindi mi servirebbe mostrare il valore di P31, limitandomi però a questa specifica informazione. --[[Utente:Federico Leva (BEIC)|Federico Leva (BEIC)]] ([[Discussioni utente:Federico Leva (BEIC)|msg]]) 09:29, 19 mar 2015 (CET)
: Mi faresti un esempio concreto (nome della voce su itwiki e relativo elemento wikidata), perché ho cercato un paio di gatti ma la proprietà P31 l'ho trovata valorizzata solo a "Taxon". --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 10:38, 19 mar 2015 (CET)
::L'esempio era volutamente improbabile. L'esempio concreto è che per [[Einaudi Editore]] voglio aggiungere P31:"grande editore" in Wikidata e mostrare tale valore qui. L'opportunità della specifica operazione sugli editori la sottoporrò a consenso in una pagina piú opportuna, ma vorrei sapere se tecnicamente la cosa è possibile. --[[Utente:Federico Leva (BEIC)|Federico Leva (BEIC)]] ([[Discussioni utente:Federico Leva (BEIC)|msg]]) 11:00, 19 mar 2015 (CET)
::: Riguardo al fatto dell'esempio, è che in casi in cui c'è disponibilità di dati per fare un esempio concreto, e con Wikidata possiamo stare tranquilli in questo senso, è sempre conveniente farlo, sia per chi pone un problema sia per chi cerca di risolverlo. Così si eliminano le incertezze e spesso si finisce per avere una soluzione già pronta all'uso.
::: Solo che l'esempio che proponi [[d:Q1305980]], ha un solo statement per "instance of". Te ne propongo uno io: [[d:Q17]]. Tu stai chiedendo: come faccio a sapere se [[d:Q17]] ha in "instance of" (P31) uno statement per esempio dal valore "island nation"? È corretto? è questa la domanda? --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:04, 19 mar 2015 (CET)
::::Sí, è quella la domanda. --[[Utente:Federico Leva (BEIC)|Federico Leva (BEIC)]] ([[Discussioni utente:Federico Leva (BEIC)|msg]]) 12:11, 19 mar 2015 (CET)
:::::Si potrebbe fare con una ricerca, esempio se scrivi: <code><nowiki>{{#ifeq:{{str find|{{#property:P31}}|stato insulare}}|-1|non è uno stato insulare|è uno stato insulare}}</nowiki></code> in [[Giappone]] otterrai "è uno stato insulare". Tuttavia se "instance of" avesse tra i suoi valori sia "stato insulare" che "stato insulare asiatico", e tu cercassi solo "stato insulare", ti troverebbe anche "stato insulare asiatico". Sarebbe da aggiungere una nuova funzione al modulo, usabile sempre attraverso il template {{tl|Wikidata}}. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:46, 19 mar 2015 (CET)
::::::Posso aggiungere a {{tl|Wikidata}} un parametro "indexof" da valorizzare con il valore dello statement che stai cercando. Ritornerà l'indice dello statement con quel valore o -1 se non trovato. Quindi in [[Giappone]] (o in un template in esso incluso) scriveresti: <code><nowiki>{{#ifeq:{{Wikidata|P31|indexof=stato insulare}}|-1|non è uno stato insulare|è uno stato insulare}}</nowiki></code>. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 14:12, 19 mar 2015 (CET)
 
== monolingualtext ==
 
Bisognerebbe aggiungere il tipo dati "monolingualtext" alla funzione "formatDatavalue" (riga 106 circa). Questo servirebbe ad esempio per leggere il titolo di un'opera, vedi anche [[WP:Pagina delle prove di Wikidata]].
<pre>
--Default formatters
if datavalue.type == 'wikibase-entityid' then
ret = formatEntityId(getEntityIdFromValue(datavalue.value), options, formatting)
elseif datavalue.type == 'string' then
ret = datavalue.value
elseif datavalue.type == 'monolingualtext' then
ret = datavalue.value.text
 
... ecc. ecc.
</pre>
Grazie. --[[Utente:FRacco|FRacco]] ([[Discussioni utente:FRacco|msg]]) 19:17, 20 mar 2015 (CET)
: {{fatto}} --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 20:42, 20 mar 2015 (CET)
::Ottimo (e velocissimo!!!) --[[Utente:FRacco|FRacco]] ([[Discussioni utente:FRacco|msg]]) 11:51, 21 mar 2015 (CET)
 
== checkStatements ==
 
Ciao, su Wikiquote ho aggiunto al corrispondente [[q:Modulo:Wikidata]] una funzione che verifica se una data proprietà ha un dato valore. Ad esempio lo utilizziamo per categorizzare automaticamente cortometraggi o film a episodi in base ai dati disponibili su Wikidata. Se pensate possa essere utile anche qua fatemi un fischio per adattarne il codice. --[[Utente:FRacco|FRacco]] ([[Discussioni utente:FRacco|msg]]) 19:00, 21 mar 2015 (CET)
 
== Richiamo da altri moduli ==
 
Non sarebbe possibile modificare il modulo per permettere il recupero di dati anche da altri moduli ? Eventualmente anche dei dati non formattati ? sto guardando l'uso che vuole fare Andyrom75 su voyr del modulo (ha importato questo modulo da it.wiki) ma in [[voy:Modulo:Quickbar]] gli farebbe comodo ricevere una tabella di property non formattate, invece che usare Wikidata.formatStatements per ricevere una stringa e poi stare ad analizzarla per estrarre i dati compresi tra i separatori. E sospetto che potrebbe fare comodo anche a me accedere da lua al modulo da Interprogetto, piuttosto che riscrivere le funzioni--[[Utente:Moroboshi|Moroboshi]] <sup>[[Discussioni utente:Moroboshi|scrivimi]]</sup> 21:51, 19 apr 2015 (CEST)
: {{ping|Moroboshi}} Fatto. Ho chiamato le funzioni _getProperty, _getQualifier e _N (hanno l'underscore iniziale rispetto a quelle chiamate dai template, secondo la consuetudine che vedo usata su en.wiki). Ne ho approfittato per rinominare formatStatements nel più chiaro e semplice getProperty (e più uniforme con il getQualifier). Ho fatto un esempio in [[Modulo:Sandbox/Rotpunkt/Test]], per provare puoi inserire in [[Malmö (comune)]] <nowiki>{{#invoke:Sandbox/Rotpunkt/Test|main}}</nowiki> e poi fare anteprima. Se ti serve qualcosa scrivimi pure. Per la documentazione dei parametri puoi basarti su [[Template:Wikidata]] per _getProperty, [[Template:WikidataQ]] per _getQualifier e [[Template:WikidataN]] per _N. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 22:53, 19 apr 2015 (CEST)
::Ottimo! grazie.--[[Utente:Moroboshi|Moroboshi]] <sup>[[Discussioni utente:Moroboshi|scrivimi]]</sup> 23:58, 19 apr 2015 (CEST)
 
{{Ping|Rotpunkt}} Ho modificato ulteriormente il modulo su [https://it.wikivoyage.org/wiki/Modulo:Wikidata :voy:Modulo:Wikidata] prova a vedere se ritieni importabili le modifiche anche qui.
:Andyrom75 voleva importare la prima e ultima delle zone orarie associate a una nazione per visualizzarle come intervallo "da .. a". Dato che le funzioni del modulo restituiscono una stringa unica con tutte le proprietà si sarebbe dovuto andare nuovamente a suddividerla, subito dopo che erano state unite.
:Per semplificare ho invece aggiunto il parametro <code>rawTable</code> alla funzione <code>_getProperty()</code>, se questo è <code>true</code> il modulo restituisce la tabella <code>formattedStatements</code> senza unirla in una stringa. Diventa quindi banale prendere solo il primo e l'ultimo dei valori. Dato che <code>rawTable</code> non viene passato all'interno della tabella <code>args</code> non c'è il pericolo che possa essere richiamato mediante una chiamata di template, ma possa essere richiamato solo mediante una chiamata da un modulo Lua.--[[Utente:Moroboshi|Moroboshi]] <sup>[[Discussioni utente:Moroboshi|scrivimi]]</sup> 07:40, 21 apr 2015 (CEST)
:: Hai fatto bene, è normale che i moduli, rispetto ai template, vogliano e possano usare anche altri tipi di dato oltre alle stringhe. Aspetterei a riportare qui la modifica alla prima occasione di suo utilizzo. Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 19:01, 21 apr 2015 (CEST)
 
== Parametro from per l'accesso arbitrario ==
 
Ho aggiunto al modulo il parametro "from" per poter utilizzare l'[[d:Wikidata:Arbitrary access|accesso arbitrario]], attivato in it.wiki 1° giugno 2015. L'ho chiamato "from" per uniformità con #property (nel vecchio modulo di test che si era importato inizialmente nel 2013, quando ancora l'accesso arbitrario era solo in programma, il parametro era stato invece chiamato "entityId"). L'accesso arbitrario a oggi è abilitato solo su: fa.wiki, he.wiki, it.wiki, nl.wiki e poi su en.wikivoyage, wikisource, wikidata stessa e test.wiki. Ho documentato la funzionalità a [[Template:Wikidata]]. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 17:51, 1 giu 2015 (CEST)
: Tra ieri e oggi ho aggiunto anche il parametro formatting=raw per ritornare l'id in caso di proprietà di tipo item e l'utilizzo di frame.preprocess col parametro pattern. Ho sperimentato queste due funzionalità insieme al parametro from in [[Speciale:Permalink/73119766|questa sandbox]]. Quello che succede è che con il formatting=raw viene ritornato l'id degli item, che a sua volta è usato come valore del from nel pattern. In questo modo credo che in certi casi si possano sfruttare le funzionalità offerte dall'accesso arbitrario in modo veloce, anche solo per fare dei test. Pingo {{ping|ValterVB}} se gli interessasse. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 16:34, 3 giu 2015 (CEST)
:: Visto e [[Utente:ValterVB/Sandbox/Amministrazioni|testato]]. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 22:06, 3 giu 2015 (CEST)
::: {{ping|ValterVB}} Bello. Ti informo che ho esportato dal modulo la funzione per ottenere label e sitelink dato l'id numerico di un item, vedi [[Template:WikidataLink]] (usato per esempio [//it.wikipedia.org/w/index.php?title=Utente%3ARotpunkt%2FSandbox6&type=revision&diff=73127392&oldid=73119766 qui]). Il modulo la usava internamente per ritornare il valore di una proprietà di tipo item, ma esportandola si integra così quell'unica funzionalità a cui serviva il modulo Wikibase. Quelle due funzioni Lua utilizzate, mw.wikibase.label e mw.wikibase.sitelink (insieme a mw.wikibase.getEntity) erano proprio le sole funzioni esistenti nella libreria ad aprile 2013, quando importasti il modulo Wikibase (vedi [//www.mediawiki.org/w/index.php?title=Extension:Wikibase_Client/Lua&oldid=664563 qui]). In pratica quello che avevi trovato su test2.wikipedia.org era lo stesso identico esempio della documentazione. Il fatto di poter ottenere il titolo della pagina dall'id dell'item era comunque una funzionalità che era giusto avere, immagino che con l'accesso arbitrario possa servire (come mi è capitato in quell'esempio nella sandbox). Ciao. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 00:03, 4 giu 2015 (CEST)
 
== Aggiunta noqualifier ==
 
Ciao a tutti. Sono piuttosto nuovo di moduli, perciò non sbranatemi! Vorrei chiedervi se è possibile aggiungere queste poche righe di codice:
<source lang="lua">
-- statements filtrati per essere senza un qualifier
if args.noqualifier then
filteredClaims = {}
for i, claim in pairs(claims) do
if not (claim.qualifiers and claim.qualifiers[args.noqualifier]) then
table.insert(filteredClaims, claim)
end
end
claims = filteredClaims
end
</source>
 
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:Infobox missione spaziale]]) non per valorizzare un parametro del template. Se dovessimo usare il template voce per voce, si perderebbe tutta l'utilità di Wikidata. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:45, 28 mag 2016 (CEST)
:: 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:Infobox missione spaziale/Sandbox]]. Poi ripristina [[Sojuz TMA-18M]] e sostituisci {{Infobox missione spaziale con {{Infobox missione spaziale/Sandbox e poi vediamo il resto. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 13:02, 28 mag 2016 (CEST)
:::: {{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|Infobox missione spaziale}}, pensavo che sarebbe utile impelmentare la funzione di conta delle dichiarazioni filtrandole per un dato qualificatore o per l'assenza di esso. Che ne dite? Se lo ritenete opportuno posso provarci (se ci riesco)... --[[Utente:Adert|Adert]] ([[Discussioni utente:Adert|msg]]) 14:03, 2 giu 2016 (CEST)
Ritorna alla pagina "Wikidata".