menu di navigazione del network

API per l'elenco dei comuni italiani

Sono tutte soluzioni che lasciano un po’ a desiderare, per due motivi.

  1. Tutte le persone che hanno ne hanno bisogno devono scaricare il file .xls sell’ISTAT, convertirlo in CSV e poi trafficare con PHP per ricavarsi delle query da inserire in un db.
  2. Evitiamo di parlare del casino che ci sarà quando quella lista sarà aggiornata, tolto il fatto che non so in quanti stiano a controllare il sito per vedere se ci sono aggiornamenti.

Io per un mio progetto ho seguito il procedimento al punto 1, ma non è assolutamente una cosa semplice e veloce…

Potrebbe essere un dataset del DAF?
Non ho capito se poi ci saranno API di accesso, però è già un modo di uniformare il dato…

Io ho aggiornato i comuni su Wikidata, questa è la query sparql per ottenere la lista
http://tinyurl.com/y984z4w4

2 Likes

Concordo, sarebbe molto utile averlo a disposizione.

Potremmo partire da quello dei comuni attuali, utile per la decodifica delle residenze, e suggerisco di avere un archivio unico di comuni e stati esteri: alla fine nei nostri software c’è quasi sempre un riferimento al comune italiano o allo stato estero per un cittadino, tanto vale avere una unica resource.

Poi arriviamo ai luoghi di nascita, in quanto l’archivio deve essere storicizzato con data inizio e fine di validità e ancora secondo me qualcosa da limare nel catalogo c’è.
E poi: i software hanno spesso usato il codice istat come PK ma purtroppo l’istat ne ha riattribuito alcuni nel corso del tempo. Siamo pronti a migrare tutti i codici istat verso il codice del catalogo anpr?

In effetti,
io uso una soluzione locale, aggiornandola dal file dell’agenzia delle entrate e da un repository github (che mi da anche i cap) https://github.com/matteocontrini/comuni-json

Per quanto riguarda l’aggiornamento dei dati, credo sia sufficiente automatizzare la lettura del file statico dell’agenzia delle entrate http://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv e esporre un’API

Sull’IndicePa non ha i dati aggiornatissimi, quindi non lo consiglio molto.

1 Like

Guarda io alla fine per il mio progetto ho preso i CSV di ISTAT e ci ho trovato una gamola con PHP per farmici le Query… però non è una cosa logica :sweat_smile:
Tralasciando il fatto che il lavoro sarebbe da rifare per aggiornare l’elenco…

Per i CAP rimando anche alla discussione relativa

Sarei interessato anche io ad un “feed” di cambiamenti amministrativi.

Iniziamo a pensare ad un ‘tracciato’? Quali informazioni sono utili per voi?
Di base: Nome, Secondo Livello (Provincia et equiv), Regione, Codice ISTAT

Ulteriori informazioni da esporre in un feed: Data di creazione, Data di cessazione, Comuni fusi (nel caso di fusione)

2 Likes

cfr https://github.com/italia/anpr/issues/331

No, la fonte per la codifica dei comuni è l’Istat. Quelli affidabili sono l’elenco dei comuni attuali. Di norma a applicazioni esterne ai demografici servono solo i comuni attuali. Quando si va su comuni cessati o cambi di denominazione, non ci sono elenchi completi affidabili da parte di Istat.

Segnalo però che Istat assieme ad altri ha contribuito a realizzare le tabelle di ANPR ( https://www.anpr.interno.it/portale/tabelle-di-riferimento ) , che hanno non solo i comuni attuali, ma anche la storia con data inizio e fine.
Marco Migliori

5 Likes

Siamo sempre alle solite, è cambiato chi fornisce le tabelle ma alla fine il lavoro dello sviluppatore del convertire i file in locale per renderli utilizzabili sul progetto rimane…

Quasi. Perchè chi fornisce le tabelle non è proprio univoco. Per certi adempimenti è compito di un ente, per altri no. E manca un servizio centrale accessibile a tutti.

Nell’esempio della tabella comuni, l’anagrafe è obbligata a usare la codifica Istat.
Recentemente la Sardegna ha ristrutturato le province con legge regionale.
Riguarda la codifica dei comuni? Per l’istat sì, perchè il suo sistema di codifica a 6 cifre, identifica con le prime 3 la provincia. Per cui anche se il comune è sempre quello e amministrativamente dipende da una provincia diversa, va assegnato un nuovo codice, e quello precedente va cessato.
Ma il comune entra in ballo anche nella codifica del codice fiscale, per cui passiamo all’Agenzia delle entrate. Che solo raramente cambia il suo codice (A999) che normalmente identifica univocamente un comune.
Abbiamo quindi almeno due soggetti che hanno i loro tempi per le codifiche.

veniamo a un solo esempio pratico di interazione degli enti. l’anagrafe ho detto è obbligata a usare codice istat, che varia nel tempo per ridenominazione/fusione/cambio provincia. è anche obbligata a usare un dato storico, ovvero se sono nato nel 1980 a Rimini ho codice provincia Forlì, nel 2000 ho codice provincia Rimini.
quando l’anagrafe colloquia con il CNT (centro nazionale trapianti), indica il codice istat di nascita. il CNT ha una tabella con i soli codici istat attuali (il file XLS pubblicato da istat).
quando gli dico che TIZIO è nato a RIMINI (FO) il CNT restituisce errore perchè per loro quel codice non esiste.
Quindi l’anagrafe per colloquiare con il CNT, deve modificare il dato (nel solo invio al CNT) facendo formalmente un falso, al solo scopo di comunicare con loro.

Con ANPR arriviamo al paradosso che questo sistema integrato impedisce l’uso dei nuovi codici istat (a cui sarebbe tenuta l’anagrafe), perchè essendo integrato con AE, si sommano i ritardi degli enti di codifica. per cui non ho disponibile e aggiornata la tabella comuni, con la realtà.


QUELLO CHE MANCA a mio avviso è una struttura centrale da implementare a mio avviso tramite Agid, che recepisca dagli enti preposti tutte le codifiche utili (non solo comuni e stati esteri) e renda disponibile in formato download o interrogazione web/api, i codici che poi tutti gli enti pubblici (ma volendo anche sviluppatori extra) debbano utilizzare perchè l’ente A per comunicare con l’ente B scriva e intenda la stessa cosa.
Nell’esempio dei comuni funzionalità di:

  • consultazione comuni attuali per provincia o nome
  • riconoscimento di denominazione storiche
  • ecc…

Ma parlo di fondamenta, quindi non troverò mai nessun amministratore che sia interessato all’argomento, quando il loro scopo è quello di far vedere quanto è bello il tetto.

Marco Migliori

10 Likes

Hai ragione, queste sono le questioni concrete (e se vogliamo anche banali) che tengono fermi i progetti. Se non le sciogliamo arriviamo con difficoltà ad una soluzione stabile ed efficace.

1 Like

Ping @lilloraffa @rasky

1 Like

Dire che le tue sono parole sante è dire poco. Speriamo che qualcosa si muova.
L’esempio che hai fatto con il cambio di capoluogo Forlì-Rimini è al limite del ridicolo, se uno ci pensa…

Se non si rendono disponibili delle REST Api (o qualcosa di analogo) ma Files da scaricare, si fa un passo avanti ma mezzo passo indietro… L’aggiornamento dei dati sarebbe da fare manualmente (riscaricare e sostituire il file). Le tecnologie per rendere il tutto più semplice ci sono! :slight_smile:

3 Likes

Per trovare le modifiche ho consultato un sito non della PA e per recuperare i codici ISTAT nuovi ho usato l’ISTAT stesso https://www.istat.it/it/archivio/6789 e l’agenzia dell’entrate http://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Schede/FabbricatiTerreni/Archivio+Comuni+e+Stati+esteri/Consultazione+Archivio+Comuni+Stati+esteri/?page=consulatacatipimp

1 Like

Ciao a tutti, cercando in giro un servizio che implementasse la ricerca dei comuni mi sono imbattuto in questo thread. Sembra che non ci sia molto in giro e quindi volevo comunicarvi che sto lavorando ad un servizio che possa offrire un API semplice con qualche possibilità di ricerca.

Il JSON che ora tiro fuori è questo (devo implementare tutti i campi e la ricerca per ogni campo):

{
	"results": 7970,
	"page": 1,
	"has_more": true,
	"data": [{
		"denominazione_corrente": "Roma",
		"denominazione_regione": "Lazio",
		"popolazione_legale_2011_str": "2.617.175",
		"popolazione_legale_2011": 2617175
	}]
}

Per ora ho implementato una semplice ricerca sulla denominazione e regione, con una lmit e page per iterare sui risultati, ordinati per popolazione.

I campi idealmente manterranno la stessa terminologia del csv dell’ISTAT (per comodità dei fruitori), e verranno aggiornati controllando periodicamente il permalink offerto da loro. Offrendo un Etag è possibile controllare eventuali cambiamenti senza sforzo, ed un check periodico ogni tot (giornaliero?) sarà possibile avere API sempre fresche.

Un po’ di tempo fa avevo implementato anche un servizio di ricerca geolocalizzata (https://github.com/enrichman/gomuni), non pubblicato, che potrebbe essere interessante unire a questo.
A partire dagli shapefile offerti dall’ISTAT riesce a capire in che comune ci si trova. :slight_smile:

Fatemi sapere se può interessare. :slight_smile:

1 Like

Carino!
Vuoi farlo pubblicando il sorgente su Github?
Come file geografico se vuoi posso provare a generare in shapefile o geojson da OpenStreetMap (è una idea che ho da un po’ per http://osm-estratti.wmflabs.org/estratti/) con quantomeno il codice istat.

Probabilmente si, alla fine si tratta di un servizio semplice!
Per la parte geografica in realtà ho già tutto, se vedi il repository c’è il link dell’ISTAT da dove scaricare gli Shapefile dei comuni. :slight_smile:
Dovrei vedere si ci sono più aggiornati magari!

Trovo abbastanza spiacevole che centinaia di programmatori ed aziende abbiano dovuto e debbano affrontare questa problematica con relativo impiego di risorse, anche perchè una soluzione centralizzata sarebbe relativamente semplice da realizzare.

In ogni caso l’approccio di Enrico Candino mi pare adatto, ma penso che una soluzione completa debba trattare anche i dati storici e permettere la ricerca per provincia.

Credo che la cosa derivi semplicemente dal fatto che i comuni sono una cosa che cambia davvero in maniera sporadica, e che sia più semplice e meno oneroso distribuire un csv.

Le possibilità di ricerca saranno complete, si tratta di pochi dati e non credo che le chiamate saranno moltissime. Ieri ho pubblicato il servizio su AWS per provare, mi manca da pulire un po’ il codice e ci siamo.

Nella tabella di riferimento usata per l’ANPR ci sono più di 19000 righe, mentre i comuni attuali sono circa 8000, quindi le modifiche non sono poi così sporadiche, e sono stato testimone diretto di, per esempio, problemi con i comuni cessati perchè non più italiani.
Ma ovviamente dipende dai casi d’uso che si vuole coprire.
Una soluzione centralizzata dovrebbe essere progettata per coprire tutti i casi d’uso, mentre inevitabilmente le soluzioni che tanti, me compreso, hanno sviluppato avevano l’obiettivo di risolvere soltanto il proprio problema, nel minore tempo possibile.