• Aucun résultat trouvé

Un nouveau formalisme de grammaire logique reversible /

N/A
N/A
Protected

Academic year: 2021

Partager "Un nouveau formalisme de grammaire logique reversible /"

Copied!
124
0
0

Texte intégral

(1)

(

f

,

UN NOUVEAU FORMALISME DE GRAMMAIRE LOGIQUE REVERSmLE

par François Perrault Ecole d'infonnatique

Université McGill, Montréal

Mémoire soumis en janvier 1991 à la faculté des études avancées et de la recherche, dans le but de satisfaire une des conditions requises en vue de l'obtention du degré de maîtrise ès sciences. © Francois Perrault, 1991.

(2)

!

RESUME

Les grammaires logiques classiques (MG, DCG, XG, etc) font preuve d'un certain biais envers l'analyse et il est difficile de les utiliser en mode synthèse. On présente un fonnalisme de grammaire logique, les Grammaires Réversibles (GR), qui pennet de faire aussi bien la synthèse que l'analyse. A chaque constituant d'une grammaire est associé non seulement une chaîne, mais également une formule sémantique. A partir

d'~ne grammaire neutre du point de vue procédural, deux programmes logiques sont créés: un analyseur et un synthétiseur. Ces programmes conservent l'interprétation déclarative de la grammaire, mais imposent chacun un ordre particulier dans la recherche. Cet ordre est détenniné à partir des spécifications grammaticales relatives à la compositionnalité des formules sémantiques et des chaînes. Un certain type de récursion à gauche est automatiquement détecté et éliminé par des mécanismes de transformation de programme.

ABSTRACT

Conventional logic grammars (MG, DCa, XG, etc) are to a certain extent biased towards analysis, and are difficult to use for synthesis purposes. We present alogie grammar formalism called Reversible Grammars (GR) suitable for both synthesis and analysis purposes. To each grammar constituent is associated not only a string, but also a semantic fonnula. For each grammar, two logie programs are ereated: an analyser and a synthesiser. The programs retain the grammar's declarative interpretation, but each one imposes a specifie search order. This order is detennined by the descriptions of semantic and string eompositionality included in the grammar cules. A certain type of left reeursion is automatieally deteeted and eliminated by program transfonnation.

(3)

REMERCIEMENTS

Ce mémoire n'aurait évidemment pas pu être rédigé sans le concours de plusieurs personnes auxquelles je désire exprimer ma gratitude. Premièrement je tiens â remercier mon directeur de thèse à l'école d'informatique de l'université McGill, Renato deMori, pour sa confiance et son appui. Merci au ministère des communications du Canada qui a supporté ce travail et à tous mes confrères au CCRIT pour une atmosphère de travail hors pair. Merci à Marc Dymetman également du eCRIT pour son temps et ses commentaires judicieux. Et enfin un merci particulier â mon supérieur immédiat, Pierre Isabelle, pour sa patience, son encouragement et des échanges enrichissants, autant lors de la conduite des travaux que lors de la rédaction du mémoire.

(4)

(

TABLE DES MATIERES

Résumé/Abstract ... i

Remerciements ... ii

Table des matières . ... ... iii

1. Introduction ... ... ... ... 1

1.1. Grammaires et formalismes de grammaire ... ... ... ... ... 1

1.2. La réversibilité et ses avantages ... 5

1.3. Objectifs et approche .. ... ... ... ... 7

1.4. Limitations, survol et conventions ... 10

2. Notions de base ... ... ... ... ... ... ... ... ... 12

2.1. Caractéristiques fondamentales des grammaires logiques ... 12

2.2. Prolog et les grammaires logiques ... ... ... 13

2.3. Survol des formalismes classiques ... 15

2.4. Le problème de la réversibilité ... ... 18

2.5. Fonnalismes pour la synthèse et formalismes réversibles ... 21

2.6. Apport des GR au domaine ... 24

3. GR: la notation ... 26

3.1. Les règles ... ... ... ... ... 26

3.2. La chaîne .. ... ... ... ... 29

3.3. La sémantique ... 33

3.4. Arguments et non-terminaux ... 41

3.5. Appels à des procédures ... 43

3.6. Discussion ... ... ... ... ... 43

4. GR: l'implantation ... 47

4.1. Compilation des grammaires ... ... ... 47

4.1.1. Compilation de la description-chaîne ... ... 48

4.1.2. Compilation de la description-sémantique ... 50

4.1.3. Compilation des tenninaux ... ... ... 52

(5)

4.2.1. Analyse ... 55 4.2.2. Synthèse .. .... .... .... ... ... ... ... ... ... 58 4.2.3. Récursion à gauche ... 62 4.3. Discussion ... ... 66 4.3.1. Propriété d'instanciation ... 66 4.3.2. Perfonnance ... 69 4. 3.3. Avenues de recherche ... ... ... 71 5. Conclusion ... ... ... ... ... ... ... 73 Références ... 76

Annexe A: Non-tenninaux les plus courants ... 80

Annexe B: Syntaxe des GR exprimée en DCG ... 81

Annexe C: Programme ... ... ... ... ... ... 82

Annexe C.l: Module principal... ... ... 83

Annexe C.2: Analyseur de règles ... 89

Annexe C.3: Traitement de la description-sémantique ... 97

Annexe C.4: Traitement de la description-chaîne ... 101

Annexe C.5: Traitement de la récursion à gauche ... 107

Annexe C.6: Construction des clauses ... 114

(6)

r

1. Introduction

L'utilisation des langues naturellesl est essentielle à notre vie de tous les jours. Il s'agit du moyen le plus important par lequel les gens échangent et enregistrent de l'information. Lorsque nous communiquons, nous employons presque sans effort des mécanismes extrêmement complexes, et cette faculté a souvent été présentée comme une caractéristique distinctive de l'être humain. Pourtant, parce que les langues naturelles sont si intimement liées à nos vies, no~s avons tendance à sous-estimer leur puissance et leur influence.

Le traitr lent automatique des langues naturelles (TALN) a pour objectif premier

de développe. des systèmes qui permettent de reproduire sur ordinateur des opérations de compréhension et de production de textes en langue naturelle. Le T ALN est une des branches traditionnelles de l'intelligence artificielle et il fait appel à la linguistique computationnelle, c'est-à-dire la linguistique appliquée. Selon le Petit Robert, "la linguistique est l'étude des conditions générales de fonctionnement et d'évolution des langues". Un système de TALN doit bien entendu incorporer au premier chef un

vaste ensemble de connaissances linguistiques. Les applications du TALN

comprennent: la traduction par ordinateur [Tucker 84; Slocum 85; Isabelle, Dymetman, Macklovitch 88J, l'interrogation de bases de données [Woods, Kaplan, Nash-Webber 72; Dahl 77], la compréhension de textes pour fins de collecte de données [Sager 78; Hirschman, Sager 82J, et l'enseignement intelligent assisté par ordinateur [Wenger 87J. Le livre de Winograd [Winograd 72] offre un bon aperçu des techniques et problèmes relatifs au T ALN.

1.1. Grammaires et formalismes de grammaire

Une des composantes essentielles de tout système de TALN est la grammaire.

Pour être utilisable par un ordinateur, une description grammaticale doit être complètement formalisée. Les formalismes de grammaire ont leurs origines dans la théorie linguistique et constituent une des branches les plus importantes du TALN. Un

IOn utilise le vocable langues naturelles par opposition à celUi de langues artificielles qui désigne par e,",emplc les langages utilisés pour la programmation des ordinateurs.

(7)

-. fonnalisme de grammaire est un langage destiné à décrire des langues. En particulier un tel formalisme doit pennettre de:

(1) décrire l'ensemble des phrases correctes faisant partie d'une langue,

(2) décrire plus particulièrement les propriétés structurales de ces phrases, c'est-à-dire les relations qui existent entre les groupes de mots et les fonctions qui leurs sont attachées (la syntaxe).

(3) et décrire le sens de ces phrases (la sémantique).

Prenons un exemple. Un chien mord un chat constitue une phrase bien fomlée en français. Règle générale la concaténation d'un groupe nominal ( un chien) et d'un groupe verbal ( mord un chat ) donne une phrase syntaxiquement bien formée. Si pour représenter une phrase, un groupe norflinal et un groupe verbal, nous utilisons respectivement les symboles s, np et vp, on peut alors exprimer la règle précédente de la façon suivante:

s

-->

np vp

où la flèche est interprétée comme peut se réécrire ou encore peut prendre la forme.

Il est possible de décrire une grammaire avec un ensemble de règles de ce type. Les règles sont définies à l'aide de symboles appelés non-terminaux et terminaux qui spécifient la structure des phrases. Les terminaux constituent les éléments de base de la langue décrite par la grammaire et correspondent donc au vocabulaire, alors que les non-terminaux, parfois appelés catégories syntaxiques, sont des symboles tels que s,

2

np, et vp .

Ce type de grammaire basé sur l'utili":Hion de règles de réécriture est inspiré des

grammaires syntagmatiques'3. Les grammaires syntagmatiques [Chomsky 59J

constituent un cadre de référence à partir duquel on peut caractériser certaines propriétés des formalismes de grammaire. A ce titre elles méritent qu'on s'y attarde pour en donner une définition plus formelle.

2ces symboles sont d'utilisation courante en Imguistique. Une table des non-termmaux les plus fréquemment utilisés est disponible en annexe pour fins de référence.

lEn général lorsqu'on utilise le mOl grammaire au pluriel, on fait alors référence à une classe de

(8)

r

'1

Une grammaire syntagmatique est un quadruplet G

=

(N, T, P, S),

(1) N est un ensemble fini de symboles non-terminaux;

(2) T est un ensemble fini disjoint de N, constitué de symboles terminaux;

(3) P est un sous-ensemble fini de

(N

u

T)*N(N

u

T)*

x

(N

u

T)*

Un élément (X, Y) de P s'écrit X --> Y et est appelé production ou règle;

(4) S est un symbole particulier de N appelé symbole de départ.

Pour décrire la langue définie par une grammaire G = (N, T, P, S), la notion de dérivation est utilisée. Si X --> Y est une production de P, et si V et W sont des expressions composées de symboles provenant de (N

u

T)*, alors en appliquant la production X --> Y à l'expression VXWon obtient VYW et l'on dit que la production

dérive VYW à partir de VXW. La langue L(G) décrite par une grammaire G est

l'ensemble des expressions constituées exclusivement de termiflaux pouvant être dérivés à partir de S, le symbole de départ, par dérivation successives.

Cette définition traditionnelle concerne uniquement les aspects syntaxiques d'une langue. Comme nous l'avons mentionné, nous allons nous intéresser aux formalismes de grammaire qui permettent également de décrire les aspects sémantiques. Un formalisme doit nous permettre d'établir des relations entre des chaînes, les mots des phrases, et les représentations sémantiques4 de ces phrases, c'est-à-dire une formalisation de leurs significations. On pourrait par exemple associer à la phrase fido

mord sylvester, une représentation sémantique inspirée dt' la logique du premier ordre,

mordre(fido, sylvester

J,

mordre est un prédicat à deux arguments ciont le premier

représente celui qui mord, et le deuxième ce qui est mordu.

Du point de vue du TALN, les descriptions produites à l'aide d'un formalisme de grammaire doivent être calculables. Deux types de calculs peuvent être effectués:

l'analyse et la synthèse. Etant donnée une grammaire et une phrase bien formée,

l'analyse vise à récupérer la représentation sémantique de la phrase à partir de sa

4A noter qu'en général les gens qui travaillent en intelligence artificielle on plutôt tendance à utiliser le tenne représenlation inlerne pour ce que nous appelons représentation sémantique.

(9)

chaîne. Sa contrepartie est la synthèse et produit la chaîne appropriée à panir d'une grammaire et de la représentation sémantique d'une phrase. On appelle analyseur et synthétiseur (ou générateur) les programmes qui implantent les fonctions correspondan te s.

Panni les différentes familles de formalismes calc.ulables par ordinateur, les

formalismes de grammaire logique occupent une place prépondérante depuis quelques

années. A partir de 1972 et principalement à travers le langage Prolog (PROgrammation en LOGique), les principes de la programmatIon logique ont été appliqués au TALN. L'idée à la base de la programmation logique consiste à représenter un problème par une formulation logique à l'aide de faits et de règles. Un mécanisme de preuve permet de déterminer quelles sont les conséquences logiques de cette fonnulation. Pour exécuter un progiamme logique, on émet une hypothèse sur la solution au problème et on laisse le mécanisme de preuve réfuter ou prouver notre hypothèse. Si notre hypothèse admet plusieurs solutions, alors toutes les instances qui en font une conséquence logique peuvent être trouvées.

Les grammaires de métamorphose [Colmerauer 75), les DCG ou grammaires de clauses définies [pereira, Warren 80), les gapping grammars (Dahl, Abramson 84;

Dahl 84), les grammaires bidIrectionnelles (Dymetman, Isabelle 88), et autres formalismes de mêm:! nature, sont autant d'exemples de la famille des grammaires logiques. Il existe plusieurs similitudes entre les grammaires logiques et les grammaires traditionnelles telles que celles rencontrées dans la théorie des langues formelles. Entre autres l'ossature de base des grammaires logiques s'apparente à celle des grammaires syntagmatiques. Une différence importante entre les grammaires logiques et les grammaires formelles traditionnelles réside dans le fait que le!l grammaires logiques peuvent être vues (modulo leur traductIon !lOU~ forme de programmes logiques) comme des théories logiques, pour lesquelles Il exi~l~ les notions de théorème, d'axiomes et de procédure de preuve. En partIculier, analyse et synthèse peuvent être vues comme deux procédures de preuve (chacune spécialisée en fonction d'une utilisation spécifique) pour une même théorie logique sous-jacente. En d'autres mots il est possible de convertir les grammaires logiques en programmes logiques qui permettent de faire de l'analyse, et (dans certains cas) de la synthè!le.

(10)

1.2. La réversibilité et ses avantages

On dit d'un fonnalisme de grammaire qu'il est réversible si une grammaire exprimée à l'aide de cette notation permet de faire à la fois de l'analyse et de la syllthèseS• La plupart des formalismes de grammaire logique sont biaisés vers l'analyse et ne sont pas réversibles. Leur utilisation en mode synthèse bien que possible en théorie, est difficile à réaliser en pratique: on rencontre rapidement des problèmes de performance et de tenninaison. Et lorsqu'il est possible de faire de la synthèse avec ces fonnalismes c'est le plus souvent aux dépens du mode analyse. Dans bien des cas les utili..,ateurs ont recours à lâ duplication pour tenter d'atteindre un semblant de réversibilité. Au lieu d'utiliser la même grammaire pour les deux modes, on construit des grammaires parallèles qui sont chacune orientée vers un mode particulier.

Les avantages d'un formalisme de grammaire réversible sont nombreux et particulièrement intéressants pour des domaines où l'on doit pouvoir faire de l'analyse et de la synthèse avec la même grammaire. En traduction automatique par exemple, pour traduire d'une langue Li à une langue L2 on utilise habituellement une

grammaire décrivant la langue Li en mode analyse et une grammaue pour la langue

L2 en mode synthèse. En utilisant des grammaires réversibles il devient possible de

traduire de la langue L2 vers la langue LI en inversant le rôle de chacune des

grammaires. Evidemment tout cela n'est réalisable que si l'ensemble du système est lui-même réversible. D'un point de vue strictement pratique, un formalisme de grammaire réversible nous permet de faire des économies non négligeables quant au temps requis pour spécifier la grammaire, en corriger les coquilles et en faire la maintenance. Le raisonnement est simple, une seule grammaire plutôt que deux, donc

SA strictement parler l'emploi d'expressions telles que formalisme réversible ou grammaire

réversible constItue un abus de langage. Ce que nous voulons vraiment dire c'est dans le premier cas: l' ImplantalÎon de la relation décrite par les grammaires exprimées avec ce formalisme est réversible; et

dans le deUXIème cas: L'Implantation de la relatIOn démte par cette grammaire est réverSible. Mais parce que les travaux présentés dans ce mémoire s'incrivent dans le cadre du TALN et qu'à ce tItre nous sommes autant intéressés par l'aspect notation que par l'aspect calcul, nos défillltions de formal-isme et de grammaire étendent les définitions classiques de ces deux termes de façon à ce que les pro-grammes aSSOCIés à une grammllirc SOIt également désignés par ces termes. Dans le but d'alléger le style, nous nous permettrons donc l'utilisation d'ellipses telle que celle employée dans le texte.

(11)

deux fois moins de travail.

Une même spécification linguistique pour l'analyse et la synthèse offre également l'avantage d'être plus correcte et plus juste en éliminant le risque inhérent de divergences existant entre deux copies sen$ées représenter la même langue. Cela peut s'avérer un avantage considérable si l'on ne veut pas se retrouver dans un(, situation ml le système est inapte à générer une chaîne qu'il est par contre capable d'analyser. L'expérience a prouvé que typiquement les analyseurs ont tendance à sur-analyser, c'est-à-dire à accepter des phrases qui ne devraient pas l'être par rapport à la langue

idéale qu'on désire décrire. Or une grammaire faisant preuve de laxité risque

d'introduire des problèmes d'ambiguité dûs à une capacité générative supérieure à ce qui était désiré. D'un autre côté, les générateurs ont pour leur part plutôt tendance à

sous-générer: le grammairien effectue des choix plus ou moins arbitraires dans le

système de paraphrases de la langue idéale.

Enfin avec une grammaire réversible, même si l'application finale n'utilise qu'un seul mode, il est possible d'utiliser le mode complémentaire pour aider à décoquiller le mode principal. Il arrive souvent par exemple que des erreurs descriptives s'immiscent dans une grammaire devant être utilisée en analyse. Des phra.:;es agrammaticales par :apport à la langue idéale sont alors acceptées par la grammaire et il est très difficile de les découvrir. Par contre ces lacunes descriptives sont rapidement mises en évidence par le processus de génération. Dans ~n cas comme celui-là, l'utilisation de la grammaire en synthèse nous aide à mieux formuler notre grammaire pour des fins d'analyse.

D'un point de vue pratique la réversibilité telle qu'on l'entend n'est pas nécessairement toujours souhaitable ou encore ce qui est requis par la situation. On pourrait imaginer avoir besoin d'un synthétiseur qui génère une langue qui est un sous-ensemble de la langue acceptée par l'analyseur. Par exemple on pourrait vouloir un analyseur très souple capable d'accepter certaines phrases dont le style est boiteux, mais on ne désirerait certainement pas générer ces phrases. Dans ce cas-là, un fonnalisme réversible présente peut-être moins d'avantages. Mais il demeure toujours possible d'utiliser un tel formalisme pour créer un système unidirectionnel pour l'analyse et un autre système pour la synthèse.

(12)

r

Les formalismes de PHRED [Wilensky, Arens 80; Jacobs 85], Ariane [Boitet, Nedobejkine 81; Vauquois, Chappuy 85] et Rosetta [Landsbergen 87] tendent tous vers un certain degré de réversibilité. Mais la majeure partie des recherches sur la réversibilité s'effectue dans le domaine des formalismes de grammaire logique [Dymetman, Isabelle 88; Dymetman, Isabelle 90; Shieœr 88; Shieber, van Noord, Moore, Pereira 89; van Noord 89]. Notte travail s'inscrit dans ce cadre des grammaires logiques et vise il offrir une alternative aux approches mentionnées.

1.3. Objectifs et approche

Notre objectif est de concevoir, de décrire et d'implanter un formalisme de grammaire logique réversible. Nous proposons un fonnalisme que nous appelons les grammaires réversibles (GR) basé sur les principes de la programmation logique. Une grammaire est vue comme établissant une relation entre des phrases et des fonnules sémantiques, et les problèmes d'analyse et de synthèse sont vus comme deux facons de calculer cette relation.

La conception d'un fonnalisme de grammaire calculable comporte deux volets: la création d'une notation et la mise en place d'un mécanisme capable d'effectuer de l'analyse ou de la génération à partir de grammairf;s écrites dans cette notation.

La notation des GR s'inspire des formalismes de grammaire logique antérieurs et nous permet de décrire des grammaires à l'aide de règles de réécriture. Les

constituants, c'est-à-dire les non-terminaux et les terminaux, possèdent une structure

interne qui comprend non seulement la spécification d'une valeur chaîne, mais également d'une valeur sémantique. Chaque règle définit un non-terminal N comme un ensemble de constituants, et définit le rapport entre les valeurs associées à N et celles associées à chacun des constituants qui réécrivent N. En particulier, une règle doit préciser le rapport entre la chaîne (resp. la représentation sémantique) associée à N

et les chaînes (resp. les représentations sémantiques) associées à chacun des constituants de N. Ce rapport est précisé à l'aide d'opérations sur les valeurs associées aux constituants de N.

Dans le cas des chaînes l'opération utilisée est la concaténation. Notre description des opérations de concaténation des chaînes nous permet de spécifier ce

(13)

..

,

.'

qu'on appelle un ordre partiel. Par exemple, avec notre notation il est possible de fusionner en une seule règle les deux règles syntagmatiques suivantes:

s

-->

np vp s --> vp np

Cette capacité est particulièrement intéressante pour des langues à ordre libre telles que le latin. Pour leur part, les opérations sur la sémantique sont définies en termes d'opérations d'application et de composition de fonctions. Ces opérations nous permettent de traiter certains phénomènes linguistiques difficiles, comme le problème des verbes dits de montée.

Avant de décrire comment à partir de cette notation nous réalisons la réversibilité, nous devons approfondir notre examen du processus d'analyse/synthèse. Le problème de l'analyse se résume à peu près à ceci. On doit trouver une dérivation, (c'est-à-dire une suite d'applications de règles) qui permet de réécrire le symbole initial comme la suite de terminaux qui correspond à la phrase devant être analysée. Ce processus associe une certaine structure dérivationnelle à la phrase, à savoir un arbre de dérivation dans lequel chaque noeud père correspond au membre gauche6 d'une règle

R et les fils de ce noeud père correspondent aux éléments du membre droit de R. La construction de la structure complémentaire, la sémantique, n'est pas vraiment problématique et peut être reléguée il l'arrière-plan pour le moment. Il y a deux classes principales d'algorithmes d'analyse: les algorithmes ascendants et les algorithmes descendants. Ces tennes réfèrent à l'ordre dans lequel l'arbre sera construit. La première méthode consiste à partir des feuilles et à constmire l'arbre en remontant, alors que la deuxième méthode débute la construction avec la racine de l'arbre et l'étend vers le bas. L'ordre dans lequel les fils d'un même noeud seront construits est également important et correspond à l'ordre dans lequel les mots de la phrase seront examinés.

Il existe une symétrie entre l'analyse et la synthèse. La première vise à recouvrer la sémantique à partir d'une chaîne, alors que la seconde vise l'opération inverse.

~ous utilisons ici une grammaire dont les règles n'ont qu'un seul constituant à la gauche de la

(14)

Dans les deux cas une dérivation doit être effectuée â panir du symbole de départ et la notion d'algorithme ascendant/descendant s'applique aussi à la synthèse.

L'analyse d'une phrase avec notre implantation des GR est effectuée selon la méthode descendante à travers l'arbre de dérivation et en respectant l'ordre séquentiel des mots dans la chaine, c'est-à-dire de gauche à droite. En synthèse, on procède également de manière descendante mais on parcourt la représentation sémantique selon un ordre particulier qu'on appelle

tête première.

Ce qui nous permet d'atteindre la réversibilité avec cette approche c'est:

(1) une description détaillée des opérations sur la chaîne et la sémantique au niveau des règles, permettant d'aiguiller correctement le processus d'analyse/génération; (2) un format strict pour la représentation de la chaîne et de la sémantique permettant

de s'en servir comme structure de donnée.

En général la méthode descendante souffre d'un problème chronique, l'incapacité de traiter la récursion à gauche. Une grammaire est dite récursive à gauche si par une suite de dérivations, un non-terminal N est remplacé éventuellement par un autre non-terminal N identique, suivi d'une suite de constituants. Un analyseur ou un synthétiseur descendant risque dans pareil cas de tomber dans une boucle infinie. Nous limiterons nos efforts à la prévention de ce que nous appelons le problème de la récursion à gauche simple (RGS), cas se présentant lorsque la spécification déclarative d'une règle est récursive à gauche. Pour contrer ce problème nous proposons une détection automatique de la RGS et une transformation subséquente des règles

concem~es de façon à éviter les écueils de la récursion. Cette transfonnation est apparentée â la transformation effectuée pour éliminer la récursion à gauche dans les grammaires hors-contexte [Greibach 65].

Nous proposons une implantation de notre formalisme où l'analyseur et le synthétiseur sont obtenus par double compilation. Pour chaque grammaire deux programmes Prolog sont créés, l'un pour l'analyse et l'autre pour la synthèse. Nous avons préféré une approche compilée â une interprétation pour rendre le processus d'analyse/synthèse plus performant.

(15)

1.4. Limitations, survol et conventions

Avant d'aller plus loin quelques mises en garde à-propos des limitations de ce mémoire sont nécessaires. La construction d'un sytème de TALN robuste et à large couverture est une tâche difficile et complexe. Tout au long de ce mémoire nous nous concentrerons sur les questions de traitement syntaxique et sémantique de la langue écrite. En plus d'ignorer les problèmes relatifs au traitement de la langue orale, nous faisons abstraction de divers types de problèmes: morphologie7, pragmatiqueS, analyse du discours, etc.

Egalement, notre effort concerne davantage la Enguistique computationnelle que la linguistique théorique: nous ne cherchons pas la théorie des grammaires la plus simple et la plus restrictive, et nous ne tournons pas notre attention vers des phénomènes linguistiques spécifiques (comme par exemple le problème des dépendances croisées). Nous sommes plutôt intéressés à developper un fonnalisme capable de traiter un ensemble raisonnable de phénomènes linguistiques. Les GR n'incarnent pas une théorie linguistique très spécifique. Elles sont au contraire compatibles avec une large classe de théories et peuvent être utilisées par un linguiste pour modéliser une théorie de son choix. Ce mémoire se veut une contribution à l'étude de la logique computationnelle comme outil pour décrire et utiliser des grammaires.

Voici un aperçu du reste du mémoire. Le deuxième chapitre présente une revue de la littérature et traite certaines notions de base sur lesquelles s'appuie le fonnalisme des GR. Au troisième chapitre, on expose la notation, ses règles, des exemples de son utilisation, et une discussion de ses mérites et lacunes. La quatrième section couvre les aspects implantation du formalisme, autrement dit comment passer d'une simple notation â des procédures effectives d'analyse et de génération. Dans cette section on retrouve également des exemples d'analyse et de génération ainsi qu'une discussion sur l'implantation. Une conclusion suivie d'une liste de références, puis de plusieurs

7La morphologie est l'étude de la nature et de la formation des mots ainsi que des variations de

fonne qu'ils subissent dans la phrase.

(16)

(

annexes comprenant les programmes, se retrouvent à la fin de ce document.

En terminant, un mot sur les conventions notationnelles. Par souci de clarté, tout programme, grammaire, apparaissant dans le courant du texte sera signalé par une

typographie différente. Un astérisque précédant une phrase indique que la phrase est

considérée agrammaticale par les locuteurs natifs. Comme nous l'avons déjà vu les symboles

"1 ... )"

délimitent une suite de références. D'autres conventions notationnelles seront introduites au fur et à mesure que le besoin s'en fera sentir.

Enfin, les notions présentées dans ce mémoire présupposent une certaine familiarité avec le langage Prolog qui est utilisé intensivement à travers ce document.

Le livre de [Clocksin, Mellish 81] couvre toutes les notions dont le lecteur pourrait avoir besoin et offre une introduction facile à ce langage de programmation.

(17)

1

.'

2. Notions de base

Le but de ce chapitre est de traiter en détail certaines notions de base comme la réversibilité, de présenter l'évolution et l'état actuel des travaux de recherche pertinents sur les formalismes de grammaire logique, et finalement d'indiquer l'apport de cette thèse au domaine.

2.1. Caractéristiques fondamentales des grammaires logiques

Quatre traits caractéristiques différencient les grammaires logiques d'une simple grammaire de réécriture de type-O [Chomsky 59]. Notre définition s'inspire de celle de Veronica Dahl [DahI 85].

(1) Il est possible d'associer aux non-terminaux d'une grammaire logique des arguments permettant de construire des structures contenant de l'information syntaxique et d'imposer des contraintes sensibles au contexte. Un non-terminal est donc composé d'un foncteur suivi d'une liste d'arguments. La liste est de longueur fixe (possiblement égale à zéro) et chaque argument est un terme, c'est-à-dire soit:

- une constante,

- un foncteur suivi d'une liste d'arguments qui sont eux-mêmes des termes (un terme complexe),

- ou une variable.

(2) Il est possible d'utiliser des variables pour représenter des termes indéterminés. En conjonction avec la notion d'unification, les variables offrent un puissant mécanisme qui remplace les fonctions conventionnelles de sélecteurs et de constructeurs de structures de données. En théorie une variable peut représenter une hlfinité de tennes, mais le nombre des valeurs possibles dans un programme particulier est déterminé par l'ensemble des règles de grammaire.

(3) Il est possible d'inclure des appels à des procédures à la droite d'une règle. Bien entendu, nous supposons qu'il existe quelque part des définitions adéquates pour ces procédures.

(4) Finalement, en plus de l'interprétation déclarative habituelle, on peut associer à

(18)

(

à un mécanisme capable de prouver des théorèmes. Le mécanisme de preuve détennine indirectement rinterprétation procédurale d'une grammaire et pennet de faire de l'analyse et de la synthèse.

Il est important de nuancer ce dernier point et de souligner que jusqu'à tout dernièrement la majeure partie de la recherche dans le domaine des grammaires logiques s'intéressait surtout au problème de l'analyse. La mise au point d'une grammaire réelle fonctionnant dans les deux modes demeurait problématique. Cette observation est directement reliée à la pertinence du présent mémoire et nous approfondirons bientôt ce sujet.

2.2. Prolog et les grammaires logiques

Le langage de programmation Prolog [Colmerauer, Kanoui, Pasero, Roussel 73; Kowalski 74a; Kowalski 74b; Roussel 75] constitue l'incarnation la plus populaire de la programmation logique. Le concept de grammaires logiques repose sur la programmation logique, et sur Prolog en paniculier, la plupan des grammaires logiques étant éventuellement transformées en programmes Prolog pour être calculées. Cette section décrit l'apparence possible d'une grammaire une fois transformée en Prolog.

On peut décrire en Prolog les règles d'une grammaire à l'aide de faits et de règles d'inférence. Par exemple, en mettant de côté pour le moment les aspects sémantiques, les clauses suivantes:

np(X, Y) :- det(X), n(Y). det(un).

n(chien).

décrivent la structure du groupe nominal un chien. Les arguments des prédicats

représentent la chaîne associée aux prédicats.

Pour permettre aux prédicats de manipuler des portions de chaîne de longueur variable, il est plus pratique de décrire les chaines à l'aide de listes. La chaine un

chien mord un chat est notée par la liste [un, chien, mord, un, chat] et les prédicats

qui représentent les non-terminaux assument le rôle de consommateur d'une partie de la liste. On peut alors écrire l'exemple précédent comme suit:

np(W-L) :- det(W-Ll), n(Ll-L). det([unIL]-L).

(19)

n({ chien IL]-L).

où la notation {W IL] signifie que le premier élément de la liste est W et que le reste

des éléments est contenu dans la liste L. Pour vérifier la validité d'une chaîne on émet l'hypothèse qu'elle appartient à la langue décrite et on laisse le moteur d'inférence de Prolog prouver ou réfuter cette supposition. Etant donné le but

:- np(fun, chien, mord, un, chatl-L).

le prédicat np consomme un chien et laisse mord un chat dans la variable L.

L'argument L retourne ce qui reste à consommer, ce qui permet d'utiliser les règles de façon plus générale. En ajoutant de nouvelles définitions pour s, vp et det, nous

obtenons la grammaire suivante:

s(LO-L) :- np{LO-Ll), vp(Ll-L). np(LO-L) :- det{LO-Ll), n(Ll-L). det({unIL], L). n({chat/L], L). n({chien/L], L). vp(W-L) :- rv(W-Ll), np(Ll-L). tv({mord/L], L). (2-1)

La définition de s permet au prédicat np de consommer ce dont il a besoin et de passer le reste au prédicat vp.

En plus de l'argument représentant la chaîne, on peut ajouter des arguments additionnels pour associer aux prédicats un arbre syntaxique ou une expression logique qui représente le sens associé au groupe. En vue d'établir une correspondance entre la

phrase [un, chien, mord, un, chat] et l'expression logique mordre(chien, chat)9, on

poulTllit modifier notre petite grammaire 2-1 comme suit:

s(S, W-L) :- np(SO, LO-Ll), vp(SO, S, Ll-L). np(S, lJ)oL) :- det(W-Ll), n(S, Ll-L).

det({unll.], L).

n(chat, [chat IL], L).

n( chien, 1 chien IL], L).

vp(S'o, S, W-L) :- tv(SO, Sl, S, W-Ll), np(SI, LI-L).

9tJn &ràitement plus conventionnel associerait â cette phrase une expression logique contenant des variables permettant de spécifier de quel chIen et de quel chat il s'agit. Nous avons opté pour une ex-pression logique simplifiée pour ne pas compliquer outre mesure les exemples.

(20)

tv(SO, SI, mordre(SO, S1), (mord/Ll, L).

(2-2)

Dans cet exemple, à une phrase constituée d'un groupe nominal et d'un verbe, on associe une liste de mots W, la sémantique S et le reste L, et l'exécution du but

:- s(S, [un, chien, mord, un, chat/-Il).

unifie la variable logique S à la structure mordre(chien, chat).

Il serait possible de décrire directement des grammaires en Prolog, mais comme nous venons de le voir il existe plusieurs facons d'effectuer ces descriptions et cette prodigalité de formes est indésirable. De plus, bien que comparativement à d'autres langages de programmation Prolog jouisse d'une grande facilité d'utilisation due principalement à sa nature descriptive plutôt que procédurale, il n'en demeure pas moins un langage de programmation complexe. L'utilisateur doit se soucier de détails se rapportant aux fonctionnement de ce langage, détails qui n'ont à prime abord rien à voir avec la description linguistique. Ce constat est une des motivations du développement des formalismes de grammaire logique. Ces formalismes sont tous des variantes syntaxiques de Prolog, mais certains d'entre eux facilitent le travail du linguiste en lui offrant un ensemble de primitives adaptées à ses besoins particuliers.

2.3. Survol des formalismes classiques

Nous présentons maintenant différents formalismes de grammaire logique selon l'ordre chronologique de leur apparition dans la littérature, les illustrant à l'aide de quelques exemples simples. Pour la raison que nous avons énoncée à la section 2.1, à

savoir qu'historiquement la recherche sur les grammaires logiques s'intéressait sunout au problème de l'analyse, la présentation des formalismes sera biaisée vers ce mode.

Les premières grammaires logiques, les grammaires de métamorphose (MG), ont été développées par Alain Colmerauer [Colmerauer 75]. En gros une règle MG a le format suivant:

AB --> C

A est un non-terminal, B est une liste de terminaux et de non-terminaux, et C est une liste de terminaux, de non-terminaux et d'appels à des procédures. Bien qu'on puisse considérer les MG comme une variante syntaxique de Prolog, ce formalisme

(21)

offre deux avantages qui en font un outil descriptif de plus haut niveau:

• il libère l'utilisateur des préoccupations ayant trait aux manipulations de chaînes;

• il permet d'exprimer directement des règles avec plus d'un symbole dans leurs membres gauches.

Plutôt que de donner un exemple de MG, nous allons immédiatement parler d'un formalisme apparenté mais plus accessible, les DCa.

Les grammaires de clauses définies (DCG) [Pereira, Warren 80] constituent une simplification du paradigme plus général offert par les Ma. On retrouve la première mention des DCa dans le manuel de l'utilisateur de Prolog Dec-lO [Pereira, Pereira, Warren 78J. Les règles sont limitées à un seul symbole sur la gauche:

A --> C

A et C on la même signification que précédemment.

En notation DCa notte exemple 2-1 décrit plus haut aurait l'apparence suivante:

s --> np, vp. np --> der, n. der --> [un}. n

-->

[chat}. n

-->

[chien}. vp --> IV, np. tv --> [mord}. (2-3)

On remarque que contrairement à l'exemple Prolog, l'utilisateur n'est pas exposé aux détails de la représentation de la chaîne qui sont implicites dans le fomtalisme. La grammaire 2-4 illustre l'utilisation d'arguments avec la notation DCa, et est équivalente à l'exemple 2-2. s(S) --> np(SO), vp(SO, S). np(S)

-->

det, n(S). det --> [un}. n(chat) --> [chat). n( chien) --> [chien}.

vp(SO, S) --> tv(SO, SI, S), np(SI).

tv(SO, SI, mordre(SO, SJ)

-->

(mord).

(2-4)

(22)

peuvent à l'instar des MG décrire des langages de type 0, bien que le squelette des grammaires DCG soit hors-contexte. La motivation initiale du développement des DCG, était de faciliter l'implantation sans pour autant sacrifier la puissance. La traduction en Prolog de ces deux exemples par l'implantation standard des DCG produit exactement les programmes 2-1 et 2-2 rencontrées dans la section sur Prolog.

Les MG et le formalisme plus simple des DCO, constituent une souche commune

à partir de laquelle plusielJrs formalismes de grammaires ont été développés. Les grammaires d'extraposition (XO) [Pereira 81] sont un bon exemple d'un formalisme répondant à un besoin spécifique, en l'occurence celui de décrire clairement le phénomème d'extraposition de constituants vers la gauche. En gros ce phénomène se présente lorsqu'un constituant apparaît comme étant déplacé vers la gauche par rapport à sa position normale. Il est possible de décrire l'extraposition à l'aide des DCG. Cela nécessite cependant l'addition aux non-terminaux d'arguments supplémentaires établissant une correspondance par delà les structures locales, entre les constituants en relation de dépendance globale. On peut considérer les XG comme une extension syntaxique des DCG, qui permet de référer à une suite de constituants discontinus à

l'intérieur d'une règle, de manière à pouvoir décrire plus naturellement l'extraposition. Les règles de XG ont la fonne suivante:

A ... BI etc Blcol ... Bic

-->

C

où " ... " décrit une suite de constituants non identifiés, les Bi désignent des listes de terminaux et de non-tenninaux alors que A et C sont définis comme pour les MG. Si

Xi représente une suite arbitraire de constituants, alors cette règle réécrit la séquence

A XI BI X2 etc Bkol X k Bk

comme

Autrement dit A et les Bi se réécrivent C, et les Xi intermédiaires sont juxtaposés à la suite de C. L'addition des règles suivantes à notre petite grammaire 2-3 r.ous permet d'illustrer un exemple classique et fréquent d'extraposition à gauche, la relative.

np

-->

det, n, optJel.

(23)

rel yron ... np

-->

[qui].

La dernière règle signifie qu'on réécrit simultanément le pronom relatif et un groupe nominal â sa droite comme le terminal qui. Pour décrire le même phénomène que

cette simple règle en utilisant les DCa au moins deux règles beaucoup plus compliquées devraient être utilisées, et cela sans le bénéfice d'expliciter l'extraposition du constituant.

D'autres formalismes offrent également des extensions qui ont pour but de rendre plus faciles les tâches associées au traitement d'une grammaire. Parmi les plus proéminents de ces formalismes, mentionnons les modifier structure grammars [Dahl,

McCord 83] qui comportent des mécanismes relatifs au difficile problème de la coordination et qui automatisent la construction de l'arbre de dérivation et de la représentation logique. Harvey Abramson, pour sa pan, pousse plus loin cette idée de construire automatiquement une expression logique ainsi qu'un arbre de dérivation avec les de/mite clause translating grammars [Abramson 84]. Enfin une généralisation

du formalisme xa, les gapping grammars [Dahl, Abramson 84; Dahl 841, offrent une expressivité accrue dans la description des déplacements des séquences de constituants. D'un point de vue théorique tous ces formalismes ont une puissance similaire en ce qu'ils peuvent tous être utilisés pour décrire des langages de type O. D'un point de vue pratique par contre, leurs possibilités diffèrent considérablement en ce qui concerne l'aisance avec laquelle ils permettent de décrire différents phénomènes linguistiques.

2.4. Le problème de la réversibilité

Le problème de la réversibilité est avant tout un problème de calcul. D'un point de vue déclaratif, une grammaire n'impose pas à priori de restrictions sur la manière de calculer la relation qu'elle définit entre fonnules sémantique:; et chaînes de mots. Elle est neutre relativement au mode dans lequel elle sera utilisée. Bien sûr une notation peut favoriser une description suffisamment précise pour qu'on puisse envisager une implantation réversible, mais ce qui caractérise un formalisme réversible c'est son implantation. En analyse par exemple, à partir de la phrase un chien mord un chat nous devons être en mesure de calculer une structure sémantique du type

(24)

{

mordre(chien, chat). Inversement, à partir de cette structure nous devons pouvoir

synthétiser la phrase initiale ainsi que toutes les paraphrases auxquelles ]a grammaire assigne la même sémantique (par exemple le chien est mordu par le chat).

La condition de réversibilité [Landsbergen 87] stipule que pour être réversible une grammaire G doit nous permettre de calculer deux fonctions qui sont l'inverse l'une de l'autre: analyseG qui est une fonction allant d'une chaîne vers un ensemble de formules sémantiques et synthèseG qui est une fonction allant d'une formule sémantique vers Ut. ensemble de chaînes. Si la grammaire G spécifie une relation RG

entre fragments de chaîne T et formules sémantiques S alors ces fonctions doivent avoir les propriétés suivantes:

RG(T, S)

<->

S E analyseG(T)

<->

TE synthe'seG(S)

Pour faciliter l'atteinte de ce but on admet une hypothèse de base communément appelée hypothèse de compositionnalité. L'attribut sémantique (ou chaîne) d'un noeud

père doit être une fonction des attributs sémantiques (ou chaînes) des noeuds fils. Ce

qui veut dire que chaque règle doit nous permettre de calculer la valeur de l'attribut sémantique (chaîne) du père à partir de l'attribut sémantique (chaîne) des fils.

Les DCa illustrent bien les problèmes rencontrés lorsque nous essayons d'utiliser les formalismes traditionnels à la fois en mode analyse et en mode synthèse. Premièrement, on notera que les DCa ne traitent pas du tout les chaînes et les reprf!sentations sémantiques sur le même pied. Alors que chaque symbole grammatical d'une DCG est nécessairement porteur d'une chaîne (possiblement vide), la description

de la sémantique associée à une règle ne fait pas partie du formalisme. Il incombe à

l'utilisateur de fournir cette descripti0n (en introduisant sur les non-terminaux des arguments qui encodent des représentations sémantiques). Il bénéficie alors de toute la liberté voulue mais hérite des désavantages se rattachant à cette latitude (Iisques d'incohérences, exposition aux détails de l'implantation, etc).

Deuxièmement, le compilateur standard de DCa nous pennet rarement d'utiliser avec succès la même grammaire pour faire de l'analyse et de la génération. Ici les deux fonctions d'analyseur et de générateur sont cumulées par un seul programme qui correspond à la compilation de la grammaire en clauses Prolog. Cette compilation fait

(25)

,

".

ressortir un biais des DCa envers l'analyse. En effet l'ordre des fils dans une règle n'indique pas seulement de quelle manière doit être effectuée la concaténation des chaînes, mais il constitue aussi une spécification de l'ordre dans lequel les buts correspondants doivent être évalués. Et règle générale l'ordre optimal d'appel des buts en analyse, c'est-à-dire celui assurant le comportement le plu..'î performant, n'est pas nécessairement le plus adéquat pour la synthèse.

Prenons l'exemple de la règle suivante, accompagnée de sa tradU"!1on usuelle en Prolog:

s(S) --> np(SO), vp(SO, S).

s(S, W-L) :- np(SO, W-LI), vp(SO, S, LI-L).

En admettant l'existence de définitions appropriées pour np et vp (voir la grammaire 2-4 par exemple), cette définition de

s

ne cause aucun problème lors de l'analyse. Lors de l'appel à s, West instandé à la chaîne à analyser alors que S et L ne sont pas instanciés. np est donc appelé avec W connu. Il réussit et retourne les valeurs de SO

et LI. Donc en entrant dans vp, LI et SO sont déjà instanciés et lorsque ce prédicat tennine, L est connu et S est également connu et a intégré SO. s termine donc aussi

avec S et L instanciés.

D'un autre côté, lors de l'appel de s en synthèse, seul S est connu. np est donc invoqué sans aucune variable instanciée. Cette absence de contraintes sur la donnée d'entrée entraîne une énumération de tous les groupes nominaux jusqu'à l'obtention du bon syntagme (vérifié par vp et contraint par la sémantique de s et de vp ), ce qui peut très bien ne jamais terminer car il est probable que certaines règles effectuant l'expansion du groupe nominal prévoient une structure récursive de modificateurs (potentiellement infinie). Dans tous les cas il s'agit d'un comportement calculatoire coûteux.

Cet exemple est typique de ce qui se produit lorsqu'on tente d'utiliser les DCa pour faire de la synthèse. Le coeur du problème, et c'est la même chose avec la majorité des formalismes de grammaire logique, c'est qu'en synthèse on ne peut garantir que la sémantique d'un non-tenninal sera suffisamment connue avant de lancer le but correspondant. Cette situation est liée à un problème bien connu des programmeurs Prolog: l'influence du degré d'instanciation des arguments d'entrée sur

(26)

r

J

le comportement d'une procédure Prolog. Les processus d'analyse et de synthèse fonctionnent à partir de données d'entrée, respectivement la chaine de mots et la fonnule sémantique. Avant d'entamer l'un et l'autre de ces processus, leurs données d'entrée respectives doivent être connues. Par exemple lorsqu'un but nt(S, W-L) est lancé en analyse, au préalable la liste lJ) doit être connue. Et inversement en synthèse

la formule sémantique S doit être instanciée au moment d'appeler ce but. L'ordre d'appel des buts en analyse est déterminé de façon â traverser la chaîne de gauche â

droite et ainsi maintenir l'invariant qui vient d'être énoncé. Mais la structure hiérarchique de la fonnule sémantique est bien différente de la structure linéaire de J.a chaîne et l'ordre dans lequel elle devrait être traversée doit refléter cette particularité.

Il n'est donc pas surprenant que l'ordre optimal pour l'analyse ne soit pas optimal pour la synthèse.

2.5. Formalismes pour la synthèse et fMmalismes réversibles

Peu de recherches ont été effectuées sur les formalismes de grammaire logique réversible. Nous présentons ici les travaux pertinents aux GR. Des approches connexes sont suggérées dans [Appelt 87; Hasida, Isizaki 87; Wedekind 88; Dymetman, Isabelle, Perrault 90].

Dans [Shieber 88] l'auteur propose un interprète pennettant d'analyser et de générer à partir d'une même spécification linguistique. Shieber s'intéresse surtout à l'aspect implantation et, à toutes fins pratiques, le lecteur peut considérer que la notation utilisée pr:ur exprimer la spécification linguistique est une variante de la notation DCG. Un seul algorithme est employé et il est paramétrisé de façon à s'adapter au deux modes de fonctionnement. L'algorithme qui est essentiellement ascendant, est inspiré de l'analyse tabulaire [A ho, Ullman 72], et de la déduction de Earley [Pereira, Warren 83]. Panni les caractéristiques importantes de l'algorithme, mentionnons l'utilisation lors de la génération d'un filtre sémantique, qui vise à améliorer la performance du système. Lorsqu'un arbre de dérivation est construit, plusieurs hypothèses quant aux règles pouvant être utilisées pour construire cet arbre doivent être envisagées. Le rôle du filtre sémantique est de diminuer le nombre d'alternatives considérées. Mais de par sa nature, ce filtre limite l'applicabilité de cette

(27)

- - -

---méthode aux grammaires sémantiquement monotoniques. Une grammaire est dite sémantiquement monotonique si pour chaque phrase admise par la grammaire, la structure sémantique de chaque sous-constituant de la phrase subsume une partie de la structure sémantique de toute la phrase. L'auteur admet que, malgré l'utilisation du filtre sémantique, le processus de génération est ralenti par un trop haut degré de non détenninisme.

Dans le but d'imposer moins de restrictions sur le type de grammaires pouvant être traité, [van Noord 89] propose BUG, une approche différente qui permet notamment de traiter les grammaires qui ne sont pas sémantiquement monotoniques. L'approche de van Noord concerne uniquement le problème de la génération, mais l'auteur a bon espoir que ses résultats pourraient être utilisés pour l'analyse. Plusieurs notations peuvent être utilisées avec cet algorithme, mais elles doivent permettre de désigner la tête sémantique de chaque règle, c'est-à-dire le constituant du membre droit de la règle qui fournit le foncteur principal â la structure prédicative de la sémantique du constituant du membre gauche. Pour éviter les problèmes reliés aux grammaires récursives à gauche, un algorithme ascendant est retenu. Il s'agit d'un algorithme de type coin gauche [Aho, Ullman 72] mais utilisé pour faire de la génération à partir de la sémantique. L'ordre de sélection des non-terminaux au moment de la construction de l'arbre de dérivation est moins arbitraire que dans l'approche de [Shieber 88J car il

est déterminé par la structure de la donnée de base, c'est-à-dire la sémantique. Une table précompilée d'accessibilité sémantique est utilisée pour relier les non-terminaux partageant la mê;ne sémantique et guider le processus de façon à générer la tête sémantique en premier. La relation d'accessibilité sémantique est comparable à la relation linle hab~tuellement utilisée pour améliorer la performance des analyseurs de type coin gauche [Matsumoto, Tanaka, Hirakawa, Miyoshi, Yasukawa 83]. Pour que cette approche fonctionne les règles de grammaire doivent toutes avoir une tête sémantique, ce qui est moins restrictif que d'exiger la monotonicité sémantique.

Une variante de cette approche est également proposée dans [Shieber, van Noord, Moore, Pereira 89], où encore une fois la dérivation est guidée par la tête sémantique. Comme dans [van Noord 89] la solution mise de l'avant concerne uniquement le problème de la génération. L'algorithme présenté est applicable aux grammaires

(28)

exprimées avec une notation de type DCG et il fonctionne à certains moments de manière ascendante et à d'autres moments de façon descendante. Cet algorithme constitue une solution sur mesure au problème de la synthèse de chaînes à partir d'expressions logiq~es et est difficilement comparable à d'autres algorithmes plus connus.

Nous appelons grammaires bidirectionnelles (GBD) le fonnalisme proposé dans [Isabelle, Dymetman, Macklovitch 88] et plus en détails dans [Dymetman, Isabelle 88]. Les GBD constituent une extension aux DCG qui conserve la sémantique déclarative des DCGIO• Les règles de type DCG sont enrichies d'annotations de contrôle qui spécifient l'ordre dans lequel les buts doivent être évalués à l'intérieur de ces règles et fournissent à un compilateur les directives nécessaires à l'obtention de deux programmes, un synthétiseur et un générateur qui diffèrent essentiellement par l'ordre d'exécution des buts. Les programmes résultants partagent la même interprétation déclarative que la grammaire de départ et fonctionnent de manière descendante. Deux sortes d'annotations sont permises. Un premier type permet de spécifier un ordre d'exécution particulier pour la synthèse et le deuxième désigne les règles touchées par la ROS qui doit être éliminée de la version analyse par le compilateur.

Des améliorations à la notation des GBD sont proposées dans [Dymetman, Isabelle 90]. Ces améliorations pennettent notamment de spécifier un ordre des buts en analyse différent de l'ordre de la chaine ce qui n'était pas possible initialement.

Nous présentons maintenant deux exemples d'utilisation des GBD. La définition de s que nous avons utilisée jusqu'à présent peut être exprimée comme suit avec le formalisme amélioré:

s(S)

-->

l:np(SO), 2:vp(SO, S),

«

parse:order: 1<2; gen:order: 2< 1

».

Chaque règle contient une section déclarative où les constituants sont préfixés d'un identificateur unique ( 1 et 2 ), et une deuxième section délimitée par

"« ... »"

où l'on retrouve les annotations de contrôle. Les annotations signalées par le mot parse,

indiquent que les buts 1 et 2 doivent être lancés dans cet ordre en analyse. Les

l'La

présentation des GBD utilise des règles de type DCG. mais les auteurs mentionnent qu'li est possible d'utiliser les GBD avec une notation de type XG.

(29)

annotations signalées par le mot gen, nous infonnent qu'en synthèse le but 2 doit être évalué avant le but 1. Une fois compilée cette règle donne les deux clauses Prolog suivantes:

s(S, W-L) :- np(SO, LO-Ll), vp(SO, S, LI-L).

s(S, W-L) :- vp(SO, S, LI-L), np(SO, W-Ll)

La première doit servir à faire de l'analyse, alors que la deuxième dont les buts sont inversés servira à faire de la synthèse.

Les règles suivantes visent â décrire des phrases telles que l' hotel à Vancouver avec un toit chinois, où l'on incorpore un nombre indéterminé de modificateurs

prépositionnels à l'intérieur d'un groupe nominalll.

#(Ieft _,ecursion)

np(S) --> l:np(SO), 2:pp(SO, S), «parse:order: 1<2; gen: order: 2< 1 »

np(S)

-->

l:det, 2:n(S), «parse:order: 1<2; gen:order: 2< 1

».

De toute évidence cette définition de np est récursive à gauche. Les GBO nous pennettent de signaler ce fait au compilateur de façon à ce que la récursion soit éliminée tout en conservant la sémantique originale des règles. Les annotations

#(leftJecursion), ":::" et "::" sont utilisées pour délimiter la procédure à la source

du problème. Nous présenterons la transfonnation subie par ces règles au chapitre 4

étant donné que les GR effectuent le même genre de transformation.

2.6. Apport des GR au domaine

Les GR offrent une alternative aux grammaires logiques mentionnées précédemment. Contrairement aux approches présentées dans [Shieber 88; Shieber, van Noord, Moore, Pereira 89; van Noord 891, nous proposons une approche descendante au problème de la réversibilité dans le but de tirer pleinement avantage du mécanisme de résolution de Prolog (qui procède de manière descendante) et ainsi obtenir une implantation efficace et pouvant être utilisée pour des applications réelles. L'ennui avec les algorithmes ascendants (partiellement ou complètement) c'est que

IlNous supposons que pp est responsable de combiner sa propre ~mantique avec la ~mantique du

(30)

(

s'ils sont implantés en Prolog on doit simuler un comportement ascendant avec un interprète descendant. Ce qui ajoute un niveau de programmation supplémentaire entre l'ordinateur et les clauses représentant les règles de grammaire.

Les GR sont beaucoup plus proches des GBD, car notre formalisme est né du désir d'améliorer les GBD. Les GR se différencient toutefois des GBD sur deux plans principaux.

Premièrement, avec les GBD la réversibilité est atteinte grâce à une spécification de l'ordre d'évaluation des buts qui est fournie par le grammairien. Les GR dispensent complètement le grammairien de cette tâche de produire des annotations de contrôle.

Chaque règle contient une description de la composition de la chaîne et de la sémantique associées au p:re, à partir de la chaîne et de la sémantique des fils. Ces descriptions sont utilisées pour déterminer automatiquement l'ordre d'exécution des buts dans chacun des modes.

Deuxièmement avec les GBD il existe une dissymétrie entre l'analyse et la synthèse au point de vue du traitement de la RGS. En fait aucun traitement de la RGS n'est prévu en synthèse et il est possible qu'un synthétiseur tombe dans une boucle infinie. Enfin il est nécessaire de désigner explicitement quelles règles sont récursives. Par contre, avec les GR la RGS est automatiquement détectée et éliminée, et ce, aussi

bien en synthèse qu'en analyse. Ce mécanisme est caché de l'utilisateur qui n'a plus à

se soucier de ces problèmes.

Notre contribution peut donc être résumée ainsi: un formalisme de grammaire logique réversible implanté à l'aide d'un algorithme descendant qui effectue un réordonnement automatique des buts â partir de descriptions de la compositionnalité de la sémantique et de la chaîne. Sans résoudre tous les problèmes reliés à la réversibilité (récursivité â gauche indirecte, extraposition, etc), nous croyons que les GR offrent une solution élégante et pratique.

(31)

3. GR: la notation

Pour faire du T ALN on doit conmlltre les lois régissant la fonnation des constructions linguistiques, mais on doit aussi avoir la possibilité d'exploiter ces connaissances en vue d'effectuer des calculs. Au cours de ce chapitre nous discuterons du premier point alors que le deuxième aspect sera abordé un peu plus tard, au quatrième chapitre.

3.1. Les règles

Comme nous l'avons vu, une grammaire décrit l'ensemble des couples chaine-sémantique qui font partie d'une langue. Dans une langue comme l'anglais ou le français, les phrases sont beaucoup plus qu'une séquence arbitraire de mots. On ne peut juxtaposer n'importe quelle suite de mots en espérant obtenir une phrase raisonnable. De même on ne peut construire une formule sémantique aléatoirement et espérer qu'elle corresponde à une phrase valide. Dans les deux cas le résultat doit obéir à certaines contraintes12• Les GR pennettent de décrire les contraintes particulières à une langue. L'idée de base des GR est de fournir une notation possédant suffisamment de puissance descriptive pour permettre aux grammaires exprimées à l'aide de cette notation d'être utilisées à la fois en analyse et en synthèse.

Comme pour les autres types de grammaires rencontrées précédemment, une GR

est composée d'un ensemble de règles de réécriture. Sans entrer dans les détails nous présentons un exemple simple de règle, dans le but de donner une idée approximative du fonnat. s

<->

vp, np, { 2< 1 }, { 112 }.

Cette règle nous indique qu'un s peut être constitué d'un np et d'un vp. La chaîne du

s est égale à la juxtaposition des chaînes du np et du vp dans cet ordre ( { 2< 1 } ).

12Naturcllement si une phrase donnée ne figure pas panni les phrases acceplées par la gmmmrurc,

alors elle ne fait pas partie de la langue définie. La grammairc dIstingue donc égalemcnt les phrases valides des phrases invalides.

(32)

La sémantique associée au s correspond à une application fonctionnelle de la sémantique du vp à la sémantique du np ( { 1/2 } )13.

Une règle de GR est fonnée d'une tête et d'un corps séparés par une flèche bidirectionnelle et. le tout tenniné par un point14:

Nt <-> Corps.

Nt est un symbole non-tenninal et Corps une séquence de un ou plusieurs items

séparés par des virgules et dont l'ordre est libre. Un item est soit: • un symbole non-terminal;

• une suite de symboles terminaux;

• une description de la sémantique de Nt (une seule par règle);

• une description de la chaîne de Nt (une seule par règle);

• une suite d'appels à des procédures (une seule par règle).

Nous appelons Nt le père, et l'ensemble des non-tenninaux et terminaux faisant partie

du corps, les fils. Chaque règle offre une expansion possible d'un non-terminal ( Nt)

et doit contenir au moins un fils. La définition complète d'un non-tenninal est constituée de toutes les règles qui ont pour tête ce non-terminal.

Un non-terminal est soit un atome, soit un tenne complexe. Une suite de terminaux est exprimée comme une liste possiblement vide contenue à l'intérieur de crochets ( "( ... ]" ). Chaque terminal est composé d'un couple de tennes séparés par le symbole ,,_,,15. La partie gauche fournit la chaîne de caractères associée au terminal et la partie droite fournit la fonnule sémantique assodée au tenninal.

( chat-chat, mange-rXAmanger(X, Y)

J

13Notre présentation â saveur ascendante de l'interprétallon des règles de grammaire, c'est-à-dire la

définition du non-terminal â la gauche de la règle à partir des items â la droite plutôt que le contraire, a été choisie parce qu'elle était plus facile à exprimer, mais cela ne devrait pas être interprété comme une indication de la direction dans laquelle est effectuée l'analyse ou la synthèse à travers l'arbre de

dérivation.

14Une définition plus compacte de la syntaxe des GR est fournie cn annexe sous fonne de

gram-maire DCG.

ISCe symbole est utilisé â plusieurs endroits par notre notation, dans tous les cas il joue simple-ment le rôle de séparateur.

Figure

table de  symboles.

Références

Documents relatifs

Dans cette étude comparative, nous avons montré, sur la base d'un corpus des deux langues, que les &#34;particules&#34; birmanes, comme les marqueurs de discours en

Des activités de réinvestissement (faisant appel à d’autres opérations mentales en liaison avec les usages de la langue). - courte production d’écrits (ex : définition

Exercice V- Souligne les mots ou groupes de mots ayant une fonction essentielle par rapport aux verbes soulignés. Indique

Dans cet article, nous présentons G EN I, un réalisateur de surface basé sur une grammaire d’arbres adjoints pour le français qui réconcilie les deux approches en combinant

- permet de faire des phrases bien construites, mettre les mots dans le bon ordre, donc de bien parler et bien écrire!. La

Les enfants, les élèves   Ils jardinent dans

Tu dois trouver le verbe conjugué dans la phrase, puis me donner l’infinitif de ce verbe : « Le chat miaule devant

Dans le cadre des Grammaires Catégorielles, Steedman (1989), Barry et Pickering (1990) considèrent que deux unités linguistiques peuvent être coordonnées pour donner une