LinkedOpenData.it: una piattaforma italiana per i dati “aperti” e “collegati”

Questo articolo è stato scritto da Christian Morbidoni, Michele Barbera e Federico Ruberti di linkedopendata.it.

Negli ambienti di ricerca da parecchi anni si studia il Semantic Web, un’evoluzione del Web attuale che dovrebbe permettere di creare con maggiore facilità applicazioni che utilizzano e integrano dati provenienti da fonti eterogenee. Soltanto recentemente, però, il Semantic Web è balzato all’attenzione dell’opinione pubblica, soprattutto grazie a due elementi: il movimento Open Data e l’iniziativa Linked Data.

L’iniziativa Linked Data, sostenuta dall’inventore del World Wide Web, Tim Berners-Lee, ha l’obiettivo di incoraggiare la pubblicazione sul Web non soltanto di documenti, come è avvenuto fino ad oggi, ma anche dei cosiddetti “raw data” o “dati grezzi”. Il paradigma Linked Data definisce delle regole per la pubblicazione dei dati sul Web in modo che essi possano essere facilmente individuati, incrociati e manipolati dalle macchine. Si tratta di un passo essenziale verso la realizzazione del Semantic Web, la visione cioè del Web come un unico grande database globale e distribuito, interrogabile dalle macchine indipendentemente dalla provenienza dei dati.

Linked Data mira quindi ad abbattere la barriera tecnologica che impedisce la libera condivisione dei dati.

Il movimento Open Data ha invece l’obiettivo di abbattere le barriere sociali, culturali, legali ed economiche che ostacolano la libera condivisione dei dati. Open Data è la punta di un iceberg che ha alla base anni di battaglie e iniziative: dal movimento Open Source e del Software Libero, fino all’Open Access che mira alla “liberazione” del sapere in ambito scientifico e culturale.

Uno a fianco all’altro, Open Data e Linked Data, sono il presupposto per un Web ancora più aperto, libero e condiviso di quello che abbiamo conosciuto fino a oggi.

E in Italia?

In Italia il movimento Open Data è relativamente giovane, ma rappresenta una realtà vitale e attiva. Uno dei fattori trainanti è senza dubbio rappresentato dal tema della trasparenza amministrativa, ma va affermandosi sempre più l’attenzione per gli aspetti economici, sociali e culturali legati al mondo degli Open Data.

Allo stato attuale la priorità è senza dubbio quella di “liberare” i dati prodotti da Pubbliche Amministrazioni, privati e aziende, indipendentemente dal formato con il quale sono rappresentati. Tuttavia, è importante anche iniziare a porsi il problema di come trasformare questo “magma” di dati pubblici in una vera e propria rete interconnessa di informazioni. La soluzione più promettente (e largamente accettata dalla comunità internazionale), è, appunto, Linked Data.

Su quest’ultimo aspetto l’Italia accusa un ritardo rispetto ad altri paesi, e proprio per questa ragione è indispensabile “bruciare le tappe” e muoversi velocemente dalla semplice pubblicazione dei “dati grezzi”, cioè dall’Open Data, alla loro integrazione nel “Web of Data” globale, renderli cioè dei Linked Open Data.

Con questa idea in testa, abbiamo recentemente lanciato il portale LinkedOpenData.it.

Perchè LinkedData

Gli addetti ai lavori possono risparmiarsi questo paragrafo 🙂

LinkedData vuol dire rappresentazione standard dei dati (Resource Description Framework come modello di dati) e meccanismi condivisi per l’accesso e l’interrogazione dei dati. I dataset pubblici diventano così dei veri e propri database online a cui una qualsiasi applicazione può collegarsi e fare query attraverso linguaggi e protocolli noti. Ma l’idea è ancora più ambiziosa: creare un unico grande database distribuito. Uno spazio di dati collegati tra loro all’interno del quale utenti e applicazioni software possano muoversi agilmente, saltando da un dataset all’altro, scoprendo nuove informazioni e (nel caso di dati open) collezionandole e ripubblicandole liberamente.

Quali sono quindi i vantaggi più evidenti?

  • Chi crea un dataset può collegarlo direttamente a dataset esistenti, riducendo la duplicazione dei dati e basandosi su dati di cui non dispone direttamente;
  • Chi crea un mashup invece di importare i dati può linkarli. Meno lavoro quindi, ma soprattutto dati sempre freschi e aggiornati;
  • Usando vocabolari comuni, è più facile rendere i dataset omogenei e compatibili tra loro;

Per non annoiarvi con una digressione tecnica 🙂 … vi rimando ad un breve articolo che ha la presunzione di spiegare ad un maggiore livello di dettaglio i concetti e le tecnologie, corredato da un illuminante video del padre del Web (Tim Berners Lee): http://www.linkedopendata.it/semantic-web/

LinkedOpenData.it in un guscio di noce

LinkedOpenData.it nasce dalla collaborazione tra un gruppo di “appassionati” di OpenData e due aziende pisane (Net7 e Hyperborea) che da tempo lavorano in settori come Digital Libraries, Web 2.0 e Semantic Web. Il portale nasce per portare un contributo alla comunità degli OpenData italiana in un ambito che ci sembrava ancora poco esplorato e valorizzato in Italia: la pubblicazione di dati in modalità LinkedData. Il nostro scopo è quello di creare un punto di aggregazione dove sia possibile raccogliere il maggior numero di dataset possibile, fornendo degli strumenti di base per interrogare i dati, ad uso e consumo di applicazioni esterne.

Da LinkedOpenCamera.it a LinkedOpenData.it

Una delle prime iniziative OpenData di cui siamo venuti a conoscenza, e che stimolava la nostra voglia di civil-hacking, è stato OpenCamera. Un portale dove alcuni attivisti del Partito Radicale hanno pubblicato, dopo una lunga battaglia, i dati delle previsioni di spesa della Camera dei Deputati del 2010.

L’idea, semplice e per noi entusiasmante, è stata quella di prendere questi dati, originariamente in formato CSV, strutturarli in RDF, utilizzando alcuni vocabolari esistenti, e arricchirli con alcuni dati relativi alle aziende fornitrici della Camera. Il risultato è stato un (piccolo) dataset facilmente navigabile, da cui è possibile ottenere interessanti “viste” su come vengono spesi i nostri soldi. Abbiamo fatto un po’ di pubblicità all’iniziativa e, sebbene fosse grezza ed embrionale, la comunità ha dimostrato un notevole interesse. Questo ci ha motivati e spinti ad allargare il progetto per creare appunto un contenitore di dataset, che raccolga dati di interesse comune spaziando in settori diversi, ma sempre rispettando i principi LinkedData.

Creazione di un dataset: il caso delle strutture ricettive del Piemonte

Uno dei primi dataset che abbiamo creato è basato su quello (in formato CSV) disponibile sul sito dati.piemonte.it. In questa breve parentesi proviamo a descrivere a grandi linee i passi con cui abbiamo trasformato la versione comma separated in LinkedData.

Refine

Per prima cosa occorreva uno strumento che permettesse di visualizzare i dati in maniera appropriata, di navigarli per rendersi conto della struttura e del contenuto e di compiere alcune trasformazioni di base (ad esempio uniformare le stringhe e fare operazioni di escaping e decoding). Per fare queste operazioni abbiamo scelto di usare Google Refine (http://code.google.com/p/google-refine/).

Google Refine consente di importare i dati in una serie di formati, tra cui CSV, di navigarli attraverso un paradigma intuitivo e di compiere trasformazioni, dalle più semplici alle più complesse, attraverso un vero e proprio linguaggio di programmazione.

Linking

Uno degli aspetti più interessanti dei LinkedData è la possibilità di collegare, attraverso link “semantici”, le entità interne al dataset con delle entità esterne. Nel caso delle strutture ricettive abbiamo pensato di collegare le località geografiche con le relative entità di Geonames, una grande banca dati di informazioni geografiche. Geonames rappresenta i metadati relativi alle località in formato RDF e fornisce informazioni interessanti come la popolosità, le coordinate geografiche, le regioni amministrative, etc.

Malgrado creare i link sia indubbiamente un processo un po’ laborioso, Google Refine fornisce tutto l’occorrente: permette di importare automaticamente dati in formato JSON provenienti da un API RESTful. Dopo aver popolato la tabella con i metadati provenienti da Geonames, abbiamo usato la funzionalità di parsing di Google Refine per estrarre quello che ci interessava: la URL della località definito da Geonames e le coordinate geografiche. Ovviamente il processo è soggetto ad errori (non sempre un search basato sul solo nome della località ritorna risultati corretti), tuttavia, dopo un processo di ripulitura, siamo riusciti a limitare al minimo la quantità di dati non corretti.

Vocabolari

Rappresentare i dati in RDF richiede di scegliere uno o più vocabolari (ontologie). Una buona pratica è quella di selezionare, quando possibile, ontologie esistenti e largamente utilizzate in altri dataset, in modo da rendere i propri dati comprensibili ad altri. In questo caso abbiamo scelto il vocabolario Vcard per rappresentare indirizzi e coordinate geografiche.

Un’altra ontologia molto diffusa che abbiamo usato è GoodRelations. E’ pensata per l’e-commerce e ci è sembrata una buona idea (dopo una breve discussione con il creatore stesso di goodrelations) uniformare i nostri dati, in modo da facilitarne l’eventuale utilizzo in applicazioni di e-booking.

Esportare i dati in RDF

In questo caso abbiamo utilizzato un plugin di Refine pensato per questo compito specifico e sviluppato da una nostra vecchia conoscenza al DERI, Ireland (grazie Richard!).

Oltre a consentire di utilizzare ontologie arbitrarie, questo plugin consente anche di assegnare degli identificatori (URL) per le entità descritte nel dataset. Una volta pubblicati i dati sul portale (non parleremo, per brevità, dei dettagli tecnici e dell’infrastruttura utilizzata) queste URL, risolte da un normale browser, forniscono una descrizione strutturata, in vari formati, delle risorse. Ecco un esempio: http://data.linkedopendata.it/page/grrp/resource/AFFITTACAMERE_0.

Menu: i nostri dataset

Attualmente stiamo lavorando per aggiungere dataset che reputiamo interessanti, sia “traducendo” basi di dati già esistenti in versione LinkedData, sia creandone di nuovi. Questi al momento i dataset disponibili:

LinkedOpenCamera Contratti e previsioni di spesa della Camera dei Deputati, anno 2010
GRRicettività Piemonte Strutture ricettive turistiche della regione Piemonte in formato GoodRelations
GRRicettività Toscana Strutture ricettive turistiche della regione Toscana in formato GoodRelations
Musei Italiani Lista dei musei italiani
CAP Italia Codici Avviamento Postale

Ogni dataset è fornito di uno SPARQL endpoint pubblico, completamente aperto. Gli sviluppatori, oltre a poter scaricare i dati in formato RDF/XML, possono consumarli “on the fly” interrogando lo SPARQL endpoint. Questo richiede ovviamente la conoscenza del linguaggio di query (si tratta di uno standard W3C, ma ad oggi non molti sviluppatori hanno familiarità con esso), oltre alla comprensione dello schema dei dati. Hackers e “smanettoni” sono abituati a confrontarsi con problemi ben più complicati 🙂 ma una API più immediata per consumare i dati è già in cantiere.

Esempi di query utili per capire come interrogare i dati sono forniti per ogni dataset. Ecco un esempio: http://www.linkedopendata.it/datasets/musei.

Sebbene in nostro scopo principale non sia quello di fare infografica, ma bensì di rendere disponibili i dati ad altri, stiamo lavorando su alcune applicazioni dimostrative, come questa http://www.linkedopendata.it:8080/loc_charts/. Si tratta di una serie di grafici costruiti a partire dai dati di spesa della camera, che mostrano le spese divise per settore, fornitore, etc.

Prossimi passi

L’iniziativa è solo all’inizio e ovviamente chiunque sia interessato a collaborare, suggerendo nuovi dataset, aiutandoci a crearli o sviluppando delle applicazioni usando i nostri dati, può contattarci qui info@linkedopendata.it.

Proprio in questi giorni stiamo costituendo l’associazione Linked Open Data Italia, che avrà lo scopo, in collaborazione con gli altri attori del movimento Open Data italiano (citiamo tra gli altri OKFN Italia, Open Polis, Open Street Map, Datagov.it, Spaghetti Open Data, dati.piemonte.it) di promuovere la cultura della libera condivisione dei dati nei sui aspetti sociali, legali, tecnologici ed economici, attraverso incontri, pubblicazioni, seminari, corsi di formazione, tesi di laurea e dottorato, azioni di sensibilizzazione della classe politica e della pubblica amministrazione.

Siamo convinti che raggiungere una massa critica di dati sul portale sia di fondamentale importanza per rendere l’iniziativa utile alla comunità: Il prossimo dataset che pubblicheremo sarà una lista geo-referenziata e categorizzata di scuole italiane.

Una delle funzionalità in cantiere è l’integrazione con CKAN che consentirà di caricare in automatico e tenere sincronizzati i dataset e le relative informazioni (link, licenze e quant’altro) nella piattaforma “standard de facto” per l’aggregazione e ricerca di dati open.

Per velocizzare il processo di creazione e caricamento dei dati siamo al momento impegnati nello sviluppo di una piattaforma software che automatizzi molte delle operazioni che in questa prima fase abbiamo fatto “manualmente”. La piattaforma consentirà anche di consumare i dati attraverso una semplice API REST. Come accenato prima, crediamo che avere come unico accesso uno SPARQL endpoint possa essere uno scoglio per molti. Non siamo i soli a pensarlo e questo progetto, al quale stiamo guardando con interesse, lo testimonia: http://code.google.com/p/linked-data-api/.

Attendiamo con entusiasmo commenti, critiche e suggerimenti. Venite a trovarci su linkedopendata.it sulla nostra pagina facebook http://www.facebook.com/linkedopendata o seguiteci su twitter http://twitter.com/#!/lod_it.