linux day 2014: open data in umbria - dai dataset alle app
DESCRIPTION
Al Linux Day 2014, nell'evento organizzato a Magione (Pg) dall'Associazione Gnu/Lug Perugia, Tommaso Vicarelli e Cristiano Donato (Agenda digitale dell'Umbria) hanno parlato del portale http://dati.umbria.it/ - uso di software open source, lavorazione dei dati e sviluppo di app.TRANSCRIPT
![Page 1: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/1.jpg)
Questo lavoro è pubblicato sotto licenzaCreative Commons “Attribuzione 3.0 Italia” (CC BY).Per visualizzare una copia della licenza visitare il sito:http://creative commons.org/licenses/by/3.0/it/
#AdUmbria #regioni4digitale
presentazione per ForumPA
28/06/2014 v1.0
Open data in Umbria dai dataset alle app
Cristiano DonatoTommaso VicarelliUniversità degli Studi di Perugia
Presentazione per Linux DayPerugia 25/10/2014
![Page 2: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/2.jpg)
Sommario
2#AdUmbria www.agendadigitale.regione.umbria.it
1. Gli Open data2. Il percorso compiuto da AdUmbria3. Sviluppi futuri4. CKAN5. Utilizzo programmatico dei dati6. InUmbria Android APP7. Download automatico: CKAN API8. Parser JSON e CSV9. Conclusioni
![Page 3: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/3.jpg)
Gli Open Data
Dato: (dal latino datum che significa letteralmente fatto) è una descrizione elementare, spesso codificata, di una cosa, di una transazione, di un avvenimento o di altro. [Wikipedia]
3#AdUmbria www.agendadigitale.regione.umbria.it
Elaborare i dati porta a conoscere informazioni
www.svegliamuseo.com
![Page 4: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/4.jpg)
• Sono disponibili per l’utilizzo (preferibilmente tramite internet)
• Sono Machine readable• Sono riutilizzabili e redistribuibili da tutti
(partecipazione universale e interoperabilità)
4#AdUmbria www.agendadigitale.regione.umbria.it
Gli Open Data
Dati caratterizzati da alcune proprietà
www.michelecamp.it
![Page 5: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/5.jpg)
5#AdUmbria www.agendadigitale.regione.umbria.it
Gli Open Data
Classificazione di Tim Berners-Lee:
( ) Una Stella: livello base, ★ dati statici e non strutturati( ) Due Stelle. Questo livello indica ★★ dati strutturati e codificati in un formato proprietario ( ) Tre Stelle. Questo livello indica ★★★ dati strutturati e codificati in un formato aperto.( ) Quattro Stelle. Questo livello indica ★★★★ dati strutturati in un formato aperto e dotati di un URI che li rende indirizzabili sulla rete.( ) Cinque Stelle. Questo livello indica quelli ★★★★★che vengono definiti come Linked Open Data (LOD).
http://michellethorne.cc
![Page 6: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/6.jpg)
Case study 1 - Open Bilanci
6#AdUmbria www.agendadigitale.regione.umbria.it
Gli Open Data
http://www.openbilanci.it/
![Page 7: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/7.jpg)
7#AdUmbria www.agendadigitale.regione.umbria.it
Gli Open DataCase study 2 - Open Streetmap
http://www.openstreetmap.org/relation/42310#map=12/43.1353/12.1928
![Page 8: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/8.jpg)
8#AdUmbria www.agendadigitale.regione.umbria.it
Gli Open DataCase study 3 - RAW
http://app.raw.densitydesign.org/#%2F
![Page 9: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/9.jpg)
9#AdUmbria www.agendadigitale.regione.umbria.it
Il percorso compiuto da AdUmbria
Data Hunting
Individuazione settori d'interesse Colloqui con dirigenti dei settori Ricerca possibili dati da estrarre Analisi della tecnologia alla base
delle “banche dati”
![Page 10: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/10.jpg)
10#AdUmbria www.agendadigitale.regione.umbria.it
Il percorso compiuto da AdUmbria
Il catalogo dei dataset
Compilazione scheda informativa da parte dei referenti tecnici
Inserimento schede informative nella catena di lavorazione o “Dataset Pipeline”
Creazione di un catalogo dei metadati
http://icongal.com
![Page 11: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/11.jpg)
11#AdUmbria www.agendadigitale.regione.umbria.it
Il percorso compiuto da AdUmbria
Data scraping
Dati tabulari disponibili in formato PDF (“una stella”) Disponibilità di tool per l'estrazione e la conversione in
formato “machine readable” di dati statici. Tabula: la soluzione open source
tabula.nerdpower.org/
![Page 12: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/12.jpg)
12#AdUmbria www.agendadigitale.regione.umbria.it
Il percorso compiuto da AdUmbriaValidazione – Data cleansing
Passo antecedente la pubblicazione Alcuni dati possono essere “sporchi” Necessari tool di data cleansing Strumento open source: Refine
https://code.google.com/p/google-refine/
![Page 13: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/13.jpg)
• Agricoltura• Amministrazione• Attività produttive• Cultura• Istruzione• Lavoro• Opere pubbliche• Territorio• Turismo
#AdUmbria www.agendadigitale.regione.umbria.it 13
Quali dati ci sono oggi su dati.umbria.it?
![Page 14: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/14.jpg)
14#AdUmbria www.agendadigitale.regione.umbria.it
Sviluppi futuri
Extract Transform Load
Tecniche per il recupero e l’aggregazione di dati provenienti da sorgenti diverse Utilizzata per la creazione di Datawarehouse Interazione tra banche dati diverse
DB1
DB3
DB2 DW
Extract
Load
![Page 15: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/15.jpg)
15#AdUmbria www.agendadigitale.regione.umbria.it
Sviluppi futuriLinked Open Data
Collegare l’informazione la
rende più completa e aumenta il suo valore
Ogni «oggetto» viene identificato in rete tramite un URI ed è sempre disponibile
Più oggetti possono essere collegati tra loro, per migliorare la ricerca di informazioni.
"Ursa Major constellation detail map" di http://en.wikipedia.org/wiki/User:B00P & me (SAE1962 10:04, 2 April 2008 (UTC)) - English Wikipedia, but modified it.. Con licenza Creative Commons Attribution-Share Alike 3.0 tramite Wikimedia Commons
![Page 16: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/16.jpg)
16#AdUmbria www.agendadigitale.regione.umbria.it
Sviluppi futuri
Linked Open Data
"LOD Cloud Diagram as of September 2011" by Anja Jentzsch - Own work. Licensed under Creative Commons Attribution-Share Alike 3.0 via Wikimedia Commons-
![Page 17: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/17.jpg)
17#AdUmbria www.agendadigitale.regione.umbria.it
Sviluppi futuri
Monitoraggio
Necessario per il miglioramento continuo (modello PDCA) Creazione community e divulgazione culturale
Main goals
Main tools
Monitoraggio portale con Google Analytics
Monitoraggio richieste (Gestione della domanda)
![Page 18: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/18.jpg)
18#AdUmbria www.agendadigitale.regione.umbria.it
The Comprehensive Knowledge Archive Network
Hub open source per la raccolta e la gestione della conoscenza
Permette di immagazzinare e distribuire dati in vari formati
Gestisce anche la presentazione dei dati
http://ckan.org/
![Page 19: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/19.jpg)
19#AdUmbria www.agendadigitale.regione.umbria.it
Principali features (1/2)
• Presentazione dei dati:• Grafici• Mappe
• Anteprima di vari tipi di file• CSV• JSON• PDF• …
http://ckan.org/
![Page 20: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/20.jpg)
20#AdUmbria www.agendadigitale.regione.umbria.it
Principali features (2/2)
• Possibilità di «agganciare» Google Analytics• Disponibile anche strumento interno alla piattaforma
• «Social buttons» di ADU• Feed RSS da blog #Umbriadigitale
http://ckan.org/
![Page 21: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/21.jpg)
21#AdUmbria www.agendadigitale.regione.umbria.it
Pubblicazione
Ogni dataset contiene:
• Risorse• Metadati
Le info racchiuse nel contenitore sono accessibile anche tramite chiamata alle API
http://ckan.org/
dati.umbria.it
![Page 22: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/22.jpg)
22#AdUmbria www.agendadigitale.regione.umbria.it
API
CKAN mette a disposizione un set di API che consentono (ad esempio):
•Il recupero di tutte le info associate al dataset come:• Metadati• URL per download
•L’inserimento dei dati nel catalogo
http://ckan.org/
ckan.org
![Page 23: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/23.jpg)
L’accesso ai dati
• Gli open data sono machine readable– Sono in un formato standard– Sono in un formato open– Possono essere letti e interpretati da una macchina- Possono essere letti e interpretati da un essere umano
23#AdUmbria www.agendadigitale.regione.umbria.it
![Page 24: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/24.jpg)
#AdUmbria www.agendadigitale.regione.umbria.it 24
•Piccole quantità di dati•Elaborazione preimpostate•Un dataset alla volta•Controllo di versione manuale (soggetta a errore umano)•Download manuale•Il limite è dato dalle funzionalità di CKAN
•Grandi quantità di dati•Qualunque tipo di elaborazione•Più dataset alla volta•Controllo di versione automatico
•Download automatico•Il limite è dato dalla fantasia e le capacità dello sviluppatore!
MAN vs MACHINE
![Page 25: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/25.jpg)
#AdUmbria www.agendadigitale.regione.umbria.it 25
THE WINNER IS:
Machines
![Page 26: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/26.jpg)
#AdUmbria www.agendadigitale.regione.umbria.it 26
THE WINNER IS:
Machines with a heart!
![Page 27: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/27.jpg)
InUmbria Android APPhttps://play.google.com/store/apps/details?id=it.pg.avolta.inumbria
• Ha avuto scopi didattici (stage ITIS A VOLTA)
#AdUmbria www.agendadigitale.regione.umbria.it 27
![Page 28: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/28.jpg)
InUmbria Android APPhttps://play.google.com/store/apps/details?id=it.pg.avolta.inumbria
• Ha avuto scopi didattici (stage ITIS A VOLTA)
• E’ il primo esempio di utilizzo degli opendata della Regione Umbria
#AdUmbria www.agendadigitale.regione.umbria.it 28
![Page 29: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/29.jpg)
InUmbria Android APPhttps://play.google.com/store/apps/details?id=it.pg.avolta.inumbria
• Ha avuto scopi didattici (stage ITIS A VOLTA)
• E’ il primo esempio di utilizzo degli opendata della Regione Umbria
• Valorizza il territorio (luoghi della cultura in Umbria)
#AdUmbria www.agendadigitale.regione.umbria.it 29
![Page 30: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/30.jpg)
InUmbria Android APP
• Download delle risorse da CKAN
• Parsing del dataset
• Visualizzazione su Android
#AdUmbria www.agendadigitale.regione.umbria.it 30
http://ckan.org/
http://opencsv.sourceforge.net/
http://json.org/
http://www.android.com/CC BY 3.0
![Page 31: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/31.jpg)
CKAN API
• CKAN offre delle API RESTful JSON– Chiamate e risposte http– Messaggi JSON
31#AdUmbria www.agendadigitale.regione.umbria.it
http://www.chemaxon.com/
![Page 32: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/32.jpg)
CKAN API
• Funzionalità delle API di CKAN:– Richiedere la lista di tutti i dataset, delle categorie o dei tag– Richiedere la rappresentazione di un elemento– Effettuare una ricerca– Richiedere la lista delle ultime attività sui dataset– Creare, aggiornare e eliminare dataset, risorse e altri elementi– Interrogare un dataset (ricerche e filtri)– Statistiche– CSV e JSON dump– Scrivere un dataset
32#AdUmbria www.agendadigitale.regione.umbria.it
http://ckan.org/
![Page 33: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/33.jpg)
CKAN API - esempio
33#AdUmbria www.agendadigitale.regione.umbria.it
http://ckan.org/http://dati.umbria.it/api/action/datastore_search?resource_id=ccdc8f3e-8b48-4072-adc4-2e686bfe90e3
![Page 34: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/34.jpg)
Effettuare una chiamata con Java
String urlToRead = "http://dati.umbria.it/api/action/datastore_search?resource_id=ccdc8f3e-8b48-4072-adc4-2e686bfe90e3";URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;String result = "";
while ((line = rd.readLine()) != null) {result += line;}
34#AdUmbria www.agendadigitale.regione.umbria.it
https://www.java.com
![Page 35: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/35.jpg)
Parsing del dataset csv (opencsv)
CSVReader reader = null;List<Luogo> listaLuogo = new ArrayList<Luogo>();try {
InputStream is = activity.getResources().openRawResource(R.raw.opendata_musei);
InputStreamReader isr = new InputStreamReader(is);reader = new CSVReader(isr, ';');String[] nextLine = reader.readNext();nextLine = reader.readNext();while (nextLine != null) {
Luogo l = new Luogo();l.setId(Integer.parseInt(nextLine[0]));l.setComune(nextLine[1]);//[…]
35#AdUmbria www.agendadigitale.regione.umbria.it
![Page 36: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/36.jpg)
Parsing del dataset csv (opencsv)
//[…]Luogo l = new Luogo();l.setId(Integer.parseInt(nextLine[0]));l.setComune(nextLine[1]);l.setProvincia(nextLine[2]);l.setNomeMuseo(nextLine[3]);l.setIndirizzo(nextLine[4]);l.setNumeroCivico(nextLine[5]);l.setCap(nextLine[6]);l.setX(Double.parseDouble(nextLine[7]));l.setY(Double.parseDouble(nextLine[8]));l.setProprieta(nextLine[9]);l.setSitoWeb(nextLine[10]);l.setEmail(nextLine[11]);
36#AdUmbria www.agendadigitale.regione.umbria.it
l.setNumeroTelefono(nextLine[12]);l.setNumeroFax(nextLine[13]);l.setTelefonoPrenotazione(nextLine[14]);l.setEmailPrenotazione(nextLine[15]);listaLuogo.add(l);nextLine = reader.readNext();}//end whilereturn listaLuogo;} finally {if (reader != null)reader.close();}
![Page 37: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/37.jpg)
Parsing del dataset (json)
String in;JSONObject reader = new JSONObject(dataset);JSONArray records = reader.getJSONObject("result").getJSONArray("records");
List<Luogo> listaLuogo = new ArrayList<Luogo>();
for(int i=0; i < records.length(); i++) {Luogo l = new Luogo();JSONObject record = records.getJSONObject(i);l.setComune(record.getString(0));//[…]l.setTelefonoPrenotazione(record.getString(14));listaLuogo.add(l);
• } }
37#AdUmbria www.agendadigitale.regione.umbria.it
![Page 38: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/38.jpg)
38#AdUmbria www.agendadigitale.regione.umbria.it
InUmbria Android APPhttps://play.google.com/store/apps/details?id=it.pg.avolta.inumbria
![Page 39: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/39.jpg)
Conclusioni
• Il rilascio di opendata aiuta ad avere una PA trasparente (veramente) e focalizzata sul cittadino
• Le licenze open consentono qualsiasi elaborazione (anche a scopi commerciali)
• Le tecnologie open e gli standard permettono di accedere rapidamente ai dati e elaborarli secondo le necessità
#AdUmbria www.agendadigitale.regione.umbria.it 39
![Page 40: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/40.jpg)
Si possono richiedere a
o
su twitter @ADUmbria
#AdUmbria www.agendadigitale.regione.umbria.it 40
E se non ci sono i dati che mi interessano?
![Page 41: Linux Day 2014: open data in Umbria - dai dataset alle app](https://reader036.vdocuments.site/reader036/viewer/2022062320/5590e4991a28ab13388b4717/html5/thumbnails/41.jpg)
Riferimenti Dott.Cristiano Donato
Email: [email protected]
Twitter: @dcristiano88
ing. Tommaso VicarelliEmail: [email protected]
Twitter: @VicarelliT
Linkedin: it.linkedin.com/pub/tommaso-vicarelli/
www.agendadigitale.regione.umbria.it
41#AdUmbria www.agendadigitale.regione.umbria.it