dblp ontology

53
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

Upload: astro

Post on 19-Jan-2016

50 views

Category:

Documents


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

Page 1: 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

Page 2: DBLP Ontology

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

Page 3: DBLP Ontology

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

Page 4: DBLP Ontology

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

Page 5: DBLP Ontology

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

Page 6: DBLP Ontology

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

Page 7: DBLP Ontology

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

Page 8: DBLP Ontology

8

Studio della bibliografia DBLP

Attributi della bibliografia:

auhoreditortitlebooktitlepagesmonthyearaddressjournalvolumenumber

urleecdromcitepublishernotecrossrefisbnseriesschoolchapter

Page 9: DBLP Ontology

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>

Page 10: DBLP Ontology

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>

Page 11: DBLP Ontology

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

Page 12: DBLP Ontology

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

Page 13: DBLP Ontology

13

Conversione dei dati

L’applicazione DBLPConverter

Page 14: DBLP Ontology

14

Conversione dei dati

L’applicazione DBLPConverter

Page 15: DBLP Ontology

Conversione dei dati

15

La base di dati

Page 16: DBLP Ontology

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

Page 17: DBLP Ontology

17

Def: specifica formale di una concettualizzazione su un determinato dominio

Ontologia

Espressa mediante:

• Concetti

• Proprietà

• Relazioni

• Assiomi

Page 18: DBLP Ontology

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)

Page 19: DBLP Ontology

19

Ontologia

Page 20: DBLP Ontology

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

Page 21: DBLP Ontology

21

Il linguaggio DL-LiteA

Distinzione tra:

• Concetti

• Ruoli

• Attributi

Page 22: DBLP Ontology

22

Il linguaggio DL-LiteA

Attributi:

Page 23: DBLP Ontology

23

Il linguaggio DL-LiteA

Associazioni

Page 24: DBLP Ontology

Il linguaggio DL-LiteA

Relazioni Is-A:

Disgiunzione tra classi:

24

Page 25: DBLP Ontology

25

Il linguaggio DL-LiteA

Page 26: DBLP Ontology

26

Il linguaggio DL-LiteA

Page 27: DBLP Ontology

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

Page 28: DBLP Ontology

28

Data source

Page 29: DBLP Ontology

29

Data source

Page 30: DBLP Ontology

Data source

DBMS:

• Scelto inizialmente MySQL 5.0.45

Passaggio ad Oracle 10g

• Impossibilità di eseguire il carico di lavoro richiesto

Page 31: DBLP Ontology

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

Page 32: DBLP Ontology

I mappings

Due sottoinsiemi di mapping assertion:

• Data-to-object mappings

• Typing-mappings

Page 33: DBLP Ontology

I mappings

Regole:

Instanze di concetto: Classe(funct(VAR))Attributo: Attr(funct(VAR),VAR_ATT)Associazione: Assoc(funct(VAR),funct2(VAR2))

Page 34: DBLP Ontology

I mappings

Esempio di Typing mapping:

Page 35: DBLP Ontology

I mappings

Esempio di Data-to-object mapping:

Page 36: DBLP Ontology

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

Page 37: DBLP Ontology

Architettura del sistema

Protégé

Page 38: DBLP Ontology

Architettura del sistema

Protégé + Plugin OBDA

Page 39: DBLP Ontology

Architettura del sistema

Protégé + Plugin OBDA + DIG-MASTRO

Page 40: DBLP Ontology

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

Page 41: DBLP Ontology

Esempio di query sull’ontologia

Query n.1

Page 42: DBLP Ontology

Esempio di query sull’ontologia

Query n.1

Page 43: DBLP Ontology

Esempio di query sull’ontologia

Query n.2

Page 44: DBLP Ontology

Esempio di query sull’ontologia

Query n.2

Page 45: DBLP Ontology

Esempio di query sull’ontologia

Query n.3

Page 46: DBLP Ontology

Esempio di query sull’ontologia

Query n.3

Page 47: DBLP Ontology

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

Page 48: DBLP Ontology

Query evaluation

Processo di valutazione suddiviso in 3 step:

1. Perfect Reformulation

2. Unfolding

3. Evaluation

Page 49: DBLP Ontology

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))

Page 50: DBLP Ontology

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

Page 51: DBLP Ontology

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

Page 52: DBLP Ontology

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;

Page 53: DBLP Ontology

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