Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Corso di Laurea in Ingegneria Informatica Tecniche di ranking per l’interrogazione approssimata di dati XML Cristian Colli Relatore: Prof. Paolo Tiberio Controrelatore: Prof. Sonia Bergamaschi Correlatore: Dott. Federica Mandreoli Ing. Riccardo Martoglia Anno Accademico 2001/2002 Interrogazione approssimata XML Interrogazione XML Documento XML dblp <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="XMLTree.xsl"?> <article> article <dblp> <author> <article key="tr/gte/TR-0146-06-91-165"> article D. Shasha <corresponding author> </author> D. Shasha <author> </corresponding author> K. Zhang year author author key Corr. author author title journal date <author>K. Zang</author> </author> author <author>J.T.L. Wang</author> <year>1994</year> <title> </article> 1994 D.shasha K. Zhang D. K. J.T.L. year Journal of Approximate tree matching in the presence of… Shasha Zang Wang algorithms </title> <journal>Journal of algorithms</journal> 1994 <volume>TR-0146-06-91-165</volume> Non sempre esistono soluzioni che rispondono a pieno all’interrogazione <date> <month>June</month> Interrogando l’albero XML accediamo a dati di cui non conosciamo lo schema <year>1994</year> </date> Necessità di criteri per la selezione delle risposte approssimate </article> </dblp> Obiettivi della tesi Metrica di similarità tra alberi Flessibile (fornendo all’utente la possibilità di esprimere le proprie preferenze attraverso appositi parametri) Rigorosa (quantificando il valore di dissimilianza tra alberi attraverso il calcolo della tree edit distance unordered) Efficace (garantendo di produrre risultati utili e di qualità) Algoritmi per la risoluzione di interrogazioni Completi (fornendo all’utente tutti e solo i risultati effettivamente utili) Efficienti (garantendo prestazioni soddisfacenti attraverso l’utilizzo di filtri costruiti ad hoc) Parametri L’utente deve poter decidere come penalizzare le soluzioni approssimate trovate Albero query article 2 Penalizzazioni: Costo locale per ogni nodo query non trovato nell’albero dati 0 Costo locale per ogni rilassamento sui vincoli di parentela padre figlio nell’albero dati 1 Per ogni inconsistenza sul contenuto la metrica di dissimilarità e espressa dalla edit distance 1 2 2 year author 1 2 1994 1 2 author 1 4 2 K. Zhang D. Shasha Soglia = 3 Parentela = 2 Occorre specificare un limite alle soluzioni approssimate attraverso l’introduzione di un valore di soglia di dissimilarità che permetta di selezionare le soluzioni. Parentela: Distanza massima che può esistere nell’albero dati tra due nodi legati nell’albero query, da una relazione padre-figlio Tree Edit Distance Unordered Necessità di misurare una distanza tra alberi (unordered) che sia una metrica e che permetta in seguito di selezionare solo le soluzioni per le quali la distanza è inferiore alla soglia T1 Edit operation: Inserimento Cancellazione Sostituzione E D B T2 R A C A R F C Supponendo per ciascuna edit operation un costo unitario: Tree edit distance = 2 Costo di cancellazione del nodo D Inserimento del nodo F in T1(Costo di cancellazione nodo F in T2) E B Algoritmo tree edit distance unordered T D C A F Consideriamo un albero alla volta e per entrambi determiniamo tutti i possibili sotto alberi B RK(T) RK(T) 1 nodo RK(T) 3 nodi Costruiamo tutti i possibili sottoalberi K(T) RK(T) D C A D F A_C F Riduciamo l’albero affinchè contenga solo nodi Head Memorizziamo gli RK(T) secondo Il numero di Head che contengono RK(T) 5 nodi Algoritmo per tree edit distance tra alberi unordered Teorema: Ogni confronto tra RK(T1) e RK(T2) nel quale Head(RK(T1)) Head(RK(T2)) ha distanza infinita. RK(T1) RK(T2) C RK 3 nodi A Tabella HASH C B B A Dist = 0 D C D F C H E G RK 5 nodi A B Dist = Nella tabella Hash il confronto a costo minore rappresenta la tree edit distance Unordered Tree Edit Distance per Interrogazioni Approssimate Tree Edit Distance: ottima metrica per esprimere la distanza tra alberi ma non adatta alla risoluzione di query T1 T2 D C A D F B C F H E G B A Necessità di valutare la distanza tra l’albero query e le sotto parti dell’albero dati Occorre adattare la metrica al contesto delle interrogazioni: per tutti nodi dell’albero dati: Costo_del = 0 Resta problema della complessità: NP-completo La complessità è esponenziale al crescere del numero dei nodi degli alberi Per un albero di m=18 nodi il numero di sottoalberi è limitato da 2m –1=262143 Filtro per la ricerca delle parti Necessità di un filtro che limiti la complessità della funzione per il calcolo della Tree Edit Distance T1 T2 D C A D F B C F H E G B A Identificando i gruppi di nodi dell’albero dati che possono risolvere la query otteniamo degli alberi che contengono al più lo stesso numero di nodi dell’albero query. La complessità rimane esponenziale solo per quanto riguarda le dimensioni dell’albero query Algoritmo Filtro Filtro basato sul contenuto: per ogni nodo query si cercano i nodi dati simili per ogni nodo query processato si generano tutti i gruppi di nodi che sono possibili soluzioni Soglia = 3 Parentela = 2 Albero query Albero dati 3, AA 7, AA 3, GG 1, BB 6, AB 2, CC Gruppi generati: Nodo query AA: 1, GF 7; 6 Assunzioni per Tutti i nodi query: Nodo query BB: 7; 6; 7,2; 7,5; 7,6; 6,5; 2; 5; 6; Nodo query CC: 7,2,4; 7,5,4; 7,6,4; 6,5,4; 7,5; 6,5; 7,4 Risultati del filtro: 7,2,4; 7,5,4; 2, GB 4, CC 5, BB Costo_del = 2 Ril_par =1 7,6,4; 6,5,4; Risultati del filtro Il filtro individua i gruppi di nodi che possono rispondere alla interrogazione 3, AA Albero query Albero dati 7, AA 3, GG 1, BB 6, AB 2, CC 1, GF 2, GB 4, CC 5, BB Risultati del filtro: 7,2,4 con distanza filtro 3 (reale 3) 7,5,4 con distanza filtro 2 (reale 2) 7,6,4 con distanza filtro 1 (reale infinito) 6,5,4 con distanza filtro 1 (reale 1) Per i gruppi candidati che soddisfano la query, la distanza coincide con quella calcolata dal filtro Interrogazione approssimata XML Riconsideriamo l’interrogazione iniziale per la quale l’utente ha specificato I seguenti parametri: dblp - article 2 0 2 year 1 2 1 1 2 2 author author 1 1 4 2 1994 D.shasha K. Zhang Soglia = 3 Parentela = 2 article key Corr. author author title author D. K. Shasha Zang J.T.L. Wang journal date Journal of algorithms year 1994 In dblp esiste una soluzione approssimata. Il filtro propone il gruppo di nodi evidenziati come candidato (distanza 3) L’algoritmo calcola il relativo valore di dissimilianza con l’albero query mediante la funzione di tree edit distance: Il candidato è soluzione con valore di dissimilianza = 3 Selettività filtro Efficacia del filtro realizzato al variare del valore di soglia per una interrogazione contenente 6 nodi su di un albero composto da 22. I parametri della interrogazione sono: Costo_del = 2 Ril_par =2 Parentela = 2 sol filtro 70 65 60 50 Soluzioni trovate la dimensione dell’insieme candidato prodotto dal filtro è vicina a quella delle soluzioni alla query Il filtro si adatta al valore dei parametri imposti dall’utente sol effettive 40 32 30 29 20 12 11 10 0 0 5 3 1 0 1 2 4 3 4 5 6 Valore della soglia La complessità dell’algoritmo, complessivamente viene ridotta nel caso peggiore da 222=4194304 a 65 x ( 26 ) = 4160 con un fattore di riduzione pari a 1000. Scalabilità (1) Prestazioni dell’algoritmo nel suo complesso al variare del numero di nodi presenti nella query. Il tempo necessario per 18 17 16 Tempo di esecuzione (sec) Valore deiilparametri: convertire documento XML nella struttura ad albero Soglia = il3tempo maggiore rappresenta = 2 efficienza di eParentela indica la scarsa Costo_del = 2 tale funzione. = 1 per l’esecuzio IlRil_par tempo richiesto dell’interrogazione rimane limitato poiché aumentando il numero di nodi della query aumentano i criteri di selettività del filtro. Albero dati 440 nodi 15 15 14 14 14 12 t imm 10 9 9 9 9 9 t tot 8 6 4 2 0 0 2 4 6 Nodi query 8 10 12 Scalabilità (2) Prestazioni dell’algoritmo nel suo complesso al variare del numero di nodi presenti nella query. Valore dei parametri: 3 2 2 1 L’occupazione di memoria presenta un andamento di tipo esponenziale al crescere del numero di nodi della query 41,5 Occupazione memoria (Mbyte) Soglia = Parentela = Costo_del = Ril_par = Occupazione memoria 41 41 40,5 40 40 39,5 39 39 39 39 38,5 0 2 4 6 Nodi query 8 10 12 Conclusioni Obiettivi conseguiti: E’ stata definita una metrica di similarità tra alberi efficace basata sul concetto di Unordered Tree Edit Distance Utilizzando questa metrica è stato definito e affrontato il problema di risoluzione di una query. E’ stato definito un filtro in grado di ricercare le parti di un albero dati di grandi dimensioni simili all’albero query E’ stato realizzato in Java un ambiente comune che riunisce queste funzionalità Sviluppi futuri: Ricercare criteri per la costruzione dei soli sottoalberi utili Potenziare gli algoritmi proposti per la realizzazione del filtro Migliorare le prestazioni della funzione che converte il documento XML nella struttura ad albero utilizzata dall’algoritmo