“Se non noi, chi?” – Comunità, competenze ed impegno civico

Dopo alcune settimane di gestazione, fatta di scambi, opinioni, formulazioni e riformulazioni, attraverso tutti gli strumenti dell’Internet, sincroni ed asincroni, testuali, visuali, comunque digitali, abbiamo serenamente partorito la proposta di Open Data Sicilia all’istituzione che più di altre, sul territorio regionale, è chiamata a disegnare percorsi, costruire binari, ripulire ed accendere i motori della nostra economia, oggi rappresentata dal Vicepresidente e assessore per l’economia della Regione Siciliana, Gaetano Armao.
Abbiamo alzato la mano e detto: “Noi ci siamo”.

Noi chi? Noi che, passo dopo passo, nel nostro piccolo, abbiamo mostrato sul campo conoscenze e competenze che spaziano dall’ambito informatico a quello ingegneristico, economico-statistico, giuridico-amministrativo, comunicativo, giornalistico e teorico-politico e di avere il vizio dell’impegno civico per la nostra terra. Noi, accomunati dalla convinzione che crescita e cittadinanza siano sempre più indissolubilmente complementari e che queste passino necessariamente per le tecniche ed i modelli maturati nell’ambito del digitale innovativo.

Per far cosa, precisamente, “Noi ci siamo”? Siamo partiti a metà marzo con il lancio nella nostra mailing list dell’idea di proporre un meccanismo giuridico che spiani la strada alla generazione di una grossa mole di dati aperti utili per tutti: un obbligo per le P.a.l. siciliane di richiedere, secondo termini e condizioni da definire, già in sede di redazione dei documenti di gara, il rilascio obbligatorio da parte dell’aggiudicatario dei dati emergenti nell’esecuzione della fornitura, in formato digitale aperto e con licenza d’uso senza limitazioni.
A questa si è presto aggiunta l’idea di proporre il supporto della comunità per un più ampio spettro di attività, anche in ambito Open government, in linea con il taglio e gli argomenti appena trattati in una conferenza organizzata durante i primi di maggio presso il municipio di Messina, da alcuni membri di ODS, in cui tra l’altro è emersa la volontà dell’assessore di dare impulso agli open data tra mite un DDL già abbozzato dai suoi uffici.
Infine, abbiamo allargato lo spettro degli argomenti sui quali incontrarsi, alla realizzazione di parte del Raduno ODS18 presso l’ARS, dove presentare ed in parte svolgere il progetto “Open ARS”, di cui certamente sentiremo parlare.

Ieri abbiamo inviato la nostra richiesta di incontro, oggi abbiamo già ricevuto la risposta: siamo convocati per lunedì 28 maggio, per discutere, in sintesi, sulle opportunità per diffondere la cultura e le pratiche dei modelli dell’open data e dell’open government in Sicilia.
E se è vero che chi ben comincia è a metà dell’opera, abbiamo di che essere soddisfatti 🙂

Stay tuned

I dati di soldipubblici.gov.it sul tuo portale open data

I portali open data hanno sempre bisogno di essere alimentati con dataset nuovi e soprattutto aggiornati.  Attivare quei meccanismi che consentono di generare file aperti e allo stesso aggiornati, nella Pubblica Amministrazione, è un processo che molte volte richiede tempo e soprattutto un cambio di mentalità; è un discorso questo, che si sente spesso nella PA.

La comunità di opendatasicilia mi ha spesso insegnato che, è mostrando la potenzialità dei dati aperti con il riuso, che quei meccanismi di interesse si possono sbloccare, attirando nuove idee e nuovi dati. Avere quindi dati aperti, aggiornati e attendibili, è cosa rara e complicata, ma quando ne puoi discutere un po’ in gruppo e alimentare le tue fantasie e le tue idee con uno script di poche righe ma efficientissimo, allora la vita sembra prendere una piega del tutto diversa!

Sotto la spinta delle mie esigenze lo script (creato da Andrea Borruso), originariamente nato per scaricare i dati di un singolo ente da soldipubblici.gov.it, ha consentito la pubblicazione di una dataset sul portale open data della Città Metropolitana di Napoli, in due formati (csv e json), con aggiornamento automatico settimanale.

Ma andiamo per gradi.
Il sito soldipubblici.gov.it consente  di consultare e scaricare  i dati della spesa pubblica  ricercando un ente.

È possibile fare il download del CSV, al click su un pulsante, ma nel mio caso avevo bisogno di automatizzare questo processo.

Lo script (accessibile qui) è scritto in bash, sfrutta le utility httpie, jq e csvkit e funziona in questo modo:

  • si imposta il codice dell’ente di interesse (i codici dei vari enti si trovano qui)
  • il dato viene scaricato in formato JSON, e le cifre spese espresse in origine come numero intero (è stata rimossa la parte decimale, moltiplicando per 100), vengono riportate a numero decimale;
  • il file così trasformato viene salvato in JSON e CSV.

Alla versione originale dello script volevo aggiungere la possibilità di rimuovere quei record in cui le colonne con i valori numerici sono non valorizzate (sono “null”). E allora mi è stato suggerito di usare csvgrep, che può filtrare le righe di una tabella a partire da un’espressione regolare ed è stata aggiunta la riga:

Lo script viene eseguito su un server del mio Ente, e l’output è accessibile dall’esterno pubblicamente in http.

Essendo i dati di “soldipubblici” aggiornati settimanalmente, nasceva infine l’esigenza di doverne automatizzare il download senza la necessità di un intervento umano. Così, sempre su indicazioni apprese nello scambio in mailing list, ho modificato il file /etc/crontab (che negli ambienti Linux consente di impostare delle operazioni da eseguire in modo pianificato) aggiungendo:

La stringa “0 4 */7 * *” corrisponde a “ogni 7 giorni alle 4 di mattina”.

Verificato che il tutto funzionasse correttamente e ottenuti i link statici dei file creati dallo script, ho provveduto a caricarli in un dataset sul portale ckan degli Open Data della Città Metropolitana di Napoli.

È nato così il primo caso d’uso specifico dello script SpesaCron, dove grazie all’estrazione di due file csv e json dai dati di soldipubblici.gov.it è stato possibile pubblicare un dataset contenente tutte le voci di spesa di una Pubblica Amministrazione, automaticamente alimentato dallo stesso sito e con frequenza di aggiornamento settimanale.

Come abbiamo creato un «Read the Docs» per pubblicare documenti pubblici su Docs Italia

Questa storia nasce dal Team Trasformazione Digitale dell’AgID che inizia a pubblicare documentazione della Pubblica Amministrazione su un formato online nuovo che si chiama Read the Docs.

Read the Docs (RTD) è un formato che permette di leggere testo su dispositivi mobili adattandosi alle dimensioni del display e consente di cercare parole nel testo attraverso uno spazio apposito. Già solo queste due caratteristiche lo fanno preferire al classico formato PDF usato per la maggiore nei siti web della PA. Purtroppo il PDF non si adatta ai dispositivi mobili e non consente un agevole ricerca di testo al suo interno.

Per arrivare alla pubblicazione di documenti su RTD è necessario compilare file nel linguaggio RST (reStructruredText) e renderli disponibili in progetti dentro il repository di Github.

Dopo che il Team Trasformazione Digitale inizia la pubblicazione di documenti della PA su RTD, alcuni dipendenti di PA cominciamo a pubblicare documenti pubblici su questo formato  e il risultato è senza dubbio molto gradevole e comodo ai fini della lettura su ogni dimensione di schermo.

Come ogni fenomeno nuovo c’è sempre l’aspetto e il ruolo pionieristico che è importante per fare da traino per gli altri. Ed è così che ci ritroviamo Ciro Spataro (Comune di Palermo) e Pablo Persico (Città Metropolitana di Napoli) a scambiarci idee e proposte per pubblicare documenti pubblici su Read the Docs, e fra un messaggio e un altro arriviamo alla conclusione condivisa che sarebbe utile e bello costruire un tutorial sulle modalità di costruzione di un documento da pubblicare Read the Docs: da dove partire e tutte le procedure da seguire. Cominciamo a lavorarci condividendo un Google doc all’inizio, e strutturiamo didatticamente il tutorial in 2 parti: una in cui si spiega una procedura per chi non è molto addentro alle procedure di compilazione e versionamento dei documenti e una per i più esperti. Questo al fine di arrivare ad ogni tipologia di dipendente pubblico in fatto di competenze digitali.

All’iniziativa prende parte Andrea Borruso per la supervisione dell’intero lavoro didattico, vista la sua attitudine e piacere a “spiegare bene” le cose.

Quello che ci ha preso maggiormente in questa iniziativa è stata la voglia di vedere i documenti della Pubblica Amministrazione visualizzati come mai ad oggi è stato fatto. Una sorta di vendetta contro un PDF scomodo 😉

Dal Read the Docs creato è possibile ottenere, automaticamente dalla stessa piattaforma, il documento in formato PDFEPUB ed HTML (zippato). Quindi per coloro che non possono rinunciare al PDF non c’è la possibilità di alcun trauma psicologico.

Il resto lo potete leggere nel Read the Docs http://come-creare-guida.readthedocs.io

 

Palermo Capitale italiana della Cultura 2018: rendere accessibili e riutilizzabili i dati sugli eventi

Sindaco di Palermo Leoluca Orlando
Assessore alle “Attività e Beni Culturali” del Comune di Palermo, Andrea Cusimano
Capo Area Cultura del Comune di Palermo, Sergio Forcieri
Assessora all’Innovazione del Comune di Palermo, Iolanda Riolo
Responsabile open data comunale Gabriele Marchese
Comunicazione Palermo capitale italiana della cultura 2018
Per conoscenza alla Presidenza del Consiglio Comunale

Egregi Signore e Signori,

Palermo è la Capitale italiana della Cultura 2018 e il 29 gennaio è stato il giorno della partenza, con l’evento del Teatro Massimo e il lancio del sito web ufficiale http://www.palermocapitalecultura.it/.

Si può fare cultura con la tecnologia e per questo vi chiediamo – persone, associazioni, aziende, ricercatori, liberi professionisti – di farlo proprio a partire dal sito web ufficiale.

Vi chiediamo di pubblicare in modalità “leggibili da una macchina” (machine readable) i dati sulle centinaia di eventi di “Palermo, Capitale italiana della Cultura 2018”.

In questo modo i principali motori di ricerca, le aziende di sviluppo software, chi usa i dati per promuovere il territorio e vendere servizi correlati (albergatori, aziende di noleggio auto, società di turismo, compagnie aeree, ecc.), potrà riutilizzare queste informazioni, e metterle a servizio di tutti in tutti gli spazi più comuni: in primis i principali motori di ricerca, i principali siti con mappe e ricerca di luoghi, i principali siti di prenotazione alberghi, B&B, affitto case, ecc., i principali siti che raccolgono e categorizzano eventi.

Se questi dati saranno pubblicati in modalità “machine readable”, tutto questo avverrà in modo automatico e probabilmente anche sorprendente e “Palermo, Capitale italiana della Cultura 2018” entrerà in modo spontaneo nelle tasche – negli smartphonedi tutti noi.

Il sito ufficiale è predisposto, perché espone già i dati sugli eventi tramite API (application programming interface), ovvero delle interfacce e delle procedure che rendono semplice e diretta la lettura dei dati su questi eventi da parte di un personal computer.

Un PC può infatti chiedere al sito dell’evento “mi dai per favore tutti i dettagli sugli eventi del 15 febbraio” in questo modo: http://www.palermocapitalecultura.it/api/eventi?data=2018-02-15

Vi chiediamo quindi di:

  • Aprire una nuova pagina dedicata all’accesso ai dati nel sito ufficiale;
  • documentare in questa le varie modalità di accesso in lettura, via API;
  • integrare, se possibile, ai dati già esposti anche le informazioni sui luoghi in cui si svolgono gli eventi (esporre quindi ad esempio le coordinate geografiche), dati che sembrano già essere disponibili sul sito;
  • associare ai dati esposti in queste modalità una licenza aperta che ne consenta il riuso e l’adattamento anche a scopo commerciale, con il solo obbligo di attribuzione della fonte (come ad esempio la CC BY 4.0).

Un’annotazione: le informazioni su un singolo evento sono fornite (sia sul sito, che via API) soltanto in italiano (in questo evento ad esempio la descrizione è in italiano e la tipologia è “cinema e spettacolo”). Sarebbe bene che fossero esposte anche (almeno) in lingua inglese.

Tutto questo potrà essere sfruttato anche dalle tante attività “locali” che erogano servizi territoriali basati su dati e informazione, e l’impatto di questa manifestazione sarà più forte e più orizzontale in termini culturali, di business, di tecnologia e di ricerca.

Il Comune di Palermo ha da anni investito “culturalmente” sui processi volti alla valorizzazione dei dati e in particolar modo dei dati aperti. Accettare la nostra richiesta confermerebbe l’impegno del Comune in questo ambito.

Certi di una vostra sensibilità, porgiamo cordiali saluti.

Firmatari

Associazione onData
Daniele Mondello, SunzeLab
Marcello Vetro, Olomedia
Marco Lombardo
Andrea Borruso
Davide Taibi, ricercatore CNR
Mario Grimaldi
Giovanni Pirrotta
Joska Arena
Nino Galante
Community OpenDataSicilia
Francesco Landini, Associazione Stand Up Sicilia
Lorenzo Perone
Giuseppe Pizzimenti
Fabio Maria Montagnino, Consorzio ARCA
Roberto Ragonese, PMO Coworking
Giuseppe La Mensa
Stefano La Barbera
Francesco Cimò, TalentPLAYERS
Eliana Messineo
FabLab Palermo APS
Giuseppe Ragusa
Giovan Battista Vitrano
Domenico Schillaci, PUSH
Maurizio Napolitano, OKFN Italy
Marco Alfano, Comitato Bene Collettivo
Francesca De Chiara, Fondazione Bruno Kessler
Leva Digitale APS
OpenPatti
Parliament Watch Italia
Jesse Marsh, Atelier Studio Associato
Ciro Spataro
Francesco Bianco, Arancia ICT
Isabel Matranga
Antonino Lo Bue, Sky UK
Francesco Passantino


Foto di © Marie-Lan Nguyen / Wikimedia Commons.

ODSWinter17


La comunità di Open Data Sicilia ha tenuto lo scorso 30 Dicembre il suo quarto raduno invernale a Patti, presso il Caffè Galante (qui una fotogallery).

Il raduno invernale di Open Data Sicilia è detto lo Schiticchio perché l’abitudine di vedersi in questo periodo dell’anno nacque dal desiderio degli appartenenti alla comunità di incontrarsi e di passare piacevolmente una giornata intorno ad una tavola imbandita (accadde per la prima volta a Resuttano, quindi a Pedara, poi a Castelbuono e stavolta a Patti). Da lì venne fuori poi l’idea, visto che ci si incontrava, di approfittare della circostanza per dedicare alcune ore della mattinata ad approfondimenti tematici, aggiornamenti e formazione prima di ritrovarsi seduti intorno ad un tavolo.

Anche il più articolato ed impegnativo raduno estivo che si svolge in più giorni, è frutto, in fondo, dello Schiticchio invernale e del desiderio di incidere significativamente sulla diffusione e l’uso degli open data nella nostra regione e nel nostro Paese (il primo si svolse a Palermo, il successivo a Messina e l’ultimo, l’estate scorsa, a Caltanissetta in forma congiunta con la comunità nazionale di Spaghetti Open Data).

Open Data Sicilia non è nuova a Patti; già nello scorso mese di Marzo aveva donato alla città l’applicazione Albo Pop Patti e presso il Caffè Galante, nel Luglio del 2015, aveva pure contribuito a realizzare il primo evento regionale sugli open data con l’apporto significativo di alcuni elementi della nostra comunità; la prima Summer School siciliana sugli open data, organizzata in quella circostanza da Lo Stretto Digitale, si tenne lì per tre giorni ed ebbe, come già detto, l’apporto significativo di alcuni dei nostri elementi tra gli organizzatori, i relatori e i formatori. E ancora prima, nell’Agosto 2013, fu proprio da una chiacchierata avvenuta a Patti tra due dei nostri che nacque l’idea di provare a dar vita ad un gruppo Facebook da cui poi prese vita la comunità di Open Data Sicilia.

I temi di quest’anno affrontati durante la mattinata hanno riguardato la disponibilità di strumenti digitali open per essere tempestivamente allertati dalla Protezione Civile in caso di incombenti pericoli, conoscere la reale disponibilità e puntualità dei trasporti pubblici urbani anche in realtà non necessariamente metropolitane, consentire ai cittadini di esercitare quel necessario e funzionale controllo dal basso sui nostri politici e sulle nostre amministrazioni per capire quanto e come, bene o male, sia stata in loro riposta la nostra fiducia o siano spese le nostre risorse.

In dettaglio, qui di seguito, gli argomenti trattati durante la mattinata

G. Pirrotta, A. Borruso – La “datificazione” degli alert della protezione civile regionale: un prototipo; slide | slide

G. La Mensa, G. Pirrotta, A. Borruso – Cosa è e come funziona SCATbot, il bot Telegram per avere informazioni in tempo reale sui bus di Caltanissetta; slide

G. Ragusa, G. Pirrotta – FOIAPop: il punto su uno strumento che sta diventando realmente popolare; slide

G. Pirrotta, D. Taibi – Un’ontologia dell’Assemblea Regionale Siciliana: il web semantico a supporto del civic hacking; slide

Open Data Sicilia: riflessioni e obiettivi per il 2018 (e oltre).


ODSWinter17

Palermo 3D Maps WRLD

Qualche giorno fa Ciro Spataro, che è sempre alla ricerca di notizie interessanti, mi consiglia di leggere un post su Medium. E’ un post del Team WRLD, Build a Dynamic Map of London.

Nel post si parla di una mappa dinamica 3D, più leggo e più la cosa mi intriga, grazie Ciro!

Voglio capirne di più!

Per prima cosa mi chiedo chi e cosa sia WRLD scoperto che:

è una piattaforma dinamica di mappatura 3D per edifici intelligenti, città, giochi, e esperienze virtuali, crea fornisce un ambiente 3D completamente testurizzato che utilizza un sistema di coordinate globali in modo reale, quindi è pronto per essere utilizzato immediatamente – non è necessario creare un ambiente 3D o importare dati aggiuntivi di GIS. Crea stili personalizzati e utilizza lo strumento Unity per selezionare i livelli di dati desiderati – strade, edifici, alberi, etichette, ecc, tutto questo per una varietà di sistemi operativi / dispositivi come iOS, Android, OSX, OculusVR e WebGL.

Proseguendo la ricerca trovo questo post Building Gorgeous 3D Maps with eegeo.js and Leaflet.

Leaflet è la principale libreria JavaScript open-source per mappe interattive mobile, e che utilizzo quasi sempre per realizzare le nostre mappe, ma cos’è eegeo.js?

eegeo.js  è libreria JavaScript open-source, per creare l’interfaccia di 3D web mapping;

Quindi con eegeo.js, Leaflet e OpenstrettMap possiamo realizzare mappe 3D open-source, Ottimo! non mi resta che provare.
Seguendo la guida del post Building Gorgeous 3D Maps with eegeo.js and Leaflet, costruire una mappa base è molto semplice.

Di cosa abbiamo bisogno?

Leaflet (documentazione, esempi)

eeGeo.js (documentazione, esempi)

free eeGeo API key, per ottenere le api key basta registrarsi gratuitamente al sito WRLD

Server o spazio web online dove caricare il file HTML, CSS e JavaScript (in locale la mappa non funziona).

A seguire il codice html per realizzare una semplice mappa 3d, basta sostituire le coordinate su cui centrare la mappa ed inserire  le proprie api key

Per migliorare la mappa si  possono inserire molte funzioni, descritte qui.

Per migliorare la mappa si  possono inserire molte funzioni che troviamo spiegate qui.
Ad esempio possiamo aggiungere una funzione per Spostare la fotocamera  (Moving the camera) o per  Regolazione della direzione e dell’inclinazione (Adjusting heading and tilt) possiamo aggiungere subito dopo “ zoom: 16   }); ” del codice precedente
questa nuova funzione;

Tutto molto semplice!

Volendo si può anche far cambiare il tempo meteorologico o cambiare l’ora del giorno.

Visto che parte del codice è basato sulla libreria  Leaflet, ho inserito qualche plugin di leaflet che normalmente uso per realizzare le mappe.

In questo caso ho inserito solamente:

Sidebar-v2, per creare una sidebar a scomparsa;

Leaflet-hash, per generare URL che contengono livello di zoom e posizione corrente;

Leaflet.MousePosition, è un semplice controllo della posizione del mouse. Esso mostra le coordinate geografiche del puntatore del mouse, mentre viene spostato sulla mappa;

Leaflet.zoomhome, che aggiunge un pulsante Home al controllo zoom per ripristinare la visualizzazione;

Ecco la nostra mappa con tema standard!

Palermo 3D Maps WRLDMappa fullscreen

Ecco i comandi per facilitare la navigazione della mappa

Usage Mouse

Left button + Move:    Pan

Middle button (Scroll whell)+ click: Orbit

Scroll whell: Zoom

Right button + Move: Rotate

Registrandosi al sito si ha possibilità di accedere al pannello Developer, da dove è possibile accedere a SDK e API per lo sviluppo di mappe 3D in una vasta gamma di piattaforme popolari.

Si può usare lo strumento Map Designer per creare mappe personalizzate, e scegliere un tema di base diverso da quello proposto di default.

strumento Map Designer Mappa con tema minimal Tema Minimal Mappa fullcrenn con tema minimal

Tema CardboardTema CardboardMappa fullcrenn con tema cardboard

Si può aggiungere un ulteriore menu di ricerca personalizzatoLe mappe realizzate con Map Designer  possono essere facilmente inserite nei propri sito/blog grazie alla possibilità di poter incorporare il codice.

Per personalizzare maggiormente le mappe non basta il semplice account free ma si deve attivare un account  a pagamento.

È una piattaforma davvero molto interessante e da approfondire, mi riprometto di fare ulteriori test, magari inserendo in mappa gli opendata sui dati del trasporto pubblico locale di Palermo.

Grazie Ciro per avermi consigliato la lettura del post.

Docker, CKAN e DCAT-AP_IT insieme appassionatamente

Il Team per l’Italia Digitale ha rilasciato su Github un container Docker per utilizzare CKAN con relativi plugin per DCAT-AP_IT https://github.com/italia/dati-ckan-docker.
Scrivo questo post per cercare di chiarire alcuni concetti di base e spiegare chiaramente il concetto di virtualizzazione, cosa sono i container docker, cosa è CKAN, cosa sono i metadati,i profili DCAT-AP e DCAT-AP_IT e l’harvesting.

LA VIRTUALIZZAZIONE

Negli ultimi 15 anni una tecnica molto utilizzata in informatica è stata quella della virtualizzazione, tecnica che permette di utilizzare su una macchina virtuale (VM) un sistema operativo diverso da quello installato sul computer.

Con il termine di virtualizzazione si intende la possibilità di astrarre componenti hardware di un elaboratore cosi da renderli disponibili al software in forma di risorsa virtuale.

E’ cosi possibile installare sistemi operativi su hardware virtuale; l’insieme delle componenti hardware virtuali (Hard Disk, Memoria, processore, scheda di rete) prende il nome di Macchina Virtuale o VM.

La virtualizzazione avviene attraverso dei software denominati Hypervisor; tra i piu famosi ed i piu semplici ci sono vmware (https://vmware.com) e virtualbox ( https://virtualbox.org ).

Per farla breve se sul vostro computer windows volete provare, un software di grafica come Blender che funziona solo su linux dovrete:

1) Installare sul vostro computer virtualbox

2) Creare una macchina virtuale assegnandogli le risorse (ram, hd, etc)

3) installare su questa macchina virtuale una distribuzione linux

4) installare su linux virtualizzato il software Blender

Finito! da questo momento in poi quando vorrete utilizzare blender potrete accendere una macchina virtuale con linux dentro il vostro computer windows.

DOCKER E I SUOI CONTAINER

Docker è un passo avanti rispetto al concetto di virtualizzazione, perchè permette di non virtualizzare l’intero sistema operativo ma di impacchettare solamente le librerie e il software che ci servono basandosi su containers.

Quindi mentre nella virtualizzazione classica sono virtualizzati programmi e kernel del sistema operativo (il kernel è il nucleo di un sistema operativo che fornisce ai processi in esecuzione accesso all’hardware) nella virtualizzazione per container sono virtualizzati solo software e librerie

Un container NON E’ UNA MACCHINA VIRTUALE ma un’applicazione isolata con le sue dipendenze eseguita in un namespace separato; nel kernel linux, un namespace è uno spazio isolato e virtualizzato delle risorse di sistema (network namespace, file system, users) per una collezione di processi. Essendo isolato i processi agiscono all’interno di un container e non agiscono all’esterno sul Sistema Operativo principale.

Il Docker engine permette ai container di avere tutto il substrato che serve per funzionare (lo stesso kernel); diversi sono i vantaggi rispetto alle vm classiche , i container sono più “leggeri” delle macchine virtuali, possono essere avviati in pochi secondi, richiedono poche risorse e sono isolati.

Di rilevante importanza è il registry di docker, una piattaforma in cloud dove è possibile caricare, scaricare e condividere le immagini dei vari container. Quella ufficiale è https://hub.docker.com/

Per farla breve: se volete utilizzare un container su mac basterà:

1. Installare sul vostro mac Docker (https://www.docker.com) ed avviarlo

2. Installare kitematic ( https://kitematic.com ) che fornisce un interfaccia grafica per navigare tra le centinaia di migliaia di immagini dell registry

3. Avviare kitematic e scegliere l’immagine dalla quale si vuole creare il container cliccando su “create”

Alla fine del download il container si avvierà automaticamente e saranno fornite le istruzioni per collegarsi al container per utilizzare l’applicazione.

A questo punto è doveroso un chiarimento tecnico. Docker sfrutta vecchie caratteristiche del kernel linux che permettono di far girare dei software in maniera separata e protetta, cosi se una applicazione si schianta non provoca problemi agli altri o se vogliamo possiamo assegnare alla stessa risorse limitate.

Nella versione 2.24.19 del kernel Linux vennero introdotti i namespaces che permettono di “etichettare” i processi cosi da differenziarli dagli altri, successivamente nella versione 2.6.24 vennero introdottti i Cgroups che permettono la gestione delle risorse legata ai processi cosi che un gruppo di processi non prenda maggiori risorse rispetto a quelle a lui assegnate, infine, nel 2013 fu introdotta Libcontainer scritta dal team di Docker che astrando namespaces e Cgroups permette di gestire la virtualizzazione a container.

LA PIATTAFORMA CKAN

CKAN (Comprehensive Knowledge Archive Network) è la piattaforma leader mondiale per i portali di Open Dataed è uno strumento che ne permette la gestione, la pubblicazione e la ricerca.

È sviluppato in Python, ha una licenza di tipo Open Source ed è promosso dalla Open Knowledge Foundation, una fondazione che promuove la diffusione delle idee, offrendo supporto e strumenti per la condivisione della conoscenza.

CKAN ( https://ckan.org )è usato da governi, organizzazioni e gruppi di utenti in tutto il mondo per gestire una vasta serie di portali di dati di enti ufficiali e di comunità, tra cui portali per governi locali, nazionali e internazionali.

La grande forza di CKAN sta nella sua semplicità; infatti il suo utilizzo è semplice sia per gli utilizzatori che per gli operatoiri che devono inserire i dataset grazie a workflow semplificato che per l’utente finale ch li deve ricercare. Molte sono le caratteristiche che rendono unico CKAN tra le principali, a mio parere, ci sono:

  • gestire, pubblicare, ricercare dataset e documenti in formato aperto;
  • visualizzare dati sia in tabelle che grafici e mappe;
  • storico delle operazioni svolte sui dataset per operatore;
  • possibilità di workflow minimo sui dataset;
  • API per gestire e interrogare dei dataset;
  • integrazione con portali in wordpress.
  • Utilizzo di Plugin di terze parti per aumentarne le potenzialità

Per farla breve: CKAN è un software Open Source scritto in Python che permette facilmente di mettere su un portale web per gestire e catalogare dataset gestendo ruoli profili etc. E’ possibile potenziarlo usando plugin.

METADATAZIONE DCAT-AP E DCAT-AP_IT

Cosa sono i metadati? Possiamo definirli come dati di 2°livello che servono descrivere e classificare altri dati o contenuti digitali.

L’obiettivo de metadati è descrivere l’informazione primaria, per organizzarla e semplificarla; in particolar modo i metadati sono importanti quando siamo dinanzi a repository di contenuti. Per semplificare possiamo associare l’’idea dei metadati all’utilizzo dei tag che ci permettono di “taggare” elementi, per identificarli.

DCAT-AP (Data Catalog Vocabulary — Application Profile ) è una specifica per i portali di dati europei basata sul vocabolario del catalogo dei dati del W3C (DCAT https://www.w3.org/TR/vocab-dcat/ ) per la descrizione dei dataset del settore della Pubblica Amministrzione in Europa tramite l’utilizzo di metadati. La specifica è stata rilasciata nel novembre 2015 e definita nell’ambito del programma ISA (Interoperability Solutions for European Public Administrations) della Commissione Europea

L’AGID (Agenzia per l’Italia digitale) ha prodotto il profilo italiano del DCAT-AP denominato DCAT-AP_IT il 26 aprile dopo consultazione pubblica.(http://www.dati.gov.it/sites/default/files/DCAT-AP_IT_v10.pdf).

Il 5 Aprile del 2017 è stata rilasciata la Release 1.0 delle “linee guida per i cataloghi dati” che presentano le linee guida per l’alimentazione e gestione di cataloghi dati secondo il profilo nazionale di metadatazione DCAT-AP_IT, così come raccomandato nelle linee guida per la valorizzazione del patrimonio informativo pubblico (anno 2016). Le linee guida forniscono indicazioni forniscono una descrizione degli elementi principali (e proprietà) del profilo di metadazione con le relative proprietà.

Particolarmente interessante è la tabella a pagina 6 e 7 che riporta l’elenco delle classi e proprietà definite nel profilo italiano con il relativo livello di obbligatorietà; in particolare, “M” indica che la classe è obbligatoria, “R” indica che è raccomandata e “O” indica che è opzionale.

Su CKAN si possono installare plugin per gestire DCAT-AP DCAT-AP_IT.

Per farla breve: se una Pubblica Amministrazione vuole rilasciare un dataset sul proprio portale deve seguire delle regole di metadazione secondo il profilo DCAT-AP_IT che a sua volta è una estenzione del DCAT-AP europeo per utilizzare i metadati corretti.

HARVESTING

L’Harvesting è una tecnica che permette di raccogliere le informazioni relative agli archivi pubblicati su singoli nodi tramite metadati e renderli disponibili all’utenza su portali “centrali”. Quindi se un piccolo comune produce un dataset e lo pubblica sul suo portale Open Data utilizzando i metadati del profilo DCAT-AP_IT automaticamente questo dataset sarà disponibilie su altri portali Nazionali ed Europei.
CKAN permette di effettuare l’harvesting su altri CKAN e a sua volta puo mettere a disposizione i propri dataset per l’harvesting di altri.

Per farla breve tramite la tecnica dell’ harvesting un dataset metadatato correttamente, presente su un portale CKAN, può essere automaticamente indicizzato e ricercabile su un altro portale o che all’interno di un nostro portale CKAN siano ricercabili dataset non inseriti da noi ma presenti su altri portali CKAN ed automaticamente diventati patrimonio del nostro portale.

CONCLUSIONI

Ora che il team digitale ha rilasciato un container ufficiale potrete facilmente:

  1. Installare docker (https://www.docker.com)
  2. Scaricare e installare il container del team digitale con CKAN e plugin per DCAT-AP_IT https://github.com/italia/dati-ckan-docker (ci sono tutte le informazioni per installarlo a riga di comando)
  3. Caricare un dataset e metadatarlo secondo le regole DCAT-AP_IT
  4. Fare Harvesting su altri portali o permetterlo ad altri di farlo sui vostri dataset.

RINGRAZIAMENTI

Per questo post devo ringraziare diverse perosone con il quale mi sono confrontato negli ultimi mesi: Marcello Vetro con il quale abbiamo studiato Docker ma che ormai movimenta piu container lui che l’ente portuale di Palermo; Fabio Catania che è impazzito per installare su un CKAN dockerizzato il DCAT-AP_IT prima che venisse rilasciato dal team digitale; Andrea Borruso, Davide Taibi e Ciro Spataro con il quale ho condiviso dubbi e incertezze affidandomi alla loro esperienza.

FoiaPop.it…e adesso…chiediamo(li) tutti

Succede tutto in 6 mesi, da inizio Gennaio 2017.
Ci eravamo appena lasciati, rinforzati nell’entusiasmo dal raduno estivo di Castelbuono.

Decidiamo (Giuseppe Ragusa e Giovanni Pirrotta) di darci presto un appuntamento “virtuale” perché avevamo l’impressione che su alcuni dati si potesse lavorare insieme per produrre qualcosa di utile, ma entrambi non avevamo in alcun modo un’idea precisa.

Avevamo solo, con modalità e con obiettivi diversi, approfondito gli stessi temi e cioè: l’Indice delle Pubbliche Amministrazioni (IPA), i dati sui contratti pubblici dell’Autorità Nazionale Anticorruzione (ANAC), il Sistema Informativo delle operazioni degli enti pubblici (SIOPE).

Partiamo:

  • Uno scambio di idee (confuse);
  • Non demordiamo perché qualcosa ci dice che siamo sulla strada giusta;
  • Dobbiamo dimenticarci di “noi” piccoli e diventare per un po’ un grande “NOI”. Dobbiamo cioè ripartire dai bisogni del cittadino. Sta lì la risposta che cerchiamo.

Abbiamo deciso di “ascoltare” il più possibile. Giorni di “ascolto” ci fanno comprendere che:

  • Il diritto di accesso civico, sia semplice che generalizzato (FOIA), è per molti cittadini uno sconosciuto;
  • Chi ne conosce l’esistenza ha difficoltà a porre domande fondate e non opponibili dalla PA. Ci sarebbe bisogno di “dati da cui partire”;
  • Gli “eventi/manifestazioni/azioni amministrative” più importanti e che destano maggiore interesse all’interno di una PA sono quelle su cui ruotano i flussi monetari e cioè i pagamenti, gli incassi, gli appalti, etc. E, guarda caso, ci sono già disponibili dei dati aperti.

Ora le idee sono molto più chiare. Ma non è che siamo davvero sulla strada giusta?

Si inizia a mettere nero su bianco e mettiamo gli “open data” a sistema. Gli open data, uno strumento chiave di volta per aprire uno scrigno impolverato e incompreso sotto gli occhi di tutti. Un approccio nuovo, diverso, creativo, in grado di far emergere un potenziale finora inesplorato, di conciliare semplicità e facilità di utilizzo, per essere alla portata di tutti e fruibile senza libretto di istruzioni.

Nasce FoiaPop.it, il portale degli accessi civici data-driven (cioè guidato dall’uso dei dati). Una guida passo-passo alla compilazione online degli accessi civici semplici e generalizzati a partire dai flussi monetari delle Pubbliche Amministrazioni, dai contratti pubblici e dagli obblighi di pubblicazione imposti dal D. Lgs 33/2013.

Gli open data che ci “guidano” sono attualmente:

Con FoiaPop non dovrai fare altro che selezionare una pubblica amministrazione, visualizzarne i pagamenti, gli incassi e/o gli appalti, esplorare il patrimonio informativo fornito dagli open data, generare il documento/richiesta di accesso civico per chiedere un dettaglio, un approfondimento, una spiegazione, o dei dati, quindi firmare e inviare la richiesta alla pubblica amministrazione, anche via email o via Posta Elettronica Certificata.

Il nostro augurio è che FoiaPop.it possa realmente contribuire a diffondere in modo capillare la conoscenza e l’esercizio del diritto di accesso civico ai dati, ai documenti e alle informazioni delle Pubbliche Amministrazioni.

Su coraggio. Si può fare! 
Chiediamo(li) tutti!

Opendatafest 2017 a Caltanissetta, il report di 3 giorni di lavori

 

 

 

 

 

 

Le comunità di Opendatasicilia e Spaghetti Open Data hanno dato vita a questo report sui lavori della 3 giorni di incontri dell’opendatafest a Caltanissetta (2-4 giugno 2017).

I materiali mostrati nelle giornate sono disponibili su http://opendatafest.it 

Abbiamo pubblicato le slide  delle presentazioni mostrate al raduno direttamente nel sito opendatafest.it, all’interno del programma: dopo i titoli degli interventi e delle sessioni c’è una voce “| SLIDE” che permette di visualizzare i materiali. 

In questo post elenchiamo alcuni dei momenti del raduno e delle presentazioni (fai riferimento al programma per un quadro completo).

Venerdì mattina

Dibattito di inizio dei lavori

Chi: Alberto Cottica, Matteo Brunati, Andrea Borruso, Cristiano Longo

Di cosa si è discusso, in ordine sparso:

  • Curarsi delle comunità costa, è necessario rendersene conto
  • Scelta di strumenti che permettano di dare un lascito, serve dare continuità alle comunità
  • Fase storica sugli Open Data: forse stiamo vivendo la fase adolescenziale, siamo stanchi
  • Serve collegarsi alle altre comunità del mondo Openness
  • Trovare modi per far convogliare i vari temi crosscomunità, pur mantenendo le varie identità, forse è utile una Woodstock dell’Openness, sta nascendo un evento a cui ci hanno chiesto un parere e un contributo, che intende provarci nel 2018
  • Comunità locali: necessitano di credibilità per incidere nel territorio, serve dare il buon esempio
  • Serve documentare tutto, necessari incontri fisici e online
  • Non siamo da soli, non dobbiamo chiuderci in noi stessi, serve aiutare il ricambio e allargare includendo
  • Per coinvolgere altri è necessario uscire dal linguaggio da iniziati
  • La tecnologia è funzionale, un mezzo, da soli si fa poco: necessario coltivare i rapporti umani per creare cose nuove
  • Quando un cittadino inizia a produrre valore, mette in discussione lo status quo
  • Bisogna decidere come partecipare alle azioni di governo, capire come relazionarsi all’EU, bisogna rompere le scatole in modo costruttivo, come comunità
  • Il civic hacker è troppo solo, devi avere persone intorno per restare motivato
  • Serve decidere come comportarsi con le altre comunità
  • Lancio del progetto civichacking.it

Dettagli sull’evento delle comunità dell’Openness in costruzione 2018

A quanto pare l’esigenza di connettere comunità che lavorano e sono appassionate di temi affini, non è solo una sensazione di pochi: parliamo di tutte quelle comunità che in qualche forma supportano e discutono di libertà digitali (Openness in senso lato, Open Source, Free Software, Open Content e beni comuni digitali).

Assieme a Roberto Guido (presidente di Italian Linux Society – ILS), che ci ha cercato qualche settimana prima del raduno, abbiamo iniziato a ragionare su un evento unico, che riunisca molte comunità nello stesso luogo e negli stessi giorni, mantenendo ognuna separata nella gestione dei propri eventi. Per iniziare può bastare essere tutti nello stesso luogo, simultaneamente: è un inizio.

Alcuni appunti condivisi: https://etherpad.net/p/proposta-os-conf-ita

Civic hacking: comunità informali, prototipi e Open Data: il libro

Il libro nasce dall’esigenza di capire cos’è il civic hacking concretamente nel contesto italiano, uscendo dal gergo per iniziati. A partire dalle esperienze reali dei civic hacker, che collaborano per trovare soluzioni creative a sfide sociali concrete, allarghiamo lo sguardo per analizzare il rapporto tra Open Data, prototipi, comunità informali e modi di sfruttare le zone grigie (quelle opportunità inaspettate che si creano a volte).

Interessa ovviamente i civic hacker. Interessa anche i maker, gli appassionati di openness e chiunque senta l’esigenza di mettere le mani “in pasta”.  

Raccontiamo anche le nostre esperienze dirette all’interno della comunità di Spaghetti Open Data per mostrare il potenziale e la fatica di quello che si può fare.

Persone, storie, Open Data, prototipi: tutto questo per noi è civic hacking. Non solo tecnologia, ma un modo per scardinare vecchie abitudini, un modo per riprendersi il proprio ruolo di cittadini, un modo per risolvere problemi.

Fino al 31/7 h.22 CEST, puoi inviare un tuo contributo. Per dettagli fai riferimento al sito http://civichacking.it/#contributi.

Dal primo agosto partirà una campagna di crowdfunding: se ti interessa, lascia pure la tua email qui http://eepurl.com/cQ15nX.

L’annuncio del portale regionale siciliano sui dati aperti

A sorpresa è venuto a seguire i lavori della mattina Enzo Lo Piccolo, webmaster della Regione Siciliana. Ha chiesto la parola per pochi minuti e ha fatto un annuncio: nelle prossime settimane (tra fine giugno e inizio luglio) verrà lanciato il portale regionale siciliano sui dati aperti. Sarà basato su CKAN e DCAT-AP_IT compliant.

Ha chiesto alla comunità – a lancio effettuato – di “dargli una mano”, sia nelle critica che nella proposta e ha dato comunicazione di un indirizzo email dedicato opendata@regione.sicilia.it. E noi gli abbiamo chiesto di iscriversi alle nostre mailing list.

È stato un momento molto informale e concreto, che ci fa essere ottimisti. Per la Sicilia è sicuramente una bella notizia ed è stato un piacere che #ODFest17 sia stato “stimolante”.

Le presentazioni del venerdì pomeriggio

Proposte di elaborazione di Dati Aperti dagli studenti di Informatica dell’Università di Palermo

Tre studenti del corso di laurea in Informatica dell’Università degli studi di Palermo, hanno presentato i progetti realizzati per l’esame della materia “Tecniche per la gestione degli Open Data”, curato da Davide Taibi del CNR di Palermo (http://offweb.unipa.it/offweb/public/corso/dettaglioInsegnamento.seam;jsessionid=FB17C3274CB9C25A07D58E8A68988D26?oidCurriculum=17137&oidInsegnamento=111202&cid=123461). I progetti che gli studenti devono realizzare per superare l’esame della materia hanno tre caratteristiche fondamentali: a) i dati da elaborare devono provenire da diverse fonti (anche generati da sensori) ed essere in diversi formati; b) i dati acquisiti devono essere elaborati mediante processi di pulizia e armonizzazione delle strutture dati; c) i dati elaborati devono essere resi disponibili all’esterno mediante API e in un formato aperto con un livello pari a 5, possono essere riusate ontologie esistenti o è possibile creare nuove ontologie per modellare il dominio di conoscenza specifico. Infine, i dati prodotti devono essere alla base della realizzazione di applicazioni come: bot telegram, web application, o applicazioni per dispositivi mobili.

Nello specifico gli studenti che hanno partecipato all’OpenDataFest17 hanno presentato:    

  • Un portale che aggrega gli eventi culturali che si svolgono nella città di Palermo di Vincenzo Cimino, https://raw.githubusercontent.com/VickPix/aggregatore-eventi/master/slides/Aggregatore_eventi_Vincenzo_Cimino.pdf. I dati vengono acquisiti mediante scraping di alcuni blog palermitani, e dal portale dell’Università di Palermo; e vengono armonizzati in una struttura dati comune che viene utilizzata per alimentare un portale in cui vengono visualizzati gli eventi mediante una interfaccia semplice, facile e comoda. Per modellare gli eventi e le loro caratteristiche è stato utilizzato schema.org. L’estrazione dei dati relativi agli eventi in formato JSON-LD è stata implementata attraverso API. L’applicazione è disponibile qui (http://portale-eventi.firebaseapp.com).
  • Una stazione meteo autocostruita e la relativa piattaforma di gestione dei dati in rete di Riccardo La Grassa https://github.com/pulsar2468/Owd/blob/master/OpenDay2017.pdf. Sono state fornite indicazioni per la costruzione della stazione meteo. Molto interessante è stata la descrizione relativa alla costruzione dell’anemometro, realizzato a basso costo con materiali riciclati. I dati raccolti dalla stazione vengono elaborati da un server centrale alle quali le stazioni meteo possono registrarsi attraverso un TOKEN. Il server centrale fornisce le visualizzazioni dei dati acquisiti e consente l’esportazione dei dati in formato aperto a cinque stelle. In questo caso è stata riutilizzata una ontologia specifica per la modellazione dei dati provenienti dai sensori.  
  • Una piattaforma di visualizzazione per infografiche relative a dati georeferenziati di Tommaso NIcosia (http://opendatafest.it/presentazioni/TommasoNicosia-OpenData-framework-sviluppo.pdf). In questa piattaforma i dati provenienti dalle segnalazioni della polizia municipale del comune di Palermo, e i dati provenienti da Waze relativi al traffico cittadino vengono aggregati e visualizzati su mappa. Un prototipo è disponibile qui (http://neuron4web.palermo.enea.it/opendata/_trafficendpoint). Uno SPARQL endpoint si occupa di gestire le query che vengono effettuate sui dati rappresentati in RDF. I dati forniti possono avere diversi settori di applicazione. Ad esempio tali dati possono guidare le scelte dei percorsi per raggiungere punti critici della città come ad esempio i presidi ospedalieri. L’unione di queste informazioni con, ad esempio, i dati relativi alle file dei pronto soccorso della città potrebbero supportare (nell’eventualità in cui non ci siano casi che necessitano cure immediate) la scelta del pronto soccorso in maniera più efficiente in termini di pazienti in attesa, traffico nelle strade ed eventi particolari come manifestazioni e lavori in corso.    

Non fidarsi più dell’ennesima agenda: servono uno o più progetti di civic hacking [Forum OGP]

Durante il dibattito mattutino sono emersi alcuni elementi sparsi legati soprattutto al ruolo di realtà come SOD o gruppi locali come Opendata Sicilia rispetto a forum di questo tipo, ancor di più in merito al tipo di intervento e interessi da mettere sul piatto.

Durante la sessione pomeridiana siamo andati maggiormente nel dettaglio di un processo complesso, costoso e con un ritorno difficile da valutare per la società civile. Lo scopo è stato quello di condividere un vissuto di un anno, focalizzato a spiegare dove siamo ora, specie in merito alle proposte/domande presentate al ministro Madia durante l’ultimo evento in plenaria dell’8 maggio scorso.

Una delle azioni nate nei giorni del raduno e condivise con i presenti ha poi generato questa richiesta formale alla squadra OGP Italy, che abbiamo condiviso in questo thread:

https://groups.google.com/d/msg/spaghettiopendata/uslQ2CTqqiM/M1rM7uaIAQAJ

Abbiamo scelto di dare maggior visibilità a questa proposta pubblicandola anche nei rispettivi luoghi digitali:

  1. http://www.spaghettiopendata.org/blog/matteo-brunati/open-government-partnership-andare-oltre-lagenda
  2. http://blog.openpolis.it/2017/06/13/open-government-partnership-andare-oltre-lagenda/15616
  3. http://blog.ondata.it/open-government-partnership-andare-oltre-lagenda/
  4. https://it.okfn.org/2017/06/13/open-government-partnership-andare-oltre-lagenda/

Incoraggiare la partecipazione attiva dei giovani alla vita democratica con YouthMetre

Caterina Impastato ha presentato YouthMetre, iniziativa che nasce per incoraggiare la partecipazione attiva dei giovani alla vita democratica.  Ecco le slide (Prezi) dell’intervento: uno degli elementi più interessanti è la piattaforma e i dati che aggrega, uno degli argomenti che è stato oggetto di alcune domande da parte dei presenti.

Il progetto Ricostruzione Trasparente

Alessio Cimarelli, rappresentante dell’associazione onData, ha presentato e discusso il progetto Ricostruzione Trasparente. Ecco le slide dell’intervento.

Civic Hackathon[s]

Creazione del GTFS di Caltanissetta

GTFS

Nelle prime ore di lavoro il gruppo di lavoro ha “sbattuto” con un ostacolo inatteso: i dati sulle rotte e sulle fermate erano incompleti o errati. Per fortuna, durante la giornata, è venuta a trovarci la Titolare dell’Azienda che gestisce i trasporti locali su gomma (SCAT) e siamo riusciti a produrre dei dati corretti sulla linea 3 (uno speciale grazie a Cesare Gerbino che è stato come sempre molto disponibile e puntuale).

Compresa l’impossibilità di avere delle info in giornata sui dati di base, ci siamo messi come obiettivo quello di costruire una procedura che consentisse di produrre un GTFS a partire dai dati forniti della SCAT e di verficarne la validità.

Davide Galletti ha creato uno script python, che a partire dalle info sulle fermate, e dalla timetable fornita da SCAT (che è abbastanza generica), produce i file secondo standard GTFS su rotte, corse e orari (routes.txt, trips.txt e stop_times.txt).

Abbiamo testato lo script con un set completo di dati (i file .txt presenti qui) usando il FeedValidator “ufficiale” e il file GTFS è risultato validato (con diversi warning che indicano la necessità di fare un altro check sui dati di base).

In conclusione:

  • Sarà necessario avere i dati geografici di base corretti e completi per tutte le linee. Giuseppe La Mensa, insieme al personale di SCAT, sarà in prima linea a occuparsene;
  • Con il set di dati completo, faremo delle modifiche e ovviamente dei test sullo script di creazione del file GTFS;
  • Documenteremo il tutto in modo da rendere autonoma la SCAT nella produzione del file GTFS e per potere replicare il processo anche in altri piccoli comuni.

GTFS + LOD

A valle del lavoro sul GTFS, è stato fatto un esperimento (Francesco Marchitelli, featuring Marco Brandizi) aggregando i dati del file GTFS di Lecce con dati provenienti dalla Linked Open Data cloud, per mostrare alcuni dei vantaggi nell’usare i Linked Data. Dopo aver convertito il file GTFS in RDF, sono stati inseriti gli eventi presenti a Lecce e caricato tutto quanto in un triple store. A questo punto è stata fatta una query di esempio che mostra i dettagli di un concerto organizzato al castello, con le informazioni correlate delle fermate dei bus che si trovano nelle vicinanze.

Il materiale si trova in questa cartella.

Un’analisi di rete dei finanziamenti europei alla ricerca

La sessione di Alberto era tosta, specie per quelli che non hanno partecipato al lavoro degli anni precedenti: Alberto ha raccontato i dettagli e la storia di questa proposta nella descrizione di questa sessione.

Purtroppo non è riuscita ad essere presente Baya Remaoun (andata via durante il pomeriggio del venerdì): alcune delle domande emerse sui dati CORDIS avrebbero avuto una risposta veloce, probabilmente.

Infatti una delle sfide per chi curiosa in dati che non conosce è riuscire a comprenderli con facilità.

Sono domande che porremo a Baya e alla squadra che gestisce la pubblicazione dei dati CORDIS nelle prossime settimane.

Altre domande hanno trovato risposta però: i risultati e la documentazione relativa al lavoro fatto si trovano in questa cartella del repo. C’è anche la presentazione (in formato Keynote) mostrata da Alberto e le immagini correlate (cartella).

Realizzare un elenco machine-readable di Albi POP

Nei giorni precedenti avevamo deciso di unificare i nostri hackathon entrambi relativi ad Albo POP, riconoscendo come la creazione di un elenco processabile dalle macchine di albi POP fosse un passo importante per molteplici attività, non ultima quella di creare aggregatori di albi. Per questo motivo, con l’aiuto e l’esperienza di Francesca Gleria abbiamo deciso di iniziare definendo un formato per la rappresentazione di albi POP.

Siamo partiti dal vocabolario del web semantico DCAT, raccomandazione W3C per la rappresentazione di dataset. L’albo POP è infatti null’altro che una rappresentazione, in formato RSS, del dataset degli avvisi di una pubblica amministrazione.

Abbiamo esaminato quindi la specializzazione di DCAT realizzata per le pubbliche amministrazioni italiane dcat_ap_it e la abbiamo applicata al nostro caso particolare. La peculiarità di albo POP è che il feed RSS viene generato a partire da una pagina web e il detentore dei dati (la pubblica amministrazione titolare dell’albo) non ha alcuna relazione con chi realizza e tiene su il servizio di albo pop. Inoltre, abbiamo tenuto in considerazione le specifiche RSS per albo pop.

Il lavoro ha generato un tutorial per pubblicare in DCAT_ap_it un elenco di albi pop, (che ci ripromettiamo di completare nei prossimi giorni.

Le informazioni originali sui dataset presenti nel catalogo in formato DCAT sono comunque rappresentabili in prima battuta con una semplice tabella. Abbiamo quindi strutturato opportunamente un Google Spreadsheet condiviso affinché fosse la base di partenza per la generazione automatica del file di catalogo, ma anche la sorgente dati di una visualizzazione web nello stile di Petrusino. L’idea è di alimentare il foglio mediante un form on-line e collegare ad esso uno script che lo traduca nel formato DCAT e una visualizzazione web che permetta di navigarlo.

FormAzione

Vocabolari, metadati: uno sguardo nel dettaglio

Al posto di una presentazione vera e propria c’è stata una discussione, guidata da queste slide.

Un’introduzione a Elasticsearch

Alessio Cimarelli ha tenuto una lezione introduttiva al database e motore di ricerca Elasticsearch, discutendone caratteristiche e potenzialità a partire dai dati live del progetto Ricostruzione Trasparente. Ecco le slide.

Varie

La proposta di Massimo Zotti: tradurre i videotutorial del progetto Copernicus

https://www.youtube.com/watch?v=KWeS1-TDy-0

Ringraziamenti e scuse

La vita dell’OpenDataFest17 è stata semplice e comoda. Un sentito grazie a:

  • Giuseppe La Mensa che ha coordinato tutto il prima, durante e dopo della logistica e i contatti con il sistema di accoglienza locali;
  • Erika Marconato che ha creato l’apprezzato communication kit (usato poi per magliette, banner, sito, social, ecc.. ), gestito la comunicazione su #ODFest17, raccolto le donazioni per le magliette, partecipato al gruppo di lavoro per la definizione di queste tre giornate;
  • Matteo Brunati che ha dato forma a questo raduno con diverse idee e spunti stimolanti, creato il wiki per il raduno, editato il sito e per essere stato Matteo Brunati;
  • Andrea Borruso che mostra a tutti noi come essere delle persone migliori;
  • Il Comune di Caltanissetta che, grazie alla sensibilità verso i temi del digitale innovativo dell’amministrazione Ruvolo, ha contribuito alle spese organizzative dell’evento.

Chiediamo scusa ad Alessandro Capezzuoli, per non essere riusciti a tenere al meglio i tempi del venerdì pomeriggio e non avere avuto l’opportunità di ascoltare la sua relazione dal titolo Professioni e orientamento: dagli open data al mercato del lavoro.

STORIFY

Disponibile uno storify ( a cura di Erika Marconato) che può dare un’idea di quello che abbiamo combinato: https://storify.com/ErikaMarconato/opendatafest2017

Leggere, interrogare e trasformare file XML da riga di comando

Intro

Il comune di Palermo ha pubblicato i dati pubblici e aperti sulle elezioni comunali dell’11 giugno 2017 in formato XML, con uno schema descritto in questo file.

Qui sotto ad esempio la struttura di uno degli oltre 200 file pubblicati.

L’XML è uno dei formati classici di pubblicazione di dati aperti, ma non è un formato per tutti. Molti utenti infatti non sono in grado di esaminarli.
Per la sua natura è facilmente leggibile da un calcolatore e ci sono varie modalità per farlo.

E con un’utility specializzata (XMLStarlet) e con un piccolo comando come questo di sotto, è possibile trasformare questo file XML in una “piatta” tabella con tutti i dati sui voti dei candidati di una lista al consiglio comunale, per ogni sezione elettorale (40 candidati per 600 sezioni, quindi 24000 record).

xmlstarlet sel –net -t -m //SV/V0/V1 -v @NUMERO -o , \
-v @VOTIVALIDI_C1 -o ,  -v ../@NUMERO -o , \
-v ../../@NUMERO -n \
http://comunali2017.comune.palermo.it/SEZ_3_82053_L12.xml

 

Qui sotto lo vedete in azione:

I dati sui risultati delle liste elettorali hanno questa struttura:

<SV NUMERO=1 NOME=SEZIONE 1 NOMEBREVE=SEZ. 1 UBICAZIONE= NUM_ZONA= NUM_ZONA2= TOTVOT=540 TOTVOTM=255 TOTVOTF=285 FLZEROVOT=N ELETTORI=1112 ELETTORIM=556 ELETTORIF=556 CONFERMATO=S VOTIVALIDI_C0=54 VOTIVALIDI_C1=37 VCAS_C1=0″ VCNAS_C1=”0″ VOTI_SOLO_C1=”0″ VOTIVALIDI_C2=”0″ VCAS_C2=”0″ VCNAS_C2=”0″ VCNAS_TOT=”0″ VOTI_SOLO_C2=”0″ VOTI_NULLI_SOLO_C2=”0″ VOTI_NULLI=”0″ NULLE=”21″ BIANCHE=”8″ CONFCONS=”S” MAXVOTVAL=”9″>
        <V0 NUMERO=12 VOTIVALIDI_C0=54 TOT_VOTIVALIDI_C1=37 TOT_VOTISOLO_C1=0>
            <V1 NUMERO=1 VOTIVALIDI_C1=5 VOTISOLO_C1=0 VOTCONASS_C1=0 VOTCONNONASS_C1=0 CIFRAIND=59 TOT_VOTIVALIDI_C2=0 TOT_VOTISOLO_C2=0/>
            <V1 NUMERO=2 …/>
            <V1 NUMERO=3 …/>        
        </V0>
</SV>

 

SV è la sezione elettorale con il suo numero identificativo (e altri attributi), che contiene al suo interno i dati su V0 che rappresenta la lista (in questo caso la 12, quella del “Movimento 5 stelle”), che contiene al suo interno V1, ovvero i dati sui candidati al consiglio comunale. Con questa struttura gerarchica SV>V0>V1.

Il comando di sopra nel dettaglio:

  • sel --net -t -m, abilito la selezione (sel) su un file remoto (--net), impostando un template (-t) per “mappare” gli elementi che corrispondono (“matchano” -m) alla seguente query XPATH;
  • "//SV/V0/V1", i candidati al consiglio;
  • "@NUMERO", l’attributo con il numero identificativo del candidato;
  • -o ",", per inserire un separatore di testo;
  • -v "@VOTIVALIDI_C1", l’attributo con i voti validi del candidato;
  • -o ",", per inserire un separatore di testo;
  • -v "../@NUMERO", mi muovo verso l’alto nella gerarchia dell’XML di un gradino con .., quindi vado in V0 (la lista) e recupero l’identificativo numerico della lista;
  • -o ",", per inserire un separatore di testo;
  • -v "../../@NUMERO", mi muovo verso l’alto nella gerarchia dell’XML di due gradini con ../.., quindi vado in SV (il seggio) e recupero l’identificativo numerico del seggio;
  • -n, per inserire un’andata a capo per ogni risultato ottenuto;
  • http://…/SEZ_3_82053_L12.xml è l’URL del file XML.

In output nella shell avrò:

1,5,12,1
2,9,12,1
3,2,12,1
…,…,…,…

Ovvero

numeroCandidato voti numeroLista sezione
1 5 12 1
2 9 12 1
3 2 12 1

Creare dei file CSV con i dati per tutte le liste

Ho pensato che possa essere molto interessante fare un esempio più ricco e completo e creare uno script bash per:

  • scaricare tutti i file XML delle 18 liste;
  • estrarre da ognuno l’anagrafica dei candidati consiglieri;
  • estrarre da ognuno il numero di voti, per ogni sezione, di ogni candidato al consiglio;
  • fare il join – unire – le info sul numero di voti, con l’anagrafica dei candidati consiglieri, e creare un file CSV per ogni lista;
  • unire tutti i file CSV e produrre anche un unico file con il numero di voti di ogni candidato, per ogni lista, per ogni sezione.

Requisiti

Il prodotto finale è uno script BASH, quindi bisogna avere a disposizione un sistema compatibile con questo linguaggio (lo sono essenzialmente tutti).

Richiede tre utility:

  • l’immancabile cURL, per scaricare i file;
  • XMLStarlet per interrogare i file XML e trasformarli in file CSV;
  • csvkit per fare il join e il merge dei CSV scaricati.

Richiede una conoscenza di base (e/o la volontà/possibità di farserla) su:

  • XPATH, per estrarre i dati (per interrogare) i file XML;
  • la linea di comando, perché è un po’ il campo di gioco di queste modalità di accesso e modifica di file;
  • BASH, che è il linguaggio dello script finale;
  • aprire i file XML del comune con un buon editor di testo, guardarli un po’ e comprenderne la struttura.

Lo script

Lo script per intero è più in basso. A seguire un esploso delle varie parti che lo compongono.

La prima cosa che viene eseguita nello script è il download dei file delle liste. Queste sono 18 ed è comodo scaricarle con un ciclo for ... loop che lo fa 18 volte per noi.

for i in {1..18};
  do curl -s http://comunali2017.comune.palermo.it/SEZ_3_82053_L$i.xml > $i.xml;
done

 

Poi da ognuno dei 18 file XML vengono estratti i dati anagrafici e i dati per sezione, sempre con un ciclo for.
A ogni file viene aggiunta anche un’intestazione di colonne.

# scarico l’anagrafica di ogni candidato di ogni lista
for i in {1..18}; do xmlstarlet sel -t -m //C0/C1 -v @NUMERO -o , -v @NOME -o , -v ../@NUMERO -o , -v ../@NOME -n $i.xml > anagraficaLista_$i.txt; sed -i 1s/^/numeroCandidato,nomeCandidato,numeroLista,nomeLista\n/ anagraficaLista_$i.txt & done
 
# scarico i voti di ogni candidato di ogni lista per ogni sezione
for i in {1..18}; do xmlstarlet sel -t -m //SV/V0/V1 -v @NUMERO -o , -v @VOTIVALIDI_C1 -o ,  -v ../@NUMERO -o , -v ../../@NUMERO -n $i.xml > listaSezioni_$i.txt ; sed  -i 1s/^/numeroCandidato,voti,numeroLista,sezione\n/ listaSezioni_$i.txt & done

 

I file di anagrafica hanno questa struttura:

numeroCandidato nomeCandidato numeroLista nomeLista
1 GELARDA IGOR DETTO GERARDA DETTO GERALDA 12 MOVIMENTO 5 STELLE
2 ARGIROFFI GIULIA 12 MOVIMENTO 5 STELLE
3 CAPARROTTA GIANCARLO DETTO CAPAROTTA 12 MOVIMENTO 5 STELLE

Mentre quelli con i dati per sezione:

numeroCandidato voti numeroLista sezione
1 5 12 1
2 9 12 1
3 2 12 1

Poi viene fatto il join tra anagrafica e dati per sezione:

for i in {1..18}; do csvsql –query select * from  listaSezioni_$i LEFT JOIN anagraficaLista_$i ON listaSezioni_$i.numeroCandidato=anagraficaLista_$i.numeroCandidato listaSezioni_$i.txt anagraficaLista_$i.txt > lista_$i.csv; done

Per ogni lista viene prodotto un file con nome lista_NumeroLista.csv, con questa struttura (ci sono delle colonne duplicate, che potrei rimuovere in fase di join):

numeroCandidato voti numeroLista sezione numeroCandidato nomeCandidato numeroLista nomeLista
1 5 12 1 1 GELARDA IGOR DETTO GERARDA DETTO GERALDA 12 MOVIMENTO 5 STELLE
2 9 12 1 2 ARGIROFFI GIULIA 12 MOVIMENTO 5 STELLE
3 2 12 1 3 CAPARROTTA GIANCARLO DETTO CAPAROTTA 12 MOVIMENTO 5 STELLE

E infine viene creato anche un unico file CSV di insieme (scaricabile da qui), con i dati per tutti i consiglieri di tutte le liste, per ogni sezione (senza le colonne duplicate). Sono 638 candidati per 600 sezioni per un totale di 382800 record.

csvstack *.csv | csvcut -c 1,2,3,4,6,8 > liste.csv

Quindi avrò in output 1 file CSV con i dati per ogni lista e quello soprastante, per totale di 19 file CSV (encoding UTF-8 e come separatore la ,).

Lo script di poche righe (al netto dei commenti) è quello di sotto, tutto realizzato con oggetti free e open-source.

#!/bin/bash
 
# Requisiti #
# – avere un sistema in cui è possibile eseguire uno script bash;
# – l’utility XMLStarlet http://xmlstar.sourceforge.net/download.php
# – l’utility csvkit http://csvkit.readthedocs.io/
 
# attivo la modalità di debug
set -x
 
# cancello file csv e xml pre esistenti nella cartella in cui lancio lo script
rm -R *.csv
 
# scarico tutti i dati delle 18 liste
for i in {1..18}; do curl -s http://comunali2017.comune.palermo.it/SEZ_3_82053_L$i.xml > $i.xml;done
 
# scarico l’anagrafica di ogni candidato di ogni lista
for i in {1..18}; do xmlstarlet sel -t -m //C0/C1 -v @NUMERO -o , -v @NOME -o , -v ../@NUMERO -o , -v ../@NOME -n $i.xml > anagraficaLista_$i.txt; sed -i 1s/^/numeroCandidato,nomeCandidato,numeroLista,nomeLista\n/ anagraficaLista_$i.txt & done
 
# scarico i voti di ogni candidato di ogni lista per ogni sezione
for i in {1..18}; do xmlstarlet sel -t -m //SV/V0/V1 -v @NUMERO -o , -v @VOTIVALIDI_C1 -o ,  -v ../@NUMERO -o , -v ../../@NUMERO -n $i.xml > listaSezioni_$i.txt ; sed  -i 1s/^/numeroCandidato,voti,numeroLista,sezione\n/ listaSezioni_$i.txt & done
 
# faccio il join tra i dati per sezione e l’anagrafica dei candidati
# l’output è un file di dettaglio in formato CSV per ogni lista
for i in {1..18}; do csvsql –query select * from  listaSezioni_$i LEFT JOIN anagraficaLista_$i ON listaSezioni_$i.numeroCandidato=anagraficaLista_$i.numeroCandidato listaSezioni_$i.txt anagraficaLista_$i.txt > lista_$i.csv; done
 
# faccio il merge di tutti i CSV e produco un unico file
# con tutti i voti per candidato per sezione di ogni lista
csvstack *.csv | csvcut -c 1,2,3,4,6,8 > liste.csv
 
# cancello file che non mi sono più utili
rm -R *.txt
rm -R *.xml

Libro consigliato

Per entrare nel mondo divertentissimo ed efficiente della “riga di comando” mi sento di consigliare il bel “Data Science at the Command Line” . È un libro per tutti, di facile lettura e pieno di esempi utili.