M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

55
M1 MPRI : Automates et Applications Cours 3 Logiques pour les arbres [email protected] 10 janvier 2022

Transcript of M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Page 1: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

M1 MPRI : Automates et ApplicationsCours 3

Logiques pour les arbres

[email protected]

10 janvier 2022

Page 2: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

Automates et Applications Langages réguliers M1 MPRI 2 / 40

Page 3: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Dans l’épisode précédent

Nous avons introduit un nouveau modèle de calcul, les automatesd’arbres. On se souvient que ceux-ci peuvent être :

Déterministes ou non-déterministes (dans le cas non-det. ilpeut exister plusieurs run possibles pour un même arbre)Ascendants ou descendants (dans le cas ascendant, le run estcalculé depuis les feuilles jusqu’à la racine, dans le casdescendant depuis la racine jusqu’aux feuilles)

De plus : TDdet ( TDnondet = BUnondet = BUdet

Automates et Applications Langages réguliers M1 MPRI 3 / 40

Page 4: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Quel langage de haut niveau pour les arbres?

Si la notion d’expression régulière de mot est standard, il existe denombreux langages de description de langages d’arbres. Nousallons étudier deux approches :1 Caractérisation par des formules logiques2 Exemple de langages concrets (W3C)

Automates et Applications Langages réguliers M1 MPRI 4 / 40

Page 5: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

Automates et Applications Langages réguliers M1 MPRI 5 / 40

Page 6: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Problèmes avec les automatesLes automates d’arbres (ascendants) permettent de décrireprécisément les langages d’arbres, c’est à dire des ensemblesd’arbre ayant une certaine propriété.Leur défaut est d’être très « bas-niveau ». Si une propriété desnœuds de l’arbre doit être vérifiée à un niveau arbitraire il faut :

dire explicitement comment aller depuis les feuilles jusqu’auxnœuds intéressantcréer des états indiquant que ces nœuds sont intéressantcontinuer la reconnaissance jusqu’à la racine

Les arbres inintéressants, les états « dans lesquels on ne veut plusrien faire » sont alors explicitement donnés et « bouclent » (parexemple états puits).

Automates et Applications Langages réguliers M1 MPRI 6 / 40

Page 7: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Peut-on faire autrement

Si on prend l’exemple des peignes sur l’alphabet Σ = {f 2, a} onaimerait pouvoir décrire ce langage comme :« L’ensemble des arbres dont le fils gauche est un a et le fils droit a

ou un arbre du langage »sans se soucier de boucler, devoir refuser des nœuds, . . .

Automates et Applications Langages réguliers M1 MPRI 7 / 40

Page 8: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Logique du premier ordre

DéfinitionUne formule logique du premier ordre est une production finie de lagrammaire :

φ ::= U(x) prédicat unaire| B(x , y) prédicat binaire| ¬φ négation| φ ∨ φ disjonction| ∃x .φ quantification existentielle

Automates et Applications Langages réguliers M1 MPRI 8 / 40

Page 9: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Notations

Pour réduire la taille des formules, on pourra utiliser les notationssuivante :φ1 ∧ φ2 ≡ ¬(¬φ1 ∨ ¬φ2) conjonctionφ1 ⇒ φ2 ≡ φ1 ∨ ¬φ2 implicationφ1 ⇔ φ2 ≡ (φ1 ⇒ φ2) ∧ (φ2 ⇒ φ1) équivalenceφ1 ⊕ φ2 ≡ ¬(φ1 ⇔ φ2) « ou » exclusif∀xφ ≡ ¬∃x .¬φ quantification universelle

Automates et Applications Langages réguliers M1 MPRI 9 / 40

Page 10: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Prédicats

Étant donné un alphabet gradué Σ on se donne l’ensemble desprédicats suivants :

laba(x), pour tout a ∈ Σ,childi (x , y), pour tout 1 ≤ i ≤ max{n ∈ N | n = |f |,∀f ∈ Σ}

x � y

x = y

Automates et Applications Langages réguliers M1 MPRI 10 / 40

Page 11: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Sémantique des prédicats

DéfinitionSoit Σ un alphabet gradué et t ∈ T (Σ). Soit π, π1, π2 ∈ dom(t), Lavaleur de vérité des prédicats est donné par :

laba(π) ≡ t(π) = a

childi (π1, π2) ≡ π1i = π2

π1 � π2 ≡ π1 ≤lex π2

Le prédicat x � y est appelé ordre du document et signifie que x

apparaît avant y lors d’un parcours préfixe de l’arbre.

Automates et Applications Langages réguliers M1 MPRI 11 / 40

Page 12: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Sémantique des formules

La sémantique des formules est donnée par le jugement t, γ ` φindiquant que pour l’arbre t et la valuation γ, la formule φ est vraie.Une valuation est une fonction des variables libres de la formuledans dom(t).

t, γ ` U(x) ⇔ U(γ(x))

t, γ ` B(x , y) ⇔ B(γ(x), γ(y))

t, γ ` φ1 ∨ φ2 ⇔ t, γ ` φ1 ou bien t, γ ` φ2

t, γ ` ¬φ ⇔ t, γ 0 φt, γ ` ∃x .φ ⇔ ∃π ∈ dom(t), t, γ ∪ {x 7→ π} ` φ

Automates et Applications Langages réguliers M1 MPRI 12 / 40

Page 13: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

Si on reprend les arbres en forme de peignes sur Σ = {f 2, a}, onpeut vérifier que pour tout arbre de ce langage la formuleci-dessous est vraie :

∀x .(laba(x) ∨ (labf (x) ∧ (∃y .child1(x , y) ∧ laba(y))))

On se rend compte qu’il n’y a pas ici de « récursion ». On définit unepropriété « locale » sur un nœud et on dit qu’elle est vraie pourtous les nœuds de l’arbre.

Automates et Applications Langages réguliers M1 MPRI 13 / 40

Page 14: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Définition d’un langage

DéfinitionOn peut définir un langage Lφ par :

Lφ = {t | ∃γ tel que t, γ ` φ}

Automates et Applications Langages réguliers M1 MPRI 14 / 40

Page 15: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Seulement des langages?

La spécification logique d’un langage permet de reformulercertains problèmes :

Une formule close (comme l’exemple) défini un langage.Une formule avec une variable libre x définit une requête

En effet, étant donné un arbre t :{π ∈ dom(t) | t, {x 7→ π} ` φ}

représente l’ensemble des nœuds de l’arbre tels que la formule estvraie. On peut généraliser à des formules contenant un nombrearbitraire de variables libres.

Automates et Applications Langages réguliers M1 MPRI 15 / 40

Page 16: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Clôtures booléennes

Le formalisme rend trivial les propriétés de clôtures :Lφ1 ∩ Lφ2 ⇔ Lφ1∧φ2

Lφ1 ∪ Lφ2 ⇔ Lφ1∨φ2

L̄φ ⇔ L¬φ

Automates et Applications Langages réguliers M1 MPRI 16 / 40

Page 17: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Problèmes de décisions

Étant donné un arbre, est-ce que la formule φ est vraie⇒polynomialLe langage d’une formule est-il vide ≡ la formule est-ellesatisfiable?⇒ non élémentaire. . .

22...2c}|φ|

Ce langage est trop puissant. . .

Automates et Applications Langages réguliers M1 MPRI 17 / 40

Page 18: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

. . .et pourtant

La logique du premier ordre sur les arbres ne capture pasl’ensemble des langages d’arbres reconnaissables !Exemple : L’ensemble des arbres sur Σ = {f 2, a, b} avec un nombrepair de a. On se donne l’automate A = ({q0, q1},Σ, δ, {q0}) :

δ :

a 7→ {q1}b 7→ {q0}

f (q1, q1) 7→ {q0}

f (q0, q0) 7→ {q0}f (q1, q0) 7→ {q1}f (q0, q1) 7→ {q1}

q0 représente les nombres pairs de a et q1 les nombres impairs(note : ce langage n’est pas TD déterministe).

Automates et Applications Langages réguliers M1 MPRI 18 / 40

Page 19: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

FO sur les arbres?On a donc un langage :

compact : on peut exprimer des propriétés vraies sur tous lesnœuds ou sur certains sans avoir recours à la récursioncertaines propriété de compatage (représentables par desautomates) ne sont pas exprimablesa une complexité catastrophique pour le problème desatisfiabilité

©XKCDAutomates et Applications Langages réguliers M1 MPRI 19 / 40

Page 20: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

MSO

Définition (Monadic Second-order Logic)Une formule deMSO est une production finie de la grammaire :

φ ::= . . . formules de FO| x ∈ X appartenance à un ensemble| ∃X .φ quantification du second ordre

X dénote des ensemble de nœuds. On a évidemment que ∀X .φ estune notation pour ¬∃X .¬φ.

Automates et Applications Langages réguliers M1 MPRI 20 / 40

Page 21: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Sémantique de MSO

On exprime naturellement la sémantique de MSO par unjugement : La sémantique des formules est donnée par lejugement t, γ, Γ ` φ indiquant que pour l’arbre t et les valuation γ etΓ, la formule φ est vraie. Une Γ est une fonction des variabless’ensembles libres de la formule dans Pf (()dom(t)).

t, γ, Γ ` x ∈ X ⇔ γ(x) ∈ Γ(X )

t, γ ` ∃X .φ ⇔ ∃P ⊆ dom(t), t, γ, Γ ∪ {X 7→ P} ` φ

Automates et Applications Langages réguliers M1 MPRI 21 / 40

Page 22: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Que peut-on dire de plus?

On peut caractériser les descendants d’un nœud. Les descendantsde x sont les nœuds de l’ensemble Y tel que :∀y ∈ Y .y ∈ Y ⇔ x = y ∨ ∃z .(z ∈ Y ∧ (child1(z , y) ∨ . . . ∨ childk(z , y)))

On suppose un alphabet d’arité maximale k .

Automates et Applications Langages réguliers M1 MPRI 22 / 40

Page 23: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Que peut-on dire de plus?

On peut caractériser les arbres ayant un nombre pair de a (surΣ = {f 2, a, b}) :

∃P.∃I .∀x .(x ∈ P ⊕ x ∈ I )

∧ laba(x)⇒ x ∈ I

∧ labb(x)⇒ x ∈ P

∧ labf (x)⇒ (∃y .∃z .child1(x , y) ∧ child2(x , z)

((y ∈ P) ∧ (z ∈ P)) ∨ ((y ∈ I ) ∧ (z ∈ I )))

Automates et Applications Langages réguliers M1 MPRI 23 / 40

Page 24: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Que peut-on dire de plus?

On peut caractériser les arbres ayant un nombre pair de a (surΣ = {f 2, a, b}) :

∃P.∃I .∀x .(x ∈ P ⊕ x ∈ I )

∧ laba(x)⇒ x ∈ I

∧ labb(x)⇒ x ∈ P

∧ labf (x)⇒ (∃y .∃z .child1(x , y) ∧ child2(x , z)

((y ∈ P) ∧ (z ∈ P)) ∨ ((y ∈ I ) ∧ (z ∈ I )))

Automates et Applications Langages réguliers M1 MPRI 23 / 40

Page 25: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

MSO vs Automates

Théorème (Thatcher, Wright 68)Les langages exprimables par une formule MSO sont exactement leslangages reconnaissables par un automate d’arbre (ascendant).

Preuve (idée) :on met la formule dans une certaine forme canoniqueon donne des automates pour les formules de base (x ∈ X ,laba(x), . . . )on construit inductivement un automate pour les connecteurslogiques (les quantificateurs et les négations impliquent uneexplosion)

Automates et Applications Langages réguliers M1 MPRI 24 / 40

Page 26: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

MSO vs Automates Preuve

On peut aussi construire une formule à partir d’un automate :on associe une sous-formule pour chaque transitionelimination des états (comme pour les regexps)

Automates et Applications Langages réguliers M1 MPRI 25 / 40

Page 27: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

MSO?

On a donc un langage :compact : on peut exprimer des propriétés vraies sur tous lesnœuds ou sur certains sans avoir recours à la récursionexactement équivalent aux automates d’arbresa une complexité catastrophique pour le problème desatisfiabilité (ça ne change pas)

Automates et Applications Langages réguliers M1 MPRI 26 / 40

Page 28: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

Automates et Applications Langages réguliers M1 MPRI 27 / 40

Page 29: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Le format XML pour les documentsLe standard XML du W3C définit un format de document pour lestockage et l’échange de données. Essentiellement il s’agit desdocuments composés de balises <ouvrantes> ou </fermantes>, bienparenthésées. Exemple :<a>

<b>Hello <c>world!</c></b>

<c>It’s a <b>nice day</b></c>

<a>today</a>

</a>

a

b

"Hel

lo"

c

"wor

ld!"

c

"It’

sa

"

b

"nic

eda

y"

a

"tod

ay"

Automates et Applications Langages réguliers M1 MPRI 28 / 40

Page 30: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Le format XML pour les documents (2)

on ignore de nombreux autre aspects du standardon suppose que tous les textes sont remplacés par un nœud $.on va aussi considérer que le format HTML rentre dans cecadre

Automates et Applications Langages réguliers M1 MPRI 29 / 40

Page 31: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Arbres d’arité non bornée

On est en présence d’arbres d’arité non bornée :un nœud peut avoir un nombre arbitraire de filsle nom des étiquettes ne determine pas le nombre de fils

Mais on veut tout de même pouvoir utiliser MSO ou nosautomates !

Automates et Applications Langages réguliers M1 MPRI 30 / 40

Page 32: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Arbres n-aires vers arbres binaires

On utilise une astuce permettant d’encoder n’importe quel arbren-aire dans un arbre binaire :

Le premier fils d’un nœud (dans l’arbre n-aire) est le fils gaucheLe frère à droite d’un nœud (dans l’arbre n-aire) est le fils droit

Automates et Applications Langages réguliers M1 MPRI 31 / 40

Page 33: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 32 / 40

Page 34: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 32 / 40

Page 35: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

a

cb b c

bb b b

#

#

# # #

#

#

#

#

#

Automates et Applications Langages réguliers M1 MPRI 32 / 40

Page 36: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

a

cb b c

bb b b

#

#

# # #

#

#

#

#

#

Automates et Applications Langages réguliers M1 MPRI 32 / 40

Page 37: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Structure de données

Ce codage est identique à celui d’une structure de donnéesclassiques pour les arbres :

Un nœud stocke une étiquette et un pointeur vers une listechaînée de filsLe premier élément de la liste est accessible directement, pourles autres il faut parcourir la listele pointeur null correspond au nœuds fictifs #

Automates et Applications Langages réguliers M1 MPRI 33 / 40

Page 38: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Structure de données (2)

struct node;

struct list {

struct list *next; //arc vers la droite

struct node *node;

};

struct node {

char * label;

struct list *children; //arc vers le bas

};

Automates et Applications Langages réguliers M1 MPRI 34 / 40

Page 39: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

DTD

Les document type definitions (DTD) permettent de définir desschémas de documents c’est à dire des langages d’arbres :

<!ELEMENT a ( (b|c)* ) >

<!ELEMENT b ( EMPTY ) >

<!ELEMENT c ( (b|c)* ) >

Pour chaque nom de balise on donne son contenu au moyen d’uneexpression régulière sur les fils. Une balise détermine le contenude façon unique (on ne peut pas avoir deux définitions pour lamême balise).⇒ TD déterministe

Automates et Applications Langages réguliers M1 MPRI 35 / 40

Page 40: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

DTD (2)

Le fait que le langage soit TD déterministe implique qu’on peut levalider en streaming c’est à dire, en ne gardant qu’un espacemémoire proportionnel à la hauteur du document.Pourquoi est-ce bien?

On peut valider le document pendant le chargement du fichier.Quelles limitations?On ne peut pas accepter des documents ayant une dépendenceentre les fils (ou tout autre condition qui n’est pas top-down det).

Automates et Applications Langages réguliers M1 MPRI 36 / 40

Page 41: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

DTD (2)

Le fait que le langage soit TD déterministe implique qu’on peut levalider en streaming c’est à dire, en ne gardant qu’un espacemémoire proportionnel à la hauteur du document.Pourquoi est-ce bien?On peut valider le document pendant le chargement du fichier.Quelles limitations?

On ne peut pas accepter des documents ayant une dépendenceentre les fils (ou tout autre condition qui n’est pas top-down det).

Automates et Applications Langages réguliers M1 MPRI 36 / 40

Page 42: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

DTD (2)

Le fait que le langage soit TD déterministe implique qu’on peut levalider en streaming c’est à dire, en ne gardant qu’un espacemémoire proportionnel à la hauteur du document.Pourquoi est-ce bien?On peut valider le document pendant le chargement du fichier.Quelles limitations?On ne peut pas accepter des documents ayant une dépendenceentre les fils (ou tout autre condition qui n’est pas top-down det).

Automates et Applications Langages réguliers M1 MPRI 36 / 40

Page 43: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

XPath

Le langage XPath est un langage de requête (sélection de nœuds).Dans sa version la plus simple (navigational Core XPath), lesrequêtes sont de la forme :

chemin ::= axe1::test1[ pred1] /.../axen::testn[ predn]

axe ::= child | descendant | parent | ancestor | . . .test ::= nom de balise | *pred ::= chemin | pred1 or pred2 | pred1 and pred2 | not(pred1)

Automates et Applications Langages réguliers M1 MPRI 37 / 40

Page 44: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 45: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 46: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 47: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 48: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 49: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 50: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Exemple

/descendant::b[parent::c]/parent::*/child::*a

cb b c

bb b b

Automates et Applications Langages réguliers M1 MPRI 38 / 40

Page 51: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Expressivité de XPath?

Le fragment présenté est moins expressif que FO. Par exemple, onne peut pas exprimer : Renvoyer tous les nœuds a descendantsd’un b tel qu’il n’y a pas de c entre le a et le b.

Automates et Applications Langages réguliers M1 MPRI 39 / 40

Page 52: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Quels problèmes souhaite-t-on résoudre?

1 Étant donné un document D , est-il valide par rapport à uneDTD T ?

O(|D|+ |T |)

2 Étant donné un document D , quels sont les nœuds renvoyéspar une requête XPath Q ? O(|D| × |Q|)

3 Étant donné une DTD T et une requête XPath Q , la requêteest-elle satisfiable?EXPTIME

Proposer un algorithme pour (2) basé sur des automates sera lesujet du devoir.

Automates et Applications Langages réguliers M1 MPRI 40 / 40

Page 53: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Quels problèmes souhaite-t-on résoudre?

1 Étant donné un document D , est-il valide par rapport à uneDTD T ? O(|D|+ |T |)

2 Étant donné un document D , quels sont les nœuds renvoyéspar une requête XPath Q ?

O(|D| × |Q|)

3 Étant donné une DTD T et une requête XPath Q , la requêteest-elle satisfiable?EXPTIME

Proposer un algorithme pour (2) basé sur des automates sera lesujet du devoir.

Automates et Applications Langages réguliers M1 MPRI 40 / 40

Page 54: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Quels problèmes souhaite-t-on résoudre?

1 Étant donné un document D , est-il valide par rapport à uneDTD T ? O(|D|+ |T |)

2 Étant donné un document D , quels sont les nœuds renvoyéspar une requête XPath Q ? O(|D| × |Q|)

3 Étant donné une DTD T et une requête XPath Q , la requêteest-elle satisfiable?

EXPTIMEProposer un algorithme pour (2) basé sur des automates sera lesujet du devoir.

Automates et Applications Langages réguliers M1 MPRI 40 / 40

Page 55: M1 MPRI : Automates et Applications Cours 3 Logiques pour ...

Quels problèmes souhaite-t-on résoudre?

1 Étant donné un document D , est-il valide par rapport à uneDTD T ? O(|D|+ |T |)

2 Étant donné un document D , quels sont les nœuds renvoyéspar une requête XPath Q ? O(|D| × |Q|)

3 Étant donné une DTD T et une requête XPath Q , la requêteest-elle satisfiable?EXPTIME

Proposer un algorithme pour (2) basé sur des automates sera lesujet du devoir.

Automates et Applications Langages réguliers M1 MPRI 40 / 40