Linked Data - Parliamo di semantica del web • Sottotitolo: Metodi e strumenti per hackerare metadati e strutture dati delle p.a., e derivarne le ontologie • Riassumo i miei precedenti lavori, svolti per alcune p.a., nella prossima slide • La presentazione e le possibilita’ di esercizio si suddividono in 2 parti: – Esperienze sulle strutture dei database (metadati di tavole e campi, constraints, etc.) – Esperienze sul catalogo agid 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Linked Data - Parliamo di semantica del web
• Sottotitolo: Metodi e strumenti per hackerare metadati e strutture dati delle p.a., e derivarne le ontologie
• Riassumo i miei precedenti lavori, svolti per alcune p.a., nella prossima slide
• La presentazione e le possibilita’ di esercizio si suddividono in 2 parti:– Esperienze sulle strutture dei database (metadati
di tavole e campi, constraints, etc.)– Esperienze sul catalogo agid
1
LM
Insert name and descr.of tables & columns.Infer physical constraints
Tag metadata by likenessof entity-names inside in
names and descr. of tables & columns
Integrated &abstractedE-R schemarepository
LD«Universe»(metadata)
Linked Data(ddl.sql/RDF/OWL)
Infer verticalAbstraction level
Entity-ierarchytaxonomy
ReuseRelationships
LMO…
From LD (Linked Data) to LMO (Linked Metadata & Ontologies)
Cosa potremo fare con le basi dati
• Spiegazione dei metodi• Esemplificazioni fatte sui tools. I tools che io
utilizzo sono oggetti abbastanza legacy, con tecnologie non piu' adeguate (access, visual basic). Puo' essere interessante impegnare le persone su alcune parti dei miei lavori, ad esempio:– provare ad ottenere gli owl partendo dai file
testuali ottenuti dalle inferenze– disegnare le owl
3
Cosa potremo fare con il catalogo agid
• fare ricerche con il bot telegram geontologie• soffermarsi sulla visualizzazione topografica (dove
risiedono geograficamente le entita')• fare query sul file ipaentitiesgeo usato dal bot, che
contiene i metadati delle ipa.
Pero' ritengo sia importante che io spieghi le cose che ho fatto ad una platea ideale che possa, un domani, hackerare altre p.a., avendo metodi di riferimento e implementandoli magari con tecnologie piu' attuali
• Raccolta di metadati e strutture delle basi dati, il tutto ottenuto con strumenti di reverse engineering come erwin
• Se richiesta, e’ possibile fare una demo del repository, scaricandolo dal link sopra
5
Repository fisico
6
Repository fisico
7
Repository fisico
8
Repository fisico
9
Repository fisico
10
Repository fisico
11
Repository fisico
12
Repository fisico
13
Repository fisico
14
Repository fisico
15
Repository fisico
16
Repository fisico
17
Repository fisico
18
Repository fisico
19
Repository fisico
20
Repository fisico (rdbTOonto)
21
Repository fisico (creare modello)
22
Repository fisico
23
Repository fisico
24
Repository fisico
25
Repository fisico
26
Repository fisico
27
Repository fisico
28
Repository fisico
29
Repository fisico
30
Repository fisico
31
Necessita’ di un repository logico
• Nel repository fisico inseriamo i metadati, le loro descrizioni e le strutture dati, corredate di constraints. Lo facciamo con tools come erwin. Possiamo gia’, con tools come rdbtoonto, reversare db relazionali (dati e metadati) e convertirli in formati ontologici quali RDF, anche partendo da csv/xls. E’ gia’ molto, ma non basta. I concetti, le entita’, sono chiamate in svariati nomi di tabelle fisiche. Gli attributi concettuali sono chiamati in svariati modi fisici. Servono metodi e tools per scovare la conoscenza e metterla a fattor comune.
32
33
Le attivita’ di recupero e integrazione della
conoscenza concettuale sui dati PAAzioni di medio termine
Le persone si dividono in donne e uomini. Le persone sono descritte da codice e cognomeLe persone sono nate in Comuni, i Comuni sono localizzati in Province e le Province in RegioniComuni, Province e Regioni hanno codice e nome
RegioneCodiceNome
Entita’Relazione Attributo
38
Dal Cobol,al modello Entita’ Relazione al linguaggio naturale
Le persone si dividono in donne e uomini. Le persone sono descritte da codice e cognomeLe persone sono nate in Comuni, i Comuni sono localizzati in Province e le Province in RegioniComuni, Province e Regioni hanno codice e nome
39
Necessita’ di organizzare gli schemi
•Integrazione, per “mettere insieme” e “riconciliare”
•Astrazione, per “capire” e “sintetizzare”
40
Integrazione (linguaggio naturale)
• Schema 1• Lavoratori e loro organizzazioni• Schema 2• Lavoratori, loro citta’ di nascita e relativa area regionale• Schema 3• Organizzazioni e regioni dove sono localizzate
•Lavoratori, loro citta’ di nascita e relativa regione•Lavoratori e loro organizzazioni, e, delle organizzazioni, •regioni dove sono localizzate
41
L’integrazione: modello Entita’ Relazione
Lavoratore Citta’ Regione
Organizzazione
lavora
nato
in
in
Lavoratore
Organizzazione
Lavoratore Citta’ RegioneArea
Organizzazione
in
in
lavoranato
42
L’astrazione (linguaggio naturale)
•Lavoratori, loro citta’ di nascita e relativa regione•Lavoratori e loro organizzazioni, e delle organizzazioni •Regioni dove sono localizzate
•Lavoratori, organizzazioni dove lavorano e riferimenti •geografici di nascita e di localizzazione.
43
L’astrazione: modello Entita’ Relazione
Lavoratore Riferimentogeografico
Organizzazione
lavora
in
nato
Lavoratore Citta’ Regione
Organizzazione
lavora
in
nato in
44
Se le usiamo insieme: integrazione + astrazione
Lavoratore
Organizzazione
Lavoratore Citta’ Regione
Area
Organizzazione
lavora
nato in in
IntegrazioneLavoratore Citta’ Regione
Organizzazione
in
in
in
nato
Lavoratore Riferimentogeografico
Organizzazione
Astrazione
in
in
nato
45
La struttura di integrazione - astrazione
Integrazione –Astrazione
Lavoratore Riferimentogeografico
Organizzazione
nato
in
lavora
Lavoratore
Organizzazione
Lavoratore Citta’ Regione
Regione
Organizzazione
lavorain innato
46
Le abbiamo usate iterativamente …… ottenendo il repository
Previdenza Giustizia Ambiente Salute
47
Schemi base e schemi astratti
Schemi astratti
Schemi base
48
… Facendo cio’ con basso utilizzo di risorse • Se procediamo con una metodologia
tradizionale di reverse engineering sui 500 schemi PAP, assumendo due settimane persona a schema, si ha:– Risorse con procedura tradizionale = 0,5
mesi persona * 500 = 25 anni persona• Dovevamo inventarci una metodologia
approssimata che ci permetta di ridurre l’uso delle risorse di un ordine di grandezza
• Scopo della metodologia: semplificare il compito del referente dati, utilizzando il piu’ possibile strumenti automatici, a costo di una certa approssimazione nelle scelte.
• Assunzione: ad un certo livello di astrazione gli schemi della PAL Piemontese sono “simili” a quelli della PA Centrale. Si differenziano nei livelli di astrazione piu’ bassi.
57
Le fasi della metodologia
Fase automatica
Schemascheletro
Schemafinale
Fasemanuale
Referente dati competentesul dominio
Fase automatica: generazione entita’• 1-GENERAZIONE ENTITA'
input:a) le entita' delle ontologieb) le tavole della base dati
output:x) le tavole "pescate" dall'algoritmoy) le entita' delle ontologie corrispondenti alle tavole pescate in x
ALGORITMO: - PER OGNI ENTITA' DELLE ONTOLOGIE (LOOP) - PER OGNI TAVOLA DELLA BASE DATI - SE C'E' ALMENO 1 ATTRIBUTO DELLA TAVOLA CHE SIA"SOMIGLIANTE" AL NOME DELL'ENTITA' DELL'ONTOLOGIA - SCELGO L'ENTITA' - ENDIF - END LOOP - END LOOP
SOMIGLIANTE = LIKE "STRINGA" IN NOME E/O DESCRIZIONE ATTRIBUTO
input:a) le entita' trovate in generazione entita'b) le tavole trovate in generazione entita'
output:x) le generalizzazioni delle entita'y) le generalizzazioni delle tavole
algoritmo:- osservando le generalizzazioni complete delle entita' delle ontologie,riporto quelle presenti nelle entita' selezionate in generazione entita'- per analogia, le tavole corrispondenti alle entita' "sposano" le medesimegeneralizzazioniCon un esempio astratto, se ho una ontologia completaA B C D E
Generazione generalizzazioni
• se precedentemente ho selezionato A, B, D le generalizzazioni trovatesarannoA B D
Se avevamo corrispondenza tra A e TAV1, B e TAV2, D e TAV4, avremo lagerarchia di generalizzazione tavole:TAV1 TAV2 TAV4
Generazione relazioni• 3-GENERAZIONE RELAZIONI
input:a) le entita' selezionate ai passi precedenti
output:x) le relazioni tra le entita' selezionate
algoritmo:- per ogni entita' delle ontolologie selezionata (loop) - cerco nei 500 schemi le entita' (dei 500 schemi) - con riferimento all'esempio astratto di cui sopra avremo adesempio: per A: A1,A2,...AN per B: B1,B2,..BN per C: C1,C2,...CN per D: D1,D2,...DN per E: E1,E2,...EN
Generazione relazioni• - supponiamo di trovare
A1-B4 (A-B) A7-B5 (A-B) B3-D9 (B-D) C8-C4 (C-C) C6-D2 (C-D) C1-E8 (C-E) - in casi di molteplicita' scelgo 1 sola relazione, piu' o menoarbitrariamente... - nell'esempio scegliero': A-B (una delle 2 relazioni trovate) B-D C-D C-E non scelgo ma potrei farlo C-C - il cammino relazionale selezionato sara' A-B-D-C-E
Generazione attributi• 4-GENERAZIONE ATTRIBUTI
input:a) le entita' selezionate in passo 1b) le tavole selezionate in passo 1c) gli attributi delle tavole selezionate in passo 1 (vedasi algoritmo delpasso 1)
output:x) per ciascuna entita' i suoi attributi
algoritmo:importo IN ciascuna entita' gli attributi delle tavole corrispondentiCon il solito esempio, se avevamoA corrisponde a TAV1 (CAMPO1, CAMPO2)B corrisponde a TAV2 (CAMPO3, CAMPO4)D corrisponde a TAV4 (CAMPO5, CAMPO6)l'output sara'A (CAMPO1, CAMPO2)B (CAMPO3, CAMPO4)D (CAMPO5, CAMPO6)
Infer constraints• 5-GENERAZIONE RELAZIONI (PASSO ADDITIVO FATTO SUI CONSTRAINTS
FISICI)input:a) le tavole pescate al punto 1 di generazione entita'output:x) le tavole selezionate unite dagli eventuali constraints, piu' eventualitavole che si frappongono per costituire il cammino dei constraintsalgoritmo:- con un tool (generalmente erwin) si effettuano sulla base dati operazionidi "infer relationship" considerando: - chiavi primarie e chiavi straniere esistenti - indici univoci - somiglianza di nomi campi- si derivano i constraints (relazioni fisiche)Con un esempio, se avevamo individuato precedentemente le tavole TAV1, TAV2e TAV4, il cammino relazionale fisico ottenuto dai constraints potrebbeessere: TAV1-tav5-TAV4-TAV2 (tav5 viene introdotto perche' necessaria alcammino per unire TAV1 e TAV4)
Verifica col referente dati
• 6-VERIFICA CON REFERENTE DATI
input:a) tutto il materiale prodotto nei passi precedentib) le indicazioni del referente dati che in generale saranno di 2 tipi: - mi aspettavo venisse pescata ANCHE questa tavola - NON mi aspettavo venisse pescata quest'altra tavola
output:x) il modello dati con i concetti in piu' e/o in meno verificati colreferente dati
algoritmo:- per ogni entita' pescata impropriamente, la rimuovo (il criterio disomiglianza spara nel mucchio)- per ogni entita' mancante, la aggiungo con la consulenza del referentedati, corredandola di attributi e relazioni
69
Esempio simbolico
Schema “automatico”
Schema dopo verifica referente
70
Scopi della sperimentazione
• Validare la metodologia–Verificare la sua efficienza–Verificare la sua precisione–Valutare l’ efficacia
71
Efficienza
72
Risultati sulla efficienza: schemi baseCosto fisso: corso di 3 giorni/persona Costo variabile per schema: 2 giorni/
persona:- 30% per parte automatica– 70% per parte con referente
• A tendere: 1 giorno/persona• Rispetto ai 10 giorni per reverse
engineering
73
Precisione • Due metriche:• Correttezza rispetto allo schema “vero”,
cioe’ ottenuto dal referente con reverse. – Misurata in modo approssimato come % di
oggetti introdotti/cancellati dal referente rispetto agli oggetti prodotti nei passi automatici
• Completezza rispetto allo schema “vero”– Misurata come % di tavole “catturate” rispetto
al totale, escludendo tavole di tipo operativo
74
Risultati sulla precisione• Correttezza 80 %
– 30% di oggetti nel passo 4. relazioni da vincoli
• Completezza 50% delle tavole “catturate”– Causa: alcune gerarchie utilizzate
inizialmente sono povere: le stiamo arricchendo partendo dai feedback del lavoro del referente
Cenni sul tool di inferenza
• Tool realizzato da Manuel Garasi su analisi di Riccardo Grosso, con la supervisione di Carlo Batini
– Codice gerarchia (es. B = Bene) di appartenenza– Livello nella gerarchia– Nome dell’entita’ in gerarchia– Criteri like di ricerca nei metadati
• Per ogni occorrenza di f1– Cerca per somiglianza le entita’ di f2 e salva le
entita’ trovate
Spiegazioni pagina precedente
• Da’ una casa agli attributi• Se aveva pescato l’entita’ a nella tavola t
(nome o des tavola), la tavola t viene considerata come un’istanza dell’entita’ a
• Se aveva pescato l’entita’ a nel campo c di una tavola (nome o des campo), l’entita’ a ospitera’ in casa il campo c che diventa attributo dell’entita’ a
Spiegazioni pagina precedente
• Sfrutta i constraint (relazioni fisiche) presenti tra le tavole pescate, permettendo cosi’ di arricchire la knowledge base con nuovi concetti inferiti dal basso
Spiegazioni pagina precedente
• La funzione sql traduce le entita’, le gerarchie, le relazioni e gli attributi ricostruiti in uno pseudo script ddl-sql e attiva un tool grafico che visualizza il modello ottenuto (erwin)
Piramide concettuale
• Integrazione e astrazione degli schemi base secondo alberi gerarchici a piacere
Lista semilavorati ontologici ad ogni livello
• Generalizzazioni, relazioni e attributi usati poi per ottenere ontologie owl
Criteri di integrazione schemi
• La piramide ha livelli intermedi, e gli schemi intermedi sono ottenuti con algoritmi di somma schemi dei livelli inferiori, con il seguente criterio: se un’entita’ e’ presente in almeno 2 schemi tra quelli da sommare, allora sale al livello superiore, altrimenti rimane al livello inferiore, non fara’ parte dello schema somma
Esercitazione
• Possibilita’ di trasformare in owl i semilavorati testuali ottenuti con il tool di inferenza
• Disegno delle owl ottenute• Scaricare e scompattare la cartella «1i pal p
istituzioni» dal seguente link:• https://drive.google.com/drive/folders/
0B9eWAzJTqlgUeWpxcGZ0M09qTWM • La cartella e’ costituita da 3 sottocartelle:
– DB– SK– SQListituzioni
89
Esercitazione
• La cartella SQL istituzioni in pratica contiene le ontologie ottenute in formato ddl-sql dal tool, e seppur interessanti non le consideriamo per la nostra esercitazione
• La cartella DB contiene, per ogni schema base della p.a. locale trattata, una suite di files nominati DB-nomedb-*.txt
• Per l’esercitazione ci interessano, di ciascuna suite, i files dove * vale:– Generalization– Relations (+constraints ove presenti, opzionale)– Attributes
90
Esercitazione
• Come caso demo, scelgo la seguente suite:– DB-AAEPGestionale-Generalization– DB-AAEPGestionale-Relations– DB-AAEPGestionale-Attributes
• Attivo il web service di CRISTIANO LONGO (GRAZIE!!!):
• Faccio upload dei 3 files e lancio la convert• Copio il testo ottenuto dalla convert e lo
salvo in un file91
Esercitazione
• Lancio il web service che disegna le owl:• http://owlgred.lumii.lv/online_visualization/
wi3p • (se da errore di sintassi provare a togliere gli
attributi, ovvero la parte del file owl che contiene le espressioni uses)
• La cartella SK e’ analoga alla cartella DB, ma contiene le suite relative agli schemi integrati
92
Catalogo agid
• Inferenze sul catalogo basi dati agid
93
Analogie con il catalogo basi dati e applicazioni di AgID
• Il catalogo db e app di AgID (agenzia per l’Italia digitale) e’ una raccolta di metadati di databases e applicazioni usate dalle pubbliche amministrazioni:– http://basidati.agid.gov.it/catalogo/
• Sono metadati testuali, la presenza di entita’ importanti per la p.a. va scovata
• Nei precedenti lavori, scovavo le entita’ cercandole per somiglianza nei nomi e descrizioni di tavole e campi dei db
• Nel catalogo AgID per analogia le scoviamo nei nomi e descrizioni di db e app
94
…continua la precedente
• La finalita’ di questo lavoro e’ di andare a pesca di concetti, usando gerarchie di entita’ e relazioni come fossero canne da pesca
• Inoltre si vuole dare un senso geografico alle pubbliche amministrazioni, quindi sono state mappate le p.a. con openstreetmap partendo dal registro ipa:– http://www.indicepa.it/public-services/opendata-
• Il merge tra il registro ipa mappato e il catalogo AgID ci permette di capire dove fisicamente sono trattate le entita’ della p.a.
• Le quattro gerarchie della p.a. discendono da:– Cosa
• Soggetto• Bene• Documento• Geografia
– Luogo– Territorio– Urbanistica
96
…continua la precedente
• Le relazioni a livello piu’ alto sono di tipo «many to many» tra:– Soggetto e bene– Soggetto e documento– Soggetto e geografia– Bene e documento– Bene e geografia– Documento e geografia
97
…continua la precedente
La ricerca per entita' e' fatta per somiglianza di entita', prese da queste gerarchie di entita': https://www.dropbox.com/s/eodk7k36m6ehn7y/F2indent.txt?dl=0 ; nella pagina successiva un frammento di una gerarchia
Le entita’ sono correlate tra loro a vari livelli di astrazione
Le applicazioni sono considerate attributi dei db, per convenzione
98
Gerarchie di entita’
99
Dalla conoscenza taggata al disegno dei concetti
• Dai semilavorati ottenuti (gerarchie di entita’, relazioni, attributi), l’amico Cristiano Longo ha prodotto un web service che trasforma i semilavorati in ontologie con sintassi OWL. Il tutto descritto in questo articolo e correlati:http://nelfuturo.com/ontologie-dei-servizi-applicativi
• Con un tool free e’ possibile disegnare tali OWL, per dare un senso grafico alle ontologie, e renderle forse piu belle da vedere: http://owlgred.lumii.lv/online_visualization/wi3p
100
Un frammento di ontologia owl disegnata
101
Mapping delle entita’ nelle p.a.
• sono state mappate geograficamente le p.a. taggate , per cui arrivando al singolo nodo di una p.a., nei suoi metadati sono presenti anche le entita’ taggate:
• http://osmele.elilan.com/_ont/ont2.html
102
Entita’ mappate nelle p.a. (ipa)
103
Entita’ geolocalizzate anche su telegram
infine Piersoft ha fatto un bot telegram che visualizza i metadati delle p.a. mappate, tra cui le entita’: https://web.telegram.org/#/im?p=@geontobotPer ricercare le PA, cliccare sulla graffetta (??) e poi 'posizione', oppure digitare il nome del Comune, oppure il nome entita' preceduto dal punto di domanda, ad esempio:?soggetto(link al file usato dal bot: https://www.dropbox.com/s/6i0gp8jw8qnvpvq/ipaEntitiesGeo.csv?dl=0 )
104
Geontologie bot
105
Obiettivi futuri
• Per una pesca piu’ efficace dei concetti, bisognerebbe sperimentare tali metodi e tools in tutte le strutture dati delle pubbliche amministrazioni, aumentando quindi il drill-down a livello di nomi e descrizioni di tavole e campi, e constraints che arricchiscano le relazioni gia’ note
106
Grazie
• [email protected]• Qui c’e’ tutto il mio lavoro sulle ontologie di cui mi
occupo da anni• http://nelfuturo.com/autore/Riccardo-Grosso#• Il tutto e’ dettagliatamente spiegato in questi articoli e correlati: