Il nuovo catalogo nazionale Open Data – seconda parte

Questo secondo articolo sulla progettazione del nuovo catalogo nazionale open data introduce le API supportate dal portale, descrive la treemap che consente di navigare i contenuti del sito e introduce alcune delle novità sulle quali stiamo lavorando in queste settimane. Il primo articolo su dati.gov.it lo trovi qui. 

Dove sono le API?

Nella fase iniziale del progetto abbiamo cercato di consolidare la ri-organizzazione del catalogo e di estendere DKAN secondo quanto necessario dai requisiti del progetto; in particolare si è trattato di estendere il modello di organizzazione dei metadati presente in DKAN aggiungendo le organizzazioni (DKAN è pensato per un singolo ente che pubblica dati mentre nel nostro contesto avevamo l’esigenza di gestire i metadati di tante organizzazioni diverse). Inoltre si è trattato di irrobustire l’harvester di DKAN per poter acquisire la grande mole di dati che era presente nel CKAN della versione precedente del portale (seguono maggiori dettagli nei paragrafi seguenti).

Queste attività hanno fatto si che, nella release di Giugno, non fossero ancora presenti le API. Durante l’estate, sempre in collaborazione con AgID, abbiamo ripreso le attività e ri-attivato le API standard di CKAN a cui molti di voi sono già abituati. Si tratta di interfacce consultabili con richieste HTTP che restituiscono risultati formattati in JSON. Per vedere qualche esempio potete fare un check sulla pagina dedicata agli sviluppatori di dati.gov.it. Sostanzialmente ora trovate disponibili due API:

Nell’esempio sopra chiediamo al sistema di indicarci la lista di tutti i dataset presenti nel portale (limitando, con il parametro limit a 10 il numero dei dataset forniti in risposta). Utilizzando i parametri supportati da questa API limit e offset possiamo scaricare l’intera lista di dataset di dati.gov.it.

Dalla lista dei dataset per accedere ai metadati del singolo dataset possiamo invece usare la chiamata:

Passando, questa volta il parametro id (che abbiamo ottenuto nel JSON di risposta ottenuto con package_list) possiamo acquisire i metadati del singolo dataset.  

Scorrere migliaia di dataset in pochi click con la Treemap e utilizzando le API del sito

La Treemap è una visualizzazione di dati che evidenzia le relazioni tra un elevato numero di oggetti utilizzando una codifica a colori e una serie di rettangoli nidificati di dimensioni diverse.

Una treemap colorata utilizza il colore per raggruppare oggetti appartenenti ad una medesima categoria. Le dimensioni dei rettangoli rappresentano invece i valori che intendiamo rappresentare. Vediamo direttamente la Treemap di dati.gov.it.

Partendo dall’analisi fatta sull’insieme dei dataset del catalogo, e dai nuovi criteri di classificazione, abbiamo cercato una soluzione che consentisse una navigazione immediata e al contempo profonda dei dataset disponibili. Creando una treemap interattiva è stato possibile visualizzare i dataset secondo una gerarchia disposta su più livelli dando all’utente la possibilità di scendere e di salire di livello a piacimento. La treemap visualizza un qualsiasi insieme di dati organizzati gerarchicamente. Nel nostro caso abbiamo utilizzato D3.js che è una libreria JavaScript per la visualizzazione di dati dinamici (D3 è l’acronimo di Data-Driven Documents).

Per fornire alla Treemap i dati nel formato richiesto abbiamo realizzato uno script che a intervalli di tempo regolari esegue le seguenti attività:

  1. Chiama le API di dati.gov.it e scarica l’elenco dei dataset con i dettagli relativi al nome, all’organizzazione, al territorio di riferimento e alla categoria tematica (ove presente);
  2. Riorganizza i dati ad albero seguendo una gerarchia che può essere personalizzata di volta in volta. Al momento abbiamo optato per organizzare i dataset secondo la gerarchia:
    territorio -> tema -> organizzazione -> nome (e link al dataset).
  3. Trasmette i dati alla treemap usando il formato JSON utilizzato da D3.

Quando la treemap viene caricata nella pagina si limita a caricare il JSON e offre all’utente la possibilità di navigare l’albero. Il modello di treemap navigabile è ispirato ad una versione sviluppata da Mike Bostock (autore di D3) che aggiunge alcune caratteristiche importanti per un sito come dati.gov.it – vediamo quali:

  • utilizzo dei colori per la categorizzazione dei dataset (nello specifico il colore ora indica se un dataset ha valenza nazionale, comunale, regionale, provinciale o se appartenente ad un ente extra-territoriale)
  • impiego del formato vettoriale SVG per il rendering degli oggetti in pagina
  • dimensioni responsive della treemap, delle sottocomponenti e delle etichette testuali 
  • interattività per navigare in profondità i contenuti passando dal territorio al tema, e dall’organizzazione al singolo dataset

Sulla treemap sono stati poi effettuati i test di funzionamento cross-browser e cross-device che ci hanno portato  ad estendere la versione originale per supportare al meglio Safari ed Internet Explorer.

Ci siamo inoltre assicurati che il livello di accessibilità della treemap fosse WCAG 2.0 (Level AA) e che i colori non ponessero problemi a chi è affetto da daltonismo (di seguito alcuni dei risultati dei test).

colorblind-test-01

colorblind-test-02

La Treemap è Open Source

La zoomable Treemap è stata realizzata da Piero Savastano e la trovate sul GitHub di Insideout10: https://github.com/insideout10/zoomable-treemap

Continua … e nel prossimo articolo parleremo di harvesting e di come i metadati nel catalogo Italiano entreranno in contatto con il nuovo portale open data Europeo. 

L'immagine per questo post è una visualizzazione prodotta da un algoritmo di Alex D. (Ekisto) sui dati delle interazioni (watch, fork e follow) di GitHub.
 

il Team IO10

Read more posts by this author.