DBLP Ontology

Post on 19-Jan-2016

50 views 0 download

description

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 - PowerPoint PPT Presentation

Transcript of DBLP Ontology

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