Cosa è la "qualità" di un dataset opendata? Dataset di qualità permettono uno sviluppo più veloce di strumenti di analisi dei dati e di riflesso migliori strumenti ablitano analisi più approfondite e maneggevoli che portano a risultati e osservazioni di maggior qualità.
I dataset devono essere "ben pubblicati"
Gli opendata di qualità sono facilmente trovabili in rete, sono indicizzati nei motori di ricerca, sono catalogati nei principali portali di diffusione di opendata, in altre parole si fanno trovare da chi li sta cercando. Sono corredati di una buona documentazione che spiega il significato dei campi, il loro tipo ed eventuali relazioni. Non importa che un dataset contenga dati molto importanti ed interessanti, se sono difficili da trovare, leggere, se non si capisce come sono strutturati ci saranno pochi sviluppatori interessati ad analizzarli e chi si cimenta troverà grandi difficoltà soprattutto nella fase iniziale, quella di condizionamento degli stessi.
Le stelle da 1 a 5 è un buon indicatore inerente alla qualità dei dataset, maggiori informazioni qui: http://5stardata.info/en/.
Il dataset non deve contenere errori
Se il dataset è stato zippato con password e questa non viene comuncata tale dataset è inusabile. Se il file è incompleto, corrotto o non si apre correttemente, quel dataset non è usabile dalla maggioranza degli utenti. Se mancano dei dati o se lo schema con cui sono organizzati non viene rispettato (per esempio un file .csv in cui vengono dimenticate delle virgole) l'analista perde un sacco di tempo per condizionare e trattare i dati. Attenzione ai caratteri usati per indicare i numeri decimali: se sono una "virgola" e voglio generare un file csv devo usare gli opportuni accorgimenti.
Le intestazioni e i dati devono essere conformi: per esempio se la terza colonna secondo la intestazione contiene una data, le righe del dataset nel terzo campo devono rappresentare una data.
I dati devono essere conformi ai metadati. Se i metadati definiscono un campo di tipo numerico con al massimo 4 cifre numeriche o 4 caratteri di stringa, il dataset per quel campo non può contenere numeri o stringhe con più di 4 numeri o caratteri. L'analista che non se ne accorge perde informazioni durante lo sviluppo.
Attenzione alla precisione dei dati. La precisione del dato è funzione dello scopo per cui viene prodotto. Ad esempio se si producono dati geo-riferiti, la precisione dei campi di tipo latitudine e longitudine deve dipendere dallo scopo per cui tale dataset viene prodotto: devo posizionare un parco giochi in una città oppure definire un limite amministrativo?
Rispettare gli standard o i formati più comuni
Ci sono dei dati che agli essere umani comunicano la medesima informazione anche se posti in formati differenti. Si pensi da esempio ad un numero di telefono, esso può essere scritto senza spazio tra prefisso e numero, con un punto e spazio come divisore, con una linea, etc. (esempio: 328 123123123; 328.123123123; 328123123123; 328-123123123 e così via). Per i computer ed i software la situazione è molto più complessa.
Quando possibile è bene usare lo standard o il modo di fornire l'informazione più diffuso, o meglio ancora fornire più varianti di una stessa informazione. Per esempio si pensi all'informazione relativa a una provincia, essa può essere fornita sottoforma di nome della provincia (esempio: Vicenza), di sigla (esempio: VI) o ancora attraverso il suo codice ISTAT con o senza "0" iniziale (esempio: 024).
Quando si producono o si trattano dati con copertura nazionale o internazionale ci possono essere dei problemi di codifica dei caratteri, si pensi per esempio agli accenti della lingua italiana o francese e ai caratteri particolari che altre lingue hanno. Come rappresento una vocale accentata? Per esempio la "a-accentata": a' oppure à, oppure con à (secondo codifica html)?
Evitare le ripetizioni se non necessarie
Quando le ripetizioni non sono esse stesse un dato (come per esempio un data-logger che misura nel tempo un dato che si mantiene costante) chi produce o analizza il dataset deve pulire le righe "ripetizioni". Il fatto che una riga identica sia una ripetizione o meno dipende anche dallo scopo dell'analisi.
Aggiornamenti: non distruggiamo la qualità del dataset
Quando dobbiamo aggiornare un dataset pensiamo bene agli sviluppatori. Già durante la progettazione della struttura del dataset è bene prevedere dei campi che permettano agli sviluppatori di adottare metodi e strategie adeguate per tenere aggiornati gli strumenti e le analisi in funzione degli aggiornamenti del dataset. Una chiave identificativa (un ID unico per ogni entità) unita a un campo "last modified data" è sempre ben vista!
Conosci altri parametri che definiscono la qualità di un dataset? Cosa ti fa dire "che buon dataset" o "che pessimo dataset"? Condividi le tue opinioni o scrivimi a fabio@fabiodisconzi.com grazie.