Buongiorno a tutti,
Avrei voluto scrivervi prima, ma come qualcuno già sa sto impacchettando le cose per trasferirmi in UK dove, tra Oslo e Nottingham, lavorerò ad un progetto di ricerca e al mio PhD. Niente che riguardi l'IT, ma Filosofia della Scienza. Nulla di cui preoccuparsi, tramite Pionero,
italianvalley.wired.it/ (a breve) e SOD continuerò a fare il guastafeste.
Un piccolo backdrop: ho lavorato due anni alla Evodevo.it, mi sono occupato principalmente di ontology/data modeling. Ho lavorato per lo stesso periodo con Filippo D'Angelo, ora responsabile opendata INPS, occupandomi della fase di startup dell'istituto su tutti i fronti (analisi dati, modelli, strumenti di accesso, comunicazione, webinar, strategie di apertura, definizioni legali e procedure di trasparenza). È stato un lavoro molto molto lungo, ma soddisfacente. Lungo perché far cambiare direzione ad un'istituto del genere è come voler raddrizzare la torre di Pisa con le mani; lungo perché, per quanto non esiste una vera e propria strategia di governance solida che faccia lavorare gli enti in concerto, l'ecosistema amministrazione è comunque uno scontro di esigenze e obbiettivi differenti. Soddisfacente perché, lo dico con contentezza, non mi aspettavo di poter far tirare su tutte queste cose in "poco tempo". Sono stato, anche a detta di molti, fortunato anche ad aver trovato nell'INPS una persona disposta ad imparare molto e a fare altrettanto.
Veniamo a noi. Premetto che la definizione del modello OWL generale è stata portata avanti per lo più da una mia collega, Claudia Corcione, mentre io lavoravo altri dati delle Aliquote e API (insieme a @Riccardo_Vacca e Riccardo Troccoli), quindi nel caso non dovessi essere esaustivo vi metterò in contatto anche con lei.
Due cose per inquadrare le domande. La fase iniziale di avviamento all'opendata nelle PA italiane è stata caratterizzata da: scarsità di risorse da investire (giornate uomo/function point consuntivabili) difficoltà di comunicazione (mancanza di capacitá di indirizzare problemi sociali e mancanza di strumenti OpenGov admin/citizen) non conoscenza della risorse informative (mancanza di comunicazione inter/intra PA, predominanza del concetto di "raccolta" dati rispetto a quello di "cura"). L'INPS non fa eccezione, anzi, come PA gigantica a volte ha alcuni di questi punti molto estremizzati. Aprire i dati dell'INPS quindi ha significato per lo più dotarsi di:
1. Una buona strategia di apertura [risparmiare soldi, utilizzare ciò che già è in essere, ottimizzare le scelte attuative in modo che massimizzino i principi Open sui quali le scelte si basano ma soprattutto consentano di massimizzare la qualità delle scelte future in agenda; una buona agenda governativa non può e non deve prevedere passi di gambero]
2. Buone pratiche di utilizzo del patrimonio pubblico [essere developers/citizen demand-driven è mandatorio. Liberare dati in un periodo in cui quei dati possono servire a figure professionali diverse può essere un buon modo di "ingaggiare" i cittadini (vedi caso Aliquote INPS o contributi per i lavoratori domestici). Liberare dati in modo che la metodologia di utilizzo e i modelli di riferimento siano di sufficiente qualità (rappresentano davvero tutte le info e siano processabili senza difficoltà) ma al contempo che entrambe le cose non creino un monopolio di concettualizzazione, cioè in sostanza che non si arrivi a prediligere un certo formato o un certo standard solo perché implicitamente si è sempre usato quello (la fossilizzazione della forma, per altro, ha comportato nel tempo che i dipendenti delle PA usano Excel come fosse Photoshop, per cui si arriva per amore della precisione ed eleganza a creare xls talmente barocchi da essere praticamente pattume. E no, openrefine non ce la fa)]
3. Buona comunicazione [fare storytelling del processo di apertura dei dati è fondamentale. Consente all'utente di capire, incasellando tutte le novità in un percorso che ha obbiettivi e milestones precise. Consente alle altre amministrazioni di avere un panorama chiaro di cosa stanno facendo le altre, e migliora lo scambio delle best practice già attuate, nonché il netoworking tra gli opendatari nelle PA]
Questo approccio, secondo me, evita alcuni rischi:
1. Pensare prima di fare consente di non cadere troppo facilmente nelle trappole di alcuni vendor illusionisti. Permette anche di prendere scelte lungimiranti, di modo da evitare di intraprendere un percorso che poi possa presentare un momento di stacco rispetto al panorama generale, che comporterebbe il necessario riadattamento di metodo e strategia con conseguenti costi molto alti (sia politici che economici)
2. Se non ti lasci guidare e non sai ascoltare la domanda non potrai mai sperare che i dati arrivino ad avere un impatto sociale reale sui cittadini. Ad esempio se mi rilasci le tabelle di calcolo per i contributi domestici dopo la scadenza del termine di pagamento hai perso un'occasione per spingere un nuovo modo di gestire le informazioni del settore pubblico. Se non trovi il giusto bilanciamento nel modo in cui i dati devono essere prodotti, rischi di alimentare un'entropia di dati inutilizzabili. Rendere questi interoperabili ha un costo altissimo in giorni uomo, perché è quasi un lavoro di artigianato.
3. Non comunicare bene non significa non comunicare affatto, significa fare danni per lo più. E se i danni avvengono in fase di accordo tra amministrazioni i risultati possono avere un impatto critico sul processo di apertura di tutti gli enti.
Veniamo ai punti:
L'ontologia e i dati Linked
L'ontologia DominioINPS è la prima versione rilasciata di un progetto ancora in essere che subirà diverse fasi di sviluppo nel futuro. La scelta di rilasciare a partire dall'OWL si inscrive nella strategia di implementare il progetto verso due direzioni:
1. Progetti di ricerca sperimentali sui Linked (ma su questo non posso dire di più). L'owl, al contrario dell'RDF, è decisamente più espressivo e permette di modellare anche oggetti complessi come servizi e processi che presentano cardinalitá di organizzazione e temporalità molto difficili da gestire con il solo RDF. Ovviamente il problema non si pone per i dati, ma poiché l'ontologia ha sviluppi ulteriori che prescindono dall'opendata (in senso immediato), rilasciare il download in owl consente di operare su un modello sulla base del quale poter implementare Open Service basati su una semantica solida, in grado di supportare una logica il più possibile complessa. Inoltre, anche in riferimento ai dati, senza proprietà come owl:sameas avremmo grandi difficolta a creare dati linked tra diverse fonti. D'altra parte l'owl non rappresenta un vero ostacolo, perché con due minuti puoi tirarti fuori la serializzazione che preferisci. E la serializzazione RDF/XML da sola non garantisce la consistenza semantica associata ai dati. ad esempio che io dica "andrea mangia una mela" o "una mela mangia una mela" questo comunque rappresenta un rdf valido, ma lil layer semantico predilige sicuramente la prima tripla piuttosto che la seconda. Non rappresenta quindi un vero e proprio impedimento. Irene giustamente sottolineava come il turtle sia effettivamente più espressivo dell'Owl sul versante First Order Logic, nonché più facile da scrivere. Tuttavia implementare una FOL significa anche andare incontro a dei tempi più lunghi di risposta e i dati devono essere curati in modo tale da rendere le FOL inference un vantaggio rispetto alla più "semplice" DLogic. Per questa ragione la prima versione del DominioINPS è stata rilasciata in questo modo. Perché offre una base di modellazione di partenza di buona qualità, sia per quanto riguarda il modello che i dati veri e propri, le cui evoluzioni possono essere schedulate a seconda dei percorsi che si vogliono intraprendere.
Un piccolo inciso per dire che molto spesso si fa confusione tra vocabolari RDF e vere e proprie Ontologie. Se le prime esprimono alcune difficoltà legate alla classificazione tassonomica, le seconde presentano problemi molto più ontologici, cioè legate alle scelte di modellazione delle entità (avvertenza! C'è molto dibattito in merito alla distinzione quindi non mi lapidate :) ). Molto spesso infatti le Ontologie di dominio (come nel caso di INPS) e le task ontologies sono valutate a partire dall'UML di un ontologia fondazionale. Questo livello di precisione nella modellazione si trova per ora solamente in qualche centro di ricerca ma, per chi fosse interessato, vi segnalo quella che è stata la mia Bibbia (
http://doc.utwente.nl/50826/1/thesis_Guizzardi.pdf). Giancarlo è un ricercatore molto molto in gamba e ho avuto la fortuna di averlo come prof alla scuola di dottorato dell'FBK sulle Ontologie applicate. Faccio anche notare Alfredo che la riusabilità degli OWL è alta, ma richiede un livello di competenza altrettanto specialistico. Quindi, secondo me, è l'ontology web Language non va usato per "dire" tutto, semplicemente perché una lingua più forbita non significa necessariamente una lingua più significante ma anche solo semplicemente una competenza più alta dei parlanti di quella lingua nell'utilizzo dei significati.
2. La seconda direzione si inscrive invece proprio nel panorama OpenGovData e LOGD. Ci tengo alla distinzione, perché se non si concentrano gli sforzi per separare e standardizzare i dati governativi regnerà sempre il caos a livello di standard. Esempio pratico: come strategia di rilascio ho preferito evitare dataset che fossero classificati con ATECO, semplicemente perché tra "poco" AGID in collaborazione con ISTAT dovrebbe rilasciare il vocabolario ATECO RDF. Dal momento che questo vocabolario e alla base di moltissimi dati, se non ne curassimo un vocabolario semantico perderemmo l'occasione di rafforzare l'interoperabilitá del PSI italiano. Provo a rispondere per punti a tutto, ma siete stati così in gamba che se dimentico qualcosa perdonatemela:
2.1 Gli Owl dei dataset - ogni owl dei dataset ha un ns associato, quindi la separazione tra ns di abstract schema e istanze è già presente. Per comodità potete vedere nel l'ontologia sia i ns di riferimento esterno (tipo DCAT) sia quelli dei dataset (leggermente separati, sono identificati dagli ID che i dataset prensentano all'interno del DB INPS. La sottigliezza sta nel presentare dei dati definiti da un ID unico per qualsiasi tipo di acceso uno effettui: LOD, API o semplice download. Se infatti provate a scaricare una tabella vedrete nella URI di download lo stesso ID che definisce la tabella nell'OWL). Per quanto riguarda i metadati. Poiché allo stato attuale delle cose non è presente content negotiation, i metadati associati all'interno non generano duplicazione. Non tenere conto avrebbe significato il rilascio di dati non consistenti. Ovviamente, come sostenete giustamente, nel momento in cui verrà esposto uno SPARQL, i dati verrano alleggeriti e riconsolidati. Il "chunck autocontenuto" come dice Irene, segue la logica delle "future integrazioni", come dice Alfredo (ma questa logica funziona solo se dietro hai una "buona strategia", cioè se poi l'endpoint me lo apri). Per il momento gli owl dataset devono rispettare i requisiti di primo rilascio e quindi devono avere i metadati al loro interno. Sottilineo anche che se così non fosse, la scelta del modello JSONLD per le API perderebbe di efficacia, almeno in parte. Accenno in breve: la v2 delle API mapperà il modello API LD con il modello DominioINPS, soprattutto per quanto riguarda alcuni vocabolari strutturali, come SDMX, DATACUBE e DCAT (quest'ultimo già impiegato nel bulk). In questo modo si potrá offrire un JSONLD vero e proprio, perche l'impiego che ne è stato fatto nelle API è di tipo "light", come lo chiamo io. ma su questo torno dopo. Sarà quindi possibile sia accedere all'owl come distribution resource, sia avere i dati tramite Bulk sfruttando la capacità del JSONLD di modellare dati linked. Se non ci fossero i metadati del dataset le risorse rappresentate nel bulk non sarebbero definite. Questa soluzione, per altro, secondo me, è più leggera rispetto alla decisione di fare retrieval dei metadati dal l'ontologia generale. È una via percorribile, più elegante, ma può presentare un costo computazionali più alto. Per non parlare di tutte le difficoltà associate ai servizi (soprattutto a livello di WMO) che un ente grande come INPS eroga.
2.2 accessibilità LOD - si, sarà aperto un endpoint e si, DominioINPS avrà al più presto una comoda PURL, così da poter navigare bene i dati anche con roba tipo LODLIVE (che mi fa sempre divertire). La serializzazione RDF ha qui senso, proprio perché in quel momento saranno veri LD on the web. Ma, secondo me, questo è uno step di accessibilità dati, più che di modello, per le ragioni che vi dicevo sopra. Per quanto, come qualcuno ha abilmente colto, ho sempre preferito tagliare lo startup Opendata INPS in senso di sviluppo (caro il mio Alfredo :) ) alcuni strumenti di interrogazione richiedono altrettanto competenza come l'uso dell'Owl. Recentemente stavo studiando qualche soluzione per rendere le query più user friendly. Treasury.io ha adottato una buona soluzione, basata su faceting delle query, che rende ai giornalisti la vita moolto più semplice. Lo sviluppo di un endpoint, quindi, secondo me ha poco senso se non si rende l'interrogazione multimodale.
2.3 copertura legale - Sulla LiMo ho speso un quasi due settimane di notti, per la gloria ovviamente. Mi venne l'idea verso gennaio, perché a forza di studiare leggi, norme e provvedimenti poi cominci a farci l'occhio (miccia scatenante Ernesto Belisario, un amico e un professionista nel suo campo, che mi ha acceso il gene del legal nerd). Stavo cercando un modo per rendere interoperabile le inferenze sulle condizioni legali dei contenuti. Ti ricordi Matteo? su quelle Cc ci stava già lavorando Aaron. Alla fine ho proposto l'idea a Chiara Veninata (ACS) Silvia Mazzini (Regesta) senza il cui aiuto non avremmo messo su nulla (Diego Camarda ci ha dato una grossa mano). Abbiamo fatto tutto sommato un buon lavoro di team, e adesso la LiMo è in valutazione su
lov.okfn.org. Sul territorio europeo ne sono presenti tre: la nostra italiana, una francese di un gruppo di ricerca, e una inglese di Leigh Lodds che ora lavora come Consultant all'ODI. La nostra è la più fica ovviamente (scherzo, ma non troppo). Abbiamo quindi deciso di utilizzare la LiMo per coprire le condizioni legali almeno degli OpenGovData, perché cosa si può o non si può fare dev'essere trasparente sempre. Faccio notare che l'individuo limo:license che definisce i temini di DominioINPS sarà online a breve quando anche l'ontologia sarà su LOV. Quindi vi ringrazio per aver apprezzato la cosa, mi fa immensamente piacere. Sottolineo anche un altro aspetto della licenza: i dati sono coperti da IODL2.0 come sapete, l'owl ha la distribuzione CCBYSA. Questo significa che tutto i lavori derivati, versioni più evolute o altro che esce da li deve tornare al Public Sector Domain. Questo garantisce l'auto sostenibilità dell'ontologia come bene comune. Inoltre molti altri enti utilizzano concetti definiti nel modello INPS, e questo inverno, se gli va, potrebbero utilizzare le classi definite ( es. <inps:contributifigurativi> ), migliorando l'interoperabilitá di tutto i dati del settore pubblico. Ovviamente, come forse avete visto, la versione bilingue consente di identificare i contatti necessari per inoltrare ulteriori evoluzioni. Che l'invito sia esteso anche a chi lavora su/con altri enti omologhi a livello europeo mantiene la direzione di valutare le direttive ePSI come un livello di scelte strategiche più che importante. INPS ha infatti cominciato ad aprire seguendo le direttive europee sul riuso nel PSI.
2.4 le API - se parliamo di API vi invito a sentire @Riccardo_Vacca, quello veramente bravo tra i due :) , il progetto nasce dal l'esigenza di harvesting di
dati.gov.it per l'aggiornamento dei dati INPS, prima condotto con lunghissime e noiosissime estrazioni (costoso e lento). Quindi come fa vedere giustamente Afredo il paradigma di partenza è REST. Ma detto tra noi non ci soddisfaceva. Primo perché la prima versione avrebbe solo permesso di fare retrieval del datacatalog e dei metadati, secondo perché nel frattempo stavamo sviluppando i linked, e il JSONLD ci è sembrata la scelta strategica e tecnica più adeguata. Nello stesso momento avevano invitato Evodevo al G8 per il tax, trades and Trasparency table per gli opendata. Nelle discussioni dei mesi precedenti si era già parlato della necessità di rilasciare i dati in bulk. Quindi abbiamo pensato di utilizzare una versione "light" di JSONLD, cioè utilizzarlo non per veri e propri linked (la cui mappatura sarebbe avvenuta successivamente), ma per i dati i cui metadati erano embeddati nel dataset. Un piccolo aggiornamento: le API sono "intelligenti", cioè quando anche solo un array di dati è corrotto da un errore di riga, o di contenuto di riga, questo viene isolato con un tag e identificato come "fixing in progress". Due sono le ragioni: trasparenza (se ci sono errori lo devo sapere e dire subito) interpretazione (questo meccanismo previene i casi di interpretazioni errata non voluta dei dati a partire da banali e non voluti errori di trascrizione di riga). Per le altre funzioni vi rimando al reference document. Altro aggiornamento: si, gli owl verranno aggiunti. Le API hanno anche un obbiettivo strategico e politico ben definito (e qui lo confesso un po'):
2.4.1 accessibilità e dati per lo sviluppo: non si può lavorare bene se si è obbligati a scaricare i dati uno per uno. Le api sono fondamentali per aumentare la sostenibilità del lavoro, come la qualità. Senza dati le API perdono di efficacia come mossa orientata a favorire lo sviluppo economico di business basato su opendata. La possibilità per una startup come
enigma.io o
spaziodati.eu di potersi caricare l'intero OpenDataCatalog INPS e lavoraci aumenta il tempo per la creatività e diminuisce quello di data cleaning, permettendo anche di concentrarsi e studiare il significato dei dati oltre che la loro organizzazione.
2.4.2 competizione e dati per lo sviluppo: non ci può essere vera competizione se non si ha un uguale accesso alle risorse opendata. Il bulk JSONLD permette a tutti di poter testare le proprie capacità, permette alle aziende e alle università di fare ricerca alla pari. Dal momento che un datamarket non si crea da solo, se non permettiamo a chi sa lavorare di far vedere cosa sa fare non avremmo molte possibilità di creare un ecosistema dei dati basato sulla collaborazione di diversi tipi di stakeholders, piuttosto un monopolio di pochi.
2.4.3 quali dati per lo sviluppo: i dati INPS sono considerati high-value dalla G8Opendata Chart (chissà come mai ;) ) e sono altrettanto interessanti da modellare, nonché molto complessi, poiché richiedono uno studio approfondito del dominio. Alfredo fa giustamente notare come INPS abbia molti dati. Verissimo. È ne ha ancora di più di quel che pensate. L'unico modo per averli ora è chiederli. Quindi accesso civico come se non ci fosse domani.
Piccola nota sul finire: purtroppo è complesso far cambiare rotta alle PA per quanto riguarda l'architettura dell'informazione, causa azienda inhouse poco attente agli aggiornamenti normativi e, per gran parte, pigre..più i soliti movimenti politici nelle PA. Il sito non è valorizzato per nulla. Basterebbe molto poco. È qui che entra in gioco il fattore buona comunicazione, quella che serve per intraprendere la fase di startup più OpenGov di un ente. Ma questo, sono convinto, è uno scoglio che richiede un impegno politico che non può essere isolato e sicuramente arriverà gente decisamente più preparata di me questo versante.
Se ho dimenticato qualcosa redarguitemi e vi riscrivo. Riguardo alle novità INPS opendata per inverno 2013 e anno 2014, non lavorando più al progetto, non posso darvi tempi certi. In ogni caso grazie del bel thread, scusate se sono uscito forse un po' dal topic stretto dei LOD, ma un po' di contesto serve per capire i problemi, i punti di forza e le modalità attuative di un progetto che, oltre a dare vita a un discorso di best practice stretta te legato ai LOD, persegue anche i principi dell'opendata per i quali ci stiamo battendo ormai da anni. Rimango comunque sempre a disposizione per qualsiasi altra cosa. A presto.
Andrea
Ps: Matteo quando trovo il tempo provo a mettermi a lavorare su PACO (Public Administration Curricula Ontology), tanto non c'è pericolo che le cose in Italia vadano troppo veloce.