Learn More
XML data projection (or pruning) is one of the main optimization techniques recently adopted in the context of main-memory XML query-engines. The underlying idea is quite simple: given a query <i>Q</i> over a document <i>D</i>, the subtrees of <i>D</i> not necessary to evaluate <i>Q</i> are pruned, thus obtaining a smaller document <i>D</i>'. Then <i>Q</i>(More)
SUMMARY XML documents consist of text data plus structured data (markup). XPath allows to query both, text and structure. Evaluating such hybrid queries is challenging. We present a system for in-memory evaluation of XPath search queries, that is, queries with text and structure predicates, yet without advanced features such as backward axes, arithmetics,(More)
A large fraction of an XML document typically consists of text data. The XPath query language allows text search via the equal, contains, and starts-with predicates. Such predicates can efficiently be implemented using a compressed self-index of the document's text nodes. Most queries, however, contain some parts of querying the text of the document, plus(More)
We present a calculus for processing semistructured data that spans differences of application area among several novel query languages, broadly categorized as "NoSQL". This calculus lets users define their own operators, capturing a wider range of data processing capabilities, whilst providing a typing precision so far typical only of primitive hard-coded(More)
This article is the first part of a two articles series about a calculus with higher-order polymorphic functions, recursive types with arrow and product type constructors and set-theoretic type connectives (union, intersection, and negation). In this first part we define and study the explicitly-typed version of the calculus in which type instantiation is(More)
XML transformations are very sensitive to types: XML types describe the tags and attributes of XML elements as well as the number, kind, and order of their sub-elements. Therefore, operations, even simple ones, that modify these features may affect the types of documents. Operations on XML documents are performed by iterators that, to be useful, need to be(More)
Previous work reports about SXSI, a fast XPath engine which executes tree automata over compressed XML indexes. Here, reasons are investigated why SXSI is so fast. It is shown that tree au-tomata can be used as a general framework for fine grained XML query optimization. We define the " relevant nodes " of a query as those nodes that a minimal automaton(More)
This article is the second part of a two articles series about the definition of higher order polymorphic functions in a type system with recursive types and set-theoretic type connectives (unions, intersections, and negations). In the first part, presented in a companion paper, we defined and studied the syntax, semantics, and evaluation of the(More)
XML data projection (or pruning) is a natural optimization for main memory query engines: given a query <i>Q</i> over a document <i>D</i>, the subtrees of <i>D</i> that are not necessary to evaluate <i>Q</i> are pruned, thus producing a smaller document <i>D'</i>; the query <i>Q</i> is then executed on <i>D'</i>, hence avoiding to allocate and process nodes(More)