Streaming Tree Automata and Xpath Olivier Gauwin
Total Page:16
File Type:pdf, Size:1020Kb
Streaming Tree Automata and XPath Olivier Gauwin To cite this version: Olivier Gauwin. Streaming Tree Automata and XPath. Software Engineering [cs.SE]. Université des Sciences et Technologie de Lille - Lille I, 2009. English. tel-00421911v3 HAL Id: tel-00421911 https://tel.archives-ouvertes.fr/tel-00421911v3 Submitted on 23 Jun 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Universite´ Lille 1 – Sciences et Technologies Laboratoire d’Informatique Fondamentale de Lille Institut National de Recherche en Informatique et en Automatique THESE` present´ ee´ en premiere` version en vue d’obtenir le grade de Docteur, specialit´ e´ Informatique par Olivier Gauwin FLUX XML, REQUETESˆ XPATH ET AUTOMATES ( Streaming Tree Automata and XPath ) These` soutenue le 28 septembre 2009 devant le jury composede:´ MICHAEL BENEDIKT Oxford University Rapporteur HELMUT SEIDL Technische Universit¨at M¨unchen Rapporteur HUBERT COMON-LUNDH ENS Cachan Examinateur ARNAUD DURAND Universit´eDenis Diderot – Paris 7 Examinateur SEBASTIAN MANETH University of New South Wales Examinateur JOACHIM NIEHREN INRIA Directeur SOPHIE TISON Universit´ede Lille 1 Co-Directrice Flux XML, Requetesˆ XPath et Automates Copyright c 2009, certains droits r´eserv´es (voir l’appendice A). Olivier Gauwin Version: June 23, 2010 Remerciements Cette th`ese n’est pas uniquement le fruit de mon travail, c’est ´egalement la cons´equence de collaborations f´econdes et de volont´es bienveillantes. En premier lieu je remercie mes directeurs de th`ese, Joachim Niehren et So- phie Tison. Ils m’ont accord´eleur confiance d`es le premier jour, alors que nous ne nous connaissions pas. Tous deux sont `al’origine de nombre d’id´ees et de conseils, dont cette th`ese est le reflet, et dont leur compl´ementarit´eest souvent la source. J’ai appr´eci´ede pouvoir travailler `aleur cˆot´e durant ces trois ans. Cette th`ese doit ´egalement son existence `aPierre Marquis. Par ses enseigne- ments et la supervision de mon stage de DEA avec S´ebastien Konieczny, il a su m’initier avec enthousiasme `ala science informatique. Je le remercie grandement pour son soutien dans ma recherche d’une th`ese. Anne-C´ecile Caron et Yves Roos ont travaill´eavec nous sur la partie auto- mates. D’autres travaux ont ´et´einiti´es avec Arnaud Durand et Marco Kuhlmann. De nombreuses discussions ont ´egalement influenc´enos travaux, notamment avec Sebastian Maneth et Michael Benedikt. J’ai ´et´etr`es heureux de travailler avec chacun d’entre eux, j’ai beaucoup appris grˆace `aeux. Je remercie Michael Benedikt, Helmut Seidl, Hubert Comon-Lundh, Arnaud Durand et Sebastian Maneth d’avoir accept´ede faire partie du jury. Je suis reconnaissant envers l’´equipe Mostrare, pour l’´etat d’esprit stimulant qui y r`egne. Merci `aR´emi Gilleron pour l’accueil et les conseils prodigu´es. Je salue ´egalement les doctorants et post-docs Mostrare. Au-del`ade notre amiti´e, je remercie en particulier Emmanuel Filiot et Sławek Staworko pour avoir r´epondu `ames nombreuses questions ! Benoˆıt Papegay a commenc´el’impl´ementation de certains algorithmes, je l’en remercie. Je remercie l’INRIA pour avoir financ´e cette th`ese, ainsi que le LIFL et l’universit´eLille 1 pour les moyens accord´es. Je ne peux bien sˆur pas ´enum´erer tout ce qui a ´eveill´emon int´erˆet pour la science et l’informatique. J’y inclus mes professeurs de science, que je remercie. Un merci tout particulier `ames parents, pour m’avoir accord´ebeaucoup de libert´e, et plus g´en´eralement pour m’avoir fait confiance, soutenu et encourag´e. Enfin merci `aLaurence pour son soutien, mˆeme quand le travail a pris le dessus ! Resum´ e´ en Franc¸ais Ces derni`eres ann´ees, XML est devenu le format stan- dard pour l’´echange de donn´ees. Les documents XML sont g´en´eralement pro- duits `apartir de bases de donn´ees, durant le traitement de documents, ou au sein d’applications Web. L’´echange de donn´ees en flux est fr´equemment utilis´elors de l’envoi de donn´ees cons´equentes par le r´eseau. Ainsi le transfert par flux est ad´equat pour de nombreux traitements XML. Dans cette th`ese, nous ´etudions des algorithmes d’´evaluation de requˆetes sur des flux XML. Notre objectif est de g´erer efficacement la m´emoire, afin de pou- voir ´evaluer des requˆetes sur des donn´ees volumineuses, tout en utilisant peu de m´emoire. Cette tˆache s’av`ere complexe, et n´ecessite des restrictions importantes sur les langages de requˆetes. Nous ´etudions donc les requˆetes d´efinies par des automates d´eterministes ou par des fragments du standard W3C XPath, plutˆot que par des langages plus puissants comme les standards W3C XQuery et XSLT. Nous d´efinissons tout d’abord les streaming tree automata (STAs), qui op`erent sur les arbres d’arit´enon born´ee dans l’ordre du document. Nous prouvons qu’ils sont ´equivalents aux nested word automata et aux pushdown forest au- tomata. Nous ´elaborons ensuite un algorithme d’´evaluation au plus tˆot, pour les requˆetes d´efinies par des STAs d´eterministes. Bien qu’il ne stocke que les candi- dats n´ecessaires, cet algorithme est en temps polynomiala ` chaque ´ev´enement du flux, et pour chaque candidat. Par cons´equent, nous obtenons des r´esultats posi- tifs pour l’´evaluation en flux des requˆetes d´efinies par des STAs d´eterministes. Nous mesurons une telle ad´equation d’un langage de requˆetes `aune ´evaluation en flux via un nouveau mod`ele de machines, appel´ees streaming random access machines (SRAMs), et via une mesure du nombre de candidats simultan´ement vivants, appel´e concurrence. Nous montrons ´egalement qu’il peut ˆetre d´ecid´een temps polynomial si la concurrence d’une requˆete d´efinie par un STA d´eterministe est born´ee. Notre preuve est bas´ee sur une r´eduction au probl`eme de la valuation born´ee des relations reconnaissables d’arbres. Concernant le standard W3C XPath, nous montrons que mˆeme de petits frag- ments syntaxiques ne sont pas adapt´es `aune ´evaluation en flux, sauf si P=NP. Les difficult´es proviennent du non-d´eterminisme de ce langage, ainsi que du nom- bre de conjonctions et de disjonctions. Nous d´efinissons des fragments de For- ward XPath qui ´evitent ces probl`emes, et prouvons, par compilation vers les STAs d´eterministes en temps polynomial, qu’ils sont adapt´esa ` une ´evaluation en flux. Titre en Franc¸ais Flux XML, Requˆetes XPath et Automates Mots cles´ en Franc¸ais Flux XML, requˆetes, arbres, automates, XPath. Resum´ e´ en Anglais During the last years, XML has evolved into the quasi stan- dard format for data exchange. Most typically, XML documents are produced from databases, during document processing, and for Web applications. Strea- ming is a natural exchange mode, that is frequently used when sending large amounts of data over networks, such as in database driven Web applications. Streaming is thus relevant for many XML processing tasks. In this thesis, we study streaming algorithms for XML query answering. Our main objective lies in efficient memory management, in order to be able to query huge data collections with low memory consumption. This turns out to be a sur- prisingly complex task, which requires serious restrictions on the query language. We therefore consider queries defined by deterministic automata or in fragments of the W3C standard language XPath, rather than studying more powerful lan- guages such as the W3C standards XQuery or XSLT. We first propose streaming tree automata (STAs) that operate on unranked trees in streaming order, and prove them equivalent to nested word automata and to pushdown forest automata. We then contribute an earliest query answering algorithm for query defined by deterministic STAs. Even though it succeeds to store only alive answer candidates, it consumes only PTIME per event and can- didate. This yields positive streamability results for classes of queries defined by deterministic STAs. The precise streamability notion here relies on a new ma- chine model that we call streaming random access machines (SRAMs), and on the number of concurrently alive candidates of a query. We also show that bounded concurrency is decidable in PTIME for queries defined by deterministic STAs. Our proof is by reduction to bounded valuedness of recognizable tree relations. Concerning the W3C standard query language XPath, we first show that small syntactic fragments are not streamable except if P=NP. The problematic features are non-determinism in combination with nesting of and/or operators. We define fragments of Forward XPath with schema assumptions that avoid these aspects and prove them streamable by PTIME compilation to deterministic STAs. Titre en Anglais Streaming Tree Automata and XPath Mots cles´ en Anglais XML streams, queries, trees, automata, XPath. Contents 1 Introduction 1 1.1 Background............................. 1 1.2 Motivations ............................. 4 1.3 Contributions ............................ 8 1.4 StateoftheArt ........................... 10 1.5 Outline ............................... 19 1.6 Author’sPublications . 19 2 Schemas and Query Languages 23 2.1 UnrankedTreesandLogics. 23 2.1.1 TreesandBinaryEncodings . 24 2.1.2 FOandMSOLogics . .. .. .. .. .. 26 2.1.3 TreeAutomata ....................... 30 2.2 Schemas............................... 33 2.2.1 DocumentTypeDefinition . 33 2.2.2 ExtendedDocumentTypeDefinition.