530 likes | 639 Views
SAPIENZA Università di Roma Facoltà di Ingegneria. Tesina per il corso di Seminari di ingegneria del software. Anno accademico 2006/2007. Autore: Germano Rocco. DBLP Ontology. Indice. Studio della bibliografia DBLP Conversione dei dati Ontologia Il linguaggio DL-Lite A Data source
E N D
SAPIENZA Università di RomaFacoltà di Ingegneria Tesina per il corso di Seminari di ingegneria del software Anno accademico 2006/2007 Autore: Germano Rocco DBLP Ontology
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Query evaluation • Cenni sulla complessità • Demo
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Studio della bibliografia DBLP A cura del prof. Michael Ley, docente presso il dipartimento di Computer Science dell‘università di Trier, Germania. Contenente1048576 pubblicazioni Stessi attributi del formato
Studio della bibliografia DBLP DBLP: Numero dei record bibliografici
Studio della bibliografia DBLP DBLP: Tipi di record (Gennaio 2006)
Studio della bibliografia DBLP Elementi della bibliografia: 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
Studio della bibliografia DBLP 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
Studio della bibliografia DBLP Sintassi XML: <incollection mdate="2002-01-03"key="books/el/RV01/CalvaneseGLN01"> <author>Diego Calvanese</author> <author>Giuseppe De Giacomo</author> <author>Maurizio Lenzerini</author> <author>Daniele Nardi</author> <title>Reasoning in Expressive Description Logics.</title> <pages>1581-1634</pages> <year>2001</year> <crossref>books/el/RobinsonV01</crossref> <booktitle>Handbook of Automated Reasoning</booktitle> <url>db/books/collections/RobinsonV01.html#CalvaneseGLN01</url><\incollection>
Studio della bibliografia DBLP Sintassi XML: <article mdate="2004-01-14"key="journals/amai/HaDVH98"> <author>Vu A. Ha</author> <author>AnHai Doan</author> <author>Van H. Vu</author> <author>Peter Haddawy</author> <title>Geometric Foundations for Interval-Based Probabilities.</title> <pages>1-21</pages> <year>1998</year> <volume>24</volume> <journal>Ann. Math. Artif. Intell.</journal> <number>1-4</number> <url>db/journals/amai/amai24.html#HaDVH98</url> <\article>
Indice • Studio della bibliografia DBLP • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Cenni sulla complessità • Demo
Conversione dei dati • 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 L’applicazione DBLPConverter
Conversione dei dati L’applicazione DBLPConverter
Conversione dei dati La base di dati
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Ontologia Def: specifica formale di una concettualizzazione su un determinato dominio Espressa mediante: • Concetti • Proprietà • Relazioni • Assiomi
Ontologia Def: specifica formale di una concettualizzazione su un determinato dominio • Livello intensionale - TBOX Author Person Publication created Author • Livello estensionale - ABOX Author(Giuseppe De Giacomo) Publication(2341) created(2341, Giuseppe De Giacomo)
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Il linguaggio DL-LiteA Distinzione tra: • Concetti • Ruoli • Attributi
Il linguaggio DL-LiteA Attributi:
Il linguaggio DL-LiteA Associazioni
Il linguaggio DL-LiteA Relazioni Is-A: Disgiunzione tra classi:
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Data source • DBMS: • Scelto inizialmente MySQL 5.0.45 • Impossibilità di eseguire il carico di lavoro richiesto Passaggio ad Oracle 10g
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
I mappings Due sottoinsiemi di mapping assertion: • Typing-mappings • Data-to-object 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:
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • 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
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Esempio di query sull’ontologia Query n.1
Esempio di query sull’ontologia Query n.1
Esempio di query sull’ontologia Query n.2
Esempio di query sull’ontologia Query n.2
Esempio di query sull’ontologia Query n.3
Esempio di query sull’ontologia Query n.3
Indice • Studio della bibliografia DBLP • Conversione dei dati • Ontologia • Il linguaggio DL-LiteA • Data source • I mappings • Architettura del sistema • Esempio di query sull’ontologia • Queryevaluation • Cenni sulla complessità • Demo
Query evaluation Processo di valutazione suddiviso in 3 step: 1. PerfectReformulation 2. Unfolding 3. Evaluation
Query evaluation Esempio: SELECT$xWHERE {$xrdf:type ‘Person’} 1. PerfectReformulation 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_newWHEREeditor = '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)) 2. Unfolding 3. Evaluation
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_newWHEREtype = 'proceedings') DummyTable) UNION (SELECT DISTINCT CONCAT('pub(',CONCAT(article,')')) AS term1,title AS term2 FROM (SELECT id as article, title, source asjournalFROMdblp_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, titleFROMdblp_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='GiuseppeDeGiacomo' 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