• Aucun résultat trouvé

Vers une production semi-automatique d’une grammaire d’arbres adjoints pour

3.3. FORMALISME MÉTA-GRAMMATICAL EXTENSIBLE XMG 3.2Hiérarchie d’héritage

3.3.4 Différents niveaux de description linguistique

Une caractéristique importante du système XMG est qu’il traite non seulement des structures arborescentes syntaxiques, mais également d’autres niveaux linguistiques de description. Imaginons que nous voulons étendre une méta-grammaire de manière à pou-voir décrire d’autres types d’informations que des arbres syntaxiques et produire par exemple une TAG augmentée de sémantique. Cela peut être fait en utilisant des dimen-sions qui distinguent différentes informations.

Chaque dimension est caractérisée par son propre langage de représentation et son propre processus de stockage. Néanmoins, toutes les dimensions ont le même processus de com-binaison (et/ou).

Dans le système XMG, trois dimensions sont disponibles :

— <syn> : La dimension syntaxique pour décrire les arbres des fragments d’arbres des grammaires d’arbres adjoints et des grammaires d’interaction.

— <sem> : La dimension sémantique pour définir les structures prédicatives pour la sémantique plate [Bos, 1995].

— <iface> : La dimension interface qui permet le partage d’identifiants entre les différentes dimensions tel que l’interface sémantique-syntaxe (matrices d’attribut-valeur).

Le nombre de dimensions de XMG est limité à ces trois dimensions. Face à cette contrainte, on pourrait se demander sur la possibilité d’inclure des représentations particulières telles que les cadres sémantiques dans notre grammaire.

Ce manque de flexibilité a motivé le besoin d’apporter de la liberté dans la définition de nouvelles dimensions. C’est ainsi que XMG a été étendu en implémentant une méthode d’assemblage XMG-2 (voir section 3.3).

3.3.5 Définir une TAG avec XMG

En XMG, une méta-grammaire qui définit une TAG [Duchier et al., 2004] est décrite dans un fichier (ou un ensemble de fichiers) structuré en trois parties :

— L’en-tête : contient des éventuelles inclusions de fichiers, les déclarations de prin-cipes, de types et de traits.

3.3. FORMALISME MÉTA-GRAMMATICAL EXTENSIBLE XMG

— Les descriptions des arbres élémentaires : consiste à spécifier les classes défi-nissant les fragments élémentaires. Une classe comporte trois parties : la déclaration de la classe, la gestion de l’espace des noms et la définition du contenu.

— Les valuations : la dernière étape d’une description méta-grammaticale qui consiste à exprimer la valuation des classes représentant les familles. Elle a pour effet de déclencher la combinaison des fragments définis (classes qui appellent des classes contenant des opérations de disjonction et/ou conjonction). Ainsi, pour chacune de ces classes, nous obtiendrons une description d’arbre cumulée pouvant conduire à la création de 0, 1 ou plusieurs arborescences TAG.

Nous présentons, dans la suite de cette section, la syntaxe concrète utilisée pour définir une classe de de fragments d’arbres en TAG.

Considérons la description méta-grammaticale des deux fragments de la figure 3.2 (section 3.2.3.2. de ce chapitre) :

(17) class Verbe[CouleurSV, CouleurV] export ?SV ?V

declare ?SV ?V {

<syn> {

node ?SV (color=?CouleurSV) [cat=sv] {

node ?V (color=?CouleurV, mark=anchor) [cat=v] } } } class VerbeIntransitif import Verbe[black,black] declare ?S ?X1 { <syn> {

node ?S (color=red, mark=subst) [cat=sn, i=?X1]; ?SV -> ?S; ?S >> ?V }; <iface>{[arg0=?X1]} } value VerbeIntransitif

Une classe est définie avec le mot clé "class" suivi par son identifiant. Elle peut être para-métrée. Dans ce cas, ses paramètres sont entre crochets et séparés par des virgules. Dans cet exemple, la première classe est identifiée par son "Verbe" et possède deux paramètres CouleurSV, CouleurV. Tandis que la classe "VerbeIntransitif" n’est pas paramétrée. class Verbe[CouleurSV, CouleurV]

3.3. FORMALISME MÉTA-GRAMMATICAL EXTENSIBLE XMG

Dans "Verbe" les deux variables SV et V sont exportées comme suit : export ?SV ?V.6 En d’autres termes, ces deux identifiants exportés sont désormais visibles par la classe "Ver-beIntransitif". En effet, cette dernière hérite de la classe "Verbe". L’héritage est exprimé par l’instruction import et des valeurs sont attribuées aux variables passées en paramètre : import Verbe [black,black].

La classe "Verbe" (respectivement "VerbeIntransitif") déclare 2 identifiants : ?SV et ?V (respectivement ?S et ?X1 qui sont des variables locales).

Les identifiants, dans XMG, peuvent faire référence à un nœud (par exemple : SV, V et S), à une valeur d’une propriété d’un nœud (CouleurSV, CouleurV) ou à une valeur d’une fonctionnalité d’un nœud ( ?X1). Mais quel que soit l’identifiant auquel il fait référence, il doit avoir été déclaré auparavant, comme dans l’exemple (17) : declare ?SV ?V et de-clare ?S ?X1

Notons que le préfixe ? (pour les variables) et ! (pour les constantes anonymes) sont obli-gatoires lors de la déclaration.

Le corps de la classe, correspondant à la description de l’abstraction qu’elle réalise. Son contenu est délimité entre crochets et peut être composé de :

— une déclaration,

— une conjonction des déclarations représentées par "S1 ; S2", — une disjonction des déclarations représentées par "S1 | S2".

La description syntaxique est définie suivant ce modèle <syn> formules. Les formules sont les descriptions des nœuds et leurs relations les uns avec les autres. Avec XMG, il est possible de donner un nom à un nœud en utilisant une variable, et lui associer des propriétés et / ou des fonctionnalités.

Une fois les nœuds du fragment d’arbre définis, leurs relations sont établies à l’aide des opérateurs suivants : — -> domination immédiate — ->+ dominance stricte — ->* dominance large — » précédence immédiate — »+ précédence stricte — »* précédence immédiate — = équation de nœud

Concentrons-nous sur les descriptions syntaxiques de notre exemple : <syn>

{

node ?SV (color=?CouleurSV) [cat=sv] {

node ?V (color=?CouleurV, mark=anchor) [cat=v] } }

6. Pour éviter le conflit de nom lors de l’exportation, l’identifiant peut être renommé. Cela se fait en utilisant export id1 = id1new.

3.3. FORMALISME MÉTA-GRAMMATICAL EXTENSIBLE XMG

Dans ce bout de code, la variable ?SV réfère à un nœud.7 Ce nœud a une propriété : color (couleur du nœud) associée à la valeur de la variable ?CouleurSV. La structure d’entité [cat = sv] définie la catégorie du nœud SV. La variable ?V réfère au nœud qui est dominé par SV. V possède deux propriétés : celle de la couleur, associée à la valeur de la variable ?CouleurSV et mark qui indique que la valeur de la marque du nœud est ancre. Enfin la catégorie du nœud V est spécifiée par la structure [cat = v].

<syn> {

node ?S (color=red, mark=subst) [cat=sn, i=?X1]; ?SV -> ?S;

?S >> ?V }

Un seul nœud S est déclaré dont les propriétés indiquent que c’est un nœud de substitution (la valeur de la marque du nœud est substitution) et saturé (couleur rouge). Le trait "cat = sn" définit la catégorie du nœud et "i= ?X1" attribut la valeur de la variable ?X1 au trait i. Le nœud SV domine le nœud S ( ?SV -> ?S). Ce dernier précède V ( ?S » ?V). La dimension de l’interface est réalisée en suivant ce modèle <iface> formules. La déclaration <iface>[arg0= ?X1] de la classe "VerbeIntransitif" permet d’associer la variable X1 à la l’identifiant global "arg0". Chaque sous-formule définie peut être ajoutée de manière conjointe (en utilisant " ;") ou de manière disjonctive (en utilisant "|") à la description.