linux day 2014: open data in umbria - dai dataset alle app

41
Questo lavoro è pubblicato sotto licenza Creative 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 Donato Tommaso Vicarelli Università degli Studi di Perugia Presentazione per Linux Day Perugia 25/10/2014

Upload: agenda-digitale-umbria

Post on 29-Jun-2015

386 views

Category:

Government & Nonprofit


1 download

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

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

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

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

• 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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

#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

#AdUmbria www.agendadigitale.regione.umbria.it 25

THE WINNER IS:

Machines

Page 26: Linux Day 2014: open data in Umbria - dai dataset alle app

#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

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

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

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

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

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

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

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

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

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

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

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

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

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

Si possono richiedere a

[email protected]

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

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