[[pi]]NodeSet(n) = [
n0∈Node
[
(n0,n1)∈Rchild, n1∈Labb
[
(n1,n01)∈Rparent
[
(n01,n2)∈Rchild
· · · [
(ni,n0i)∈Rparent
{ni+1|(n0i, ni+1)∈Rchild},
Figure 1: Naive evaluation of queries p0 =//b, pi+1 =pi/../∗.
[[pi]]NodeSet(n) = S
n0i∈Si
{ni+1 | (n0i, ni+1)∈Rchild} = Fchild(Si) Si = S
ni∈S0i
{n0i | (ni, n0i)∈Rparent} = Fparent(Si0) Si0 = S
n0i−1∈Si−1
{ni | (n0i−1, ni)∈Rchild} = Fchild(Si−1) ...
S1 = S
n1∈S10
{n01 | (n1, n01)∈Rparent} = Fparent(S10) S10 = S
n0∈Node
{n1 ∈Labb |(n0, n1)∈Rchild} = Fchild(Node)∩Labb
where
Faxis(N) ={n0 ∈Node | ∃n∈N. (n, n0)∈Raxis}
Figure 2: Improved evaluation of queries p0 =//b, pi+1 =pi/../∗.