Pathfinder: XQuery off the relational shelf
Torsten Grust, Jens Teubner · 2013
The Pathfinder project makes inventive use of relational database technology—originally developed to process data of strictly tabular shape—to construct efficient database-supported XML and XQuery processors. Pathfinder targets database engines that implement a set-oriented mode of query execution: many off-the-shelf traditional database systems make for suitable XQuery runtime environments, but a number of off-beat storage back-ends fit that bill as well. While Pathfinder has been developed with a close eye on the XQuery semantics, some of the techniques that we will review here will be generally useful to evaluate XQuery-style iterative languages on database back-ends. 1 The Rectangularization of XQuery: Purely Relational XML Processing If you zoom back in time to dig for the semantic roots of XQuery [5], you will find that the language’s core construct, the for–let–where–order by–return (FLWOR) block is one particular incarnation of a very general idea: the comprehension [26]. Many language-related concepts may be uniformly understood in comprehension form, but comprehensions provide a particularly concise and elegant way to express iteration over collections of objects—in the case of XQuery: finite, ordered sequences of XML nodes and atomic values (or items) [1]. Any program or query expressed in comprehension form is subject to a number of useful equivalencepreserving