universita federico ii di napoli dipartimento di scienze matematiche fisiche e naturali corso di...

23
UNIVERSITA’ FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica “Strumenti per la gestione di DataBase XML nativi: estrazione automatica della base dei metadati e generazione di query complesse” Relatori: Prof. Francesco Cutugno Dott. Leandro Laureando: Antonio Vuolo

Upload: tancredo-massari

Post on 02-May-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

UNIVERSITA’ FEDERICO II DI NAPOLI

Dipartimento di Scienze Matematiche Fisiche e Naturali

Corso di Laurea in Informatica

“Strumenti per la gestione di DataBase XML nativi: estrazione automatica della base dei metadati e generazione di query

complesse”

Relatori:

Prof. Francesco Cutugno

Dott. Leandro D’Anna

Laureando:

Antonio Vuolo

Page 2: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

2

Introduzione

Xgate è un Software realizzato in collaborazione con il gruppo NLP del Dipartimento di Scienze Fisiche dell’Università Federico II e con il DSLL dell’Università di Salerno.

Xgate è un software per la gestione ed interrogazione di database semistrutturati basati su XML e Xpath.

Le tecnologie di base utilizzate sono DotNET 2.0 e C#, sfruttando in particolare le potenzialità offerte dalle DOM (Document Object Model).

Page 3: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

3

Obiettivi

Realizzazione di un modulo per l’estrazione di una DTD (Document Type Definition) da un documento XML.

Implementazione di metodi per la ricostruzione di un documento XML valido per una specifica DTD modificata.

Sviluppo di metodi per la realizzazione di Query complesse su documenti XML.

Page 4: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

4

Estrazione di una DTD da un documento XML

Elementi

Dipendenze

Ricorsioni dirette

Struttura tipica di in documento utilizzato nella rappresentazione AN.ANA.S

Page 5: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

5

Estrazione di una DTD da un documento XML(2)

DTD

DTD XML

XML

XML

Una DTD può essere associata ad n documenti XML diversi

Schema XML (XSD)

Schema XML

XSDXML

Uno Schema XML rappresenta la struttura di un unico Documento XML

Problematiche: Descrivere il documento XML in termini di vincoli.

• DTD• Schema XML (XSD)

Page 6: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

6

Estrazione di una DTD da un documento XML(3)

Struttura tipica di uno Schema XML (XSD)<!-- anche questo è un documento XML --><?xml version="1.0"?><!-- iniziamo lo schema --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.abc.it/Guida_XSD" xmlns="http://www.abc.it/Guida_XSD" elementFormDefault="qualified"><!-- definiamo l'elemento libro -->

<xs:element name="libro“ maxOccurs="3" minOccurs="1" > <xs:complexType> <xs:all> <!-- definiamo i vari elementi figli di libro --> <xs:element name="titolo" type="xs:string“ /> <xs:element name="autore" type="xs:string" /> <xs:element name="numeroDiPagine" type="xs:integer" /> </xs:all> </xs:complexType> </xs:element></xs:schema>

ELEMENTI

OCCORRENZE

TIPI

Page 7: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

7

Estrazione di una DTD da un documento XML(4)

SCHEMI XML DTDminOccurs=”1”maxOccurs=”unbounded” Corrisponde al simbolo +minOccurs=”0”maxOccurs=”unbounded” Corrisponde al simbolo *minOccurs=”0”[maxOccurs=”1”] Corrisponde al simbolo ?minOccurs=”10” Nessuna espressione

corrispondente

maxOccurs=”10” Nessuna espressione corrispondente

Principali differenze tra Schemi XML e DTD: Occorrenze

SCHEMI XML DTD

String #PCDATA

Date #PCDATA

Boolean #PCDATA

Decimal #PCDATA

Integer #PCDATA

Tipi

Page 8: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

8

Estrazione di una DTD da un documento XML(5)

Documento Xml

Schema XML

XSD DTD

Analisi del Problema

• Passaggio da XML a Schema:

1. Inferenza Restricted sulle occorrenze dei nodi

2. Inferenza Relaxed sui tipi

• Passaggio da XSD a DTD

1. Decodifica degli elementi complessi

2. Decodifica degli elementi semplici

3. Decodifica degli attributi

Page 9: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

9

Estrazione di una DTD da un documento XML(6)

Struttura logica del programma Funzione CreaSchema()

InserisciDocumentoXML()

InferenzaDocumentoXML(XML)

Funzione CreaDTD(Schema)

creaSchema(XML)

decodificaComplex(schema) ricercaElemento(eleme nto)

modificaOcc(nodo)inserisciElem(nodo)

controllaOcc(nodo)

ricercaAttributo(attributo)

decodificaSimplex(schema)

decodificaAttributi(schema)controllaImpost(attributo)

inserisciAttr(attributo)

si

no

Verifica se il nodo è già stato inserito nella DTD

si

no

Verifica l’occorrenza del nodo nella DTD

no

si

modificaImp(attributo)

no

si

Verifica l’attributo è gia stato inserito

Verifica l’impostazione dell’attributo

Lettura dell’albero XSD

Lettura dell’albero XSD

Lettura dell’albero XSD

Page 10: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

10

Estrazione di una DTD da un documento XML (7)

La modalità Narrow prevede l’estrazione di una DTD che si avvicini alla struttura del documento

La modalità Broad prevede la definizione delle occorrenze in modo più libero

Page 11: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

11

Estrazione di una DTD da un documento XML (8)

Differenze tra le DTD estratte con le modalità Narrow e Broad e la DTD originaria

<?xml version="1.0" encoding="UTF-8"?>

<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by francesco cutugno (cirass) and DSLL -->

<!ELEMENT root (text+)> <!ELEMENT text (paragraph+)><!ATTLIST text type (nz | dz | ie | ee | vi | prt | arg | prs | dg) #REQUIRED

text_id CDATA #REQUIRED><!ELEMENT paragraph (sentence+)><!ATTLIST paragraph paragraphid CDATA #REQUIRED><!ELEMENT sentence (sentence+ | clause+)+><!ATTLIST sentence uni (t | f) #REQUIRED

n_of_clauses CDATA #REQUIRED>

<!ELEMENT corr (VP | NP | PP | PNP | UNP)+>

<!ELEMENT clause (sentence+ | clause+ | corr | VP | NP | PP | UNP | PNP | REP)+>

<!ATTLIST clause type (m | dep | ufo) #REQUIRED>

<?xml version="1.0" encoding="utf-8"?><!-- Edited with xGate 1.0 Beta --><!ELEMENT root (text+)><!ELEMENT text (paragraph)><!ELEMENT paragraph (sentence+)><!ELEMENT sentence (clause+)+><!ELEMENT clause (UNP | PP | VP | sentence | NP | clause )+><!ATTLIST text type CDATA #REQUIRED text_id CDATA #REQUIRED><!ATTLIST paragraph paragraphid CDATA #REQUIRED><!ATTLIST sentence uni CDATA #REQUIRED n_of_clauses CDATA #REQUIRED><!ATTLIST clause type CDATA

#REQUIRED>

NARROW<?xml version="1.0" encoding="utf-8"?><!-- Edited with xGate 1.0 Beta --><!ELEMENT root (text+)><!ELEMENT text (paragraph*)+><!ELEMENT paragraph (sentence+)*><!ELEMENT sentence (clause+)+><!ELEMENT clause (UNP* | PP* | VP* | sentence* | NP* | clause* )+><!ATTLIST text type CDATA #REQUIRED text_id CDATA #REQUIRED><!ATTLIST paragraph paragraphid CDATA #REQUIRED><!ATTLIST sentence uni CDATA #REQUIRED n_of_clauses CDATA #REQUIRED><!ATTLIST clause type CDATA #REQUIRED>

BROAD

Page 12: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

12

Estrazione di una DTD da un documento XML (9)

Differenze tra le DTD estratte con le modalità Narrow e Broad e la DTD originaria(2)

DTD ORIGINARIA

NARROW BROAD

<!ELEMENT root (text+)> <!ELEMENT root (text+)> <!ELEMENT root (text+)>

<!ELEMENT text (paragraph+)>

<!ELEMENT text (paragraph)> <!ELEMENT text (paragraph*)+>

<!ELEMENT paragraph (sentence+)>

<!ELEMENT paragraph (sentence+)>

<!ELEMENT paragraph (sentence+)*>

<!ELEMENT sentence (sentence+ | clause+)+>

<!ELEMENT sentence (clause+)+>

<!ELEMENT sentence (clause+)+>

<!ATTLIST text type (nz | dz | ie | ee | vi | prt | arg | prs | dg) #REQUIRED

<!ATTLIST text type CDATA #REQUIRED

<!ATTLIST text type CDATA #REQUIRED

Page 13: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

13

Ricostruzione di un documento XML valido per una specifica DTD modificata

Documento

XML

DTD

associata

DOCUMENTO

VALIDO

MODIFICA

DELLA

DTD

DOCUMENTO

VALIDO

Modulo di

correzioneassistita

Page 14: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

14

Ricostruzione di un documento XML valido per una specifica DTD modificata (2)

Le modifiche che vengono effettuate tramite il modulo di correzione assistita sono:

• Aggiunta di un attributo ad un nodo• Aggiunta di un elemento semplice• Aggiunta di un elemento complesso

• Cancellazione di un attributo• Cancellazione di un elemento semplice

• Cancellazione di un elemento complesso• Cambio ordine di attributi all’interno di un elemento• Cancellazione di un valore da una lista di possibili scelte per un attributo

Page 15: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

15

Ricostruzione di un documento XML valido per una specifica DTD modificata (3)

validaDoc(XML)

Struttura logica del programma Funzione Valida(XML)

inserisciDoc()

parsingStringa(eccezione) gestioneEccezione(eccezione)

correzioneDoc(XML)

si

no

DOCUMENTO VALIDO

Parsing della stringa della eccezione generata

Verifica della eccezione generata

Correzione del documento XML e proseguimento della validazione

Page 16: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

16

Ricostruzione di un documento XML valido per una specifica DTD modificata (4)

Page 17: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

17

Ricostruzione di un documento XML valido per una specifica DTD modificata (5)

Cancellazione di un nodo complesso

Nodo da cancellare

Concatenazione di tutte le foglie del nodo complesso

Punto dove concatenare la stringa ricavata

Page 18: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

18

Ricostruzione di un documento XML valido per una specifica DTD modificata (6)

concatenaFoglie(nodo)

riposFratelloSinistro(XML)

Struttura logica del programma Funzione cancellaNodoComplesso(XML)

riposFratelloDestro(XML)

riposPadre(XML)

no

no

validaDoc(XML)

si

si

si

Se il riposizionamento va a buon fine si continua con la validazione

Page 19: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

19

Query Composte

Possibilità di effettuare Query di Query su documenti XML

Necessità di utilizzare il modulo di Querying di Xgate

METODO

Per ogni Query effettuata su un documento XML viene generata la DTD tramite il modulo di Estrazione di una DTD da un documento XML Il modulo di Querying preleva le informazioni sui nodi (e relativi attributi) dalla DTD associata al documento XML che si vuole interrogare. Grazie a queste informazioni che si creano, in cascata, delle finestre di supporto per la creazione della stringa Xpath

Page 20: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

20

Query Composte (2)

Docum.

XML

DTD associata

ModulodiQuerying

Query

result

Generat.

DTD

DTDgenerata

1

1 - Documento XML con DTD associata

2

2 - Query sul documento XML

3

3 - Estrazione DTD dal documento XML risultato

Page 21: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

21

Query Composte (3)

Page 22: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

22

Risultati ottenuti e sviluppi futuri

•Produzione di un modulo per l’estrazione della DTD da un Documento XML

•Produzione di metodi per la ricostruzione di un Documento XML valido per una DTD modificata

•Produzione di un modulo per la composizione di Query composte su Documenti XML

Gli sviluppi futuri riguardano la possibilità di utilizzare gli schemi XML per la definizione delle grammatiche da applicare ai documenti XML.

Page 23: UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase

23

Conclusioni

www.parlaritaliano.it