CSV to RDF: nuovo tool opensource – we want you
Premetto che sono un soldato di trincea e quindi sbaglio e chiedo aiuto.
E’ questo il caso del mio nuovo tool CSV-to-RDF dove l’aiuto l’ho chiesto a Claude e al Prof. Davide Taibi, uno dei massimi esperti di semantica in Italia.
Ho scritto tutto nel README ma vi spiego sinteticamente perchè ho fatto questo tool.
In Italia ci sono 69.000 dati aperti documentati sul Catalogo Nazionale dei Dati Aperti di AgID, e la maggior parte sono CSV, cioè formati considerati aperti, a 3 stelle.
La scala dei formati ha anche i 4 stelle e i 5 stelle, quest’ultimi chiamati Linked OpenData. Sono dei dati aperti strutturati e collegati tra loro mediante tecnologie web standard (URI, RDF), creando un web semantico.
Non tutti hanno la possibilità di realizzare questa architettura. In Italia quasi sempre sono enti centrali (Mibac, INPS, INAIL, ISPRA per citarne alcuni) oppure Città molto grandi come Milano o Bologna.
La maggior parte dei CSV sono molto “poveri” semanticamente e spessissimo provengono da pubblicazioni manuali. Negli ultimi anni alcuni fornitori IT, grazie soprattutto al PNRR, hanno reso interoperabili i propri applicativi verticali, per la pubblicazione automatica verso Dati.gov.it . Ma sono spesso solo CSV o al massimo JSON con struttura dei campi che provengono direttamente dalla loro banca dati.
L’idea è fornire un tool, che può ovviamente essere customizzato ed integrato da parte dei fornitori ma può essere usato direttamente dal funzionario, che svolga 2 compiti:
- Controllare la struttura del CSV per un’autovalutazione minimale ma necessaria;
- Trasformare il CSV, arricchendolo con le ontologie, vocabolari e schemi, presenti su schema.gov.it, in formato Linked OpenData (TTL e XML del mondo degli RDF);
L’approccio è stato misto: creare un tool snello ma che faccia pochi errori, con la possibilità di incollare il contenuto del CSV, inserire delle API di un sistema di AI a scelta tra Anthropic, Mistral, Groq e Gemini, far analizzare quali ontologie , vocabolari controllati e schemi dei dati, si potessero applicare dall’elenco fornito da schema.gov.it e quindi trasformare il CSV in RDF (sia TTL che XML). C’è poi anche una validazione ex post opzionale per vedere se non ci siano state allucinazioni.
Si perchè è vero che va chiesto “aiuto” all’AI per automatizzare tutto, ma spesso i vari LLM si inventano cose. Sono verosimili ma qui dobbiamo essere quanto più precisi possibili.
Di errori immagino ne riscontrerò tantissmi. Ma vorrei che foste voi a comunicarmeli.
We Want You! recitava il vecchio Zio Sam. Lo spirito è diverso ma la finalità è simile. Diamoci tutti una mano a migliorare la qualità dei dati, non solo dei metadati.
Questo percorso passa inevitabilmente nello strutturare meglio i CSV, avere formati più “ricchi” semanticamente in modo che poi si possano collegare (linkare) tra loro. Ovviamente il fine è pubblicare insieme al CSV, anche il file o files cosi generati sul proprio catalogo opendata.
Si perchè spesso i Comuni pubblicano un insieme abbastanza circoscritto di argomenti: anagrafici, statistici, traffico, spese, incidenti, luoghi della cultura ect. Quindi quanti più Comuni armonizzano i dati, tanto più facilmente sviluppatori ed esperti possono creare dei Data Spaces, e non solo dei Silos impermeabili tra loro.
Tra i ringaziamenti, a parte Davide Taibi, non possono mancare Andrea Borruso e Matteo Fortini che in questo periodo hanno ispirato una cosa di fondo che ci accomuna: rendere più semplice e democratico l’accesso ai dati.
Quindi GRAZIE a voi che siete di esempio ogni giorno con la vostra spinta civica e la vostra professionalità
Post Scriptum: per usare il Tool servono le chiavi API dei servizi di AI più famosi, ma si può personalizzare per usare un Proxy Server per Ollama ed usare anche immagini in locale di AI, ma ci vogliono risorse hardware decenti e GPU a servizio del calcolo computazionale che non tutti hanno. Sono opzionali! ho introdotto un modello deterministico. Non c’è quindi bisogno per forza dell’AI.
Buon test e aspetto i vostri suggerimenti su Telegram. Contattatemi pure.
