[it][en]

Daty: Wikidata per esseri umani

Schermata principale di Daty
UPDATE: La versione alfa è stata rilasciata!

Daty è un programma libero multipiattaforma progettato per la consultazione e la modifica dei contenuti di Wikidata.

Esso è scritto in Python ed espone controlli costruiti utilizzando le librerie GTK+ versione 3.0. Visivamente Daty risulta integrato nell'ambiente grafico GNOME, il più usato ambiente desktop sul sistema operativo GNU/Linux, e cerca di rispettare le sue human interface guidelines (HIGs).

Sebbene concepito nelle sue funzioni di base nel corso di quest'anno, Daty è un progetto nato e sviluppato per l'Ideathon dell'itWikiCon 2018; al momento il progetto è in fase avanzata di sviluppo.

Nell'ipotesi di conseguito ottenimento del grant mi impegno a rilasciare il programma completo delle funzionalità di seguito riportate in formati accessibili sulle principali piattaforme in tempi ragionevoli; cercherò inoltre di ottenere per esso lo status di progetto ufficiale GNOME.

Motivazione e funzionalità

Gli strumenti attualmente disponibili che si pongono gli stessi obiettivi di Daty presentano diverse importanti criticità che pregiudicano la maggioranza degli utilizzi non triviali di Wikidata. Nella pratica parlare al plurale è un eufemismo, dal momento che l'unico strumento che integri contemporaneamente funzioni di lettura e scrittura di base e non richieda l'uso di un linguaggio di programmazione è lo stesso wikidata.org.

Elenco nel seguito, ordinati per tema, gli aspetti problematici sui quali ho ritenuto opportuno (e fattibile nel rispetto dei vincoli) lavorare con Daty.

Resta inteso che i miglioramenti proposti potrebbero enormemente migliorare l'accessibiltà del progetto (da intendersi da parte di un più ampio pubblico, anche di wikipediani), oltre che incidere positivamente sulla soddisfazione e l'esperienza dei wikidatiani.

Performance

L'editor web javascript ha tempi di caricamento biblici su pc di fascia medio bassa e item di media/elevata lunghezza; allo stesso tempo tali macchine sono impossibilitate a tenere aperti contemporaneamente più di una ventina di elementi alla volta (la stima è per eccesso).

Daty carica i dati in locale e permette di maneggiare a parità di risorse quantità di dati in un altro ordine di grandezza: eventualmente i requisiti di memoria potrebbero essere resi costanti, permettendo in alcuni casi d'uso di modificare simultaneamente un numero molto elevato di elementi senza alterare significativamente le prestazioni del programma.

Organizzazione dello spazio

Alcune delle criticità dell'editor web sono molto evidenti e non è necessario esplorare granché il progetto per percepirle.

L'organizzazione spaziale delle label è ben lontana dall'ottimo.
L'organizzazione spaziale delle label è ben lontana dall'ottimo.

Lo screenshot sopra riportato, raffigurante l'editor predefinito aperto sull'item della Terra (Q2), mette a nudo le carenze nell'organizzazione spaziale: l'uso improprio dello spazio si traduce in una gerarchia degli elementi che e' talvolta poco chiara.
Daty risolve questo problema utilizzando intelligentemente lo spazio e seguendo attentamente le linee guida sul layout delle HIGs di GNOME:

Correct spacing with units (pixels).
Una corretta spaziatura dei controlli (in pixels).

Referenze

Nell'editor predefinito la resa grafica di una dichiarazione è indipendente dal suo contenuto ed è quindi uniforme nell'insieme; ciononostante qualsiasi wikipediano riconosce la sostanziale differenza tra un'affermazione referenziata e una priva di fonti.
Daty segnala visivamente l'assenza di riferimenti in una dichiarazione; di più, non permette l'inserimento di qualificatori su asserzioni non avvalorate da fonti terze. Il messaggio trasmesso dev'essere chiaro: no reference = bad reference.

Fidarsi è bene, non fidarsi è meglio.
Fidarsi è bene, non fidarsi è meglio.

In generale la funzione di inserimento di nuove referenze ha un ruolo centrale nella visualizzazione.

Aggiunta di ulteriori referenze.
Aggiunta di ulteriori referenze.

Ricerca in-item

Uno dei pattern che apprezzo maggiormente di GNOME è il "type to search" e pertanto mi premeva particolarmente implementarlo ovunque fosse opportuno; di conseguenza è possibile cominciare a scrivere per cominciare a cercare nella view correntemente in focus. Nel caso della view di consultazione e modifica il filtro di ricerca è applicato a tutto il contenuto.

filtrare valori e proprietà
Filtrare valori e proprietà.

Naturalmente la medesima funzione è resa disponibile anche nella sidebar per scorrere velocemente tra gli elementi correntemente aperti e facilitare l'operazione di selezione in modalità batch (vedi in basso).

filtrare gli elementi aperti
Filtrare gli elementi aperti.

Immissione dei dati

Il design dell'editor predefinito non ottimizza particolarmente né il processo di creazione di nuovi oggetti né quello di inserimento di nuovi statement, rendendoli macchinosi, ripetitivi e stressanti dopo ripetuti usi.

La quantità di step necessari a completare il task più elementare è inspiegabilmente alta (per rendersene conto si provi a contare il numero di click necessari a creare un nuovo item e inserire tre statement referenziati); se si considera inoltre l'assenza di funzioni per la modifica simultanea di elementi tra loro simili, si ha che il numero di informazioni inseribili da un utente in una data sessione è superiormente limitato dal numero di step reiterati che quest'ultimo è in grado di sopportare prima di abbandonare, constatando, spesso inconsapevolmente, l'inefficienza del processo di modifica nell'insieme.

Alla fine quanto descritto non sarebbe poi tanto diverso dall'imporre un limite di 140 caratteri al totale delle modifiche settimanali di ogni utente dell'Enciclopedia.

Daty prova a minimizzare il numero di step per la creazione di nuovi elementi:

Una riga di una listbox in focus può all'occorrenza diventare una barra di ricerca.
Una riga di una listbox in focus può all'occorrenza diventare una barra di ricerca (mockup incompleto, funzionalità mancante riportata nell'immagine successiva).
Creare un nuovo elemento direttamente in fase di apertura degli item.
Creare un nuovo elemento direttamente in fase di apertura degli item.

Personalmente ritengo che le funzioni necessarie alla modifica simultanea di più elementi meritino una sezione a parte.

Batch editing

La modifica simultanea di numerosi elementi è in realtà lo scopo principale per cui nasce Daty. Tale compito è così centrale all'interno del programma che la finestra di dialogo per l'apertura degli oggetti integra come funzionalità avanzata uno strumento grafico di selezione tramite vincoli solo per facilitare le modifiche di massa: insomma, è possibile interrogare l'endpoint SPARQL di Wikidata tramite interfaccia e aprire nell'editor i risultati di una qualsiasi query in un unico passo.

Aprire elementi selezionati tramite query SPARQL con Daty. Clicca per vederlo animato.
Aprire elementi selezionati tramite query SPARQL con Daty. Clicca per vederlo animato.

Quando multipli item sono stati aperti, accedendo alla modalità di selezione tramite l'omonimo pulsante, Daty passa automaticamente alla modalità di modifica batch.

Modalità di selezione.
Modalità di selezione.

Quest'ultima fa sì che il programma divida la view di modifica e lettura in due colonne: quella di sinistra contenente gli statement che sono specifici dell'item selezionato nella sidebar e in quella di destra gli statement comuni a tutti gli item correntemente in batch. Qualora uno statement sia comune a tutti gli elementi a meno di un qualificatore, quest'ultimo sarà segnalato visivamente nella view comune. In figura possiamo osservare un esempio con alcuni popolari cantanti italiani.

Modalità batch: visualizzazione su più colonne.
Modalità batch: visualizzazione su più colonne.

Prevedo naturalmente di implementare dei controlli drag and drop per questa modalità. I dettagli dell'implementazione non sono tuttavia ancora completamente definiti.

Modalità batch: drag and drop.
Modalità batch: drag and drop.

Infine, qualora l'applicazione dovesse essere ridimensionata in orizzontale al punto che la split view diventi inutilizzabile, la colonna non in focus sarà nascosta e diventerà disponibile uno stack switcher nella headerbar che permetterà di passare tra le due visualizzazioni.

Modalità batch: visualizzazione su colonna singola.
Modalità batch: visualizzazione su colonna singola.

Licenza

Il programma è rilasciato sotto licenza GNU Affero General Public License v3 o versioni successive.
Il rilascio del codice sorgente e lo sviluppo del programma avvengono sulla pagina GNOME del progetto.

Materiale accessorio

La presentazione mostrata all'Ideathon è disponibile a quest'indirizzo.

UPDATE: La versione alfa è stata rilasciata!

Pubblicato il 17 novembre 2018
Ultima modifica il 30 gennaio 2019
I contenuti di questo sito sono rilasciati sotto licenza CC-BY-NC-ND