1
DBLP Ontology
SAPIENZA Università di RomaFacoltà 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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• Query evaluation• Cenni sulla complessità• Demo
3
• 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
4
A cura del prof. Michael Ley,docente presso il dipartimento di Computer Science dell‘università di Trier, Germania.
Contenente 1048576 pubblicazioni
Stessi attributi del formato
Studio della bibliografia DBLP
50
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
Jan
96
Mai
96
Sep 9
6
Jan
97
Mai
97
Sep 9
7
Jan
98
Mai
98
Sep 9
8
Jan
99
Mai
99
Sep 9
9
Jan
00
Mai
00
Sep 0
0
Jan
01
Mai
01
Sep 0
1
Jan
02
Mai
02
Sep 0
2
Jan
03
Mai
03
Sep 0
3
DBLP: Numero dei record bibliografici
Studio della bibliografia DBLP
6
0
10000
20000
30000
40000
50000
60000
70000
80000
2006
2002
1998
1994
1990
1986
1982
1978
1974
1970
1966
1962
1958
1954
1950
1946
www
master thesis
phd thesis
incollection
book
proceedings
inproceedings
articles
DBLP: Tipi di record (Gennaio 2006)
Studio della bibliografia DBLP
7
article : articolo contenuto in una rivista scientifica inproceedings : articolo presentato in una conferenzaproceedings : gli atti di una conferenzabook : libroincollection : la parte di un librophdthesis : tesi di dottoratomasterthesis : tesi di laureawww : indirizzo web
Elementi della bibliografia:
Studio della bibliografia DBLP
8
Studio della bibliografia DBLP
Attributi della bibliografia:
auhoreditortitlebooktitlepagesmonthyearaddressjournalvolumenumber
urleecdromcitepublishernotecrossrefisbnseriesschoolchapter
9
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>
10
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>
11
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• Query evaluation• 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
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
L’applicazione DBLPConverter
14
Conversione dei dati
L’applicazione DBLPConverter
Conversione dei dati
15
La base di dati
16
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
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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• Query evaluation• Cenni sulla complessità• Demo
21
Il linguaggio DL-LiteA
Distinzione tra:
• Concetti
• Ruoli
• Attributi
22
Il linguaggio DL-LiteA
Attributi:
23
Il linguaggio DL-LiteA
Associazioni
Il linguaggio DL-LiteA
Relazioni Is-A:
Disgiunzione tra classi:
24
25
Il linguaggio DL-LiteA
26
Il linguaggio DL-LiteA
27
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
28
Data source
29
Data source
Data source
DBMS:
• Scelto inizialmente MySQL 5.0.45
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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• 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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• 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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• Query evaluation• 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
47
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
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 3SELECT 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' anda.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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• Query evaluation• Cenni sulla complessità• Demo
Cenni sulla complessità
Theorem 7. Given a DL-LiteA ontology with mappings Om and a UCQ Qover Om, Answer(Q,Om) runs in LogSpace in the size of DB (data complexity).Moreover, it runs in polynomial time in the size of M, in exponential time inthe 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-LiteA
• Data source• I mappings• Architettura del sistema• Esempio di query sull’ontologia• Query evaluation• Cenni sulla complessità• Demo