Discussioni modulo:Wikidata


Ultimo commento: 9 anni fa, lasciato da Adert in merito all'argomento Aggiunta noqualifier

Proposta aggiunta funzione

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 {{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 {{#Wikidata|nome_funzione|property=999|5}}, e mi restituisce il quinto valore della property 999.--dega180 (msg) 20:49, 26 giu 2013 (CEST)Rispondi

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: {{#invoke:Wikidata|formatStatements|property=p47|n=3}} per ritornare il valore del terzo statement. Ovviamente se n > del numero di statement presenti ritornerà una stringa vuota o un errore, a scelta. --Rotpunkt (msg) 14:08, 25 ott 2013 (CEST)Rispondi
Personalmente preferisco la stringa vuota.--dega180 (msg) 16:17, 25 ott 2013 (CEST)Rispondi
  Fatto e ho aggiornato la documentazione. --Rotpunkt (msg) 16:59, 25 ott 2013 (CEST)Rispondi

Applicazioni pratiche

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 --Bultro (m) 12:12, 11 ago 2013 (CEST)Rispondi

Funzionalità "pattern"

Sarebbe ora carino introdurre anche il parametro "pattern" che si trova sul modulo test, questo parametro mi permette di decidere il modo in cui dovrà essere formattato l'elemento di wikidata.--dega180 (msg) 12:41, 26 ott 2013 (CEST)Rispondi

Fatto, anche qui ho aggiornato la documentazione, con un esempio un più pratico di quello su test2. --Rotpunkt (msg) 13:43, 26 ott 2013 (CEST)Rispondi

Rank

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? --Rotpunkt (msg) 17:19, 25 gen 2014 (CET)Rispondi

Io l'avevo testato e sembrava funzionare è ovvio che se hai trovato un bug lo puoi correggere.--dega180 (msg) 17:44, 25 gen 2014 (CET)Rispondi
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ì:
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
poi messa in una funzione (getStatementByRank) ancora meglio. Sto aggiungendola alla sandbox, appena trovo un bug che mi sono auto-introdotto si può provare. --Rotpunkt (msg) 20:07, 25 gen 2014 (CET)Rispondi
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 n <= #entity.claims[property] così che non ci siano inutili iterazioni se options.n è superiore in partenza al numero di statement. --Rotpunkt (msg) 22:12, 25 gen 2014 (CET)Rispondi
Cosa aspetti? Se è a posto implementalo pure, non ti fare scrupoli a sostituire il mio codice, è evidente che il tuo è più elegante del mio.--dega180 (msg) 23:54, 25 gen 2014 (CET)Rispondi
  Fatto :) Provo a scrivere un po' di test. --Rotpunkt (msg) 12:10, 26 gen 2014 (CET)Rispondi

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.

Si può verificare prendendo Malmö (comune) e richiedendo la p361 ("Malmö metropolitan area") che non ha label e sitelink in italiano, e otteniamo:

  • con {{#property:p361}} => Q94298
  • con {{#invoke:Wikidata|formatStatements|property=p361}} => 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 ValterVB ci può aiutare. --Rotpunkt (msg) 22:06, 26 gen 2014 (CET)Rispondi

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). --ValterVB (msg) 22:16, 26 gen 2014 (CET)Rispondi
Intendi un link così: 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? --Rotpunkt (msg) 22:34, 26 gen 2014 (CET)Rispondi
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. --ValterVB (msg) 23:01, 26 gen 2014 (CET)Rispondi
Grazie ValterVB! Ho implementato la funzionalità del link a wikidata nella sandbox, si può provare sempre in Malmö (comune) usando {{#invoke:Wikidata/sandbox|formatStatements|property=p361}} e {{#invoke:Wikidata/sandbox|formatStatements|property=p47}}. 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). --Rotpunkt (msg) 00:42, 27 gen 2014 (CET)Rispondi
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? --Bultro (m) 17:54, 27 gen 2014 (CET)Rispondi
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. --Rotpunkt (msg) 18:42, 27 gen 2014 (CET)Rispondi

────────────────────────────────────────────────────────────────────────────────────────────────────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.--dega180 (msg) 19:42, 27 gen 2014 (CET)Rispondi

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. --Rotpunkt (msg) 14:28, 28 gen 2014 (CET)Rispondi
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--Moroboshi scrivimi 17:12, 28 gen 2014 (CET)Rispondi
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: Staffanstorp, Svedala, Vellinge, Tipo di dato sconosciuto, Tårnby, Dragør, Solrød, Greve e Burlöv, mentre per la stessa richiesta #property ritornerebbe: Staffanstorp, Svedala, Vellinge, Q504125, Tårnby, Dragør, Solrød, Greve e Burlöv. 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 {{#invoke:Wikidata|formatStatements|property=p47}} in fr:Malmö (commune). --Rotpunkt (msg) 17:31, 28 gen 2014 (CET)Rispondi
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.--Moroboshi scrivimi 17:42, 28 gen 2014 (CET)Rispondi
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. --Rotpunkt (msg) 17:48, 28 gen 2014 (CET)Rispondi
[ Rientro] Passaggio veloce, questa settimana sono all'estero è ho qualche problema di connessione, 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. --ValterVB (msg) 19:55, 28 gen 2014 (CET)Rispondi
Ho cominciato a riportare la correzione della stringa vuota. @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. --Rotpunkt (msg) 13:05, 29 gen 2014 (CET)Rispondi
In realtà su etichette e descrizioni ci "lavoro" parecchio: vedi qui e qui per alcune statistiche. Normalmente l'aggiornamento è quotidiano. Se serve posso riportarle anche di qua. --ValterVB (msg) 14:16, 29 gen 2014 (CET)Rispondi

Ordine statements

Ho corretto in Modulo:Wikidata/sandbox un problema che ci si porta dietro dall'inizio dovuto a due fattori concomitanti:

  1. 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)
  2. 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:

  • {{#invoke:Wikidata|formatStatements|property=p47}} => Staffanstorp, Svedala, Vellinge, Copenaghen, Tårnby, Dragør, Solrød, Greve e Burlöv

Ma se poi richiediamo il primo elemento otteniamo:

  • {{#invoke:Wikidata|formatStatements|property=p47|n=1}} => Burlöv

Ho quindi rimosso in Modulo:Wikidata/sandbox l'utilizzo di pairs() ottenendo:

  • {{#invoke:Wikidata/sandbox|formatStatements|property=p47}} => Burlöv, Staffanstorp, Svedala, Vellinge, Copenaghen, Tårnby, Dragør, Solrød e Greve
  • {{#invoke:Wikidata/sandbox|formatStatements|property=p47|n=1}} => 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. --Rotpunkt (msg) 14:38, 28 gen 2014 (CET)Rispondi

Questa cosa l'ho notata anche io, se sei riuscito a correggerla per me puoi sostituirla al modulo.--dega180 (msg) 12:25, 1 feb 2014 (CET)Rispondi

Bug del rank

Ho trovato un bug e penso di averlo risolto.

Io compilo il modulo nel seguente modo

{{#invoke:wikidata|formatStatements|property=p6|n=2|rank=preferred}}

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:

local statement = options.rank and getStatementByRank( entity.claims[property], n, options.rank ) or entity.claims[property][n - 1]

in questo caso options.rank è compilato ma getStatementByRank( entity.claims[property], n, options.rank ) restituisce nil quindi l'and non viene eseguito e viene eseguito l'or, cioè entity.claims[property][n - 1], in altre parole mi viene ritornato il seondo statement indipendentemente dal rank. Questo funzionamento può essere testato inserendo in una sandbox il codice

return "ciao" and nil or "prova"

se lo eseguiamo ci viene restituito "prova" e non il carattere vuoto.

Penso di aver corretto il bug nella sandbox Modulo:Wikidata/sandbox2.--dega180 (msg) 13:05, 1 feb 2014 (CET)Rispondi

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 qui). Si potrebbe per esempio spostare il caso nil in "c", faccio solo una prova. Ciao. --Rotpunkt (msg) 14:00, 1 feb 2014 (CET)Rispondi
Si può fare con
local statement = not options.rank
                  and entity.claims[property][n - 1]
                  or getStatementByRank( entity.claims[property], n, options.rank )
ma non è più intuitivo mettere un classico if - else come ho fatto io?--dega180 (msg) 14:14, 1 feb 2014 (CET)Rispondi
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. --Rotpunkt (msg) 14:27, 1 feb 2014 (CET)Rispondi
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. --Rotpunkt (msg) 15:39, 1 feb 2014 (CET)Rispondi

Formattazione data

Il modulo formatta la data utilizzando la funzione mw.language:formatDate() che a sua volta si basa sulla funzione parser #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 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 mw.language.formatDate() (e dunque penso anche della funzione parser #time), oppure dobbiamo modificare il nostro modulo. Alla riga 218, dopo aver formattato la data con mw.language.formatDate(), 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?--dega180 (msg) 21:34, 4 feb 2014 (CET)Rispondi

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 date = date:gsub("^1%s", "1º "). Oppure fallo tu, io al massimo mi permetto di ricontrollare. Ciao. --Rotpunkt (msg) 22:07, 4 feb 2014 (CET)Rispondi
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 fixFirstOfMonth() del Modulo:Bio. Non capisco però a cosa serva questo comando date = date:gsub("^1\194\176", "1º").--dega180 (msg) 22:52, 4 feb 2014 (CET)Rispondi
Quella funzione come documentato esegue (eventualmente) due replace, quello è il secondo... --Rotpunkt (msg) 23:19, 4 feb 2014 (CET)Rispondi
Ci sarebbero anche da aggiungere anche la altre precisioni. La funzione l'avevo importata da Modulo:Bio, dove l'avevo scritta inizialmente. --Rotpunkt (msg) 23:31, 4 feb 2014 (CET)Rispondi
È che non capisco cosa indichi la regex \194\176. 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.--dega180 (msg) 23:46, 4 feb 2014 (CET)Rispondi
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 :) --Rotpunkt (msg) 23:55, 4 feb 2014 (CET)Rispondi

────────────────────────────────────────────────────────────────────────────────────────────────────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?--dega180 (msg) 00:02, 5 feb 2014 (CET)Rispondi

No grazie ho trovato in d:Special:ListDatatypes.--dega180 (msg) 00:04, 5 feb 2014 (CET)Rispondi

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 --Bultro (m) 21:26, 16 feb 2014 (CET)Rispondi

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. --Rotpunkt (msg) 22:01, 16 feb 2014 (CET)Rispondi
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.--dega180 (msg) 22:21, 16 feb 2014 (CET)Rispondi
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. --Rotpunkt (msg) 22:38, 16 feb 2014 (CET)Rispondi

──────────────────────────────────────────────────────────────────────────────────────────────────── 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. --Rotpunkt (msg) 22:40, 20 feb 2014 (CET)Rispondi

Ecco l'esempio della nuova implementazione. Faccio riferimento alla entity di Caprino Bergamasco, indicata da ValterVB nella 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: {{#invoke:Wikidata/sandbox|formatStatements|property=p1082}} => 2813, 2861, 2867, 2908, 2966, 3022, 3051, 3115, 3121, 3120, 3131, 3122 e 3127
  • gli statement con rank preferred: {{#invoke:Wikidata/sandbox|formatStatements|property=p1082|rank=preferred}} => 3122
  • gli statement che usano il qualifier determination method(P459): {{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p459}} => 3127
  • gli statement che usano il qualifier determination method(P459) e valorizzato a census(Q39825): {{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p459|qualifiervalue=Q39825}} => 3127
  • lo statment che usa il qualifier point in time(P585) e ha la data più recente: {{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p585|qualifiertype=latest}} => 3122

--Rotpunkt (msg) 11:24, 21 feb 2014 (CET)Rispondi

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 :) --ValterVB (msg) 11:37, 21 feb 2014 (CET)Rispondi
È come hai detto. 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). (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ù. --Rotpunkt (msg) 12:28, 21 feb 2014 (CET)Rispondi
[× Conflitto di modifiche] Sbaglio o sono state cambiate le regole del modulo? Attualmente un codice di questo tipo
{{#invoke:Wikidata|formatStatements|property=p1082|qualifier=p459}}
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.--dega180 (msg) 12:31, 21 feb 2014 (CET)Rispondi
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. --Rotpunkt (msg) 12:33, 21 feb 2014 (CET)Rispondi
Il template:Software usa il qualifier.--dega180 (msg) 12:38, 21 feb 2014 (CET)Rispondi
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. --Rotpunkt (msg) 12:49, 21 feb 2014 (CET)Rispondi
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 --Bultro (m) 14:18, 21 feb 2014 (CET)Rispondi
Sarà possibile ottenere anch'esso tramite getQualifier, che aggiungo a breve. --Rotpunkt (msg) 19:22, 21 feb 2014 (CET)Rispondi

──────────────────────────────────────────────────────────────────────────────────────────────────── 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:

  • {{#invoke:Wikidata/sandbox|formatStatements|property=p1082|qualifier=p585|qualifiertype=latest}} => 3122

allora per ottenerne la data, basta usare il metodo getQualifier, gli altri parametri rimangono invariati:

  • {{#invoke:Wikidata/sandbox|getQualifier|property=p1082|qualifier=p585|qualifiertype=latest}} => 31 dicembre 2012

Così come nel template software basta solo cambiare la stringa "formatStatements" con "getQualifier", quindi:

  • {{#invoke:Wikidata|formatStatements|property=p348|qualifier=p577|value={{{DataUltimaVersione|}}}|pattern=($1)}}

diventa:

  • {{#invoke:Wikidata|getQualifier|property=p348|qualifier=p577|value={{{DataUltimaVersione|}}}|pattern=($1)}}

Se nessuno trova controindicazioni passo alla nuova versione, correggendo anche il template Software e aggiornando la documentazione. Ciao. --Rotpunkt (msg) 09:55, 26 feb 2014 (CET)Rispondi

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. --Rotpunkt (msg) 08:36, 27 feb 2014 (CET)Rispondi
  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. --Rotpunkt (msg) 23:24, 27 feb 2014 (CET)Rispondi
Fatte entrambe le cose e ho riordinato le funzioni (definizione prima di utilizzo). Ciao. --Rotpunkt (msg) 13:03, 28 feb 2014 (CET)Rispondi
È 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. --Rotpunkt (msg) 14:01, 4 mar 2014 (CET)Rispondi
Aggiornato. --Rotpunkt (msg) 20:34, 4 mar 2014 (CET)Rispondi

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 qualifiertype=latest, 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 bestRank= che, se compilato, ritorna lo statement (o il qualifier) con il rank più alto?--dega180 (msg) 12:30, 1 mag 2014 (CEST) Rispondi

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? --Rotpunkt (msg) 12:44, 1 mag 2014 (CEST)Rispondi
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:
  • {{#invoke:Wikidata/sandbox|formatStatements|property=p348|rank=best}} => 29.0
  • {{#invoke:Wikidata/sandbox|getQualifier|property=p348|qualifier=p577|rank=best}} => 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. --Rotpunkt (msg) 18:33, 2 mag 2014 (CEST)Rispondi
Mi sembra un ottima soluzione.--dega180 (msg) 21:53, 2 mag 2014 (CEST)Rispondi
Fatto, ciao! --Rotpunkt (msg) 00:59, 3 mag 2014 (CEST)Rispondi

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)? --Nemo 18:27, 1 mag 2014 (CEST)Rispondi

In che contesto la vorresti usare? C'è l'API di Wikidata con cui potresti fare quella ricerca. Scusa per il rb mi è scappato il mouse. --Rotpunkt (msg) 18:39, 1 mag 2014 (CEST)Rispondi
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. --Nemo 00:05, 2 mag 2014 (CEST)Rispondi
Ho anche chiesto dell'inverso, cioè un template per andare dall'ID al titolo. --Nemo 13:04, 5 ott 2014 (CEST)Rispondi
Anche in questo caso puoi farlo con l'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. --Rotpunkt (msg) 13:19, 5 ott 2014 (CEST)Rispondi

References

Sollecitato da Umberto NURS che ne avrebbe fatto uso, ho aggiunto il supporto alle reference nella sandbox del modulo (diff). Ho messo una prova qui. Va bene per Pentium ma non ancora per Londra. Mi servirebbe in pratica sapere ([@ 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. --Rotpunkt (msg) 12:15, 10 nov 2014 (CET)Rispondi

La linea guida delle reference su Wikidata si trova in d:Help:Sources.--dega180 (msg) 12:57, 10 nov 2014 (CET)Rispondi
Ah bene grazie. Nel frattempo sono riuscito a raggruppare le sottoproprietà di una singola reference (mantenendo anche l'ordine), diff. L'esempio sempre qui. Non è proprio come usare un cita web ma è già quasi utilizzabile. --Rotpunkt (msg) 13:21, 10 nov 2014 (CET)Rispondi
Secondo me dovremmo farci aiutare da qualche esperto di wikidata per far "capire" al modulo quando ci sono i presupposti per utilizzare il template {{Cita testo}}. Per esempio il modulo potrebbe controllare se è compilata la proprietà d:Property:P357 (chiamata "titolo") e in caso affermativo utilizzare il template {{Cita testo}}.--dega180 (msg) 13:57, 10 nov 2014 (CET)Rispondi
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 --ValterVB (msg) 22:45, 10 nov 2014 (CET)Rispondi

C'è modo di recuperare il sitelink dell'Item? --ValterVB (msg) 18:21, 10 gen 2015 (CET)Rispondi

[@ ValterVB] Sì, l'entity ha una table "sitelinks" con queste informazioni. Servono? --Rotpunkt (msg) 22:09, 11 gen 2015 (CET)Rispondi
[@ 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 {{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? --ValterVB (msg) 20:32, 12 gen 2015 (CET)Rispondi
Per quello c'è la funzione mw.wikibase.sitelink, no? --Rotpunkt (msg) 21:18, 12 gen 2015 (CET)Rispondi
[@ Rotpunkt] Non conosco molto le funzioni sviluppate per Wikidata, però ho trovato il manuale, e in effetti sembra proprio quella, quindi come non detto. --ValterVB (msg) 21:34, 12 gen 2015 (CET)Rispondi

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. --Rotpunkt (msg) 22:57, 26 feb 2015 (CET)Rispondi

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. --Federico Leva (BEIC) (msg) 09:29, 19 mar 2015 (CET)Rispondi

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". --Rotpunkt (msg) 10:38, 19 mar 2015 (CET)Rispondi
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. --Federico Leva (BEIC) (msg) 11:00, 19 mar 2015 (CET)Rispondi
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? --Rotpunkt (msg) 12:04, 19 mar 2015 (CET)Rispondi
Sí, è quella la domanda. --Federico Leva (BEIC) (msg) 12:11, 19 mar 2015 (CET)Rispondi
Si potrebbe fare con una ricerca, esempio se scrivi: {{#ifeq:{{str find|{{#property:P31}}|stato insulare}}|-1|non è uno stato insulare|è uno stato insulare}} 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 {{Wikidata}}. --Rotpunkt (msg) 12:46, 19 mar 2015 (CET)Rispondi
Posso aggiungere a {{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: {{#ifeq:{{Wikidata|P31|indexof=stato insulare}}|-1|non è uno stato insulare|è uno stato insulare}}. --Rotpunkt (msg) 14:12, 19 mar 2015 (CET)Rispondi

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.

	--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.

Grazie. --FRacco (msg) 19:17, 20 mar 2015 (CET)Rispondi

  Fatto --Rotpunkt (msg) 20:42, 20 mar 2015 (CET)Rispondi
Ottimo (e velocissimo!!!) --FRacco (msg) 11:51, 21 mar 2015 (CET)Rispondi

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. --FRacco (msg) 19:00, 21 mar 2015 (CET)Rispondi

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--Moroboshi scrivimi 21:51, 19 apr 2015 (CEST)Rispondi

[@ 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) {{#invoke:Sandbox/Rotpunkt/Test|main}} 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. --Rotpunkt (msg) 22:53, 19 apr 2015 (CEST)Rispondi
Ottimo! grazie.--Moroboshi scrivimi 23:58, 19 apr 2015 (CEST)Rispondi

[@ Rotpunkt] Ho modificato ulteriormente il modulo su :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 rawTable alla funzione _getProperty(), se questo è true il modulo restituisce la tabella formattedStatements senza unirla in una stringa. Diventa quindi banale prendere solo il primo e l'ultimo dei valori. Dato che rawTable non viene passato all'interno della tabella args 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.--Moroboshi scrivimi 07:40, 21 apr 2015 (CEST)Rispondi
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. --Rotpunkt (msg) 19:01, 21 apr 2015 (CEST)Rispondi

Parametro from per l'accesso arbitrario

Ho aggiunto al modulo il parametro "from" per poter utilizzare l'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. --Rotpunkt (msg) 17:51, 1 giu 2015 (CEST)Rispondi

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 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 [@ ValterVB] se gli interessasse. --Rotpunkt (msg) 16:34, 3 giu 2015 (CEST)Rispondi
Visto e testato. --ValterVB (msg) 22:06, 3 giu 2015 (CEST)Rispondi
[@ 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 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 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. --Rotpunkt (msg) 00:03, 4 giu 2015 (CEST)Rispondi

Aggiunta noqualifier

Ciao a tutti. Sono piuttosto nuovo di moduli, perciò non sbranatemi! Vorrei chiedervi se è possibile aggiungere queste poche righe di codice:

-- 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

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. --Adert (msg) 12:36, 28 mag 2016 (CEST)Rispondi

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. --Rotpunkt (msg) 12:45, 28 mag 2016 (CEST)Rispondi
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). --Adert (msg) 12:54, 28 mag 2016 (CEST)Rispondi
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. --Rotpunkt (msg) 13:02, 28 mag 2016 (CEST)Rispondi
  Fatto scusa. --Adert (msg) 13:11, 28 mag 2016 (CEST)Rispondi
Ok aggiungo questo parametro noqualifier. Solo una cosa, questa proprietà "parte coinvolta" è già usata negli elementi Wikidata che riguardano questi voli? --Rotpunkt (msg) 13:33, 28 mag 2016 (CEST)Rispondi
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 --Adert (msg) 13:37, 28 mag 2016 (CEST)Rispondi
  Fatto --Rotpunkt (msg) 13:53, 28 mag 2016 (CEST)Rispondi

[ Rientro] Sempre pensando al template {{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)... --Adert (msg) 14:03, 2 giu 2016 (CEST)Rispondi

Ritorna alla pagina "Wikidata".