• Aucun résultat trouvé

Chapitre III Méthode et outils

5.2 Grammaires de graphes

Pfaltz et Rosenfeld [?][1]ont étendu le concept de grammaire linéaire aux grammaires de

graphes afin de résoudre des problèmes pratiques de traitement d’images (reconnaissance de chromosomes, de caractères manuscrits, ...). Les graphes manipulés par de telles grammaires sont ceux dans lesquels les nœuds désignent les formes ; celles-ci jouent le rôle de terminaux et de non-terminaux.

La diversité des champs d’application de ces grammaires a eu pour conséquence l’appa- rition de nombreux modèles de systèmes de réécriture de graphes. L’idée d’utiliser de telles grammaires apparaît entre autre dans les travaux de H. Bunke [?][2]. Plusieurs utilisations

des grammaires de graphes peuvent être citées comme : [?][3] sur l’utilisation en général des grammaires de graphes, mais aussi [?][4] et [?][5] pour la reconnaissance de partitions

musicales, [?][6]pour la reconnaissance de schémas électroniques. Quelques articles de syn-

thèse sur le sujet sont aussi à noter comme [?][7], [?][8]. Le lecteur désireux de connaître de

nombreuses autres applications pourra consulter [?][9]ou encore des recueils comme [?][10], [?][11], entièrement consacrés aux grammaires de graphes et à leur utilisation.

La plupart des modèles de grammaires de graphes sont basés sur l’opération de réécri- ture d’un graphe (ou d’un sous-graphe) et l’itération d’un tel processus. Les travaux de B. Courcelle [?][1] ont permis de simplifier le concept de réécriture de graphes grâce à une

représentation de ceux-ci sous forme d’expressions algébriques.

Dans toutes les grammaires que nous venons d’étudier, une production α→ β est utilisée

[1] PFALTZJ. & ROSENFLEDA., Web grammars (1969).

[2] BUNKEH., Graph grammars as a generative tool in image understanding (1982). [3] PFEIFFERJ.J., Using graph grammars for data structure manipulation (1990).

[4] BLOSTEIND. & FAHMYH., A graph grammar for high-level recognition of music notation (1991). [5] BLOSTEIND., FAHMYH. & GRBAVECA., Practical use of graph rewriting, Technical Report (1995). [6] BUNKE H., Attributed programmed graph grammars and their application to schematic diagram inter-

pretation (1982).

[7] NAGLM., A tutorial and bibliographical survey on graph grammars (1978).

[8] BLOSTEIND. & FAHMYH., A survey of graph grammars : Theory and applications (1992). [9] Graph-Grammars and Their Applications to Computer Science and Biology (1979).

[10] Graph Grammars and their Application to Computer Science (1986). [11] Graph Transformations in Computer Science (1993).

[1] COURCELLEB., An axiomatic definition of context-free rewriting and its application to nlc graph gram- mars, Technical Report (1987).

pour remplacer une chaîne par une autre. Ainsi, la chaîne γαδ est remplacée par γβδ. Dans le cas où les données sont représentées par des graphes, il devient nécessaire de préciser, pour une règle de la forme α → β, comment remplacer le sous-graphe α d’un graphe ω, par un sous-graphe β. Il s’agit donc d’associer à chaque production α → β une règle précisant ce remplacement, sachant qu’il est indépendant du graphe “receveur” ω.

Soit V un ensemble d’étiquettes, Nαet Nβ l’ensemble des noeuds de α et β ; la règle de

réécriture d’une grammaire de graphes est un triplet (α, β, φ) avec :

φ: NβxNα → 2V

L’application φ précise comment relier les nœuds de β à chaque nœud du graphe ω privé du sous-graphe α (noté ω− α).

Comme pour les grammaires formelles linéaires, il est possible d’augmenter chaque pro- duction d’un ensemble d’attributs. On parle alors de grammaires de graphes attribuées. Ces dernières permettent de concevoir des systèmes de reconnaissance puissants, dans lesquels concepts structurels, numériques et sémantiques sont fortement liés.

Nous utilisons une grammaire de graphes attribuée, localement dépendante du contexte [?][2] [?][3]. Une règle de la grammaire exprime le fait qu’un sous-graphe du graphe de don-

nées peut-être réduit à un sous-graphe (qui peut-être réduit à un nœud) si certaines conditions syntaxiques sont vérifiées. Les symboles terminaux représentent les caractères reconnus par le programme de reconnaissance des caractères et les non-terminaux représentent les mor- ceaux de sous-formules déjà analysés.

Définition 9 : Règle syntaxique d’une grammaire de graphes

Une règle est un terme G, C → P avec :

– P est un nœud, appelé la production de la règle. – G est un graphe, appelé le modèle de la règle.

– C est un ensemble fini de graphes, appelé contexte de la règle.  La grammaire étant attribuée, des règles sémantiques sont associées aux règles syn- taxiques (voir page 82). Ces règles permettront de calculer un ensemble d’attributs lors de l’application de la règle syntaxique sur le graphe (étape de réécriture). Citons ici quelques exemples d’attributs synthétisés : la ligne de référence pour le nouvel objet, la taille de l’élé- ment, . . . Nous reviendrons plus en détail sur ce point dans la suite du discours.

Définition 10 : Grammaire de graphes

[2] LAVIROTTES. & POTTIERL., Optical formula recognition (1997). [3] LAVIROTTES. & POTTIERL., Mathematical formula recognition (1997).

5. Rappels sur les grammaires

Une grammaire est un ensemble fini de règles. 

Soit un graphe représentant une formule (les nœuds sont donc les symboles de la for- mules et les arcs les liens exprimant les relations géométriques entre les symboles) ; les règles sont utilisées pour réécrire le graphe en remplaçant le sous-graphe reconnu par un nœud dont la valeur est la sous-formule construite (arbre de syntaxe abstraite) sous la forme d’un terme. Ce processus utilise donc la reconnaissance et le remplacement d’un sous-graphe dans un graphe, ce que nous allons définir [?][1].

Rappelons tout d’abord les notions de substitution et de reconnaissance de modèles (pat- tern matching) appliquées aux termes.

Définition 11 : Substitution

Une substitution est un endomorphisme de T (F, V ), c’est à dire une application σ véri- fiant σf (t1, . . . , tn) = f(σt1, . . . , σtn) pour tout f dans F et tous les termes t1, . . . , tn.

Une substitution σ est uniquement déterminée par sa restriction σ|V à l’ensemble des

variables. 

Définition 12 : Filtrage de termes

Un terme t filtre avec un terme t, noté t ≤ tsi et seulement si il existe une substitution

σ telle que σt = t. 

Le filtrage d’un ensemble fini de termes est défini par :

{t1, . . . , tn} ≤ {t1, . . . , tm} ⇔ ∃σ {σt1, . . . , σtn} = {t1, . . . , tm}

Définition 13 : Réécriture d’un graphe par application d’une règle

Une règle r : G, C → P réécrit un graphe G1 en un graphe G2, noté G1 →r G2

si et seulement si il existe une substitution σ, un sous-graphe G de G1 (c’est à dire G ⊂ G1), tels que :

– σG = G.

– pour tout graphe H dans le contexte C, il n’existe pas de substitution τ telle que τ|V ar(G) = σ|V ar(G) et τ H ⊂ G1.

– G2 est obtenu par remplacement de G dans σP , c’est à dire en retirant de G1 tous les arcs de G et en remplaçant dans G1 tous les nœuds de G par le nœud

σN . 

Après une brève présentation des principaux éléments composant une grammaire de graphes, intéressons nous à son utilisation dans le cas particulier de la reconnaissance des expressions mathématiques.

6

Analyse structurelle