SKEY

SODA

UN ESEMPIO CONCRETO

CURRICULUM

SKEY : Un modello per la diffusione dei dati statistici

I dati statistici, spesso, vengono diffusi a partire da una piattaforma (sito web/webservices) con standard diversi. Normalmente, un soggetto/ente che diffonde dati statistici fa riferimento ad una base dati relazionale normalizzata in base alle proprie esigenze.

Skey

Un certo dato potrebbe avere una rilevanza maggiore se analizzato in un contesto diverso. Si pensi ad esempio alle grandi istituzioni (ISTAT, INAIL, UNIONCAMERE, MINISTERO DEL LAVORO, INPS, etc.) che detengono e diffondono una enorme quantità di dati. L'importanza di questi dati potrebbe essere maggiore, se diffusi congiuntamente e in unico quadro di riferimento semantico. Contestualizzati in tal modo, i dati provenienti da Enti diversi (ma su argomenti affini) potrebbero essere il punto di partenza per nuove elaborazioni o per la costruzione di numerose applicazioni a supporto della ricerca o a servizio dei cittadini.

Far confluire dei dati disomogenei provenienti da diverse fonti in una base dati relazionale centralizzata è un'operazione complessa perché ciascuna fonte fa riferimento ad un database normalizzato secondo logiche diverse, sul quale non é possibile accedere liberamente a causa delle diverse policy di sicurezza.

Skey

Il Sistema Informativo sulle Professioni (http://www.istat.it/it/archivio/18841) è un esempio complesso di linked open data, in cui dati affini e disomogenei sono collegati tra loro via web attraverso lo scambio di una chiave univoca: il codice della professione.

Skey

Il sistema informativo sulle professioni connette i dati sulle professioni provenienti da diversi nodi (fonti), mantenendone l'indipendenza e sfruttando un widget (RDF) per indirizzare l'utente attraverso i diversi collegamenti.



Ciascun nodo fa riferimento ad una base dati relazionale normalizzata con una logica diversa rispetto alle altre.



I dati statistici pubblicati e consultati attraverso lo schema "linked data" soddisfano le esigenze dei web surfers, che possono seguire diversi percorsi semantici, ma non incontrano le esigenze di altri utenti.



Le software house, che sviluppano i sistemi informativi locali, i soggetti pubblici e privati e i ricercatori hanno bisogno di dati "usabili" sotto forme diverse: dataset statistici, flussi json o file xml.



In qualsiasi forma vengano diffusi, i dati debbono essere corredati da un tracciato record e dal set di metadati.

La Soluzione

I dati e i metadati statistici, semplificando al massimo, possono essere schematizzati attraverso un oggetto costituito da una coppia chiave/valore.

Un db NoSQL di tipo column/family (eg. Cassandra, Big Table) ha una struttura ricorsiva a quattro/cinque livelli basata sulla logica chiave=>valore, ma con qualche elemento strutturale in più:

  • Il keyspace può essere associato ad un soggetto che vuole integrare i suoi dati con altri dati appartenenti allo stesso ambiente semantico. Ognuno gestisce autonomamente il proprio keyspace, definendone il fattore e la tipologia di replica.
  • Le column family, ovvero i contenitori delle colonne, sono per tutti due : dati e metadati.
  • Le super column, ovvero gli aggregati di column, vengono definite liberamente in base alle diverse necessità di aggregare i dati/metadati.
  • Le column contengono le coppie chiave=>valore.
  • La chiave è l'unica entità con cui identificare e recuperare i dati in Cassandra; nel caso del sistema informativo sulle professioni é il codice della professione.

Oltre alle caratteristiche strutturali, i database NoSql presentano un alto vantaggio non trascurabile; la possibilità di aggiungere al sistema un nodo durante il funzionamento a regime in modo semplice e trasparente per l'utente, garantendo la ridondanza e la sincronizzazione istantanea dei dati.

I dati e i metadati statistici provenienti da diverse fonti e diverse basi base dati relazionali normalizzate possono essere "denormalizzati" e inseriti in una database NoSql sulla base di un modello unificato di questo tipo:

{
"keyspace" :
    {
      "columnfamily" :
        {
          "rowkey" :
            {
            "supercolumn" :
                {
                        "column name" : "column value"
                }
            }
        }
    }
}

In questo modo, oltre ad avere a disposizione un webservice JSON nativo che rilascia tutti i dati con lo stesso formato, diversi soggetti pubblici e privati possono utilizzare gli stessi dati per diverse finalità: costruire web application, effettuare elaborazioni o grafici.

Skey

Nel caso delle professioni, il rilascio dei dati collegati tra loro dal sistema informativo in un formato standardizzato utilizzabile può dare luogo allo sviluppo di numerose iniziative o web applications.

  • All'indirizzo http://www.alessandrocapezzuoli.it/soda/ è disponibile SODA (Statistical Open Data), un'App che utilizza un widget messo a disposizione dall'ISTAT per la ricerca delle professioni e permette di costruire un dataset personalizzato in diversi formati (csv, json, xml) adatti all'elaborazione attraverso i software di data manipulation o alla rappresentazione all'interno dei siti web. Questo tipo di web application può essere generalizzata e la sua logica può essere applicata a diversi soggetti che rilasciano i dati in dati.gov.it
  • Gli stessi dati prodotti dal sistema SKEY possono essere rilasciati all'interno del sistema informativo sulle professioni o possono essere elaborati componendo gli ambiti tematici dell'indagine sulle professioni condotta da ISFOL-ISTAT, i dati sull'incidentalità prodotti da INAIL e i dati sull'occupazione rilasciati dall'ISTAT per creare applicazioni di supporto ai sistemi informativi locali, di orientamento e di ricollocazione professionale.
  • Il modello SKEY e le web application si basano interamente su tecnologie open source: Apache, Cassandra, PHP, AJAX

Web Server

NoSql database

Linguaggi

Formati