Page MenuHomeGitPull.it

Bug nel dataset del Ministero dello Sviluppo Economico riguardante i prezzi delle stazioni di rifornimento italiane
Open, LowPublic

Description

NOTE: Questo Task mi aiuta a tracciare un bug nel dataset del MiSE sui prezzi delle stazioni di rifornimento italiane. Qui ulteriori informazioni.

Premessa (perché ho trovato questo problema)

Nel 2015 ho sviluppato un altro comparatore di pompe di benzina italiane durante un hackaton di 24H promosso da una nota compagnia assicurativa italiana. Ecco il progetto: https://fuel.reyboz.it/. È fatto con colla e spaghetti e con poche ore di sonno ma ha funzionato bene e abbiamo vinto. Ma questo non è il punto.

Quel progetto è stato basato su un dataset fornito dal MiSE - Ministero dello Sviluppo Economico. Bene, quel dataset era corrotto dal 2015 ma ora (2021 2022) è in qualche modo ancora più corrotto.

In breve, sono sicuro che in un mondo migliore il MiSE dovrebbe sistemare il suo dataset. Il problema è che non sono stato in grado di contattare il MISE in nessun modo. Ho provato dal sito ufficiale e ho provato via social, e ho provato via telefono, ma i bug nel loro dataset sono ancora lì.

Altre FAQ:

  • No, non ho violato nessun sistema di sicurezza
  • No, non ho manipolato un settore di memoria protetto
  • No, non ho distrutto o danneggiato alcun sistema
  • È solo un dataset corrotto e chiunque nel mondo può vedere che NON è colpa mia se è così
  • Chi ha la capacità di riparare? Il MISE.

Passi per riprodurre il problema

  1. Scaricare il file anagrafica_impianti_attivi.csv da https://www.mise.gov.it/index.php/it/open-data/elenco-dataset/2032336-carburanti-prezzi-praticati-e-anagrafica-degli-impianti
  2. Aprire con LibreOffice (impostare il separatore sul punto e virgola - Sì, lo so, CSV significa letteralmente valori separati da comma (virgola) e invece loro usano usano il punto e virgola. Per favore non litigate per questo. Questo non è il nostro problema principale.
  3. Notate che il dataset è corrotto almeno sull'ID 46593 (linea 29) su una riga relativa a MEGA SERVICE S.A.S.

Panoramica rapida (scorrere fino alla riga 29):

1Estrazione del 2021-03-16
2idImpianto;Gestore;Bandiera;Tipo Impianto;Nome Impianto;Indirizzo;Comune;Provincia;Latitudine;Longitudine
346351;DI BENEDETTO CARBURANTI S.R.L.;DBCarburanti;Altro; VILLASETA;VILLASETA S.S.115 KM 186,225 ;AGRIGENTO;AG;37.29331979071349;13.569776862859726
423778;ALFONSO DI BENEDETTO CARBURANTI LUBRIFICANTI SRL;Sicilpetroli;Altro;A. Di Benedetto srl Via Imera Ag;VIA IMERA 10 92100;AGRIGENTO;AG;37.312390927445705;13.58591309570079
549195;EOS SERVICES S.R.L. A SOCIO UNICO;Q8;Altro;AG021;VIA PETRARCA S.N. 92100;AGRIGENTO;AG;37.29823424642592;13.589792251586909
649460;EOS SERVICES S.R.L. A SOCIO UNICO;Q8;Altro;AG023;CONTRADA FONTANELLE S.N. 92100;AGRIGENTO;AG;37.32612049037331;13.591820001602168
749459;EOS SERVICES S.R.L. A SOCIO UNICO;Q8;Altro;AG024;VILLAGGIO MOSE' S.N.C. 92100;AGRIGENTO;AG;37.274323998719915;13.61422437766179
849199;EOS SERVICES S.R.L. A SOCIO UNICO;Q8;Altro;AG025;VIA L. SCIASCIA S.N. 92100;AGRIGENTO;AG;37.27710275149494;13.61069530248642
925614;SERVIZI & GESTIONI ITALIA S.R.L.;Q8;Altro;AGRIGENTO VIA FOSSE ARDEATINE LOC.VILLASETA;VIA FOSSE ARDEATINE LOC.VILLASETA 92100;AGRIGENTO;AG;37.29582883251122;13.547611503041026
1043380;ELETTRONIA SERVICE S.N.C. DI MIGLIORINO FRANCESCO E TUTTOLOMONDO BALDASSARE;Esso;Strada Statale;AREA BORSELLINO;Strada Statale, Km. 141+42, RAFFADALI-AGRIGENTO 92100;AGRIGENTO;AG;37.34959953305459;13.558641693865752
1139653;ALBA ALESSANDRO;Agip Eni;Altro;AREA SI SERVIZIO ENI;CONTRADA SAN MICHELE SNC 92100;AGRIGENTO;AG;37.33398294716085;13.595558255910873
129254;DISTEFANO CARBURANTI DI DISTEFANO FABIO E C. S.A.S.;Q8;Strada Statale;BAR DELLA VALLE;Statale 640 di Porto Empedocle, Km. 10, dir. AG CL 92100;AGRIGENTO;AG;37.31145034380066;13.608648777008057
1347618;CALANDRA ALESSANDRO;Q8;Altro;distributore q8 ;VIA CAPITANO CALLEA SNC 92100;AGRIGENTO;AG;37.32807515110061;13.66187072972281
1443389;ELLEVI S.A.S. DI MESSINA LUIGI E MESSINA VITTORIO;Q8;Altro;Ellevi sas Q8;VIALE EMPORIUM 192/BIS 92100;AGRIGENTO;AG;37.274077216030335;13.58533838039125
1527962;NOBILE OIL GROUP S.P.A.;Agip Eni;Altro;Eni - Via Imera;VIA IMERA SN 92100;AGRIGENTO;AG;37.31670576105686;13.580794036388397
1621524;NOBILE OIL GROUP S.P.A.;Agip Eni;Altro;ENI - Vill. Mosè;VIA LEONARDO SCIASCIA SN 92100;AGRIGENTO;AG;37.271179903909264;13.626721501350403
1724949;ERRIU ENRICO;Sicilpetroli;Altro;ERRIU ENRICO;VIA FRANCESCO CRISPI 12 92100;AGRIGENTO;AG;37.308234929449384;13.586577368122903
1843134;G.CAMPIONE DI MICHELE & FRATELLI S.N.C.;Esso;Altro;G.Campione Carburanti;Via Imera 200 92100;AGRIGENTO;AG;37.315139767313354;13.583115311293
1928277;SERVIZI & GESTIONI ITALIA S.R.L.;Q8;Altro;QUADRIVIO SPINANSANTA - AGRIGENTO;QUADRIVIO SPINANSANTA 92100;AGRIGENTO;AG;37.31919829622775;13.581069525760313
2047052;SERVIZI E GESTIONI ZENIT S.R.L. IN SIGLA - ZENIT S.R.L.;Giap;Altro;VIA PETRARCA AGRIGENTO;VIA PETRARCA 92100;AGRIGENTO;AG;37.303777234919984;13.586254217136684
2147646;IDA Y VUELTA SOCIETA' A RESPONSABILITA' LIMITATA;Q8;Strada Statale;Q8;118 Corleonese Agrigentina, Km. 93+63, corleone 92010;ALESSANDRIA DELLA ROCCA;AG;37.561706910956566;13.451526987120213
2247950;EOS SERVICES S.R.L. A SOCIO UNICO;Q8;Altro;AG017;VIA ROMA 180 92021;ARAGONA;AG;37.400603329350034;13.617632240056986
2311161;RIZZO GIOVANNI;Q8;Altro;stazione di servizio rizzo giovanni;VIA S.LA ROSA 135 92021;ARAGONA;AG;37.395494269083635;13.621182051589926
2432468;CAFE' VALI' DI CARBONE R. E MANISCALCO R. E C. S.N.C.;DBCarburanti;Altro;DB Carburanti Cafe Vali;via FEDERICO II DI SVEVIA snc 92010;BIVONA;AG;37.61469951280094;13.435480669140815
2516211;FALCO CARBURANTI S.A.S. DI GIUSEPPA FALCO & C.;Agip Eni;Altro;FALCO CARBURANTI SAS;VIA TRIOCOLA 2 92010;CALTABELLOTTA;AG;37.575594747823374;13.220453972167661
267842;ELIOGEST DI TRAINA MARCELLO E GIAMBRONE AUSILIA & C. SOCIETA' IN IN ACCOMANDITA SEMPLICE.;Agip Eni;Strada Statale;ENI STATION CAMMARATA;Statale 189 della Valle del Platani, Km. 18+760, dir. AGRIGENTO-PALERMO 92022;CAMMARATA;AG;37.66139284028912;13.668215274810791
2728169;SERVIZI E GESTIONI ZENIT S.R.L. IN SIGLA - ZENIT S.R.L.;Giap;Altro;VIA SAN FRANCESCO CAMMARATA;VIA SAN FRANCESCO 92022;CAMMARATA;AG;37.631579713679294;13.638728119179177
2820349;PATTI GIOVANNI;Q8;Altro;Distributore Q8 Patti Giovanni;VIA EDISON SNC 92023;CAMPOBELLO DI LICATA;AG;37.26530654024615;13.91839899122715
2946593;"MEGA SERVICE S.A.S. DI TERMINI MICHELE &C .;Q8;Strada Statale;MEGA SERVICE SAS DI TERMINI MICHELE & C.;123 di Licata, Km. 15+500, LICATA 92023;CAMPOBELLO DI LICATA;AG;37.2501591057899;13.91422614455223
3023777;ALFONSO DI BENEDETTO CARBURANTI LUBRIFICANTI SRL;Sicilpetroli;Altro;A. Di Benedetto srl V.le C. Alberto Canicatti;VIALE CARLO ALBERTO SNC
31
32...

IMPORTANT: Notare che alla riga 29 è stato aperto un apice doppio " e mai chiuso. Questo crea problemi in qualsiasi libreria di lettura dei CSV che rispetti gli standard (rispetti RFC 4180).

Problema n. 1

Il MiSE chiaramente non sta usando una libreria adatta per generare un CSV e questo causa un dataset malformato.

Soluzione:

Si prega di adottare un vero standard CSV. Per esempio, non usare un punto e virgola come collante per i tuoi dati grezzi.

Riferimento:

Problema n. 2

Il MiSE non sta ripulendo correttamente l'input dell'utente.

Per favore ripulite i valori dell'utente rimuovendo i doppi spazi. Rimuovendo le tabulazioni. Rimuovendo i newline. Rimuovendo tutto lo schifo dell'utente.

Esempio: evitate qualcuno chiamato "Mario Rossi " (notare gli spazi all'inizio e alla fine e nel mezzo). Di questi esempi il dataset è intasato. E non possiamo correggerlo noi perché viene sovrascritto ogni mattino e non si capisce come contribuire.

Problema n. 3 - entità HTML che non dovrebbero essere presenti

Ogni tanto sono presenti entità HTML. Questo è un doppio problema, intanto perchè cose come ' non dovrebbero esserci (cosa meno grave), in secondo luogo perchè queste entità terminano con punto e virgola e si rompe il formato di quella riga (problema più grave). Esempio:

50833;IP;Api-Ip;Stradale;IP;STRADA STAT. SS 16 KM 283+630, LOCALITA' MARINA SNC 60018, MONTEMARCIANO (AN)  60018;MONTEMARCIANO;AN;43.65660808741167;13.332945954167167

Notare ' che dovrebbe rappresentare un apice ma è stata scritta come un'entità HTML e questo non dovrebbe capitare in un dataset.

Problema n. 4

"CSV" significa "comma-separated values" ma MiSE genera semicolon-separated values.

Soluzione proposta: wontfix. È troppo tardi per cambiarlo ora.

Anche se è troppo tardi per risolvere la cosa, non è troppo tardi per informare la gente: per favore ricordate che la C in CSV significa COMMA e non SEMICOLON.

Soluzione proposta per tutti questi 4 problemi

Innanzitutto si propone di chiarire quali sono le fonti dei dati, affinchè sia possibile proporre una soluzione a monte (cosa altrimenti impossibile).

In generale, è necessario adottare una qualsiasi libreria CSV, invece di usare semplicemente ";" come collante tra qualsiasi valore grezzo.

Questo risolverà un approccio di programmazione non ideale che sta effettivamente compromettendo il dataset del MiSE ogni giorno da almeno il 2015.

Nel frattempo

Qualcuno dovrebbe contattare la pompa di benzina MEGA SERVICE S.A.S. DI TERMINI MICHELE &C 123 di Licata, Km. 15+500, LICATA 92023 AG chiedendo loro di togliere gentilmente il " dal loro nome, dato che il reparto tecnico del MiSE al momento non può gestire quel caso.

Event Timeline

valerio.bozzolan triaged this task as Low priority.

Hoping to be useful I've just contacted the MiSE from this page:

https://www.mise.gov.it/index.php/it/urp

Let's wait for a reply from upstream.

valerio.bozzolan renamed this task from Malformed Open Data "CSV" dataset of Italian fuel pump stations from Italian Ministero dello sviluppo economico to Dataset corrotto del Ministero dello Sviluppo Economico sui prezzi delle stazioni di rifornimento italiane.Mar 8 2022, 09:13
valerio.bozzolan renamed this task from Dataset corrotto del Ministero dello Sviluppo Economico sui prezzi delle stazioni di rifornimento italiane to Bug nel dataset del Ministero dello Sviluppo Economico riguardante i prezzi delle stazioni di rifornimento italiane.
valerio.bozzolan updated the task description. (Show Details)
valerio.bozzolan updated the task description. (Show Details)