12.07.2015 Views

Vers les grammaires de configuration - Laurent Henocque

Vers les grammaires de configuration - Laurent Henocque

Vers les grammaires de configuration - Laurent Henocque

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Université Paul Cézanne Aix-Marseille IIIN o attribué par la bibliothèque2 0 0 6 A I X 3 0 0 5 6<strong>Vers</strong> <strong>les</strong> <strong>grammaires</strong> <strong>de</strong><strong>configuration</strong>THÈSEpour obtenir le gra<strong>de</strong> <strong>de</strong>DOCTEUR DE L’UNIVERSITÉ Paul CÉZANNEFaculté <strong>de</strong>s Sciences et TechniquesDiscipline : Informatiqueprésentée et soutenue publiquement parMathieu ESTRATATLe 21 Novembre 2006Directeur <strong>de</strong> thèse : M. <strong>Laurent</strong> <strong>Henocque</strong>Ecole Doctorale <strong>de</strong> Mathématiques et d’Informatique <strong>de</strong> MarseilleJURYM. Philippe Blache ExaminateurM. Denys Duchier RapporteurM me Hélène FargierExaminateurM. <strong>Laurent</strong> <strong>Henocque</strong> Directeur <strong>de</strong> thèseM. Philippe Jégou ExaminateurM. Markus Stumptner RapporteurANNEE 2006


A O<strong>de</strong>tte,


RemerciementsPremièrement je souhaite remercier Philippe Blache, Denys Duchier, Hélène Fargier,Philippe Jégou et Markus Stumptner pour avoir accepté <strong>de</strong> faire partie <strong>de</strong> mon juryet pour avoir fait le déplacement. Je remercie plus particulièrement Denys Duchier etMarkus Stumptner en leur qualité <strong>de</strong> rapporteurs et pour <strong>les</strong> nombreuses remarquesconstructives qu’ils ont su me faire.Je tiens tout spécialement à remercier <strong>Laurent</strong> <strong>Henocque</strong> pour son soutient et sonengagement au cours <strong>de</strong>s 4 <strong>de</strong>rnières années. Il a su, tout d’abord durant le <strong>de</strong>a, medonner envie <strong>de</strong> continuer puis, durant la thèse, il a su encadrer mon travail afin queje travaille <strong>de</strong> manière autonome mais sans jamais quitter mes travaux <strong>de</strong>s yeux. Merciinfiniment, <strong>Laurent</strong>.Je souhaite adresser un grand merci à Philippe Jégou, pour son soutient permanentet la confiance qu’il m’a accordé, ainsi qu’à tous <strong>les</strong> membres <strong>de</strong> l’équipe InCA au sein <strong>de</strong>laquelle j’ai effectué ma thèse. C’est une équipe dynamique, où toutes <strong>les</strong> personnes sontouvertes et disponib<strong>les</strong>, qu’el<strong>les</strong> trouvent ici toute ma reconnaissance. Je remercie plusparticulièrement mon collègue <strong>de</strong> bureau et ami Mathias. Je n’oublie pas <strong>les</strong> générateurs<strong>de</strong> bonne humeur générale, ni <strong>les</strong> sportifs (<strong>les</strong> <strong>de</strong>ux catégories n’étant pas exclusives). Etplus généralement, toutes <strong>les</strong> personnes que j’ai côtoyé au cours <strong>de</strong> cette thèse et, avecqui, j’ai passé d’excellents moments.Je remercie chaleureusement Raphaël La Greca avec qui j’ai pu travailler dans lecadre du pôle modélisation géométrique ainsi que Marc Daniel pour m’avoir permis <strong>de</strong>participer au Groupe <strong>de</strong> Travail sur la Modélisation Géométrique.Aurais-je terminé ces trois années sans l’ai<strong>de</strong> <strong>de</strong> ma « famille » marseillaise ? Je nesaurais le dire, mais j’en remercie très chaleureusement tous <strong>les</strong> membres que je ne citeraipas, par peur d’en oublier. Je remercie également mes autres amis, plus éloignés, que jene vois que très rarement, mais qui ont su me m’apporter tout leur soutient.Que ma très chère Laure, qui a su me porter jusqu’au bout <strong>de</strong> ce travail, tant parses encouragements que par ses sacrifices, trouve dans ces quelques lignes, l’expression<strong>de</strong> mes immenses remerciements.Et enfin, parceque sans eux, je serais perdu, je remercie Régine, Pierre, Michèle,Denise, Gérard, Jérôme, Sandra, Louise, Georges, O<strong>de</strong>tte et Alfred.


Sommaire1 Introduction 121.1 Cadre scientifique général . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2 Nouveauté <strong>de</strong> l’approche . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3 Démarche expérimentale . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4 Contributions origina<strong>les</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.6 Plan <strong>de</strong> la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Etat <strong>de</strong> l’art 192.1 Les <strong>grammaires</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.1 Structures <strong>de</strong> traits . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.2 Les <strong>grammaires</strong> <strong>de</strong> dépendances (GD) . . . . . . . . . . . . . . . 222.1.3 Les <strong>grammaires</strong> syntagmatiques généralisées (GPSG) . . . . . . . 242.1.4 La grammaire syntagmatique guidée par <strong>les</strong> têtes (HPSG) . . . . 252.1.5 Les <strong>grammaires</strong> <strong>de</strong> propriétés (GP) . . . . . . . . . . . . . . . . . 262.2 La <strong>configuration</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.1 Présentation <strong>de</strong> la <strong>configuration</strong> . . . . . . . . . . . . . . . . . . . 272.2.2 La <strong>configuration</strong> orientée objet . . . . . . . . . . . . . . . . . . . 283 Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisation 313.1 Représentation formelle <strong>de</strong>s modè<strong>les</strong> objet contraints . . . . . . . . . . . 313.1.1 Les types Objet et Classe . . . . . . . . . . . . . . . . . . . . . . 323.1.2 Les attributs <strong>de</strong> classe . . . . . . . . . . . . . . . . . . . . . . . . 323.1.3 Les relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2 Les contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2.1 Opérateurs <strong>de</strong> dé-référencement . . . . . . . . . . . . . . . . . . . 373.2.2 Définition <strong>de</strong> nouveaux opérateurs . . . . . . . . . . . . . . . . . 373.2.3 Une modélisation formelle adaptée . . . . . . . . . . . . . . . . . 393.3 Sémantique <strong>de</strong> type modè<strong>les</strong> finis . . . . . . . . . . . . . . . . . . . . . . 393.3.1 Interprétation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.3.2 Un exemple d’instance . . . . . . . . . . . . . . . . . . . . . . . . 413.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43- 4 -


SOMMAIRE4 Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objetcontraints 444.1 JConfigurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.1.1 Domaine d’interprétation . . . . . . . . . . . . . . . . . . . . . . 464.1.2 Traduction d’un modèle objet contraint en un problème JConfigurator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.1.3 Un outil correct et complet . . . . . . . . . . . . . . . . . . . . . 494.1.4 Une traduction modulaire . . . . . . . . . . . . . . . . . . . . . . 494.2 Exemple <strong>de</strong> problème <strong>de</strong> <strong>configuration</strong> : l’assemblage d’ordinateur . . . 514.2.1 Le modèle objet . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2.2 Les contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2.3 Modè<strong>les</strong> trouvés . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> 605.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.2 Un exemple <strong>de</strong> langage hors-contexte . . . . . . . . . . . . . . . . . . . . 645.3 Application au scrambling language . . . . . . . . . . . . . . . . . . . . . 655.3.1 Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> lexicalisées . . . . . . . . . . . . 655.3.2 Le scrambling language . . . . . . . . . . . . . . . . . . . . . . . 665.3.3 Prise en compte du gap-<strong>de</strong>gree . . . . . . . . . . . . . . . . . . . 695.4 Application aux <strong>grammaires</strong> <strong>de</strong> propriétés . . . . . . . . . . . . . . . . . 725.4.1 Traduction <strong>de</strong>s propriétés en un modèle objet contraint . . . . . 725.4.2 Traduction automatique d’une GP . . . . . . . . . . . . . . . . . 775.5 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.6 Application aux <strong>grammaires</strong> <strong>de</strong> dépendances . . . . . . . . . . . . . . . 935.6.1 Formalisation <strong>de</strong>s principes . . . . . . . . . . . . . . . . . . . . . 985.6.2 Traitement du lexique . . . . . . . . . . . . . . . . . . . . . . . . 996 Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifs 1016.1 Une sémantique <strong>de</strong>s textes <strong>de</strong>scriptifs . . . . . . . . . . . . . . . . . . . . 1016.2 Les schémas sémantiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026.2.1 Schéma <strong>de</strong> possession . . . . . . . . . . . . . . . . . . . . . . . . 1046.2.2 Schéma d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . 1087 Une application : la modélisation déclarative <strong>de</strong> surface 1137.1 Modèle sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147.2 Implémentation et résultats . . . . . . . . . . . . . . . . . . . . . . . . . 1168 Conclusion 119A Exemple <strong>de</strong> programme ILOG JConfigurator 121A.1 Contraintes génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121A.2 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126- 5 -


SOMMAIREB Une approche <strong>de</strong>s HPSG 132B.1 Lists et sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139B.2 Structures <strong>de</strong> traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141B.3 Les principes HPSG vus comme <strong>de</strong>s contraintes <strong>de</strong> modèle objet contraint 144B.3.1 Le principe <strong>de</strong>s traits <strong>de</strong> tête . . . . . . . . . . . . . . . . . . . . 144B.3.2 Le principe <strong>de</strong>s traits non locaux . . . . . . . . . . . . . . . . . . 144C Fragment du UML Core utilisé pour <strong>les</strong> modè<strong>les</strong> objet contraints 146Bibliographie 152- 6 -


Table <strong>de</strong>s figures1.1 Sémantique formelle associée à la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disquesdurs » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2 Interprétation simpliste associée à la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disquesdurs » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3 Arbre syntaxique pour la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs » . . 132.1 AVM pour le trait genre du nom commun ordinateur . . . . . . . . . . 202.2 Graphe orienté pour le trait genre du nom commun ordinateur . . . . 202.3 AVM pour l’accord du déterminant et du nom dans un SN . . . . . . . . 212.4 Graphe orienté pour l’accord du déterminant et du nom dans un SN . . 212.5 Graphe <strong>de</strong>s dépendances pour la phrase ”Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs” 232.6 Entrée lexicale en DG pour le mot pc . . . . . . . . . . . . . . . . . . . . 232.7 Règle syntaxique utilisant le formalisme DI/PL . . . . . . . . . . . . . . 242.8 AVM représentant un SN . . . . . . . . . . . . . . . . . . . . . . . . . . 262.9 Un exemple <strong>de</strong> <strong>configuration</strong> - Modèle générique d’un PC . . . . . . . . 293.1 Représentation UML2 <strong>de</strong> la classe A . . . . . . . . . . . . . . . . . . . . 323.2 Une classe contenant un attribut . . . . . . . . . . . . . . . . . . . . . . 333.3 Notation UML2 <strong>de</strong> la relation d’association . . . . . . . . . . . . . . . . 343.4 Notation UML2 <strong>de</strong> la relation <strong>de</strong> composition . . . . . . . . . . . . . . . 353.5 Relation d’héritage : A et B héritent <strong>de</strong> C . . . . . . . . . . . . . . . . . 363.6 Définitions <strong>de</strong>s opérateurs <strong>de</strong> dé-référencement . . . . . . . . . . . . . . 383.7 Sous-modèle objet du PC . . . . . . . . . . . . . . . . . . . . . . . . . . 393.8 Modèle objet d’une carte mère et <strong>de</strong> ses composants . . . . . . . . . . . 413.9 Une solution possible pour le modèle objet <strong>de</strong> la figure 3.8 . . . . . . . . 434.1 Un modèle objet cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2 Un modèle objet non cyclique . . . . . . . . . . . . . . . . . . . . . . . . 464.3 Modèle (UML) <strong>de</strong> données générique pour représenter un PC . . . . . . 524.4 Objets disponib<strong>les</strong> pour la recherche <strong>de</strong> modèle fini dans l’exemple du pc 564.5 Résultats <strong>de</strong> la propagation <strong>de</strong>s contraintes sur l’ensemble d’objets initial 574.6 Arbre <strong>de</strong> recherche pour la première solution du problème du pc . . . . 584.7 Arbre <strong>de</strong> recherche pour une autre solution du problème du pc . . . . . 59- 7 -


TABLE DES FIGURES5.1 Formalisation <strong>de</strong>s classes et <strong>de</strong>s attributs du modèle objet <strong>de</strong>s <strong>grammaires</strong><strong>de</strong> <strong>configuration</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2 Formalisation <strong>de</strong>s relations du modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> 625.3 Modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> (Notation UML2) . . . . 635.4 Contraintes génériques pour toute grammaire <strong>de</strong> <strong>configuration</strong> . . . . . . 635.5 Modèle objet pour le langage a n b n . . . . . . . . . . . . . . . . . . . . . 645.6 Exemp<strong>les</strong> <strong>de</strong> parsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.7 Drawing appartenant à la classe D 1 . . . . . . . . . . . . . . . . . . . . . 665.8 Example <strong>de</strong> drawing codant un mot reconnu par le langage SCR . . . . 675.9 Modèle objet <strong>de</strong> la grammaire <strong>de</strong> <strong>configuration</strong> codant la grammaire SCR 685.10 Instances communes à toutes <strong>les</strong> solutions (codant l’entrée) . . . . . . . 695.11 Instances solutions pour le scrambling avec k = 3 . . . . . . . . . . . . . 705.12 Insertion du traitement <strong>de</strong>s gaps dans modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong><strong>configuration</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.13 SX peut avoir comme tête {A 1 , .., A n } . . . . . . . . . . . . . . . . . . . 735.14 SX peut contenir une ou plusieurs catégories parmi {B 1 , .., B m } . . . . . 745.15 Représentation <strong>de</strong> la relation <strong>de</strong> constitution . . . . . . . . . . . . . . . 755.16 AVM <strong>de</strong>s catégories termina<strong>les</strong> . . . . . . . . . . . . . . . . . . . . . . . 815.17 Sous-modèle représentant <strong>les</strong> catégories termina<strong>les</strong> <strong>de</strong> la grammaire <strong>de</strong>scriptive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.18 Catégorie SN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.19 Sous-modèle pour la propriété <strong>de</strong> tête du SN . . . . . . . . . . . . . . . 835.20 Sous-modèle pour la propriété <strong>de</strong> facultativité du SN . . . . . . . . . . . 845.21 Sous-modèle pour la propriété <strong>de</strong> constitution du SN . . . . . . . . . . . 845.22 Catégorie SPrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855.23 La propriété <strong>de</strong> tête du syntagme prépositionnel . . . . . . . . . . . . . 865.24 Eléments facultatifs d’un syntagme prépositionnel . . . . . . . . . . . . 865.25 Catégorie SV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875.26 La propriété <strong>de</strong> tête du syntagme verbal . . . . . . . . . . . . . . . . . . 885.27 La propriété <strong>de</strong> facultativité du syntagme verbal . . . . . . . . . . . . . 885.28 Catégorie SAdv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.29 La propriété <strong>de</strong> tête du syntagme adverbial . . . . . . . . . . . . . . . . 895.30 Catégorie Phrase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.31 La propriété <strong>de</strong> tête <strong>de</strong> la catégorie Phrase . . . . . . . . . . . . . . . . . 905.32 Entrée lexicale du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . 905.33 Modèle objet global <strong>de</strong> l’analyseur syntaxique <strong>de</strong> <strong>de</strong>scriptions . . . . . . 915.34 Exemple <strong>de</strong> quasi arbre unaire pour le N dans notre grammaire . . . . . 925.35 Modèle fini résultat <strong>de</strong> l’analyse syntaxique <strong>de</strong> la phrase « Le pc possè<strong>de</strong><strong>de</strong>ux disques durs » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.36 Fragment <strong>de</strong> grammaire <strong>de</strong> dépendance . . . . . . . . . . . . . . . . . . 945.37 Arbres ID et LP pour la phrase « Maria einen Mann wird haben liebenkönnen ». . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955.38 Diagramme <strong>de</strong> classes pour modéliser <strong>les</strong> arbres ID et LP . . . . . . . . 975.39 Relations supplémentaires sur la classe CatDep . . . . . . . . . . . . . . 99- 8 -


TABLE DES FIGURES6.1 Schéma <strong>de</strong> règ<strong>les</strong> syntaxiques pour <strong>les</strong> phrases <strong>de</strong> <strong>de</strong>scription . . . . . . 1026.2 Concepts <strong>de</strong> l’analyse sémantique <strong>de</strong> textes <strong>de</strong>scriptifs . . . . . . . . . . 1036.3 Extrait du lexique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046.4 Une partie du diagramme <strong>de</strong> classes pour ScDet . . . . . . . . . . . . . . 1046.5 Diagramme <strong>de</strong> classes pour ScPoss . . . . . . . . . . . . . . . . . . . . . 1056.6 Le mon<strong>de</strong> construit lors <strong>de</strong> l’analyse . . . . . . . . . . . . . . . . . . . . 1076.8 Modèle objet pour le lexiconSelector . . . . . . . . . . . . . . . . . . . . 1096.9 Modèle objet pour le schéma d’attribut . . . . . . . . . . . . . . . . . . 1106.7 Instance solution du modèle syntaxico-sémantique pour la phrase « Le pcpossè<strong>de</strong> <strong>de</strong>ux disques durs ». . . . . . . . . . . . . . . . . . . . . . . . . 1127.1 Un plan paramétrique et une surface NURBS correspondante . . . . . . 1137.2 Processus général <strong>de</strong> modélisation déclarative <strong>de</strong> surface . . . . . . . . . 1147.3 Modèle sémantique représentant le « mon<strong>de</strong> » <strong>de</strong>s surfaces . . . . . . . . 1157.4 Extrait du lexique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.5 Extrait <strong>de</strong> la table <strong>de</strong> liaison lexique-sémantique . . . . . . . . . . . . . 1177.6 Une surface solution pour la <strong>de</strong>scription étudiée . . . . . . . . . . . . . . 1177.7 Solution pour le problème <strong>de</strong> modélisation déclarative <strong>de</strong> surfaces avec laphrase « La surface est rectangulaire » . . . . . . . . . . . . . . . . . . . 118A.1 Modèle (JConfigurator) générique <strong>de</strong> données pour représenter un PC . 122A.2 Modèle (UML) <strong>de</strong> données générique pour représenter un PC . . . . . . 123A.3 Boîte <strong>de</strong> dialogue permettant <strong>de</strong> spécifier <strong>les</strong> propriétés d’une relation . 124B.1 Partitions <strong>de</strong>s éléments utilisés dans HPSG . . . . . . . . . . . . . . . . 133B.2 Modèle objet représentant la partition <strong>de</strong> objet . . . . . . . . . . . . . . 134B.3 Modèle objet représentant la partition <strong>de</strong> bool . . . . . . . . . . . . . . . 134B.4 Modèle objet représentant la partition <strong>de</strong> sign . . . . . . . . . . . . . . . 134B.5 Modèle objet représentant la partition <strong>de</strong> mod-sem . . . . . . . . . . . . 135B.6 Modèle objet représentant la partition <strong>de</strong> head . . . . . . . . . . . . . . 135B.7 Modèle objet représentant la partition <strong>de</strong> marking . . . . . . . . . . . . 135B.8 Modèle objet représentant la partition <strong>de</strong> case . . . . . . . . . . . . . . . 136B.9 Modèle objet représentant la partition <strong>de</strong> vform . . . . . . . . . . . . . . 136B.10 Modèle objet représentant la partition <strong>de</strong> pform . . . . . . . . . . . . . . 136B.11 Modèle objet représentant la partition <strong>de</strong> phonstring . . . . . . . . . . . 136B.12 Modèle objet représentant la partition <strong>de</strong> con-struc . . . . . . . . . . . . 137B.13 Modèle objet représentant la partition <strong>de</strong> content . . . . . . . . . . . . . 137B.14 Modèle objet représentant la partition <strong>de</strong> sem<strong>de</strong>t . . . . . . . . . . . . . 138B.15 Modèle objet représentant la partition <strong>de</strong> in<strong>de</strong>x . . . . . . . . . . . . . . 138B.16 Modèle objet représentant la partition <strong>de</strong> person . . . . . . . . . . . . . 138B.17 Modèle objet représentant la partition <strong>de</strong> number . . . . . . . . . . . . . 138B.18 Modèle objet représentant la partition <strong>de</strong> gen<strong>de</strong>r . . . . . . . . . . . . . 139B.19 Modèle objet représentant la partition <strong>de</strong> qfpsoa . . . . . . . . . . . . . 139B.20 Hiérarchie <strong>de</strong> types pour <strong>les</strong> éléments list et set . . . . . . . . . . . . . . 140- 9 -


TABLE DES FIGURESB.21 Définition <strong>de</strong> la structure d’une liste non vi<strong>de</strong> dans [53] . . . . . . . . . 140B.22 Modèle objet traduisant strictement la définition d’une liste . . . . . . . 140B.23 Instances créées pour une liste <strong>de</strong> trois éléments . . . . . . . . . . . . . . 141B.24 Première partie <strong>de</strong>s structures <strong>de</strong> traits présentées dans [53] . . . . . . . 141B.25 Deuxième partie <strong>de</strong>s structures <strong>de</strong> traits présentées dans [53] . . . . . . 142B.26 Sous-partie du modèle objet représentant <strong>les</strong> stuctures <strong>de</strong> HPSG . . . . 143C.1 Fragment du UML Core utilisé pour <strong>les</strong> modè<strong>les</strong> objet contraints - issu<strong>de</strong> [35] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146- 10 -


Liste <strong>de</strong>s tableaux6.1 Résultats expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 107A.1 Nombre <strong>de</strong> modè<strong>les</strong> trouvés pour l’exemple <strong>de</strong> l’ordinateur en fonction dunombre <strong>de</strong> contraintes spécifiques . . . . . . . . . . . . . . . . . . . . . . 131- 11 -


Chapitre 1IntroductionCette thèse a pour objet d’utiliser la recherche <strong>de</strong> modè<strong>les</strong> finis comme un cadreunique pour l’analyse <strong>de</strong> langages naturels du double point <strong>de</strong> vue syntaxique et sémantique.Il existe <strong>de</strong>s sous ensemb<strong>les</strong> uti<strong>les</strong> <strong>de</strong>s langages naturels, notamment ceux décrivant <strong>de</strong>sscènes du mon<strong>de</strong> réel, dont <strong>les</strong> phrases correctes décrivent <strong>de</strong>s représentations assimilab<strong>les</strong>à <strong>de</strong>s modè<strong>les</strong> finis. Par exemple, <strong>les</strong> phrases « Le camion possè<strong>de</strong> huit roues. »,ou « L’oiseau a <strong>de</strong>s plumes bleues. » sont naturellement associées mentalement à unereprésentation qu’il est possible <strong>de</strong> corréler avec une interprétation d’une formule logique.La figure 1.1 donne l’exemple d’une traduction logique possible attachée à laphrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs ».∃ x, y, z(y ≠ z ∧ pc(x) ∧ disque dur(y) ∧ disque dur(z) ∧ posse<strong>de</strong>r(x, y) ∧ posse<strong>de</strong>r(x, z))Fig. 1.1 – Sémantique formelle associée à la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs »La figure 1.2 illustre graphiquement une interprétation <strong>de</strong> cette formule 1.1. Dans lasuite nous appellerons « textes <strong>de</strong>scriptifs » <strong>les</strong> textes construits avec <strong>de</strong> tel<strong>les</strong> phrases<strong>de</strong>scriptives. Les textes <strong>de</strong>scriptifs présentent un intérêt technique général. Ils permettenten effet d’utiliser un sous ensemble réaliste du langage naturel pour interagir avec <strong>les</strong>machines. Ils généralisent en cela <strong>de</strong> manière pragmatique <strong>les</strong> langages impératifs <strong>de</strong>programmation, dont la structure syntaxique profon<strong>de</strong> est i<strong>de</strong>ntifiée avec la sémantique.Nous en montrons une application à <strong>de</strong>s textes décrivant <strong>de</strong>s scènes tri-dimensionnel<strong>les</strong>,dans le contexte <strong>de</strong> la modélisation assistée par ordinateur.Le projet global du traitement automatique <strong>de</strong>s langages naturels <strong>de</strong>meure l’extraction<strong>de</strong> leur sémantique. Il est souhaitable d’utiliser un cadre unifié pour l’analysesyntaxico sémantique, <strong>de</strong> façon à ce que la totalité <strong>de</strong> l’information soit disponible auparseur, afin que <strong>les</strong> ambiguïtés loca<strong>les</strong> éventuel<strong>les</strong> soient éliminées au plus tôt. On peutdonc se <strong>de</strong>man<strong>de</strong>r si la recherche <strong>de</strong> modè<strong>les</strong> finis pourrait être appliquée au parsage <strong>de</strong>textes <strong>de</strong>scriptifs dans sa généralité, combinant syntaxe et sémantique.On observe aisément que le produit <strong>de</strong> l’analyse syntaxique <strong>de</strong> phrases pour <strong>de</strong>nombreuses <strong>grammaires</strong> peut également être assimilé à la construction d’un modèle- 12 -


1 : IntroductionFig. 1.2 – Interprétation simpliste associée à la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disquesdurs »fini, dont <strong>les</strong> catégories et leurs relations décrivent la structure. Par exemple l’analyseillustrée par la figure 1.3 associée à la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs » faitintervenir <strong>de</strong>s « objets » (<strong>les</strong> instances <strong>de</strong>s étiquettes syntaxiques et <strong>les</strong> mots) qui entrentvia <strong>de</strong>s relations <strong>de</strong> composition dans une structure ici arborescente, plus généralementun graphe orienté acyclique (DAG) enraciné. Une telle structure peut également êtrevue comme une interprétation d’une expression logique.Phrase SNSV SN Det N V Det NLe pc possè<strong>de</strong> <strong>de</strong>ux disques dursFig. 1.3 – Arbre syntaxique pour la phrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs »La recherche <strong>de</strong> modè<strong>les</strong> finis semble donc pouvoir être appliquée au parsage <strong>de</strong>textes <strong>de</strong>scriptifs. Nous nous proposons <strong>de</strong> le vérifier, et <strong>de</strong> mesurer la richesse du cadreproposé. Si le projet <strong>de</strong> cette thèse est atteint, et l’on verra que nous pouvons considéreracquise une validation qualitative <strong>de</strong> l’approche, cela présente certains avantages :– la recherche <strong>de</strong> modè<strong>les</strong> finis peut être appliquée à <strong>de</strong>s formu<strong>les</strong> « quelconques »,qui ne présentent aucun <strong>de</strong>s biais dénotationnels et opérationnels <strong>de</strong>s langages àbase <strong>de</strong> règ<strong>les</strong>, et notamment :– il n’est pas nécessaire <strong>de</strong> traduire une formulation logique arbitraire en tenantcompte <strong>de</strong> ces biais, par exemple pour produire <strong>de</strong>s clauses <strong>de</strong> Horn, ou <strong>de</strong>s règ<strong>les</strong>d’un langage à base <strong>de</strong> règ<strong>les</strong> exploité en chaînage avant, ou <strong>de</strong>s clauses avecdisjonction exploitées avec une sémantique <strong>de</strong> point fixe (par exemple <strong>les</strong> modè<strong>les</strong>stab<strong>les</strong>),– un algorithme <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis générique, appliqué à une formulereprésentant <strong>les</strong> propriétés d’un langage naturel, induit <strong>de</strong> façon immédiate un- 13 -


1 : Introductionparseur, pouvant être exploité <strong>de</strong> façon mixte ou hybri<strong>de</strong> analytique/générative(analyse <strong>de</strong> phrases/production <strong>de</strong> phrases).– un tel algorithme, appliqué à une expression décrivant à la fois <strong>les</strong> syntaxes etsémantiques vali<strong>de</strong>s, constitue <strong>de</strong> facto un parseur capable <strong>de</strong> produire <strong>de</strong>s représentationssémantiques.Il est important <strong>de</strong> noter que la <strong>de</strong>scription formelle <strong>de</strong>s représentations acceptéesd’un langage naturel donné constitue un préalable nécessaire à la définition <strong>de</strong> toutparseur. L’approche envisagée réduit voire supprime <strong>les</strong> efforts <strong>de</strong> traduction, <strong>de</strong> formu<strong>les</strong>arbitraires vers un formalisme exploitable par un outil (clauses <strong>de</strong> Horn parexemple). Elle est donc susceptible <strong>de</strong> considérablement simplifier la réalisation <strong>de</strong>sparseurs/générateurs.Par ailleurs, le fait que le parseur implicitement généré soit capable <strong>de</strong> produire<strong>les</strong> entrées reconnues par <strong>de</strong>s <strong>grammaires</strong> permet une utilisation <strong>de</strong> l’approche pour enassister le développement. La génération constitue en effet un outil puissant <strong>de</strong> débugdans <strong>les</strong> situations combinatoires. Alors que la trace d’une recherche énumérative est toutsimplement inexploitable, l’étu<strong>de</strong> <strong>de</strong>s solutions générées est très riche d’enseignements.Si le programme produit <strong>de</strong>s solutions erronées, il est incorrect, ou sur-générateur : sitoutes <strong>les</strong> contraintes formulées sont exactes, la situation révèle qu’il en manque. Dansle cas inverse, le programme est sous générateur, ce qui signifie qu’une contrainte aumoins est erronnée ou surnuméraire.1.1 Cadre scientifique généralCette recherche s’inscrit dans une dynamique actuelle du traitement automatique <strong>de</strong>slangues naturel<strong>les</strong>, incarnée par le cadre du Mo<strong>de</strong>l-Theoretic Syntactic framework[16, 54](MTS). Dans [54], l’auteur sépare en <strong>de</strong>ux groupes <strong>les</strong> métho<strong>de</strong>s <strong>de</strong> résolutions utiliséespar <strong>les</strong> formalismes linguistiques : le Generative-Enumerative Syntactic framework(GES) et le Mo<strong>de</strong>l-Theoretic Syntactic framework (MTS). Ces <strong>de</strong>ux approches s’appuyentsur la logique mathématique. La première hérite <strong>de</strong> l’analyse syntaxique <strong>de</strong>sformu<strong>les</strong> logiques (théorie <strong>de</strong> la preuve) et la secon<strong>de</strong> <strong>de</strong> leur étu<strong>de</strong> sémantique (théorie<strong>de</strong>s modè<strong>les</strong>). Les auteurs <strong>de</strong> [54] concluent que le cadre MTS est plus pertinent pourl’analyse du langage naturel que GES.La formalisation <strong>de</strong>s <strong>grammaires</strong> a vu, <strong>de</strong>puis <strong>les</strong> années 80, <strong>les</strong> structures <strong>de</strong> traitsêtre utilisées pour représenter <strong>les</strong> composants intervenant dans leur définition. Une structure<strong>de</strong> traits est un ensemble <strong>de</strong> coup<strong>les</strong> (attribut, valeur) où la valeur peut être soitatomique (prise dans le domaine <strong>de</strong> l’attribut) soit, récursivement, une structure <strong>de</strong>traits. Cette formalisation a été très clairement pointée par <strong>de</strong> nombreux auteurs commeassimilable à une représentation orientée objet. Nous nous plaçons dans cette filiation enutilisant la recherche <strong>de</strong> modè<strong>les</strong> finis appliquée à <strong>de</strong>s expressions logiques particulièresappelées « modè<strong>les</strong> objet contraints ».- 14 -


1 : Introduction1.2 Nouveauté <strong>de</strong> l’approcheCombiner analyse syntaxique et sémantique est un objectif ancien <strong>de</strong> l’intelligenceartificielle, qui a suscité <strong>de</strong>s réalisations significatives. Toutefois cela n’avait à notreconnaissance jamais été tenté dans un cadre logique exploité uniquement par la rechercheénumérative <strong>de</strong> modè<strong>les</strong> finis. Analyser syntaxiquement une phrase est à présentbien maîtrisé. Cette maîtrise est notamment due à une analyse lexicale efficace fournissantune labélisation précise <strong>de</strong>s mots <strong>de</strong> l’entrée, ainsi qu’à <strong>de</strong>s analyseurs syntaxiques<strong>de</strong> plus en plus performants. Comprendre le sens d’une phrase est plus difficileet constitue la prochaine gran<strong>de</strong> étape dans le traitement <strong>de</strong>s langages naturels et plusgénéralement dans toutes <strong>les</strong> disciplines <strong>de</strong> l’IA. Quasiment toutes <strong>les</strong> <strong>grammaires</strong> quel’on peut trouver dans la littérature proposent un traitement <strong>de</strong> la sémantique. Des logicielstel que ILLICO [50, 51] ont été implémentés et fournissent <strong>de</strong>s analyses syntaxiqueset sémantiques. De même <strong>les</strong> théories linguistiques tel<strong>les</strong> que la grammaire syntagmatiqueguidée par <strong>les</strong> têtes (Head-driven Phrase Structure Grammars - HPSG)[52, 53]ou <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> dépendance (Depen<strong>de</strong>ncy grammars - DG) [17, 61] prennent encompte l’aspect sémantique <strong>de</strong> la langue soit en l’intégrant à l’analyse <strong>de</strong> la syntaxe dansHPSG soit comme un module annexe (une dimension) en XDG(eXtensible Depen<strong>de</strong>ncyGrammar) [17]. Aucun <strong>de</strong>s exemp<strong>les</strong> ci <strong>de</strong>ssus, et plus généralement à notre connaissanceaucune approche existante n’abor<strong>de</strong> ce problème <strong>de</strong> manière unifiée comme nousl’envisageons. Il convient <strong>de</strong> noter toutefois que <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> dépendances fontexplicitement référence à la <strong>configuration</strong> comme processus <strong>de</strong> construction <strong>de</strong> l’analyse.Nous verrons plus loin que nous utilisons également la <strong>configuration</strong> à base <strong>de</strong> contraintescomme un outil <strong>de</strong> génération <strong>de</strong> modè<strong>les</strong> finis, ce qui place notre travail dans une perspectivecomparable. Une différence est que nous ne proposons pas <strong>de</strong> théorie linguistiqueparticulière à notre contexte.L’utilisation <strong>de</strong>s contraintes par <strong>les</strong> formalismes et outils pour le Traitement Automatiquedu Langage Naturel s’est accrue <strong>de</strong>puis <strong>les</strong> années 80. Dans cette disciplinequi rassemble linguistes et informaticiens pour réaliser l’implémentation <strong>de</strong>s théorieslinguistiques sur machine, le recours aux contraintes peut être attesté dès <strong>les</strong> <strong>grammaires</strong>syntagmatiques généralisées GPSG [31] (1985) et, bien sûr, <strong>de</strong>puis <strong>les</strong> premièresapplications du langage Prolog [15, 50]. Depuis, <strong>de</strong> très nombreuses approches y fontréférence. Pourtant, <strong>les</strong> formalismes à base <strong>de</strong> contraintes classiques, CSP (Constraintsatisfaction Problems) par exemple, sont insuffisants pour atteindre la complexité duprocessus d’analyse syntaxique et/ou sémantique, ce qui justifie l’utilisation dans cettethèse d’un formalisme plus général.1.3 Démarche expérimentalePour vali<strong>de</strong>r qualitativement l’hypothèse fondatrice <strong>de</strong> cette thèse, l’utilisation <strong>de</strong>la recherche <strong>de</strong> modè<strong>les</strong> finis pour le parsage <strong>de</strong> langages naturels, nous avons eu ladémarche suivante :– définir un modèle objet contraint (MOC) abstrait permettant la prise en compte- 15 -


1 : Introduction<strong>de</strong> la définition <strong>de</strong>s catégories <strong>de</strong> certaines <strong>grammaires</strong>. Une présentation formelle<strong>de</strong> ce MOC garantit la reproductibilité <strong>de</strong>s résultats, indépendamment <strong>de</strong> la technologieconcrète choisie pour la recherche <strong>de</strong> modè<strong>les</strong> finis.– définir le programme Java supportant ce modèle, sur la base du configurateurJConfigurator. Le programme réalisé peut charger <strong>de</strong>s fichiers <strong>de</strong> définition produitshors <strong>de</strong> l’outil, notamment par le parseur évoqué ci <strong>de</strong>ssous,– montrer par la traduction modulaire automatique et complète d’une théorie linguistiquereposant sur <strong>les</strong> contraintes (<strong>les</strong> <strong>grammaires</strong> <strong>de</strong> propriétés) que cetteapproche couvre au moins la totalité d’une théorie grammaticale connue. Untraducteur complet a été implanté en Java, qui s’appuye sur <strong>de</strong>s définitons Latexspécifiques aux <strong>grammaires</strong> <strong>de</strong> propriétés. Les exemp<strong>les</strong> <strong>de</strong> <strong>grammaires</strong> <strong>de</strong>propriétés présentés dans cette thèse peuvent être parsés directement à partir<strong>de</strong>s sources Latex, le parseur isolant <strong>les</strong> constructions pertinentes et générant <strong>les</strong>entrées correspondantes pour l’outil <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong>.– appliquer le même cadre à la théorie <strong>de</strong>s <strong>grammaires</strong> syntagmatiques guidées par<strong>les</strong> têtes (HPSG), dont la traduction d’un fragment est illustrée en annexe <strong>de</strong> cedocument– ébaucher dans ce cadre l’analyse combinée <strong>de</strong> la syntaxe et <strong>de</strong> la sémantique d’unlangage <strong>de</strong> <strong>de</strong>scription simple. Ce travail a fait l’objet d’une implantation appliquéeà la génération <strong>de</strong> surfaces tridimensionnel<strong>les</strong> guidée par le langage naturel .1.4 Contributions origina<strong>les</strong>Les modè<strong>les</strong> objets contraints constituent une extension <strong>de</strong>s problèmes <strong>de</strong> satisfaction<strong>de</strong> contraintes classiques. Il n’existe pas aujourd’hui <strong>de</strong> formalisme communémentaccepté pour définir ces modè<strong>les</strong> objets contraints. Ce concept est défini implicitementpar la sémantique opérationnelle d’outils comme JConfigurator [41] ou par la sémantiqueopérationnelle du point fixe <strong>de</strong>s modè<strong>les</strong> stab<strong>les</strong> dans [57, 56] par exemple. Certains formalismes,comme <strong>les</strong> Dynamic Constraint Satisfaction Problems (DCSP) [48, 2] restent<strong>de</strong>s extensions insuffisantes <strong>de</strong>s CSP dans notre cadre car n’offrant pas la possibilité <strong>de</strong>manipuler <strong>de</strong>s variab<strong>les</strong> ensemblistes. Par ailleurs, le standard UML a popularisé uneprésentation visuelle <strong>de</strong>s modè<strong>les</strong> objets, dont le langage <strong>de</strong> contraintes associé OCL estmal accepté par <strong>les</strong> chercheurs.Permettre la <strong>de</strong>scription <strong>de</strong> modè<strong>les</strong> objet contraints comme le requiert cette thèsea nécessité l’élaboration d’un formalisme rigoureux d’une expressivité suffisante afin <strong>de</strong>permettre la reproductibilité <strong>de</strong>s résultats. Nous utilisons un sous ensemble du langagerelationnel Z à cette fin, dont nous donnons également une contrepartie visuelle standardiséepar le langage <strong>de</strong> modélisation UML, pour faciliter la compréhension <strong>de</strong>s résultats.Les diagrammes UML restent toutefois optionnels. Le langage Z est au moins aussi expressifque la logique <strong>de</strong>s prédicats. Cette formalisation est un apport à la communautédans le sens où nous proposons une représentation formelle à un domaine qui jusque làne disposait que <strong>de</strong>s diagrammes <strong>de</strong> classes UML2, ou <strong>de</strong> langages implicitement induitspar <strong>les</strong> outils. Les diagrammes <strong>de</strong> classes (UML2) sont suffisants pour la modélisation- 16 -


1 : Introduction<strong>de</strong>s modè<strong>les</strong> objet, mais l’apport <strong>de</strong>s contraintes sur ces modè<strong>les</strong> objet se doit <strong>de</strong> disposerd’un formalisme commun aux chercheurs du domaine.Un autre apport significatif <strong>de</strong> la thèse consiste en un modèle abstrait <strong>de</strong>s <strong>grammaires</strong>,spécifié en Z , et dont un programme d’énumération <strong>de</strong> recherches <strong>de</strong> modè<strong>les</strong>finis a été réalisé. Ce modèle abstrait est organisé autour d’une classe Cat dont toutecatégorie <strong>de</strong> la grammaire hérite, et décrit également à haut niveau l’existence <strong>de</strong> liensentre entrées lexica<strong>les</strong> et grammaire.La puissance expressive <strong>de</strong>s modè<strong>les</strong> objet contraints permet <strong>de</strong> construire modulairementle parseur <strong>de</strong> certains formalismes grammaticaux, notamment ceux reposant sur<strong>les</strong> structures <strong>de</strong> traits. Cette modularité est mise à profit pour automatiser la prise encharge d’une grammaire formelle fournie en entrée, et générer un modèle objet contraintpouvant être utilisé directement comme analyseur par une recherche <strong>de</strong> modè<strong>les</strong> finis.Nous avons utilisé le formalisme <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> propriétés [10, 11] pour illustrerl’application <strong>de</strong> notre approche.1.5 LimitationsSans trop anticiper sur <strong>les</strong> conclusions et <strong>les</strong> perspectives, nous <strong>de</strong>vons dire que lathèse ne propose pas <strong>de</strong> résultats quantitatifs permettant <strong>de</strong> vali<strong>de</strong>r l’approche contred’autres formalismes et outils. Cette situation est partiellement due à <strong>de</strong>s difficultéstechniques liées à l’utilisation d’un outil non maintenu (JConfigurator). Nous ne donnonspas <strong>de</strong> résultats compétitifs avec d’autres parseurs pour l’analyse <strong>de</strong> phrases ou <strong>de</strong> texteslongs, ni pour <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> gran<strong>de</strong>s tail<strong>les</strong>. La taille du lexique quand à elle resteindifférente, seu<strong>les</strong> <strong>les</strong> ambiguïtés <strong>de</strong>s mots jouant sur la complexité.Le traitement sémantique <strong>de</strong> textes <strong>de</strong>scriptifs a été réalisé dans <strong>de</strong>s cas simp<strong>les</strong>, etreste embryonnaire, malgré le caractère spectaculaire et visuel <strong>de</strong> l’application réaliséedans le cadre <strong>de</strong> la modélisation déclarative <strong>de</strong> surfaces.L’utilisation <strong>de</strong> techniques <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis, dans un contexte fortementcombinatoire, pose <strong>les</strong> problèmes habituels <strong>de</strong>s techniques énumératives, que nousn’avons pas ou presque abordés. On peut notamment évoquer <strong>les</strong> heuristiques, <strong>les</strong> isomorphismes,<strong>les</strong> contraintes redondantes, l’utilisation <strong>de</strong> métho<strong>de</strong>s incomplètes, etc.1.6 Plan <strong>de</strong> la thèseLe chapitre 2 est un état <strong>de</strong> l’art <strong>de</strong>s formalismes linguistiques et <strong>de</strong> la <strong>configuration</strong>.La section 2.1 présente <strong>les</strong> formalismes GPSG, HPSG, PG et DG, utilisés pour le traitementautomatique <strong>de</strong>s langues naturel<strong>les</strong>. La section 2.2 porte sur la <strong>configuration</strong> etplus particulièrement la <strong>configuration</strong> orientée objet sous contraintes. Nous reviendronssur la <strong>configuration</strong> dans le chapitre 4 dans lequel elle sera utilisée comme métho<strong>de</strong><strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraints dont le formalisme estdécrit dans <strong>les</strong> <strong>de</strong>ux premières sections du chapitre 3. A cette formalisation, la section 3.3associe une interprétation <strong>de</strong>s modè<strong>les</strong> objet contraints. Le chapitre 5 définit un cadred’analyse syntaxique, <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>, dont le traitement est effectué par- 17 -


1 : Introductionune recherche <strong>de</strong> modè<strong>les</strong> finis. Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> permettent notammentla traduction automatique <strong>de</strong> toute instance <strong>de</strong> grammaire exprimée sous la forme d’unegrammaire <strong>de</strong> propriété en terme <strong>de</strong> modèle objet contraint et propose une résolutionutilisant la <strong>configuration</strong>. Le chapitre 6 présente une approche générique d’interfaçageentre la syntaxe et la sémantique par un sous-modèle objet contraint représentant <strong>de</strong>sponts entre ces <strong>de</strong>ux « univers ». Une <strong>de</strong> ces interfaces est utilisée pour le traitementd’un problème réel <strong>de</strong> modélisation déclarative dans le chapitre 7. Enfin le chapitre 8présente une synthèse du travail effectué et, s’appuyant sur <strong>de</strong>s axes <strong>de</strong> recherches nonexploités ou seulement partiellement utilisés, propose <strong>de</strong>s perspectives <strong>de</strong> recherches.- 18 -


Chapitre 2Etat <strong>de</strong> l’art2.1 Les <strong>grammaires</strong>L’objectif <strong>de</strong> la grammaire, en son sens premier, est <strong>de</strong> fournir un ensemble <strong>de</strong> règ<strong>les</strong>qui définissent <strong>les</strong> entrées acceptées pour un langage. Le développement du traitementautomatique du langage a amené un grand nombre <strong>de</strong> théories linguistiques visant àrendre compte <strong>de</strong> cette définition. Les travaux du domaine ont abouti à <strong>de</strong> très bonsanalyseurs syntaxiques, comme par exemple le EngCG-2 [63] qui assigne une étiquettegrammaticale à chaque mot d’une phrase passée en argument, avec un taux <strong>de</strong> fiabilité<strong>de</strong> 99% et à une ca<strong>de</strong>nce <strong>de</strong> 3000 mots par secon<strong>de</strong>, ou encore, le logiciel ILLICO [50, 51]développé par R. Pasero et P. Sabatier réalise une analyse syntaxique et sémantique <strong>de</strong>sphrases qu’il reçoit en entrée. ILLICO est basé sur <strong>de</strong>s règ<strong>les</strong> PROLOG[15]. Les analyseurssyntaxiques issus <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> propriétés ont quant à eux été très bien classéslors <strong>de</strong> la campagne EASY (Campagne d’Evaluation <strong>de</strong>s Analyseurs Syntaxiques).Il existe dans la littérature énormément <strong>de</strong> théories linguistiques. Depuis <strong>les</strong> années1930 et <strong>les</strong> <strong>grammaires</strong> catégoriel<strong>les</strong>, jusqu’aux plus récentes <strong>grammaires</strong> <strong>de</strong> propriétés[10]ou grammaire <strong>de</strong> dépendances extensible[17], <strong>les</strong> théories linguistiques cherchent à capturerle plus précisément possible <strong>les</strong> phénomènes du langage naturel. Pour ce faire el<strong>les</strong>s’adaptent très rapi<strong>de</strong>ment aux nouvel<strong>les</strong> techniques <strong>de</strong> représentation et <strong>de</strong> résolution.Par exemple, une gran<strong>de</strong> majorité <strong>de</strong> ces formalismes (pour ne pas dire tous) utilisent<strong>les</strong> structures <strong>de</strong> traits pour représenter <strong>les</strong> composants <strong>de</strong> la grammaire.2.1.1 Structures <strong>de</strong> traitsUne structure <strong>de</strong> traits est un ensemble d’attributs permettant <strong>de</strong> caractériser unobjet du domaine étudié. Dans ce document, une structure <strong>de</strong> traits représentera unedonnée linguistique (étiquette syntaxique, fonction sémantique, étiquette phonologique,etc...). Les structures <strong>de</strong> traits sont très utilisées dans <strong>les</strong> théories linguisitiques <strong>de</strong>puis[31].Définition 1 (Structure <strong>de</strong> traits) Une structure <strong>de</strong> traits est définie par :1. Un ensemble <strong>de</strong> coup<strong>les</strong> (trait, valeur), éventuellement vi<strong>de</strong>.- 19 -


2 : Etat <strong>de</strong> l’art2. Un couple (trait, valeur) comme par exemple (genre masculin) consiste en untrait (genre) et une valeur <strong>de</strong> trait (masculin).3. Une valeur <strong>de</strong> trait peut être :(a) Atomique (comme masculin)(b) Complexe4. Une valeur <strong>de</strong> trait complexe est une structure <strong>de</strong> traits.Représentation d’une structure <strong>de</strong> traitsLes structures <strong>de</strong> traits sont représentées soit par <strong>de</strong>s AVM (Attribute value matrices)comme sur la figure 2.1, soit par <strong>de</strong>s graphes orientés (DG) comme sur la figure 2.2.Ces <strong>de</strong>ux figures représentent le même trait genre du trait accord du nom communordinateur. La valeur du trait accord est complexe : sa valeur est une structure <strong>de</strong> traits(genre).⎡⎤...⎡⎤...⎢ordinateurAccord ⎣genremasculin⎦⎢⎣...⎥⎦...Fig. 2.1 – AVM pour le trait genre du nom commun ordinateur...ordinateur • Accord•genre• masculin...Fig. 2.2 – Graphe orienté pour le trait genre du nom commun ordinateurPropriété <strong>de</strong> partage <strong>de</strong> l’informationLes structures <strong>de</strong> traits permettent <strong>de</strong> structurer la représentation d’informations.El<strong>les</strong> possè<strong>de</strong>nt également une propriété <strong>de</strong> partage <strong>de</strong> leurs structures. Cette propriétépermet <strong>de</strong> contraindre <strong>de</strong>s traits <strong>de</strong> structures différentes à avoir <strong>les</strong> mêmes valeurs.Par exemple, il est possible <strong>de</strong> rendre compte du fait que le nom et le déterminantdoivent s’accor<strong>de</strong>r en genre et en nombre lorsqu’ils participent à la construction d’ungroupe nominal. La représentation habituelle <strong>de</strong> ce partage d’information est, pour <strong>les</strong>- 20 -


2 : Etat <strong>de</strong> l’artAVM, une boîte contenant un i<strong>de</strong>ntifiant liant <strong>les</strong> structures partageant l’informationet, pour <strong>les</strong> graphes orientés, un arc orienté vers le noeud correspondant. Les figures 2.3et 2.4 illustrent, sur l’exemple <strong>de</strong> l’accord du nom et du déterminant dans un syntagmenominal (SN), <strong>les</strong> représentations citées ci-<strong>de</strong>ssus pour <strong>les</strong> AVM et <strong>les</strong> graphes orientésrespectivement. Ces représentations sont libres <strong>de</strong> tout formalisme et ne sont présentesque pour donner une idée du partage d’information au sein d’une structure <strong>de</strong> traits. Ace titre, nous supposons qu’un SN contient exactement un N et un Det. Nous utiliserons⎡ [⎤"Accordgenre1nombreSN ⎢N⎣]Det[Accord : 1] #masculin ;fémininsingulier ;plurielFig. 2.3 – AVM pour l’accord du déterminant et du nom dans un SN⎥⎦genre• masculin ;féminin • N Accord • nombre• singulier ;plurielAccordSN • • DetFig. 2.4 – Graphe orienté pour l’accord du déterminant et du nom dans un SNau cours <strong>de</strong> ce document la notation sous forme d’AVM. Ces représentations ne suffisentpas à définir la totalité <strong>de</strong> l’information nécessaire à l’analyse linguistique. Pour ce faire,il faut ajouter <strong>les</strong> règ<strong>les</strong> <strong>de</strong> grammaire représentant <strong>les</strong> constructions autorisées. Dansce domaine, <strong>les</strong> contraintes prennent une part <strong>de</strong> plus en plus importante, el<strong>les</strong> sont <strong>de</strong>différents types :– <strong>les</strong> contraintes d’égalité sur <strong>les</strong> valeurs <strong>de</strong> traits (partage <strong>de</strong>s valeurs <strong>de</strong> traits)– <strong>les</strong> contraintes <strong>de</strong> position (précé<strong>de</strong>nce linéaire)– <strong>les</strong> contraintes <strong>de</strong> formation– <strong>les</strong> contraintes <strong>de</strong> dépendancesChaque formalisme dispose <strong>de</strong> ses propres attributs et <strong>de</strong> ses propres contraintes enfonction du but recherché. L’analyse du langage naturel peut être appréhendée <strong>de</strong> <strong>de</strong>uxmanières différentes : soit en utilisant <strong>les</strong> structures <strong>de</strong>s phrases et <strong>les</strong> compositionsd’éléments d’un point <strong>de</strong> vue syntagmatique (organisation <strong>de</strong> la phrase en groupes <strong>de</strong>mots (syntagmes)), soit en utilisant <strong>les</strong> dépendances entre <strong>les</strong> éléments <strong>de</strong> la phrase et- 21 -


2 : Etat <strong>de</strong> l’art<strong>les</strong> fonctions <strong>de</strong> ces éléments. Le premier groupe est appelé <strong>grammaires</strong> syntagmatiques(GS), le <strong>de</strong>uxième <strong>grammaires</strong> <strong>de</strong> dépendances(GD). Les <strong>de</strong>scriptions <strong>de</strong> ces <strong>de</strong>ux « courants» l’un nord américain, l’autre français, sont contemporaines et datent <strong>de</strong>s années1960. Les <strong>grammaires</strong> <strong>de</strong> dépendances 1 furent formalisées par Lucien Tesnière [61] tandisque le formalisme <strong>de</strong>s GS prit naissance avec <strong>les</strong> <strong>grammaires</strong> génératives[13].2.1.2 Les <strong>grammaires</strong> <strong>de</strong> dépendances (GD)Les <strong>grammaires</strong> <strong>de</strong> dépendances utilisent <strong>les</strong> relations entre <strong>les</strong> différents mots d’unephrase pour analyser celle-ci. Ces relations sont appelées dépendances. Il est possible<strong>de</strong> trouver plusieurs définitions du mot dépendance dans la littérature, ainsi [47] <strong>les</strong>définit ainsi : « [..] the wordforms in an utterance are linked by DEPENDENCIES : onewordform must <strong>de</strong>pend on another for its linear position and its grammatical form. Thatis how the concept of <strong>de</strong>pen<strong>de</strong>ncy appears in linguistics ». Cependant <strong>les</strong> <strong>grammaires</strong><strong>de</strong> dépendances utilisent le fait qu’il est possible <strong>de</strong> se libérer totalement <strong>de</strong> l’ordre <strong>de</strong>smots [19, 17]. Il est malgré tout parfois utile <strong>de</strong> conserver cette propriété <strong>de</strong> précé<strong>de</strong>ncelinéaire et [20] le présente comme un module <strong>de</strong> traitement adjoint à une grammaire <strong>de</strong>dépendances.La différence majeure entre <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> dépendances et <strong>les</strong> grammaire syntagmatiquesest que <strong>les</strong> premières permettent <strong>de</strong> se libérer <strong>de</strong> l’ordre <strong>de</strong>s mots. [42] est unebonne introduction à ce formalisme, le premier chapitre <strong>de</strong> [17] également. Ce <strong>de</strong>rnierprésente, également, un état <strong>de</strong> l’art <strong>de</strong>s techniques linguistiques dont nous nous sommesinspirés. [17] poursuit avec la <strong>de</strong>scription d’un formalisme <strong>de</strong> DG mo<strong>de</strong>rne, l’« ExtensibleDepen<strong>de</strong>ncy Grammar » (XDG). Ce formalisme est conçu <strong>de</strong> manière modulaireafin <strong>de</strong> permettre <strong>de</strong>s traitements variés comme par exemple une analyse syntaxiqueseule ou avec une étu<strong>de</strong> <strong>de</strong> la sémantique ainsi par exemple que le choix <strong>de</strong> prendre encompte ou non l’ordre <strong>de</strong>s mots. Les dépendances sont représentées à l’ai<strong>de</strong> <strong>de</strong> graphes.La figure 2.5 présente le graphe <strong>de</strong> dépendances 23 associé à la phrase « Le pc possè<strong>de</strong><strong>de</strong>ux disques durs ». Sur cette figure disques durs est analysé comme un mot composé 4 .Les <strong>grammaires</strong> <strong>de</strong> dépendances s’articulent autour <strong>de</strong> la notion <strong>de</strong> valence. Pourtoute étiquette, la valence est le nombre d’arêtes entrantes (in) et sortantes (out)nécessaires à la bonne formation <strong>de</strong> l’étiquette 5 . Une arête entrante représente un élémentdont dépend l’étiquette courante, tandis qu’une arête sortante est liée à un élémentdépendant <strong>de</strong> celle-ci. Ces valences sont spécifiées pour chaque mot du lexique. Parexemple, la figure 2.6 présente une entrée du lexique pour le mot pc. Sur cette figure, lemot pc peut être qualifié soit <strong>de</strong> sujet (Subj ) soit d’objet (Obj ). Il doit donc dépendre1 Lucien Tesnière est le premier à formaliser <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> dépen<strong>de</strong>nces, cependant <strong>de</strong> nombreuxauteurs font référence à <strong>de</strong>s traitements <strong>de</strong>s dépen<strong>de</strong>nces remontant au X ième siècle.2 Sur cette figure le graphe est réduit à un arbre. Les graphes <strong>de</strong> dépendances sont <strong>de</strong>s DAG (DirectedAcyclic Graph)3 Ce graphe a été réalisé avec le style latex dtree.sty <strong>de</strong> Denys Duchier.4 « disque dur » peut aussi être reconnu comme le nom disque qualifié par l’adjectif dur.5 Nous reprenons ici l’utilisation <strong>de</strong>s valences d’entrée et <strong>de</strong> sortie comme proposé dans [17] mais i<strong>les</strong>t possible <strong>de</strong> trouver également <strong>les</strong> seu<strong>les</strong> valences <strong>de</strong> sortie- 22 -


2 : Etat <strong>de</strong> l’artFig. 2.5 – Graphe <strong>de</strong>s dépendances pour la phrase ”Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs”d’un verbe. D’autre part il a besoin d’un déterminant (Det). Le point d’interrogation(?)suit un label d’arête optionnel tandis que le point d’exclamation(!) marque l’obligation<strong>de</strong> présence <strong>de</strong> cette arête.⎧⎨⎩mot = pcin = {Subj ?, Obj ?}out = {Det!}⎫⎬Fig. 2.6 – Entrée lexicale en DG pour le mot pc[19] propose la définition d’une grammaire <strong>de</strong> dépendances comme le 7-tuple :〈Words, Cats, Agrs, Comps, Mods, Lexicon, Ru<strong>les</strong>〉où– Words est un ensemble fini <strong>de</strong> chaînes <strong>de</strong> caractères représentant l’ensemble <strong>de</strong>sformes fléchies pour tous <strong>les</strong> mots– Cats est un ensemble fini <strong>de</strong> catégories (n, <strong>de</strong>t, ...)– Agrs est un ensemble fini <strong>de</strong> tup<strong>les</strong> d’accord tel que 〈masc sing 3〉– Comps est un ensemble fini <strong>de</strong> rô<strong>les</strong> compléments tel que sujet– Mods est un ensemble fini <strong>de</strong> modifieurs tel que Adj . Mods et Comps sont <strong>de</strong>uxensemb<strong>les</strong> disjoints. L’ensemble <strong>de</strong>s rô<strong>les</strong> est noté ro<strong>les</strong> = Comps ⊎ Mods. Lesrô<strong>les</strong> servent à étiqueter <strong>les</strong> branches d’un arbre <strong>de</strong> dépendances, tel que celui <strong>de</strong>la figure 2.5.– Lexicon est un ensemble fini d’entrées lexica<strong>les</strong>– Ru<strong>les</strong> est une famille <strong>de</strong> prédicats binaires in<strong>de</strong>xés par <strong>les</strong> noms <strong>de</strong>s rô<strong>les</strong> et exprimant<strong>les</strong> principes grammaticaux logiques <strong>de</strong> telle sorte que ∀ ρ ∈ Ro<strong>les</strong>, ∃ Γ ∈Ru<strong>les</strong> | Γ(w 1 , w 2 ) caractérise l’admissibilité grammaticale d’une arête étiquetée ρdu noeud père w 1 vers le noeud fils w 2 .Noam Chomsky est considéré comme le père <strong>de</strong>s <strong>grammaires</strong> génératives [13]. Atravers el<strong>les</strong>, il présente la grammaire comme l’étu<strong>de</strong> <strong>de</strong>s procédés <strong>de</strong> génération propresau locuteur et non plus comme un simple système <strong>de</strong> génération <strong>de</strong> phrases. Il décritd’ailleurs <strong>les</strong> <strong>grammaires</strong> génératives comme tel<strong>les</strong> :« La grammaire d’une langue propose d’être une <strong>de</strong>scription <strong>de</strong> la compétence intrinsèquedu locuteur-auditeur idéal. Si la grammaire est, <strong>de</strong> plus, parfaitement explicite⎭- 23 -


2 : Etat <strong>de</strong> l’art(en d’autres termes, si elle ne fait pas simplement confiance à la compréhension dulecteur intelligent, mais fournit une analyse explicite <strong>de</strong> l’activité qu’il déploie), nouspouvons, non sans redondance, l’appeler grammaire générative. »extrait <strong>de</strong> [14].N. Chomsky introduit <strong>de</strong> plus la notion <strong>de</strong> compétence-performance du locuteurauditeur.Cette notion représente la dualité entre <strong>les</strong> connaissances <strong>de</strong> structuration <strong>de</strong>sphrases du locuteur-auditeur et la manière dont ce <strong>de</strong>rnier <strong>les</strong> formule (locuteur) ou <strong>les</strong>entend (auditeur).2.1.3 Les <strong>grammaires</strong> syntagmatiques généralisées (GPSG)Les Generalised Phrase Structure Grammars (GPSG) constituent une étape fortedans la création <strong>de</strong>s <strong>grammaires</strong> syntagmatiques. Les notations présentées seront reprisespar tous ses <strong>de</strong>scendants. L’architecture <strong>de</strong> cette grammaire repose sur <strong>de</strong>s structures<strong>de</strong> traits en utilisant une représentation bi-valente <strong>de</strong>s relations liant une catégorie syntaxiqueet <strong>les</strong> catégories la constituant. Les GPSG introduisent également <strong>les</strong> concepts<strong>de</strong> dominance immédiate et <strong>de</strong> précé<strong>de</strong>nce linéaire, el<strong>les</strong> se séparent ainsi <strong>de</strong>s règ<strong>les</strong> syntaxiquesclassiques. Le formalisme contenant ces <strong>de</strong>ux concepts est nommé formalismeDI/PL. Dans <strong>les</strong> règ<strong>les</strong> syntaxiques classiques, la règle A → B C D spécifie que toutnoeud étiqueté A domine 3 noeuds b,c et d étiquetés respectivement B, C et D et <strong>de</strong>plus, que le noeud b est à gauche du noeud c qui est lui-même à gauche du noeud d. Lathéorie propose un partage <strong>de</strong> ces informations sous la forme :– dominance immédiate : définit <strong>de</strong>s règ<strong>les</strong> <strong>de</strong> dominance : A → B, C , D où la partiedroite n’est pas ordonnée et signifiant que tout noeud a labélisé A domine troisnoeuds b,c,d labélisés respectivement B,C et D.– précé<strong>de</strong>nce linéaire : permet <strong>de</strong> spécifier sans question <strong>de</strong> dominance l’ordonnancement<strong>de</strong>s constituants. Par exemple B ≺ C signifie que tout noeud labélisé Bne pourra pas apparaître après un noeud labélisé C . La précé<strong>de</strong>nce linéaire estantisymétrique et transitive.Bien évi<strong>de</strong>mment la règle A → B C D peut se réécrire avec le formalisme DI/PL,ce que montre la figure 2.7 6 .(1) A → B, C , D (ii) B ≺ C ≺ DFig. 2.7 – Règle syntaxique utilisant le formalisme DI/PLCe formalisme utilise <strong>de</strong>s arbres et cherche <strong>de</strong>s sous-arbres parmi un certain nombreautorisé satisfaisant l’ensemble <strong>de</strong>s contraintes définies par <strong>les</strong> « règ<strong>les</strong> ». Ces règ<strong>les</strong> sontd’une part <strong>les</strong> règ<strong>les</strong> <strong>de</strong> dominance immédiate et <strong>de</strong> précé<strong>de</strong>nce linéaire mais el<strong>les</strong> sontégalement définies par <strong>de</strong>s principes portant sur <strong>les</strong> structures <strong>de</strong> traits et <strong>de</strong> portéeuniverselle 7 . Ces principes sont au nombre <strong>de</strong> trois : Foot Feature Principle, ControlAgreement Principle et Head Feature Convention régissant respectivement :6 L’exemple 2.7 est tiré <strong>de</strong> [31]7 Valab<strong>les</strong> pour toute langue, bien que dans la pratique <strong>les</strong> principes puissent être adaptés aux languestraitées- 24 -


2 : Etat <strong>de</strong> l’art– <strong>les</strong> traits FOOT qui servent à représenter <strong>les</strong> éléments tels que <strong>les</strong> mots en Whenanglais, qui n’ont pas un rôle noyau dans le syntagme mais qui justifient saconstruction.– <strong>les</strong> traits CONTROLS qui ne peuvent être que <strong>de</strong> type SLASH (éléments absents)ou <strong>de</strong> type AGR (Agreement).– <strong>les</strong> relations entre <strong>les</strong> traits HEAD d’une catégorie mère et <strong>de</strong> ses catégories fil<strong>les</strong>.2.1.4 La grammaire syntagmatique guidée par <strong>les</strong> têtes (HPSG)Le formalisme <strong>de</strong>s « Head driven Phrase Structure Grammar » (HPSG) est sûrementle plus utilisé <strong>de</strong>s formalismes inspirés <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> Chomsky[12]. Leur article fondateur[52] date <strong>de</strong> 1987. Une version révisée est proposée en 1994[53] par <strong>les</strong> mêmesauteurs. C’est cette <strong>de</strong>rnière version qui est utilisée à l’heure actuelle par une gran<strong>de</strong> partie<strong>de</strong>s chercheurs du domaine. Nous donnons ci-<strong>de</strong>ssous <strong>les</strong> gran<strong>de</strong>s lignes <strong>de</strong> la théorieen nous reportant à l’article [8] qui donne une présentation claire, rapi<strong>de</strong> et en français<strong>de</strong> la théorie <strong>de</strong>s HPSG. Les HPSG héritent <strong>de</strong>s GPSG, en ce qu’el<strong>les</strong> représentent l’informationpar <strong>de</strong>s structures <strong>de</strong> traits (typées), implémentent <strong>les</strong> principes <strong>de</strong> dominanceimmédiate et <strong>de</strong> précé<strong>de</strong>nce linéaire ainsi que <strong>de</strong>s principes dont notamment le principe<strong>de</strong>s traits <strong>de</strong> tête.HPSG utilise <strong>de</strong>s structures <strong>de</strong> traits typées pour représenter l’ensemble <strong>de</strong>s informations.Une structure <strong>de</strong> traits typée est une structure dont tous <strong>les</strong> traits (atomiques oucomplexes) possè<strong>de</strong>nt un type. Ces types sont organisés en hiérarchie et tous <strong>les</strong> traitsdoivent être bien typés. La propagation <strong>de</strong>s valeurs <strong>de</strong> traits entre une structure <strong>de</strong> traitsfille et une structure <strong>de</strong> traits père 8 est assurée par un mécanisme <strong>de</strong> partage <strong>de</strong>s valeurs<strong>de</strong> traits. Les différents niveaux d’analyse (phonologique, syntaxique, sémantique) sontinscrits dans cette structure.Avec <strong>les</strong> structures <strong>de</strong> traits typés, <strong>les</strong> schémas <strong>de</strong> dominance immédiate et <strong>les</strong> principesforment <strong>les</strong> trois briques généra<strong>les</strong> <strong>de</strong> HPSG.Les schémas <strong>de</strong> dominance immédiate correspon<strong>de</strong>nt à <strong>de</strong>s types <strong>de</strong> construction <strong>de</strong>syntagmes génériques basés sur <strong>les</strong> traits <strong>de</strong>s syntagmes et non sur <strong>les</strong> syntagmes euxmêmes.Ils sont nommés « <strong>de</strong> dominance immédiate » car ils caractérisent <strong>les</strong> relationsqu’entretient un signe (syntagme ou mot) avec ses fils directs (fils tête, comps, marqueur,adjoint, ...).Les Principes ont une portée ”universelle”. Ces principes sont <strong>de</strong>s contraintes que certainstypes <strong>de</strong> structures doivent vérifier. Ils assurent une bonne formation <strong>de</strong>s syntagmeset permettent la complétion <strong>de</strong>s données manquantes, par unification. Par exemple, i<strong>les</strong>t tout à fait possible d’analyser une phrase partielle comme possè<strong>de</strong> <strong>de</strong>ux disques dursen générant une structure qui attend un sujet pour former une phrase.8 Une structure <strong>de</strong> traits s 1 est fille d’une structure <strong>de</strong> trait s 2 lorsque s 1 apparaît comme valeur d’untrait <strong>de</strong> s 2 ou d’une <strong>de</strong> ses structures <strong>de</strong> traits fil<strong>les</strong>. s 2 est appellée structure <strong>de</strong> trait père <strong>de</strong> s 1.- 25 -


2 : Etat <strong>de</strong> l’art2.1.5 Les <strong>grammaires</strong> <strong>de</strong> propriétés (GP)Les <strong>grammaires</strong> <strong>de</strong> propriétés[10, 11](GP par la suite) ont été définies et sont maintenuesau Laboratoire Parole et Langages d’Aix en Provence. Cette théorie s’exprimeexclusivement à base <strong>de</strong> contraintes. Les variab<strong>les</strong> proposées sont nommées catégorieset servent à représenter <strong>les</strong> étiquettes syntaxiques attachab<strong>les</strong> à chaque mot ou groupe<strong>de</strong> mots. Les contraintes, nommées propriétés, portent sur ces catégories.Les catégoriesLes catégories sont <strong>les</strong> variab<strong>les</strong> du formalisme utilisé. El<strong>les</strong> sont représentées par <strong>de</strong>sstructures <strong>de</strong> traits. Ces structures contiennent à la fois <strong>les</strong> attributs « classiques » <strong>de</strong>séléments <strong>de</strong> la langue, comme le trait d’accord, mais également un trait complexe quiexprime l’ensemble <strong>de</strong>s propriétés attachées à cette catégorie. La figure 2.8 représentela catégorie SN pouvant représenter un syntagme nominal.2traitsSNprops64"#3genre fem ;mascnombre sing ;plur23têteN ;Profacultativité Det ;SAdjunicité Det ;SAdjexigence Det ⇒ Nexclusion SAdj ProDet Prolinéarite Det ≺ N64accordN.gen ≡ Det.gen75N.nb ≡ Det.nbFig. 2.8 – AVM représentant un SNLes propriétésLes propriétés sont <strong>de</strong>s contraintes sur <strong>les</strong> catégories. Sept propriétés principa<strong>les</strong> permettant<strong>de</strong> traiter la syntaxe sont détaillées dans [10]. La théorie n’exclut cependant pas laspécification <strong>de</strong> nouvel<strong>les</strong> propriétés si el<strong>les</strong> sont nécessaires et justifiées. El<strong>les</strong> peuventêtre utilisées pour inclure, par exemple, le traitement <strong>de</strong> la sémantique dans la formalisation.D’autre part il est possible <strong>de</strong> proposer <strong>de</strong>s <strong>grammaires</strong> ne contenant qu’unsous-ensemble <strong>de</strong> ces propriétés. La figure 2.8 nous servira <strong>de</strong> support pour illustrer <strong>les</strong>propriétés listées ci-<strong>de</strong>ssous.– Tête :Une tête est obligatoire et unique dans un syntagme. La propriété <strong>de</strong> tête définitl’ensemble <strong>de</strong>s éléments pouvant être tête dans le syntagme traité. La tête estl’élément qui dirige le syntagme. Par exemple, dans un SN nous pouvons préciserque seul un N ou un Pro peuvent être tête. Cette contrainte se présente sous laforme : tête(SN) ∈ {N,Pro}.- 26 -


2 : Etat <strong>de</strong> l’art– Facultativité :La propriété <strong>de</strong> facultativité définit l’ensemble <strong>de</strong>s catégories pouvant être présentesdans un syntagme et n’étant pas une tête. Par exemple, <strong>les</strong> <strong>de</strong>ux catégories Detet SAdj sont optionnel<strong>les</strong> dans un SN. Cette contrainte est notée : facult(SN) ={Det,SAdj}– Unicité :Cette propriété définit l’ensemble <strong>de</strong>s catégories facultatives qui ne peuvent pasapparaître plus d’une fois. Pour l’exemple du SN, seulement un Det et seulementun Adj peuvent être présents : uniq(SN) = {Det, SAdj}– Exigence :Cette contrainte est exprimée avec le symbole ⇒ : {A 1 , A 2 , ..., A n } ⇒ {B 1 , B 2 , ..., B m }où <strong>les</strong> A i sont <strong>de</strong>s catégories et <strong>les</strong> B j <strong>de</strong>s ensemb<strong>les</strong> <strong>de</strong> catégories. Cette propriétésignifie que si tous <strong>les</strong> éléments A i sont présents dans le syntagme alors au moinsun sous-ensemble B j doit être présent. Dans l’exemple du SN, la présence d’undéterminant oblige la tête à être <strong>de</strong> type N .– Exclusion :Cette contrainte est notée A B où A et B sont <strong>de</strong>s ensemb<strong>les</strong> <strong>de</strong> catégories.Cette propriété définit l’obligation <strong>de</strong> non co-occurrence entre tous <strong>les</strong> éléments<strong>de</strong> A et tous ceux <strong>de</strong> B.– Linéarité :Cette propriété est notée A ≺ B et permet <strong>de</strong> définir la précé<strong>de</strong>nce linéaire entre<strong>les</strong> éléments d’un syntagme. A et B représentent <strong>de</strong>s ensemb<strong>les</strong> <strong>de</strong> catégories. Lapropriété <strong>de</strong> linéarité signifie que chaque élément <strong>de</strong> l’ensemble A présent dans <strong>les</strong>yntagme doit apparaître avant tout élément <strong>de</strong> B également présent.– Accord 9 :Cette contrainte porte sur l’accord <strong>de</strong>s catégories au sein d’un même syntagme.2.2 La <strong>configuration</strong>2.2.1 Présentation <strong>de</strong> la <strong>configuration</strong>Hélène Fargier et <strong>Laurent</strong> <strong>Henocque</strong> proposent dans [28] une définition générale <strong>de</strong>la <strong>configuration</strong> : « Configurer consiste à simuler la réalisation d’un produit complexe àpartir <strong>de</strong> composants choisis dans un catalogue <strong>de</strong> types ». Daniel Mailharro dans [46]complète cette définition en spécifiant <strong>les</strong> interconnections <strong>de</strong>s composants et va plusen avant dans leur spécification : « La <strong>configuration</strong> d’un produit est un ensemble <strong>de</strong>composants inter-connectés choisis parmi un ensemble prédéfini <strong>de</strong> types <strong>de</strong> composants,appelé le catalogue <strong>de</strong>s types <strong>de</strong> composants. Chaque type <strong>de</strong> composants est défini parun ensemble d’attributs qui décrivent ses caractéristiques internes, un ensemble <strong>de</strong> ports<strong>de</strong> connections qui décrivent ses relations avec <strong>les</strong> autres composants et un ensemble <strong>de</strong>contraintes sur ses attributs et ses ports. Les contraintes décrivent <strong>les</strong> restrictions <strong>de</strong>9 La propriété d’accord est transcrite dans [11] par une propriété plus générale nommée propriété <strong>de</strong>dépendance.- 27 -


2 : Etat <strong>de</strong> l’artcompatibilités <strong>de</strong> connections entre composants, <strong>les</strong> limitations <strong>de</strong> types production/consommation<strong>de</strong> ressources, <strong>les</strong> conditions d’existence, etc. . . ».La <strong>configuration</strong> peut ainsi être vue comme une extension <strong>de</strong>s problèmes <strong>de</strong> satisfaction<strong>de</strong> contraintes (CSP) dans <strong>les</strong>quels <strong>les</strong> variab<strong>les</strong> et <strong>les</strong> contraintes sont ensemblisteset où l’instanciation <strong>de</strong> toutes <strong>les</strong> variab<strong>les</strong> n’est pas systématique. La solution d’unproblème <strong>de</strong> <strong>configuration</strong> est un produit satisfaisant à la fois <strong>les</strong> contraintes généra<strong>les</strong><strong>de</strong> réalisation et <strong>les</strong> contraintes et objectifs particuliers <strong>de</strong> l’utilisateur. Ce produit peutêtre totalement ou seulement partiellement instancié. Lorsqu’un problème <strong>de</strong> <strong>configuration</strong>n’admet pas <strong>de</strong> solution, il peut être intéressant d’expliquer pourquoi en donnant,par exemple, un ensemble minimal <strong>de</strong> contraintes contradictoires.Un problème <strong>de</strong> <strong>configuration</strong> s’apparente à un problème <strong>de</strong> la logique <strong>de</strong>s prédicats.En effet, chercher une solution contenant au moins un composant <strong>de</strong> tel type requiertun quantificateur existentiel <strong>de</strong> la logique <strong>de</strong>s prédicats. A partir <strong>de</strong> cette constatation,[28] pose le problème <strong>de</strong> l’indécidabilité <strong>de</strong> ces problèmes dans l’absolu. Différentslangages ont été proposés pour traiter la <strong>configuration</strong>, notamment CLP (ConstraintLogic Programming) basé sur le formalisme Prolog [15] et le chaînage arrière, ou encore<strong>les</strong> modè<strong>les</strong> stab<strong>les</strong> [32], qui peuvent être combinés aux règ<strong>les</strong> pondérées (« Weightedru<strong>les</strong> ») [56].D’autre part, le cadre <strong>de</strong>s CSP (Constraint Satisfaction Problem) a été étendu pourprendre en compte l’aspect dynamique intrinsèque aux problèmes <strong>de</strong> <strong>configuration</strong>. Ainsi<strong>les</strong> DCSP (Dynamic CSP) [2], <strong>les</strong> CSP génératifs [30, 60], <strong>les</strong> CSP stucturaux [1] ou <strong>les</strong>CSP composites [55] sont autant d’approches capturant <strong>les</strong> composants non utilisés lors<strong>de</strong> l’élaboration du modèle et permettant un traitement ensembliste, techniques nonimplémentées dans <strong>les</strong> CSP « classiques ».La résolution technique d’une requête dans le cadre d’un problème <strong>de</strong> <strong>configuration</strong>peut également utiliser <strong>de</strong>s approches basées sur la connaissance [59] ou <strong>les</strong> logiquesterminologiques [49].Ces métho<strong>de</strong>s <strong>de</strong> résolution <strong>de</strong> problèmes <strong>de</strong> <strong>configuration</strong> sont présentés dans [28]qui fait le point sur <strong>les</strong> différentes approches <strong>de</strong> la <strong>configuration</strong>. L’approche qui sembleêtre la plus appropriée est apparue lorsque <strong>les</strong> langages orientés objet se sont développés.La <strong>configuration</strong> orientée objet [46] mélange <strong>les</strong> concepts <strong>de</strong>s CSP et ceux <strong>de</strong>s paradigmesorientés objet. Elle possè<strong>de</strong> l’avantage <strong>de</strong> représenter plus facilement <strong>les</strong> composants dumodèle générique et procure la dynamique nécessaire à leur traitement.2.2.2 La <strong>configuration</strong> orientée objetLa figure 2.9 est une représentation graphique d’un modèle générique <strong>de</strong> PC : unPC comprend une carte mère, une alimentation, un écran et un ou plusieurs disquesdurs. La carte mère supporte un ou plusieurs processeurs ainsi qu’une ou plusieurs barrettes<strong>de</strong> mémoire. Chaque composant cité ci-<strong>de</strong>ssus est une classe du domaine traité(ici un environnement matériel informatique). Chaque classe peut contenir <strong>de</strong>s attributscaractérisant <strong>de</strong>s données particulières (energieconsommee est un attribut <strong>de</strong> la classeConsommateurDEnergie dont le domaine est ). Les classes sont liées entre el<strong>les</strong> par<strong>de</strong>s relations. Toutes ces liaisons ne sont pas <strong>les</strong> mêmes, par exemple, sur ce diagramme,- 28 -


2 : Etat <strong>de</strong> l’artFig. 2.9 – Un exemple <strong>de</strong> <strong>configuration</strong> - Modèle générique d’un PCla classe « ConsommateurDEnergie » possè<strong>de</strong> cinq liaisons particulières aux composants« Ecran, DisqueDur, Processeur, Ram » et « CarteMere ». Ce sont <strong>de</strong>s relationsd’héritage. El<strong>les</strong> permettent <strong>de</strong> factoriser <strong>les</strong> éléments communs à un ensemble <strong>de</strong> composants.Pour notre exemple, toute pièce hérite <strong>de</strong> l’attribut « energieConsommee ». Lareprésentation est allégée puisque cet attribut ne réapparait pas dans la représentation<strong>de</strong>s classes fil<strong>les</strong>. Les autres relations sont <strong>de</strong>s relations ensemblistes aux cardinalitésexplicites entre <strong>les</strong> différents composants. Toute classe supporte <strong>de</strong>s contraintes décritesséparément et d’ajouter <strong>les</strong> contraintes <strong>de</strong> l’utilisateur.Les contraintes <strong>de</strong> l’utilisateur sont <strong>de</strong> <strong>de</strong>ux sortes. Les premières sont un type <strong>de</strong>contraintes fortes correspondantes aux spécifications obligatoires que l’utilisateur veutvoir satisfaites pour le produit final. Ces contraintes sont appelées contraintes spécifiques.Les secon<strong>de</strong>s forment un ensemble <strong>de</strong> contraintes plus soup<strong>les</strong> et pouvant être violées. Cescontraintes représentent <strong>les</strong> souhaits <strong>de</strong> l’utilisateur mais en aucun cas une nécessité. El<strong>les</strong>ont également nommées préférences. Le configurateur doit donc essayer <strong>de</strong> satisfaire aumaximum ces contraintes sans aller à l’encontre <strong>de</strong>s contraintes structurel<strong>les</strong> (génériques)et spécifiques. U.Junker dans [39] et [40] propose <strong>de</strong>s stratégies <strong>de</strong> recherche <strong>de</strong> « bonne »décision pour le choix <strong>de</strong>s préférences à satisfaire (ou à enfreindre). Pour notre exemple,représenté en figure 2.9, <strong>les</strong> préférences peuvent être du type : « choisir un disque durSCSI <strong>de</strong> préférence à un disque dur IDE ». Cependant, si la seule carte mère disponible,à cause <strong>de</strong>s contraintes structurel<strong>les</strong>, ne supporte pas le SCSI, cette requête <strong>de</strong>vra resterinsatisfaite.Cette approche est, à notre connaissance, la plus appropriée au traitement <strong>de</strong>sproblèmes <strong>de</strong> <strong>configuration</strong>. C’est pourquoi nous nous plaçons dans ce formalisme pour- 29 -


2 : Etat <strong>de</strong> l’artrésoudre <strong>les</strong> problèmes issus <strong>de</strong> la linguistique que nous montrerons équivalents à <strong>de</strong>sproblèmes <strong>de</strong> <strong>configuration</strong>. Nous nous servirons du logiciel ”Jconfigurator” [46, 41] <strong>de</strong> lasociété Ilog pour nos expérimentations dans le cadre <strong>de</strong> l’analyse syntaxico-sémantique<strong>de</strong> <strong>de</strong>scription.- 30 -


Chapitre 3Les Modè<strong>les</strong> Objet Contraints :formalisme et formalisationL’objectif <strong>de</strong> ce chapitre est <strong>de</strong> proposer tout d’abord une représentation formelle <strong>de</strong>smodè<strong>les</strong> objet contraints puis <strong>de</strong> décrire formellement leur résolution afin d’assurer lareproductibilité <strong>de</strong>s résultats présentés dans cette thèse. Le langage <strong>de</strong> spécification choisiest le langage Z [58] 1 . Les diagrammes <strong>de</strong> classes UML2[35] 2 seront mis en relation avec lareprésentation proposée pour fournir une meilleure lisibilité. Cependant leur utilisationn’est pas une nécessité mais fournit un confort <strong>de</strong> lecture et une représentation utilisablepar d’autres applications. Nous poursuivons ici <strong>les</strong> travaux <strong>de</strong> <strong>Laurent</strong> <strong>Henocque</strong> dans[36] où il propose une première métho<strong>de</strong> <strong>de</strong> formalisation reposant sur l’utilisation <strong>de</strong>sschémas <strong>de</strong> Z [58]. Ces travaux mènent à l’utilisation d’une combinaison <strong>de</strong> UML2[35]et <strong>de</strong> Z pour représenter <strong>les</strong> modè<strong>les</strong> objet contraints.3.1 Représentation formelle <strong>de</strong>s modè<strong>les</strong> objet contraintsLes modè<strong>les</strong> objet contraints permettent <strong>de</strong> représenter <strong>de</strong>s problèmes où interviennent<strong>de</strong>s variab<strong>les</strong> ensemblistes ainsi que <strong>de</strong>s contraintes sur ces ensemb<strong>les</strong> et dans<strong>les</strong>quels certaines variab<strong>les</strong> peuvent ne pas participer à la solution.Définition 2 (Modèle Objet Contraint) Un modèle objet contraint est un ensemble<strong>de</strong> classes et <strong>de</strong> relations entre ces classes dont <strong>les</strong> règ<strong>les</strong> <strong>de</strong> bonne formation sont expriméespar <strong>de</strong>s contraintes.Définition 3 (Classe) Une classe définit <strong>les</strong> propriétés communes à un ensemble d’objetsDéfinition 4 (Relation) Une relation entre <strong>de</strong>ux classes est un ensemble <strong>de</strong> coup<strong>les</strong>d’objets appartenant respectivement à chacune <strong>de</strong>s <strong>de</strong>ux classes.1 Nous renvoyons le lecteur non familier au langage Z à ce livre disponible électroniquement à l’adressehttp ://spivey.oriel.ox.ac.uk/mike/zrm/in<strong>de</strong>x.html2 Une large documentation sur UML est disponible sur le site <strong>de</strong> l’OMG et plus particulièrement àl’adresse http ://www.omg.org/technology/documents/formal/uml.htm- 31 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationNous présentons dans un premier temps <strong>les</strong> modè<strong>les</strong> objet , la définition <strong>de</strong> contraintesera donnée dans la section 3.2.3.1.1 Les types Objet et ClasseLe type le plus général est Objet. Ce type est non interprété, c’est à dire qu’aucunesémantique n’y est associée naturellement. La section 3.3 présente une interprétation <strong>de</strong>ce type. La déclaration d’un type non-interprété en Z se fait <strong>de</strong> la manière suivante :[Objet]Classe est l’ensemble <strong>de</strong>s sous-ensemb<strong>les</strong> finis <strong>de</strong> [Objet] :Classe == ObjetUne classe A est définie comme un élément <strong>de</strong> l’ensemble Classe.A : ClasseLa figure3.1 représente la modélisation UML d’une telle classe.Fig. 3.1 – Représentation UML2 <strong>de</strong> la classe A3.1.2 Les attributs <strong>de</strong> classeUn attribut <strong>de</strong> classe est une variable locale à la classe prenant ses valeurs dans <strong>de</strong>sensemb<strong>les</strong> possiblement infinis d’entiers (,) ou <strong>de</strong> chaînes <strong>de</strong> caractères (String). Letype String est un type non-interprété définit comme le type Objet ci-<strong>de</strong>ssus.[String]Un attribut <strong>de</strong> classe est décrit par une fonction définie sur la classe à laquelle il estassocié et à valeurs dans , ou String (dom représente ici le domaine <strong>de</strong> valeur <strong>de</strong>l’attribut) :att : A " domUML2 décrit <strong>les</strong> attributs <strong>de</strong> classe dans le corps <strong>de</strong> la classe comme présenté sur lafigure 3.2.- 32 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationFig. 3.2 – Une classe contenant un attribut3.1.3 Les relationsLa notation Z pour une relation ArelB liant <strong>de</strong>ux classes A et B quelconques est lasuivante :ArelB : A # BArelB est un ensemble <strong>de</strong> coup<strong>les</strong> d’objets a <strong>de</strong> type A et b <strong>de</strong> type B : A # B =(A × B).Rô<strong>les</strong>La définition d’une relation peut être complétée par la définition <strong>de</strong> <strong>de</strong>ux rô<strong>les</strong>. Unrôle définit à partir d’un élément a <strong>de</strong> type A l’ensemble <strong>de</strong>s éléments <strong>de</strong> type B enrelation avec a par la relation précé<strong>de</strong>nte.Définition 5 (Rôle) Etant données <strong>de</strong>ux classes A et B et ArelB une relation entreces classes, <strong>les</strong> rô<strong>les</strong>, notés arbitrairement roleAB et roleBA sont définis par :roleAB : A " B∀ a : A • roleAB(a) = ArelB{a}roleBA : B " A∀ b : B • roleBA(b) = ArelB{b} est l’opérateur d’image relationnelle. Pour la relation ArelB et unOù l’opérateurélément a <strong>de</strong> type A, ArelB{a} est l’ensemble B <strong>de</strong>s objets <strong>de</strong> type B tels que ∀ b ∈B, (a, b) ∈ ArelB.La classe sur laquelle est projetée la relation est dit classe source du rôle, la secon<strong>de</strong> estdite classe cible du rôle.Cette définition permet <strong>de</strong> donner <strong>de</strong>s détails sur la lecture <strong>de</strong>s prédicats en notationZ . Un prédicat est exprimé sous la formeQvar[| restriction] • predicat- 33 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationCardinalité d’un rôleIl est possible <strong>de</strong> compter pour chaque élément d’une classe source le nombre d’élémentslui étant associés par un rôle. L’opérateur <strong>de</strong> cardinalité d’un ensemble est le #. Ainsipour tout élément a d’une classe source A d’un rôle roleAB, le nombre d’éléments associésà a par ce rôle est : #roleAB(a). La contrainte suivante force tout objet a <strong>de</strong>type A à être associé à au moins x et au plus y objets <strong>de</strong> type B :∀ a : A • x ≤ #(roleAB(a)) ≤ yLa cardinalité du rôle roleBA se définit <strong>de</strong> la même manière (en la supposant compriseentre x’ et y’) :∀ b : B • x ′ ≤ #(roleBA(b)) ≤ y ′La relation que nous venons <strong>de</strong> définir est une relation d’association du paradigmeorienté objet. La notation UML2 pour ces relations est présentée sur la figure 3.3.Fig. 3.3 – Notation UML2 <strong>de</strong> la relation d’associationRelation <strong>de</strong> CompositionUne relation <strong>de</strong> composition est plus contrainte que la relation d’association. Toutobjet <strong>de</strong> la classe cible intervenant dans la relation ne peut pas être partagé par <strong>de</strong>uxobjets différents <strong>de</strong> la classe source, cette propriété est nommée propriété d’exclusivité.La cardinalité côté source ne peut être que 0..1 ou 1..1 (noté également 1). Les relations<strong>de</strong> composition sont définies par <strong>de</strong>s fonctions. Soient <strong>de</strong>ux classes C et D,C : ClasseD : Classetel<strong>les</strong> que C soit composée <strong>de</strong> au minimum x et au maximum y objets <strong>de</strong> type D,CcompoD : C " D∀ c : C • x ≤ #(CcompoD(c)) ≤ yLa cible d’une relation <strong>de</strong> composition ne peut pas être partagée par plusieurs sources,ceci se traduit par la définition <strong>de</strong> la fonction partielle CcompoDrev inverse <strong>de</strong> CcompoD :- 34 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationCcompoDrev : D C∀ c : C ; d : D • d ∈ CcompoD(c) ⇔ c = CcompoDrev(d)CcompoDrev étant une fonction partielle, si elle possè<strong>de</strong> une image dans C alors celle-ciest unique. CcompoDrev assure ainsi la propriété d’exclusivité <strong>de</strong> la relation <strong>de</strong> compositionCcompoD.La figure 3.4 représente la relation <strong>de</strong> composition entre <strong>les</strong> classes C et D sous lanotation UML2. Le losange plein se situe du côté <strong>de</strong> la classe source <strong>de</strong> la relation.Fig. 3.4 – Notation UML2 <strong>de</strong> la relation <strong>de</strong> compositionLorsque <strong>les</strong> relations d’association ou <strong>de</strong> composition possè<strong>de</strong> une cardinalité d’exactement1, il est conseiller d’utiliser à la place <strong>de</strong> la combinaison, fonction injective versun ensemble <strong>de</strong> parties, plus contraintes <strong>de</strong> cardinalité (=1), une fonction injective versla classe cible. Par exemple si la relation <strong>de</strong> composition CcompoD présentée ci-<strong>de</strong>ssuspossè<strong>de</strong> une cardinalité d’exactement 1, plutôt que <strong>de</strong> la noter comme précé<strong>de</strong>ment, onpeut écrire :etCcompoD : C " DCcompoDrev == CcompoD ∼Relation d’HéritageLes relations d’héritage permettent <strong>de</strong> spécifier <strong>de</strong>s caractéristiques communes à unensemble <strong>de</strong> classes sans avoir à redéfinir ces caractéristiques pour chacune d’entre el<strong>les</strong>.Nous utilisons <strong>de</strong>s ensemb<strong>les</strong> d’objets pour représenter <strong>les</strong> classes, la relation d’héritageest donc traduite par le fait que l’ensemble d’objets appartenant à la classe fille est inclusdans l’ensemble d’objets représentant la classe mère. Supposons que la classe A définiedans la section 3.1.3 hérite <strong>de</strong> la classe C définie ci-<strong>de</strong>ssus. Cette relation sera décriteainsi :A ⊆ CSi <strong>de</strong>ux classes héritent d’une même classe mère, <strong>les</strong> <strong>de</strong>ux ensemb<strong>les</strong> doivent être disjoints.Par exemple, si la classe B définie dans la section 3.1.3 hérite elle aussi <strong>de</strong> la- 35 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationclasse C , il faut préciser que <strong>les</strong> <strong>de</strong>ux ensemb<strong>les</strong> d’objets représentant respectivement<strong>les</strong> classes A et B sont disjoints :B ⊆ Cdisjoint 〈A, B〉La notation UML <strong>de</strong>s relations d’héritage est présentée sur la figure 3.5 où <strong>les</strong> classes Aet B héritent <strong>de</strong> la classe C . Dans la plupart <strong>de</strong>s modè<strong>les</strong> objet que nous utilisons, seu<strong>les</strong>Fig. 3.5 – Relation d’héritage : A et B héritent <strong>de</strong> C<strong>les</strong> feuil<strong>les</strong> <strong>de</strong>s hiérarchies <strong>de</strong> types sont utilisées et <strong>les</strong> classes <strong>de</strong> rangs supérieurs (<strong>les</strong>classes mères) sont dites abstraites et ne peuvent pas contenir d’objets. Cette notion estdéfinie par l’opérateur partition. Dans le cas <strong>de</strong> notre exemple où A et B héritent <strong>de</strong>C , si C est abstraite et que <strong>les</strong> classes A et B sont termina<strong>les</strong> nous <strong>de</strong>vons écrire :〈A, B〉 partition CNous venons <strong>de</strong> définir formellement le modèle objet générique, support <strong>de</strong>s modè<strong>les</strong>objet contraints à l’ai<strong>de</strong> du langage <strong>de</strong> spécification Z . Nous avons <strong>de</strong> plus montréque tous ces modè<strong>les</strong> pouvaient se représenter par <strong>de</strong>s diagrammes <strong>de</strong> classes UML2.Cependant nous n’utilisons pas toutes <strong>les</strong> relations présentes dans UML2, comme larelation d’aggrégation par exemple. De plus <strong>les</strong> relation UML2 peuvent être n-aire tandisque nous nous limitons aux relations binaires. Nous rappelons que l’utilisation <strong>de</strong> UML2n’est pas une nécessité. Dans la suite du document nous considèrerons comme connus<strong>les</strong> types <strong>de</strong> bases (entiers et chaînes <strong>de</strong> caractères).3.2 Les contraintesIl n’existe pas <strong>de</strong> formalisme spécifique défini pour <strong>les</strong> modè<strong>les</strong> objet contraints. Ducôté <strong>de</strong> la modélisation orientée objet UML2, l’OMG 3 a proposé le langage OCL 4 pour3 Object Management Group - http ://www.omg.org4 Object Constraints Language - Dernière version : http ://www.omg.org/docs/ptc/03-10-14.pdf- 36 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationaugmenter le pouvoir expressif <strong>de</strong>s modè<strong>les</strong> objet représentés en UML2. Cependant,ce langage reste moins expressif qu’un langage formel. L’approche que nous proposonspour représenter <strong>les</strong> contraintes repose <strong>de</strong> nouveau sur le langage <strong>de</strong> spécification Z .L’avantage <strong>de</strong> ce choix est triple : (1) le langage Z est au moins aussi expressif quela logique <strong>de</strong>s prédicats et fournit une gran<strong>de</strong> liberté d’expression, (2) son caractèreformel assure la reproductibilité <strong>de</strong>s résultats et (3) ce choix constitue une propositiond’uniformisation <strong>de</strong>s représentations <strong>de</strong>s modè<strong>les</strong> objet contraints afin <strong>de</strong> faciliter <strong>les</strong>échanges au sein <strong>de</strong> la communauté.Une contrainte est exprimée par un prédicat du langage Z (Predicate [58], p.67)sur <strong>de</strong>s éléments <strong>de</strong> type , , String,Objet, Objet et [|Objet |].Les opérations classiques sur <strong>les</strong> entiers (+, −, ...,


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisation[U , X ]. : (U × (U # X )) " X. : (U × (U " X )) " X→ : ( U × (U # X )) " X→ : ( U × (U " X )) " X→ : ( U × ( U " X )) " X : ( U × (U # X )) " bag X : ( U × (U " X )) " bag X∀ e1 : U ; e2 : (U " X ) • e1.e2 = e2(e1)∀ e1 : U ; e2 : (U # X ) • e1.e2 = e2{e1}∀ e1 : U ; e2 : (U " X ) • e1 → e2 ={x : U | x ∈ e1 • e2(x)}∀ e1 : U ; e2 : (U # X ) • e1 → e2 = e2e1∀ e1 : U ; e2 : ( U " X ) • e1 → e2 = e2(e1)∀ f : U " X • f = ∀ f : U " X ; s : 1U • ∀ u : s • s f = (s \ {u}) f ⊎ f (u)∀ f : U # X • f = ∀ f : U # X ; s : 1U • ∀ u : s • s f = (s \ {u}) f ⊎ {x : X | (u, x) ∈ f • x ↦→ 1}Fig. 3.6 – Définitions <strong>de</strong>s opérateurs <strong>de</strong> dé-référencementbagsum : ( " ) " bagsum() = 0∀ b : " • ∀ x : dom b • bagsum(b) = x ∗ b(x) + bagsum(b ! {x ↦→ b(x)})Le symbole ! est l’opérateur <strong>de</strong> différence pour <strong>les</strong> bags([58] p.126) qui signifie quel’ensemble formé du couple (x, b(x)) est retiré du bag b. Par exemple, soit le modèleobjet <strong>de</strong> la figure 3.7 et la contrainte spécifiant que pour toute carte mère, la somme <strong>de</strong>scapacités <strong>de</strong>s barettes <strong>de</strong> mémoire doit être supérieure ou égale à 512. Cette contraintes’exprime <strong>de</strong> la manière suivante :∀ cm : CarteMere • bagsum(cm.ram capacite) ≥ 512cette contrainte peut également s’écrire avec l’opérateur → défini sur la figure 3.6.∀ cm : CarteMere • (cm.ram capacite) → bagsum ≥ 512L’expression cm.ram représente l’ensemble <strong>de</strong>s éléments <strong>de</strong> type Ram liés à l’objetcm par le rôle cmRam. L’application <strong>de</strong> l’opérateur <strong>de</strong> dé-réfencement à cet ensemblecrée le bag composé <strong>de</strong>s coup<strong>les</strong> (valeur <strong>de</strong> l’attribut capacite,nombre d’occurrences <strong>de</strong>cette valeur dans le bag).- 38 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationFig. 3.7 – Sous-modèle objet du PC3.2.3 Une modélisation formelle adaptéeLa modélisation proposée permet <strong>de</strong> représenter le modèle objet <strong>de</strong> manière graphiquedans un standard du domaine (UML2) afin <strong>de</strong> faciliter la lecture et l’ouverturevers d’autres métho<strong>de</strong>s tout en gardant l’avantage d’une représentation formelle. Deplus la formalisation <strong>de</strong>s contraintes grâce au langage Z dispose d’une puissance expressivesuffisante pour <strong>les</strong> types <strong>de</strong> problèmes que traitent <strong>les</strong> modè<strong>les</strong> objet contraints.Un sous-ensemble d’objets est une solution d’un modèle objet contraint lorsqu’aucunecontrainte n’est violée par cet ensemble. Une métho<strong>de</strong> pour la résolution d’un modèleobjet contraint est la recherche arborescente <strong>de</strong> modè<strong>les</strong> finis.3.3 Sémantique <strong>de</strong> type modè<strong>les</strong> finisDéfinition 6 (Modèle fini) Un modèle fini est un ensemble fini d’objets satisfiantl’ensemble <strong>de</strong>s contraintes définies sur ces objets.Définition 7 (Satisfaction <strong>de</strong> contrainte) Une contrainte ct est dite satisfaite sison interprétation I est vraie (I( ct) = true).Toute contrainte est exprimée sous la forme d’un prédicat, une contrainte est doncsatisfaite si le prédicat la définissant est satisfait.3.3.1 InterprétationLes contraintes disposent <strong>de</strong> l’interprétation définie par la notation Z elle même.Cette interprétation est celle <strong>de</strong> la logique <strong>de</strong>s prédicats. L’interprétation d’un modèleobjet contraint sera, par analogie à celle-ci, notée I . Nous détaillons l’interprétation <strong>de</strong>séléments que nous avons introduits, <strong>les</strong> Objets, <strong>les</strong> String, <strong>les</strong> Classes, <strong>les</strong> attributs et <strong>les</strong>relations.Interprétation <strong>de</strong> Objet, <strong>de</strong> String et <strong>de</strong> ClasseI projette <strong>les</strong> types non interprétés sur un ensemble fini d’entiers. Tous <strong>les</strong> objetssont distincts <strong>de</strong>ux à <strong>de</strong>ux. La fonction d’interprétation associe à tout élément <strong>de</strong> typeObjet un entier naturel différent. Cette fonction est injective (le symbole inj représenteune fonction injective).- 39 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationI : Objet De même, tout élément <strong>de</strong> type String est interprété comme un entier.I : String L’interprétation d’un nombre entier est le nombre entier lui-même :∀ n : • I (n) = n.Les interprétations <strong>de</strong>s autres éléments découlent naturellement <strong>de</strong> I : Par définition,toute Classe est un ensemble fini d’Objets et IClass associe à tout élément <strong>de</strong> ce typeun ensemble d’entiers.IClass : Classe ∀ c : Classe • IClass(c) = Icoù est l’opérateur d’image relationnelle ([58] p.101). L’image relationnelle RS d’unensemble S sur une relation R est l’ensemble <strong>de</strong> tous <strong>les</strong> objets y tels que (x, y) ∈ R,pour x ∈ S.Interprétation <strong>de</strong>s attributsTout attribut est interprété comme un couple (entier interprétant l’objet, interprétation<strong>de</strong> la valeur d’attribut)Attribut <strong>de</strong> type entier :IAtt : (Objet " ) ( × )∀ att : (Objet " ) • IAtt(att) = ⋃ {o : Objet | o ∈ dom att • {(I (o), att(o))}}Attribut <strong>de</strong> type String :IAttString : (Objet " String) ( × )∀ att : (Objet " String) • IAttString(att) =⋃ {o : Objet | o ∈ dom att • {(I (o), I (att(o)))}}Interprétation <strong>de</strong>s relations d’associationToute relation d’association est interprétée comme un ensemble <strong>de</strong> coup<strong>les</strong> d’entiers.Irel : (Objet # Objet) ( × )∀ rel : (Objet # Objet) •Irel(rel) =⋃ {o1 , o 2 : Objet | (o 1 , o 2 ) ∈ rel • {(I (o 1 ), I (o 2 ))}}- 40 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationInterprétation <strong>de</strong>s rô<strong>les</strong> et <strong>de</strong>s relations <strong>de</strong> compositionTout rôle est interprété comme un ensemble <strong>de</strong> coup<strong>les</strong> d’entiers et d’ensemble d’entiers.Irole : (Objet " Objet) ( × )∀ role : (Objet " Objet) •Irole(role) = ⋃ {o : Objet | o ∈ dom role • {(I (o), I{o})}}Interprétation <strong>de</strong>s relations <strong>de</strong> compositionUne relation <strong>de</strong> composition comme un rôle est une fonction associant un ensembled’objets à un objet, leurs interprétations sont <strong>de</strong> même type. La fonction partielle inversed’une relation <strong>de</strong> composition est égale à un ensemble <strong>de</strong> coup<strong>les</strong> d’entiers.Irev : (Objet Objet) ( × )∀ comporev : Objet Objet •Irev(comporev) = ⋃ {o : Objet | o ∈ dom comporev • {(I (o), I (comporev(o)))}}A partir <strong>de</strong>s interprétations données ci-<strong>de</strong>ssus et <strong>de</strong> l’interprétation <strong>de</strong>s prédicats,nous disposons d’une interprétation totale d’un modèle objet contraint. Nous présentonsci-après un exemple d’interprétation pour un modèle objet contraint très simple, issudu modèle objet utilisé pour présenter la <strong>configuration</strong> dans l’état <strong>de</strong> l’art. Une interprétationsatisfaisant toutes <strong>les</strong> contraintes d’un modèle objet contraint est nomméeune instance <strong>de</strong> celui-ci.3.3.2 Un exemple d’instanceSoit le modèle objet représenté sur la figure 3.8 (sous modèle objet <strong>de</strong> la figure 2.9<strong>de</strong> la section 2.2.2) et l’ensemble <strong>de</strong> contraintes suivant :Fig. 3.8 – Modèle objet d’une carte mère et <strong>de</strong> ses composants- 41 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisation∀ cm : CarteMere ; r : Ram | r ∈ cm.ram • cm.typeRam = r.type∀ cm : CarteMere ; r : Ram ; p : Processeur| r ∈ cm.ram ∧ p ∈ cm.processeur• cm.prixTotal =cm.prix + bagsum((cm.ram) prix) + bagsum((cm.processeur) prix)∀ cm : CarteMere | #(cm.processeur) = 2 •∀ p 1 , p 2 : Processeur | p 1 ∈ cm.processeur ∧ p 2 ∈ cm.processeur •p 1 .vitesse = p 2 .vitesseSoit l’ensemble d’objets fini E f suivant : E f = {cm 1 : CarteMere, p 1 : Processeur, r 1 :Ram} tel que1. cm 1 .ram = {r 1 }, cm 1 .processeur = {p 1 },2. cm 1 .prixTotal = 205, cm 1 .typeRam = SDR, cm 1 .energieConsommee = 205,cm 1 .prix = 803. r 1 .capacite = 256, r 1 .type = SDR, r 1 .energieConsommee = 5, r 1 .prix = 504. p 1 .vitesse = 2000, p 1 .energieConsommee = 10, p 1 .prix = 75Interprétation <strong>de</strong>s objets et <strong>de</strong>s classesNous supposons pour <strong>de</strong>s raisons <strong>de</strong> lisibilité que <strong>les</strong> trois objets <strong>de</strong> cet exemple sontassociés aux chiffres 1, 2 et 3.I (cm 1 ) = 1I (r 1 ) = 2I (p 1 ) = 3Ainsi <strong>les</strong> interprétations <strong>de</strong>s classes sont <strong>les</strong> suivantes :IClass(CarteMere) = {1}IClass(Ram) = {2}IClass(Processeur) = {3}IClass(Composant) = {1, 2, 3}IClass(ConsommateurDEnergie) = {1, 2, 3}DDR et SDR sont <strong>de</strong>ux éléments <strong>de</strong> type String, leur interprétation est :I (SDR) = 1I (DDR) = 2Interprétation <strong>de</strong>s relations <strong>de</strong> compositionIrole(ram) = {(1, {2})}Irole(processeur) = {(1, {3})}- 42 -


3 : Les Modè<strong>les</strong> Objet Contraints : formalisme et formalisationInterprétation <strong>de</strong>s attributsIAtt(prixTotal) = {(1, 205)}IAttString(typeRam) = {(1, 1)}IAttString(type) = {(2, 1)}IAtt(capacite) = {(2, 256)}IAtt(vitesse) = {(3, 2000)}IAtt(energieConsommee) = {(1, 205), (2, 5), (3, 10)}IAtt(prix) = {(1, 80), (2, 50), (3, 75)}Cette interprétation satisfait toutes <strong>les</strong> contraintes, c’est donc bien une instance dumodèle objet contraint.La notation UML2 permet <strong>de</strong> représenter <strong>de</strong> tels modè<strong>les</strong>, la figure 3.8 présente lemodèle décrit ci-<strong>de</strong>ssus. Nous avons opté pour une représentation où <strong>les</strong> attributs <strong>de</strong>sobjets apparaissent.Fig. 3.9 – Une solution possible pour le modèle objet <strong>de</strong> la figure 3.83.4 ConclusionAu cours <strong>de</strong> ce chapitre, nous avons présenté <strong>les</strong> modè<strong>les</strong> objet contraints et proposéune métho<strong>de</strong> formelle nouvelle, à notre connaissance, pour <strong>les</strong> représenter. L’interprétation<strong>de</strong>s objets comme un ensemble fini d’entiers est, quant à elle, une projectionclassique d’un ensemble fini d’éléments quelconques dans un ensemble d’entiers. L’interprétation<strong>de</strong>s fonctions crée <strong>les</strong> coup<strong>les</strong> d’entiers ou d’entiers et d’ensemb<strong>les</strong> d’entiers,représentant <strong>les</strong> tup<strong>les</strong> autorisés pour le modèle considéré. Les notations présentées dansce chapitre sont utilisées dans toute la suite du document. En particulier pour présenterla <strong>configuration</strong>, un outil <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis, qui nous permet d’énumérerl’ensemble <strong>de</strong>s solutions possib<strong>les</strong> pour <strong>les</strong> modè<strong>les</strong> objet contraints.- 43 -


Chapitre 4Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong>finis pour <strong>les</strong> modè<strong>les</strong> objetcontraintsLa métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis retenue est la <strong>configuration</strong>. Son objectifest <strong>de</strong> décrire <strong>de</strong>s asssemblages <strong>de</strong> composants choisis dans un catalogue <strong>de</strong> types <strong>de</strong> composantsafin <strong>de</strong> créer un objet complexe. Cet assemblage est soumis à <strong>de</strong>s contraintesinhérentes à chaque composant mais également fonction du produit que l’on chercheà construire. Cette notion <strong>de</strong> production est directement issue <strong>de</strong> l’industrie qui agénéré le besoin <strong>de</strong> cette discipline. La <strong>configuration</strong> a, entre autre, été utilisée pourle système XCON [6]. Un problème <strong>de</strong> <strong>configuration</strong> s’articule autour d’un modèlegénérique permettant <strong>de</strong> représenter l’ensemble <strong>de</strong>s objets productib<strong>les</strong> et d’un ensemble<strong>de</strong> contraintes. Les contraintes sont <strong>de</strong> <strong>de</strong>ux types :– contraintes inhérentes aux composants :ces contraintes permettent <strong>de</strong> spécifier quels sont, pour tout produit que l’oncherche à modéliser, <strong>les</strong> assemblages autorisés et ceux interdits– contraintes spécifiques à l’instance traitée :ces contraintes représentent <strong>les</strong> « choix » <strong>de</strong> l’utilisateur pour la <strong>configuration</strong> duproduit qu’il désireLa <strong>configuration</strong> s’inscrit pleinement dans le domaine <strong>de</strong> la programmation par contrainteset dans celui <strong>de</strong> l’intelligence artificielle. Nous utilisons la <strong>configuration</strong> orientée objet[46] ;celle-ci tire profit <strong>de</strong>s paradigmes orientés objet et <strong>de</strong> la programmation par contraintes.Elle utilise <strong>les</strong> relations d’héritage (relations taxonomiques) et <strong>les</strong> relations d’associationet <strong>de</strong> composition (relations partonomiques) <strong>de</strong>s modè<strong>les</strong> objet ainsi que la programmationpar contraintes pour décrire <strong>les</strong> relations autorisées. La taille d’une solution(lorsqu’il en existe une) d’un problème <strong>de</strong> <strong>configuration</strong> n’est pas connue au départ <strong>de</strong> larecherche et place directement ce problème dans la classe <strong>de</strong>s problèmes semi-décidab<strong>les</strong>.Cependant, dans <strong>les</strong> problèmes pratiques, il est souvent possible <strong>de</strong> donner une bornemaximale à la taille <strong>de</strong> la solution, le problème appartient alors à la classe NP-complet.La recherche <strong>de</strong> modè<strong>les</strong> finis est organisée <strong>de</strong> la sorte : l’utilisateur fournit au configu-- 44 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsrateur l’ensemble <strong>de</strong>s composants dont il dispose. Puis, il choisit d’une part un ensembled’objets, éventuellement vi<strong>de</strong>, plus ou moins interconnectés et plus ou moins totalementinstanciés, <strong>de</strong>vant apparaître dans la solution et d’autre part un objet racine quisera le point <strong>de</strong> départ <strong>de</strong> la recherche. A partir <strong>de</strong> cet objet, la recherche « brute » 1cherche à instancier <strong>les</strong> relations en premier et avec la cardinalité la plus petite d’abord.Lorsqu’un objet atteint ne possè<strong>de</strong> plus <strong>de</strong> relation non instanciée, ses attributs sontinstanciés à leur tour puis la recherche remonte à l’objet qui avait permis d’atteindrecet objet et continue l’instanciation. La semi-décidabilité <strong>de</strong>s problèmes <strong>de</strong> <strong>configuration</strong>Fig. 4.1 – Un modèle objet cycliqueprovient du fait qu’un modèle objet peut éventuellement possé<strong>de</strong>r <strong>de</strong>s solutions infinies,par exemple, la figure 4.1 présente un modèle objet simple qui possè<strong>de</strong> (sans contraintesupplémentaire) <strong>de</strong>s solutions finies et <strong>de</strong>s solutions potentiellement infinies.1. Une solution finie : soit a 1 une instance <strong>de</strong> la classe A telle que R(a) = a alorsl’objet a ainsi configuré est une solution du modèle objet.2. Une solution infinie : soit l’ensemble A = {a i : A | i ∈ } tel que ∀ i, R(a i ) = a i+1 ,l’ensemble A est une solution infinie du modèle objet.D’autre part, si on rajoute la contrainte ∀ x, y : 1 • (x, y) ∈ R + ⇒ x ≠ y, 2 ce modèleobjet contraint n’est satisfaisable que par un ensemble infini d’objets <strong>de</strong> type A telque l’ensemble A ci-<strong>de</strong>ssus. Cette remarque illustre le fait que la <strong>configuration</strong> permet<strong>de</strong> représenter <strong>de</strong> manière finie <strong>de</strong>s problèmes ne disposant que <strong>de</strong> solutions infinies etjustifie sa semi-décidabilité.A contrario, le modèle objet <strong>de</strong> la figure 4.2 ne possè<strong>de</strong> que <strong>de</strong>s solutions finies. Unesolution <strong>de</strong> ce modèle est, par exemple, le triplet (a, b 1 , b 2 ) où a est une instance <strong>de</strong> laclasse A et b 1 , b 2 <strong>de</strong>s instances <strong>de</strong> la classe B tels que ab(a) = {b 1 , b 2 }.L’entrée d’un problème <strong>de</strong> <strong>configuration</strong> est un ensemble <strong>de</strong> composants que l’utilisateursouhaite voir apparaître dans la solution. A partir <strong>de</strong> cette entrée le configurateurpeut choisir dans sa base <strong>de</strong> composants autant d’éléments qu’il lui est permis1 Des heuristiques sont possib<strong>les</strong> notamment pour fixer <strong>les</strong> cardinalités <strong>de</strong>s relations avant <strong>de</strong> configurer<strong>les</strong> objets liés par cette relation ou l’ordre <strong>de</strong> parcours <strong>de</strong>s relations.2 R + est la fermeture transitive <strong>de</strong> la relation R, cette contrainte définit son irréflexivité. Dans notreexemple, la contrainte spécifie qu’aucun A ne peut être utilisé <strong>de</strong>ux fois dans la relation R.- 45 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsFig. 4.2 – Un modèle objet non cycliqueet nécessaire pour compléter le sous-modèle (l’entrée) afin d’obtenir une solution satisfaisantl’ensemble <strong>de</strong>s contraintes génériques et spécifiques. La <strong>configuration</strong> est unemétho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis. A partir d’un objet racine, la recherche <strong>de</strong> solutionparcourt l’arbre <strong>de</strong> recherche jusqu’à trouver une instance du modèle objet contraintassocié, si il en existe une. Il est également possible <strong>de</strong> <strong>de</strong>man<strong>de</strong>r toutes <strong>les</strong> solutionspossib<strong>les</strong> pour une entrée donnée. Nous utilisons le configurateur JConfigurator <strong>de</strong> lasociété ILOG [41] 3 .4.1 JConfiguratorJConfigurator combine d’une part <strong>les</strong> logiques <strong>de</strong> <strong>de</strong>scription et d’autre part laprogrammation par contraintes. Ce configurateur repose sur <strong>les</strong> <strong>de</strong>scription logics [3] 4et plus précisément sur un langage proche <strong>de</strong> FPC[45]. L’utilisation <strong>de</strong>s TBox estréservée à la représentation <strong>de</strong>s concepts et <strong>de</strong>s rô<strong>les</strong> tandis que <strong>les</strong> ABox sont associéesaux contraintes. La résolution, quant à elle, est dirigée par la métho<strong>de</strong> <strong>de</strong>s tableauxgénéralisée. [41] est un article entièrement consacré à la logique utilisée dans JConfigurator.4.1.1 Domaine d’interprétationDans JConfigurator, <strong>les</strong> composants disponib<strong>les</strong> pour la recherche appartiennent auplus petit ensemble d’objets maximisant <strong>les</strong> cardinalités récursivement sur <strong>les</strong> objetsatteignab<strong>les</strong> à partir d’un ensemble d’objets racines (instances d’une même classe). [41]appelle cet ensemble un Partonomic Herbrand Universe. Cette définition implique quele domaine traité est fini dès lors qu’il n’existe pas <strong>de</strong> cycle dans <strong>les</strong> relations.4.1.2 Traduction d’un modèle objet contraint en un problème JConfiguratorLes Objets et <strong>les</strong> Classes ainsi que <strong>les</strong> fonctions définissant <strong>les</strong> attributs sont directementreprésentés dans le modèle objet <strong>de</strong> JConfigurator. Cependant il est également pos-3 Le configurateur JConfigurateur est implémenté en JAVA4 http ://dl.kr.org est un site dédié exclusivement aux activités <strong>de</strong> recherche autour <strong>de</strong>s logiques <strong>de</strong><strong>de</strong>scription- 46 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintssible <strong>de</strong> définir ces éléments par <strong>de</strong>s comman<strong>de</strong>s, c’est cette syntaxe que nous présentonsici. Elle permet <strong>de</strong> mettre en évi<strong>de</strong>nce le caractère modulaire et biunivoque <strong>de</strong> la traductiond’un modèle objet contraint sous la forme d’un problème <strong>de</strong> <strong>configuration</strong>.Création <strong>de</strong> classes et d’instances dans JconfiguratorA toute déclaration <strong>de</strong> classe en Z <strong>de</strong> la forme :uneClasse : Classecorrespond la déclaration suivante en JConfigurator 5 :makeClass(uneClasse)Par définition, <strong>les</strong> classes JConfigurator ne peuvent pas partager leurs instances (<strong>les</strong>objets qu’el<strong>les</strong> contiennent) sauf si il existe un lien <strong>de</strong> parenté entre ces <strong>de</strong>ux classes (l’uneest ancètre <strong>de</strong> l’autre dans la hiérarchie <strong>de</strong> classes). Le type Objet <strong>de</strong> la formalisation estun type non-interprété général, dans JConfigurator, <strong>les</strong> instances <strong>de</strong> classes sont généréesà partir <strong>de</strong>s classes <strong>de</strong> la manière suivante :makeInstance(nom instance, nom classe)Création d’attributs <strong>de</strong> classes dans JConfiguratorEn formalisation Z <strong>de</strong> modèle objet contraint, un attribut est une fonction <strong>de</strong> laclasse vers le domaine <strong>de</strong> l’attribut. Dans JConfigurator, un attribut est représenté parun champ (field) <strong>de</strong> la classe à laquelle il est rattaché. La syntaxe pour définir un attributest la suivante :makeField(nom classe, nom attribut, domaine)Création <strong>de</strong> rô<strong>les</strong> dans JConfiguratorLes seu<strong>les</strong> relations autorisées dans un modèle objet <strong>de</strong> JConfigurator sont <strong>les</strong> rô<strong>les</strong>,ils sont nommés ports et sont implémentés, comme <strong>les</strong> attributs, par <strong>de</strong>s champs, <strong>de</strong> typeObject (instance <strong>de</strong> classe) ou ObjectSet (ensemble d’instances). La syntaxe généralepour définir un port est la suivante :makeField(nomClasseSource,nomChamp,domaine(cardMin, CardMax, objectDomain(nomClasseCible)))5 Dans cette partie nous omettons volontairement certaines lour<strong>de</strong>urs d’écriture. L’annexe A présentela syntaxe utilisée par JConfigurator à travers l’exemple <strong>de</strong> l’assemblage d’ordinateurs présenté à la fin<strong>de</strong> ce chapitre.- 47 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsUn exempleAfin <strong>de</strong> replacer dans leur contexte d’utilisation <strong>les</strong> déclarations données ci-<strong>de</strong>ssus,nous détaillons le problème <strong>de</strong> <strong>configuration</strong> associé au diagramme <strong>de</strong> la figure 4.2 dontnous rappelons la formalisation en Z :A : ClasseB : Classeatt : A " ∀ a : A • a.att ≤ 1000ab : A " B∀ a : A • 0 ≤ #(a.ab) ≤ 4∀ a 1 : A, a 2 : A | a 1 ≠ a 2 • ∀ b : B • b ∈ a 1 .ab ⇒ b /∈ a 2 .abLa contrainte ∀ a 1 : A, a 2 : A | a 1 ≠ a 2 • ∀ b : B • b ∈ a 1 .ab ⇒ b /∈ a 2 .ab traduitla sémantique du losange noir (relation <strong>de</strong> composition) <strong>de</strong> la figure 4.2. Ce problème<strong>configuration</strong> est défini par <strong>les</strong> instructions 6 suivantes :makeClass("A");makeClass("B");makeField("A","att",intDomain(0,1000));makeField("A","ab",setDomain(0, 4, objectDomain("B")));a_1,a_2 = var(getClass("A"));b = var(getClass("B"));forall(a_1,a_2,neq(a_1,a_2),forall(b, imply(member(b,a_1.getObjectSetField("ab")),notMember(b,a_2.getObjectSetField("ab")))));où :– objectDomain représente le domaine contenant tous <strong>les</strong> objets <strong>de</strong> type B.– setDomain définit un ensemble avec ses cardinalités maxima<strong>les</strong> et minima<strong>les</strong> et ledomaine <strong>de</strong>s éléments contenus dans cet ensemble.– intDomain définit un ensemble d’entiers.– var(C) est la fonction permettant <strong>de</strong> créer une variable représentant une instance<strong>de</strong> classe C.6 JConfigurator n’implémente pas la génération d’instances dynamique. Une borne maximale doit êtredéfinie pour <strong>les</strong> cardinalités <strong>de</strong>s relations se terminant par ∗ et <strong>les</strong> bornes maxima<strong>les</strong> et minima<strong>les</strong> <strong>de</strong>sdomaines <strong>de</strong>s attributs doivent être finis.- 48 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraints– getClass(name) retourne la classe dont le nom est name.– forall est la représentation JConfigurator <strong>de</strong> ∀.– imply est la représentation JConfigurator <strong>de</strong> ⇒.– member(x,y) est une contrainte satisfaite si x appartient à l’ensemble y.– notMember(x,y) est une contrainte satisfaite si x n’appartient pas à l’ensemble y.Cet exemple illustre l’aspect modulaire <strong>de</strong> la traduction d’un formalisme vers l’autre. Achaque déclaration Z correspond une déclaration JConfigurator. De plus, toute déclarationJConfigurator peut être traduite en Z par la traduction inverse. Cette <strong>de</strong>rnière est directecar tout élément d’un formalisme trouve son équivalent dans l’autre.La traduction <strong>de</strong>s prédicats possè<strong>de</strong> la même propriété. Supposons que pour un objet<strong>de</strong> type A, l’attribut (att) représente le nombre d’objets <strong>de</strong> type B dont il est composé.En Z cette contrainte s’écrit :∀ a : A • a.att = #(a.ab)La syntaxe JConfigurator pour cette contrainte est la suivante :a = var(getClass("A"))forall a, eq(a.getIntField("att"),a.getCardinality("ab"))Là encore la traduction est directe. Les <strong>de</strong>ux seu<strong>les</strong> différences sont la déclaration <strong>de</strong>svariab<strong>les</strong> avant leur utilisation et la syntaxe préfixe <strong>de</strong>s opérateurs.4.1.3 Un outil correct et completL’algorithme utilié par JConfigurator a été prouvé correct et complet.Proposition 1 Pour tout problème <strong>de</strong> <strong>configuration</strong>, tout modèle solution trouvé parJConfigurator est une solution du problème initial.Proposition 2 Pour tout problème <strong>de</strong> <strong>configuration</strong>, si le problème possè<strong>de</strong> une solutionatteignable alors JConfigurator est capable <strong>de</strong> l’atteindre (éventuellement en un tempsinfini).Pour un modèle objet contraint quelconque, il est possible <strong>de</strong> traduire modulairementce modèle en un problème <strong>de</strong> <strong>configuration</strong>. Nous nous appuyons sur la modularité <strong>de</strong>la traduction d’un formalisme à l’autre pour montrer que le problème <strong>de</strong> <strong>configuration</strong>représente bien le modèle objet contraint.4.1.4 Une traduction modulaireComme nous avons vu dans la section 4.1.2, la <strong>configuration</strong> et <strong>les</strong> modè<strong>les</strong> objetcontraints partagent <strong>les</strong> notions <strong>de</strong> classes, d’instances (ou objet), d’attributs et <strong>de</strong> relations(modulo une expression plus laborieuse en JConfigurator qui n’utilise que <strong>les</strong> ports).Ces notions communes ne diffèrent d’un formalisme à l’autre que dans la représentation.La traduction <strong>de</strong> l’un à l’autre est directe par réécriture syntaxique. L’exemple <strong>de</strong> traduction<strong>de</strong> la section 4.1.2 propose notamment le passage d’un prédéciat Z à sa forme en- 49 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsJConfigurator, cette traduction est généralisable à tout prédicat Z . Tous <strong>les</strong> opérateurspermettant <strong>de</strong> construire <strong>de</strong>s prédicats Z (utilisés pour formaliser <strong>les</strong> contraintes) ontleurs équivalents dans JConfigurator. Sans en faire une liste exhaustive, nous proposonsquelques équivalences :Les contraintes sur <strong>les</strong> ensemb<strong>les</strong>Le traitement <strong>de</strong>s ensemb<strong>les</strong> est naturel dans Z , l’union et l’intersection d’ensemb<strong>les</strong>comme le test d’appartenance d’un élément à un ensemble sont <strong>de</strong>s opérations aisémentreprésentab<strong>les</strong>, el<strong>les</strong> sont, <strong>de</strong> plus, très utilisées dans <strong>les</strong> modè<strong>les</strong> objets contraints (pardéfinition ensemblistes). JConfigurator définit <strong>les</strong> opérations d’union, d’intersection etd’appartenance sur <strong>les</strong> ports d’un objet ou d’un ensemble d’objets. L’union (respectivementl’instersection) <strong>de</strong> <strong>de</strong>ux ports est réalisée par l’opérateur union(port 1 , port 2)(intersect(port 1 , port 2)). Le test d’appartenance est quant à lui rendu parl’opérateur member(objet, port).Les quantificationsLes seu<strong>les</strong> quantifications utilisées dans <strong>les</strong> modè<strong>les</strong> objets sont <strong>les</strong> quantificationsuniversel<strong>les</strong>. Ces quantifications sont réalisées par l’opérateur forall <strong>de</strong> JConfigurator.Cependant ce <strong>de</strong>rnier traite <strong>de</strong>s variab<strong>les</strong> ayant un type prédéfini, alors qu’en Z unevariable est définie localement à la contrainte. Cependant, il est tout <strong>de</strong> même raisonnabled’associer à chaque classe du modèle JConfigurator une variable du bon type quila représentera.Les opérateurs logiquesLes quatres opérateurs logiques, ∧, ∨, ⇒, ¬ disposent <strong>de</strong> leurs équivalents en JConfigurator: and,or,implies,notCorrection et complétu<strong>de</strong> globa<strong>les</strong>Il existe une équivalence entre tout prédicat Z exprimable dans un modèle objetcontraint et <strong>les</strong> opérateurs <strong>de</strong> JConfigurator. L’ensemble <strong>de</strong>s prédicats et <strong>de</strong>s élémentsformant le modèle objet contraint sont donc traduisib<strong>les</strong> en un problème <strong>de</strong> <strong>configuration</strong>.La traduction est reversible dans le sens où tout problème <strong>de</strong> <strong>configuration</strong> estexprimable sous la forme d’un modèle objet contraint. Cette propriété provient <strong>de</strong> lamodularité <strong>de</strong>s traductions. Nous avons d’autre part vu que l’outil <strong>de</strong> <strong>configuration</strong> utiliséest correct (proposition 1). A partir <strong>de</strong> ces <strong>de</strong>ux remarques, nous pouvons donner laproposition suivante :Proposition 3 Soient M un modèle objet contraint, sol l’ensemble <strong>de</strong> ses solutions etP le problème JConfigurator associé à M , toute instance atteignable par P appartientà sol (à un renommage près).- 50 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsEn effet, à partir d’une instance Inst d’un problème <strong>de</strong> <strong>configuration</strong> (exprimé en JConfigurator)P, traduction d’un modèle objet contraint M , on peut associer à chaque instance<strong>de</strong> classe un entier et interpréter <strong>les</strong> relations et <strong>les</strong> attributs comme <strong>de</strong>s coup<strong>les</strong>d’entiers (ou <strong>de</strong>s coup<strong>les</strong> (entier,ensemble d’entiers)). On peut vérifier que cette interprétation<strong>de</strong> Inst est bien solution <strong>de</strong> M , par la métho<strong>de</strong> vue dans le chapitre 3,section 3.3. D’autre part, la recherche <strong>de</strong> modè<strong>les</strong> finis <strong>de</strong> JConfigurator est complète(proposition 2), la traduction d’un formalisme à l’autre étant biunivoque, nous disposons<strong>de</strong> la proposition suivante :Proposition 4 Pour tout modèle objet contraint M et sa traduction en problème <strong>de</strong><strong>configuration</strong> P, toute instance <strong>de</strong> M appartient à l’ensemble <strong>de</strong>s instances (à un renommageprès) atteignab<strong>les</strong> par la recherche <strong>de</strong> modè<strong>les</strong> finis <strong>de</strong> JConfigurator appliquée àP.Les <strong>de</strong>ux propositions ci-<strong>de</strong>ssus permettent <strong>de</strong> dire que l’outil JConfigurator est adaptéà la résolution <strong>de</strong>s modè<strong>les</strong> objet contraints.4.2 Exemple <strong>de</strong> problème <strong>de</strong> <strong>configuration</strong> : l’assemblaged’ordinateurDans cet exemple, <strong>les</strong> composants possib<strong>les</strong> pour configurer un PC sont choisisparmi l’ensemble : {carte mère, disque dur, processeur, barette <strong>de</strong> mémoire, alimentation,écran}. Bien évi<strong>de</strong>mment d’autres composants pourraient entrer en compte tels que lacarte son, la carte vidéo ou la carte réseau. Cependant l’ensemble choisi est <strong>de</strong> tail<strong>les</strong>uffisamment gran<strong>de</strong> pour présenter précisément le type <strong>de</strong> problèmes traités et suffisammentrestreinte pour ne pas se perdre sous une trop gran<strong>de</strong> quantité <strong>de</strong> contraintes.La <strong>configuration</strong> orientée objet nous permet <strong>de</strong> représenter le modèle générique via unmodèle <strong>de</strong> classes que l’on peut représenter en utilisant la notation UML2[34, 29] 7 . Lamodélisation UML+Z vue au précé<strong>de</strong>nt chapitre permet <strong>de</strong> modéliser parfaitement unproblème <strong>de</strong> <strong>configuration</strong>.4.2.1 Le modèle objetLa figure 4.3 est un rappel <strong>de</strong> la figure 2.9 vue au chapitre 2. Cette figure présentele modèle objet générique modélisant tout type <strong>de</strong> pc. Nous pouvons remarquer quele modèle objet utilisé est du même type que ceux utilisés pour la présentation <strong>de</strong>sCOMs. Les <strong>de</strong>ux seuls types <strong>de</strong> relations utilisés ici sont <strong>les</strong> relations <strong>de</strong> composition etd’héritage.Nous pouvons notamment noter pour <strong>les</strong> relations <strong>de</strong> composition que la relation quilie <strong>les</strong> classes CarteMere et Processeur signifie que toute instance <strong>de</strong> CarteMere doitcontenir (être liée à) au moins une et au plus <strong>de</strong>ux instances <strong>de</strong> la classe Processeur.La relation <strong>de</strong> composition est exclusive : un processeur composant d’une carte-mère nepeut appartenir à une autre carte-mère. Les classes représentent <strong>les</strong> types <strong>de</strong> composants7 Unified Mo<strong>de</strong>ling Language- 51 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsFig. 4.3 – Modèle (UML) <strong>de</strong> données générique pour représenter un PCcités plus haut. Cependant <strong>de</strong>ux classes supplémentaires sont présentes : la classe Composantet la classe consommateurDEnergie. Ces classes sont appellées abstractions carel<strong>les</strong> ne représentent pas d’objet « concret » mais permettent <strong>de</strong> factoriser <strong>de</strong>s élémentscommuns aux autres classes : <strong>les</strong> attributs prix et energieConsommée. L’héritage permet<strong>de</strong> transmettre ces attributs aux autres classes. Tout composant a un prix. Seule laclasse Alimentation ne possè<strong>de</strong> pas l’attribut energieConsommee. En effet, cette <strong>de</strong>rnièretransmet l’énergie aux autres composants. Nous détaillerons plus loin <strong>les</strong> liens entre <strong>les</strong>attributs energieConsomee et energieFournie. Tout ordinateur peut être représenté parle schéma <strong>de</strong> la figure précé<strong>de</strong>nte. Cependant, il est nécessaire <strong>de</strong> préciser certainescontraintes pour renforcer la cohérence du modèle.4.2.2 Les contraintesCertaines contraintes sont définies implicitement sur le modèle objet vu ci-<strong>de</strong>ssus via<strong>les</strong> cardinalités <strong>de</strong>s relations. Cependant, d’autres contraintes sont nécessaires, commepar exemple la contrainte spécifiant que la somme <strong>de</strong>s valeurs <strong>de</strong>s attributs energieConsomee<strong>de</strong> chaque composant d’un ordinateur donné doit être inférieure à la valeur <strong>de</strong> l’attributenergieFournie <strong>de</strong> l’alimentation associée au PC. Il est aussi important <strong>de</strong> préciser<strong>les</strong> compatibilités <strong>de</strong> types entre la carte mère et <strong>les</strong> disques durs utilisés, <strong>de</strong> même que<strong>les</strong> types <strong>de</strong> barettes <strong>de</strong> mémoire. Le modèle et <strong>les</strong> contraintes génériques permettent<strong>de</strong> modéliser un « mon<strong>de</strong> » encapsulant toutes <strong>les</strong> solutions possib<strong>les</strong> pour l’ensemble<strong>de</strong>s problèmes potentiels sur ce mon<strong>de</strong>. D’un autre côté, <strong>les</strong> contraintes spécifiques sontpropres à une instance <strong>de</strong> problème issu du mon<strong>de</strong>. Lorsqu’un utilisateur cherche à configurerun pc, il va pouvoir spécifier certains critères (comme « le pc a <strong>de</strong>ux disques durs », ou « Tout disque dur est <strong>de</strong> type SATA » ). Ces critères sont spécifiés sous la forme <strong>de</strong>- 52 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintscontraintes.Nous présentons dans un premier temps <strong>les</strong> contraintes communes à tout pc. Cescontraintes sont exprimées en Z <strong>de</strong> la même manière que dans le chapitre précé<strong>de</strong>nt.Les contraintes génériquesCes contraintes représentent l’ensemble <strong>de</strong>s règ<strong>les</strong> <strong>de</strong> bonne formation d’un ordinateur,quel qu’il soit.– Contrainte sur la puissance fournie par l’alimentation :Cette <strong>de</strong>rnière doit être supérieure à la somme <strong>de</strong>s énergies consommées par <strong>les</strong>composants <strong>de</strong> l’ordinateur.∀ o : Ordinateur • o.alimentation.puissanceFournie ≥(o.ecran.energieConsommee+bagsum(o.disqueDur energieConsommee)+o.carteMere.energieConsommee+bagsum(o.carteMere.processeur energieConsommee)+bagsum(o.carteMere.ram energieConsommee))– Contrainte sur <strong>les</strong> compatibilités <strong>de</strong> type entre l’ordinateur et <strong>les</strong> disques durs :Les valeurs <strong>de</strong>s attributs typeDD d’Ordinateur et type <strong>de</strong> DisqueDur sont éga<strong>les</strong>pour <strong>de</strong>s instances en relation.∀ o : Ordinateur • ∀ dd : o.disqueDur • dd.type = o.typeDD– Contrainte sur <strong>les</strong> compatibilités <strong>de</strong> type entre la carte mère et <strong>les</strong> barettes <strong>de</strong>mémoire De même que pour la contrainte précé<strong>de</strong>nte : <strong>les</strong> valeurs <strong>de</strong>s attributstypeRam <strong>de</strong> CarteMere et type <strong>de</strong> Ram sont éga<strong>les</strong> pour <strong>de</strong>s instances en relation.∀ cm : CarteMere • ∀ r : cm.ram • r.type = cm.typeRam– Le prix total <strong>de</strong> la carte mère est égal à la somme <strong>de</strong>s prix <strong>de</strong> ses composants :∀ cm : CarteMere • cm.prixTotal = cm.prix+bagsum(cm.processeur prix)+bagsum(cm.ram prix)– Le prix total <strong>de</strong> l’ordinateur est égal à la somme <strong>de</strong>s prix <strong>de</strong> ses composants :∀ o : Ordinateur • (o.prixTotal) = o.carteMere.prixTotal+o.ecran.prix + o.alimentation.prix+bagsum(o.disqueDur prix)L’ensemble formé par ces cinq contraintes permet <strong>de</strong> représenter toutes <strong>les</strong> instances<strong>de</strong> pc vali<strong>de</strong>s. Voyons à présent trois contraintes spécifiques. Nous allons chercher àconfigurer un ordinateur qui possè<strong>de</strong> <strong>de</strong>ux disques durs et dont tous <strong>les</strong> disques dursreliés sont <strong>de</strong> type SATA. Toutes <strong>les</strong> autres caractéristiques ne sont soumises qu’auxcontraintes génériques.- 53 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsLes contraintes spécifiques à une instance <strong>de</strong> problème– Le pc a <strong>de</strong>ux disques dursOn peut définir dans une même définition <strong>les</strong> contraintes spécifiques à l’ordinateurou alors définir l’instance pc d’ordinateur et poser <strong>de</strong>s contraintes par la suite,nous présentons pour cet exemple <strong>les</strong> <strong>de</strong>ux métho<strong>de</strong>s :ou alors :suivit <strong>de</strong> :pc : Ordinateur#(pc.disqueDur) = 2pc : Ordinateur#(pc.disqueDur) = 2– Tout disque dur relié au pc est <strong>de</strong> type SATA∀ dd : DisqueDur | dd ∈ pc.disqueDur • dd.type = SATA4.2.3 Modè<strong>les</strong> trouvésLe problème <strong>de</strong> <strong>configuration</strong> présenté est peu contraint : nous obtenons 1026 modè<strong>les</strong>finis solutions pour la <strong>configuration</strong> d’un ordinateur avec seulement cinq disques durs,trois écrans, cinq processeurs, trois cartes mères, six barettes <strong>de</strong> ram et trois alimentations.Le détail <strong>de</strong>s instances choisies ainsi que la syntaxe <strong>de</strong>s contraintes sous JConfiguratorsont présentés dans l’annexe A. Avec ces mêmes instances et <strong>les</strong> contraintessuivantes :1. le prix du pc est inférieur ou égal à 7502. l’alimentation a une puissance inférieure ou égale à 3003. la carte mère a <strong>de</strong>ux processeursil existe une seule solution.Arbre <strong>de</strong> rechecheLes objets disponib<strong>les</strong> lors <strong>de</strong> la recherche sont présentés sur la figure 4.4. Nousconsidérons l’exemple contenant <strong>les</strong> cinq contraintes. L’objet racine est l’objet pc. Unmécanisme <strong>de</strong> propagation est effectué à chaque affectation <strong>de</strong> variable afin <strong>de</strong> filtrer<strong>les</strong> domaines. A titre d’exemple, nous présentons le résultat d’une propagation <strong>de</strong>scontraintes avant tout choix <strong>de</strong> variab<strong>les</strong> sur la figure 4.5. Le résultat <strong>de</strong> cette propagationest donné sous la forme <strong>de</strong> tup<strong>les</strong> représentant <strong>les</strong> attributs et <strong>les</strong> ports définissur <strong>les</strong> tableaux <strong>de</strong> la figure 4.4. Seuls <strong>les</strong> composants restant disponib<strong>les</strong> sont affichés.La recherche démarre donc <strong>de</strong> l’objet pc choisi comme racine. Le port ecran est un <strong>de</strong>- 54 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsses ports non instanciés, la valeur e2 lui est attribuée. e2 ne contient qu’un seul portnon instancié : le port ordinateur qui reçoit la valeur pc (seul ordinateur disponible parrelation inverse <strong>de</strong> la relation <strong>de</strong> composition). Ainsi <strong>de</strong> suite, <strong>les</strong> différents composantsdu pc sont choisis. L’arbre <strong>de</strong> recherche aboutissant à la solution est présenté sur lafigure 4.6. Aucun retour n’est effectué et la recherche mène directement à l’unique solution.L’arbre <strong>de</strong> la figure 4.7 montre la fin <strong>de</strong> la recherche. Pour <strong>de</strong>s raisons <strong>de</strong> lisibilité,sur cette figure, seuls <strong>les</strong> nouveaux arcs sont étiquettés. Le symbole □ représente unéchec. Les arcs en pointillés représentent <strong>les</strong> retours du programme (« backtracks ») sur<strong>de</strong>s variab<strong>les</strong> déjà instanciées. Enfin, <strong>les</strong> noeuds sont étiquetés par l’étape <strong>de</strong> la rechercheà laquelle ils ont été visités.- 55 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintsnom puissanceFournie prix ordinateura1 300 40 ?pca2 350 50 ?pca3 400 65 ?pc(a) Instances <strong>de</strong> la classe Alimentationnom prixTotal ecran disqueDur carteMere alimentation typeDDpc 0..10000 ?e1 ?e2 ?dd1 ?dd2 ?dd3 ?dd4 ?dd5 ?cm1 ?cm2 ?cm3 ?a1 ?a2 ?a3 ?SATA ?IDE(b) Instance <strong>de</strong> la classe Ordinateur - l’objet racinenom typeRam prix eC eCT ordinateur prixTotal processeur ramcm1 SDR 115 40 - pc ? - ?p1 ?p2 ?p3 ?p4 ?p5 ?r1 ?r2 ?r3 ?r4 ?r5 ?r6cm2 SDR 190 45 - pc ? - ?p1 ?p2 ?p3 ?p4 ?p5 ?r1 ?r2 ?r3 ?r4 ?r5 ?r6cm1 DDR 245 50 - pc ? - ?p1 ?p2 ?p3 ?p4 ?p5 ?r1 ?r2 ?r3 ?r4 ?r5 ?r6(c) Instances <strong>de</strong> la classe CarteMere - eC représente l’attribut energieConsommee et eCT l’attributenergieConsommeeTotalenom vitesse prix eC carteMerep1 1500 115 30 ?cm1 ?cm2 ?cm3p2 2000 150 35 ?cm1 ?cm2 ?cm3p3 2500 230 45 ?cm1 ?cm2 ?cm3p4 3200 345 60 ?cm1 ?cm2 ?cm3p5 1500 115 30 ?cm1 ?cm2 ?cm3(d) Instances <strong>de</strong> la classe Processeurnom capacite type prix eC carteMerer1 256 SDR 40 25 ?cm1 ?cm2 ?cm3r2 512 SDR 70 30 ?cm1 ?cm2 ?cm3r3 512 DDR 75 35 ?cm1 ?cm2 ?cm3r4 1024 DDR 95 37 ?cm1 ?cm2 ?cm3r5 1024 SDR 85 33 ?cm1 ?cm2 ?cm3r6 512 DDR 80 28 ?cm1 ?cm2 ?cm3(e) Instances <strong>de</strong> la classe Ramnom capacite type prix eC ordinateurdd1 80 IDE 40 15 ?pcdd2 120 IDE 50 20 ?pcdd3 250 IDE 75 25 ?pcdd4 80 SATA 70 30 ?pcdd5 160 SATA 95 35 ?pc(f) Instances <strong>de</strong> la classe DisqueDurnom taille prix eC ordinateure1 17 50 25 ?pce2 17 250 27 ?pce3 19 320 35 ?pc(g) Instances <strong>de</strong> la classe EcranFig. 4.4 – Objets disponib<strong>les</strong> pour la recherche <strong>de</strong> modèle fini dans l’exemple du pc- 56 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraints〈pc, 625..750, ?e1?e2, dd4dd5, ?cm1?cm2?cm3, a1, SATA〉〈a1, 300, 40, pc〉〈cm1, SDR, 115, 40, 95..271, ?pc, 270..1090, ?p1?p2?p3?p4?p5, ?r1?r2?r3?r4?r5?r6〉〈cm2, SDR, 190, 45, 100..276, ?pc, 345..1165, ?p1?p2?p3?p4?p5, ?r1?r2?r3?r4?r5?r6〉〈cm3, DDR, 245, 50, 105..281, ?pc, 400..1220, ?p1?p2?p3?p4?p5, ?r1?r2?r3?r4?r5?r6〉〈p1, 1500, 115, 30, ?cm1?cm2?cm3〉〈p2, 2000, 150, 35, ?cm1?cm2?cm3〉〈p3, 2500, 230, 45, ?cm1?cm2?cm3〉〈p4, 3200, 345, 60, ?cm1?cm2?cm3〉〈p5, 1500, 115, 30, ?cm1?cm2?cm3〉〈r1, 256, SDR, 40, 25, ?cm1?cm2?cm3〉〈r2, 512, SDR, 70, 30, ?cm1?cm2?cm3〉〈r3, 512, DDR, 75, 35, ?cm1?cm2?cm3〉〈r4, 1024, DDR, 95, 37, ?cm1?cm2?cm3〉〈r5, 1024, SDR, 85, 33, ?cm1?cm2?cm3〉〈r6, 256, DDR, 80, 28, ?cm1?cm2?cm3〉〈dd4, 80, SATA, 70, 30, pc〉〈dd5, 160, SATA, 95, 35, pc〉〈e1, 17, 50, 25, ?pc〉〈e2, 17, 250, 27, ?pc〉Fig. 4.5 – Résultats <strong>de</strong> la propagation <strong>de</strong>s contraintes sur l’ensemble d’objets initial- 57 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraintse1.ordinateur=pcpc.carteMere=cm1cm1.ordinateur=pc (5) (4)pc.ecran=e1 (3)(1) (2)cm1.ram=r1 (6)r1.carteMere=cm1p1∈cm1.processeurp1.carteMere=cm1p5∈cm1.processeurp5.carteMere=cm1 •(11) (10) (9) (8) (7)Fig. 4.6 – Arbre <strong>de</strong> recherche pour la première solution du problème du pc- 58 -


4 : Métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong> finis pour <strong>les</strong> modè<strong>les</strong> objet contraints(1)(18)(22) (2)e2(19)e2.ordinateur=pc (3)(15)(17)(20) (4)pc.carteMere=cm2pc.carteMere=cm1□(16)□ (21) (5) (6) (7)(12)(14)cm1.processeur=p2 (8)□(13) (9) (10) •(11)Fig. 4.7 – Arbre <strong>de</strong> recherche pour une autre solution du problème du pc- 59 -


Chapitre 5Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Nous avons vu dans <strong>les</strong> chapitres précé<strong>de</strong>nts que la <strong>configuration</strong> fournissait <strong>de</strong>ssolutions <strong>de</strong> type modèle fini aux modè<strong>les</strong> objet contraints. Nous nous interessons maintenantau traitement <strong>de</strong> la syntaxe par <strong>de</strong>s modè<strong>les</strong> objet contraints. Cette approchetrouve sa motivation dans <strong>les</strong> trois points suivants :1. Utilisation d’un même formalisme pour traiter la syntaxe et la sémantique.2. Le pouvoir expressif <strong>de</strong>s modè<strong>les</strong> objet contraints.3. Appartenance <strong>de</strong> la métho<strong>de</strong> <strong>de</strong> résolution à MTS.Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> définissent un cadre générique <strong>de</strong> traitement <strong>de</strong> toutegrammaire dès lors qu’elle supporte un traitement par contraintes. El<strong>les</strong> proposent unlien entre l’entrée (le texte et son organisation en phrases constituées <strong>de</strong> listes ordonnées<strong>de</strong> mots) et le formalisme linguistique utilisé qui est factorisé au niveau d’une uniqueclasse nommée Cat. La grammaire est ensuite déclinée en classes héritant <strong>de</strong> Cat et enrelations entre ces classes. La puissance expressive <strong>de</strong>s modè<strong>les</strong> objet contraints permet,dès lors que l’on s’accor<strong>de</strong> sur le fait que <strong>les</strong> <strong>grammaires</strong> du langage naturel sont <strong>de</strong>s<strong>grammaires</strong> contextuel<strong>les</strong> (type 1 <strong>de</strong> la hiérarchie <strong>de</strong> Chomsky), <strong>de</strong> modéliser ces <strong>grammaires</strong>et <strong>de</strong> fournir <strong>les</strong> analyses adéquates en fonction <strong>de</strong>s entrées. Pour toute entréedont l’interprétation est sujette à ambiguité, la recherche <strong>de</strong> modè<strong>les</strong> finis permet <strong>de</strong>fournir autant d’analyses que d’interprétations différentes et maintient ainsi l’ambiguité.L’indépendance du formalisme grammatical, provenant <strong>de</strong> l’utilisation d’un modèle objetcontraint abstrait pour le représenter, est un <strong>de</strong>s points forts du système proposé.Une grammaire <strong>de</strong> <strong>configuration</strong> est un modèle objet contraint. L’analyseur syntaxiqueest obtenu par la simple utilisation d’un algorithme générique <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong>finis pour ce modèle objet contraint.5.1 DéfinitionDéfinition 8 (Grammaire <strong>de</strong> <strong>configuration</strong>) Une grammaire <strong>de</strong> <strong>configuration</strong> estun modèle objet contraint comprenant :- 60 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>– un modèle objet décrivant l’organisation <strong>de</strong>s mots et <strong>de</strong>s phrases au sein du texteainsi que leurs relations avec une classe abstraite mère <strong>de</strong> toute classe représentantune étiquette syntaxique. La figure 5.1 définit <strong>les</strong> classes et <strong>les</strong> attributs et la figure5.2 <strong>les</strong> relations en Z . Ce modèle est représenté sous sa forme UML2 sur lafigure 5.3.– l’ensemble <strong>de</strong> contraintes définissant <strong>les</strong> règ<strong>les</strong> <strong>de</strong> bonne composition <strong>de</strong>s élémentsdu modèle suivantes :1. Pour toute phrase, le premier mot appartient à la liste <strong>de</strong> mots2. Tout mot et la catégorie lui étant associée ont la m^eme valeurpour l’attribut phon3. Tout mot et la catégorie lui étant associée ont <strong>les</strong> m^emes valeurspour <strong>les</strong> attributs <strong>de</strong>but et fin4. Si un mot possè<strong>de</strong> un suivant, la valeur <strong>de</strong> son attribut fin est égaleà la valeur <strong>de</strong> l’attribut <strong>de</strong>but <strong>de</strong> son suivantLa définition Z <strong>de</strong> ces contraintes est donnée sur la figure 5.4.Texte : ClassePhrase : ClasseMot : ClasseCat : ClassePhrase ⊆ Catphon : Mot " String<strong>de</strong>but : Mot " fin : Mot " phon : Cat " String<strong>de</strong>but : Cat " fin : Cat " Fig. 5.1 – Formalisation <strong>de</strong>s classes et <strong>de</strong>s attributs du modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong><strong>configuration</strong>- 61 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>constituants : Texte " PhraseconstituantsRev : Phrase Texte∀ t : Texte • #(t.constituants) ≥ 1∀ t : Texte ; p : Phrase • p ∈ constituants(t) ⇔ t = constituantsRev(p)catsAssociees : Phrase " CatcatsAssocieesRev : Cat Phrase∀ p : Phrase • #(p.catsAssociees) ≥ 1∀ p : Phrase ; c : Cat • c ∈ catsAssociees(p) ⇔ p = catsAssocieesRev(c)premierMot : Phrase " MotpremierMotRev == premierMot ∼listeDeMots : Phrase " MotlisteDeMotsRev : Mot Phrase∀ p : Phrase • #(p.listeDeMots) ≥ 1∀ p : Phrase ; m : Mot • m ∈ listeDeMots(p) ⇔ p = listeDeMotsRev(m)suivant : Mot " MotsuivantRev : Mot Mot∀ m : Mot • 0 ≤ #(m.suivant) ≤ 1∀ m 1 : Mot ; m 2 : Mot • m 2 ∈ suivant(m 1 ) ⇔ m 1 = suivantRev(m 2 )catAssociee : Mot " CatcatAssocieeRev : Cat Mot∀ m : Mot • 0 ≤ #(m.catAssociee) ≤ 1∀ m : Mot ; c : Cat • c ∈ catAssociee(m) ⇔ m = catAssocieeRev(c)Fig. 5.2 – Formalisation <strong>de</strong>s relations du modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Sur la figure 5.1, <strong>les</strong> attributs <strong>de</strong>but, fin et phon ont <strong>les</strong> sens suivants :Phon représente :– pour une instance <strong>de</strong> Mot, la chaîne <strong>de</strong> caractères associée au mot lui même– pour une instance <strong>de</strong> Cat :– si elle est associée à une instance <strong>de</strong> Mot, la valeur <strong>de</strong> l’attribut phon <strong>de</strong> cette- 62 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>instance– à l’union <strong>de</strong>s valeurs <strong>de</strong>s attributs phon <strong>de</strong>s catégories qu’elle contientLes attributs <strong>de</strong>but et fin représentent, respectivement, le début et la fin d’un mot oud’une catégorie. Pour un mot m, m.fin = m.<strong>de</strong>but + 1. Pour une catégorie associéeà un mot, <strong>les</strong> attributs <strong>de</strong>but et fin sont égaux à ceux du mot. Pour une catégorie ccontenant d’autres catégories, c.<strong>de</strong>but (resp. c.fin) est égal au plus petit <strong>de</strong>but (resp. àla plus gran<strong>de</strong> fin) <strong>de</strong>s catégories contenues.Fig. 5.3 – Modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> (Notation UML2)1. ∀ p : Phrase • ∀ m : p.premierMot • m ∈ p.listeDeMots2. ∀ m : Mot • ∀ c : m.catAssociee • m.phon = c.phon3. ∀ m : Mot • ∀ c : m.catAssociee • (m.<strong>de</strong>but = c.<strong>de</strong>but) ∧ (m.fin = c.fin)4. ∀ m : Mot | #(m.suivant) = 1 • ∀ m ′ : m.suivant • (m ′ .<strong>de</strong>but = m.fin)Fig. 5.4 – Contraintes génériques pour toute grammaire <strong>de</strong> <strong>configuration</strong>Une grammaire <strong>de</strong> <strong>configuration</strong> définit un noyau <strong>de</strong> grammaire qui est étendu parhiérarchisation et spécification <strong>de</strong> la relation catsAssociees entre <strong>les</strong> classes Phrase etCat (définissant <strong>les</strong> relations que peut entretenir le syntagme le plus général avec <strong>les</strong>éléments <strong>de</strong> la grammaire). Pour un formalisme linguistique donné, la grammaire <strong>de</strong><strong>configuration</strong> est l’union du modèle objet contraint défini par <strong>les</strong> figures 5.1, 5.2 et5.4 et du sous-modèle objet contraint représentant le formalisme traité. L’analyseursyntaxique provient, quant à lui, <strong>de</strong> la traduction du modèle objet contraint en unproblème <strong>de</strong> <strong>configuration</strong> et <strong>de</strong> l’utilisation <strong>de</strong> la recherche <strong>de</strong> modèle finis pour uneentrée donnée.- 63 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Pour une grammaire donnée, il est nécessaire <strong>de</strong> disposer d’un lexique spécifiant quelssont <strong>les</strong> types <strong>de</strong> catégories associab<strong>les</strong> à un mot. Ce lexique sera plus ou moins détailléen fonction <strong>de</strong>s éléments nécessaires à la grammaire. Les catégories sont <strong>de</strong>s classes fil<strong>les</strong><strong>de</strong> la classe Cat.5.2 Un exemple <strong>de</strong> langage hors-contextePour illustrer <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> à partir d’un exemple simple, nousproposons l’étu<strong>de</strong> d’un micro-langage. Le langage a n b n est un langage archétypal <strong>de</strong>s<strong>grammaires</strong> hors-contexte. La grammaire associée est S → aSb | ɛ , avec S un symbolenon-terminal, a et b <strong>de</strong>ux symbo<strong>les</strong> terminaux et ɛ le mot vi<strong>de</strong>. La grammaire <strong>de</strong>Fig. 5.5 – Modèle objet pour le langage a n b n<strong>configuration</strong> implémentant ce langage est constituée du modèle objet présenté sur lafigure 5.5 et <strong>de</strong> l’ensemble <strong>de</strong> contraintes, exprimées en Z , suivant :1. La cardinalité <strong>de</strong> la relation catsAssociees est exactement 1∀ p : Phrase • #(p.catsAssociees) = 12. Le type <strong>de</strong> la catégorie liée à une phrase est S∀ p : Phrase • (p.catsAssociees) ∩ S ≠ 3. Une phrase et le S lui étant associé ont <strong>les</strong> m^emes valeurs<strong>de</strong> <strong>de</strong>but et <strong>de</strong> fin∀ p : Phrase • ∀ c : (p.catsAssociees) • (p.<strong>de</strong>but = c.<strong>de</strong>but) ∧ (p.fin = c.fin)- 64 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>4. Tout A et le S lui étant associé ont <strong>les</strong> m^emes valeurs <strong>de</strong> début∀ a : A • ∀ s : a.contientArev • a.<strong>de</strong>but = s.<strong>de</strong>but où contientArev définit le rôleinverse <strong>de</strong> la relation <strong>de</strong> composition contientA.5. Tout B et le S lui étant associé ont <strong>les</strong> m^emes valeurs <strong>de</strong> fin∀ b : B • ∀ s : b.contientBrev • b.fin = s.fin où contientBrev définit le rôle inverse<strong>de</strong> la relation <strong>de</strong> composition contientB.6. Tout S contenant un autre S possè<strong>de</strong> un <strong>de</strong>but plus petit que luiet une fin plus gran<strong>de</strong>∀ s : S | #(s.contientS) = 1 • ∀ s ′ : s.contientS •(s.<strong>de</strong>but < s ′ .<strong>de</strong>but) ∧ (s.fin > s ′ .fin)7. Un S ne peut contenir qu’un a ou qu’un b∀ s : S • (#(s.contientA) + #(s.contientB)) mod 2 = 0Le programme résultant <strong>de</strong>s spécifications précé<strong>de</strong>ntes autorise un fonctionnement analytique,génératif ou hybri<strong>de</strong> dans le sens où il est capable <strong>de</strong> compléter <strong>de</strong>s entréesincomplètes. La figure 5.6 illustre ce comportement. Les états du système y sont décritspar <strong>de</strong>s tup<strong>les</strong> 〈mots, syntaxe〉 (le caractère ? dénote un objet inconnu et le caractère⋄ un mot inconnu) et son comportement par <strong>de</strong>s règ<strong>les</strong> état entrée ↦→ état sortie. Cesrésultats sont issus <strong>de</strong> l’article [24].⎧⎨⎩〈aaabbb, ?〉 ↦→ 〈aaabbb, S(A, S(A, S(A, null, B), B), B)〉〈abbb, ?〉 ↦→ false〈⋄ a ⋄ b, ?〉 ↦→ 〈aabb, S(A, S(A, null, B), B)〉Fig. 5.6 – Exemp<strong>les</strong> <strong>de</strong> parsage5.3 Application au scrambling languageNous venons <strong>de</strong> voir que <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> permettaient <strong>de</strong> traiter <strong>les</strong>langages hors contexte, qui sont par définition projectifs. A présent, nous allons nousintéresser à la non projectivité, et prendre comme exemple la permutation <strong>de</strong>s arguments<strong>de</strong>s groupes verbaux en allemand (scrambling). Dans un premier temps , nous présentons<strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> lexicalisées [33], qui utilisent le concept <strong>de</strong> gap (trouentre <strong>les</strong> mots associés à une catégorie) pour rendre compte <strong>de</strong> la projectivité d’ungraphe donné. Nous montrerons que l’approche par modèle objet contraint englobe lathéorie <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> lexicalisées, enfin nous montrerons comment <strong>les</strong><strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> sont utilisées pour modéliser le scrambling language.5.3.1 Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> lexicalisées[33] présente <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> lexicalisées. Ces <strong>grammaires</strong> s’appuientsur le concept <strong>de</strong> drawings.- 65 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Un drawing est une forêt dont <strong>les</strong> noeuds sont totalement ordonnés. Un drawing Dest dénoté par D = (V ;⊳, ≺). Le couple (V ;⊳) forme une forêt et le couple (V ;≺)forme un ordre total. La figure 5.7 présente un drawing. Sur cette figure, chaque noeu<strong>de</strong>st associé à un mot (a, ... , f), l’ordre utilisé tel que a ≺ b ≺ c ≺ e ≺ f ≺ d. Une notionFig. 5.7 – Drawing appartenant à la classe D 1importante présentée dans cet article est celle <strong>de</strong> gap. La notion <strong>de</strong> gap est à rapprocher<strong>de</strong> la notion <strong>de</strong> projectivité <strong>de</strong>s arbres <strong>de</strong> dépendance. Par exemple le drawing présentésur la figure 5.7 est non-projectif et contient un gap (entre <strong>les</strong> noeuds c et d) contenant<strong>de</strong>ux éléments (e et f ). Les drawings peuvent être classifiés par leur gap-<strong>de</strong>gree. Le gap<strong>de</strong>greed’un drawing est le nombre <strong>de</strong> maximal <strong>de</strong> gap sur l’ensemble <strong>de</strong> ses noeuds. Onreprésente par D g la classe <strong>de</strong>s drawings dont aucun noeud ne possè<strong>de</strong> plus <strong>de</strong> g gap.Le drawing <strong>de</strong> la figure 5.7 appartient à la classe D 1 .Une grammaire <strong>de</strong> <strong>configuration</strong> lexicalisée est constituée d’une classe <strong>de</strong> drawing etd’un ensemble <strong>de</strong> contraintes lexica<strong>les</strong>. Elle est notée G := (Σ, Π, Lex) où Σ et Π sont <strong>de</strong>sensemb<strong>les</strong> d’étiquettes <strong>de</strong> noeuds et <strong>de</strong> relations, respectivement, et Lex un ensemble<strong>de</strong> contraintes lexica<strong>les</strong>. Lex est constitué <strong>de</strong> triplets <strong>de</strong> la forme 〈I , Ω ;φ〉, où I et Ωsont <strong>de</strong>s bags d’étiquettes <strong>de</strong> relations codant, respectivement, <strong>les</strong> relations entrantes etsortantes et φ un ensemble <strong>de</strong> contraintes.5.3.2 Le scrambling languageDans [33] <strong>les</strong> auteurs font référence au problème <strong>de</strong> la permutation <strong>de</strong>s arguments(<strong>de</strong> type nominal) <strong>de</strong>s groupes verbaux en allemand en se reposant sur l’article [7], quiprécise que ce phénomène est également présent dans <strong>les</strong> langues tel<strong>les</strong> que le koréen oule japonnais. Ce phénomène <strong>de</strong> « permutation autorisée » est connue sous le terme <strong>de</strong>scrambling. Dans l’article [7], <strong>les</strong> auteurs montrent qu’un formalisme peut modéliser <strong>les</strong>crambling s’il est capable <strong>de</strong> générer le langage suivant :SCR = {π(n [0] , . . . , n [k] )v [0] , . . . , v [k] | k ≥ 0 et π une permutation}où <strong>les</strong> indices (<strong>de</strong> 0 à k, donnés en exposants pour rester en accord avec l’expressionoriginale) mettent en relation un verbe (v) avec son argument <strong>de</strong> type nom (n). Lagrammaire <strong>de</strong> <strong>configuration</strong> lexicalisée proposée pour traiter ce problème est G SCR :=({n, v}, {n, v}, Lex). Lex contient <strong>les</strong> entrées suivantes :1. 〈{n}, ; t〉 (où t représente la contrainte toujours vraie)Cette entrée signifie que tout noeud étiqueté par n est une feuille.- 66 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>2. 〈, {n, v} ; n ≺ ω ∧ ω ≺ v ∧ w ⋊⋉ v〉 (ω est l’étiquette d’un noeud satisfiant cettecontrainte)Cette contrainte spécifie que le noeud racine (ici ω) est plus grand qu’un noeudétiqueté par n et adjacent à un noeud étiqueté par v.3. 〈{v}, {n, v} ; n ≺ ω ∧ ω ≺ v ∧ w ⋊⋉ v〉Cette entrée possè<strong>de</strong> la même signification que la précé<strong>de</strong>nte mais appliquée, nonpas à la racine, mais à tout noeud atteint par une relation étiquetée v.4. 〈{v}, {n} ; n ≺ ω〉Cette contrainte précise que tout noeud atteind par une relation étiquetée v etétant source d’une relation étiquetée n doit être situé après un noeud étiqueté n.La figure 5.8 présente le drawing d’une analyse d’un mot appartenant au langage SCR.Fig. 5.8 – Example <strong>de</strong> drawing codant un mot reconnu par le langage SCRNous proposons <strong>de</strong> montrer que notre formalisme englobe le formalisme <strong>de</strong>s <strong>grammaires</strong><strong>de</strong> <strong>configuration</strong> lexicalisées. Pour ce faire, dans un premier temps, nous présentonsune grammaire <strong>de</strong> <strong>configuration</strong> qui prend en compte, très naturellement, le problèmedu scrambling et que la sémantique <strong>de</strong>s contraintes présentées ci-<strong>de</strong>ssus possè<strong>de</strong> unéquivalent immédiat dans notre formalisme. Les catégories à introduire sont <strong>les</strong> catégoriesn et v. Le modèle objet est présenté sur la figure 5.9. Tout mot pourra donc être associéà une catégorie n ou v en fonction du lexique. Lors <strong>de</strong> la lecture <strong>de</strong> l’entrée le lexiqueassocie, à tout mot, une catégorie du type adéquat, en fonction <strong>de</strong> l’attribut « phon »,dont <strong>les</strong> attributs début et fin ont <strong>les</strong> même valeurs que ceux du mot. Traduction <strong>de</strong>scontraintes lexica<strong>les</strong> présentées plus haut :1. 〈{n}, ; t〉 - cette contraire est directement représentée sur le modèle objet. Eneffet, la classe n ne possè<strong>de</strong> pas <strong>de</strong> relation.2. 〈, {n, v} ; n ≺ ω ∧ ω ≺ v ∧ w ⋊⋉ v〉La contrainte <strong>de</strong> précé<strong>de</strong>nce entre ω et n est traduite par une contrainte <strong>de</strong>précé<strong>de</strong>nce entre toute instance <strong>de</strong> v et l’instance <strong>de</strong> n dont il est composé.∀ v i : v •(v i .n.fin ≤ v i .<strong>de</strong>but)La contrainte <strong>de</strong> juxtaposition (⋊⋉) est traduite par la contrainte exprimant l’ordresur <strong>les</strong> v :∀ v i : v •(v i .v.<strong>de</strong>but = (v i .fin) + 1)- 67 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.9 – Modèle objet <strong>de</strong> la grammaire <strong>de</strong> <strong>configuration</strong> codant la grammaire SCRL’ordre <strong>de</strong>s v est directement lié à l’ordre <strong>de</strong>s mots :Pour tout v, soit le mot associé à v n’a pas <strong>de</strong> suivant, soit la catégorie associée à son suivant appartientà la relation réflexive <strong>de</strong> v (et est donc <strong>de</strong> type v)∀ v i : v •(#(v i .catAssociee ∼ .suivant) = 0) ∨(v i .v = v i .catAssociee ∼ .suivant.catAssociee)Enfin, cette entrée lexicale correspond à la racine, pour traiter ce cas, nous utilisonsune contrainte spécifiant que la phrase (p) est liée à une catégorie v et que cettecatégorie ne compose pas une autre catégorie.p.catAssociee ∩ v ≠ ∀ v i : v | v i = p.catAssociee • #(v i .v ∼ ) = 03. Les <strong>de</strong>ux autres contraintes lexica<strong>les</strong> expriment <strong>les</strong> possibilités pour un noeud v.Les contraintes données ci-<strong>de</strong>ssus prennent en compte leur signification.Ce modèle objet contraint permet <strong>de</strong> fournir <strong>les</strong> k! solutions d’une entrée <strong>de</strong> taille 2k. Cessolutions correspon<strong>de</strong>nt aux permutations <strong>de</strong>s n dans le langage SCR. Nous présentons<strong>les</strong> analyses solutions fournies par l’implémentation <strong>de</strong> cette grammaire <strong>de</strong> <strong>configuration</strong>,avec Ilog JConfigurator, pour k <strong>de</strong> taille 3 sur <strong>les</strong> figures 5.10 et 5.11 (sur ces figuresseu<strong>les</strong> <strong>les</strong> relations entre <strong>les</strong> instances <strong>de</strong> v et <strong>de</strong> n sont explicitées, la structure <strong>de</strong> l’entréeétant celle présentée en 5.10).- 68 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.10 – Instances communes à toutes <strong>les</strong> solutions (codant l’entrée)5.3.3 Prise en compte du gap-<strong>de</strong>greeNous avons vu en section 5.3.1 que <strong>les</strong> drawings peuvent être classés par leurs gap<strong>de</strong>gree.Chaque noeud du drawing est associé à un mot <strong>de</strong> la phrase, nous sommespartis du constat que, pour un noeud non-feuille donné, un gap est constitué <strong>de</strong> motsconsécutifs non-atteints situés entre <strong>de</strong>s mots atteints par le noeud lui même ou par sesfils. Pour capturer la notion <strong>de</strong> gap-<strong>de</strong>gree par <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> il fautdéfinir <strong>les</strong> éléments suivants :– une catégorie Gap qui représente un gap, i.e. une suite <strong>de</strong> mots contigüs nonatteints (relation motsI ) par le noeud courant ou par ses fils– une catégorie GapCat qui hérite <strong>de</strong> Cat et contenant <strong>les</strong> attributs :– min et max : qui représentent <strong>les</strong> bornes du sous ensemble <strong>de</strong> mots à analyserpour chercher un gap pour le noeud considéré– gapDegree est le nombre <strong>de</strong> gap associés au noeud courant– gapDegreeMax correspond au nombre maximal <strong>de</strong> gap sous le noeud courantet <strong>les</strong> relations :– relation qui représente l’ensemble <strong>de</strong>s fils du noeud courant– gaps associant au noeud courant <strong>les</strong> gaps lui correspondant– motsI représentant l’ensemble <strong>de</strong>s mots non-atteints par le noeud courant ouses filsDéfinition <strong>de</strong>s classesGapCat : ClasseGap : ClasseGapCat ⊆ Cat- 69 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>(a) Solution 1 (b) Solution 2 (c) Solution 3(d) Solution 4 (e) Solution 5 (f) Solution 6Fig. 5.11 – Instances solutions pour le scrambling avec k = 3Définition <strong>de</strong>s attributs et <strong>de</strong>s relationsmax : GapCat " min : GapCat " gapDegree : GapCat " gapDegreeMax : GapCat " gap : GapCat " GapCatmotsI : GapCat " MotmotsI : Gap " Motrelation : GapCat " GapCatLe modèle objet associé au traitement <strong>de</strong>s gap par <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> estprésenté sur la figure 5.12.Contraintes sur GapCatContraintes sur <strong>les</strong> valeurs min, max et cardinalité <strong>de</strong> gap <strong>de</strong> GapCat. Ces attributsreprésentent <strong>les</strong> bornes <strong>de</strong> la suite <strong>de</strong> mots qu’il faut analyser pour chercher un gap ;∀ c : GapCat • c.max =max({n : | ∀ c ′ : c.relation • n = (c ′ .<strong>de</strong>but)} ∪ {c.<strong>de</strong>but})∀ c : GapCat • c.min = min({n : | ∀ c ′ : c.relation • n = (c ′ .fin)} ∪ {c.fin})∀ c : GapCat | #(c.relation) = 0 • #(c.gap) = 0Contraintes sur <strong>les</strong> attributs gapDegree et gapDegreeMax. Le premier représente le gap-Degree pour un noeud donné, le second correspond à une information remontante <strong>de</strong>s- 70 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.12 – Insertion du traitement <strong>de</strong>s gaps dans modèle objet <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong><strong>configuration</strong>feuil<strong>les</strong> à la racine pour déterminer le gap-<strong>de</strong>gree du graphe obtenu.∀ c : GapCat • c.gapDegree = #(c.gap)∀ c : GapCat • c.gapDegreeMax =max({n : | ∀ c ′ : c.relation • n = (c ′ .gapDegreeMax)} ∪ {c.gapDegree})Contraintes définissant <strong>les</strong> mots inutilisés pour une catégorie. Cette contrainte est définieen fonction <strong>de</strong>s constituants <strong>de</strong> la catégorie. Si une catégorie ne contient pas <strong>de</strong> constituants,alors c’est une feuille et <strong>les</strong> mots qu’elle n’utilise pas sont tous <strong>les</strong> mots <strong>de</strong> laphrase sauf lui même. Si une catégorie contient <strong>de</strong>s constituants alors l’ensemble <strong>de</strong>smots qu’elle n’utilise pas est défini récursivement par <strong>les</strong> mots inutilisés <strong>de</strong> ses fils, privééventuellement du motlié à la catégorie courante.∀ c : GapCat | #(c.relation) = 0 •c.motsI = Mot \ {c.catAssocieeRev}∀ c : GapCat | #(c.relation) > 0 •c.motsI = ( ⋂ (c.relation → motsI )) \ {c.catAssocieeRev}Contrainte liant tout mot inutilisé et compris entre max et min (bornes atteignab<strong>les</strong> parla catégorie ou un <strong>de</strong> ses successeurs) <strong>de</strong> la catégorie courante et un gap. Tout motsinutilisé doit appartenir à un gap.∀ c : GapCat • ∀ m : Mot |((m ∈ c.motsI ) ∧ (m.<strong>de</strong>but ≥ c.<strong>de</strong>but) ∧ (m.fin ≤ c.fin)) •m ∈ ⋃ (c.gap → motsI )- 71 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Contraintes sur GapCette contrainte définit que tous <strong>les</strong> mots liés à un gap sont contigüs.∀ g : Gap • #(g.motsI ) = max(g.motsI → fin) − min(g.motsI → <strong>de</strong>but)Sur le modèle objet contraint ainsi défini, le gap-<strong>de</strong>gree d’un modèle est porté par lacatégorie liée à la phrase, grâce à l’attribut gapDegreeMax. En effet cette catégorie estla racine du sous-graphe correspondant aux drawings <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>lexicalisées. Il est donc possible <strong>de</strong> forcer <strong>les</strong> types <strong>de</strong> graphes générés lors <strong>de</strong> la rechercheen fixant simplement la valeur du gapDegreeMax <strong>de</strong> la catégorie associée à la phrase.Par exemple pour le scrambling language, fixer le gapDegreeMax à 0 ne fournira aucunmodèle. Le fixer à 1, fournira <strong>les</strong> <strong>les</strong> modè<strong>les</strong> <strong>de</strong>s figures 5.11(a), 5.11(b), 5.11(e)et 5.11(f). Finallement fixer le gapDegree supérieur ou égal à 2 fournira <strong>les</strong> six modè<strong>les</strong>.5.4 Application aux <strong>grammaires</strong> <strong>de</strong> propriétésNous avons présenté dans le chapître 2 le formalisme <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> propriétés etvu la manière la plus élégante <strong>de</strong> représenter <strong>les</strong> structures <strong>de</strong> traits par une modélisationorientée objet. Nous allons à présent montrer l’utilisation <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>pour traiter <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> propriétés.Dans un premier temps, suppposant acquise la représentation <strong>de</strong> toute structure<strong>de</strong> traits en un modèle objet, nous présentons la traduction <strong>de</strong>s sept propriétés vuesprécé<strong>de</strong>mment en contraintes modélisées en Z . Ainsi toute GP pourra être modélisée enun modèle objet contraint. Dans un second temps, nous présentons un algorithme <strong>de</strong>traduction automatique <strong>de</strong> toute GP en un modèle objet contraint. Puis, nous traduironsle modèle objet contraint résultant en une instance <strong>de</strong> problème <strong>de</strong> JConfigurator.Finalement nous présenterons <strong>de</strong>s résultats sur l’utilisation <strong>de</strong>s modè<strong>les</strong> objet contraintspour l’analyse syntaxique du langage naturel. Ces résultats sont une première étape dansle traitement <strong>de</strong>s textes <strong>de</strong>scriptifs, et nous verrons dans <strong>les</strong> chapitres suivants commentces analyses vont pouvoir coopérer avec la sémantique <strong>de</strong>s <strong>de</strong>scriptions.5.4.1 Traduction <strong>de</strong>s propriétés en un modèle objet contraintDans le chapitre précé<strong>de</strong>nt nous avons montré que <strong>les</strong> structures <strong>de</strong> traits peuventse représenter par un modèle objet restreint aux constructions utilisées dans <strong>les</strong> modè<strong>les</strong>objet contraints. Nous allons présenter maintenant une traduction <strong>de</strong>s propriétés <strong>de</strong>sGP en contraintes et relations dans le formalisme <strong>de</strong>s modè<strong>les</strong> objet contraints.Dans la suite <strong>de</strong> cette section, nous adopterons <strong>les</strong> notations suivantes :– SX représente un syntagme générique– A i , B j , C k ; i ∈ [1, n] ; j ∈ [1, m] ; k ∈ [1, p] représentent <strong>de</strong>s catégoriesLes traductions génériques <strong>de</strong>s contraintes <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> propriétés vers un modèleobjet contraint ont été présentées dans [26] et [25].- 72 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>TêtePour tout syntagme SX <strong>les</strong> catégories pouvant être tête sont présentées comme unensemble dont exactement un élément doit être choisi. Supposons que cet ensemble soitA = {A 1 , .., A n }. Dans ces conditions, la propriété <strong>de</strong> tête s’écrit :⎡⎤...⎡⎤... ...SX}⎢Props⎢⎣ ⎣Tête{A 1 , .., A n ⎥⎦... ...Nous savons donc qu’il existe au moins n+1 catégories dans le modèle générique :SX , A 1 , .., An. Et nous pouvons représenter la contrainte <strong>de</strong> tête comme une fonction <strong>de</strong>la classe SX vers l’ensemble A :SXTete : SX " {A 1 , .., A n }Cette fonction garantit l’obligation <strong>de</strong> présence et l’unicité <strong>de</strong> la tête pour le syntagmeSX .Cependant, cette contrainte peut être exprimée d’une manière différente. En effet,il est possible d’utiliser n relations <strong>de</strong> composition <strong>de</strong> SX vers chacune <strong>de</strong>s catégoriesA i , i ∈ [1, n], comme présenté sur la figure 5.13, et la contrainte suivante qui assurel’unicité <strong>de</strong> la tête :∀ sx : SX • #(sx.SXTeteA 1 ) + ..#(sx.SXTeteA n ) = 1Fig. 5.13 – SX peut avoir comme tête {A 1 , .., A n }FacultativitéDe même que pour la propriété <strong>de</strong> tête, <strong>les</strong> éléments facultatifs sont présentés sousla forme d’un ensemble. Supposons que l’ensemble B = {B 1 , .., B m } soit l’ensemble <strong>de</strong>scatégories facultatives du syntagme SX . Nous avons donc la formulation suivante :- 73 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>⎡...SX⎢Props⎣⎤⎡⎤... ...}⎢⎣Facult{B 1 , .., B m ⎥⎦... ...De même que pour la propriété <strong>de</strong> tête, <strong>de</strong>ux formulations sont possib<strong>les</strong> :– la première consiste en une fonction unique <strong>de</strong> la classe SX vers l’ensemble <strong>de</strong>sparties <strong>de</strong> l’ensemble B :SXFacult : SX " {B 1 , .., B m }– la secon<strong>de</strong> est un ensemble <strong>de</strong> relations <strong>de</strong> compositions sur le modèle objetgénérique entre la classe SX et chacune <strong>de</strong>s classes représentant <strong>les</strong> catégoriesB i , comme présenté sur la figure 5.14.Fig. 5.14 – SX peut contenir une ou plusieurs catégories parmi {B 1 , .., B m }ConstitutionOriginellement, cette propriété permet <strong>de</strong> représenter tous <strong>les</strong> éléments, qu’ils soienttête ou facultatifs, intervenant dans la constitution d’un syntagme. Cette propriété remplacecelle <strong>de</strong> facultativité dans [11]. Nous proposons, pour faciliter le traitement, l’utilisation<strong>de</strong>s <strong>de</strong>ux propriétés conjointement, afin <strong>de</strong> rendre le plus accessible possible <strong>les</strong>informations dont nous aurons besoin. Supposons que <strong>les</strong> têtes sont l’ensemble A et<strong>les</strong> facultatifs l’ensemble B. Cette contrainte peut, tout comme <strong>les</strong> <strong>de</strong>ux précé<strong>de</strong>ntes etplus généralement comme toute propriété ayant une sémantique <strong>de</strong> constitution, êtrereprésentée <strong>de</strong> <strong>de</strong>ux manières différentes :– par une fonction :SXConst : SX " Objet∀ sx : SX • sx.SXConst = ({sx.SXTete} ∪ sx.SXFacult)- 74 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>– par une relation <strong>de</strong> composition entre SX et la classe Cat, représentée sur lafigure 5.15, ainsi que par <strong>les</strong> contraintes :∀ sx : SX • (sx.SXTeteA 1 ) ⊆ sx.SXConst...∀ sx : SX • (sx.SXTeteA n ) ⊆ sx.SXConst∀ sx : SX • (sx.SXFacultB 1 ) ⊆ sx.SXConst...∀ sx : SX • (sx.SXFacultB m ) ⊆ sx.SXConstFig. 5.15 – Représentation <strong>de</strong> la relation <strong>de</strong> constitutionUnicitéLa propriété d’unicité se présente elle aussi comme un ensemble <strong>de</strong> catégories. Chacune<strong>de</strong>s catégories <strong>de</strong> cet ensemble ne peut avoir qu’une seule instance dans la partiefacultativité. Supposons que l’ensemble C = {C 1 , .., C p }, un sous-ensemble <strong>de</strong> l’ensembleB <strong>de</strong>s facultatifs <strong>de</strong> SX , représente <strong>les</strong> éléments facultatifs <strong>de</strong> SX , nous avons alors l’expression<strong>de</strong> la propriété d’unicité <strong>de</strong> la manière suivante :⎡⎤...⎡⎤...SX}⎢Props⎢⎣ ⎣Unic{C 1 , .., C p ⎥⎦...Cette propriété est une contrainte portant sur le nombre d’éléments présents dans l’intersection<strong>de</strong> l’ensemble SXConst et <strong>de</strong> l’ensemble d’objets <strong>de</strong> C i , ∀ i ∈ [1, p] :∀ sx : SX • #(sx.SXConst ∩ C 1 ) ≤ 1...∀ sx : SX • #(sx.SXConst ∩ C p ) ≤ 1- 75 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>ExigenceLa propriété d’exigence lie un ensemble <strong>de</strong> catégories et un ensemble d’ensemb<strong>les</strong><strong>de</strong> catégories. Elle signifie que, si tous <strong>les</strong> éléments <strong>de</strong> l’ensemble <strong>de</strong> catégories sontprésents dans le syntagme, alors, tous <strong>les</strong> éléments d’au moins un ensemble <strong>de</strong> l’ensembled’ensemb<strong>les</strong> <strong>de</strong> catégories doivent être également présents. La représentation générique<strong>de</strong> cette propriété est la suivante :⎡⎤...⎢ ⎡⎤⎥SXProps⎢⎣... ...Exig⎢⎣ ...... ...{A 1 , .., A n}⇒{ {B 11 , .., B 1l},..,} {B }k1 , .., B kq ⎥⎦où chaque B ij est une catégorie. La traduction <strong>de</strong> cette propriété en contrainte <strong>de</strong> modèleobjet contraint exprimée en Z est la suivante : rappelons que l’ensemble {A 1 , .., A n } estnoté A et notons SB 1 l’ensemble {B 11 , .., B 1l }, ... ,SB k l’ensemble {B k1 , .., B kq } ; pourfinir B ′ l’ensemble {SB 1 , .., SB k }.Exclusion∀ sx : SX •∀ a : A | (sx.SXConst ∩ a ≠ ) •#{b ′ : B ′ | ∀ b : b ′ • sx.SXConst ∩ b ≠ } ≥ 1La propriété d’exclusion engage <strong>de</strong>ux ensemb<strong>les</strong> <strong>de</strong> catégories et signifie que ces <strong>de</strong>uxensemb<strong>les</strong> ne peuvent pas cooccurrer dans un même syntagme. Cette propriété se note :⎡⎤...⎡⎤... ...}}SXExcl{A 1 , .., A n {B 1 , .., B m Props⎢ ⎢⎣ ⎣ ...⎥⎦... ...En notant <strong>de</strong> nouveau A l’ensemble {A 1 , .., A n } et B l’ensemble {B 1 , .., B m }, cette propriétése traduit par la contrainte :∀ sx : SX • ∀ a : A ; b : B •((sx.SXConst ∩ a ≠ ) ⇒ (sx.SXConst ∩ b = )) ∧((sx.SXConst ∩ b ≠ ) ∧ (sx.SXConst ∩ a = ))- 76 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>LinéaritéLa propriété <strong>de</strong> linéarité spécifie <strong>de</strong>s ordres <strong>de</strong> précé<strong>de</strong>nce linéaire pour <strong>de</strong>ux ensemb<strong>les</strong><strong>de</strong> catégories. Pour traduire la linéarité, nous utilisons une contrainte portantsur <strong>les</strong> attributs <strong>de</strong>but et fin présents dans toute catégorie. En effet, ces <strong>de</strong>ux attributssont définis dans la classe Cat dont toutes <strong>les</strong> catégories héritent. La propriété <strong>de</strong>linéarité se présente sous la forme⎡⎤...⎢ ⎡⎤⎥SXProps⎢⎣et se traduit par la contrainte :Accord... ...Lin⎢⎣ ...... ...{A 1 , .., A n}≺}{B 1 , .., B m ⎥⎦∀ sx : SX • ∀ a : A ; b : B •((sx.SXConst ∩ a ≠ ) ∧ (sx.SXConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)La propriété d’accord porte sur l’égalité <strong>de</strong> valeurs <strong>de</strong> traits. Les traits concernés sonttraités dans notre formalisme comme <strong>de</strong>s attributs <strong>de</strong>s classes. La propriété se note :⎡⎤...⎡⎤... ...SXAcc acc1(X) ≡ acc1(Y)⎢Props⎢⎣ ⎣ ...⎥⎦... ...où acc1 représente un <strong>de</strong>s traits d’accord, comme genre ou nombre par exemple, et Xet Y sont <strong>de</strong>s catégories. Cette propriété est traduite par la contrainte suivante :∀ sx : SX ; x : X ; y : Y | (x ∈ sx.SXConst) ∧ (y ∈ sx.SXConst) • x.acc1 = y.acc1Il est possible d’ajouter tout type <strong>de</strong> propriétés selon <strong>les</strong> besoins. Toute autre contrainteportant sur <strong>les</strong> relations entre <strong>les</strong> catégories constitutives d’un syntagme ou sur <strong>les</strong> attributs<strong>de</strong> ces mêmes catégorie sera traduite <strong>de</strong> la même manière que celle que nousvenons <strong>de</strong> voir.5.4.2 Traduction automatique d’une GPPour pouvoir traduire automatiquement une grammaire, il faut un langage pourdécrire cette grammaire. Nous proposons l’écriture <strong>de</strong> la grammaire en LaTeX. Cette- 77 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>approche permet, d’une part, <strong>de</strong> décrire la grammaire le plus formellement possiblepar <strong>de</strong>s structures <strong>de</strong> traits grâce notamment au package avm 1 et, d’autre part, <strong>de</strong>commenter celle-ci.Nous avons développé un package LaTeX 2 qui permet <strong>de</strong> décrire toute grammaire <strong>de</strong>propriétés. A partir du fichier source LaTeX, nous avons implémenté un traducteur quipermet <strong>de</strong> créer le modèle objet contraint associé à la grammaire ainsi que le problème<strong>de</strong> <strong>configuration</strong> qui permet <strong>de</strong> chercher <strong>de</strong>s solutions lorsqu’une entrée est proposée.Cette traduction suit strictement la même présentation que précé<strong>de</strong>mment ; nous endonnons ci-après <strong>les</strong> règ<strong>les</strong> <strong>de</strong> réécriture.Les traits d’attributsLes traits d’attributs sont <strong>de</strong>s traits qui correspon<strong>de</strong>nt directement à <strong>de</strong>s attributs [<strong>de</strong> classes dans le modèle objet. Ce sont <strong>les</strong> traits définis dans la partie Trait ...]<strong>de</strong>toute catégorie. Il est soit possible d’établir une liste <strong>de</strong> tous <strong>les</strong> traits autorisés 3 , soit<strong>de</strong> créer <strong>les</strong> attributs correspondants directement lors <strong>de</strong> la lecture. Dans <strong>les</strong> <strong>de</strong>ux cas,<strong>les</strong> règ<strong>les</strong> <strong>de</strong> réécriture se représentent <strong>de</strong> manière similaire :– il faut obligatoirement être placé dans la valeur <strong>de</strong> l’attribut trait– le syntagme en train d’être défini est SX– att1 représente l’attribut et domatt1 son domaine <strong>de</strong> valeurs[att1 domatt1]=⇒ (SXatt1 : SX " domatt1)Ajout à la classe SX <strong>de</strong> l’attribut att1.Les traits <strong>de</strong> propriétés[Les traits <strong>de</strong> propriétés sont <strong>de</strong>s valeurs du trait complexe Props ...]. Comme nousavons vu dans la section 5.4.1, <strong>les</strong> propriétés disposent d’une traduction automatisable ;nous en rappelons ci-<strong>de</strong>ssous <strong>les</strong> règ<strong>les</strong> <strong>de</strong> réécriture :Traduction 1 (Tête)[Tête{A 1 , .., A n} ] =⇒ (SXTete : SX " {A 1 , .., A n })Ajout à la classe SX <strong>de</strong>s relations avec <strong>les</strong> Ai1 avm.sty <strong>de</strong> Chris Manning’s disponible électroniquement à l’adresse http ://nlp.stanford.edu/ manning/tex/2 gp.sty - disponible électroniquement à l’adresse http ://www.lsis.org/∼estratatm/<strong>configuration</strong>/pgp/gp.sty3 ce que nous proposons dans le fichier attributs.<strong>de</strong>f disponible surhttp ://www.lsis.org/∼estratatm/<strong>configuration</strong>/pgp/featuresValues.<strong>de</strong>f- 78 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Traduction 2 (Facultativité)[Facult{B 1 , .., B m} ] =⇒ (SXFacult : SX " {B 1 , .., B m })Ajout à la classe SX <strong>de</strong>s relations avec <strong>les</strong> BiLes propriétés qui suivent nécessitent la relation SXConst définie dans le chapitre 5.4.1.SXConst : SX " Objet[Unic{C 1 , .., C p} ] =⇒Traduction 3 (Unicité)∀ sx : SX • #(sx.SXConst ∩ C 1 ) ≤ 1...∀ sx : SX • #(sx.SXConst ∩ C p ) ≤ 1Restriction <strong>de</strong>s cardinalités <strong>de</strong>s relations <strong>de</strong> SXvers <strong>les</strong> CiTraduction 4 (Exigence)[Exig} { { }} {A 1 , .., A n ⇒ B 11 , .., B 1l ,..,{B }] =⇒k1 , .., B kq∀ sx : SX •∀ a : A | (sx.SXConst ∩ a ≠ ) •#{b ′ : B ′ | ∀ b : b ′ • sx.SXConst ∩ b ≠ } ≥ 1Si tous <strong>les</strong> Ai sont présents dans SX au moins un ensemble <strong>de</strong> Bidoit ^etre présentTraduction 5 (Exclusion)[Excl} { } {A ] 1 , .., A n B 1 , .., B=⇒ m∀ sx : SX • ∀ a : A ; b : B •((sx.SXConst ∩ a ≠ ) ⇒ (sx.SXConst ∩ b = )) ∧((sx.SXConst ∩ b ≠ ) ∧ (sx.SXConst ∩ a = ))L’ensemble <strong>de</strong>s Ai et l’ensemble <strong>de</strong>s Bi ne peuvent pas ^etreprésents en m^eme temps dans SX- 79 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>[LinTraduction 6 (Linéarité)} { } {A ] 1 , .., A n ≺ B 1 , .., B=⇒ m∀ sx : SX • ∀ a : A ; b : B •((sx.SXConst ∩ a ≠ ) ∧ (sx.SXConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)Tout élément Ai doit ^etre placé avant tout élément Bi dans SXTraduction 7 (Accord)[Acc acc1(X) ≡ acc1(Y)]=⇒∀ sx : SX ; x : X ; y : Y | (x ∈ sx.SXConst) ∧ (y ∈ sx.SXConst) • x.acc1 = y.acc1Tout X et tout Y s’accor<strong>de</strong>nt en acc1 dans SXUn exemple complet <strong>de</strong> définition et traduction d’une grammaireLa grammaire proposée ici permet <strong>de</strong> traiter un sous-ensemble du français. Ce sousensemblecorrespond au fragment du langage naturel dont nous aurons besoin pouranalyser <strong>de</strong>s <strong>de</strong>scriptions.Pour chaque catégorie, nous présentons sa définition puis sa traduction en modèleobjet contraint. Il est à noter que toute catégorie possè<strong>de</strong> un début et une fin ; cesattributs sont factorisés dans la classe Cat et lors <strong>de</strong> la traduction, toutes <strong>les</strong> classescorrespondantes aux catégories héritent <strong>de</strong> Cat.Les catégories termina<strong>les</strong> :Ces catégories sont attachées aux mots. Nous nous autorisons <strong>les</strong> étiquettes suivantes :Nom(N), Adjectif(Adj), Adverbe(Adv), Pronom(Pro), Déterminant(Det), Verbe(V) etPréposition(Prep). Les avm <strong>de</strong> ces étiquettes sont présentées sur la figure 5.16.Ces catégories ne contiennent pas <strong>de</strong> propriété, ainsi leur traduction est immédiateet consiste simplement à la création <strong>de</strong>s classes correspondantes, avec <strong>les</strong> attributsadéquats. La figure 5.17 présente ce sous-modèle.Les catégories non-termina<strong>les</strong> :Les catégories non-termina<strong>les</strong> que nous utilisons sont : Syntagme Nominal(SN), SyntagmeVerbal(SV), Syntagme Prépositionnel(SPrep), le syntagme Adjectival(SAdj) etle syntagme Adverbial(SAdv). Toutes ces catégories héritent <strong>de</strong> la classe Cat, cependantpour <strong>de</strong>s raisons <strong>de</strong> lisibilité <strong>de</strong>s diagrammes, nous cacherons cette classe.- 80 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>26N 4traits23genre fem, masc, neut674nombresing, plur5personne 1, 2, 3hCommun heritagehPropre heritageiNiN26Adj 4traits23genre fem, masc, neut674nombresing, plur5personne 1, 2, 3Adv []26Pro 4traits26Det 4traits26V 4traits23genre fem, masc, neut674nombresing, plur5personne 1, 2, 323genre fem, masc, neut674nombresing, plur5personne 1, 2, 323genre fem, masc, neut674nombresing, plur5personne 1, 2, 3Prep []Fig. 5.16 – AVM <strong>de</strong>s catégories termina<strong>les</strong>Le syntagme nominal est décrit par l’avm <strong>de</strong> la figure 5.18. Il est traduit par lacréation d’une classe héritant <strong>de</strong> Cat, contenant <strong>les</strong> attributs genre et nombre ainsi quepar <strong>les</strong> éléments suivants :– TêteLes relations SNTeteN et SNTetePro sont présentées sur la figure 5.19. Une têteest unique et obligatoire, ce qui est transcrit par la contrainte :∀ sn : SN • (#(sn.SNTeteN ) + #(sn.SNTetePro)) = 1- 81 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.17 – Sous-modèle représentant <strong>les</strong> catégories termina<strong>les</strong> <strong>de</strong> la grammaire <strong>de</strong>scriptiveLes attributs genre, nombre et personnes prennent <strong>les</strong> valeurs <strong>de</strong> ceux <strong>de</strong> la tête :∀ sn : SN • (#(sn.SNTeteN ) = 1) ⇒(∀ n : N | n ∈ (sn.SNTeteN ) •((sn.SNGenre) = (n.NGenre)) ∧((sn.SNNombre) = (n.NNombre)))∀ sn : SN • (#(sn.SNTetePro) = 1) ⇒(∀ pro : Pro | pro ∈ (sn.SNTetePro) •((sn.SNGenre) = (pro.NGenre)) ∧((sn.SNNombre) = (pro.NNombre)))– FacultativitéLes relations SNFacultDet, SNFacultSAdj et SNFacultSPrep sont représentées surla figure 5.20. La définition <strong>de</strong>s catégories SAdj et SPrep est présentée plus bas.Cependant il est raisonnable d’utiliser <strong>les</strong> classes correspondantes pour représenterla propriété <strong>de</strong> facultativité du SN .– ConstitutionLa relation SNConst est définie sur la figure 5.21. A cette relation, il faut associer<strong>les</strong> contraintes :∀ sn : SN • sn.SNTeteN ⊆ sn.SNConst∀ sn : SN • sn.SNTetePro ⊆ sn.SNConst∀ sn : SN • sn.SNFacultDet ⊆ sn.SNConst∀ sn : SN • sn.SNFacultSAdj ⊆ sn.SNConst∀ sn : SN • sn.SNFacultSPrep ⊆ sn.SNConst– UnicitéLa propriété d’unicité se traduit par une restriction <strong>de</strong>s cardinalités pour <strong>les</strong>éléments présents dans la relation <strong>de</strong> constitution : <strong>les</strong> éléments Det, SAdj et- 82 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>2traitsSNprops64"#3genre fem ;mascnombre sing ;plur23têteN ;Profacultativité Det ;SAdj ;SPrepunicité Det ;SAdj ;SPrepexigence Det ⇒ N [Commun]N [Commun] ⇒ Detexclusion Adj ProDet ProN [propre] Detlinéarite Det ≺ NN ≺ PrepPaccord Det.genre ≡ N.genreDet.nombre ≡ N.nombreSAdj.genre ≡ N.genre64SAdj.nombre ≡ N.nombre75Fig. 5.18 – Catégorie SNFig. 5.19 – Sous-modèle pour la propriété <strong>de</strong> tête du SNSPrep ne peuvent apparaître qu’une fois.∀ sn : SN • #(sn.SNConst ∩ Det) ≤ 1∀ sn : SN • #(sn.SNConst ∩ SAdj ) ≤ 1∀ sn : SN • #(sn.SNConst ∩ SPrep) ≤ 1– ExigenceCette propriété spécifie que, si un Det est présent, alors un noyau <strong>de</strong> type Ndoit forcément être présent. La notation complète <strong>de</strong> cette propriété <strong>de</strong>vrait être :{Det} ⇒ {{N ∗}} mais par abus <strong>de</strong> notation <strong>les</strong> accola<strong>de</strong>s <strong>les</strong> plus extérieures dumembre <strong>de</strong> droite ont été omises. La génération automatique <strong>de</strong> cette contraintefournit la contrainte suivante :∀ sn : SN • ∀ a : {Det} | (sn.SNConst ∩ a ≠ ) •#{b : {Commun} | (sn.SNConst ∩ b ≠ )} ≥ 1- 83 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.20 – Sous-modèle pour la propriété <strong>de</strong> facultativité du SNFig. 5.21 – Sous-modèle pour la propriété <strong>de</strong> constitution du SN– Exclusion∀ sn : SN • ∀ a : {Commun} | (sn.SNConst ∩ a ≠ ) •#{b ′ : {{Det}} | ∀ b : b ′ • (sn.SNConst ∩ b ≠ )} ≥ 1∀ sn : SN • ∀ a, b : Classe | (a ∈ {Det}) ∧ (b ∈ {Pro}) •((sn.SNConst ∩ a ≠ ) ⇒ (sn.SNConst ∩ b = )) ∧((sn.SNConst ∩ b ≠ ) ∧ (sn.SNConst ∩ a = ))∀ sn : SN • ∀ a, b : Classe | (a ∈ {SAdj }) ∧ (b ∈ {Pro}) •((sn.SNConst ∩ a ≠ ) ⇒ (sn.SNConst ∩ b = )) ∧((sn.SNConst ∩ b ≠ ) ∧ (sn.SNConst ∩ a = ))∀ sn : SN • ∀ a, b : Classe | (a ∈ {Det}) ∧ (b ∈ {Propre}) •((sn.SNConst ∩ a ≠ ) ⇒ (sn.SNConst ∩ b = )) ∧((sn.SNConst ∩ b ≠ ) ∧ (sn.SNConst ∩ a = ))– LinéaritéLes <strong>de</strong>ux propriétés <strong>de</strong> linéarité du SN ordonnent <strong>les</strong> éléments Det et N ainsi que<strong>les</strong> éléments N et SPrep. Pour traduire ces précé<strong>de</strong>nces linéaires, nous utilisons <strong>les</strong>- 84 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>attributs <strong>de</strong>but et fin définis dans la classe Cat :∀ sn : SN • ∀ a, b : Classe | a ∈ {Det} ∧ b ∈ {N } •((sn.SNConst ∩ a ≠ ) ∧ (sn.SNConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)∀ sn : SN • ∀ a, b : Classe | a ∈ {N } ∧ b ∈ {SPrep} •((sn.SNConst ∩ a ≠ ) ∧ (sn.SNConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)– AccordDans un syntagme nominal, le déterminant et le syntagme adjectival s’accor<strong>de</strong>nten genre et en nombre avec le nom :∀ sn : SN ; x : Det ; y : N |(x ∈ sn.SNConst) ∧ (y ∈ sn.SNConst) • x.genreDet = y.genreN∀ sn : SN ; x : Det ; y : N |(x ∈ sn.SNConst) ∧ (y ∈ sn.SNConst) • x.nombreDet = y.nombreN∀ sn : SN ; x : SAdj ; y : N |(x ∈ sn.SNConst) ∧ (y ∈ sn.SNConst) • x.genreSAdj = y.genreN∀ sn : SN ; x : SAdj ; y : N |(x ∈ sn.SNConst) ∧ (y ∈ sn.SNConst) • x.nombreSAdj = y.nombreNLe syntagme prépositionnel est représenté sous la forme d’avm sur la figure 5.22.Cette catégorie est traduite en une classe SPrep héritant <strong>de</strong> Cat et ne contenant aucunattribut propre. Cette catégorie ne permet pas <strong>de</strong> prendre en compte <strong>les</strong> syntagmes2traits []2têteSPrepfacultativitépropsunicité6 64 4exigencelinéarite33PrepSNSNPrep ⇒ SN75Prep ≺ SNFig. 5.22 – Catégorie SPrepprépositionnels utilisant <strong>de</strong>s circonstanciel<strong>les</strong>. Nous n’aurons pas besoin <strong>de</strong> ce genre <strong>de</strong>constructions pour traiter <strong>les</strong> phrases <strong>de</strong>scriptives. La catégorie SPrep met en jeu cinqpropriétés, décrites ci-après.– TêteL’ensemble <strong>de</strong>s éléments tête ne contient qu’un singleton. Cependant, la traductionautomatique produit la contrainte suivante :∀ sprep : SPrep • #(sprep.SPrepTetePrep) = 1- 85 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Cette contrainte représente bien le fait qu’un SPrep doit contenir une tête <strong>de</strong> typePrep. La relation entre <strong>les</strong> classes SPrep et Prep est représentée sur le diagramme<strong>de</strong> la figure 5.23.Fig. 5.23 – La propriété <strong>de</strong> tête du syntagme prépositionnel– FacultativitéLe syntagme prépositionnel ne contient qu’une seule relation <strong>de</strong> facultativité :SPrepFacultSN . Cette relation est présentée sur la figure 5.24Fig. 5.24 – Eléments facultatifs d’un syntagme prépositionnel– ConstitutionLa propriété <strong>de</strong> constitution est alors créée en fonction <strong>de</strong> la tête et <strong>de</strong> l’élémentfacultatif :∀ sprep : SPrep • sprep.SPrepTetePrep ⊆ sprep.SPrepConst– UnicitéUn seul SN peut être facultatif :∀ sprep : SPrep • #(sprep.SPrepConst ∩ SN ) ≤ 1- 86 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>– Exigence :Cette propriété permet <strong>de</strong> spécifier que la forme d’un SPrep est Prep + SN .∀ sprep : SPrep • ∀ a : Classe | a ∈ {Prep} • (sprep.SPrepConst ∩ a ≠ ) ⇒#{b ′ : {{SN }} | ∀ b : b ′ • (sprep.SPrepConst ∩ b ≠ )} ≥ 1– LinéaritéLa propriété <strong>de</strong> linéarité spécifie que la préposition doit être avant le syntagmenominal.∀ sprep : SPrep • ∀ a, b : Classe | a ∈ {Prep} ∧ b ∈ {SN } •((sprep.SPrepConst ∩ a ≠ ) ∧ (sprep.SPrepConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)Le syntagme verbal est décrit sur la figure 5.25. Cette catégorie est traduite en laclasse SV qui hérite <strong>de</strong> Cat et ne contient pas d’attribut propre.2SVprops642têtefacultativitéunicité64linéarite33VSN ;SAdvSN ;SAdv7V ≺ SN ;SAdv575Fig. 5.25 – Catégorie SV– TêteLa propriété <strong>de</strong> tête oblige à disposer d’un verbe dans un SV :∀ sv : SV • #(sv.SVTeteV ) = 1Le diagramme associé est représenté sur la figure 5.26.– FacultativitéLes <strong>de</strong>ux seu<strong>les</strong> catégories pouvant apparaître dans un SV , hormis le verbe tête,sont <strong>les</strong> syntagmes nominaux et adverbiaux associés aux relations SVFacultSN etSVFacultSAdv. La figure 5.27 représente le modèle objet correspondant.– UnicitéLes <strong>de</strong>ux catégories facultatives ne peuvent pas apparaître plus d’une fois chacune :∀ sv : SV • #(sv.SVConst ∩ SN ) ≤ 1∀ sv : SV • #(sv.SVConst ∩ SAdv) ≤ 1– LinéaritéLe verbe doit être placé avant tout autre élément(SN ou SAdv) :∀ sv : SV • ∀ a, b : Classe | a ∈ {V } ∧ b ∈ {SN , SAdv} •((sv.SVConst ∩ a ≠ ) ∧ (sv.SVConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)- 87 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.26 – La propriété <strong>de</strong> tête du syntagme verbalFig. 5.27 – La propriété <strong>de</strong> facultativité du syntagme verbalLe syntagme adverbial est présenté sur la figure 5.28. La catégorie SAdv estreprésenté uniquement par une tête <strong>de</strong> type Adv. L’ensemble <strong>de</strong>s syntagmes adverbiaux<strong>de</strong> la langue française ne sont pas reconnus dans cette grammaire. Cette catégorie necontient qu’un seul élément et pourrait être supprimée et remplacée par l’adverbe luimême.∀ sadv : SAdv • #(sadv.SAdvTeteAdv) = 1Le modèle objet associé est défini sur la figure 5.29.La catégorie Phrase représente <strong>les</strong> structures <strong>de</strong> plus haut niveau <strong>de</strong>s phrases quel’utilisateur est autorisé à formuler. Dans notre exemple, <strong>les</strong> phrases doivent être obligatoirementconstituées d’un syntagme nominal, qui sera le sujet, et d’un syntagme verbal.Nous avons vu précé<strong>de</strong>mment que le syntagme verbal pouvait contenir éventuellementl’objet du verbe. L’avm <strong>de</strong> la catégorie phrase est présenté sur la figure 5.30.– TêteDe même que pour toutes <strong>les</strong> catégories possédant une seule tête, la contrainte- 88 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>2SAdv 4 traits [] hprops tête3i5AdvFig. 5.28 – Catégorie SAdvFig. 5.29 – La propriété <strong>de</strong> tête du syntagme adverbialsuivante associée au diagramme <strong>de</strong> la figure 5.31 est nécessaire et suffisante :∀ phrase : Phrase • #(PhraseTeteSV ) = 1– FacultativitéLe syntagme nominal doit précé<strong>de</strong>r le syntagme verbal :∀ phrase : Phrase • ∀ a, b : Classe | a ∈ {SN } ∧ b ∈ {SV } •((sv.PhraseConst ∩ a ≠ ) ∧ (sv.PhraseConst ∩ b ≠ )) ⇒(∀ a ′ : a ; b ′ : b • a ′ .fin ≤ b ′ .<strong>de</strong>but)L’ensemble <strong>de</strong>s catégories présentées ci-<strong>de</strong>ssus permettent d’analyser <strong>de</strong>s phrasesque nous nommerons ”phrases <strong>de</strong> <strong>de</strong>scription”. En effet, le type <strong>de</strong> phrases que nouscherchons à manipuler est <strong>de</strong> type : sujet verbe complément(s), comme par exemple :”Le pc a <strong>de</strong>ux disques durs”.2traits []2têtePhrasefacultativité6props64 4unicitélinéarite33SVSNSN75SN ≺ SV*Fig. 5.30 – Catégorie Phrase- 89 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.31 – La propriété <strong>de</strong> tête <strong>de</strong> la catégorie PhraseNous présentons à présent la partie entrée du modèle objet contraint. Nous avons vuqu’une catégorie phrase était utilisée pour spécifier le type <strong>de</strong> syntagmes que celle-ci étaitautorisée à contenir. A présent regardons comment nous traitons le domaine lexical.Le modèle objet contraint attend comme entrée un texte contenant <strong>de</strong>s phrases, cesphrases contenant el<strong>les</strong>-mêmes <strong>de</strong>s mots qui seront associés à <strong>de</strong>s catégories termina<strong>les</strong>.La figure 5.32 décrit cette partie <strong>de</strong> notre modèle.Fig. 5.32 – Entrée lexicale du modèleNous disposons ainsi d’un modèle objet contraint permettant d’analyser syntaxiquementtoute phrase <strong>de</strong> <strong>de</strong>scription contenant <strong>de</strong>s mots du lexique. Tout mot inconnu serapar défaut associé à un nom propre. La figure 5.33 rassemble l’ensemble <strong>de</strong>s sous-modè<strong>les</strong>présentés ci-<strong>de</strong>ssus, en un seul diagramme <strong>de</strong> classes. La section suivante présente <strong>les</strong>résultats obtenus lors <strong>de</strong> l’implémentation sous la forme d’un problème <strong>de</strong> <strong>configuration</strong>du modèle objet contraint présenté ici.- 90 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.33 – Modèle objet global <strong>de</strong> l’analyseur syntaxique <strong>de</strong> <strong>de</strong>scriptions5.5 ImplémentationDe nombreuses implémentations ont déjà été réalisées pour traiter le français en utilisant<strong>les</strong> <strong>grammaires</strong> <strong>de</strong> propriétés [62, 5, 4]. L’intérêt que nous portons au traitement <strong>de</strong>la syntaxe par <strong>les</strong> modè<strong>les</strong> objet contraints est, dans un premier temps, « alimentaire »pour le traitement <strong>de</strong> la sémantique. Nous avions besoin <strong>de</strong> vali<strong>de</strong>r l’approche d’unemanière formelle et <strong>de</strong> tester <strong>de</strong>s implémentations afin <strong>de</strong> pouvoir s’assurer <strong>de</strong> la viabilitédu projet. La validation formelle est présentée en début <strong>de</strong> chapitre, où l’ensemble<strong>de</strong> la théorie est traduite en terme <strong>de</strong> modèle objet contraint. Tout modèle satisfaisantune instance <strong>de</strong> modèle objet contraint dédié à l’analyse syntaxique sera une analysevali<strong>de</strong> du point <strong>de</strong> vue <strong>de</strong>s GP. La recherche <strong>de</strong> modè<strong>les</strong> finis présente l’avantage <strong>de</strong> proposer<strong>de</strong> nombreux algorithmes pour éliminer <strong>les</strong> symétries, <strong>de</strong> nombreuses heuristiquespour le parcours <strong>de</strong>s arbres <strong>de</strong> recherche ainsi que la possibilité d’utiliser <strong>les</strong> souhaitsprésentées dans le chapitre 2. Dans [11], l’auteur propose l’utilisation <strong>de</strong> quasi-arbresunaires[9](QAU) pour faire remonter l’information associée à une catégorie. L’utilisation<strong>de</strong> la modélisation objet nous permet d’accé<strong>de</strong>r directement à ces éléments sans avoir àconstruire une nouvelle structure. La figure 5.34 représente le quasi arbre unaire associé,dans notre grammaire, à l’étiquette N. Dans notre approche, la notion <strong>de</strong> ”QAU” estintrinsèque à la modélisation utilisée. Ainsi l’exemple <strong>de</strong> la figure 5.34 est directementreprésenté par <strong>les</strong> relations entre <strong>les</strong> classes SN et N d’une part et la classe SN et <strong>les</strong>classes Phrase, SV et SPrep d’autre part.Nous avons testé la grammaire présentée au début <strong>de</strong> ce chapitre pour analyser la- 91 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>SXNPNFig. 5.34 – Exemple <strong>de</strong> quasi arbre unaire pour le N dans notre grammairephrase « Le pc possè<strong>de</strong> <strong>de</strong>ux disques durs ». La figure 5.35 représente l’unique modèletrouvé pour l’analyse <strong>de</strong> cette phrase.L’écriture d’une grammaire sous la forme d’un modèle objet contraint (ou d’unproblème <strong>de</strong> <strong>configuration</strong> pour la résolution pratique) est facilité par un traducteurque nous avons développé [23]. Pour ce travail, nous proposons un style L A TEX 4 permettant<strong>de</strong> représenter <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> propriétés sous la forme d’avm. A partir <strong>de</strong>ce fichier, le programme génère le problème <strong>de</strong> <strong>configuration</strong> associé. L’intérêt <strong>de</strong> cetraducteur est multiple :– l’implémentation <strong>de</strong>s <strong>grammaires</strong> est facilitée 5 et <strong>les</strong> règ<strong>les</strong> présentées en section5.4.2 garantissent une traduction vali<strong>de</strong>,– cette traduction est totalement modulaire et permet, comme le propose PhilippeBlache, <strong>de</strong> n’utiliser que certaines propriétés– cette traduction est faite en un temps linéaireUn problème à l’heure actuelle est l’espace mémoire <strong>de</strong>mandé par le configurateurdès que le nombre d’instances <strong>de</strong>vient trop important. Le nombre <strong>de</strong> points <strong>de</strong> choix, etainsi, une partie <strong>de</strong> l’espace mémoire <strong>de</strong>mandé, pourront être réduits, d’une part, par<strong>de</strong>s heuristiques <strong>de</strong> choix <strong>de</strong> variab<strong>les</strong> ou <strong>de</strong> valeurs, d’autre part, par <strong>de</strong>s algorithmesd’élimination <strong>de</strong> symétries ou encore <strong>de</strong> recherche locale. Les recherches <strong>de</strong> techniques<strong>de</strong> résolution dans le domaine sont soutenues et leur adaptation à notre problème seranaturelle puisque <strong>les</strong> parties modélisation et résolution sont disjointes.Nous avons proposé une métho<strong>de</strong> <strong>de</strong> modélisation <strong>de</strong> la grammaire et une métho<strong>de</strong><strong>de</strong> résolution basée sur la recherche <strong>de</strong> modèle. Cette grammaire simple montre que <strong>les</strong><strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> sont capab<strong>les</strong> <strong>de</strong> traiter l’analyse syntaxique sur la based’une grammaire <strong>de</strong> propriétés.4 Le style, disponible electroniquement à l’adresse http ://www.lsis.org/∼estratatm/<strong>configuration</strong>/pgp/gp.sty,utilise le style avm.sty <strong>de</strong> Christopher Manning5 Un autre avantage mineur est l’utilisation du même co<strong>de</strong> pour écrire la grammaire et pour ladocumenter - l’exemple détaillé ici et le problème <strong>de</strong> <strong>configuration</strong> associé partagent le même co<strong>de</strong>source L A TEX- 92 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.35 – Modèle fini résultat <strong>de</strong> l’analyse syntaxique <strong>de</strong> la phrase « Le pc possè<strong>de</strong><strong>de</strong>ux disques durs »5.6 Application aux <strong>grammaires</strong> <strong>de</strong> dépendancesNous présentons le traitement <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> appliquées à la grammaire<strong>de</strong> dépendances présentée sur la figure 5.36. Cette grammaire est définie dans [20].Ce formalisme s’articule autour d’arbres <strong>de</strong> précé<strong>de</strong>nce linéaire (LP tree) et <strong>de</strong> dominanceimmédiate (ID tree). Les liens entre <strong>les</strong> noeuds d’un ID tree sont <strong>de</strong> type rô<strong>les</strong>yntaxique, tandis que que ceux d’un LP tree sont <strong>de</strong> type topologique. Un ID tree estnon-ordonné et non-projectif, tandis qu’un LP tree est partiellement ordonné et projectif.Nous présentons ci-<strong>de</strong>ssous <strong>les</strong> classes du modèle objet, puis ses attributs et sesrelations, pour la grammaire <strong>de</strong> <strong>configuration</strong> associée à cet exemple <strong>de</strong> grammaire <strong>de</strong>dépendances.ClassesTrois classes sont nécessaires, une pour <strong>les</strong> noeuds <strong>de</strong>s <strong>de</strong>ux arbres(CatDep), unepour <strong>les</strong> arètes <strong>de</strong> l’arbre syntaxique (IDEdge) et la <strong>de</strong>rnière pour <strong>les</strong> arètes <strong>de</strong> l’arbretopologique (LPEdges) :- 93 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Grammar SymbolsR = {<strong>de</strong>t, subject, object, vinf , vpast, zuvinf }F ext = {df , mf , vc, xf }F int = {d, n, v}d ≺ df ≺ n ≺ mf ≺ vc ≺ v ≺ xf(Syntactic Ro<strong>les</strong>)(External Topological Fields)(Internal Topological Fields)(Topological Or<strong>de</strong>ring)LexiconWord Syntax TopologyIN S OUT S ON IN T OUT Teinen {<strong>de</strong>t?} {} {d} {df ?} {}Mann {suject?, object?} {<strong>de</strong>t!} {n} {mf ?} {df ?}Maria {subject?, object?} {} {n} {mf ?} {}lieben {vinf ?} {object?} {v} {vc?} {}geliebt {vpast?} {object?} {v} {vc?} {}können 1 {vinf ?} {vinf !} {v} {vc?} {vc?}können 2 {vinf ?, vpast?} {vinf !} {v} {xf ?} {mf ∗, vc?, xf ?}wird {vinf ?} {subject!, vinf !} {v} {vc?} {mf ∗, vc?, xf ?}haben {vinf ?} {vpast!} {v} {xf ?} {mf ∗, vc?, xf ?}hat {vinf ?} {subject!, vpast!} {v} {vc?} {mf ∗, vc?, xf ?}zulieben 1 {zuvinf ?} {object?} {v} {vc?} {}zulieben 2 {zuvinf ?} {object?} {v} {xf ?} {mf ∗, xf ?}versucht {vfin?} {subject!, zuvinf !} {v} {vc?} {mf ∗, vc?, xf ?}Fig. 5.36 – Fragment <strong>de</strong> grammaire <strong>de</strong> dépendanceCatDep : ClasseCatDep ⊆ CatIDEdge : ClasseLPEdge : ClasseLes relations sont représentées par <strong>de</strong>s classes car il fallait pouvoir leur asocier uneétiquette. Ainsi, chaque arète et chaque noeud possè<strong>de</strong> un label, <strong>les</strong> noeuds sont étiquetéspar <strong>les</strong> fonctions <strong>de</strong>s mots auxquels ils sont associés (n, v, d), tandis que <strong>les</strong> arètes <strong>de</strong>l’arbre ID sont étiquetées par <strong>de</strong>s rô<strong>les</strong> syntaxiques (<strong>de</strong>t, subject, object, vinf , vfin, vpast, zuvinf )et <strong>les</strong> arètes <strong>de</strong> l’arbre LP par <strong>les</strong> fonctions topologiques (df , mf , vc, xf ).[Label]- 94 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>(a) ID Tree(b) LP TreeFig. 5.37 – Arbres ID et LP pour la phrase « Maria einen Mann wird haben liebenkönnen ».R : LabelFint : LabelFext : Label<strong>de</strong>t, subject, object, vinf , vfin, vpast, zuvinf : Labeldf , mf , vc, xf : Labeld, n, v : LabelR = {<strong>de</strong>t, subject, object, vinf , vfin, vpast, zuvinf }Fext = {df , mf , vc, xf }Fint = {d, n, v}L’union <strong>de</strong>s labels topologiques et <strong>de</strong>s labels <strong>de</strong> noeuds forme un ensemble totalementordonné, nous définissons donc la relation d’ordre (≺) :≺: Label # Label∀ x, y, z : Label • (x ≺ y ≺ z) ⇒ (x ≺ z)∀ x : Label • x ≺ x∀ x, y : Label | x ≠ y • x ≺ y ⇒ ¬ y ≺ xd ≺ df ≺ n ≺ mf ≺ vc ≺ v ≺ xfRelations et attributsLes relations <strong>de</strong> l’arbre ID sont outid et inid, el<strong>les</strong> représentent <strong>les</strong> arètes sortanteset entrantes pour un noeud donné.outid : CatDep " IDEdgeoutidrev : IDEdge " CatDep∀ e : IDEdge • e ∈ e.outidrev.outid- 95 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>inid : CatDep " IDEdgeinidrev : IDEdge " CatDep∀ c : CatDep • #(c.inid) ≤ 1∀ e : IDEdge • e ∈ e.inidrev.inidLa cardinalité <strong>de</strong> inid est inférieure ou égale à un car <strong>les</strong> structures sont <strong>de</strong>s arbres.Les relations <strong>de</strong> l’arbre LP sont outlp et inlp, el<strong>les</strong> représentent <strong>les</strong> arètes sortantes etentrantes pour un noeud donné.outlp : CatDep " LPEdgeoutlprev : LPEdge " CatDep∀ e : LPEdge • e ∈ e.outlprev.outlpinlp : CatDep " LPEdgeinlprev : LPEdge " CatDep∀ c : CatDep • #(c.inlp) ≤ 1∀ e : LPEdge • e ∈ e.inlprev.inlpDe même que pour inid, la cardinalité <strong>de</strong> inlp est inférieure ou égale à un car <strong>les</strong>structures sont <strong>de</strong>s arbres. Trois attributs pour représenter <strong>les</strong> étiquettes sont définis :<strong>les</strong> étiquettes pour <strong>les</strong> arètes <strong>de</strong> l’arbre syntaxique (idEdgeLabel), cel<strong>les</strong> pour <strong>les</strong> arètes <strong>de</strong>pour l’arbre topologique (lpEdgeLabel) et enfin <strong>les</strong> étiquettes pour <strong>les</strong> noeuds <strong>de</strong> l’arbre(onLabel) :idEdgeLabel : IDEdge " RlpEdgeLabel : LPEdge " FextonLabel : CatDep " FintLe diagramme <strong>de</strong> classe UML2 associé à ces définitions est présenté sur la figure 5.38.Projectivité <strong>de</strong> l’arbre topologiqueAfin <strong>de</strong> pouvoir définir la propriété <strong>de</strong> projectivité <strong>de</strong> l’arbre topologique, il estnécessaire <strong>de</strong> définir une relation représentant l’ensemble <strong>de</strong>s enfants d’un noeud dansl’arbre topologique : lpChildren.lpChildren : CatDep " CatDep∀ c : CatDep | c.outlp = • lpChildren(c) = {c}∀ c : CatDep | c.outlp ≠ •lpChildren(c) = {c} ∪ ⋃ {e : LPEdge | e ∈ c.outlp • lpChildren(e.inlprev)}La propriété <strong>de</strong> projectivité est garantie par une seule contrainte définissant que pourtout noeud <strong>de</strong> l’arbre LP, le nombre d’enfants du noeud est égal à la position <strong>de</strong> l’enfant- 96 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.38 – Diagramme <strong>de</strong> classes pour modéliser <strong>les</strong> arbres ID et LPle plus à droite moins la position <strong>de</strong> l’enfant le plus à gauche. On garantit ainsi que <strong>les</strong>enfants du noeud sont contigüs.∀ c : CatDep • #(lpChildren(c)) =max(lpChildren(c) → <strong>de</strong>but) − min(lpChildren(c) → <strong>de</strong>but)Ordre topologique∀ c : CatDep • ∀ e : c.outlp • e.lpEdgeLabel ≺ c.onLabel ⇔ e.inlprev.<strong>de</strong>but < c.<strong>de</strong>butLa relation host représente la source d’une relation <strong>de</strong> type outlp dans l’arbre syntaxique.host : CatDep " CatDep∀ c : CatDep • #(c.host) ≤ 1∀ c : CatDep • host(c) = {e : LPEdge | e ∈ c.inlp • e.outlprev}La relation head représente la source d’une relation <strong>de</strong> type outid dans l’arbre syntaxique.head : CatDep " CatDep∀ c : CatDep • #(c.head) ≤ 1∀ c : CatDep • head(c) = {e : IDEdge | e ∈ c.inid • e.outidrev}Les notations head et host sont introduites par [20].- 97 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>5.6.1 Formalisation <strong>de</strong>s principesLes principes permettent <strong>de</strong> définir <strong>de</strong>s « règ<strong>les</strong> » généra<strong>les</strong> <strong>de</strong> correspondance entrel’arbre syntaxique et l’arbre topologique.ancestor est définie comme la fermeture reflexive-transitive <strong>de</strong> la relation head.Principe 1ancestor : CatDep " CatDep∀ c : CatDep | c.inid = • ancestor(c) = {c}∀ c : CatDep | c.inid ≠ •ancestor(c) = {c} ∪ ancestor((µ c2 : CatDep | c2 ∈ head(c) • c2))« A no<strong>de</strong> must land on a transitive head ».La relation ancestor définie juste ci-<strong>de</strong>ssus, représente une « transitive head ».∀ c : CatDep | host(c) ≠ • host(c) ⊆ ancestor(c)Principe 2« A no<strong>de</strong> may not climb throught a barrier ». Le terme « barrière » n’est pas clairementdéfinie dans l’article [20]. L’idée <strong>de</strong> barrière est présentée comme une frontièrepropre à certaines catégories, tel<strong>les</strong> que certaines catégories ne peuvent pas dépasser.Par exemple, un nom est une barrière pour un déterminant et <strong>les</strong> verbes <strong>de</strong> type vfinsont générallement <strong>de</strong>s barrières pour tout type <strong>de</strong> catégories dont elle est ancêtre. Nepossédant pas <strong>de</strong> détail supplémentaires sur ce principe, nous ne pouvons en présenterune traduction en Z . Nous supposons que l’ajout d’un attribut barrier permettrait<strong>de</strong> préciser quels éléments ne pouvent pas avoir un père, dans l’arbre topologique, ledépassant.Principe 3« A no<strong>de</strong> must land on, or climb higher than, its head ». Pour traiter ce principe,il est nécessaire d’introduire la fermeture réflexive-transitive <strong>de</strong> la relation host :hostAncestor :hostAncestor : CatDep " CatDep∀ c : CatDep | c.inlp = • hostAncestor(c) = {c}∀ c : CatDep | c.inlp ≠ •hostAncestor(c) = {c} ∪ hostAncestor((µ c2 : CatDep | c2 ∈ host(c) • c2))Le principe 3 se formalise ainsi :∀ c : CatDep • host(c) ⊆ hostAncestor((µ c2 : CatDep | c2 ∈ head(c) • c2))Les relations lpChildren, head, host, ancestor et hostAncestor sont représentées graphiquementsur la figure 5.39.- 98 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>Fig. 5.39 – Relations supplémentaires sur la classe CatDep5.6.2 Traitement du lexiqueA chaque mot, rencontré dans une phrase, correspond la création d’une ou plusieursinstances <strong>de</strong> la classe CatDep, nous notons cette instance par le mot lui même,éventuellement suivi par un indice si le mot possè<strong>de</strong> plusieurs entrées dans le lexique.Pour chaque entrée w du lexique, IN S (w), OUT S (w), ON (w), IN T (w), OUT T (w)représentent, respectivement, <strong>les</strong> étiquettes <strong>de</strong>s arètes syntaxiques entrantes et sortantes,le label topologique du noeud et <strong>les</strong> étiquettes <strong>de</strong>s arètes topologiques entrantes et sortantes.Toute création d’une instance w <strong>de</strong> CatDep, via le lexique, est associée à un ensemble<strong>de</strong> contraintes portant sur <strong>les</strong> étiquettes (labels), ainsi, w.inid → idEdgeLabel ⊆ IN S (w).Il faut <strong>de</strong> plus contraindre <strong>les</strong> marques <strong>de</strong> valence (?, !, ∗). Soit l un label,– si l est optionnel ( ?) il lui correspond la contrainte :#{e : w.inid | e.idEdgeLabel = l} ≤ 1– si l est obligatoire ( !) alors il faut écrire la contrainte :#{e : w.inid | e.idEdgeLabel = l} = 1– enfin si l peut être plusieurs fois présent, cela se traduit par la contrainte :#{e : w.inid | e.idEdgeLabel ≥ l} ≥ 0De même, pour <strong>les</strong> autres étiquettes (OUT S , IN T et OUT T ) associées aux relationscorrespondantes (outid, inlp et outlp) :– w.outid → idEdgeLabel ⊆ OUT S (w)– w.inlp → lpEdgeLabel ⊆ IN T (w)– w.outlp → lpEdgeLabel ⊆ OUT T (w)Enfin, l’étiquette portée par ON est associée à la catégorie, soit o cette étiquette :w.onLabel = oA titre d’exemple, nous présentons, ci-<strong>de</strong>ssous, l’instance crée à la lecture du mot« hat » dans une phrase.- 99 -


5 : Les <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>hat : CatDephat.inid → idEdgeLabel ⊆ {vinf }#{e : hat.inid | e.idEdgeLabel = vinf } ≤ 1hat.outid → idEdgeLabel ⊆ {subject, vpast}#{e : hat.outid | e.idEdgeLabel = subject} = 1#{e : hat.outid | e.idEdgeLabel = vpast} = 1hat.onLabel = vhat.inlp → lpEdgeLabel ⊆ {vc}#{e : hat.inlp | e.lpEdgeLabel = vc} ≤ 1hat.outlp → lpEdgeLabel ⊆ {mf , vc, xf }#{e : hat.outlp | e.lpEdgeLabel = mf } ≥ 0#{e : hat.outlp | e.lpEdgeLabel = vc} ≤ 1#{e : hat.outlp | e.lpEdgeLabel = xf } ≤ 1De plus, il faut rajouter que le mot (hatW ) possè<strong>de</strong> un début (d) et une fin (f ),connus ainsi qu’une valeur pour l’attribut phon (ph). Ces trois valeurs sont éga<strong>les</strong> pourl’instance (mot − hat) du mot et l’instance (hat) <strong>de</strong> CatDep associée :hat.<strong>de</strong>but = dhat.fin = fhat.phon = phEnfin, pour une grammaire, telle que celle présentée dans cette <strong>de</strong>rnière section,un lexique, celui <strong>de</strong> la figure 5.36, et une phrase comme « Maria einen Mann zuliebenversucht », nous générons une contrainte C représentant l’ensemble <strong>de</strong>s arbres syntaxiqueset topologiques vali<strong>de</strong>s pour cette phrase. Suivant le modèle proposé pour hat,<strong>les</strong> contraintes pour chaque mot, rencontré dans la phrase, sont posées. La contrainteC est la conjonction, d’une part, <strong>de</strong>s contraintes globa<strong>les</strong> définies, notamment pour <strong>les</strong>principes mais également, <strong>les</strong> contraintes sur <strong>les</strong> cardinalités <strong>de</strong>s relations, etc . . .et,d’autre part, <strong>de</strong>s contraintes générées pour chaque instance <strong>de</strong> CatDep associée à unmot par le lexique.- 100 -


Chapitre 6Une approche du traitementsémantique <strong>de</strong>s textes <strong>de</strong>scriptifsLe cadre général <strong>de</strong> notre étu<strong>de</strong> est susceptible <strong>de</strong> permettre la prise en compte <strong>de</strong>textes dont la sémantique serait assimilable à la construction d’un modèle fini. En effet,cette situation <strong>de</strong>vrait permettre d’intégrer syntaxe et sémantique au sein d’un mêmemodèle objet contraint, afin que la construction d’une analyse produise en même tempsune structure conforme à la grammaire et un modèle du mon<strong>de</strong> décrit. Il doit être notéque dans <strong>les</strong> cas d’utilisation <strong>de</strong> ce type d’approche, le modèle objet contraint décrivantla grammaire comme celui décrivant le mon<strong>de</strong> sont tous <strong>de</strong>ux nécessairement connus.La question posée est donc celle <strong>de</strong> leur articulation.Nous <strong>de</strong>vons prévenir tout <strong>de</strong> suite le lecteur que nous n’avons pu faire émerger<strong>de</strong> propriétés généra<strong>les</strong> dans ce cadre, et que la présentation qui suit est ad hoc, etexpérimentale. Les approches classiques <strong>de</strong> la sémantique <strong>de</strong>man<strong>de</strong>nt <strong>de</strong> formaliser lecaractère compositionnel <strong>de</strong> la construction <strong>de</strong> la formule associée à une phrase, à laquellechaque entrée lexicale ou noeud syntaxique contribue. L’approche strictement formellela plus utilisée reste dans ce cadre le lambda calcul, qui permet d’associer à tout élémentpertinent une expression vali<strong>de</strong> du lambda calcul qui représente un fragment (invali<strong>de</strong>)du langage logique cible choisi. La composition <strong>de</strong>s constructions syntaxiques gui<strong>de</strong> alorsl’application <strong>de</strong>s expressions du lambda calcul entre el<strong>les</strong>.Egalement, nous avons restreint le cadre syntaxique choisi à <strong>de</strong>s phrases <strong>de</strong>scriptivestrès simp<strong>les</strong>.6.1 Une sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsNous restreignons le cadre <strong>de</strong> notre étu<strong>de</strong> à <strong>de</strong>s phrases que nous nommons phrases <strong>de</strong><strong>de</strong>scription. Cette approche est motivée par la <strong>de</strong>man<strong>de</strong> constante d’ai<strong>de</strong> au développement,afin d’alléger <strong>les</strong> tâches <strong>de</strong> programmation souvent fastidieuses. Un bon exemple est l’ai<strong>de</strong>au <strong>de</strong>signer dans le contexte <strong>de</strong> la modélisation déclarative, voir notamment [43, 44].Une phrase <strong>de</strong> <strong>de</strong>scription est, pour nous, une phrase dont tous <strong>les</strong> mots sont soit connus,soit traités comme <strong>de</strong>s noms propres et dont la structure syntaxique s’articule autour- 101 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsd’un sujet d’un verbe et d’un complément. Une phrase <strong>de</strong> <strong>de</strong>scription suivra le schéma<strong>de</strong> règ<strong>les</strong> décrit sur la figure 6.1. La syntaxe <strong>de</strong> ces phrases est simple et ne couvrePhrase → SN SVSN → N [propre] | Det N [commun] | Det N [commun] Adj | Det N [commun] SPrep |Det N [commun] Adj SPrepSPrep → Prep SNSV → V SN | V Adv | V AdjFig. 6.1 – Schéma <strong>de</strong> règ<strong>les</strong> syntaxiques pour <strong>les</strong> phrases <strong>de</strong> <strong>de</strong>scriptionqu’une partie très restreinte du langage naturel mais autorise tout <strong>de</strong> même <strong>de</strong>s <strong>de</strong>criptionssuffisamment complexes pour définir <strong>les</strong> problèmes qui nous intéressent. En effet,leur représentation sémantique est typiquement une instanciation d’un modèle objetcontraint. Pour tout domaine où la modélisation déclarative est utilisable, l’ensembled’objets pouvant être décrits appartient à l’ensemble <strong>de</strong>s modè<strong>les</strong> d’un modèle objetcontraint représentant génériquement le domaine. Le chapitre 7 présente une application<strong>de</strong> ces travaux à la modélisation déclarative <strong>de</strong> surfaces.L’analyse syntaxique apporte un support à l’analyse sémantique. Nous nous basonssur <strong>de</strong>s phrases <strong>de</strong> <strong>de</strong>scriptions vali<strong>de</strong>s présentées par la définition 9.Définition 9 (Texte <strong>de</strong>scriptif vali<strong>de</strong>) Un texte <strong>de</strong>scriptif est dit vali<strong>de</strong> si son analysesyntaxique fournit un et un seul modèleDéfinition 10 (Sémantique d’un texte <strong>de</strong>scriptif) La sémantique d’un texte <strong>de</strong>scriptifvali<strong>de</strong> est dite consistante si il existe au moins un modèle satisfaisant <strong>les</strong> contraintesexprimées par le texte.Les mon<strong>de</strong>s <strong>de</strong> la syntaxe et <strong>de</strong> la sémantique sont disjoints et peuvent être traitésindépendamment. Nous disposons par ailleurs d’un modèle objet contraint décrivantla grammaire d’une part, et d’un modèle objet contraint décrivant <strong>les</strong> représentationsvali<strong>de</strong>s du mon<strong>de</strong> décrit. Pour <strong>les</strong> relier entre el<strong>les</strong>, nous proposons d’introduire unmodèle objet contraint intermédiaire, qui crée un pont entre <strong>les</strong> <strong>de</strong>ux précé<strong>de</strong>nts. Lesclasses <strong>de</strong> ce modèle intermédiare sont appelées <strong>de</strong>s schémas.Intuitivement, <strong>les</strong> schémas décrivent <strong>de</strong>s fragments <strong>de</strong> la sémantique véhiculée par <strong>les</strong>éléments syntaxiques et contraignent le modèle du mon<strong>de</strong>. Ils établissent un lien directentre syntaxe et sémantique.La figure 6.2 représente ces concepts <strong>de</strong> manière graphique.6.2 Les schémas sémantiquesNous nommons schéma sémantique un modèle objet contraint qui, une fois intégréentre le modèle objet contraint gérant la syntaxe et le modèle objet contraint gérant lasémantique, permettra <strong>de</strong> faire le lien entre ces <strong>de</strong>ux « mon<strong>de</strong>s »pour une construction- 102 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.2 – Concepts <strong>de</strong> l’analyse sémantique <strong>de</strong> textes <strong>de</strong>scriptifsdonnée. Nous avons isolé pour l’instant <strong>de</strong>ux constructions récurrentes dans <strong>les</strong> phrases<strong>de</strong> <strong>de</strong>scription : <strong>les</strong> schémas <strong>de</strong> possession et <strong>les</strong> schémas d’attributs. Un schéma <strong>de</strong>possession permet à l’utilisateur <strong>de</strong> spécifier un lien <strong>de</strong> composition entre <strong>de</strong>ux élémentsdu mon<strong>de</strong> qu’il décrit ; une phrase type exemple <strong>de</strong> ce schéma est « Le pc possè<strong>de</strong> <strong>de</strong>uxdisques durs ». Un schéma d’attributs permet quant à lui d’utiliser la fonction attributdu sujet dans une phrase pour modifier soit une valeur d’attribut, soit une relationentre <strong>de</strong>ux objets ; une phrase type est « La surface est rectangulaire ». Pour utiliser cesschémas, il est nécessaire <strong>de</strong> disposer d’un lexique où seront décrits <strong>les</strong> liens entre <strong>les</strong>mots et <strong>les</strong> objets du mon<strong>de</strong>. La figure 6.3 présente un extrait <strong>de</strong> lexique. Tous <strong>les</strong> objetsdu modèle objet contraint représentant la sémantique héritent d’une classe racine. Nousallons à présent donner une définition plus formelle d’un schéma sémantique :Définition 11 (Schéma sémantique) Un schéma sémantique (Sc) se définit par ladonnée d’un sextuplet Sc = {comSynt, RSem, moSc, C, L, R} où– comSynt représente le modèle objet contraint traitant la syntaxe– RSem représente la racine du modèle objet sémantique– moSc représente le modèle objet associé au schéma.– C est l’ensemble <strong>de</strong>s contraintes sur moSc– L représente l’ensemble <strong>de</strong>s contraintes liant la syntaxe et le schéma– R représente l’ensemble <strong>de</strong>s contraintes liant <strong>les</strong> éléments du schéma à RsemLes schémas sont liés aux constructions syntaxiques, aux éléments du mon<strong>de</strong> et auxautres schémas. Ils peuvent être spécialisés grâce à <strong>de</strong>s relations d’héritage, commeillustré sur la figure 6.4.- 103 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsMot Catégorie genre nombre personne sémantiqueLe Det masculin singulier 3 in<strong>de</strong>tLe Pro masculin singulier 3 in<strong>de</strong>t...pc N masculin singulier 3 Ordinateur...Fig. 6.3 – Extrait du lexiqueFig. 6.4 – Une partie du diagramme <strong>de</strong> classes pour ScDet6.2.1 Schéma <strong>de</strong> possessionDans un premier temps, nous présentons <strong>les</strong> schémas et contraintes pour <strong>de</strong>s phrasesdu type « sujet + avoir/possé<strong>de</strong>r + complément possédant une cardinalité » tel<strong>les</strong> que :« Le PC a(possè<strong>de</strong>/contient/...) <strong>de</strong>ux disques durs ». Ces phrases sont donc formées <strong>de</strong>noms, <strong>de</strong> déterminants et <strong>de</strong> verbes.Pour traiter <strong>les</strong> schémas <strong>de</strong> possession, il faut tout d’abord extraire l’information importante.Pour cela, une hiérarchie <strong>de</strong> classes représentant <strong>les</strong> éléments mettant en jeu <strong>de</strong>scardinaux est définie. Ces classes possè<strong>de</strong>nt un attribut <strong>de</strong> type entier val représentantla valeur portée par le déterminant cardinal.Le schéma ScPoss contraint la cardinalité <strong>de</strong> la relation entre l’objet représenté parle nom du sujet et ceux représentés par le complément, en fonction <strong>de</strong> la valeur dudéterminant cardinal. Pour <strong>de</strong>s raisons <strong>de</strong> modularité <strong>de</strong> l’implémentation, <strong>les</strong> associationsentre schémas et catégories peuvent être définies à un niveau d’abstraction 1 . Parexemple, le schéma ScDet présenté sur le figure 6.4 est une classe abstraite pour tous<strong>les</strong> schémas <strong>de</strong> déterminants, en relation elle-même avec la classe Det représentant <strong>les</strong>déterminants.Pour rester le plus général possible, <strong>les</strong> schémas sémantiques ne peuvent pas être1 JConfigurator réalise le typage dynamique durant la recherche et supporte <strong>les</strong> contraintes <strong>de</strong> type(contraintes dites <strong>de</strong> classification).- 104 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.5 – Diagramme <strong>de</strong> classes pour ScPossdirectement liés aux composants du modèle sémantique (PC, CarteMère, etc...), ceciexplique pourquoi <strong>les</strong> schémas sont liés à la classe WorldObject (notée également WOpar la suite) dont <strong>les</strong> classes précé<strong>de</strong>mment citées héritent. Ainsi pour parser <strong>de</strong>s phrasesdécrivant <strong>de</strong>s instances d’un autre ”mon<strong>de</strong>” sémantique, il suffit <strong>de</strong> ”charger” le modèleobjet contraint et le lexique associés à ce mon<strong>de</strong>. La classe WO possè<strong>de</strong> une relation<strong>de</strong> composition cyclique, posse<strong>de</strong> représentant <strong>les</strong> relations <strong>de</strong> composition entretenuespar <strong>les</strong> différents composants du mon<strong>de</strong> sémantique. Les constructions proposées, si el<strong>les</strong>restent ad hoc et simplistes, restent toutefois réutilisab<strong>les</strong>.Le diagramme <strong>de</strong> classes pour le schéma <strong>de</strong> possession est présenté sur la figure 6.5.Ce diagramme est dirigé par la classe ScPoss qui orchestre <strong>les</strong> liens entre <strong>les</strong> différentséléments. Une instance <strong>de</strong> cette classe contiendra un schéma représentant le possesseur(par la relation scPossScSn), et un schéma représentant la partie cardinale <strong>de</strong> la phrase 2(par la relation scPossScSvCard).Les classes ScPoss, ScSvCard, ScSn, ScN et ScDet sont respectivement en relationavec <strong>les</strong> éléments Phrase, SV, SN, N et Det <strong>de</strong> la syntaxe. Lors <strong>de</strong> la lecture <strong>de</strong> l’entrée,lorsqu’un déterminant cardinal sera lu, l’instance <strong>de</strong> Det associée à ce mot sera liée àune instance <strong>de</strong> ScDetCard dont la valeur <strong>de</strong> l’attribut val sera affectée grâce au lexique.Les autres éléments <strong>de</strong>vront attendre la recherche <strong>de</strong> solutions pour être associés. Parexemple, un mot pouvant avoir plusieurs étiquettes ne pourra pas générer <strong>de</strong> liens avec2 La partie cardinale est constituée du verbe et <strong>de</strong>s éléments possédés- 105 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifs<strong>les</strong> schémas avant la recherche. Le seul élément pré-instancié est l’attribut name <strong>de</strong>ScN, celui-ci prend la valeur associée, dans le lexique, au N auquel il pourrait être lié.La même position est prise vis à vis <strong>de</strong>s syntagmes, comme le ScSn qui ne sera caractériséen ScSnIn<strong>de</strong>f ou ScSnCard qu’en fonction <strong>de</strong>s éléments constituant le syntagme nominalauquel il sera lié.Les contraintesDétaillons la manière dont <strong>les</strong> relations entre <strong>les</strong> éléments du mon<strong>de</strong> sont décritesavec la relation « générale » posse<strong>de</strong>. Pour définir, dans le mon<strong>de</strong> sémantique, qu’unobjet a <strong>de</strong> type A est composé <strong>de</strong> au minimum x et au maximum y objets <strong>de</strong> type B, ilsuffit <strong>de</strong> définir la contrainte :∀ a : A • x ≤ #(a.has ∩ {b : B}) ≤ yLes liaisons entre <strong>les</strong> mots et <strong>les</strong> objets du mon<strong>de</strong> sont effectuées en fonction <strong>de</strong>sattributs name <strong>de</strong>s ScN et WorldObject :∀ sc : ScN • sc.scNWo.name = sc.name∀ sc : scSvCard •∀ wo : WO | wo ∈ sc.scSvCardScSnCard.scSnCardWo •wo.name = sc.scSvCardScSnCard.scSnScN .scNWo.nameEnfin, nous pouvons définir la contrainte qui permet <strong>de</strong> lier <strong>les</strong> éléments syntaxiqueset <strong>les</strong> « objets du mon<strong>de</strong> ».∀ s : ScPoss •#((s.scPossScSnIn<strong>de</strong>f .scSnScN .scNWo.posse<strong>de</strong>)∩(s.scPossScSvCard.scSvCardScSnCard.scSnScN .scNWo))= s.valRésultats expérimentauxNous avons implémenté un programme <strong>de</strong> <strong>configuration</strong> à partir <strong>de</strong>s spécificationsprécé<strong>de</strong>ntes et en utilisant l’outil <strong>de</strong> programmation par contraintes JConfigurator.Nous présentons <strong>les</strong> résultats expérimentaux obtenus en utilisant ce programme <strong>de</strong><strong>configuration</strong> pour analyser <strong>de</strong>s phrases dans le domaine sémantique du PC. Les résultatsprésentés correspon<strong>de</strong>nt aux trois phrases :(1) Le PC a <strong>de</strong>ux disques durs.(2) La carte mère possè<strong>de</strong> un processeur.(3) La carte mère a trois barettes <strong>de</strong> mémoire.Le résultat <strong>de</strong> la lecture <strong>de</strong> ces trois phrases à la suite est présenté sur la figure 6.6,où <strong>les</strong> éléments sur fond blanc représentent <strong>les</strong> objets introduits dans la solution aprèslecture <strong>de</strong> la phrase (1), <strong>les</strong> rectang<strong>les</strong> Ram 2 et Ram 3 sont adjoints au modèle après- 106 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.6 – Le mon<strong>de</strong> construit lors <strong>de</strong> l’analyselecture <strong>de</strong> la phrase (3). Les autres objets sont introduits implicitement pour satisfaire<strong>les</strong> contraintes <strong>de</strong> cardinalité. Les objets du domaine introduits par une phrase sontréutilisés autant que possible dans la suite du traitement du texte. Par exemple, la cartemère, nécessaire implicitement pour ”comprendre” la phrase (1) est la même que celleà qui réfèrent <strong>les</strong> phrases (2) et (3).phrase échecs points <strong>de</strong> choix temps(1) 2 7 0,81 s(2) 1 5 0,84 s(3) 1 5 0,81 s(1) + (2) 2 21 1,02 s(1) + (2) + (3) 1946 1979 3,19 sTab. 6.1 – Résultats expérimentauxLe tableau 6.1 liste <strong>les</strong> statistiques d’éxécution obtenues 3 lors <strong>de</strong> la résolution duproblème pour <strong>de</strong>s phrases isolées ou en tant que texte. La première colonne décrit queltype <strong>de</strong> test est effectué tandis que <strong>les</strong> <strong>de</strong>uxième et troisième colonnes listent respectivementle nombre d’échecs et le nombre <strong>de</strong> points <strong>de</strong> choix. La <strong>de</strong>rnière colonne présente<strong>les</strong> temps d’éxécution en secon<strong>de</strong>. Le temps d’éxécution est lié d’une part à la taille duproblème <strong>de</strong> <strong>configuration</strong> et d’autre part, bien sûr, au nombre <strong>de</strong> points <strong>de</strong> choix. IlogJconfigurator n’implémente pas la ”création d’objets à la <strong>de</strong>man<strong>de</strong>”. Cette limitationforce le programme à pré-créer autant d’instances <strong>de</strong> chaque classe abstraite qu’il pourraiten avoir besoin au cours <strong>de</strong> la recherche (le typage dynamique est réalisé lors <strong>de</strong> la3 Ordinateur : P4 2.4GHz, 512 Mo RAM, Windows XP SP2, Ilog JConfigurator 2.1- 107 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsrecherche). L’absence <strong>de</strong> contrainte brisant <strong>les</strong> symétries est une cause parmi d’autresdu nombre important <strong>de</strong> points <strong>de</strong> choix. Dans le cas <strong>de</strong> la lecture <strong>de</strong> phrases enchaînées,le nombre important <strong>de</strong> points <strong>de</strong> choix est au fait que <strong>les</strong> résultats ne sont pas figés<strong>de</strong> l’analyse d’une phrase à l’analyse <strong>de</strong> la suivante et que ces travaux n’utilisent pasd’heuristiques <strong>de</strong> recherche. Ce <strong>de</strong>rnier point soulève une remarque importante, celle<strong>de</strong> savoir si il est utile ou non <strong>de</strong> figer ces phrases. Notamment pour <strong>les</strong> dépendancesentre <strong>de</strong>s éléments <strong>de</strong> phrases différentes (dépendances non bornées). Dans le cadre <strong>de</strong>l’étu<strong>de</strong> nous nous sommes affranchis <strong>de</strong> ces dépendances et supposons qu’el<strong>les</strong> n’ont paslieu d’être dans une <strong>de</strong>scription qui doit être la plus précise possible. A ce titre, elle nedoit pas utiliser <strong>de</strong> référents dépassant le cadre <strong>de</strong> la phrase courante. Enfin, soulignerque ces travaux n’utilisent pas d’heuristiques <strong>de</strong> recherche, implique que le programmeeffectue ici ce qu’il doit calculer par défaut.6.2.2 Schéma d’attributsLa définition <strong>de</strong>s compositions entre éléments est une étape clé dans le traitement <strong>de</strong>sphrases <strong>de</strong>scriptives. Nous venons <strong>de</strong> voir que ce point était envisageable par l’utilisation<strong>de</strong>s schémas <strong>de</strong> composition. Cependant, caractériser un objet, c’est aussi décrire sesattributs et utiliser pour ce faire <strong>les</strong> constructions du type « sujet verbe [être] Adj ».Nous présentons dans cette section <strong>les</strong> schémas permettant <strong>de</strong> traiter certaines <strong>de</strong> ces<strong>de</strong>scriptions, nous <strong>les</strong> nommons <strong>les</strong> schémas d’attributs [21].Dans le cadre <strong>de</strong> cette étu<strong>de</strong>, nous supposons que <strong>les</strong> domaines <strong>de</strong>s attributs sonténumérab<strong>les</strong> et sont exprimés sous forme <strong>de</strong> classes. Cette approche est motivée par le faitque tout modèle objet sous la représentation UML est une instance d’un méta-modèleoù <strong>les</strong> attributs <strong>de</strong>s classes sont représentés par <strong>de</strong>s classes. Le noyau d’uml nomméUML Core est présenté dans [35]. Un sous-modèle objet du UML-Core présentant <strong>les</strong>définitions <strong>de</strong>s classes et <strong>de</strong>s attributs est proposé en annexe sur la figure C.1Dans un premier temps, nous proposons l’introduction d’un nouveau sous-modèleobjet contraint le lexiconSelector pour lier <strong>les</strong> données du lexique.Le <strong>les</strong>xiconSelectorLe lexiconSelector permet <strong>de</strong> faire le lien entre <strong>les</strong> éléments du modèle syntaxique etceux du modèle sémantique. Il n’a pas été présenté dans la section précé<strong>de</strong>nte pour <strong>les</strong>schémas <strong>de</strong> possession car leur fonctionnement est compréhensible sans ce <strong>de</strong>rnier. Unattribut (syntaxiquement parlant) peut se rapporter soit à une instance <strong>de</strong> classes, soità un attribut d’une instance <strong>de</strong> classe. La figure 6.8 décrit le modèle <strong>de</strong> classes associéau lexiconSelector.- 108 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.8 – Modèle objet pour le lexiconSelectorLe lexique est fortement sollicité pour créer ces liens. Nous ajoutons au lexique unetable <strong>de</strong> paramètres pour chaque mot. Cette table est nommée table <strong>de</strong> liaisons lexiquesémantique.Cet ensemble regroupe <strong>les</strong> liens sémantiques entretenus avec le modèle dumon<strong>de</strong>. Une ligne <strong>de</strong> cette table contient <strong>les</strong> éléments suivants :mot [C , I , A] NomClasse/[NomAtt/valAtt, −] [nomInst]La première valeur est l’entrée lexicale (pc par exemple), la <strong>de</strong>uxième une lettre spécifiant<strong>de</strong> quelle nature est l’objet sémantique à associer : une classe (C), un attribut (A) ouune instance <strong>de</strong> classe (I), la troisième valeur va spécifier, pour chaque élément, la classedu modèle objet dont il est question, puis, éventuellement, le nom d’attribut et la valeurd’attribut associée. Si ces informations ne sont pas requises, el<strong>les</strong> sont remplacées parun tiret « - ». La quatrième valeur n’est présente que lorsqu’il s’agit d’un attribut d’uneinstance. Elle représente le nom associé à l’instance dans le modèle sémantique. La table<strong>de</strong> liaison lexique-sémantique peut nécessiter <strong>de</strong>s mises à jour au cours <strong>de</strong> l’analyse. Eneffet, <strong>les</strong> instances <strong>de</strong> classes ne sont pas définies à priori et tout nouvel élément doitêtre spécifié dans la table.Nous allons décrire à présent le sous modèle objet contraint correspondant auxschémas d’attributs. Nous nous limitons aux attributs du sujet <strong>de</strong> type adjectif. Cemodèle est présenté sur la figure 6.9.- 109 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.9 – Modèle objet pour le schéma d’attributLes contraintes sont basées sur <strong>les</strong> relations entretenues par <strong>les</strong> instances <strong>de</strong> LexiconSelector.Nous avons isolé <strong>de</strong>ux cas possib<strong>les</strong> : soit l’attribut porte sur un attribut<strong>de</strong> classes, soit sur une instance <strong>de</strong> classes.Si le complément du verbe est associé à un attribut d’une classe, alors <strong>les</strong> instances <strong>de</strong>la classe WorldObject liées à l’attributeSelector et à l’instanceSelector sont <strong>les</strong> mêmes.C’est l’attribut <strong>de</strong> l’instance représentée par le sujet qui est caractérisé.∀ s : ScAtt •s.scAttScVAtt.scVAttScAdjAtt.scAdjAttLexSel ∩ AttributeSelector ≠ ⇒s.scAttScVAtt.scVAttScAdjAtt.scAdjAttLexSel.aSWo =s.scAttScSn.scSnScN .lSWoPour tout ScAtt, <strong>les</strong> valeurs <strong>de</strong>s attributs in<strong>de</strong>x du WO associé à l’attributeSelectoret celle du WO associé à l’instanceSelector sont éga<strong>les</strong>.∀ s : scAtt • s.scAttScSN .scSnScN .scNLexSel.lSWo.in<strong>de</strong>x =s.scAttScVAtt.scVAttscAdjAtt.scAdjAttLexSel.lSWo.in<strong>de</strong>xSi le complément du verbe est associé à une instance <strong>de</strong> classe, alors <strong>les</strong> valeurs <strong>de</strong>sattributs name du ScN et name du WO lié à l’InstanceSelector sont i<strong>de</strong>ntiques. Cette- 110 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsphrase provoque la création d’une instance 4 .∀ s : ScAtt •s.scAttScVAtt.scVAttScAdjAtt.scAdjAttLexSel ∩ InstanceSelector ≠ ⇒s.scAttscSn.scSnScN .scnName =s.scAtt.scAttLexSel.lSWo.woNameAssocier à chaque élément syntaxique une « sémantique » <strong>de</strong>vrait permettre <strong>de</strong>prendre en compte <strong>de</strong>s constructions plus complexes et aux schémas <strong>de</strong> partager <strong>de</strong>l’information.Nous terminons ici la présentation <strong>de</strong> l’approche du traitement <strong>de</strong> la sémantique <strong>de</strong>s<strong>de</strong>scriptions par <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>. De nombreux autres schémas restentà être i<strong>de</strong>ntifiés et définis. Notamment une gestion plus fine <strong>de</strong> la syntaxe apportera <strong>de</strong>nombreuses autres problématiques quant à la question du traitement <strong>de</strong> la sémantique.L’idée générale étant <strong>de</strong> rendre compte <strong>de</strong>s liens entre <strong>de</strong>s mots et <strong>de</strong>s fonctions au seind’une phrase d’une part et <strong>les</strong> objets décrits d’autre part pour arriver à un produitfini ayant une sémantique propre dans le domaine modélisé. Nous en fournissons unmodèle consistant, lorsqu’il existe, satisfaisant <strong>les</strong> contraintes <strong>de</strong> bonne formation <strong>de</strong>scomposants du mon<strong>de</strong>.Ces techniques ont été implémentées pour le traitement <strong>de</strong>s <strong>de</strong>scriptions dans le cadre<strong>de</strong> la modélisation déclarative <strong>de</strong> surface. Le chapitre suivant présente cette approche etainsi que <strong>de</strong>s exemp<strong>les</strong> d’utilisation.4 JConfigurator n’acceptant pas la génération d’instance à la « volée »lors <strong>de</strong> l’analyse, il est nécessaire<strong>de</strong> créer un pool d’instances suffisant au départ <strong>de</strong> la recherche et cette phase <strong>de</strong> création nécessaire parl’inexistence d’une classe portant ce nom est remplacée par un lien entre <strong>de</strong>ux objets existants le motet l’instance spécifiée via le schéma d’attribut- 111 -


6 : Une approche du traitement sémantique <strong>de</strong>s textes <strong>de</strong>scriptifsFig. 6.7 – Instance solution du modèle syntaxico-sémantique pour la phrase « Le pcpossè<strong>de</strong> <strong>de</strong>ux disques durs ».- 112 -


Chapitre 7Une application : la modélisationdéclarative <strong>de</strong> surfaceCette application repose sur <strong>de</strong>s travaux menés au sein du laboratoire LSIS entre <strong>les</strong>équipes InCA et LXAO, dans le cadre du pôle modélisation géométrique. Elle a donnélieu à une publication à la conférence 3IA’06[27].Elle concerne la modélisation <strong>de</strong> surfaces NURBS 1 . Ces surfaces sont <strong>les</strong> plus utiliséesdans le domaine <strong>de</strong> la Conception Assistée par Ordinateur. Cependant, bien quela modélisation soit <strong>de</strong> bonne qualité, le processus <strong>de</strong> modélisation implique pour le<strong>de</strong>signer <strong>de</strong> nombreux mouvements <strong>de</strong> points <strong>de</strong> contrô<strong>les</strong> qui bri<strong>de</strong>nt sa créativité. Lessurfaces NURBS sont en effet contrôlées par un plan paramétrique dont chaque point2D correspond à exactement un point 3D <strong>de</strong> la surface modélisée. La figure 7.1 2 présenteun plan paramétrique et une possible surface NURBS correspondante. La modélisationPolyèdre <strong>de</strong> controlePoint <strong>de</strong> controlev100v 0u 0S(u 0, v 0)00u100Surface NURBSFig. 7.1 – Un plan paramétrique et une surface NURBS correspondantedéclarative est un outil qui va permettre au <strong>de</strong>signer <strong>de</strong> se libérer <strong>de</strong> ces contraintes techniqueset pouvoir laisser libre cours à ses qualités créatives. Le processus <strong>de</strong> modélisationdéclarative se présente comme suit : après la <strong>de</strong>scription <strong>de</strong> la surface et un processus<strong>de</strong> résolution <strong>de</strong> cette <strong>de</strong>scription, une ou plusieurs surfaces sont proposées à l’utilisateurqui peut reprendre sa <strong>de</strong>scription jusqu’à obtenir la surface désirée. La <strong>de</strong>scriptionest transmise au mo<strong>de</strong>leur déclaratif par un module <strong>de</strong> traduction sémantique. C’est sur1 Non Uniform Rational B-Spline2 Les figures 7.1 et 7.6 nous ont été fournies par Raphaël La Greca- 113 -


7 : Une application : la modélisation déclarative <strong>de</strong> surfacecette partie que repose le travail <strong>de</strong> l’analyse syntaxico-sémantique. Cette partie est ellemêmeconstituée <strong>de</strong> trois sous-parties : le modèle syntaxique, le modèle sémantique et lemodèle <strong>de</strong>s ponts syntaxico-sémantiques (ou schémas). Une instance vali<strong>de</strong> du modè<strong>les</strong>émantique sera utilisée par le mo<strong>de</strong>leur pour représenter la surface. Le processus général<strong>de</strong> modélisation déclarative est présenté sur la figure 7.2.IdéeTraductionsémantiqueDescriptionGénérateurComplétionModification <strong>de</strong>la <strong>de</strong>scriptionPlanificationInstantiation<strong>de</strong>s solutionsPrésentation <strong>de</strong>ssolutionsFig. 7.2 – Processus général <strong>de</strong> modélisation déclarative <strong>de</strong> surfaceLe modèle syntaxique et la grammaire utilisée sont ceux présentés en section 5.4.2 ; <strong>les</strong>schémas utilisés dans cette partie sont <strong>les</strong> schémas d’attributs présentés dans le chapitreprécé<strong>de</strong>nt (chapitre 6). Présentons alors le modèle sémantique utilisé pour représenter<strong>les</strong> surfaces.7.1 Modèle sémantiqueLe modèle sémantique constitue le mon<strong>de</strong> sur lequel l’utilisateur pourra faire <strong>de</strong>s<strong>de</strong>scriptions. Ce mon<strong>de</strong> est représenté par un modèle objet présenté sur la figure 7.3.Sur cette figure, nous pouvons lire <strong>les</strong> informations suivantes :– une surface est associée à exactement une zone– une zone peut contenir plusieurs zones mais ne peut être contenue qu’au maximumdans une seule– toute zone possè<strong>de</strong> une forme, une position et une déformationLes relations entre <strong>les</strong> éléments sont spécifiées sur le modèle. Cependant, pour l’utilisation<strong>de</strong>s schémas, il est nécessaire <strong>de</strong> factoriser ces relations sous la relation cycliqueposse<strong>de</strong> <strong>de</strong> la classe WO, classe mère <strong>de</strong> toutes <strong>les</strong> classes.Certaines instances sont connues avant même <strong>de</strong> lancer la résolution :- 114 -


7 : Une application : la modélisation déclarative <strong>de</strong> surfaceFig. 7.3 – Modèle sémantique représentant le « mon<strong>de</strong> » <strong>de</strong>s surfaces– il existe une seule instance <strong>de</strong> Surface pour un problème donné :surf : Surface– à cette surface est associée une Zone d’in<strong>de</strong>x 0 :Z 0 : Zone((surf .posse<strong>de</strong>) ∩ Zone) = Z 0Z 0.in<strong>de</strong>x = 0– à Z0 est associée une forme F0 dont la valeur <strong>de</strong> l’attribut in<strong>de</strong>x est 0 mais dontnous ne connaissons pas la classification :F 0 : Forme((Z 0.posse<strong>de</strong>) ∩ Forme) = F 0F 0.in<strong>de</strong>x = 0– à Z0 est associée une position P0 dont la valeur <strong>de</strong> l’attribut in<strong>de</strong>x est 0 mais dontnous ne connaissons pas la classification :- 115 -


7 : Une application : la modélisation déclarative <strong>de</strong> surfaceP0 : Position((Z 0.posse<strong>de</strong>) ∩ Position) = POP0.in<strong>de</strong>x = 0– à Z0 est associée une déformation D0 dont la valeur <strong>de</strong> l’attribut in<strong>de</strong>x est 0 maisdont nous ne connaissons pas la classification :D0 : Deformation((Z 0.posse<strong>de</strong>) ∩ Deformation) = DOD0.in<strong>de</strong>x = 0Les contraintes génériques sont <strong>les</strong> suivantes :– toute zone est contenue dans une autre, sauf celle qui est associée à la surface∀ z : Zone | z ≠ (surf .associeeA) • #(z.dans) = 1∀ z : Zone | z = (surf .associeeA) • #(z.dans) = 0– une zone ne peut être positionnée par rapport à elle même :∀ z : Zone • z ≠ z.est.<strong>de</strong>7.2 Implémentation et résultatsDes tests sur le modèle objet contraint <strong>de</strong> la sémantique seul, fournissent <strong>les</strong> résultatsattendus. Cependant lors <strong>de</strong>s tests d’implantation <strong>de</strong> l’analyse syntaxico-sémantique, <strong>de</strong>sproblèmes <strong>de</strong> mémoires ont limités <strong>les</strong> expérimentations. Les résultats présentés ci-aprèssont issus <strong>de</strong> tests réalisés à partir <strong>de</strong> phrases étiquetées syntaxiquement.Les phrases <strong>de</strong>scriptives utilisées sont <strong>les</strong> suivantes :1. Z0 est rectangulaire2. Z1 est une zone3. Z1 est à droite <strong>de</strong> Z04. Z1 est bombéeUn extrait du lexique est présenté sur la figure 7.4. La table <strong>de</strong> liaison lexique-sémantiqueest présentée sur la figure 7.5. La figure 7.7 représente la solution associée à l’instance <strong>de</strong>problème avec la phrase « La surface est rectangulaire ». Sur cette figure, <strong>les</strong> instances<strong>de</strong> mots ne sont pas spécifiées car l’analyse syntaxique est fournie comme entrée duprogramme. La figure 7.6 représente une surface solution possible pour cet ensembled’entrées.- 116 -


7 : Une application : la modélisation déclarative <strong>de</strong> surfaceMot Catégorie genre nombre personne sémantique...est V ETRE in<strong>de</strong>t singulier 3 V ETRE...rectangulaire Adj in<strong>de</strong>t singulier 3 Rectangle...Fig. 7.4 – Extrait du lexiqueMot C/I/A NomClasse/NomAtt/valAtt nomInst in<strong>de</strong>xInstZ0 I Zone Z0 0rectangulaire A Zone/Forme/Rectangle - -zone C Zone - -bombée C Bombee - -Fig. 7.5 – Extrait <strong>de</strong> la table <strong>de</strong> liaison lexique-sémantiqueFig. 7.6 – Une surface solution pour la <strong>de</strong>scription étudiée- 117 -


7 : Une application : la modélisation déclarative <strong>de</strong> surfaceFig. 7.7 – Solution pour le problème <strong>de</strong> modélisation déclarative <strong>de</strong> surfaces avec laphrase « La surface est rectangulaire »- 118 -


Chapitre 8ConclusionLa <strong>de</strong>scription <strong>de</strong>s modè<strong>les</strong> objet contraints en utilisant la notation Z permet unereprésentation formelle et indépendante <strong>de</strong> tout outil. Elle présente l’avantage <strong>de</strong> permettrel’utilisation <strong>de</strong> métho<strong>de</strong>s <strong>de</strong> validations formel<strong>les</strong>, <strong>de</strong> vérifications <strong>de</strong>s types (typechecking)pour assurer une cohérence <strong>de</strong> la modélisation. L’équivalence entre <strong>les</strong> modè<strong>les</strong>objet contraints représentés en Z et <strong>les</strong> problèmes <strong>de</strong> <strong>configuration</strong> assure la correctionet la complétu<strong>de</strong> <strong>de</strong>s modè<strong>les</strong> fournis par l’outil.L’utilisation du paradigme <strong>de</strong>s modè<strong>les</strong> objet contraints pour traiter <strong>les</strong> langages<strong>de</strong> <strong>de</strong>scription s’avère intéressante bien que limitée en implémentation par l’outil <strong>de</strong>résolution qui ne nous permet pas, pour l’heure, <strong>de</strong> fournir <strong>de</strong>s résultats comparab<strong>les</strong> àceux fournis par d’autres analyseurs syntaxiques.Les <strong>de</strong>ux apports du travail présenté dans cette thèse sont : (1) un cadre formel<strong>de</strong> traitement <strong>de</strong>s problèmes et (2) la création d’un modèle abstrait <strong>de</strong> <strong>grammaires</strong>permettant la résolution par recherche <strong>de</strong> modè<strong>les</strong> finis. La représentation objet d’unmon<strong>de</strong> donné semble naturelle par la nature même <strong>de</strong> ce paradigme, conçu pour favoriser<strong>les</strong> intéractions entres <strong>les</strong> objets. D’un point <strong>de</strong> vue sémantique, il est clair que le sens<strong>de</strong>s <strong>de</strong>scriptions est bien représenté par une instance du modèle objet contraint dumon<strong>de</strong>. Une première étape importante était <strong>de</strong> vali<strong>de</strong>r le traitement <strong>de</strong> la syntaxe parla <strong>configuration</strong>.Le terme grammaire <strong>de</strong> <strong>configuration</strong> possè<strong>de</strong> un double sens :– d’une part, <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> définissent un cadre <strong>de</strong> résolution, surla base <strong>de</strong> la recherche <strong>de</strong> modè<strong>les</strong> finis, pour l’analyse syntaxico-sémantique– d’autre part, un problème <strong>de</strong> <strong>configuration</strong> peut lui aussi être décrit en utilisant<strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> avec, comme mon<strong>de</strong>, un modèle génériquereprésentant tout modèle objet contraint.Le type <strong>de</strong> modélisation choisi et l’utilisation <strong>de</strong> la recherche <strong>de</strong> modè<strong>les</strong> finis inscriventdirectement cette approche dans le domaine <strong>de</strong>s MTS. La modularité <strong>de</strong>s traductions<strong>de</strong> <strong>grammaires</strong> permet une adaptation <strong>de</strong>s problèmes, grâce à la grammaire,aux différents types <strong>de</strong> corpus étudiés.- 119 -


8 : ConclusionPerspectivesTout d’abord, il est à noter que <strong>les</strong> problèmes <strong>de</strong> <strong>configuration</strong>, par nature, disposent,le plus souvent, <strong>de</strong> sous-arbres <strong>de</strong> recherche isomorphes. L’utilisation <strong>de</strong> cettereprésentation permettra l’utilisation <strong>de</strong> techniques <strong>de</strong> filtrages tel<strong>les</strong> que cel<strong>les</strong> présentéesdans [38, 37], au moins au niveau du domaine <strong>de</strong> la sémantique mais très certainementaussi au niveau <strong>de</strong>s schémas.Sylvain Kahane dans [42] rappelle une équivalence formelle entre <strong>les</strong> arbres <strong>de</strong> dépendanceset <strong>les</strong> structures syntagmatiques avec tête. De plus, Denys Duchier, dans [19, 18],analyse la bonne formation d’un arbre <strong>de</strong> dépendance par un problème <strong>de</strong> <strong>configuration</strong>fini et le traite par un CSP. Une piste <strong>de</strong> recherche est ainsi d’analyser <strong>de</strong> quelle manièrele traitement <strong>de</strong>s <strong>grammaires</strong> <strong>de</strong> dépendance est effectivement un simple problème <strong>de</strong> satisfaction<strong>de</strong> contraintes ou si la recherche <strong>de</strong> modè<strong>les</strong> finis peut permettre une plus largecouverture <strong>de</strong>s phénomènes linguistiques. Ceci soulève un autre point, qui est d’étudier<strong>les</strong> phénomènes linguistiques et non plus, simplement, <strong>les</strong> structures <strong>de</strong>s <strong>grammaires</strong>.Comme le fait remarquer [62], une phrase agrammaticale peut être tout <strong>de</strong> mêmeacceptée et « comprise ». Pour ce faire, l’auteur introduit <strong>les</strong> notions <strong>de</strong> <strong>de</strong>nsité <strong>de</strong>satisfaction locale et <strong>de</strong> <strong>de</strong>nsité <strong>de</strong> satisfaction propagée, qui représentent, en pourcentagepour chaque catégorie, <strong>les</strong> quantités <strong>de</strong> contraintes (propriétés) insatisfaites (violées)par rapport à ses propres contraintes (satisfaction locale) et en faisant remonter <strong>les</strong><strong>de</strong>nsités <strong>de</strong> satisfactions loca<strong>les</strong> <strong>de</strong> ses composants (satisfaction propagée). Il suffit alors<strong>de</strong> fixer un seuil à partir duquel <strong>les</strong> phrases sont trop agrammatica<strong>les</strong> pour être acceptées.Cette approche nous semble tout à fait adéquate au domaine étudié. Les souhaits <strong>de</strong>l’utilisateur, ensemble <strong>de</strong> contraintes lâches, se rapprochent <strong>de</strong> ce concept. L’application<strong>de</strong>s métho<strong>de</strong>s <strong>de</strong> choix <strong>de</strong>s « bons » souhaits comme cel<strong>les</strong> proposées par [39, 40] doiventpermettre d’intégrer ces taux d’agrammaticalité.Le traitement <strong>de</strong> la sémantique que nous avons proposé s’appuie sur un « mon<strong>de</strong> »sémantique entièrement défini. L’utilisation d’un méta-modèle décrivant la partie sémantique<strong>de</strong> manière abstraite permet une définition totalement abstraite <strong>de</strong>s relationsentre <strong>les</strong> composants. Ainsi, la reconnaissance d’un schéma <strong>de</strong> composition et l’i<strong>de</strong>ntification<strong>de</strong>s classes mises en jeu dans le schéma fournissent <strong>les</strong> informations nécessairesà la création <strong>de</strong> la relation. D’autre part, la définition d’un méta-modèle, tel que celuiprésenté dans l’annexe C, peut permettre la création complète du mon<strong>de</strong> sémantique.- 120 -


Annexe AExemple <strong>de</strong> programme ILOGJConfiguratorNous présentons dans cette section le détail <strong>de</strong> l’implémentation du problème <strong>de</strong>l’assemblage d’ordinateurs avec JConfigurator. Le modèle objet générique utilisé parJConfigurator n’est pas un modèle UML standard, bien qu’il s’en approche fortement.La figure A.1 présente le modèle objet <strong>de</strong> JConfigurator correspondant à celui <strong>de</strong> lafigure 4.3, que nous rappelons sur la figure A.2.Dans ce modèle, nous pouvons remarquer qu’un seul type <strong>de</strong> relations est présent etque ces relations sont orientées. Seuls <strong>les</strong> rô<strong>les</strong> sont exprimab<strong>les</strong> sur cette modélisation.Cependant ce modèle représente exactement celui utilisant la notation UML, avec <strong>les</strong>spécifications suivantes :– pour toute relation où <strong>les</strong> <strong>de</strong>ux rô<strong>les</strong> sont spécifiés, il est nécessaire <strong>de</strong> spécifier queces <strong>de</strong>ux rô<strong>les</strong> sont inverses l’un <strong>de</strong> l’autre.– pour une relation d’association, <strong>les</strong> <strong>de</strong>ux rô<strong>les</strong> sont représentés avec leurs cardinalitésrespectives.– pour une relation <strong>de</strong> composition, <strong>les</strong> <strong>de</strong>ux rô<strong>les</strong> sont représentés avec leurs cardinalitésrespectives et il faut en plus préciser la sémantique <strong>de</strong> cette relation.Celle-ci est représentée par une option signifiant que le rôle <strong>de</strong> la classe cible <strong>de</strong> larelation <strong>de</strong> composition vers la classe source est exclusif. Etre exclusif signifie que<strong>de</strong>ux instances différentes <strong>de</strong> la source ne peuvent pas partager une même instance<strong>de</strong> la cible.Les options inverse et exclusif sont spécifiées via <strong>de</strong>s boîtes <strong>de</strong> dialogues comme présentésur la figure A.3. Les contraintes sont explicitées dans un fichier annexe et sont présentéesci-<strong>de</strong>ssous. Elle représentent exactement <strong>les</strong> contraintes définies dans la section <strong>de</strong> présentation<strong>de</strong>s modè<strong>les</strong> objet contraints (chapitre 4).A.1 Contraintes génériquesSe basant sur le modèle objet <strong>de</strong> la figure A.1 pour pouvoir définir <strong>de</strong>s contraintes sur<strong>les</strong> éléments <strong>de</strong> ce modèle, il faut tout d’abord définir <strong>de</strong>s variab<strong>les</strong> qui vont représenter- 121 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorFig. A.1 – Modèle (JConfigurator) générique <strong>de</strong> données pour représenter un PC<strong>les</strong> instances <strong>de</strong> classes du modèle.La déclaration d’une telle variable suit la syntaxe suivante :IloLogicObjectVar nomVar = om.logicObjectVar(VarClasse);où nomVar représente le nom <strong>de</strong> la variable en train d’être définie, VarClasse un objetreprésentant une classe du modèle.VarClasse est un objet <strong>de</strong> type IloCLass qui est obtenu par la métho<strong>de</strong> getClass(String)<strong>de</strong> la classe IloConfigurationMo<strong>de</strong>l. Dans la suite <strong>de</strong> cette annexe, om représentera uneinstance <strong>de</strong> la classe IloConfigurationMo<strong>de</strong>l. VarClasse peut être défini également <strong>de</strong>la manière suivante :IloClass nomDeClasse = om.getClass("Ordinateur");IloClass classOrdinateur = om.getClass("Ordinateur");IloLogicObjectVar varOrdinateur = om.logicObjectVar(classOrdinateur);IloClass classCarteMere = om.getClass("CarteMere");IloLogicObjectVar varCarteMere = om.logicObjectVar(classCarteMere);- 122 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorFig. A.2 – Modèle (UML) <strong>de</strong> données générique pour représenter un PCIloClass classRam = om.getClass("Ram");IloLogicObjectVar varRam = om.logicObjectVar(classRam);IloClass classProcesseur = om.getClass("Processeur");IloLogicObjectVar varProcesseur = om.logicObjectVar(classProcesseur);IloLogicObjectVar varProcesseur2 = om.logicObjectVar(classProcesseur);IloClass classDD = om.getClass("DisqueDur");IloLogicObjectVar varDD = om.logicObjectVar(classDD);A présent que nous disposons <strong>de</strong>s variab<strong>les</strong> nécessaires, nous allons pouvoir transcrire<strong>les</strong> contraintes présentées en Z dans le chapitre 4.Pour tout ordinateur, son prix total est égal à la somme <strong>de</strong>s prix <strong>de</strong> ses différentscomposants :om.add(om.forAll(varOrdinateur,om.eq(varOrdinateur.getIntField("prixTotal"),om.sum(varOrdinateur.getObjectField("ecran").getIntField("prix"),om.sum(varOrdinateur.getObjectSetField("disqueDur"),"prix"),varOrdinateur.getObjectField("carteMere").getIntField("prixTotal"),varOrdinateur.getObjectField("alimentation").getIntField("prix"))));Les différents opérateurs sont expliqués ci-<strong>de</strong>ssous :- 123 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorFig. A.3 – Boîte <strong>de</strong> dialogue permettant <strong>de</strong> spécifier <strong>les</strong> propriétés d’une relation– add déclare au configurateur l’ajout d’une contrainte.– forAll est l’opérateur ∀ <strong>de</strong> la logique classique ; il permet <strong>de</strong> définir une contraintepour toutes <strong>les</strong> valeurs <strong>de</strong> la variable.– eq est l’opérateur d’égalité entre <strong>les</strong> <strong>de</strong>ux valeurs passées en paramètre.– getIntField récupère la valeur d’un champ <strong>de</strong> type entier.– getObjectField accè<strong>de</strong> à une instance <strong>de</strong> la classe liée par la relation <strong>de</strong> cardinalitéinférieure ou égale à 1 passée en paramètre.– getObjectSetField renvoie l’ensemble <strong>de</strong>s objets liés à l’instance courante par larelation ensembliste passée en paramètre– sum(rel,att) retourne la somme <strong>de</strong>s valeurs <strong>de</strong> l’attribut att sur toutes <strong>les</strong> instancesprésentes dans la relation ensembliste rel.Pour toute carte mère, son prix total est égal à la somme <strong>de</strong>s prix <strong>de</strong> ses composants :om.add(om.forAll(varCarteMere,om.eq(varCarteMere.getIntField("prixTotal"),om.sum(om.sum(varCarteMere.getObjectSetField("processeur"),"prix"),om.sum(varCarteMere.getObjectSetField("ram"),"prix"),varCarteMere.getIntField("prix")))));Les barrettes <strong>de</strong> mémoires connectées à la carte mère doivent être du bon type :om.add(om.forAll(varCarteMere,om.eq(om.cardOf(- 124 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorvarRam,varCarteMere.getObjectSetField("ram"),om.eq(varRam.getAnyField("type"),varCarteMere.getAnyField("typeRam"))),varCarteMere.getCardinality("ram"))));L’opérateur cardOf est utilisé ici : Il permet <strong>de</strong> retourner le nombre d’éléments dans unensemble qui satisfait une contrainte donnée :cardOf(var,ens,ct) où var est la variable représentant un élément <strong>de</strong> l’ensembleens et ct est la contrainte.Cet opérateur est utilisé ici pour permettre <strong>de</strong> spécifier que toute barrette <strong>de</strong> ramprésente dans la relation ram entre <strong>les</strong> classes CarteMere et Ram doit satisfaire la contrainte.Il n’existe pas en JConfigurator <strong>de</strong> contrainte ”pour tout x dans un certain ensemble” ;elle doit être traduite <strong>de</strong> la manière précé<strong>de</strong>nte.Si la carte mère possè<strong>de</strong> <strong>de</strong>ux processeurs, ces <strong>de</strong>rniers doivent être du même type :om.add(om.forAll(varCarteMere,varProcesseur,varProcesseur2,om.and(om.member(varProcesseur,varCarteMere.getObjectSetField("processeur")),om.member(varProcesseur2,varCarteMere.getObjectSetField("processeur"))),om.and(om.eq(varProcesseur.getIntField("energieConsommee"),varProcesseur2.getIntField("energieConsommee")),om.eq(varProcesseur.getIntField("vitesse"),varProcesseur2.getIntField("vitesse")))));Chacun <strong>de</strong>s <strong>de</strong>ux processeurs doit consommer la même énergie et avoir la mêmevitesse. Les opérateurs utilisés ici sont :– forAll(var,ct1,ct2) ici ct1 est une contrainte conditionnant la contrainte ct2.C’est une implication logique entre ct1 et ct2 : forAll(var, ct1 ⇒ ct2).– and opérateur binaire réalisant le ET logique entre <strong>les</strong> contraintes passées en paramètre.and retourne vrai si et seulement si <strong>les</strong> <strong>de</strong>ux contraintes sont satisfaites.– member retourne vrai si le premier paramètre appartient à l’ensemble passé en<strong>de</strong>uxième paramètrePour tout ordinateur, tout disque dur connecté doit avoir le bon type :om.add(om.forAll(varOrdinateur,om.eq(- 125 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorom.cardOf(varDD,varOrdinateur.getObjectSetField("disqueDur"),om.eq(varDD.getAnyField("type"),varOrdinateur.getAnyField("typeDD"))),varOrdinateur.getCardinality("disqueDur"))));La puissance fournie par l’alimentation <strong>de</strong> l’ordinateur doit être supérieure à lasomme <strong>de</strong> l’énergie concommée par chacun <strong>de</strong>s composants :om.add(om.forAll(varOrdinateur,om.ge(pc.getObjectField("alimentation").getIntField("puissanceFournie"),om.sum(pc.getObjectField("ecran").getIntField("energieConsommee"),pc.getObjectField("carteMere").getIntField("energieConsommee"),om.sum(pc.getObjectSetField("disqueDur"),"energieConsommee")))));L’opérateur ge représente l’opérateur <strong>de</strong> comparaison ≥ entre <strong>de</strong>ux valeurs.La valeur <strong>de</strong> l’attribut energieConcommeeTotale <strong>de</strong> la carte mère est égale à la somme<strong>de</strong> l’énergie consommée par la carte mère et <strong>de</strong> cel<strong>les</strong> consommées par <strong>les</strong> éléments quilui sont liés :om.add(om.forAll(varCarteMere,om.eq(varCarteMere.getIntField("energieConsommeeTotale"),om.sum(varCarteMere.getIntField("energieConsommee"),om.sum(varCarteMere.getObjectSetField("processeur"),"energieConsommee"),om.sum(varCarteMere.getObjectSetField("ram"),"energieConsommee")))));L’ensemble <strong>de</strong> ces contraintes assure la bonne formation <strong>de</strong>s ordinateurs configurés.Dans la section suivante nous allons présenter <strong>les</strong> résultats que l’on obtient selon lenombre <strong>de</strong> contraintes spécifiques que l’utilisateur choisit. Nous verrons notamment quele nombre d’ordinateurs, potentiellement grand même avec très peu d’instances, se voittrès rapi<strong>de</strong>ment réduit dès lors que <strong>les</strong> requêtes <strong>de</strong> l’utilisateur sont précises.A.2 RésultatsPour pouvoir tester ce modèle, il faut générer <strong>de</strong>s instances. Différentes métho<strong>de</strong>s<strong>de</strong> création d’instances sont à notre disposition, notamment, il est possible <strong>de</strong> générer- 126 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorsoit <strong>de</strong>s instances nommées, soit <strong>de</strong>s instances anonymes. Il est également possible <strong>de</strong>ne considérer que <strong>de</strong>s instances choisies dans un catalogue. Ce <strong>de</strong>rnier choix s’avère trèsbien adapté à notre exemple. Cependant, pour <strong>de</strong>s raisons <strong>de</strong> clarté nous utiliserons <strong>de</strong>sinstances nommées. Ainsi, nous définissons :– une instance d’Ordinateur qui sera l’ordinateur à configurerIloObject pc = om.makeInstance("Ordinateur","pc");Toutes <strong>les</strong> instances se déclarent <strong>de</strong> cette manière :IloObject nomObjet = om.makeInstance("nomClasse","nomInstance");où IloObject est le type représentant <strong>les</strong> objets, nomObjet est le nom associéà cette instance dans la définition <strong>de</strong>s contraintes, om.makeInstance est unemétho<strong>de</strong> <strong>de</strong> la classe IloConfigurationMo<strong>de</strong>l qui permet <strong>de</strong> créer <strong>de</strong>s instances<strong>de</strong> classes. Cette métho<strong>de</strong> attend comme entrée le nom <strong>de</strong> la classe (nomClasse)ainsi que le nom <strong>de</strong> l’instance pour l’affichage (nomInstance).– cinq instances <strong>de</strong> DisqueDur :IloObject dd1 = om.makeInstance("DisqueDur","dd1");om.add(om.eq(dd1.getIntField("capacite"),80));om.add(om.eq(dd1.getAnyField("type"),"IDE"));om.add(om.eq(dd1.getIntField("prix"),40));om.add(om.eq(dd1.getIntField("energieConsommee"),15));IloObject dd2 = om.makeInstance("DisqueDur","dd2");om.add(om.eq(dd2.getIntField("capacite"),120));om.add(om.eq(dd2.getAnyField("type"),"IDE"));om.add(om.eq(dd2.getIntField("prix"),50));om.add(om.eq(dd2.getIntField("energieConsommee"),20));IloObject dd3 = om.makeInstance("DisqueDur","dd3");om.add(om.eq(dd3.getIntField("capacite"),250));om.add(om.eq(dd3.getAnyField("type"),"IDE"));om.add(om.eq(dd3.getIntField("prix"),75));om.add(om.eq(dd3.getIntField("energieConsommee"),25));IloObject dd4 = om.makeInstance("DisqueDur","dd4");om.add(om.eq(dd4.getIntField("capacite"),80));om.add(om.eq(dd4.getAnyField("type"),"SATA"));om.add(om.eq(dd4.getIntField("prix"),70));om.add(om.eq(dd4.getIntField("energieConsommee"),30));IloObject dd5 = om.makeInstance("DisqueDur","dd5");om.add(om.eq(dd5.getIntField("capacite"),160));om.add(om.eq(dd5.getAnyField("type"),"SATA"));om.add(om.eq(dd5.getIntField("prix"),95));om.add(om.eq(dd5.getIntField("energieConsommee"),35));- 127 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorNous remarquons ici que <strong>les</strong> déclarations <strong>de</strong>s instances sont suivies par une série<strong>de</strong> lignes non présentes dans la définition <strong>de</strong> l’instance <strong>de</strong> l’ordinateur. Ces lignesreprésentent <strong>de</strong>s contraintes, spécifiant <strong>les</strong> attributs <strong>de</strong>s objets créés. On remarquenotamment que tous <strong>les</strong> opérateurs sont infixes dans la syntaxe <strong>de</strong> JConfigurator.Chacune <strong>de</strong>s instances possè<strong>de</strong> ses propres valeurs d’attributs. Ce genre <strong>de</strong>propriétés serait facilement traitable par un catalogue spécifiant, pour chaque instance,la liste <strong>de</strong> ses valeurs d’attributs.– trois instances d’Ecran :IloObject e1 = om.makeInstance("Ecran","e1");om.add(om.eq(e1.getIntField("taille"),17));om.add(om.eq(e1.getIntField("prix"),150));om.add(om.eq(e1.getIntField("energieConsommee"),25));IloObject e2 = om.makeInstance("Ecran","e2");om.add(om.eq(e2.getIntField("taille"),17));om.add(om.eq(e2.getIntField("prix"),250));om.add(om.eq(e2.getIntField("energieConsommee"),27));IloObject e3 = om.makeInstance("Ecran","e3");om.add(om.eq(e3.getIntField("taille"),19));om.add(om.eq(e3.getIntField("prix"),320));om.add(om.eq(e3.getIntField("energieConsommee"),35));– cinq instances <strong>de</strong> Processeur :IloObject p1 = om.makeInstance("Processeur","p1");om.add(om.eq(p1.getIntField("vitesse"),1500));om.add(om.eq(p1.getIntField("prix"),115));om.add(om.eq(p1.getIntField("energieConsommee"),30));IloObject p2 = om.makeInstance("Processeur","p2");om.add(om.eq(p2.getIntField("vitesse"),2000));om.add(om.eq(p2.getIntField("prix"),150));om.add(om.eq(p2.getIntField("energieConsommee"),35));IloObject p3 = om.makeInstance("Processeur","p3");om.add(om.eq(p3.getIntField("vitesse"),2500));om.add(om.eq(p3.getIntField("prix"),230));om.add(om.eq(p3.getIntField("energieConsommee"),45));IloObject p4 = om.makeInstance("Processeur","p4");om.add(om.eq(p4.getIntField("vitesse"),3200));- 128 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorom.add(om.eq(p4.getIntField("prix"),345));om.add(om.eq(p4.getIntField("energieConsommee"),60));IloObject p5 = om.makeInstance("Processeur","p5");om.add(om.eq(p5.getIntField("vitesse"),1500));om.add(om.eq(p5.getIntField("prix"),115));om.add(om.eq(p5.getIntField("energieConsommee"),30));– trois instances <strong>de</strong> CarteMereIloObject cm1 = om.makeInstance("CarteMere","cm1");om.add(om.eq(cm1.getAnyField("typeRam"),"SDR"));om.add(om.eq(cm1.getIntField("prix"),115));om.add(om.eq(cm1.getIntField("energieConsommee"),40));IloObject cm2 = om.makeInstance("CarteMere","cm2");om.add(om.eq(cm2.getAnyField("typeRam"),"SDR"));om.add(om.eq(cm2.getIntField("prix"),190));om.add(om.eq(cm2.getIntField("energieConsommee"),45));IloObject cm3 = om.makeInstance("CarteMere","cm3");om.add(om.eq(cm3.getAnyField("typeRam"),"DDR"));om.add(om.eq(cm3.getIntField("prix"),245));om.add(om.eq(cm3.getIntField("energieConsommee"),50));– six instances <strong>de</strong> RamIloObject r1 = om.makeInstance("Ram","r1");om.add(om.eq(r1.getIntField("capacite"),256));om.add(om.eq(r1.getAnyField("type"),"SDR"));om.add(om.eq(r1.getIntField("prix"),40));om.add(om.eq(r1.getIntField("energieConsommee"),25));IloObject r2 = om.makeInstance("Ram","r2");om.add(om.eq(r2.getIntField("capacite"),512));om.add(om.eq(r2.getAnyField("type"),"SDR"));om.add(om.eq(r2.getIntField("prix"),70));om.add(om.eq(r2.getIntField("energieConsommee"),30));IloObject r3 = om.makeInstance("Ram","r3");om.add(om.eq(r3.getIntField("capacite"),512));om.add(om.eq(r3.getAnyField("type"),"DDR"));om.add(om.eq(r3.getIntField("prix"),75));om.add(om.eq(r3.getIntField("energieConsommee"),35));IloObject r4 = om.makeInstance("Ram","r4");- 129 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorom.add(om.eq(r4.getIntField("capacite"),1024));om.add(om.eq(r4.getAnyField("type"),"DDR"));om.add(om.eq(r4.getIntField("prix"),95));om.add(om.eq(r4.getIntField("energieConsommee"),37));IloObject r5 = om.makeInstance("Ram","r5");om.add(om.eq(r5.getIntField("capacite"),1024));om.add(om.eq(r5.getAnyField("type"),"SDR"));om.add(om.eq(r5.getIntField("prix"),85));om.add(om.eq(r5.getIntField("energieConsommee"),33));IloObject r6 = om.makeInstance("Ram","r6");om.add(om.eq(r6.getIntField("capacite"),256));om.add(om.eq(r6.getAnyField("type"),"DDR"));om.add(om.eq(r6.getIntField("prix"),80));om.add(om.eq(r6.getIntField("energieConsommee"),28));– trois instances d’AlimentationIloObject a1 = om.makeInstance("Alimentation","a1");om.add(om.eq(a1.getIntField("puissanceFournie"),300));om.add(om.eq(a1.getIntField("prix"),40));IloObject a2 = om.makeInstance("Alimentation","a2");om.add(om.eq(a2.getIntField("puissanceFournie"),350));om.add(om.eq(a2.getIntField("prix"),50));IloObject a3 = om.makeInstance("Alimentation","a3");om.add(om.eq(a3.getIntField("puissanceFournie"),400));om.add(om.eq(a3.getIntField("prix"),65));Le nombre d’instances est très nettement inférieur au nombre « normal » que l’onpourrait trouver chez un assembleur d’ordinateur. Cependant ces instances permettentd’appréhen<strong>de</strong>r aisément la <strong>configuration</strong>. Le tableau A.1 fournit le nombre <strong>de</strong> modè<strong>les</strong>obtenus sans contrainte spécifique, avec <strong>de</strong>ux contraintes sur <strong>les</strong> disques durs et enfinavec <strong>les</strong> <strong>de</strong>ux contraintes précé<strong>de</strong>ntes et trois autres concernant le prix <strong>de</strong> l’ordinateur,la puissance <strong>de</strong> l’alimentation et enfin le nombre <strong>de</strong> processeurs. Nous présentons, dansun premier temps, ces cinq contraintes :Le pc a <strong>de</strong>ux disques durs :om.add(om.eq(pc.getCardinality("disqueDur"),2));Le pc n’a que <strong>de</strong>s disques durs SATA :om.add(om.eq(pc.getAnyField("typeDD"),"SATA"));Le pc a un prix inférieur ou égal à 750 :om.add(om.le(pc.getIntField("prixTotal"),750));Le pc a une alimentation <strong>de</strong> puissance inférieure ou égale à 300 :- 130 -


A : Exemple <strong>de</strong> programme ILOG JConfiguratorom.add(om.le(pc.getObjectField("alimentation").getIntField("puissanceFournie"),300));La carte mère a <strong>de</strong>ux processeurs :om.add(om.eq(om.cardOf(varProcesseur,pc.getObjectField("carteMere").getObjectSetField("processeur"),om.trueConstraint()),2));Sans contrainte Contraintes DD 5 contraintesNombre <strong>de</strong> modè<strong>les</strong> 9234 1026 1Tab. A.1 – Nombre <strong>de</strong> modè<strong>les</strong> trouvés pour l’exemple <strong>de</strong> l’ordinateur en fonction dunombre <strong>de</strong> contraintes spécifiquesOn peut se rendre compte que le nombre <strong>de</strong> modè<strong>les</strong> peut rapi<strong>de</strong>ment exploser. Onpeut également s’interroger sur le nombre <strong>de</strong> modè<strong>les</strong> possib<strong>les</strong> sans aucune contrainteni générique, ni spécifique. Dans ces conditions, il existe 340200 modè<strong>les</strong>. Ce chiffrecorrespond au nombre maximal <strong>de</strong> combinaisons entre tous <strong>les</strong> composants, sans tenircompte <strong>de</strong>s éventuel<strong>les</strong> restrictions contenues dans <strong>les</strong> contraintes génériques. De même,le nombre <strong>de</strong> modè<strong>les</strong> décroît considérablement dès lors que l’utilisateur spécifie sespréférences : avec seulement 5 contraintes, le nombre <strong>de</strong> pc disponib<strong>les</strong>, passent <strong>de</strong> 9234(nombre <strong>de</strong> pc correctement configurab<strong>les</strong>) à 1 seul.- 131 -


Annexe BUne approche <strong>de</strong>s HPSGNous avons présenté <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> propriétés comme exemple d’application aux<strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>. Cependant, bien que ce choix ait été motivé par l’utilisationexplicite et systématique <strong>de</strong>s contraintes dans la théorie, il est intéressant <strong>de</strong> voir <strong>de</strong>quelle manière <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> peuvent capturer un formalisme majeurtel que HPSG. Nous présentons ici une première approche du traitement du formalismeHPSG par <strong>de</strong>s techniques <strong>de</strong> <strong>configuration</strong> (présenté brièvement dans [22]). L’objectifici n’étant pas <strong>de</strong> présenter <strong>les</strong> HPSG, nous supposerons le formalisme <strong>de</strong>s HPSG connuet renvoyons à [53] pour une <strong>de</strong>scription en détail <strong>de</strong>s éléments utilisés.Les éléments linguistiques sont nommés Signs en HPSG. [53] précise que <strong>les</strong> Signsont composés d’informations phonologiques, syntaxiques, sémantiques ainsi que sur lediscours et la structure <strong>de</strong>s syntagmes. Les Signs sont représentés par <strong>de</strong>s structures <strong>de</strong>traits typées.Comme vu tout au long <strong>de</strong> ce manuscrit, <strong>les</strong> structures <strong>de</strong> traits sont représentéessur un modèle objet. Les Signs <strong>de</strong> HPSG, représentés par <strong>de</strong>s structures <strong>de</strong> traits typésseront définis <strong>de</strong> la même manière. L’utilisation <strong>de</strong>s structures <strong>de</strong> traits typés est unemotivation supplémentaire pour l’utilisation d’un modèle objet pour <strong>les</strong> représenter.Les signes sont partitionnés, ce qui signifie que seu<strong>les</strong> <strong>les</strong> feuil<strong>les</strong> <strong>de</strong> la hiérarchie sont« instanciab<strong>les</strong> » et que <strong>de</strong>ux types différents sont disjoints. La partition <strong>de</strong>s signs estenracinée sur un élément nommé Object. La figure B.1 représente <strong>les</strong> partitions utiliséesdans [53].- 132 -


B : Une approche <strong>de</strong>s HPSGPartition <strong>de</strong> object : list(σ), set(σ), boolean (bool), sign, phoneme-string(phonstring), constituentstructure(con-struc), mod-sem,local (loc), nonlocal (nonloc), nonlocall (nonlocl), category(cat), head, marking, verbform (vform), case, preposition-form (pform), content (cont),context (conx), contextual-indices (c-inds), quantifier-free-parametrized-state-of-affairs (qfpsoa),semantic-<strong>de</strong>terminer (sem<strong>de</strong>t), in<strong>de</strong>x (ind), person (per), number (num), gen<strong>de</strong>r (gen)Partition <strong>de</strong> list(σ) : nonempty-list(σ)(nelist(σ)), empty-list(elist ou 〈 〉)Partition <strong>de</strong> set(σ) : nonempty-set(σ)(neset(σ)), empty-set(eset ou { })Partition <strong>de</strong> boolean : plus (+), minus (−)Partition <strong>de</strong> sign : word, phrasePartition <strong>de</strong> mod-sem : syntax-semantic (synsem), nonePartition <strong>de</strong> head : substantive (subst), functional (func)Partition <strong>de</strong> substantive : noun, verb, adjective (adj), preposition (prep), relativizer (reltvzr)Partition <strong>de</strong> functional : marker (mark), <strong>de</strong>terminer (<strong>de</strong>t)Partition <strong>de</strong> marking : unmarked, markedPartition <strong>de</strong> marked : complementizer (comp), conjunction (conj), ...Partition <strong>de</strong> complementizer : that, forPartition <strong>de</strong> case : nominative (nom), accusative (acc)Partition <strong>de</strong> vform : finite (fin), infinitive (inf), gerund (ger), base (bse), present-participle (prp),past-participle (psp), passive-participe (pas)Partition <strong>de</strong> pform : to, of, ...Partition <strong>de</strong> phonstring : kIm, sændi, krIs, ...Partition <strong>de</strong> con-struc : hea<strong>de</strong>d-structure(head-struc), coordinate-structure (coord-struc)Partition <strong>de</strong> head-struc : head-complement-structure(head-comp-struc), head-marker-structure(head-mark-struc), head-adjunct-structure (head-adj-struc), head-filler-structure (head-fillerstruc)Partition <strong>de</strong> content : parametrized-state-of-affairs (psoa), nominal-object (nom-obj), quantifier(quant)Partition <strong>de</strong> sem<strong>de</strong>t : forall, exists, the, ...Partition <strong>de</strong> in<strong>de</strong>x : referential (ref), there, itPartition <strong>de</strong> person : 1st, 2nd, 3rdPartition <strong>de</strong> number : singular (sing) , plural (plur)Partition <strong>de</strong> gen<strong>de</strong>r : masculine (masc), feminine (fem), neuter (neut)Partition <strong>de</strong> qfpsoa : control-qfpsoa, ...Partition <strong>de</strong> control-qfpsoa : influence, commitment, orientationPartition <strong>de</strong> influence : persua<strong>de</strong>, appeal, cause, ...Partition <strong>de</strong> commitment : promise, intend, try, ...Partition <strong>de</strong> orientation : want, hate, expect, ...Partition <strong>de</strong> nom-obj : nonpronoun (npro), pronoun (pron)Partition <strong>de</strong> pron : personal-pronoun (ppro), anaphor (ana)Partition <strong>de</strong> ana : refl, recpFig. B.1 – Partitions <strong>de</strong>s éléments utilisés dans HPSGA partir <strong>de</strong> cette figure, nous pouvons définir <strong>les</strong> modè<strong>les</strong> objet <strong>de</strong>s figures B.2 à- 133 -


B : Une approche <strong>de</strong>s HPSGB.19. Comme tout modèle objet <strong>de</strong> modèle objet contraint ces modè<strong>les</strong> implémentent <strong>les</strong>classes concrètes sur <strong>les</strong> feuil<strong>les</strong> <strong>de</strong> la hiérarchie et rend ainsi bien compte <strong>de</strong>s partitionsexprimées sur la figure B.1.Fig. B.2 – Modèle objet représentant la partition <strong>de</strong> objetFig. B.3 – Modèle objet représentant la partition <strong>de</strong> boolFig. B.4 – Modèle objet représentant la partition <strong>de</strong> sign- 134 -


B : Une approche <strong>de</strong>s HPSGFig. B.5 – Modèle objet représentant la partition <strong>de</strong> mod-semFig. B.6 – Modèle objet représentant la partition <strong>de</strong> headFig. B.7 – Modèle objet représentant la partition <strong>de</strong> marking- 135 -


B : Une approche <strong>de</strong>s HPSGFig. B.8 – Modèle objet représentant la partition <strong>de</strong> caseFig. B.9 – Modèle objet représentant la partition <strong>de</strong> vformFig. B.10 – Modèle objet représentant la partition <strong>de</strong> pformFig. B.11 – Modèle objet représentant la partition <strong>de</strong> phonstring- 136 -


B : Une approche <strong>de</strong>s HPSGFig. B.12 – Modèle objet représentant la partition <strong>de</strong> con-strucFig. B.13 – Modèle objet représentant la partition <strong>de</strong> content- 137 -


B : Une approche <strong>de</strong>s HPSGFig. B.14 – Modèle objet représentant la partition <strong>de</strong> sem<strong>de</strong>tFig. B.15 – Modèle objet représentant la partition <strong>de</strong> in<strong>de</strong>xFig. B.16 – Modèle objet représentant la partition <strong>de</strong> personFig. B.17 – Modèle objet représentant la partition <strong>de</strong> number- 138 -


B : Une approche <strong>de</strong>s HPSGFig. B.18 – Modèle objet représentant la partition <strong>de</strong> gen<strong>de</strong>rFig. B.19 – Modèle objet représentant la partition <strong>de</strong> qfpsoaSur ces figures, nous remarquons que certaines classes sont labelisées « ... ». Cesclasses représentent un ensemble <strong>de</strong> classes non définies entièrement par [53]. Nous pouvonsciter, par exemple, la partition <strong>de</strong> marked : <strong>les</strong> « ... » sont présents car <strong>les</strong> auteurslaissent volontairement ouverte la question <strong>de</strong> savoir quels autres éléments, hors-mis <strong>les</strong>comp et <strong>les</strong> conj, sont <strong>de</strong>s marqueurs. De même, la partition <strong>de</strong> pform est incomplète caril n’existe pas <strong>de</strong> liste exhaustive <strong>de</strong> toutes <strong>les</strong> prépositions non prédicatives <strong>de</strong> l’anglais.Nous avons ainsi obtenu une première partie du modèle objet support. Nous allonsmaintenant voir comment nous pouvons le compléter avec une partie <strong>de</strong>s structures <strong>de</strong>traits.B.1 Lists et setsCertains Signs n’ont pas <strong>de</strong> rapport avec <strong>de</strong>s éléments <strong>de</strong> la linguistique. C’est le caspar exemple <strong>de</strong> list et <strong>de</strong> set qui sont cependant très utilisés dans HPSG, comme nouspourrons le constater sur <strong>les</strong> figures B.24 et B.25. La figure B.20 rappelle la hiérarchie <strong>de</strong>type pour <strong>les</strong> lists et <strong>les</strong> sets présentée dans [53] sous la forme <strong>de</strong> partitions d’ensemb<strong>les</strong>.- 139 -


B : Une approche <strong>de</strong>s HPSGPartition <strong>de</strong> list(σ) : nonempty-list(σ) (nelist(σ)), empty-list (elist or 〈 〉)Partition <strong>de</strong> set(σ) : nonempty-set(σ) (neset(σ)), empty-set (eset or | |)Fig. B.20 – Hiérarchie <strong>de</strong> types pour <strong>les</strong> éléments list et setLa modélisation UML prend naturellement en compte <strong>les</strong> ensemb<strong>les</strong>. Les associationsbinaires définissent, <strong>de</strong> manière implicite pour chaque objet, l’ensemble <strong>de</strong>s objets quilui sont connectés. Ainsi <strong>les</strong> sets ne nécessitent pas <strong>de</strong> structure particulière.[53] définit <strong>les</strong> listes par une structure <strong>de</strong> traits présentée sur la figure B.21. La[]FIRST σnonempty-list(σ) :REST list(σ)Fig. B.21 – Définition <strong>de</strong> la structure d’une liste non vi<strong>de</strong> dans [53]représentation <strong>de</strong> cette définition est le modèle objet représenté sur la figure B.22. Nousn’utilisons pas <strong>de</strong> classe elist mais la cardinalité 0 pour définir une liste vi<strong>de</strong>. A cetteFig. B.22 – Modèle objet traduisant strictement la définition d’une listefigure, il faut ajouter la contrainte spécifiant que <strong>les</strong> types <strong>de</strong>s éléments sont <strong>de</strong> mêmenature :∀ l : list | (#(l.FIRST ) = 1) ∧ (#(l.REST ) = 1) •∀ l1 : object ; l2 : object | (l1 ∈ l.FIRST ) ∧ (l2 ∈ l.REST ) •l1.type = l2.typeSi nous supposons un objet O contenant une liste L <strong>de</strong> trois éléments : {l 1 , l 2 , l 3 }, lafigure B.23 représente <strong>les</strong> instances créées à partir du modèle <strong>de</strong> la figure B.22. Nousremarquons que la liste se termine par une instance <strong>de</strong> la classe list qui ne possè<strong>de</strong> pasd’élément dans sa relation REST. Une liste vi<strong>de</strong> sera représentée par une instance <strong>de</strong> laclasse list n’ayant ni élément FIRST ni élément REST.- 140 -


B : Une approche <strong>de</strong>s HPSGFig. B.23 – Instances créées pour une liste <strong>de</strong> trois élémentsB.2 Structures <strong>de</strong> traitsLes figures B.24 et B.25 illustrent <strong>les</strong> déclarations <strong>de</strong> structures <strong>de</strong> traits pour lagrammaire <strong>de</strong> l’anglais proposée dans [53].⎡⎤PHONOLOGY list(phonstring)SYNSEM synsemsign : ⎢⎥⎣QSTOREset(quantifier) ⎦RETRIEVED list(quantifier)[]nonlocal :TO-BIND nonlocallINHERITED nonlocall[]context :BACKGROUNDset(psoa)CONTEXTUAL-INDICES c-inds[]CONJ-DTRSset(sign)coord-struc :CONJUNCTION-DTR word[]HEAD-DTR signhead-struc :COMP-DTR list(phrase)⎡HEAD⎢category : ⎣SUBCATMARKING[phrase : DAUGHTERS⎤head⎥list(synsem) ⎦marking]con-struc⎡⎤SLASH set(local)⎢⎥nonlocall : ⎣RELset(ref) ⎦QUE set(npro)[]LOCAL localsynsem :NONLOCAL NonLocal⎡⎤CATEGORY category⎢⎥local : ⎣CONTENTcontent ⎦CONTEXT contextFig. B.24 – Première partie <strong>de</strong>s structures <strong>de</strong> traits présentées dans [53]- 141 -


B : Une approche <strong>de</strong>s HPSG⎡⎤SPEAKERref⎢⎥c-inds : ⎣ADDRESSEEref⎦UTTERANCE-LOCATION ref⎡⎤HEAD-DTR phrase⎢⎥head-adjunct-struc : ⎣ADJUNCT-DTRphrase⎦COMP-DTR elist⎡⎤HEAD-DTR phrase⎢⎥head-filler-struc : ⎣FILLER-DTRphrase⎦COMP-DTRS elist⎡⎤HEAD-DTR phrase⎢⎥head-mark-struc : ⎣MARKER-DTRword ⎦COMP-DTRS elist[]functional : SPEC synsem⎡⎤VFORM vform⎢⎥verb : ⎣AUXboolean⎦INV boolean⎡⎤PERSON person⎢⎥in<strong>de</strong>x : ⎣NUMBERnumber⎦GENDER gen<strong>de</strong>r[]INFLUENCE refinfluence :INFLUENCED ref[]orientation : EXPERIENCER refsubstantive :[noun : CASE[PRDMOD]case[preposition : PFORMquantifier :[DETRESTIND]booleanmod-synsem]pform]sem<strong>de</strong>tnpro[]INDEX in<strong>de</strong>xnom-object :RESTR set(psoa)[]QUANTS list(quantifier)psoa :NUCLEUS qfpsoa[control-qfpsoa : SOA-ARG[commitment : COMMITOR]psoa]refFig. B.25 – Deuxième partie <strong>de</strong>s structures <strong>de</strong> traits présentées dans [53]Contrairement aux notations habituel<strong>les</strong> <strong>de</strong> la modélisation objet, qui utilise <strong>de</strong>smajuscu<strong>les</strong> pour <strong>les</strong> classes (au moins pour <strong>les</strong> premières lettres) et <strong>de</strong>s minuscu<strong>les</strong> pour<strong>les</strong> relations et <strong>les</strong> attributs, nous avons conservé <strong>les</strong> notations <strong>de</strong> HPSG.Il est intéressant <strong>de</strong> noter l’utilisation <strong>de</strong>s relations <strong>de</strong> type ensemble pour <strong>les</strong> traitsayant une valeur <strong>de</strong> type set (comme SQTORE <strong>de</strong> sign).Il faut ajouter à ce modèle <strong>les</strong> contraintes <strong>de</strong> conception spécifiant <strong>les</strong> types d’éléments- 142 -


B : Une approche <strong>de</strong>s HPSGFig. B.26 – Sous-partie du modèle objet représentant <strong>les</strong> stuctures <strong>de</strong> HPSG- 143 -


B : Une approche <strong>de</strong>s HPSGpour <strong>les</strong> listes. Prenons par exemple la liste PHONOLOGY <strong>de</strong> la classe sign.∀ s : sign | (#(s.PHONOLOGY .FIRST ) = 1) •(s.PHONOLOGY .FIRST .type) ∩ phonstring ≠ B.3 Les principes HPSG vus comme <strong>de</strong>s contraintes <strong>de</strong>modèle objet contraintLes HPSG introduisent <strong>de</strong>s contraintes « universel<strong>les</strong> » nommées principes. Ces principesdéfinissent <strong>les</strong> constructions autorisées pour toute structure <strong>de</strong> traits. Nous présentonsmaintenant <strong>de</strong>ux principes, ainsi que leurs représentations en tant que contraintes surle modèle objet.B.3.1Le principe <strong>de</strong>s traits <strong>de</strong> têteCe principe est défini dans [53] <strong>de</strong> la manière suivante :Définition 12 (The Head Feature Principle) In a hea<strong>de</strong>d phrase 1 the values of SYN-SEM | LOCAL | CATEGORY | HEAD and DAUGHTERS | HEAD-DTR | SYNSEM |LOCAL | CATEGORY | HEAD are token-i<strong>de</strong>ntical∀ p : Phrase •p.SYNSEM .LOCAL.CATEGORY .HEAD =p.DAUGHTERS.HEAD − DTR.SYNSEM .LOCAL.CATEGORY .HEADCette contrainte montre que la notion <strong>de</strong> token i<strong>de</strong>ntical (partage <strong>de</strong> valeur <strong>de</strong> traits)est totalement prise en compte par la modélisation. Pour ce faire, <strong>les</strong> relations utiliséessont <strong>de</strong>s relations d’associations qui n’implémentent pas la propriété d’exclusivité.B.3.2Le principe <strong>de</strong>s traits non locauxCe principe est défini ainsi :Définition 13 (The nonlocal Feature Principle) In a hea<strong>de</strong>d phrase, for each nonlocalfeature F = SLASH, QUE or REL, the value of SYNSEM|NONLOCAL|INHERITED|Fis the set difference of the union of the values on all the daughters and the value ofSYNSEM|NONLOCAL|TO-BOND|F on the HEAD-DAUGHTER.Une hea<strong>de</strong>d phrase possè<strong>de</strong> <strong>les</strong> traits : HEAD-DTR et une liste <strong>de</strong> phrases COMP-DTR. Ainsi le principe <strong>de</strong>s traits non locaux (NLFP) doit être défini <strong>de</strong> manière récursivesur l’ensemble <strong>de</strong>s éléments <strong>de</strong> la liste.Commençons par définir une fonction récursive (funRecsl) qui prend en paramètreune fonction et retourne l’union <strong>de</strong>s résultats fournis par son application à tous <strong>les</strong>éléments <strong>de</strong> la liste :1 Une hea<strong>de</strong>d phrase est un syntagme dont le trait DAUGHTERS est <strong>de</strong> type hea<strong>de</strong>d-structure.- 144 -


B : Une approche <strong>de</strong>s HPSGfunRecsl : ((object " object) × list) " object∀ l : list ; f : object " object •∀ h : l.FIRST ; g : l.REST • funRecsl(f , l) = f (h) ∪ funRecsl(f , g)Nous pouvons maintenant définir une fonction qui crée l’ensemble <strong>de</strong>s élémentshérités (F représente, comme dans la défintion 13, <strong>les</strong> traits SLASH, REL ou QUE)NLFPrec : phrase " Object∀ P : phrase | NLFPrec(P) =P.DAUGHTERS.HEAD − DTR.SYNSEM .NONLOCAL.INHERITED.F∪funRecsl(NLFPrec, P.DAUGHTERS.COMP − DTR)Enfin nous pouvons définir la contrainte établissant que chaque phrase ayant unehea<strong>de</strong>d-struc répond au principe <strong>de</strong>s traits non locaux :∀ P : phrase | P.DAUGHTERS.type ∩ head − struc ≠ (P.SYNSEM .NONLOCAL.INHERITED.F ) =NLFPrec(P) \ (P.SYNSEM .NONLOCAL.TO − BIND)- 145 -


Annexe CFragment du UML Core utilisépour <strong>les</strong> modè<strong>les</strong> objet contraintsFig. C.1 – Fragment du UML Core utilisé pour <strong>les</strong> modè<strong>les</strong> objet contraints - issu <strong>de</strong>[35]- 146 -


Bibliographie[1] Nareyek Alexan<strong>de</strong>r. Structural constraint satisfaction. In AAAI Press, editor, the1999 AAAI Workshop on Configuration, Technical Report, WS990, pages 76–82,1999.[2] Jérôme Amilhastre, Hélène Fargier, and Pierre Marquis. Consistency restorationand explanations in dynamic csps—-application to <strong>configuration</strong>. Artificial Intelligence,135(1-2) :199–234, 2002.[3] F. Baa<strong>de</strong>r and W. Nutt. Basic <strong>de</strong>scription logics, 2003.[4] Jean Marie Balfourier, Philippe Blache, Marie-Laure Guénot, and Tristan VanRullen.Comparaison <strong>de</strong> trois analyseurs symboliques pour une tâche d’annotationsyntaxique. In TALN’05, pages 41–48, 2005.[5] Jean Marie Balfourier, Philippe Blache, and Tristan VanRullen. From shallow to<strong>de</strong>ep parsing using constraint satisfaction. In COLING’02, pages 36–42, 2002.[6] Virginia Barker, Dennis E. O’Connor, Judith Bachant, and Elliot Soloway. Expertsystems for <strong>configuration</strong> at digital : Xcon and beyond. Communications of theACM, 32 :298–318, 1989.[7] Tilman Becker, Owen Rambow, and Michael Niv. The <strong>de</strong>rivational generative powerof formal systems, or, scrambling is beyond LCFRS. Technical Report IRCS-92-38,Institute for research in cognitive science, Phila<strong>de</strong>lphia, PA, 1992.[8] Philippe Blache. Une introduction ‘a hpsg.[9] Philippe Blache. Parsing ambiguous structures using controlled disjunctions andunary quasi-trees. In COLING-ACL, pages 124–130, 1998.[10] Philippe Blache. Property grammars and the problem of constraint satisfaction. InESSLLI-2000 workshop on Linguistic Theory and Grammar Implementation, pages47–56, 2000.[11] Philippe Blache. Les Grammaires <strong>de</strong> Propriétés : <strong>de</strong>s contraintes pour le traitementautomatique <strong>de</strong>s langues naturel<strong>les</strong>. Hermès Sciences, 2001.[12] Noam Chomsky. Systems of syntactic analysis. The Journal of Symbolic Logic,18(3) :242–256, September 1953.[13] Noam Chomsky. Aspects of the Theory of Syntax. MIT Press, 1965.[14] Noam Chomsky. Aspects <strong>de</strong> la Théory Syntaxique. Seuil, 1971.- 147 -


BIBLIOGRAPHIE[15] Alain Colmerauer. An introduction to prolog 3. communication of the ACM,33(7) :69–90, 1990.[16] Thomas Cornell and James Rogers. Mo<strong>de</strong>l theoretic syntax, 1998.[17] Ralph Debusmann. Extensible Depen<strong>de</strong>ncy Grammar — A Modular Grammar FormalismBased On Multigraph Description. PhD thesis, Universität <strong>de</strong>s Saarlan<strong>de</strong>s,4 2006.[18] Ralph Debusmann, Denys Duchier, and Marco Kuhlmann. Multi-dimensional graph<strong>configuration</strong> for natural language processing. In Constraint Solving and LanguageProcessing, Sept 2004.[19] Denys Duchier. Axiomatizing <strong>de</strong>pen<strong>de</strong>ncy parsing using set constraints. In SixthMeeting on Mathematics of Language, Orlando, Florida, pages 115–126, 1999.[20] Denys Duchier and Ralph Debusmann. Topological <strong>de</strong>pen<strong>de</strong>ncy trees : A constraintbasedaccount of linear prece<strong>de</strong>nce. In proceedings of the 39th Annual Meeting ofthe Association for Computational Linguistics (ACL 2001), pages 180–187, 2001.[21] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. Comprendre <strong>de</strong>s <strong>de</strong>scriptions simp<strong>les</strong> àl’ai<strong>de</strong> d’un configurateur. In Premières Journées Francophones <strong>de</strong> Programmationpar Contraintes, JFPC’2005, pages 325–334, Université d’Artois, Lens, Juin 2005.[22] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. An intuitive tool for constraint basedgrammars. In Henning Christiansen, Peter Rossen Skadhauge, and Jorgen Villadsen,editors, Revised Selected and Invited Papers, Constraint Solving and LanguageProcessing, First International Workshop, CSLP 2004, Roskil<strong>de</strong>, Denmark, September1–3, volume 3438 of Lecture Notes in Computer Science, pages 121–139.CSLP, Springer, 2005. isbn 3–540-26165–6.[23] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. Traduction automatique <strong>de</strong> <strong>grammaires</strong><strong>de</strong> traits en un problème <strong>de</strong> <strong>configuration</strong> syntaxique. In Deuxièmes JournéesFrancophones <strong>de</strong> Programmation par Contraintes, JFPC’2006, pages 139 – 148,Ecole <strong>de</strong>s Mines d’A<strong>les</strong> - site EERIE, Nîmes, juin 2006.[24] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. Application <strong>de</strong>s programmes <strong>de</strong>contraintes orientés objet à l’analyse du langage naturel. In Proceedings of TraitementAutomatique <strong>de</strong>s Langues Naturel<strong>les</strong>, TALN 2004, pages 163–172, Fes, Morocco,April 2004.[25] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. Parsing languages with a configurator.In proceedings of the European Conference for Artificial Intelligence ECAI 2004,pages 591–595, Valencia, Spain, August 2004.[26] Mathieu Estratat and <strong>Laurent</strong> <strong>Henocque</strong>. Parser <strong>de</strong>s languages avec un configurateur.In Proceedings of the 10 ièmes journées Nationa<strong>les</strong> sur la résolution pratique<strong>de</strong>s problèmes NP-complets, JNPC’04, pages 155–167, Angers, France, June 2004.[27] Mathieu Estratat and Raphaël La Greca. An interfacing module using <strong>configuration</strong>for <strong>de</strong>clarative <strong>de</strong>sign of nurbs surfaces. In The Ninth International Conference onComputer Graphics and Artificial Intelligence (3IA’2006), pages 85 – 96, Limoges,France, mai 2006.- 148 -


BIBLIOGRAPHIE[28] Hélène Fargier and <strong>Laurent</strong> <strong>Henocque</strong>. Configuration à base <strong>de</strong> contraintes. InInformation Interaction Intelligence, Actes <strong>de</strong>s 2ièmes Assises nationa<strong>les</strong> du GdRI3, pages 141–159. Cépadues-éditions, 2002.[29] Alexan<strong>de</strong>r Felfernig, Gerhard Friedrich, Dietmar Jannach, and Markus Zanker.Configuration knowledge representation using UML/OCL. In Proceedings of the5th International Conference on The Unified Mo<strong>de</strong>ling Language, pages 49–62.Springer-Verlag, 2002.[30] Gerhard Fleischan<strong>de</strong>rl, Gerhard Friedrich, Alois Haselböck, Herwig Schreiner, andMarkus Stumptner. Configuring large-scale systems with generative constraint satisfaction.IEEE Intelligent Systems - Special issue on Configuration, 13(7), 1998.[31] Gerald Gazdar, Ewan Klein, Geoffrey Pullum, and Ivan A. Sag. Generalized PhraseStructure Grammar. Blackwell, Oxford, 1985.[32] Michael Gelfond and Vladimir Lifschitz. The stable mo<strong>de</strong>l semantics for logic programming.In 5th International Conférence and Symposium on Logic Programming,pages 1070–1080, Cambridge, 1988. MIT Press.[33] Robert Grabowski, Marco Kuhlmann, and Mathias Möhl. Lexicalised <strong>configuration</strong>grammars. In Second International Workshop on Constraint Solving and LanguageProcessing (CSLP 2005), Sitges, Spain, 2005.[34] Object Management Group. UML. Technical Report 2.0, OMG, 2004.[35] Object Management Group. UML 2.0 Infrastructure Specification. Technical Report2.0, OMG, 2004.[36] <strong>Laurent</strong> <strong>Henocque</strong>. Mo<strong>de</strong>ling object oriented constraint programs in Z. RACSAM(Revista <strong>de</strong> la Real Aca<strong>de</strong>mia De Ciencias serie A Mathematicas), special issueabout Artificial Intelligence and Symbolic Computing, page to appear, 2004.[37] <strong>Laurent</strong> <strong>Henocque</strong>, Mathias Kleiner, and Nicolas Prcovic. Advances in polytimeisomorph elimination for <strong>configuration</strong>. In proceedings of Princip<strong>les</strong> and Practice ofConstraint Programming - CP 2005,, pages 301–313, Sitges Barcelona, Spain, 2005.Springer.[38] <strong>Laurent</strong> <strong>Henocque</strong> and Nicolas Prcovic. Practically handling <strong>configuration</strong> automorphisms.In proceedings of ICTAI 2004, The 16th IEEE Internatioanl Conferenceon Tools for Artificial Intelligence, Boca Raton, Florida, November 15–17 2004.[39] Ulrich Junker. Preference programming for <strong>configuration</strong>. In AAAI/IAAI 2000,pages 904–909, 2000.[40] Ulrich Junker. Preference-based search for scheduling. In IJCAI 2001 Workshopon Configuration, 2001.[41] Ulrich Junker and Daniel Mailharro. The logic of ilog (j)configurator : Combiningconstraint programming with a <strong>de</strong>scription logic. In IJCAI 2003 Workshop onConfiguration, 2003.[42] Sylvain Kahane. Grammaires <strong>de</strong> dépen<strong>de</strong>nces formel<strong>les</strong> et théorie sens-texte - tutoriel.In TALN’01, 2001.- 149 -


BIBLIOGRAPHIE[43] Raphaël La Gréca. Approche déclarative <strong>de</strong> la modélisation <strong>de</strong> surfaces. thèse <strong>de</strong>doctorat, Université Aix-Marseille II, octobre 2005. directeur : Marc Daniel.[44] Raphaël La Greca and Marc Daniel. A <strong>de</strong>clarative system to <strong>de</strong>sign preliminarysurfaces. In WSCG’06, volume 80-86943-03-8, pages 17–24, University of WestBohemia, Czech Republic, january 30 – february 3 2006.[45] Diego Magro and Pietro Torasso. Decomposition strategies for <strong>configuration</strong> problems.Artif. Intell. Eng. Des. Anal. Manuf., 17(1) :51–73, 2003.[46] Daniel Mailharro. A classification and constraint based framework for <strong>configuration</strong>.AI-EDAM : Special issue on Configuration, 12(4) :383 – 397, 1998.[47] Igor Mel´cuk. Levels of <strong>de</strong>pen<strong>de</strong>ncy in linguistic <strong>de</strong>scription : Concepts and problems.In V. Agel, L. Eichinnger, H.-W. Eroms, P. Hellwig, H. J. Herringer, andH. Lobin, editors, Depen<strong>de</strong>ncy and Valency - An International Handbook of ContemporaryResearch, volume 1, pages 188–229, 2003.[48] Sanjay Mittal and Brian Falkenhainer. Dynamic constraint satisfaction problems.In Proceedings of AAAI-90, pages 25–32, Boston, MA, 1990.[49] Bernhard Nebel. Reasoning and revision in hybrid representation systems. LectureNotes in Artificial Intelligence, 422, 1990.[50] Robert Pasero and Paul Sabatier. Illico : un système générique <strong>de</strong> compréhensiond’un sous-ensemble du français. Technical report, LIM, November 1999.[51] Robert Pasero and Paul Sabatier. Illico : Principes, connaissances et formalismes.Technical report, LIF, Décembre 2005.[52] Carl Pollard and Ivan A. Sag. Information-based Syntax and Semantics. TheUniversity of Chicago Press, Chicago, 1987.[53] Carl Pollard and Ivan A. Sag. Head-Driven Phrase Structure Grammar. The Universityof Chicago Press, Chicago, 1994.[54] Geoffrey K. Pullum and Barbara C. Scholz. On the distinction between mo<strong>de</strong>ltheoreticand generative-enumerative syntactic frameworks. In Philippe <strong>de</strong> Groote,Glyn Morrill, and Christian Retoré, editors, ’Logical Aspect of Computational Linguistics: 4th International Conference’ (Lecture Notes in Artificial Intelligence -2099), pages 17–43, 2001.[55] Daniel Sabin and Eugène C. Freu<strong>de</strong>r. Configuration as composite constraint satisfaction.In Artificial Intelligence and Manufacturing Research Planning Workshop,pages 153–161, 1996.[56] Timo Soininen, Ilkka Niemelä, Juha Tiihonen, and Reijo Sulonen. Unified <strong>configuration</strong>knowledge representation using weight constraint ru<strong>les</strong>. In Workshop Notesof the ECAI’2000 Configuration Workshop, pages 79–84, Berlin, Germany, August2000.[57] Timo Soininen, Ilkka Niemela, Juha Tiihonen, and Reijo Sulonen. Representing<strong>configuration</strong> knowledge with weight constraint ru<strong>les</strong>. In Proceedings of the AAAISpring Symp. on Answer Set Programming : Towards Efficient and Scalable Knowledge,pages 195–201, March 2001.- 150 -


BIBLIOGRAPHIE[58] J. M. Spivey. The Z Notation : a reference manual. Prentice Hall originally, nowJ.M. Spivey, 2001.[59] Markus Stumptner. An overview of knowledge-based <strong>configuration</strong>. AI Communications,10(2) :111–125, June 1997.[60] Markus Stumptner and Alois Haselböck. A generative constraint formalism for<strong>configuration</strong> problems. Advances in Artificial Intelligence : Proceedings of theThird Congress of the Italian Association for Artificial Intelligence AI*IA’93, pages302–313, 1993.[61] Lucien Tesnière. Eléments <strong>de</strong> syntaxe structurale. Klincksiek, Paris, 1959.[62] Tristan VanRullen. <strong>Vers</strong> une analyse syntaxique à granularité variable. Thèse <strong>de</strong>doctorat, Université <strong>de</strong> Provence (Aix-Marseille I), 12 décembre 2005.[63] Atro Voutilainen. Engcg tagger, version 2. Sprog og Multimedier, 1997.- 151 -


<strong>Vers</strong> <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>RESUMECette thèse a pour objet d’utiliser la recherche <strong>de</strong> modè<strong>les</strong> finis comme un cadre uniquepour l’analyse <strong>de</strong> langages naturels du double point <strong>de</strong> vue syntaxique et sémantique.Pour la syntaxe, <strong>les</strong> <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong> que nous proposons offrent un cadreformel <strong>de</strong> représentation et d’étu<strong>de</strong> <strong>de</strong> <strong>grammaires</strong>. El<strong>les</strong> autorisent notamment laréalisation d’un analyseur syntaxique par simple définition <strong>de</strong> la grammaire. Le traitement<strong>de</strong> la sémantique est envisagé, quant à lui, sur <strong>de</strong>s textes <strong>de</strong>scriptifs (décrivant<strong>de</strong>s objets). Ces traitements syntaxico-sémantiques sont décrits par <strong>de</strong>s modè<strong>les</strong> objetscontraints, formalisés grâce au langage Z . Cette métho<strong>de</strong>, nouvelle à notre connaissancedans le domaine <strong>de</strong> l’analyse du langage naturel, présente l’avantage d’être indépendante<strong>de</strong>s techniques <strong>de</strong> résolution. Nous avons choisi une métho<strong>de</strong> <strong>de</strong> recherche <strong>de</strong> modè<strong>les</strong>finis, la <strong>configuration</strong>, pour la recherche <strong>de</strong> solutions à partir d’une interprétation dumodèle objet contraint.DISCIPLINE : InformatiqueMOTS-CLES : Configuration, Modè<strong>les</strong> objet contraint, <strong>grammaires</strong> <strong>de</strong> <strong>configuration</strong>,analyse du langage naturel, syntaxe, sémantiqueABSTRACTThe goal of this thesis is to use finite mo<strong>de</strong>ls search as a single natural language parsingframework at both syntactical and semantical points of view. For the syntax, the<strong>configuration</strong> grammars we propose offer a formal framework for the representation andstudying of grammars. They allow the implementation of a syntactical parser, just by<strong>de</strong>fining the grammar. The semantics treatment is based on <strong>de</strong>scriptive texts (which<strong>de</strong>scribe objects). These syntactico-semantic treatments are <strong>de</strong>scribed by constrainedobject mo<strong>de</strong>ls, formalized with the Z language. This method, new to the best of ourknowledge in natural language analysis, presents the advantage of being in<strong>de</strong>pendantfrom resolution technics. We are using a finite mo<strong>de</strong>l search method, called <strong>configuration</strong>,for searching a solution out of an interpretation of the constrained object mo<strong>de</strong>l.KEYWORDS : Configuration, Constrained object mo<strong>de</strong>ls, <strong>configuration</strong> grammars,natural language parsing, syntax, semanticsLaboratoire <strong>de</strong>s Sciences <strong>de</strong> l’Information et <strong>de</strong>s Systèmes (LSIS) - UMR CNRS 6168

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!