Seminario di Ingegneria del
software
Studio della composizione di
servizi attraverso l’uso di tecniche
del data integration
Autore: Paolo Urbano
Docente: Giuseppe De Giacomo
•
A View Integration Approach to Dynamic Composition of Web Services
Snehal Thakkar, Craig Knoblock and José Luis Ambite
Workshop on Planning for Web Services, The 13th International Conference
on Automated Planning & Scheduling (ICAPS 2003), Trento, Italy, 2003.
•
A Data Integration Approach to Automatically Composing and Optimizing
Web Services
Snehal Thakkar, José Luis Ambite and Craig A. Knoblock
In Proceeding of 2004 ICAPS Workshop on Planning and Scheduling for Web
and Grid Services, June 2004.
•
Composing, optimizing, and executing plans for bioinformatics web services,
Snehal Thakkar, Jose Luis Ambite, and Craig A. Knoblock.
VLDB Journal, Special Issue on Data Management, Analysis and Mining for
Life Sciences, 14(3):330--353, Sep 2005.
•
Retrieving and Semantically Integrating Heterogeneous Data from the Web.
Martin Michalowski, José Luis Ambite, Craig A. Knoblock, Steve Minton,
Snehal Thakkar, and Rattapoom Tuchinda
IEEE Intelligent Systems., Vol. 19, No. 3, 2004, pp. 72-79.
Introduzione
• Il potenziale dei web services può essere sfruttato solo se si effettua
la composizione dei servizi.
• In questo approccio vediamo i web services come sorgenti di dati.
• I primi tre articoli fanno uso di tali principi: i primi due illustrano le
idee fondamentali e il terzo è un esempio di applicazione al dominio
bioinformatico.
• La composizione completamente automatica di servizi, in risposta
ad una query utente arbitraria, rimane un problema aperto.
A View Integration Approach to Dynamic
Composition of Web Services (/1)
• Scopo: generare un piano d’integrazione universale di web service
per rispondere alle query utente.
• Il Mediatore è l’oggetto che costruisce il piano d’integrazione.
• Il Mediatore tradizionale accetta in input una specifica query utente
q e la riformula come combinazione di query alle sorgenti per
rispondere a q, utilizzando un algoritmo di riformulazione di query.
• In questo articolo modifichiamo l’inverse rule algorithm per produrre
un web service integrato che possa rispondere ad un range di query.
A View Integration Approach to Dynamic
Composition of Web Services (/2)
Esempio conduttore:
Ogni web service è rappresentato come un predicato:
CitytoCounty(city’, state’, county)
LAProperty(address’, city, value)
NYProperty(address’, city’, county, value)
YellowPages(name’, city’, state, address, phone)
Gli attributi apostrofati sono richiesti come input del servizio, sugli altri non vi è nessun
tipo di restrizione.
Query utente:
Trova il valore fiscale delle proprietà di tutte le ubicazioni ‘Burger King’
nella città di ‘Torrance’ nello stato della California (‘CA’).
A View Integration Approach to Dynamic
Composition of Web Services (/3)
• Passi fondamentali:
1) Query utente  Insieme di query datalog
2) Insieme di query datalog  Theseus
Theseus è un meccanismo di esecuzione di query che permette il
parallelismo delle operazioni e l’invio di un flusso di dati tra i vari
componenti del piano d’integrazione generato.
A View Integration Approach to Dynamic
Composition of Web Services (/4)
Predicati del Mediatore:
Location(locid, address, city, county, state)
Value(locid, value)
Business(name, locid, phone)
Definizione delle sorgenti (approccio LAV):
R1: LAProperty(address, city, value):Location(locid, address, city, county, state) ^ Value(locid, value) ^
county = ‘LA’^ state = ‘CA’
R2: NYProperty(address, city, county, value):Location(locid, address, city, county, state) ^ Value(locid, value) ^
state = ‘NY’
A View Integration Approach to Dynamic
Composition of Web Services (/5)
R3: YellowPages(name, address, city, state, phone) :- Business(name,
locid, phone)^ Location(locid, address, city, county, state)
R4: CitytoCounty(city, state, county):Locations(locid, address, city, county, state)
A View Integration Approach to Dynamic
Composition of Web Services (/5)
• La fase 1 consiste nell’invertire le definizioni delle viste per ottenere
quelle delle relazioni globali sulle sorgenti:
Per ogni definizione V(X) :- S1(X1),…,Sn(Xn), dove X e Xi si riferiscono
all’insieme di attributi nelle relazioni e nelle viste
corrispondenti, l’Inverse
Rule Algorithm genera n regole del tipo: Si(Xi’) :- V(X), dove la differenza tra gli
insiemi X’ e X è che in X’ ci possono essere simboli di funzione.
R1: LAProperty(address, city, value):Location(locid, address, city, county, state) ^ Value(locid, value) ^
county = ‘LA’^ state = ‘CA’

IR1: Location( f1locid(a, ci, v), a , ci, ‘LA’, ‘CA’) :- LAProperty(a, ci, v)
IR2: Value(f1val(a, ci, v), v) :- LAProperty(a, ci, v)
A View Integration Approach to Dynamic
Composition of Web Services (/6)
La Fase 2 consiste nel trasformare l’insieme di regole datalog
prodotte dalla Fase 1, unitamente alla query utente, nel linguaggio
di Theseus:
costruzione di moduli;
ogni modulo rappresenta un’operazione;
ogni operazione prende in input e restituisce in output un insieme
di relazioni
InRel(name’, city’, state’,
value)
Corrisponde all’esecuzione
della inverse rule
Business(n, f1bus(n, a, ci, s, p), p):YellowPages(n, ,a, ci, s, p)
Corrisponde all’esecuzione
delle inverse rule IR1 e IR2
Tutti i web service sulle
tasse delle proprietà sono
interrogati in parallelo.
A View Integration Approach to Dynamic
Composition of Web Services (/7)
Problema:
• Il Mediatore deve generare un nuovo piano d’integrazione per ogni
query utente, anche se, per esempio, cambiano solo i valori delle
costanti.
Idea:
• Il Mediatore diventa un generatore di web service:
accetta una query utente e genera un web service capace di
rispondere ad una classe di query, alla quale apparitene anche
la query data.
A View Integration Approach to Dynamic
Composition of Web Services (/8)
• Generalizzazione di una query:
Le tecniche per generalizzare le query si basano, generalmente,
sulle combinazioni degli attributi sui quali generalizzare.
Qui viene utilizzata una “generalizzazione completa”, cioè una
generalizzazione su tutti i parametri, la query diventa:
‘Trova i valori fiscali di tutte le proprietà di una certa attività in una data
città di un certo stato.’
A View Integration Approach to Dynamic
Composition of Web Services (/9)
Problema derivante dall’uso di questa tecnica:
• Il piano generato potrebbe inviare troppe richieste a molte sorgenti
di dati.
Idea: Tuple – Level Filtering Algorithm
Con questa tecnica, ogni sorgente viene interrogata solamente per
l’informazione presente nella sorgente stessa.
A View Integration Approach to Dynamic
Composition of Web Services (/10)
Risultano quindi necessarie due modifiche all’Inverse Rule
Algorithm:
• Le costanti vengono trattate come variabili per generalizzare la
query (il piano risultante avrà la capacità di interrogare sia il web
service relativo alle proprietà della contea di Los Angeles, sia quello
relativo allo stato di New York).
• Le sorgenti vengono interrogate solo con input validi (Il Los Angeles
web service verrà interrogato solo per le proprietà di Los Angeles e
Il New York web service solamente per quelle di Newy York); le
interrogazioni alle sorgenti vengono filtrate utilizzando i vincoli
presenti nelle definizioni delle sorgenti.
A View Integration Approach to Dynamic
Composition of Web Services (/11)
Risultato:
Numero minore di interrogazioni e interrogazioni più ‘sensate’:
• Per una specifica query, solo uno dei web service sulle tasse delle
proprietà viene effettivamente interrogato;
• Le interrogazioni sono filtrate oltre che dalle operazioni di select,
anche da interrogazioni ad altre sorgenti che contengono
informazioni che permettono di risparmiare ulteriormente.
Il Mediatore, a partire
dal programma
datalog, costruisce il
piano d’integrazione
che viene eseguito
da Theseus.
L’informazione sulle
Tasse è ottenuta
facendo uso anche
del web service
CityToCounty
Il Mediatore restituisce
all’utente l’URL del
nuovo servizio generato
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/1)
• La novità sostanziale di questo articolo è rappresentata
dall’implementazione di metodi per ottimizzare l’esecuzione della
composizione di web service
• Oltre al funzionamento del Tuple – Level Filtering Algorithm, per
ridurre il numero di richieste ai web service, sarànno utilizzate delle
interrogazioni aggiuntive per ottimizzare ulteriormente l’esecuzione.
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/2)
Oltre alle descrizioni delle sorgenti, vengono fornite al sistema, dall’esperto
del dominio, le dipendenze funzionali, nel nostro caso, per esempio,
consideriamo la dipendenza funzionale:
<address, city, state>  <value>
Avremo in input al Mediatore:
FR1: equals(value, value’) :BusinessProperties(name, addr, city, county,
state, zip, phone, value)^
BusinessProperties(name’, addr’, city’, county’,
state’, zip’, phone’, value’)^
equals(addr, addr’)^
equals(city, city’)^
equals(state, state’)
FR2: equals(x, z) :- equals(x, y) ^ equals(y, z)
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/3)
Consideriamo il programma datalog generato dal sistema:
PR1: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^
LAProperty(addr, city, zip, val)
PR2: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^
TNProperty(addr, city, cty, zip, val)
Il Tuple Level – Filtering Algorithm fornisce al programma i valori dei
parametri per effettuare le operazioni di filtraggio.
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/4)
Passi fondamentali del Tuple – Level filtering Algorithm:
• Analizza la lista delle chiamate di sorgente:
•
Per ogni definizione di sorgente esamina i vincoli:
1)
Se il valore dell’attributo coinvolto è presente nel corpo
di una Inverse Rule inserisce il vincolo di filtraggio
2)
Altrimenti inserisci una ‘sensing operation’ per
recuperare il valore del parametro
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/5)
1) L’algoritmo fa uso di vincoli di uguaglianza e di ordinamento
per ridurre l’ampiezza delle query:
TR1: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^
st = ‘CA’^
LAProperty(addr, city, zip, val)
TR2: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^
st = ‘TN’^
TNProperty(addr, city, cty, zip, val)
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/6)
2) Il Mediatore può chiamare altri servizi per recuperare i valori degli
attributi richiesti: sensing operation
Il programma datalog ottimizzato include la chiamata al servizio
CityToCounty per produrre il vincolo: County = ‘Los Angeles’
SR1: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^ st = ‘CA’^
CitytoCounty(city, st, cty)^cty = ‘Los Angeles’^
LAProperty(addr, city, zip, val)
SR2: Q1(name, addr, city, cty, st, zip, ph, val):YellowPages(name, zip, city, st, addr, ph)^
name = <name>^st = ‘TN’^
TNProperty(addr, city, cty, zip, val)
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/7)
Risultati sperimentali
Query:
‘Richiesta di creare un web service che accetta il nome di
un’attività e fornisce la lista delle ubicazioni di tali attività e i loro
valori fiscali’
Input #tuple
PagGialle
356
#tuple
Tennesse
#tuple
California
#tuple
Los
Angeles
Inverse
Rule
T-L
Filtering
With
Sensing
17
10
4
8747 sec
92 sec
88 sec
A Data Integration Approach to Automatically
Composing and Optimizing Web Services(/8)
• L’applicazione delle tecniche di ottimizzazione descritte ha ridotto il
tempo di esecuzione di due ordini di grandezza.
• In generale, il Tuple – Level Filtering Algorithm, con o senza sensing
operation, è notevolmente efficace nei domini dove più attributi
possono essere utilizzati per ridurre le richieste a differenti web
service. Per esempio: integrare l’informazione proveniente dai
giornali locali o dai produttori di automobili.
Composing, optimizing, and executing plans
for bioinformatics web services(/1)
• Questo articolo descrive un’applicazione dei risultati precedenti al
dominio bioinformatico.
• Consiste nella composizione automatica di piani d’integrazione
parametrizzati per web service di tipo informativo:
il sistema crea un piano d’integrazione che accetta i valori dei
parametri forniti in input, recupera ed integra l’informazione dai web
service rilevanti e restituisce il risultato all’utente.
• I valori dei parametri di input non sono noti al tempo di
composizione del piano.
Composing, optimizing, and executing plans
for bioinformatics web services(/2)
Dominio: ci sono diversi web service, che modellano l’informazione
sui vari tipi di proteine e sulle interazioni tra le proteine stesse:
Composing, optimizing, and executing plans
for bioinformatics web services(/3)
• Query: creare un web service che accetta l’identificatore di una
proteina, interroga le sorgenti rilevanti e restituisce l’informazione
all’utente sulla sequenza della proteina stessa e le informazioni sulle
proteine con le quali interagisce direttamente o indirettamente:
Le entità Protein e Protein – Protein Interaction sono entità virtuali
Composing, optimizing, and executing plans
for bioinformatics web services(/4)
Composing, optimizing, and executing plans
for bioinformatics web services(/5)
Domain Rule: permette
di esprimere la
chiusura transitiva
della relazione
Protein – Protein
Interaction,per non
perdere l’informazione
sull’interazione indiretta
tra le proteine.
Composing, optimizing, and executing plans
for bioinformatics web services(/6)
Applicazione dell’Inverse Rule Algorithm:
In questo caso la
corrispondenza tra le
definizioni di sorgente
e le regole inverse
è 1 a 1 (in generale,
è 1 a n).
Composing, optimizing, and executing plans
for bioinformatics web services(/7)
• Il Mediatore combina la query utente, le regole inverse rilevanti e la
domain rule per generare un piano universale, capace di rispondere
alla classe di query alla quale appartiene anche quella iniziale:
Nel piano sono presenti anche
le sorgenti
MMProtein e MMProtein Interaction,
anche se non servono alla
query iniziale.
A questo punto diventa necessario
ottimizzare l’esecuzione del piano
d’integrazione generato per rimuovere
le richieste inutili alle sorgenti
(il valore dei parametri è noto solo
a tempo di esecuzione).
Composing, optimizing, and executing plans
for bioinformatics web services(/8)
Applicazione delle tecniche di ottimizzazione:
• Consideriamo la richiesta di creare un web service che accetta
l’identificatore di una proteina e il valore taxonid (un valore che
rappresenta il tipo di proteina) e trova tutte le interazioni protein –
proteina.
• L’algoritmo utilizza i vincoli sull’attributo taxonid ed aggiunge i vincoli
di filtraggio prima di interrogare il web service:
Composing, optimizing, and executing plans
for bioinformatics web services(/9)
Aggiunta di una ‘sensing operation’:
• L’algoritmo interroga la sorgente SS per ottenere i valori dei
parametri non ancora noti
Composing, optimizing, and executing plans
for bioinformatics web services(/10)
• Siccome sussiste l’ipotesi di ‘mondo aperto’, le risposte alle query
potrebbero non essere complete, diventa, quindi, necessario
recuperare le tuple eventualmente perse:
In questo modo non vi sono tuple in meno
rispetto al risultato della query iniziale.
Per garantire la correttezza
della tecnica utilizzata, non ci
devono essere nemmeno tuple in più
rispetto al risultato della query originaria:
il Tuple – Level Filtering Algorithm
verifica le ‘condizioni di compatibilità’
prima di interrogare una sorgente
aggiuntiva, tra le quali vi è il vincolo
che il risultato della query ottimizzata
sia un sottoinsieme di quello della query originale.
Composing, optimizing, and executing plans
for bioinformatics web services(/11)
• Piano effettivamente eseguito dal sistema:
viene inserita una richiesta alla sorgente DipProtein (sensing
operation) e successivamente il vincolo taxonid = 9606 (filtering
operation) prima delle richieste ai web service riguardanti le
proteine.
Composing, optimizing, and executing plans
for bioinformatics web services(/12)
Conclusioni:
• Grazie alla modularità del lavoro svolto, i vari strumenti sviluppati
possono essere utlizzati indipendentemente gli uni dagli altri:
Theseus come meccanismo di esecuzione dei piani generati;
Tuple – Level Filtering Algorithm, con o senza sensing operation, per
ottimizzare l’esecuzione dei piani;
L’inverse Rule Algorithm come algoritmo di riformulazione di query.
Composing, optimizing, and executing plans
for bioinformatics web services(/13)
Sviluppi futuri
• Strategie per stabilire efficientemente come determinare i vincoli
utilizzati per generalizzare la query utente.
• Modellare in maniera automatica il nuovo web service generato
dalla richiesta dell’utente come sorgente di dati nel dominio del
mediatore (questo può essere ottenuto rappresentando il nuovo web
service tramite la struttura della query).
• Facilitare l’integrazione intelligente di web service differenti.
Retriving and semantically integrating
heterogeneous data from the web(/1)
Questo articolo utilizza le idee chiave degli studi precedenti e fornisce
strumenti complessi d’integrazione semantica dei dati.
Concetti chiave dell’articolo:
• Realizzazione di tecnologie in grado di integrare i dati descritti in
ontologie diverse, per esempio le immagini e i dati strutturati.
• Riconoscere quando più oggetti in differenti siti rappresentano lo
stesso oggetto nel mondo reale.
Retriving and semantically integrating
heterogeneous data from the web(/2)
• Building Finder integra le immagini provenienti dal satellite e i dati
strutturati e semistrutturati di varie sorgenti online utilizzando il
semantic web.
• L’utente può interrogare una vista integrata di queste sorgenti e
richiedere a Building Finder di sovrapporre accuratamente le
informazioni riguardanti edifici e strade alle immagini del satellite.
Retriving and semantically integrating
heterogeneous data from the web(/3)
• I dati raccolti sono eterogenei anche in termini di come
l’applicazione accede alle sorgenti:
alle immagini del satellite tramite Microsoft’s web service TerraService, alle strade tramite US Census Bureau’s Tigerline file(un
database dell’università della california del sud);
inoltre accede all’informazione presente in Los Angeles Property Tax
Information Web Site e a Yahoo Yellow Page Web Site.
• L’utente può utilizzare Building Finder per mezzo di un’interfaccia
che fa uso di agenti che interrogano l’applicazione con RDF Data
Query Language (RDQL) ed ottenendo i risultati in RDF.
Retriving and semantically integrating
heterogeneous data from the web(/4)
Strumenti per l’integrazione di dati efficiente:
1)
Tecniche di apprendimento automatico per convertire i siti
tradizionali e i database in web services.
2)
Record Linkage System per consolidare i dati presenti in sorgenti
diverse che si riferiscono alla stessa entità.
3)
Mediatore che fornisce accesso uniforme ai dati.
4)
Sistema di esecuzione di query efficiente.
Retriving and semantically integrating
heterogeneous data from the web(/5)
(1)
Wrapping delle sorgenti online:
•
E’ necessario poiché l’ampiezza e la profondità delle query non favoriscono
l’uso di sistemi di immagazzinamento dei dati localmente.
Le pagine web sono scritte in HTML quindi estrarre i dati diventa un lavoro
complicato perché i tag non possiedono una semantica ben precisa.
I wrapper devono ‘imparare’ ad estrarre i dati rilevanti cercando un percorso
che li conduca ai dati d’interesse: possiamo utilizzare una tecnica di
ragionamento automatico chiamata Wrapper Rule Learning; per esempio,
per estrarre i nomi delle persone possiamo notare che il dato è presente
dopo <HTML>Name:<b> e prima di </b>.
•
•
Retriving and semantically integrating
heterogeneous data from the web(/6)
(2)
Record Linkage System:
•
Rispondere al problema: gli stessi oggetti possono esistere in formati
differenti e la ricerca di un oggetto può restituire risultati multipli.
Active Atlas individua gli attributi comuni di oggetti, apparentemente diversi,
per identificare un matching tra gli oggetti stessi:
- seleziona una sorgente primaria per il nome dell’entità e fornisce un
mapping tra tale sorgente ed ogni altra che fornisce un nome differente.
Il sistema può imparare che ‘Rep’, in una sorgente, è comunemente usato
come abbreviazione di ‘Republic’, che una sorgente utilizza spesso
acronimi, che un’altra rappresenta le persone con ‘Nome e Cognome’,
mentre un’altra ancora con ‘Cognome e Nome’.
Uso congiunto di un sistema di consolidamento di oggetti e di un mediatore:
il mediatore, in questo caso, serve ad individuare automaticamente quali
sorgenti secondarie interrogare nel caso in cui il sistema di consolidamento
di oggetti non possa determinare se due oggetti si riferiscono alla stessa
entità.
•
•
Retriving and semantically integrating
heterogeneous data from the web(/7)
(3)
Il Mediatore:
Prometheus
Obiettivo: fornire un accesso unico alle varie sorgenti di dati.
L’utente invia una query attraverso l’interfaccia oppure formula una RDQL
query, e il Mediatore restituisce il risultato all’interfaccia.
Retriving and semantically integrating
heterogeneous data from the web(/8)
A)
B)
C)
I tre componenti principali di Prometheus:
Modello di dati
Riformulazione di query
Convertitore Datalog  Theseus
Retriving and semantically integrating
heterogeneous data from the web(/9)
A) Il Modello dei dati:
Building Finder usa i predicati di dominio Street, Image e Building.
L’utente può interrogare il sistema attraverso l’uso di questi predicati
(definiti secondo l’approccio GAV)
Retriving and semantically integrating
heterogeneous data from the web(/10)
B)
Riformulazione di query:
alla ricezione della query, Prometheus unisce la query al modello
del dominio e genera un programma Datalog in grado di
rispondere alla query.
C)
Convertitore:
Prometheus converte il programma Datalog per farlo eseguire a
Theseus.
Retriving and semantically integrating
heterogeneous data from the web(/11)
4)
Esecuzione efficiente di query
Cause di inefficienza:
• presenza di sorgenti multiple;
• ritardi di rete e/o dovuti alla capacità delle sorgenti di
elaborare le richieste;
• vincoli di precedenza tra le sorgenti di dati.
Retriving and semantically integrating
heterogeneous data from the web(/12)
Parallelismo orizzontale e verticale in Theseus:
•
orizzontale: esecuzione decentralizzata, gli operatori (le
funzioni) lavorano indipendentemente gli uni dagli altri.
•
verticale: gli operatori si attivano appena il loro input diviene
disponibile e passano il risultato agli altri operatori in modalità
pipeline.
Attivazione degli operatori per il recupero dell’informazione riguardante
le tasse sulle proprietà e le informazioni sugli edifici:
Retriving and semantically integrating
heterogeneous data from the web(/13)
Confronto tra quest’approccio rispetto a quello basato sul
datawarehousing spesso utilizzato nel semantic web:
• il sistema accede a dati sempre ‘freschi’ (nel datawarehousing i dati
potrebbero essere modificati prima del ciclo di aggiornamento del
warehouse)
• l’applicazione è più scalabile: i dati disponibili sul web crescono
molto e diventa difficile ospitarli localmente
• cambiare l’ontologia del mediatore e le definizioni delle sorgenti
(approccio GAV) è più facile piuttosto di ricostruire il datawarehouse.
Retriving and semantically integrating
heterogeneous data from the web(/14)
Applicazione possibile:
Gestione dei disastri: Building Finder potrebbe, in tale eventualità,
risultare utile per ottenere informazioni sulle aree affette, inclusi i
nomi delle strade e degli edifici.
Sviluppi futuri:
Integrare le sorgenti utilizzando tecniche Object Oriented, ragionando
sulle classi, come in OWL e RDF, piuttosto che limitarsi alle regole
Datalog.
Sensing source e binding pattern
Entrambi le tecniche possono essere utilizzate per recuperare i
valori degli attributi mancanti.
Confronto diventa tra l’applicazione delle sensing operation e i
risultati teorici sul binding pattern.
Analisi e dimostrazione della validità:
•
del Tuple – Level Filtering
•
del binding pattern
Compatibilità di una sorgente
Teorema
Dato un piano d’integrazione Q, generato utilizzando l’algoritmo
dell’Inverse Rule in risposta ad una query utente, il Tuple – Level
Filtering produce un nuovo piano d’integrazione Q’, contenente filtri
e sensing operation, tale che Q=Q’.
Dimostrazione
date le definizioni delle sorgenti:
e consideriamo le seguenti query:
• caso 1:
la tupla [X, Z] appartiene alla prima regola di Q’
allora deve appartenere anche alla sottoformula
• caso 2:
la tupla [X, Z] appartiene alla seconda regola di Q’
allora anch’essa deve appartenere anche alla sottoformula
• caso1:
Supponiamo che esistono Y’, Z’ tali che
Allora se [X, Z] appartiene a
Dovrà appartenere anche alla seconda regola di Q’
• caso 2:
Supponiamo che esistono Y’, Z’ tali che
Allora se [X, Z] appartiene a
Dovrà appartenere anche alla prima regola di Q’.
• caso 3:
Supponiamo che esistono Y’, Z’ tali che
sviluppiamo la definizione di SS, si ha che
Per la definizione di SF, inoltre:
Allora,
• caso 3…continua:
Tuttavia, la VI condizione della verifica della compatibilità della
sorgente deve essere anch’essa soddisfatta
Ma allora esiste una tupla che appartiene al corpo della prima query e
non alla seconda.
Assurdo.
Il Tuple – Level Filtering non modifica la semantica della query utente.
c.v.d.
Computing Complete Answers to Queries in
the Presence of Limited
Access Patterns
• Studio della stabilità di varie classi di query
Una query è stabile se la sua risposta completa può essere
calcolata per ogni database costituito dalle relazioni della query
stessa.
• Studio della fattibilità di una query e cerchiamo di metterla in
relazione con la stabilità.
L’ordine dei sottogoal di una query è fattibile, se per ogni
sottogoal nell’ordine, le variabili di input o sono costanti o sono
presenti in un sottogoal precedente.
Una query è fattibile se ha un ordine fattibile dei suoi sottogoal.
Esempio di query fattiblie e stabile
Binding adornament di r ed s: ‘bf’
Fattibilità  Stabilità
Lemma:
Una query congiuntiva fattibile è stabile.
Dimostrazione
• Sia Q una CQ che abbia un ordine fattibile dei suoi sottogoal
g1(X1), …gn(Xn).
• Costruzione di un “piano lineare”: calcolare la sequenza di n
relazioni supplementari I1, ...In, tali che la relazione Ii è la relazione
ottenuta dopo che i primi i-1 sottogoal sono stati eseguiti.
continua….
Fattibilità  Stabilità
• Provare che questo piano calcola effettivamente ANS(Q, D):
supponiamo che ogni tupla appartenente ad ANS(Q, D) viene
dalle tuple t1, …tn delle relazioni g1, ..gn, rispettivamente.
Per ogni j=1..n, la tupla
è inclusa nella relazione supplementare
senza variabili irrilevanti (quelle che non appaiono nei
sottogoal successivi o nella testa della query).
Accediamo al j-esimo sottogoal rispettando il suo biinding
pattern (query fattibile) per ottenere la tupla
Otteniamo anche la relazione supplementare n-esima.
Corollari
• Una query congiuntiva è stabile se ha una query equivalente fattibile
• Se una query congiuntiva ha una query equivalente minimale
fattibile, allora la query è stabile
Stabilità  Fattibilità
Lemma:
se la query minimale equivalente ad una query conguntiva non è
fattibile, allora la query non è stabile.
Costruzione di D1 e di D2.
La query non è fattibile quindi almeno un sottogoal rispondibile
UCQ
• Se applichiamo il nostro studio all’unione di query congiuntive
(UCQ) otteniamo:
Sia Q un unione di query congiuntive su relazioni con binding
pattern, Q è stabile se e solo se, per ogni query, la query
minimale equivalente a Q è stabile.
Stabilità di query Datalog
Vediamo un esempio:
Flight(F, T)
una relazione (binding adornament ‘bf’) che rappresenti i voli
nonstop da F a T.
Definiamo la relazione reachable:
RGG: Rule Goal/Graph
Costruiamo l’RGG associato al goal reachable:
Esempio di RGG fattibile
RGG: Rule Goal/Graph
• Costruiamo l’RGG associato al goal reachable, dopo aver invertito
l’ordine dei sottogoal della regola r2:
Esempio di RGG non fattibile
Condizione sufficiente
Il problema di determinare la stabilità di un programma datalog è
indecidibile (anche l’equivalenza di query datalog è indecidibile)
Ci dobbiamo accontentare una condizione sufficiente:
Se un insieme di relazioni con binding pattern ha un RGG fattibile
rispetto ad un query goal, allora la query è stabile
Conclusioni
Questi risultati teorici sono una certificazione del fatto che è
ragionevole utilizzare le tecniche sul binding pattern per ottenere
risposte complete durante il recupero di dati dalle sorgenti. Lo
stesso obiettivo, del resto, che volevamo raggiungere quando
utilizzavamo sorgenti ausiliarie (sensing source) nel Tuple – Level
Filtering per recuperare il valore degli attributi mancanti.
Scarica

presentazione