41
Tree Logical Classes f or Efficient Evaluatio n of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Embed Size (px)

Citation preview

Page 1: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Tree Logical Classes for Efficient Evaluation of XQuery

Stelios PaparizosYuqing WuLaks V. S. Lakshmanan(University of Michigan)H. V. Jagadish

Page 2: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Outline• Abstract

• Preliminary

• TLC ALGEBRA

• XQUERY TO TLC EXPRESSIONS

• ELIMINATING REDUNDANCY

• PHYSICAL IMPLEMENTATION

• EXPERIMENTAL EVALUATION

• CONCLUSION

Page 3: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Abstract• introduce the notion of logical classes (LC) of

pattern tree nodes • generalize the notion of pattern tree matching

to handle node logical classes• define a Tree Logical Class(TLC) algebra that

is capable of handling the heterogeneity arising in XML query processing, while avoiding redundant work

• TLC is the algebra used in the TIMBER system

Page 4: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-(XML DB)

Page 5: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-(XML DB)

• XML database is often described as a forest of rooted node-labeled trees

• query pattern against the database are a forest such that each witness tree consists of a vector of data nodes from the database

• the relationships between the nodes in the database satisfy the desired structural relationship specified by the edges in the query pattern.

Page 6: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TIMBER: A Native XML Database

Page 7: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary- Relational Algebra

– Relational operators: [defined by Codd, 1970]

• Traditional set operations:– Union (– Intersection ()

– Difference ()– Cartesian Product / Times (x)

• Special relational operations:– Restrict () or Selection

– Project ()

– Join ( )

– Divide ()

Page 8: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary- Relational Operators

Union ( Intersection () Difference ()

Page 9: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary- Relational Operators (cont.)

Restrict () Project () Product (x)

xy

aabbcc

xyxyxy

abc

b1b2b3

Join(Natural)

a1a2a3

b1b1b2

c1c2c3

a1a2a3

b1b1b2

c1c1c2

Divide ()

aaabc

xyzx

y

xz

a

R1 x y R2 z w

R1 R2y=z

R1 x R2

x y z wa1 b1 b1 c1a1 b1 b2 c2a1 b1 b3 c3a2 b1 b1 c1 . . . . . . . . . . . .

Page 10: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-Physical Algebra Operators

• DataAccess (δp,f (S, i))

• Filter (φp(S))

• Sort (τb,m(S))

• ValueJoin (χp(Sl, Sr))

• StructuralJoin (b,(r1,...,rn−1),nl(S0, S1, . . . , Sn−1))

• BinaryNegativeStructuralJoin (.(Sl, r, Sr))

• Project (πnl(S, T))

• Union (∪(Sl, Sr))

Page 11: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-Physical Algebra Operators

• Intersection (∩(Sl, Sr))

• Difference (\(Sl, Sr))

• GroupBy (γgb,sb(S))

• AggregateFunction (ξin,on(S, name))

• Construct (κc(S))

Page 12: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-(pattern tree)

Definition (Pattern Tree)

A pattern tree is a pair P=(T,F),where T=(V,E) is a node-labeled and edge-labeled tree such that:

• Each node in V has a distinct integer as its label;

• Each edge is either labeled pc (for parent-child) or ad (for ancestor-descendant as ‘//’ node)

• F is a formula,i.e. a boolean combination of predicates applicable to nodes.

Page 13: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-Query Pattern Tree

• Query Pattern Tree (QPT)Consider the example BOOK DTD tree in Figure(a). A query to retrieve the title,author and price of books where books/section//title has value “XML Schema” have a QPT shown in Figure(b).

preface

Section+

title

(a) Example BOOK DTD

author

price

booktitle

publisher

fn ln address

year Section*

Para*

section

//

title

(b) A Query Pattern Tree

author price

book

title

Page 14: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Preliminary-Xquery-FLWR

• FLWR(FOR 、 LET 、 WHERE 、 RETURN) expression for iteration and for binding variables to intermediate results

• Useful for computing joins between two or more documents and for restructuring data

• Example

Page 15: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Steps in XML Query processing

Parsing

Code rewriting

Codegeneration

Executable code

Query

Data access pattern

Internal query/program representation

Lower level internal query representation

Page 16: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Code rewriting• Code rewritings goals

1. Reduce the level of abstraction2. Reduce the execution cost

• Code rewriting concepts– Code representation

• db: algebras

– Code transformations • db: rewriting rules

– Cost transformation policy• db: search strategies

– Code cost estimation

Page 17: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Code representation

• Is “algebra” the right metaphor ? Or expressions ? Annotated expressions ? Automata ?

• Standard algebra for Xquery ?• Redundant algebra or not ?

– Core algebra in the Xquery Formal Semantics

• Logical vs. physical algebra ?– What is the “physical plan” for 1+1 ?

• Additional structures, e.g. dataflow graphs ? Dependency graphs ?

Page 18: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC ALGEBRA• Most algebraic use pattern tree match as a basic buil

ding block: witness trees that result from matching a given pattern tree must by definition all be homogeneous, with structure identical to the pattern tree.

• They has a significant limitation – it requires that witness trees have the same size/structure as the pattern tree, and that each matched pattern tree node must appear once and only once in each witness tree

• TLC avoid redundant data accesses and redundant pattern matchings--by annotating edges to permit heterogeneous match results.

Page 19: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-extend pattern treeDefinition 1. Given a pattern tree Q = (V,E) and an edge e =(u,

v) ∈ E, the matching specification (mSpece) associated with e specifies how matches to v are to be obtained for each match of u. The value of mSpece can be one of the following:

• “-” : one and only one match of v is allowed for each match of u in one witness tree.

• “?” : zero or one match of v is allowed for each match of u in one witness tree.

• “+” : one or more matches of v are allowed for each match of u in one witness tree.

• “*” : zero or more matches of v are allowed for each match of u in one witness tree.

Page 20: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC--Annotated Pattern TreesDefinition 2. An Annotated Pattern Tree (APT)

is a tree Q =(V,E) where:• Associated with each v ∈ V is Pv, which spe

cifies the predicate for individual node match.• Associated with each edge e ∈ E (e = (u, v)),

is a Rele which specifies the desired structural relationship between u and v (the value of Rele can be either parent-child or ancestor-descendant), and mSpece, the matching specification.

Page 21: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC--Annotated Pattern Trees-example

Fig 4 -A sample match for an Annotated Pattern Tree. Any edge without an explicit annotation implies the default “-”. The double -edged lines represent an ancestor – descendant relationship. Note how the APT addresses heterogeneity on both dimensions (height and width) using variations of annotated edges.

Page 22: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(one-to-many mapping)

Definition 3. Given a rooted node-labeled tree T = (VT,ET ) representing an XML database and an annotated pattern tree Q =(VQ,EQ), a match of the annotated pattern tree Q on database T is a one-to-many mapping h such that:

• h maps the root of Q to a singleton set.

• For each pattern tree node u ∈ VQ, ∀x ∈ h(u): Pu(x).

Page 23: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(one-to-many mapping)

• For each pattern tree edge e = (u, v) ∈ EQ:

– ∀y ∈ h(v) ∃x ∈ h(u) : Rele(x, y)– [if (mSpece =“-” ∨ mSpece =“+”) then ∀x ∈ h

(u)∃y ∈ h(v) : Rele(x, y) ].– [if (mSpece =“-” ∨ mSpece =“?”) then ∀x ∈ h

(u),∀y, z ∈ h(v) : [if Rele(x, y) and Rele(x, z) then y =z]].

– [if (mSpece =“?” ∨ mSpece = “*”) and (∃y ∈ T :Pv(y) ∧ Rele(x, y)) then h(v) is non-empty].

– [if (mSpece =“*” ∨ mSpece =“+”) then ∀y ∈ T :(if Pv(y) ∧ Rele(x, y)) then y ∈ h(v))].

Page 24: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(logical class reduction)• Definition 4. Given a witness tree h(Q) produced by

the matching of an annotated pattern tree Q in some database; a LogicalClass (LC) of nodes matching v is defined as LC(v) = {h(v) :h(v) Vh∈ (Q)}. The logical class reduction of a witness tree h(Q) is a tree LCR(h(Q)) = (V,E) isomorphic to the pattern tree Q,defined as follows: (i) Its nodes are logical classes – V = {h(v) | v is a node in Q}; and(ii) it has an edge (h(u), h(v)) exactly when the edge (u, v) is present in Q.

Page 25: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(logical class reduction)-cont.• each node in an annotated pattern tree is map

ped to a set of matching nodes in each resulting witness tree.

• Each such set of nodes is called a logical class

• in Figure 4, the E nodes form a logical class for each witness tree. Call it is a Logical Class Label (LCL)

• witness trees resulting from pattern matches can be quite heterogeneous, but their logical class reduction is homogeneous.

Page 26: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(Algebraic Operators)

• Filter F[LCLf, p,m](S)

• Join J[apt, p](Sl, Sr)

• Select S[apt](S)

• Project P[nl](S)

• Duplicate-Elimination DE[nl, ci](S)

• Aggregate-Function AF[fname,LCLa, newLCL](S)

• Construct C[c](S)

Page 27: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

TLC-(Algebraic Operators).example

A sample projection operator.

(a)shows the input pattern tree P and projection list PL.

(b)shows an example application on two different input trees. To minimize clutter, labels have been dropped from ad edges in the pattern tree. pc edges are labeled.

Page 28: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery To TLC Expr. -(Algorithm)Algorithm TLCInput: a FLWOR expression Output: a TLC algebra planGlobals LCLCounter VARIABLES OPERATORS PATTERNTREESprocedure SingleBlock(in FLWOR) { Parse FLWOR, create Reductions for each Grammar Rule

For each Reduction do { // Processing FOR - LET

Case ForClause ::= FOR $var IN SPSet mSpec = ”-”aptO = SPtoAPT(SP, mSpec)add $var to VARS, point to aptO.leafnodeif (aptO.root is document())

If empty(OPERATORS) add Select[aptO]else if exists(Select[aptA])new Join[Cartesian](Select[aptA], Select[aptO])

else if (aptO.root is $varA)addToAPT($varA, aptO, mSpec)

Case LetClause ::= LET $var := SPSet mSpec = ”*”Same with FOR and omitted due to space restrictions// Processing WHERE

Page 29: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery to TLC Expr. -(Algorithm)cont.Case SimplePredicateExpr ::= SP Predicate Value

aptS = SPtoAPT(SP, ”-”)aptS.leafnode.add(Predicate(Value))if (aptS.root == $var1) addToAPT($var1, aptS, ”-”)

Case AggrPredExpr ::= Aggr(SP) Predicate ValueaptS = SPtoAPT(SP, ”*”)LCLF = aptS.leafnode, newLCL = LCLCounter++if (aptS.root == $var1) addToAPT($var1, aptS, ”*”)new AggregateFunction AF[Aggr, LCLF, newLCL]new Filter F[newLCL, Predicate(Value), ALO]find Select SV that uses aptV ,

set F.setChild(AF) and SV.parent.setChild(F) and SV.setParent(AF)Case ValueJoin ::= SPL Predicate SPR

aptL = SPtoAPT(SPL,”-”), aptR = SPtoAPT(SPR,”-”)LCLJL = aptL.leafNode, LCLJR = aptR.leafNodeaddToAPT(aptL.root, aptL, ”-”), addToAPT(aptR.root, aptR, ”-”)Find join ancestor, add(Predicate(LCLJL, LCLJR))

Case Every ::= ‘EVERY’ $var ‘IN’ SP ‘SATISFIES’ SimplePredExpraptS = SPtoAPT(SP, ”*”)addToAPT(aptS.root, aptS, ”*”)add $var to VARS point to aptS.leafnodeProcess SimplePredExpr, merge with aptS but use ”-” edgesCreate Filter operator from SimplePredExpr, use EVERY mode

Page 30: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery to TLC Expr.-(Algorithm) cont.Case Some ::= ‘SOME’ $var ‘IN’ SP ‘SATISFIES’ SimplePredExpr

Same with EVERY details omitted, only final Filter uses ALO modeCase ANDExp ::= WhereExpr ‘AND’ WhereExpr

Process left and right input merging the edgesCase ORExp ::= WhereExpr ‘OR’ WhereExpr

OR is translated to UNION of the operators produced both sidesMake sure the root node for each path on both sides is assignedthe same LCL, even if the tagname is different.// Processing ORDERBY-RETURN

Case OrderClause ::= ORDER BY SP1, . . . , SPn Modefor all SPi create aptSi = SPtoAPT(SPi, ”-”)for all aptSi Create a Select S[ aptSi ], add to OPERATORSCreate Sort[LCL1, . . . , LCLn, Mode], add to OPERATORS

Case ReturnClause ::= RETURN ReturnExprCreate Project: Keep all bound variables including root if there was a joinCreate NodeIDDE, only on FOR variablesParse RE, Create a tree with tags, SP and AggregatesConvert each SP to APT, create a Select for that APT

Replace SP with the LCL referencing the leaf node in APTSimilarly replace Aggregates(SP), but also add Aggregate[] after Selectadd Construct[parse tree] to OPERATORS

}}

Page 31: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery to TLC Expr. -(Algorithm) lastAPT function SPtoAPT(SP, mSpec)

Return an APT from the SP, use Rel from StepAxis, use mSpec for all edges

function addToAPT(VAR, APT, mSpec)From VAR retrieve Pattern Tree P and LCL info

add APT to P as child of LCL using mSpec

procedure NestedQuery(in FLWOR)Process FLWOR, if (Nested) then Call SingleBlock for ”inner” and ”outer”Add a join between the outer and inner plan

Use edge ”-” for FOR, edge ”*” for LET and RETURNModify plans, join values should pass projects used.Also, if inner construct elements are referenced in theouter clause then they should survive the outer projection.

Page 32: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery to TLC Expr.-(Algebraic Tree)

Fig7-Algebraic Tree for Q1. Order of evaluation isbottom-up. Each box represents an operator. Each APT edge has the matching specification marked next to it, except for the default “-” which is omitted for clarity. (ad) relationships use double edges. The LCLs assigned to each class are shown next to the corresponding APT node.

Page 33: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Xquery to TLC Expr.-(Algebraic Tree) nested

Algebraic Tree for nested Query Q2.

FOR $p IN document(“auction.xml”)//personFOR $o IN document(“auction.xml”)//open auctionWHERE count($o/bidder) > 5 AND $p/age > 25AND $p/@id = $o/bidder//@personRETURN<person name={$p/name/text()}> $o/bidder </person>

Q1

Page 34: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Eliminating Redundancy• Redundant access and redundant tree matching are draw

backs of traditional tree algebraic representation of XML queries

• Pattern Tree ReuseSelections 8 and 9 in Figure 7 use extended pattern treesPattern tree reuse is akin to common sub-expression elimination

consider pattern tree 1 in figure 10. We can apply a selection using this pattern tree and selection list $2, then a projection with the same tree and projection list $2, $4.The selection operator returns a set of faculty who have both RA and name children, along with the entire sub-tree rooted at each. The projection operator retains only the faculty and name nodes from each sub-tree.

Page 35: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Pattern Tree Reuseconsider pattern tree 2 in figure. If a projection is applied on the database using this tree and projection list $2, the empty set will be returned since no secretary is a direct child of the root node in the database of figure 1.

figure 10

Page 36: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Eliminating Redundancy –cont.

• Flattening.

Flatten Rewrite for Query Q1. Please note how Selection 2 from the original plan has been replaced by Selection 2 with a sub-tree of the original pattern tree containing only the path with “*”. Flatten 2a has been added after the aggregate has used the bidder nodes. Then selection 2b extends the bidder elements with person. The right block substitutes the left block eliminating redundant tree matches.

Page 37: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Eliminating Redundancy –cont.

• Shadow/IlluminateShadow/Illuminate rewriting procedure.

This generic example is indicative of how the procedure is performed. Note how the APT for Selection 1 has been replaced by an APT using an “+” annotated edge followed by the Shadow 1a operator. Selection 4 is replaced by Illuminate 4. We have eliminated redundant access to the database.

Page 38: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Experimental Evaluation

XQueries (x1, . . . , x20), queries Q1, Q2from the paper examples, and 10a as a variation of x10 with aselective filter applied on it. A/R = Arguments per Return clause, OT = Output Trees, J = Value Join

Page 39: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Results Discussion

Presenting the regular TLC plan vs. the optimized (OPT) plan, produced by performing the Flatten and Shadow rewrites

Page 40: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

Results Discussion

Execution time in seconds for XMark size factor 0.1through 5. Queries x3, x5, x13, Q1, Q2 are plotted.

Page 41: 2015/10/7 Tree Logical Classes for Efficient Evaluation of XQuery Stelios Paparizos Yuqing Wu Laks V. S. Lakshmanan (University of Michigan) H. V. Jagadish

CONCLUSION• the presentation of an algorithm to translate a

significant fragment of XQuery into TLC algebra, the development of an efficient implementation of TLC algebra and a careful experimental evaluation that shows the substantially superior performance of our TLC implementation compared to other implementations of the same queries via different algebras.