IT/EN

Openpolis Data Manager

Introduzione

Openpolis DataManager contiene tutti i dati Openpolis sul potere in Italia.

Sono mappati attualmente 803,418 incarichi pubblici, 91,578 partecipazioni societarie, che riguardano 430,531 persone e 108,630 organizzazioni di diritto o a controllo pubblico, distribuite su 8,872 aree geografiche.

Dettagli tecnici

Attualmente è implementata una API REST, che permette l'accesso libero in sola lettura.

L'API REST è sviluppata secondo lo standard Open API e la documentazione, interattiva e generata e aggiornata automaticamente, è disponibile, con la possibilità di effettuare richieste alle API.

L'API fornisce risposte in formato JSON o in formato HTML navigabile ed è quindi esplorabile da browser (con filtri, motore di ricerca e ordinamento dei risultati).

Le risposte sono paginate, con 25 risultati per pagina di default, estendibili fino a 1000. I link per caricare le pagine successive o precedenti si trovano sotto forma di URL nella stessa pagina dei risultati.

Le modifiche future all'API sono versionate (attualmente v1), in modo da garantire la continuità di esercizio agli applicativi che la utilizzino per tutto il tempo necessario all'adozione delle nuove versioni.

Gli accessi sono attualmente limitati a 10000 per giorno per utenti anonimi, e illimitati per utenti autorizzati.

L'autorizzazione può essere fatta attraverso JSON Web Token o HTTP Basic Auth.

Tutti gli endpoint rispondono esclusivamente su porta HTTPS, in modo che l'invio dei parametri di autorizzazione non avvenga in chiaro.

E' previsto, a breve, il rilascio di un endpoint Graphql, per semplificare il processo di sviluppo di applicativi basati su questi dati.

Modello dei dati di dominio (sintesi)

Il diagramma del modello del dominio

Il modello è un'istanza di Popolo, uno standard internazionale per gli open government data, sviluppato da un consorzio di cui Openpolis è parte.

Gli oggetti principali (Person, Membership, Organization, Area, Post), hanno una data inizio (start_date) e una data fine (end_date).

A seconda del contesto, le date possono avere nomi e significati differenti, ad esempio, nel caso di una persona, birth_date o death_date, e nel caso di un'organizzazione, funding_date e dissolution_date.

Per tutti gli oggetti principali, sono comunque disponibili filtri su queste date, attraverso i parametri:

status oggetti attuali o passati (current, past)
active_at oggetti attivi alla data indicata
active_from oggetti ...
active_to oggetti ...

Questi parametri sono indicati in modo esplicito nella documentazione.

Esempio: elenco dei soli comuni attivi in data orierna.

  http://service.opdm.openpolis.io/v1/areas?istat_classification=COM&status=current

Per ciascuna istanza degli oggetti, sono registrati i timestamp di creazione e di ultimo aggiornamento. In questo modo è possibile usare il filtro updated_after, per richiedere gli elenchi di oggetti aggiornati dopo un dato istante.

Esempio: elenco dei soli comuni aggiornati dopo le 12 del 24 novembre 2017.

  http://service.opdm.openpolis.io/v1/areas?istat_classification=COM&updated_after=2017-11-24T12:00:00

Reference del modello

Di seguito sono elencati gli oggetti principali, con i loro campi/relazioni:

Membership (incarico)

Descrive un incarico specifico, legato a un'Organizzazione reale, con una data di inizio e fine.

Denominazione Descrizione
label Descrizione dell'incarico specifico, eventualmente con deleghe
role Descrizione dell'incarico generico (senza località)

Person

Organization

TBD

Area

TBD

Post (tipo di incarico)

TBD

Stack software utilizzato

I dati sono su un DB relazionale (postgres 9.6) e l'applicazione è sviluppata con django/python.

Le api REST sono sviluppate con django-rest-framework, l'endpoint graphql con graphene-django.

L'applicazione web è servita attraverso Nginx + Gunicorn.

Il sistema operativo è Linux, distribuzione Ubuntu 16.04.

Il codice sorgente dell'applicazione è disponibile liberamente sul repository gitlab di openpolis.

Traccia dei cambiamenti

I cambi delle funzionalità sono elencati nel changelog principale.

I cambi nei dati sono elencati nel changelog dei dati.

Licenze di utilizzo dei dati

I dati esposti sono liberamente utilizzabili per fini non commerciali, a patto di citare la fonte, secondo quanto indicato dalla licenza CC-BY-NC.

Contatti

Per informazioni sull'utilizzo dei dati e/o eventuali segnalazioni di errori: info@openpolis.it.

Per informazioni sulle tecnologie: guglielmo@openpolis.it.


Openpolis Data Manager v2.0.0 - 8d79b7efe3a6054b27da0ae00736d4691b829e3b