Introduction to Automata Theory, Languages and Computability
Introduction to Automata Theory, Languages and Computability
Holistic twig joins: optimal XML pattern matching
Proceedings of the 2002 ACM SIGMOD international conference on Management of data
Optimizing Regular Path Expressions Using Graph Schemas
ICDE '98 Proceedings of the Fourteenth International Conference on Data Engineering
Efficient Filtering of XML Documents for Selective Dissemination of Information
VLDB '00 Proceedings of the 26th International Conference on Very Large Data Bases
EDBT '02 Proceedings of the Worshops XMLDM, MDDE, and YRWS on XML-Based Data Management and Multimedia Engineering-Revised Papers
Stream processing of XPath queries with predicates
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
Efficient Filtering of XML Documents with XPath Expressions
ICDE '02 Proceedings of the 18th International Conference on Data Engineering
Path sharing and predicate evaluation for high-performance XML filtering
ACM Transactions on Database Systems (TODS)
The BEA streaming XQuery processor
The VLDB Journal — The International Journal on Very Large Data Bases
Processing XML streams with deterministic automata and stream indexes
ACM Transactions on Database Systems (TODS)
The XML Stream Query Processor SPEX
ICDE '05 Proceedings of the 21st International Conference on Data Engineering
Buffering in query evaluation over XML streams
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Efficient algorithms for processing XPath queries
ACM Transactions on Database Systems (TODS)
ACM Transactions on Database Systems (TODS)
Semantic characterizations of navigational XPath
ACM SIGMOD Record
Compiling XPath for streaming access policy
Proceedings of the 2005 ACM symposium on Document engineering
An Efficient XPath Query Processor for XML Streams
ICDE '06 Proceedings of the 22nd International Conference on Data Engineering
AFilter: adaptable XML filtering with prefix-caching suffix-clustering
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
Efficient algorithms for evaluating xpath over streams
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
SPEX: Streamed and Progressive Evaluation of XPath
IEEE Transactions on Knowledge and Data Engineering
A transducer-based XML query processor
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
Query processing for high-volume XML message brokering
VLDB '03 Proceedings of the 29th international conference on Very large data bases - Volume 29
FluXQuery: an optimizing XQuery processor for streaming XML data
VLDB '04 Proceedings of the Thirtieth international conference on Very large data bases - Volume 30
The GCX system: dynamic buffer minimization in streaming XQuery evaluation
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
Mixing bottom-up and top-down XPath query evaluation
ADBIS'11 Proceedings of the 15th international conference on Advances in databases and information systems
A survey on XML streaming evaluation techniques
The VLDB Journal — The International Journal on Very Large Data Bases
Optimized XPath evaluation for schema-compressed XML data
ADC '12 Proceedings of the Twenty-Third Australasian Database Conference - Volume 124
Efficient string-based XML stream prefiltering
ADC '12 Proceedings of the Twenty-Third Australasian Database Conference - Volume 124
Hi-index | 0.00 |
We propose an XPath processing algorithm that efficiently evaluates XPath queries in XP{↓, →, *, []} over XML streams. An XPath query is expressed with axes, which are binary relations between nodes in XML streams: '↓' identifies the child/descendant axes and '→' indicates the following/following-sibling axes. The proposed algorithm evaluates XPath queries within one XML parsing pass and outputs the fragments found in XML streams as the query results. The difficulty of XP{↓, →, *, []} evaluation lies in establishing dynamic scope control for the following/following-sibling axes. The algorithm uses double-layered non-deterministic finite automata (NFA) to resolve this issue. First layer NFA is compiled from XPath queries and is able to evaluate sub-queries in XP{↓, →, *}. Second layer NFA handles predicate parts. It is dynamically maintained during XML parsing: a state is constructed from a pair of the corresponding state in the first layer automaton and the currently parsed node in the XML stream. Layered NFA achieves O(|D||Q|) time complexity by introducing a state sharing technique, which avoids the exponential growth in the state size of Layered NFA by eliminating redundant transitions. We validate the efficiency of the algorithm through empirical experiments and show that Layered NFA is up to four times faster, and twice as fast on average, than existing algorithms.