data.world, uno YouTube per i dati

data.world è oggi (per me) la migliore piattaforma dove pubblicare dati (almeno tra quelle pubbliche) e trovo strano non avere visto ancora in Italia blog post che ne parlino.

A seguire alcune delle sue caratteristiche.

Cosa mi piace

Lo può usare anche mia mamma

Il login si fa in un attimo (con un account esistente github, twitter o google) oppure previa registrazione.

Una volta fatto il login, la creazione di un dataset si fa in pochi click, avendo sempre a schermo delle note che guidano nel processo e con il supporto di un comodo e funzionale drag & drop per l’upload dei file.

Durante la fase di creazione del dataset e dell’upload delle risorse, c’è inoltre un continuo invito a metadatare il tutto, ad associare informazioni a ciò che si sta pubblicando.

Aggiunta di risorse via URL

È possibile inserire risorse in un dataset, non solo via upload, ma anche attraverso un URL pubblico.

In questo modo sarà possibile ad esempio aggiungere dati da siti web, portali di dati, da applicazioni di cloud storage (dropbox, google drive, ecc.), GitHub, endpoint di API, ecc..

Tutte le volte che si vorrà allineare il dataset alla fonte, basterà fare click sul tasto Fetch latest.

API

data.world è utilizzabile anche tramite API, dando la possibilità agli sviluppatori di usarlo al meglio.

Tramite API è possibile:

  • creare dataset;
  • ricevere un dataset;
  • sostituire i dati di un dataset;
  • aggiungere file da sorgenti web;
  • cancellare file da un dataset;
  • fare il download del dataset;
  • fare il download del dataset in formato datapackage;
  • aggiungere uno o più file a un dataset;
  • fare query (SQL e SPARQL);

Per utilizzarle è necessario il proprio API_TOKEN che si ricava dalla pagina https://data.world/settings/advanced.

Con il proprio token un upload in bash si può fare così:

DW_API_TOKEN=ilTuoToken
curl "https://api.data.world/v0/uploads/nomeUtente/nomeDataset/files" \
-F file=@dati.csv -H "Authorization: Bearer ${DW_API_TOKEN}"

Integrazione con Python (pandas) e R

Python e R sono i tra i linguaggi più usati e comodi per elaborare, analizzare e visualizzare dati.

Per questa ragione sono presenti dei comandi per copiare degli snippet di codice (in Python e R), da usare per accedere ai dati su data.world.

Ad esempio:

import pandas as pd
df = pd.read_csv('https://query.data.world/s/h91qk29r40ffrfze2w2fq4be')

Licenze

A ogni dataset è possibile assegnare una licenza ed è possibile scegliere tra le più diffuse.

Narrare, discutere e rendere social

data.world è presentato come il social network per le persone che usano i dati: “the social network for data people.

Questo perché consente di condividere dati, entrare in connessione con altri utenti, discutere con loro e lavorare insieme sulla stessa fonte dati. Ad ogni dataset è possibile associare uno o più collaboratori, con permessi diversi. Inoltre è possibile lasciare commenti e creare discussioni, condividere sui social e fare click su “mi piace”.

E infine a ogni dataset è possibile associare un “testo ricco” con una descrizione/narrazione dello stesso, da scrivere in markdown.

Grafici

È disponibile anche un motore per creare grafici.

Il motore nativo non è molto ricco, ma è disponibile anche un web data connector verso Tableau.

Arricchimento automatico dei dati

I dati pubblicati nei formati sottostanti, vengono “arricchiti” in data.world:

  • tabelle: csv, tsv, xls, xlsx
  • Raw triples / RDF files: rdf, rdfs, owl, jsonld, nt, ttl, n3
  • file strutturati: json, ND-JSON.

Arricchiti nel senso che sarà possibile interrogarli via query, visualizzarli in anteprima e tramite grafici. 
Inoltre, ove possibile, viene definito in modo automatico il tipo di campo: ad esempio un campo di un file CSV che contiene date in formato YYYY-MM-DD verrà “mappato” automaticamente come campo date e quindi potrà essere interrogato usando le funzioni SQL legate alle date.

SQL e SPARQL

È disponibile un query editor con cui è possibile interrogare tutti i dataset pubblicati su data.world e metterli anche in correlazione tra loro.

Sia query SQL, che query SPARQL; questo è un altro punto che denota attenzione verso due modalità tipiche di interrogazione dei dati.

Le query si possono salvare e condividere con altri. Questa una query di esempio.

Metadati e datapackage

A ogni dataset è associato un data dictionary in cui è possibile inserire i metadati per i campi che costituiscono le risorse di cui è composto.

Questo il data dictionary del dataset OpenRegio (i dati pubblici più aggiornati sui beni confiscati alle mafie in Italia)

È possibile esportare i dataset in formato datapackage, un formato machine-readable creato da Open Knowledge International, per pubblicare in formato machine-readable raccolte di tabelle, basato su standard aperti, che include informazioni sui metadati e sullo schema e che può essere caricato senza problemi in ambienti analitici.

Questo ad esempio il datapackage di OpenRegio.

È affidabile?

Non ho elementi diversi da quelli che è possibile ricavare online.

Alla spalle di data.world c’è una “Public Benefit Corporation” con questo obiettivo:

…to (a) strive to build the most meaningful, collaborative and abundant data resource in the world in order to maximize data’s societal problem-solving utility, (b) advocate publicly for improving the adoption, usability, and proliferation of open data and linked data, and (c) serve as an accessible historical repository of the world’s data.

Sarà sempre gratuito, fatta eccezione per dataset privati o di grandi dimensioni (non è scritto da nessuna parte cosa si intenda per grandi, ma questi sono i limiti attuali).

Cosa non va

Direi quasi niente, ma non sono ancora un power user di data.world e mi potrebbero sfuggire molte cose.

Ad oggi una lacuna che mi sembra degna di nota è la mancanza dell’esposizione di un catalogo strutturato di metadati.

Immagino che sarà una feature che verrà implementata.

Conclusioni

Ogni volta che lo uso, penso che mi piacerebbe che i più importanti motori per la creazione di cataloghi di dati funzionassero come data.world
Anche se data.world non espone (vedi poco sopra) un catalogo strutturato di metadati, ha — in termini di feature, di usabilità, di pulizia, di attenzione a tutti i tipi di utente — delle caratteristiche che tutte insieme non trovo in nessun motore “classico”. Lo sottolineo perché penso possa essere utile prendere qualche spunto.
Lo dico da power user, senza alcuna intenzione di fare il saputello con gli sviluppatori che costruiscono questi ambienti.

Nel gruppo dataninja, alcune settimane fa, un giornalista ha fatto questa domanda: “se ho un dataset che voglio rendere disponibile, tipo che ho scritto un pezzo e voglio mettere un link al quale, dove lo metto? Github? Drive? E perché? Grazie in anticipo?”. 
Io non ho dubbi Riccardo: data.world per te oggi è il luogo migliore dove pubblicare i tuoi dati, perché saranno associati in modo chiaro a una licenza, metadatati, machine-readable, ben raccontati, usabili da uno sviluppatore, incrociabili con altri dati e ci potrai lavorare insieme ad altri per nuovi “pezzi”.

I dati pubblicati in Italia sono ancora pochi. Se pensiamo ai dati aperti della pubblica amministrazione — ai dati pubblici — e al numero di comuni che oggi pubblicano dati, la cosa salta subito all'occhio. 
Le ragioni sono tante e tra queste il fatto che per farlo ci vuole la definizione di processi, la conoscenza di dominio, il personale, il budget, un server e un motore di cataloghi, la volontà politica, ecc.. Nei piccoli comuni tutto questo è alle volte assente o non completo in tutte le parti. Lo stesso vale per piccole aziende, per le associazioni, per le comunità, per i civic hacker, per gli studenti, per i ricercatori, per i professionisti, ecc..
Nel titolo scrivo che data.world è “uno YouTube per i dati”, proprio perché può contribuire (come ha fatto YouTube per i video) a rendere la pubblicazione dei dati un fatto popolare e al contempo di qualità
Potrebbe essere un meccanismo virtuoso per creare nel tempo, in modo indiretto, più consapevolezza del valore che hanno i dati; una “merce” che oggi troppo spesso doniamo alle multinazionali (e non solo) con una sciatta inconsapevolezza.

P.S. Non lavoro per data.world e non uso i condizionali in modo retorico.