ppt - Dipartimento di Informatica

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
|
AB
|
$x. A
|
0
|
h[A] |
A|B
|
h ~ h’ |
x
|
m x. A
$X. A
|
X
|
Negazione permette di definire operatori derivati:
F
AB
"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