1. 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
2. LM
Insert name and descr.
of tables & columns.
Infer physical constraints
Tag metadata by likeness
of entity-names inside in
names and descr. of
tables & columns
Integrated &
abstracted
E-R schema
repository
LD
«Universe»
(metadata)
Linked Data
(ddl.sql/RDF/OWL)
Infer vertical
Abstraction level
Entity-ierarchy
taxonomy
Reuse
Relationships
LMO
…
From LD (Linked Data) to LMO (Linked Metadata & Ontologies)
3. 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
4. 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
4
5. Basi dati: in principio fu il repository fisico
• https://drive.google.com/file/d/0B9eWAzJTqlgUc
• 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
6. 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.
6
7. I lavori con il professor Batini
• Le attivita’ di
recupero e integrazione della conoscenza
concettuale sui dati PA
Azioni di medio termine
Prof. Carlo Batini
Universita’ Bicocca – Milano
• Se richiesto, e’ possibile visualizzare le slide a
cura di Batini
7
8. Cenni sul tool di inferenza
• Tool realizzato da Manuel Garasi su analisi di
Riccardo Grosso, con la supervisione di Carlo
Batini
9.
10. Step 1 – add entity
• Cerca per somiglianza (like), nei nomi e
descrizioni di tavole e campi di un database, le
entita’ della gerarchia usata dal tool:
• https://www.dropbox.com/s/eodk7k36m6ehn7y/F2
10
11. Spiegazioni funzione add entities
• Input file f1
– Colonne nomebasedati, nometavola, destavola,
nomecampo, descampo (des= descrizione)
• Input file f2
– 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
12.
13. Step 2 – add generalizations
• Ricostruisce le gerarchie tra le entita’
individuate, sempre attinendosi a:
• https://www.dropbox.com/s/eodk7k36m6ehn7y/F2
13
14.
15. Step 3 – add relationships
• Ricostruisce le relazioni a disposizione tra le
entita’ pescate
• 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
15
16.
17. Step 4 – add attributes
• 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
18.
19. Step 5 – infer constraints
• Sfrutta i constraint (relazioni fisiche) presenti
tra le tavole pescate, permettendo cosi’ di
arricchire la knowledge base con nuovi concetti
inferiti dal basso
20.
21. 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). Il tutto
viene validato da un referente
• In pratica traduce i frammenti ontologici
ottenuti (gerarchie, relazioni, attributi) in una
ontologia con formato ddl-sql
• Piu’ avanti vediamo come utilizzare questi
frammenti per produrre e disegnare ontologie in
formato owl
23. Lista semilavorati ontologici ad ogni livello
• Generalizzazioni, relazioni e attributi usati poi
per ottenere ontologie owl
24. 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
25. 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/0B9eWAzJ
• La cartella e’ costituita da 3 sottocartelle:
– DB
– SK
– SQListituzioni
25
26. 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 26
27. 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!!!):
• http://www.dmi.unict.it/~longo/dbschemaparser/sc
• Faccio upload dei 3 files e lancio la convert
• Copio il testo ottenuto dalla convert e lo salvo in
un file
27
28. 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
28
30. 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 30
31. …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-read-se
31
32. …continua la precedente
• 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
32
33. …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
33
34. …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/F2in
; 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
34
36. 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-applicat
• 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
36
38. 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
38
40. 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=@geontobot
Per 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/ipa
EntitiesGeo.csv?dl=0 ) 40
42. 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
42
43. Grazie
• Riccardo.maria.grosso@gmail.com
• 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:
– http://nelfuturo.com/estrazione-e-classificazione-della-
conoscenza-dai-metadati#
– http://nelfuturo.com/un-amico-risponde
• Skype riccardo.grosso
https://www.facebook.com/riccardo.grosso
https://twitter.com/riccardomgrosso
https://www.linkedin.com/in/riccardo-grosso-
7939b35?trk=hp-identity-name
43