<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Monadic Datalog Containment on Trees</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andre Frochaux</string-name>
          <email>afrochaux@informatik.uni-frankfurt.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Grohe</string-name>
          <email>grohe@informatik.rwth-aachen.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicole Schweikardt</string-name>
          <email>schweika@informatik.uni-frankfurt.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Goethe-Universitat Frankfurt am Main</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>RWTH Aachen University</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>We show that the query containment problem for monadic datalog on nite unranked labeled trees can be solved in 2-fold exponential time when (a) considering unordered trees using the axes child and descendant, and when (b) considering ordered trees using the axes rstchild, nextsibling, child, and descendant. When omitting the descendant -axis, we obtain that in both cases the problem is Exptime-complete.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The query containment problem (QCP) is a fundamental problem that has been
studied for various query languages. Datalog is a standard tool for expressing
queries with recursion. From Cosmadakis et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Benedikt et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] it is
known that the QCP for monadic datalog queries on the class of all nite
relational structures is 2Exptime-complete. Restricting attention to nite unranked
labeled trees, Gottlob and Koch [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] showed that on ordered trees the QCP for
monadic datalog is Exptime-hard and decidable, leaving open the question of
a tight bound.
      </p>
      <p>
        Here we show a matching Exptime upper bound for the QCP for monadic
datalog on ordered trees using the axes rstchild, nextsibling, and child. When
adding the descendant -axis, we obtain a 2Exptime upper bound. This, in
particular, also yields a 2Exptime upper bound for the QCP for monadic datalog
on unordered trees using the axes child and descendant, and an Exptime upper
bound for unordered trees using only the child -axis. The former result answers
a question posed by Abiteboul et al. in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. We complement the latter result by
a matching lower bound.
      </p>
      <p>The paper is organised as follows. Section 2 xes the basic notation
concerning datalog queries, (unordered and ordered) trees and their
representations as logical structures, and summarises basic properties of monadic datalog
on trees. Section 3 presents our main results regarding the query containment
problem for monadic datalog on trees. Due to space limitations, most
technical details had to be deferred to the full version of this paper, available at
http://arxiv.org/abs/1404.0606.</p>
    </sec>
    <sec id="sec-2">
      <title>Trees and Monadic Datalog (mDatalog)</title>
      <p>Throughout this paper, will always denote a nite non-empty alphabet.
By N we denote the set of non-negative integers, and we let N&gt;1 := N n f0g.</p>
      <p>Relational Structures. As usual, a schema consists of a nite number of
relation symbols R, each of a xed arity ar(R) 2 N&gt;1. A -structure A consists of
a nite non-empty set A called the domain of A, and a relation RA Aar(R) for
each relation symbol R 2 . It will often be convenient to identify A with the set
of atomic facts of A, i.e., the set atoms(A) consisting of all facts R(a1; : : : ; aar(r))
for all relation symbols R 2 and all tuples (a1; : : : ; aar(R)) 2 RA.</p>
      <p>If is a schema and ` is a list of relation symbols, we write ` to denote the
extension of the schema by the relation symbols in `. Furthermore, denotes
the extension of by new unary relation symbols label , for all
2 .</p>
      <p>Unordered Trees. An unordered -labeled tree T = (V T ; T ; ET ) consists
of a nite set V T of nodes, a function T : V T ! assigning to each node v of
T a label (v) 2 , and a set ET V T V T of directed edges such that the
graph (V T ; ET ) is a rooted tree where edges are directed from the root towards
the leaves. We represent such a tree T as a relational structure of domain V T
with unary and binary relations: For each label 2 , label (x) expresses that
x is a node with label ; child(x; y) expresses that y is a child of node x; root(x)
expresses that x is the tree's root node; leaf (x) expresses that x is a leaf; and
desc(x; y) expresses that y is a descendant of x (i.e., y is a child or a grandchild
or . . . of x). We denote this relational structure representing T by Su(T ), but
when no confusion arises we simply write T instead of Su(T ).</p>
      <p>The queries we consider for unordered trees are allowed to make use of at
least the predicates label and child. We x the schema
u := fchildg:</p>
      <p>
        -labeled trees as u; -structures was
considThe representation of unordered
ered, e.g., in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Ordered Trees. An ordered -labeled tree T = (V T ; T ; ET ; orderT ) has
the same components as an unordered -labeled tree and, in addition, orderT
xes for each node u of T , a strict linear order of all the children of u in T .</p>
      <p>To represent such a tree as a relational structure, we use the same domain and
the same predicates as for unordered -labeled trees, along with three further
predicates fc (\ rst-child"), ns (\next-sibling"), and ls (\last sibling"), where
fc(x; y) expresses that y is the rst child of node x (w.r.t. the linear order of the
children of x induced by orderT ); ns(x; y) expresses that y is the right sibling
of x (i.e., x and y have the same parent p, and y is the immediate successor of
x in the linear order of p's children given by orderT ); and ls(x) expresses that
x is the rightmost sibling (w.r.t. the linear order of the children of x's parent
given by orderT ). We denote this relational structure representing T by So(T ),
but when no confusion arises we simply write T instead of So(T ).</p>
      <p>The queries we consider for ordered trees are allowed to make use of at least
the predicates label , fc, and ns. We x the schemas
o := ffc; nsg
and</p>
      <p>
        GK := oroot;leaf ;ls:
In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Gottlob and Koch represented ordered
-labeled trees as GK; -structures.
      </p>
      <p>
        Datalog. We assume that the reader is familiar with the syntax and
semantics of datalog (cf., e.g., [
        <xref ref-type="bibr" rid="ref6 ref8">6,8</xref>
        ]). Predicates that occur in the head of some rule of a
datalog program P are called intensional, whereas predicates that only occur in
the body of rules of P are called extensional. By idb(P) and edb(P) we denote
the sets of intensional and extensional predicates of P, resp. We say that P is
of schema if edb(P) . We write TP to denote the immediate consequence
operator associated with a datalog program P. Recall that TP maps a set C of
atomic facts to the set of all atomic facts that are derivable from C by at most
one application of the rules of P (see e.g. [
        <xref ref-type="bibr" rid="ref6 ref8">6,8</xref>
        ]). The monotonicity of TP implies
that for each nite set C, the iterated application of TP to C leads to a xed
point, denoted by TP!(C), which is reached after a nite number of iterations.
      </p>
      <p>Monadic datalog queries. A datalog program belongs to monadic datalog
(mDatalog, for short), if all its intensional predicates have arity 1.</p>
      <p>A unary monadic datalog query of schema is a tuple Q = (P; P ) where P is
a monadic datalog program of schema and P is an intensional predicate of P.
P and P are called the program and the query predicate of Q. When evaluated
in a nite -structure A that represents a labeled tree T , the query Q results in
the unary relation Q(T ) := fa 2 A : P (a) 2 TP!(atoms(A)) g.</p>
      <p>The Boolean monadic datalog query QBool speci ed by Q = (P; P ) is the
Boolean query with QBool(T ) = yes i the tree's root node belongs to Q(T ).</p>
      <p>The size jjQjj of a monadic datalog query Q is the length of Q = (P; P )
viewed as a string over a suitable alphabet.</p>
      <sec id="sec-2-1">
        <title>Expressive power of monadic datalog on trees. From Gottlob and</title>
        <p>
          Koch [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] we know that on ordered -labeled trees represented as GK; -structures,
monadic datalog can express exactly the same unary queries as monadic
secondorder logic | for short, we will say \mDatalog( GK) = MSO( GK) on ordered
trees". Since the child and desc relations are de nable in MSO( GK), this
implies that mDatalog( GK) = mDatalog( GchKild;desc) on ordered trees.
        </p>
        <p>
          On the other hand, using the monotonicity of the immediate consequence
operator, one obtains that removing any of the predicates root; leaf ; ls from
GK strictly decreases the expressive power of mDatalog on ordered trees (see
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]). By a similar reasoning one also obtains that on unordered trees,
represented as ur;oot;leaf ;desc-structures, monadic datalog is strictly less expressive
than monadic second-order logic, and omitting any of the predicates root, leaf
further reduces the expressiveness of monadic datalog on unordered trees [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
3
        </p>
        <p>Query Containment for Monadic Datalog on Trees
Let be one of the schemas introduced in Section 2 for representing (ordered
or unordered) -labeled trees as relational structures. For two unary queries Q1
and Q2 of schema we write Q1 Q2 to indicate that for every -labeled
tree T we have Q1(T ) Q2(T ). Similarly, if Q1 and Q2 are Boolean queries
of schema , we write Q1 Q2 to indicate that for every -labeled tree T ,
if Q1(T ) = yes then also Q2(T ) = yes. We write Q1 6 Q2 to indicate that
Q1 Q2 does not hold. The query containment problem (QCP, for short) is
de ned as follows:</p>
        <p>The QCP for mDatalog( ) on trees</p>
        <p>Input: A nite alphabet and</p>
        <p>two (unary or Boolean) mDatalog(
Question: Is Q1 Q2 ?
)-queries Q1 and Q2.</p>
        <p>
          It is not di cult to see that this problem is decidable: the rst step is to
observe that monadic datalog can e ectively be embedded into monadic
secondorder logic, the second step then applies the well-known result that the monadic
second-order theory of nite labeled trees is decidable (cf., e.g., [
          <xref ref-type="bibr" rid="ref11 ref4">11,4</xref>
          ]).
        </p>
        <p>
          Regarding ordered trees represented as GK-structures, in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] it was shown
that the QCP for unary mDatalog( GK)-queries on trees is Exptime-hard. Our
rst main result generalises this to unordered trees represented as u-structures:
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Theorem 1</title>
        <p>The QCP for Boolean mDatalog( u) on unordered trees is Exptime-hard.</p>
        <p>
          Our proof proceeds via a reduction from the Exptime-complete two
person corridor tiling (TPCT) problem [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]: For a given instance I of the
TPCTproblem we construct (in polynomial time) an alphabet and two Boolean
mDatalog( u; )-queries Q1, Q2 which enforce that any tree T witnessing that
Q1 6 Q2, contains an encoding of a winning strategy for the rst player of the
TPCT-game associated with I. Using Theorem 1 along with a method of [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] for
replacing the child-predicate by means of the predicates fc; ns, we can transfer
the hardness result to ordered trees represented by o-structures:
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Corollary 2</title>
        <p>The QCP for Boolean mDatalog( o) on ordered trees is Exptime-hard.</p>
        <p>Our second main result provides a matching Exptime upper bound for the
QCP on ordered trees, even in the presence of all predicates in GchKild:</p>
      </sec>
      <sec id="sec-2-4">
        <title>Theorem 3</title>
        <p>
          The QCP for unary mDatalog( GchKild) on ordered trees belongs to Exptime.
Proof (sketch). Consider a schema GchKild;desc. By using the
automatatheoretic approach [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], a canonical method for deciding the QCP for unary
mDatalog( ) proceeds as follows:
(1) Transform the input queries Q1 and Q2 into Boolean queries Q01 and Q02 on
binary trees, such that Q1 Q2 i Q01 Q02.
(2) Construct tree automata Ayes and Ano such that Ayes (resp. A2no) accepts
1 2 1
exactly those trees T with Q01(T ) = yes (resp. Q02(T ) = no).
(3) Construct the product automaton B of Ayes and A2no, such that B accepts
1
exactly those trees that are accepted by Ayes and by A2no. Afterwards, check
1
if the tree language recognised by B is empty. Note that this is the case if,
and only if, Q1 Q2.
        </p>
        <p>Using time polynomial in the size of Q1 and Q2, Step (1) can be achieved in a
standard way by appropriately extending the labelling alphabet .</p>
        <p>
          For Step (3), if Ayes and Ano are nondeterministic bottom-up tree automata,
1 2
the construction of B takes time polynomial in the sizes of Ayes and A2no, and the
1
emptiness test can be done in time polynomial in the size of B (see e.g. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]).
        </p>
        <p>
          The rst idea for tackling Step (2) is to use a standard translation of Boolean
monadic datalog queries into monadic second-order (MSO) sentences: It is not
di cult to see (cf., e.g. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]) that any Boolean mDatalog( )-query Q can be
translated in polynomial time into an equivalent MSO-sentence 'Q of the form
8X1
8Xn 9z1
9z` Wm
j=1 j
where n is the number of intensional predicates of Q's monadic datalog program
P, ` and m are linear in the size of Q, and each j is a conjunction of at
most b atoms or negated atoms, where b is linear in the maximum number of
atoms occurring in the body of a rule of P. Applying the standard method for
translating MSO-sentences into tree automata (cf., e.g., [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]), we can translate
the sentence :'Q into a nondeterministic bottom-up tree-automaton Ano that
accepts a tree T i Q(T ) = no. This automaton has 2(m0 cb0 ) states, where m0
and b0 are linear in m and b, resp., and c is a constant not depending on Q or
; and Ano can be constructed in time polynomial in j j 2n+`+m0 cb0 .
        </p>
        <p>Using the subset construction, one obtains an automaton Ayes which accepts
a tree T i Q(T ) = yes; and this automaton has 22(m0 cb0 ) states.</p>
        <p>Note that, a priori, b0 might be linearly related to the size of Q. Thus, the
approach described so far leads to a 3-fold exponential algorithm that solves the
QCP for unary mDatalog( )-queries.</p>
        <p>
          In case that does not contain the desc-predicate, we obtain a 2-fold
exponential algorithm as follows: At the end of Step (1) we rewrite Q01 and Q02
into queries that do not contain the child-predicate , and we transform both
queries into tree marking normal form (TMNF), i.e., a normal form in which
bodies of rules consist of at most two atoms, at least one of which is unary. From
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] we obtain that these transformations can be done in time polynomial in the
size of Q01 and Q02. Note that for TMNF-queries, the parameters b and b0 are
constant (i.e., they do not depend on the query), and thus the above description
shows that for TMNF-queries the automaton Ano can be constructed in 1-fold
2
exponential time, and Ayes can be constructed in 2-fold exponential time.
        </p>
        <p>1</p>
        <p>
          Finally, the key idea to obtain a 1-fold exponential algorithm solving the
QCP is to use a di erent construction for the automaton Ayes, which does not
1
use the detour via an MSO-formula but, instead, takes a detour via a two-way
alternating tree automaton (2ATA): We show that a Boolean TMNF-query can
be translated, in polynomial time, into a 2ATA A^1yes that accepts a tree T i
Q1(T ) = yes. It is known that, within 1-fold exponential time, a 2ATA can
be transformed into an equivalent nondeterministic bottom-up tree automaton
(this was claimed already in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]; detailed proofs of more general results can be
found in [
          <xref ref-type="bibr" rid="ref10 ref12">12,10</xref>
          ]). In summary, this leads to a 1-fold exponential algorithm for
solving the QCP for mDatalog( GchKild) on ordered trees. tu
Since uroot;leaf
        </p>
        <p>GchKild, Theorem 3 immediately implies:
Corollary 4 The QCP for unary mDatalog( uroot;leaf ) on unordered trees
belongs to Exptime.</p>
        <p>
          It remains open if the Exptime-membership results of Theorem 3 and
Corollary 4 can be generalised to queries that also use the descendant predicate desc.
However, the rst approach described in the proof of Theorem 3 yields a 3-fold
exponential algorithm. We can improve this by using methods and results from
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] to eliminate the desc-predicate at the expense of an exponential
blowup of the query size. Afterwards, we apply the algorithms provided by Theorem 3
and Corollary 4. This leads to the following:
Theorem 5 The QCP for unary mDatalog( uroot;leaf ;desc) on unordered trees
and for unary mDatalog( GchKild;desc) on ordered trees can be solved in 2-fold
exponential time.
        </p>
        <p>Open Question. It remains open to close the gap between the Exptime lower
and the 2Exptime upper bound for the case where the descendant -axis is
involved.</p>
        <p>Acknowledgment. The rst author would like to thank Mariano Zelke for
countless inspiring discussions and helpful hints on and o the topic.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bourhis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muscholl</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wu</surname>
          </string-name>
          .
          <article-title>Recursive queries on trees and data trees</article-title>
          .
          <source>In Proc. ICDT'13</source>
          , pages
          <fpage>93</fpage>
          {
          <fpage>104</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Benedikt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bourhis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Senellart</surname>
          </string-name>
          .
          <article-title>Monadic datalog containment</article-title>
          .
          <source>In Proc. ICALP'12</source>
          , pages
          <fpage>79</fpage>
          {
          <fpage>91</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>B. S.</given-names>
            <surname>Chlebus</surname>
          </string-name>
          .
          <article-title>Domino-tiling games</article-title>
          .
          <source>J. Comput. Syst. Sci.</source>
          ,
          <volume>32</volume>
          (
          <issue>3</issue>
          ):
          <volume>374</volume>
          {
          <fpage>392</fpage>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>H.</given-names>
            <surname>Comon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dauchet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gilleron</surname>
          </string-name>
          , C. Loding,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jacquemard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lugiez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tison</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tommasi</surname>
          </string-name>
          .
          <article-title>Tree automata techniques and applications</article-title>
          . Available at http: //www.grappa.
          <source>univ-lille3.fr/tata</source>
          ,
          <year>2008</year>
          . release November,
          <year>18th 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Cosmadakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Gaifman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kanellakis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>Decidable optimization problems for database logic programs</article-title>
          .
          <source>In Proc. STOC'88</source>
          , pages
          <fpage>477</fpage>
          {
          <fpage>490</fpage>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>E.</given-names>
            <surname>Dantsin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Gottlob, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>Complexity and expressive power of logic programming</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>33</volume>
          (
          <issue>3</issue>
          ):
          <volume>374</volume>
          {
          <fpage>425</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Frochaux</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Schweikardt</surname>
          </string-name>
          .
          <article-title>A note on monadic datalog on unranked trees</article-title>
          .
          <source>Technical Report</source>
          , available at CoRR, abs/1310.1316,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Koch</surname>
          </string-name>
          .
          <article-title>Monadic datalog and the expressive power of languages for web information extraction</article-title>
          .
          <source>J. ACM</source>
          ,
          <volume>51</volume>
          (
          <issue>1</issue>
          ):
          <volume>74</volume>
          {
          <fpage>113</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Koch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <article-title>Conjunctive queries over trees</article-title>
          .
          <source>J. ACM</source>
          ,
          <volume>53</volume>
          (
          <issue>2</issue>
          ):
          <volume>238</volume>
          {
          <fpage>272</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maneth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Friese</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Seidl</surname>
          </string-name>
          .
          <article-title>Type-Checking Tree Walking Transducers</article-title>
          . In D. D'Souza and P. Shankar, editors,
          <source>Modern applications of automata theory</source>
          , volume
          <volume>2</volume>
          of IISc Research Monographs. World Scienti c,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. W. Thomas.
          <article-title>Languages, automata, and logic</article-title>
          .
          <source>In Handbook of Formal Languages</source>
          , volume
          <volume>3</volume>
          , pages
          <fpage>389</fpage>
          {
          <fpage>455</fpage>
          . Springer-Verlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>M.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>Reasoning about the past with two-way automata</article-title>
          .
          <source>In Proc. ICALP'98</source>
          , pages
          <fpage>628</fpage>
          {
          <fpage>641</fpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>