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

Post on 16-Jun-2022

6 views 0 download

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

M1 MPRI : Automates et ApplicationsCours 3

Logiques pour les arbres

kn@lri.fr

10 janvier 2022

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

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

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

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

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

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

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

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

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

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

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

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

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

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

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

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

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

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

. . .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

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

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

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

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

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

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

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

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

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

Plan

1 Introduction

2 Logiques d’arbre

3 XML et ses langages

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

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

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

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

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

Exemple

a

cb b c

bb b b

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

Exemple

a

cb b c

bb b b

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

Exemple

a

cb b c

bb b b

#

#

# # #

#

#

#

#

#

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

Exemple

a

cb b c

bb b b

#

#

# # #

#

#

#

#

#

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

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

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

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

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

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

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

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

Exemple

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

cb b c

bb b b

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

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

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

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

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

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