Realizzazione completa di TQL, un linguaggio per l’interrogazione di dati semi-strutturati Giovanni Conforti Orlando Ferrara Università degli Studi di Pisa Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Sommario - indice della tesi • • • • • • • • • Stato dell’arte - SSD. Data model. Il linguaggio TQL. L’algebra TQL. Traduzione. Un modello di valutazione. Riscritture logiche in TQL. Il TQL dell’implementazione. Il sistema TQL. 2 Dati semi-strutturati: origini e caratteristiche • • • • • Modellare e interrogare il Web. Memorizzare dati sperimentali. Fondere basi di dati eterogenee. ……… Dati Semi-Strutturati (SSD): • struttura irregolare; • struttura implicita; • struttura non prescrittiva; • struttura sempre in evoluzione; • ......... 3 Data model: SSD come alberi etichettati articles article article title date author author date …… Ghelli TQL author …… year month 2001 Feb Cardelli Apr, 2000 Gordon (Esempio) articles[ article[ author[Cardelli] | author[Gordon] | title [Anywhere] | date[Apr, 2000] ] | article[ author[Ghelli] | title[TQL] | conf[ETAPS] | date[ month[Feb] | year[2001] ] ] ] 4 TQL come query language per SSD • • • Basato su 3 clausole: • matching; • filtering; • reconstruction. Fuse in unico operatore di binding: |= Espressivo: • definire operatori classici per SSD e definirne nuovi; • esprimere concetti non presenti in altri QL per SSD. (Prezzo da pagare!) alcuni operatori richiedono: • non semplice implementazione; • elevata complessità nella valutazione. 5 6 7 8 Potenzialità di TQL • Esprimere totalmente o parzialmente la struttura di foreste. • Trovare la struttura regolare di una collezione (schema). • Integrabilità con funzioni user-defined. • Combinare diverse sorgenti di dati. • Potenziamento tramite ricorsione e quantificazione universale. • ……... 9 Tree Logics - sintassi A, B ::= T | A | AB | $x. A | 0 | h[A] | A|B | h ~ h’ | x | m x. A $X. A | X | Negazione permette di definire operatori derivati: F AB "x. A "X. A h[A] A || B Path Expressions: • espressioni regolari; • esprimono in modo compatto vincoli sui cammini; • definite in termini delle formule della Tree Logics. Es. .m.n[A] invece di m[ n[A] | T ] | T 10 Tree Logics - descrizione di foreste F |=s,d 0 sse F=0 F |=s,d A B sse F |=s,d A e F |=s,d B F |=s,d m[A] sse F = m[F’] e F’ |=s,d A F |=s,d A | B sse $F’, F’’. F = F’ | F’’ e F’ |=s,d A e F’’ |=s,d B richiede un costo esponenziale nel numero degli alberi di F!!! F |=s,d m[A] sse " F’. F = m[F’] F’ |=s,d A F |=s,d A || B sse " F’, F’’. F = F’ | F’’ F’ |=s,d A o F’’ |=s,d B F |=s,d T sempre F |=s,d X sse F = s(X) F |=s,d A sse ( F |=s,d A ) ……… 11 TQL Queries Sintassi: Q, Q’ ::= 0 | X | h[Q] | f(Q) | Q | Q’ | Esempio: result[ from $articles |= articles[ article[title[$T] | date[$D] | T ] | T] select article[title[$T] | date[$D]]] $T $D {Anywhere} {Apr, 2000} {TQL} { month[Feb] | year[2001] } from Q |= A select Q’ result[ article[ title [Anywhere] | date[Apr, 2000] ] | article[ title[TQL] | date[ month[Feb] | year[2001] ] ] ] 12 Flusso di valutazione Algebra intermedia assicura: • trasformabilità • eseguibilità Parsing query TQL Riscrittura TQL Traduttore Riscrittura TQL Algebra espressione algebrica Ottimizzatore Fisico Valutatore 13 Lavoro di tesi: novità • • • • • TQL Algebra - estensione. Traduzione da TQL a TQL Algebra - raffinamenti. Modello di valutazione. Riscritture logiche in TQL. Implementazione del Sistema TQL. 14 TQL Algebra È un’algebra di alberi e tabelle, definita su quattro sorte: tree expressions Q: denotano information trees; sono il risultato della traduzione delle queries TQL; table expressions eV: denotano tabelle (anche infinite!!) con schema V, ovvero insiemi di sostituzioni con dominio V; sono il risultato della traduzione del binder Q |= A; row expressions rV: denotano sostituzioni per le variabili in V; label expressions M: denotano etichette. • • • • Esempi table expressions: V e {(X Q)} U {Q=Y|Y’} e Y|Y’ ……… Esempi tree expressions: rV(X) Y Par r e Q’ ……… 15 Traduzione dal TQL alla TQL Algebra • Esempio: (|from Q |= A $x. x[$Z] select Q’|)r = Par r’ e (|Q’|)r, r’ …… e = (|Q, A $x. x[$Z] |)r, e {$Z} (|Q, A|) (|Q, x[$Z]|) 16 Modello di valutazione • • • • Valutazione delle espressioni della TQL Algebra; Rappresenta in maniera finita tabelle possibilmente infinite. Usa i vincoli disgiuntivi (approccio dei constraint databases). $X $Y {a} NotIn { a, b } {b} {a} Valutazione alternativa degli operatori “complessi”: • complemento e co-proiezione (quantif. universale) 17 Riscritture - a livello di TQL • Complemento: pushing delle negazioni verso le foglie • (h[A]) h[ A] Es.: (A B) A B Linearizzazione del |: individuare formule lineari (e co-lineari) F |=s,d m[A] | B $ F1, F2 . F = F1 | F2 e F1=m[F3] e F3 |=s,d A e F2 |=s,d B F1 deve essere un albero e non una foresta (con più alberi)!!! Si passa da un costo esponenziale ad un costo lineare nel numero di alberi di F. A | B A |L B se linear(A) = true A denota solo alberi A || B A ||L B se colinear(A) = true A denota tutti i non-alberi 18 Sistema TQL - architettura …... Tql Applet • Realizzato in Java. • Alcune cifre: • ~20.000 LoC; • 182 classi. • Scaricabile al sito: http://tql.di.unipi.it/tql Tql Applet World Wide Web Tql GUI Tql Servlet Sys Interface Tql Engine World Wide Web DB File system XML 19 Conclusioni • • Argomenti non discussi: • XML (attributi, ordinamento, …); • safety delle queries (risultati infiniti); • analisi semantica (ricorsione e uso delle variabili); • implementazione (complemento, co-proiezione, …). Problemi aperti: • Tree Logic come type system; • controllo statico della safety; • modello dei costi ed ottimizzazione fisica; • estensione del modello ai grafi. 20 Realizzazione completa di TQL, un linguaggio per l’interrogazione di dati semi-strutturati Giovanni Conforti Orlando Ferrara Università degli Studi di Pisa Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica