1 DBLP Ontology SAPIENZA Università di Roma Facoltà di Ingegneria Tesina per il corso di Seminari di ingegneria del software Anno accademico 2006/2007 Autore: Germano Rocco
2 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
3 Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo Indice
4 A cura del prof. Michael Ley, docente presso il dipartimento di Computer Science delluniversità di Trier, Germania. Contenente pubblicazioni Stessi attributi del formato Studio della bibliografia DBLP
5 DBLP: Numero dei record bibliografici Studio della bibliografia DBLP
6 DBLP: Tipi di record (Gennaio 2006) Studio della bibliografia DBLP
7 article : articolo contenuto in una rivista scientifica inproceedings : articolo presentato in una conferenza proceedings : gli atti di una conferenza book : libro incollection : la parte di un libro phdthesis : tesi di dottorato masterthesis : tesi di laurea www : indirizzo web Elementi della bibliografia : Studio della bibliografia DBLP
8 Attributi della bibliografia: auhor editor title booktitle pages month year address journal volume number url ee cdrom cite publisher note crossref isbn series school chapter
9 Studio della bibliografia DBLP Sintassi XML: Diego Calvanese Giuseppe De Giacomo Maurizio Lenzerini Daniele Nardi Reasoning in Expressive Description Logics books/el/RobinsonV01 Handbook of Automated Reasoning db/books/collections/RobinsonV01.html#CalvaneseGLN01
10 Studio della bibliografia DBLP Sintassi XML: Vu A. Ha AnHai Doan Van H. Vu Peter Haddawy Geometric Foundations for Interval-Based Probabilities Ann. Math. Artif. Intell. 1-4 db/journals/amai/amai24.html#HaDVH98
11 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Cenni sulla complessità Demo
12 Requisiti: input: file xml bibliografia output: file SQL connessione dbms gestione dbms (creazione, cancellazione, …) possibilità di scegliere i tipi di elementi da aggiungere stato avanzamento processo Conversione dei dati
13 Conversione dei dati Lapplicazione DBLPConverter
14 Conversione dei dati Lapplicazione DBLPConverter
Conversione dei dati 15 La base di dati
16 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
17 Def: specifica formale di una concettualizzazione su un determinato dominio Ontologia Espressa mediante: Concetti Proprietà Relazioni Assiomi
18 Def: specifica formale di una concettualizzazione su un determinato dominio Ontologia Livello intensionale - TBOX Livello estensionale - ABOX Author Person Publication created Author Author(Giuseppe De Giacomo) Publication(2341) created(2341, Giuseppe De Giacomo)
19 Ontologia
20 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
21 Il linguaggio DL-Lite A Distinzione tra: Concetti Ruoli Attributi
22 Il linguaggio DL-Lite A Attributi:
23 Il linguaggio DL-Lite A Associazioni
Il linguaggio DL-Lite A Relazioni Is-A: Disgiunzione tra classi: 24
25 Il linguaggio DL-Lite A
26 Il linguaggio DL-Lite A
27 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
28 Data source
29 Data source
DBMS : Scelto inizialmente MySQL Passaggio ad Oracle 10g Impossibilità di eseguire il carico di lavoro richiesto
31 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
I mappings Due sottoinsiemi di mapping assertion: Data-to-object mappings Typing-mappings
I mappings Regole: Instanze di concetto: Classe(funct(VAR)) Attributo: Attr(funct(VAR),VAR_ATT) Associazione: Assoc(funct(VAR),funct2(VAR2))
I mappings Esempio di Typing mapping:
I mappings Esempio di Data-to-object mapping:
36 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
Architettura del sistema Protégé
Architettura del sistema Protégé + Plugin OBDA
Architettura del sistema Protégé + Plugin OBDA + DIG-MASTRO
40 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
Esempio di query sullontologia Query n.1
Esempio di query sullontologia Query n.1
Esempio di query sullontologia Query n.2
Esempio di query sullontologia Query n.2
Esempio di query sullontologia Query n.3
Esempio di query sullontologia Query n.3
47 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
Query evaluation Processo di valutazione suddiviso in 3 step: 1. Perfect Reformulation 2. Unfolding 3. Evaluation
Query evaluation Esempio: SELECT $x WHERE {$x rdf:type Person} 1. Perfect Reformulation 2. Unfolding 3. Evaluation q(x) :- Author(x). q(x) :- created(_,x). q(x) :- has(x,_). q(x) :- Person(x). q(x) :- pers_name(x,_). q(x) :- edited(_,x). q(x) :- Editor(x). SELECT DISTINCT alias_0.term FROM (SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term FROM (SELECT author, id aspublication FROM dblp_author_ref_new WHERE editor = '0') DummyTable) alias_0 UNION SELECT DISTINCT alias_0.term2 FROM (SELECT DISTINCT CONCAT('pub(',CONCAT(publication,')')) ASterm1, CONCAT('pers(',CONCAT(author,')')) AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHEREeditor = '1') DummyTable) alias_0 UNION SELECT DISTINCT alias_0.term FROM (SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '1') DummyTable) alias_0 UNION SELECT DISTINCT alias_0.term2 FROM (SELECT DISTINCT CONCAT('pub(',CONCAT(publication,')')) AS term1, CONCAT('pers(',CONCAT(author,')')) AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '0') DummyTable) alias_0 UNION SELECT DISTINCT alias_0.term1 FROM (SELECT DISTINCT CONCAT('pers(',CONCAT(person,')')) AS term1, CONCAT('ww(',CONCAT(www,')')) AS term2 FROM (SELECT a.author as person, p.id as www, p.title, p.ee as url FROM dblp_author_ref_new a, dblp_pub_new p WHERE p.type = 'www' and a.id = p.id) DummyTable) alias_0 UNION SELECT DISTINCT alias_0.term1 FROM ((SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term1,author AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '1') DummyTable) UNION (SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term1,author AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '0') DummyTable))
Query evaluation Unfolded query - esempio 3 SELECT DISTINCT alias_0.term2, alias_2.term2, alias_6.term2, alias_7.term2, alias_4.term2 FROM ((SELECT DISTINCT CONCAT('pub(',CONCAT(book,')')) AS term1,titleAS term2 FROM(SELECT id as book, title FROM dblp_pub_new WHERE type = 'book') DummyTable) UNION (SELECT DISTINCT CONCAT('pub(', CONCAT(proceedings,')')) AS term1,title AS term2 FROM (SELECT id as proceedings, title FROM dblp_pub_new WHEREtype = 'proceedings') DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1,title AS term2 FROM (SELECT id as article, title, source asjournal FROMdblp_pub_new WHERE type = 'article') DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(m_thesis,')')) AS term1,title ASterm2 FROM (SELECT idas m_thesis, title FROM dblp_pub_new WHERE type = 'masterthesis')DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(p_thesis,')'))AS term1,title AS term2 FROM (SELECT id as p_thesis, titleFROM dblp_pub_new WHERE type = 'phdthesis') DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(incollection,')')) AS term1,titleAS term2 FROM (SELECT a.id as incollection, a.title, b.id as book FROMdblp_pub_new a, dblp_pub_new b WHERE a.type = 'incollection' and a.crossref =b.dblp_key) DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(inproceedings,')')) AS term1,title AS term2 FROM (SELECT a.id as inproceedings, a.title, b.id as proceedings FROM dblp_pub_new a, dblp_pub_new b WHERE a.type = 'inproceedings and a.crossref = b.dblp_key) DummyTable)) alias_0, ((SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term1,author AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '1') DummyTable) UNION (SELECT DISTINCT CONCAT('pers(',CONCAT(author,')')) AS term1,author AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '0') DummyTable)) alias_1, (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1,pages AS term2 FROM (SELECT id as article, pages FROM dblp_pub_new WHERE type = 'article and pages is not null) DummyTable) alias_2, (SELECT DISTINCT CONCAT('pub(',CONCAT(publication,')')) AS term1,CONCAT('pers(', CONCAT(author,')')) AS term2 FROM (SELECT author, id as publication FROM dblp_author_ref_new WHERE editor = '0') DummyTable) alias_3, (SELECT DISTINCT CONCAT('jnl(',CONCAT(journal,')')) AS term1,journal AS term2 FROM (SELECT id as article, title, source as journal FROM dblp_pub_new WHERE type = 'article') DummyTable) alias_4, (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1, CONCAT('jnl(',CONCAT(journal,')')) AS term2 FROM (SELECT id as article, title, source as journal FROM dblp_pub_new WHERE type = 'article') DummyTable) alias_5, (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1,num AS term2 FROM (SELECT id as article, number_ as num FROM dblp_pub_new WHERE type = 'article' and number_ is not null) DummyTable) alias_6, (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1, volume AS term2 FROM (SELECT id as article, volume FROM dblp_pub_new WHERE type = 'article' and volume is not null) DummyTable) alias_7 WHERE alias_1.term2='GiuseppeDe Giacomo' AND alias_0.term1= alias_2.term1 AND alias_2.term1=alias_3.term1 AND alias_1.term1= alias_3.term2 AND alias_3.term1=alias_5.term1 AND alias_4.term1= alias_5.term2 AND alias_5.term1=alias_6.term1 AND alias_6.term1= alias_7.term1
51 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo
Cenni sulla complessità Theorem 7. Given a DL-Lite A ontology with mappings O m and a UCQ Q over O m, Answer(Q,O m ) runs in LogSpace in the size of DB (data complexity). Moreover, it runs in polynomial time in the size of M, in exponential time in the size of Q, and in polynomial time in the size of T. complessità polinomiale rispetto alla dimensione dei mappings; complessità esponenziale rispetto alla dimensione della query; complessità polinomiale rispetto alla dimensione della TBOX; complessità LOGSPACE rispetto alla dimensione dei dati;
53 Indice Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source I mappings Architettura del sistema Esempio di query sullontologia Query evaluation Cenni sulla complessità Demo