composable xml integration grammars
DESCRIPTION
Composable XML Integration Grammars. Xibei Jia [email protected] Laboratory for Foundations of Computer Science Supervisor: Wenfei Fan 20 May 2004. Schema-directed XML integration. XML view. schema. data exchange. middleware. XML3. XML1. XML2. - PowerPoint PPT PresentationTRANSCRIPT
1
Composable XML Integration Grammars
Xibei Jia
Laboratory for Foundations of Computer Science
Supervisor: Wenfei Fan
20 May 2004
2
Schema-directed XML integration
extract relevant data from distributed, multiple XML repositories
construct an XML view conform to a predefined schema
XML3
XML1
XML view
XML2
middleware
schema
data exchange
3
Composable XML Integration
A lightweight language: XML Integration Grammar (XIG)
XML
XIGmiddleware
XMLXML
XML
XIGmiddleware
XMLXML
XML
XIGmiddleware
XMLXML XML
XIGmiddleware
XMLXML
XML
XIGmiddleware
XMLXML
query
result
wwwwww www www
www
4
Our middleware for composable schema-directed integration
XMLXMLXML
data sources
remoteXIG
XQueryengine
remoteXIG call
executionquery
scheduling
XQuery optimizer
querymerging
optimizerparsing
XIG XML document
cost statistics data call result
5
XIG: XML Integration Grammar
XIG: a novel specification language– Is not another query/transformation language – Rely solely on DTDs and XQuery– Provide a systematic mechanism and design tool to ensure
DTD-conformance for XQuery– Can be defined using some specific XQuery fragment that
allows for more optimizations than full-fledged XQuery– Composable: local/remote XIGs can be treated as functions
returning XML trees and can be embedded
A systematic framework for schema-directed XML integration
6
Example: car sale
db dealers, promotion
Syn(db) = <db> {Syn(dealers)} {Syn(promotion)} </db>
promotion sale *
Syn(promotion) = Vsale(X)
dealers dealer *
Inh(dealer) = for $Y in R/dl return $Y;
Syn(dealers) = <dealers> { Syn(dealer) } </dealers>
dealer name, address, cars
Inh(name) = let $p := Inh(dealer)/Uv
let $u := Inh(dealer)/U
let $v = $p:Vdealer($u)
return $v/dealer/name;
Syn(dealer) = <dealer> { Syn(name) } { Syn(address) } { Syn(cars) }
</dealer>
7
Example: car sale
car car *
Inh(car) let $s := Vsale(X)
for $c in Inh(cars)/car
$c1 in $s/promotion/sale
where $c/make = $c1/make and $c/model =
$c1/model
return $c
Syn(cars) = <cars> { Syn(car) } </cars>
car make, model, price, inStock
Syn(car) = Inh(car)
name PCDATA /* similarly for address */
Syn(name) = Inh(name)/text();
8
XIG-Evaluation Algorithms
Optimization techniques: nontrivial optimization problems
– recursion: capture recursive DTDs and recursive XIGs
– query scheduling: a cost-based algorithm for scheduling
local XML queries/XIGs and remote XIGs to maximize
parallelism
– query merging: merge certain queries processed at the
same source into a larger query to reduce communication
costs
– interaction between query merging and query scheduling:
have to be dealt with together, a greedy heuristic algorithm
– query dependency: XIGs support top-down, bottom-up and
sideway information passing (implicit)