Summary: | XPath is a simple language for navigating an XML-tree and returning a set of
answer nodes. The focus in this paper is on the complexity of the containment
problem for various fragments of XPath. We restrict attention to the most
common XPath expressions which navigate along the child and/or descendant axis.
In addition to basic expressions using only node tests and simple predicates,
we also consider disjunction and variables (ranging over nodes). Further, we
investigate the containment problem relative to a given DTD. With respect to
variables we study two semantics, (1) the original semantics of XPath, where
the values of variables are given by an outer context, and (2) an existential
semantics introduced by Deutsch and Tannen, in which the values of variables
are existentially quantified. In this framework, we establish an exact
classification of the complexity of the containment problem for many XPath
fragments.
|