Containment for XPath Fragments under DTD Constraints
ICDT '03 Proceedings of the 9th International Conference on Database Theory
Path sharing and predicate evaluation for high-performance XML filtering
ACM Transactions on Database Systems (TODS)
Containment and equivalence for a fragment of XPath
Journal of the ACM (JACM)
XPath satisfiability in the presence of DTDs
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
XMark: a benchmark for XML data management
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
On testing satisfiability of tree pattern queries
VLDB '04 Proceedings of the Thirtieth international conference on Very large data bases - Volume 30
Homomorphism resolving of XPath trees based on automata
APWeb/WAIM'07 Proceedings of the joint 9th Asia-Pacific web and 8th international conference on web-age information management conference on Advances in data and web management
Hidden conditioned homomorphism for XPath fragment containment
DASFAA'06 Proceedings of the 11th international conference on Database Systems for Advanced Applications
Satisfiability of XPath queries with sibling axes
DBPL'05 Proceedings of the 10th international conference on Database Programming Languages
Hi-index | 0.00 |
XPath satisfiability is one of the most basic problems of XML query optimization. A satisfiability decision framework, named SAT-DTD, is proposed to determine, given a set of XPath queries P and a DTD τ, which subset of P are satisfiable by an XML tree conforming to DTD τ. In the framework, an indexed NFA is constructed from the set of XPath queries P, and then the NFA is driven by simple API for DTD (SAD, something like SAX) events, derived from DTD τ, to evaluate the predicates in P and to decide the satisfiability of P. Especially, DTD choice (i.e. '|' operator) is taken into consideration, and an algorithm, named SAT-DTD_C, which bases on SAT-DTD, is put forward to determine the unsatisfiability caused by DTD choice. At last, the complexity of the algorithms is analyzed, and the correctness of the algorithms is tested by experiments.