Vous êtes sur la page 1sur 8

Donnes semi-structures et contraintes de chemin

Denis Debarbieux Laboratoire d'Informatique Fondamentale de Lille U.M.R C.N.R.S. 8022 & projet MOSTRARE - INRIA futur & Universit de Lille 1, 59655 Villeneuve d'Ascq Cedex, France debarbie@lifl.fr

Rsum : On prsente la notion de documents semi-structurs en montrant pourquoi ce modle est diffrent des bases de donnes relationnelles. On prsente un type de contraintes de chemin : les contraintes dinclusion. Nous rsolvons les problmes de limplication de contraintes et des requtes niment bornes en utilisant un systme de rcriture. On tudie enn le cas o les inclusions sont en fait des galits de mots. Mots Cls : informatique thorique, donnes semi-structures, implication de contraintes.

1 Introduction
De plus en plus dinformations sont prsentes sur le Web et il est difcile daccder la page que lon cherche. Lune des causes de ce problme est que le Web na pas de schma a priori et quil est donc impossible dutiliser les algorithmes classiques des bases de donnes pour interroger des sites internet.

1.1 Bases de donnes relationnelles v.s. documents semi-structurs


On va prsenter, travers un exemple, les limites des bases de donnes et les solutions proposes par les donnes semi-structures. Notre exemple montera aussi que les optimisations prsentes dans le modle relationnel ne sont pas possibles dans le modle semi-structur. Par consquent, les algorithmes lis de telles donnes ne sont pas encore trs efcaces. Considrons une base dont le schma est dni par trois tables : une table journal avec un identicateur et le titre du journal,
Lauteur

une table article avec un identicateur, un titre, un auteur et le journal dans lequel larticle a t publi, une table auteur avec un identicateur et le nom de lauteur. Ces tables sont remplies comme le montrent les tableaux suivants : table auteur table journal id nom id titre 1 E. Pri 4 Echec et mat 2 O. Letrguily 3 V. Vaisman 5 P. Gonneau table article id titre auteur journal 6 prise de tte 2 4 7 mat ! 5 4 La structure de ces tables tant xe, il nest pas possible davoir un article ayant deux (ou plus) auteurs. Il est impossible de dnir une table journal ayant un nombre quelconque darticles (un nombre darticles non born). Un document semistructur va permettre cette libert : Il est en effet facile de transformer les tables prsentes ci-dessus en un document XML. Par contre dans une donne semi-structure, il est possible davoir un ou deux auteurs un article. Il est de mme possible de dire que le journal contient des articles (en nombre non dni) et que ces articles sont crits par des auteurs. Un exemple dun tel document peut tre (au format XML) : <document id = 0> <journal id=4> <titre id = 12> Echec et mat </titre>

remercie Yves Andr, Anne-Ccile Caron, Yves Roos et Sophie Tison pour leurs prcieux conseils.

auteur

0
auteur

nom

1
auteur

auteur

journal

nom

co-auteur

nom

2
co-auteur

3
critPar

10

4
article

nom

14

critPar

titre

critPar

article

11

titre

12

titre

13

Figure 1 Exemple dune donne semi-structure

<article id = 6> <titre id=11> Prise de tte</titre> <critPar ref=2 /> <critPar ref=3 /> <article id = 7> <titre id=13> mat ! </titre> <critPar ref=5> </article> <auteur id = 2> <nom id=9>O. Letrguily</nom> <co-auteur ref=3> </auteur> <auteur id = 3> <nom id=10>V. Vaisman</nom> <co-auteur ref=2> </auteur> <auteur id = 1> <nom id=8>E. Pri</nom> </auteur> <auteur id = 5> <nom id=14>P. Gonneau</nom> </auteur> </journal> </document> On tend encore cette notion en considrant quune donne semi-structure est un graphe enracin dont les arcs sont orients et tiquets [1]. La gure 1 montre le graphe correspondant au document ci-dessus. Contrairement au document XML, dans notre modle de graphe lordre dapparition des lments na pas dimportance. Cette reprsentation convient trs bien pour modliser

le Web : une page est un noeud du graphe et un lien entre deux pages est un arc du graphe. Une comparaison complte entre les deux modles est propose dans [16] mais nous pouvons constater que dans ce modle il y a moins dinformations que dans une base de donnes relationnelles. En effet le document de la gure 1 vrie certaines proprits telles que tout auteur dun article est un auteur. Cette information nest pas explicite dans le document XML alors quelle ltait dans notre base de donnes (via les rfrences entre les tables). Or ces informations sont trs importantes dans loptimisation de requtes.

1.2 Requtes et contraintes de chemins


Dans cette partie nous allons prsenter la notion de requtes sur une donne semi-structure. De plus nous allons prsenter les contraintes dinclusion (qui sont une sous-catgorie des contraintes de chemin) et montrer quel est le lien entre ces contraintes et les requtes. Nous utilisons le mme exemple que prcdemment. Des langages de requtes permettent lexploration de telles donnes comme dans les projets Lore[17], Strudel[14], eXist ([13]) ou les langages de requtes pour XML ([19], [20], [12]). Ils sont tous bas sur la notion de chemins dans une donne. Une requte sur une telle donne se fait en naviguant partir de la racine du graphe. En particulier, une requte rgulire R est une expression rgulire sur lalphabet des arcs, et la rponse

la requte R est lensemble des noeuds que lon peut atteindre partir de la racine en suivant les chemins formant des mots de R. Dans notre exemple lalphabet est lensemble {journal, titre, auteur, nom, co-auteur, critPar, article}. On pourra chercher lensemble de tous les auteurs ayant crit un article avec la requte : journal.article.critPar. La rponse cette requte est lensemble de noeuds {2, 3, 5} que lon notera accD (journal.article.critPar). Cest lensemble des noeuds de D accessibles par la requte journal.article.critPar. La requte auteur.co-auteur+.nom a pour rsultat accD (auteur.co-auteur+.nom)={9, 10}. Comme accD (journal.article.critPar) = {2, 3, 5} et que accD (auteur)={1, 2, 3, 5} on va dire que dans le document D la requte journal.article.critPar est incluse dans la requte auteur. On notera cela D |= journal.article.critPar auteur1 . De mme accD (auteur.co-auteur)={2, 3} et accD (auteur.coauteur.co-auteur)={2, 3}. On va donc dire que auteur.co-auteur et auteur.co-auteur.co-auteur sont deux requtes quivalentes pour le documents et donc D |= auteur.co-auteur auteur.coauteur.co-auteur. Etant donn deux requtes R1 et R2 on dit que D est un modle de la contrainte dinclusion R1 R2 (D |= R1 R2 ) si tous les noeuds rponses la requte R1 sont aussi des rponses la requte R2 . Un ensemble de contraintes dinclusion C = {Ri Ri } implique une contrainte R1 R2 (C |= R1 R2 ) si pour toutes donnes semistructures D vriant toutes les contraintes de C alors D vrie aussi la contrainte R1 R2 . A partir de lquivalence prcdente on dduit que D |= auteur.co-auteur auteur.coauteur+ . Plus gnralement ds quune donne D est un modle de auteur.co-auteur auteur.coauteur.co-auteur, alors D est forcment un modle de auteur.co-auteur auteur.co-auteur+. On peut utiliser un ensemble de contraintes dinclusions C pour optimiser une requte q si q est niment borne par rapport C i.e. sil existe une requte nie F telle que C |= q F . Si de plus on a C |= q F on dira que q a un quivalent ni par rapport C . Par exemple la requte auteur.co-auteur+ est niment quivalente auteur.co-auteur par rapport lensemble de contraintes {auteur.co-auteur auteur.co-auteur.co-auteur}
1D

Les contraintes prsentes sont les contraintes dinclusion. Il existe dautres types de contraintes portant sur les chemins tudies par les auteurs de [3], [7] ou de [15] Aprs cette introduction aux donnes semistructures nous allons prsenter dans la section 2 les dnitions formelles lies aux contraintes dinclusion. On prsentera dans la section 3 un algorithme qui extrait les contraintes dun document. Dans la section 4 nous prsenterons un systme de rcriture qui simule les contraintes dinclusion. Nous utiliserons cet outil pour rsoudre le problme de limplication et pour tudier les requtes niment bornes. Dans la section 5 on tudiera ces mmes questions dans le cas o les contraintes sont de la forme C = {ui vi } (les ui et les vi tant des mots).

2 Dnitions
Dans cette partie on donne les dnitions utiles dans la suite du document. On reprend les notations usuelles qui sont par exemple utilises dans [2] ou dans [11]. On considre A un alphabet ni de labels. Denition 2.1 : Une donne semi-structure est un triplet < N, r, T > dans le quel N est un ensemble de noeuds, r est un noeud particulier appel racine et T N A N est un ensemble de transitions. N et T peuvent tre innis, mais il doivent tre dnombrables. On peut dsormais dnir la notion de requtes sur une donne semi-structure Denition 2.2 : Soit D une donne et u un mot de A . On dnit accD (u) lensemble des noeuds atteignables par u dans D accD ( ) = {r} Si u se dcompose en u x avec u un mot et x un label accD (u x) = {n N | n accD (u ), (n , x, n) T }. Une requte rgulire q est une expression rgulire sur A. Le rsultat de la requte q sur la donne D est lensemble de noeuds accD (q ) dni par accD (q ) = (accD (u))
uq

On peut enn dnir la notion de contraintes dinclusions et les notions qui sy rapportent

|=... se lit D est un modle de ...

Denition 2.3 : Une contrainte dinclusion est de la forme p q o p et q sont des requtes rgulires. Une contrainte dgalit p q reprsente la conjonction p q q p Si u et v sont des chemins u v sera appel contraintes de mots et u v galit de mots Une donne D satisfait une contrainte p q si accD (p) accD (q ). On le notera D |= p q . D satisfait un ensemble C de contraintes si D satisfait chaque contrainte prsente dans C . Un ensemble de contraintes C implique la contrainte p q (not C |= p q ) si D D |= C D |= p q

choisir une requte caractristique de E . On choisira par exemple la plus courte et la premire par ordre lexicographique que lon nommera lex(E ). On peut alors construire notre ensemble Cf (D) par : Cf (D) = C (D) C (D) avec C (D) = {lex(s) lex(s ) | s, s S (D), s s } et C (D) = {lex(s)x lex(s ) | x A, s = {n N | n s, (n, x, n ) T }, lex(s)x = lex(s ) }. Exemple 3.1 : Soit D la donne semi-structure suivante :
a

b
1

b
2

Le problme de limplication est de dcider, tant donn C , p et q si C |= p q .

On peut noncer un premier rsultat inspir de [2] : pour tester si C |= p q il suft de vrier cette proprit sur toutes les donnes nies Proposition 2.1 Soit C un ensemble de contraintes dinclusion. C |= p q ssi toute donne nie D satisfaisant C satisfait aussi p q . Pour terminer cette section on va dnir deux proprits sur les requtes : Denition 2.4 : une requte q est niment borne par rapport C sil existe une requte F telle que C |= q F et L(F ) le langage induit par F est ni. une requte q est niment quivalente F par rapport C si C |= q F et L(F ) est ni.

Dans ce cas S (D) = {{0}, {0, 2}, {0, 1}, {1}, }, lex({0}) = , lex({0, 2}) = a, lex({0, 1}) = ab, lex({1}) = b, lex() = ba et Cf (D) = {aba a, a aa, abb b, bb ba, a, ab, b ab, ba , ba a, ba ab, ba b} Comme le montre lexemple prcdent le mot peut apparatre dans notre ensemble de contraintes. Etant donn que nos graphes sont enracins, la requte a le mme rsultat sur toutes les donnes : accD ( ) = {r}. Cela nest pas sans consquence. En effet D |= u implique que u soit un chemin prsent dans D et que ce chemin atteigne la racine du document. D |= u implique que soit accD (u) = {r} soit accD (u) = . Pour viter ces cas particuliers on peut + construire un ensemble Cf (D) tel que : u, v A+ D |= u
+ v ssi Cf (D) |= u

3 Extraction de contraintes
Dans cette section nous nous intresserons au problme suivant : Comment peut-on extraire, partir dun document ni D =< N, r, T >, un ensemble ni de contraintes Cf (D) tel que Cf (D) |= u v ssi D |= u v ? On va considrer S (D) un sous lensemble de 2N . Un ensemble de noeuds E = {n1 , . . . , nk } appartient S (D) sil existe une requte q tel que E soit la rponse q sur D. Cela revient considrer S (D) = {accD (u) | u A }. Plusieurs requtes pouvant avoir le mme rsultat E , on va

4 Manipulation de contraintes
Dans cette section nous allons montrer comment on peut manipuler des contraintes dinclusion via un systme de rcriture. Nous utiliserons ce systme de rcriture pour rsoudre le problme de limplication puis pour caractriser les requtes niment bornes. On ne considre pas forcment un ensemble de contraintes issu dune donne mais plus gnralement un ensemble ni de contraintes {pi ui , 1 i n} dans lequel les pi sont des requtes et les ui sont des mots diffrents de .

4.1 Rcriture de requtes


On va caractriser les contraintes dinclusion par un systme de rcriture. Denition 4.1 : Soit C un ensemble de contraintes dinclusion de la forme {qi ui , i i n}. Soit C la relation dnie par u C v (lire u se rcrit en v ) sil existe i tel que u L(qi ) et v = vi . On tend la relation C par sa congruence droite et on dnit le systme de rcriture prxe par la clture transitive et rexive de C .
C

contraintes, p et q deux requtes, peut-on dcider si C |= p q ? Pour cela on va utiliser une notion de rcriture : les anctres. Un mot u est un anctre dun mot v si u v i.e. si C |= u v . On tend cette
C

notion aux requtes par la dnition suivante : Denition 4.2 : Soit C = {qi ui , i i n} et q une requte. On dnit anctreC (q) par anctreC (q ) = {u | uq q, u uq }.
C

On peut montrer que le systme de rcriture ainsi dni simule les contraintes dinclusion : Proposition 4.1 ([11]) u, v A C |= u

Dans la thorie de la rcriture prxe lensemble anctreC (q ) a une bonne proprit quant son mode de construction. Proposition 4.2 ([8],[9]) Soit C un ensemble de contraintes et q une requte. On sait construire en un temps polynomial (en fonction de la taille de C et de la taille de q ) lensemble anctreC (q ). On sait enn lier le problme de limplication de contraintes au calcul des anctres par le rsultat suivant : Proposition 4.3 C |= p q ssi p anctreC (q ).

v ssi u v
C

u v si on peut dutiliser un nombre ni de fois les rgles suivantes pour transformer u en v . 1. Si u L(qi ) et v = vi alors u v (appartenance C )
C C C

2. Si u = v alors u v (rexivit) 3. Si u w et w v alors u v (tranC C C

sitivit) 4. Si u v et x est un label alors ux vx (congruence droite)


C C

Il est facile de vrier que la dnition de C |= u v implique ces quatre points. Il est plus surprenant que ces quatre points sufsent caractriser les contraintes dinclusion. Exemple 4.1 : Soit C = {a b, bb a}.2 5 Comment montrer que C |= a b a ? Comme a5 L(a ) la rgle 1 dit que a5 b, la rgle 4 implique que a5 b bb. Daprs la rgle 1 bb a et enn a5 b a daprs la
C C C C

Contrairement au calcul des anctres, le test de linclusion entre p et anctreC (q ) nest pas polynomial. Le problme de tester si C |= p q est PSPACE-complet. Exemple 4.2 : Continuons lexemple 4.1 dans le lequel C = {a b, bb a}. On veut tester si C |= (aa) b a.3 Pour cela on calcul anctreC (a) : on a de manire directe que C |= a a et que C |= bb a i.e. a + bb anctreC (a). Par le mme raisonnement que dans lexemple 4.1 on montre que anctreC (a) = bb + a b. Comme L((aa) b) = {b, aab, aaaab, . . .} {bb + b + ab + aab + aaab, . . .} = L(bb + a ) on a bien C |= (aa) b a.

4.3 Requtes niment bornes


Le systme de rcriture dni dans la section 4.1 permet de rsoudre un autre problme : Etant donn un ensemble C et une requte q , q est-elle niment borne par rapport C ? Ce problme a dj t tudi dans [4]. Pour rpondre cette question on va introduire la notion de transducteur : un transducteur de mots transforme (rcrit) un mot u en un ensemble de mots v . Pour cela on associe chaque

rgle 3. La proposition 4.1 permet de conclure avec C |= a5 b a.

4.2 Problme de limplication


La proposition 4.1 permet de caractriser les contraintes dinclusion. On va maintenant rsoudre le problme de limplication de contraintes[5] : tant donn C un ensemble de
2 L(a ) 3 L((aa) b)

= { , a, aa, aaa, . . . , an , . . .} = {b, aab, aaaab, . . . , a2p b, . . .}

a|
lettre ui de u un ensemble de mots E (ui ) puis on construit (u1 . . . un ) en concatnant les E (ui ). Exemple 4.3 :

a|a,b|b

a| , b|

a|
0

a|

|a, |b

a|
b|
2

b| b

a|a
0

b|

|a

b|b

b|b
3

a| , b|

b|b
a| , b|

a|a,b|b La gure ci dessus prsente un transducteur sur lalphabet A = {a, b}. Un arc sinterprte par si on lit x on produit y . Il effectue les transformations suivantes. si u = ou u = a alors (u) = (les tats 0 et 1 ne sont pas naux4 ) si u commence par a alors (u) = {deux premires lettres de u}. Par exemple si u = abba on va suivre le chemin 0 1 b| a| 2 2 2. Ltat 2 tant nal, le mot ab = ab est produit. si u commence par b alors (u) = { mots prxes de u}. Par exemple si u = bba alors diffrents chemins sont possibles : 0 4 4 4 qui va produire le mot , 0 3 4 4 qui produit le mot b,... bba produira lensemble (b) = { , b, bb, bba}
b|b b| a| b| a| b| a|a b|b x|y

C (L(a+ )) = {a} signie que C |= a+ a. De plus comme {a} ni, a+ est niment borne par rapport C . Par contre C (L(b+ )) = L(ab ) et donc b+ nest pas niment borne par C . Toutefois C |= b+ ab est vrai.

On remarquera que notre transducteur ne produit pas toutes les rcritures possibles (par exemple b nappartient pas C (b)), mais seulement un ensemble caractristique qui permet de dcider si une requte est niment borne. Lalgorithme qui construit C est exponentiel en la taille de |C| et dcider si une requte est niment borne est un problme PSPACE-complet.

5 Contraintes mots

dgalits

de

Cette section est consacre au cas particulier o lensemble de contraintes ne contient que des galits de mots (i.e. C = {ui vi }, les ui et les vi tant des mots). Dans [2] ou dans [6] ce cas particulier est dj voqu.

A partir de notre systme de rcriture on peut construire un transducteur C qui vrie la proposition suivante ([11]) : Proposition 4.4 Soit C un ensemble de contraintes {qi ui , 1 i n}. On peut construire un transducteur C qui vrie : 1. Si L(p) = C (L(q )) alors C |= p q 2. p est niment born par rapport C ssi C (L(p)) est ni. On va illustrer cette proposition sur un exemple : Exemple 4.4 : Soit C = {aa b, b a}. La gure suivante montre le transducteur que nous obtenons :
4 les

5.1 Classe dquivalence


On va considrer la relation C sur A A dni par : u C v ssi C |= u v . Comme C est transitive, symtrique et rexive on a la proposition suivante : Proposition 5.1 C est une relation dquivalence sur A A . [u] dnotera la classe de u i.e. lensemble de mots v qui sont quivalents u. Les problmes dimplication de contraintes et de calcul de requtes niment quivalentes vont tre ramens des problmes de calcul de classe dquivalence.

tats naux sont dans un double cercle

5.2 Graphe inni


A partir de notre ensemble C on peut construire un modle canonique de C qui permette de calculer les classes dquivalence. Considrons la donne D(C ) =< N, r, T > dnit par N = {[u], u A } r=[ ] T = {([u], x, [ux]), u A , x A} Cette donne permet de calculer les classes dquivalence comme le montre le rsultat suivant : Proposition 5.2 u A accD(C ) (u) = [u] Une application directe de cette proposition permet de rsoudre nos deux problmes : Proposition 5.3 1. C |= u v ssi accD(C ) (u) =accD(C ) (v ) (problme de limplication) 2. q a une requte quivalente nie ssi accD(C ) (q ) est ni. Exemple 5.1 : Soit C = {ab aa, ba bab, bb baa}. Une partie du graphe D(C ) est reprsent dans la gure suivante :

5.3 Graphe ni
On ne va plus considrer toutes les classes dquivalence mais uniquement les classes dquivalence des mots prxes de lun des mots de C . On dnotera W = {u | u , w | (uu w) C}. En effet la classe dun mot nappartenant pas C va tre calcule par rexivit et par congruence droite partir des classes des mots de W . Il est facile de simuler ces deux rgles : lune consiste tester si deux mots sont gaux, lautre consistant tester si deux sufxes sont gaux. On va dsormais dcouper un mot u en u1 u2 tel que u1 soit le plus grand prxe de u ayant sa classe gale la classe de lun des mots de W . On peut alors associer un mot u le couple ([u1 ], u2 ). On notera fC la fonction qui effectue ce calcul. Grace fC on va rsoudre nos problmes : Proposition 5.4 C |= u v ssi fC (u) = fC (v ) q a un quivalent ni par rapport C ssi {fC (u) | u q } est ni. Il reste calculer u1 i.e. calculer {[w], w W }. Comme C est ni, W est ni et donc {[w], w w W } est ni. On peut donc utiliser lalgorithme de lunion nd ([10]) qui permet de manipuler efcacement des ensembles disjoints dlments (ici des ensembles de classes). On peut alors construire un graphe Gf C en utilisant la mme ide que celle qui nous a permis de construire D(C ). Exemple 5.2 : Soit C = {ab aa, ba bab, bb baa}. Lensemble W est gal { , a, b, ab, aa, ba, bab, bb, baa}. La gure suivante reprsente le graphe Gf C

a
[a]

[aaa]
[aab]

a,b

[aa]

a
[ ]

b
[b]

[ba]

[bb]

b
b

La transition [a] [aa] est prsente dans D(C ) car [ab] = [aa]. On a en effet C |= aa ab. On a de plus accD(C ) (baba) = {[bb]} = accD(C ) (baa) ce qui implique que C |= baba baa. On a enn accD(C ) (bab ) = {[ba]} et donc bab a un quivalent ni. Par contre accD(C ) (a ) = {[ ], [a], [aa], [aaa], . . .} implique que a na pas dquivalent ni.

[a]

a,b

[aa]

a
[ ]

b
[b]

[ba]

[bb]

Le problme de D(C ) est quil a (de manire gnrale) un nombre inni de noeuds et quil est donc impossible de le construire. Peu importe, comme C est un ensemble ni de contraintes de mot on va pouvoir construire un graphe ni qui permette de rpondre nos questions.

fC (aba) = ([aa], a) car accGf (aa) = [aa] et C accGf (aba) = i.e. la classe de aba nest pas C gal la classe de lun des mots de W . De mme fC (babab) = ([bb], b). Et enn fC (bab ) = {([bb], )} qui est ni et donc bab est niment borne.

On peut construire Gf C en un temps quasi linaire dans la taille de C ([18]).

6 Conclusion
Nous avons prsent la notion de donne semi-structure par une comparaison avec les bases de donnes relationnelles. Cette comparaison a montr le rle important des contraintes de chemin. Nous prsentons, via loutil du systme de rcriture, une mthode pour rsoudre le problme de limplication et celui des requtes niment bornes par rapport un ensemble de contraintes C . Nous terminons par prsenter le cas particulier des contraintes dgalits de mots. Dans le but de valider ces rsultats thoriques nous sommes en train dimplementer tous nos algorithmes. Cette implmentation permettra, en autre, de meusurer le gain de nos optimizations (dans le cas des galites) et dvaluer la qualite de nos approximations (cas des inclusions) sur des donnes de taille relle (i.e. des documents ayant plusieurs milliers de noeuds) Pour que le modle des donnes semistructures soit aussi complet que celui des bases de donnes relationnelles, il reste dnir et tudier des problmes tels que lutilisation de clefs ou de vues.

using path constraints in a deterministic data model. In LNCS 1949, pages 208223. 7th International Workshop on Database Programming Languages, 1999. [7] P. Buneman, W. Fan, and S. Weinstein. Path constraints in semistructured databases. Journal of Computer and System Sciences, 61(2), 2000. [8] D. Caucal. On the regular structure of prex rewritings. CAAP, pages 87 102, 1990. [9] H. Comon, M. Dauchet, R. Gilleron, F. Jacquemard, D. Lugiez, S. Tison, and M. Tommasi. Tree automata techniques and applications. Available on : http ://www. grappa. univ-lille3. fr/tata, 1997. [10] T. Cormen, C. Leiserson, and R. Rivest. Introduction to Algorithms. MIT Press, 1990. [11] D. Debarbieux, Y. Roos, S. Tison, Y. Andre, and A.C. Caron. Path rewriting in semistructured data. In procedings of words03 : 4th International Conference on Combinatorics on Words, pages 358 369, Finland, 2003. [12] A. Deutsch, M. Fernandez, D. Florescu, A. Levy, and D. Suciu. A query language for xml. In Proc. of World Wide Web Conference, Toronto, 1999. [13] exist : Open source xml http://exist-db. org/. database.

BIBLIOGRAPHIE
[1] S. Abiteboul, P. Buneman, and D. Suciu. Data on the Web. Morgan Kaufmann Publishers, 1999. [2] S. Abiteboul and V. Vianu. Regular path queries with constraints. pages 122133, 1997. [3] N. Alechina, S. Demri, and M. de Rijke. A modal perspective on path constraints. Journal of Logic and Computation, 2004. [4] Y. Andr, F. Bossut, and A.C. Caron. On decidability of boundedness property for regular path queries. In proceedings of DLT99, Aachen, Germany, 1999. [5] Y. Andr, A.C. Caron, D. Debarbieux, Y. Roos, and S. Tison. Extraction and implication of path constraints. In Proceedings of the 29th Symposium on Mathematical Foundations of Computer Science, LNCS, 2004. [6] P. Buneman, W. Fan, and S. Weinstein. Query optimization for semistructured data

[14] M. Fernandez, D. Florescu, A. Levy, and D. Suciu. A query language for a website management system. SIGMOD Record, 3(26) :411, 1997. [15] G. Grahne and A. Thomo. Query containment and rewriting using views for regular path queries under constraints. In Proceedings of ACM SIGMOD-SIGACT-SIGART, pages 111122. ACM Press, 2003. [16] N. Klarlund, T. Schwentick, and D. Suciu. Xml : Model, schemas, types, logics and queries. technical report, 2004. [17] Lore. www-db. stanford. edu/lore/. [18] R. Tarjan. Efciency of a good but non linear set union algorithm. In Journal of the ACM, volume 22, n 2, pages 215 225, 1975. [19] The W3Cs Xpath web pages. http://www. w3. org/TR/xpath. [20] The W3Cs Xquery web pages. http://www. w3. org/TR/xquery/.