• Nenhum resultado encontrado

Construction de représentations α-équivalentes à celles de Curt

3.4 Questions

3.4.1 Construction de représentations α-équivalentes à celles de Curt

clarer de lieurs ou de quantificateurs. Le symbolequeutilisé parCurtne peut donc, du point de vue deNessie, qu’être envisagé comme étant une constante. En outre, si nous souhaitons que les termes construits parNessiesoientα-équivalents à ceux produits parCurt, cette constante doit, comme le suggèrent les représentations sémantiques précédentes, prendre trois arguments : un premier de typeecorrespondant à la variable, puis deux de typetcorrespondant à l’appli- cation de prédicats à ladite variable. Il reste à choisir le type renvoyé par la constantequeque nous envisageons d’ajouter au lexique deNessie. Pour trouver ce type, nous pouvons examiner quelles entrées du lexique deCurtutilisent cette constante et voir si ces entrées ne seraient pas semblables à des entrées auxquelles un type a déjà été affecté. On remarque alors que, dans le lexique deCurt, la constantequeest utilisée, par exemple, par l’entréewhich. En effet, nous trouvons dans le lexique deCurtla déclaration suivante :

semLex(det,M):- M = [type:wh,

sem:lam(P,lam(Q,que(X,app(P,X),app(Q,X))))].

Nous pouvons constater d’après cette entrée quewhichest un déterminant, ce que confirme le rapprochement de deux phrases comme « every man walks » et « which man walks ».

Donc, nous pouvons à la fois construire une représentation dewhichqui utilise la constante queet, en même temps, par analogie avec les autres déterminants, nous découvrirons ainsi quel type de retour donner àque.

De cette recherche, il ressort que, pour que la représentation du déterminantwhichsoit co- hérente avec celle des autres déterminants du point de vue des types, il est nécessaire que la constantequerenvoie des valeurs de typet. Nous pouvons donc ajouter au lexique deNessie la déclaration suivante :

const que : e -> t -> t -> t;

Il reste à voir comment construire, en utilisant cette constante, une représentation sémantique de which. Plus précisément, quels arguments faut-il lui passer ? DansCurt, le premier argu- ment est une variable X qui est ensuite appliquée dans les arguments2et3 à deux prédicats.

Comme nous l’avions expliqué précédemment, cette variable peut être vue comme une variable libre. Cependant, dans Nessie, il n’est pas possible d’utiliser de telles variables, carNessie ne peut manipuler que des termes clos. Pour résoudre ce problème, nous proposons d’ajouter au lexique deNessieune nouvelle constante,QUESTION, qui sera utilisée dans la construction que(...)en lieu et place des variables libres. Notons que cette idée paraît raisonnable, dans la mesure où constantes et variables libres ne sont, au bout du compte, que deux aspects d’une même notion, deux termes qui correspondent plus à des points de vue différents sur une même chose qu’à deux réalités différentes. Notons en outre que, compte tenu du type de questions reconnues par Curt, cette constante est légitime d’un point de vue sémantique. En effet, les questions considérées ici visent toutes à trouver quels individus vérifient certaines propriétés.

Les questions peuvent donc être comprises comme des équations dont les inconnues sont des in- dividus, inconnues représentées, précisément, par la constanteQUESTION. Nous ajoutons donc au lexique deNessiela déclaration suivante :

const QUESTION : e;

Et nous avons maintenant tout ce dont nous avons besoin pour ajouter à la famille des déter- minants le lemme correspondant au déterminant interrogatif :

lemma wh { family = det;

term = lam P, Q : pred. ( que(QUESTION,P(QUESTION),Q(QUESTION)) ) };

Nous pouvons également, maintenant, définir la représentation sémantique des pronoms inter- rogatifs. Nous ajoutons pour les définir la famille ouverte qnp à laquelle appartiennent les deux lemmesperson(correspondant au pronomwho) et thing(correspondant au pronomwhat).

Les définitions se présentent comme suit : family qnp {

type = pred;

pattern = lam Q : pred. (que(QUESTION,_(QUESTION),Q(QUESTION))) };

lemma person, thing : qnp;

Aux lemmes person et thing correspondent donc deux constantes homonymes de type pred qui traduisent le fait qu’être une chose ou une personne est une propriété des entités.

On comprend bien les représentations sémantiques construites, qui reproduisent d’ailleurs fi- dèlement celles utilisées parCurt. Elles traduisent le fait que l’entité cherchée doit vérifier le prédicat donné en argument et être une chose ou une personne, selon le prédicat utilisé.

Il nous reste à voir comment construire les arbres syntaxiques qui permettront àNessiede calculer la représentation sémantique des questions. Pour les règles reconnaissant des questions consistant en un groupe nominal interrogatif suivi d’un groupe verbal, la construction d’arbres ne présente pas de difficultés particulières et utilise les techniques déjà présentées pour les phrases simples. En revanche, les choses se passent différemment pour les questions où le groupe nomi- nal interrogatif est suivi d’une phrase inversée. On se trouve alors dans le cas des dépendances non bornées, bien connu des linguistes. En bref, une question de la forme « who does Mia love » peut être vue comme « Mia does love who ». Ceci signifie que la représentation sémantique du groupe nominal interrogatif doit être transportée jusqu’à l’intérieur du groupe verbal (qui utilise nécessairement un verbe transitif) dont elle devient l’objet. Ce problème linguistique est traité enPrologà l’aide d’une technique appelée « gap threading » et qui est décrite dans FIXME ?.

Ici, nous devons modifier la liste passée dans la pairegap:[]de sorte qu’elle transporte non seulement une représentation sémantique, mais aussi l’arbre syntaxique qui lui correspond. On aboutit ainsi à des règles de grammaire de la forme :

q([ast:unary(q,AstSINV),sem:Sem])-->

whnp([ast:A,num:_,sem:NP]),

sinv([ast:AstSINV,gap:[ast:A,np:NP],sem:S]), {combine(q:Sem,[sinv:S])}.

sinv([

ast:nary(

sinv,

’lam A, B, C. (B(A(C)))’, AstAV,

AstNP, AstVP), gap:G,

sem:S ])-->

av([ast:AstAV,inf:fin,num:Num,sem:Sem]),

np([ast:AstNP,coord:_,num:Num,gap:[],sem:NP]),

vp([ast:AstVP,coord:_,inf:inf,num:Num,gap:G,sem:VP]), {combine(sinv:S,[av:Sem,np:NP,vp:VP])}.

vp([

ast:binary(vp,AstTV,AstNP), coord:no,

inf:I,

num:Num,gap:G,sem:VP ])-->

tv([ast:AstTV,inf:I,num:Num,sem:TV]),

np([ast:AstNP,coord:_,num:_,gap:G,sem:NP]), {combine(vp:VP,[tv:TV,np:NP])}.

np([ast:A,coord:no,num:sg,gap:[ast:A,np:NP],sem:NP])--> [].

La première règle est celle reconnaissant une question consistant en un groupe nominal inter- rogatif suivi d’une phrase inversée. Si l’on ne s’intéresse qu’à la tête de cette règle, on pourrait penser que l’arbre construit pour la question ne fait intervenir que celui de la phrase inversée, celui du groupe nominal étant en quelque sorte « oublié ». En réalité, les choses ne se passent pas ainsi. En effet, la représentation sémantique du groupe nominal interrogatif, ainsi que son arbre syntaxique sont récupérés et passés à la règle reconnaissant les phrases inversées dans la liste associée àgap:. Puis, comme le montrent la deuxième et la troisième règle (celles défi- nissant sinv et vp), la liste d’attributs associée àgap:est passée telle quelle d’abord au groupe verbal, puis, si celui-ci commence effectivement par un verbe transitif, à la règle reconnaissant le groupe nominal qui doit normalement compléter les groupes verbaux commençant par un verbe transitif. Enfin, si rien n’apparaît après le verbe, la quatrième règle qui reconnaît la chaîne vide peut s’appliquer. Cette règle récupère l’arbre syntaxique et la représentation sémantique qu’elle reçoit dans la liste associée à gap:et les renvoie comme représentation sémantique et arbre syntaxique du groupe nominal suivant le verbe. Notons enfin que les règles 1 et 4 sont les seules à utiliser l’attributgap. Dans toutes les autres règles où il apparaît, il est associé à la liste vide et ne transporte donc aucune information. En outre, comme nous l’avons laissé entendre pré- cédemment, le gap threading était déjà implanté dans la version originale deCurt. Notre seul travail ici consiste à l’avoir modifié de sorte qu’il ne transporte pas seulement des représentations sémantiques, mais aussi les arbres syntaxiques correspondant.

Une fois ces extensions apportées au lexique deNessie et à la grammaire deCurt, nous pouvons tester la construction de représentations sémantiques parNessiepour les questions, et comparer les représentations obtenues à celles produites parCurtselon la procédure maintenant familière. Pour ce test, nous utilisons les 5questions présentes dans la suite de tests deCurt, auxquelles nous en ajoutons4nouvelles. Pour ce petit corpus, nous obtenons bien l’équivalence entre les représentations sémantiques produites par Curtet celles produites parNessie, tant avant qu’après la β-réduction. En outre, le fait que Nessie réduise bien les représentations sémantiques prouve que leur type est correct, ce qui est à notre avis un autre résultat intéressant.

Ce qu’il nous paraît important de retenir de cette première solution aux problèmes posés par les questions, c’est que, bien queNessieait été conçu pour manipuler des représentations sémantiques closes, il est toujours possible, à l’aide de constantes, de prendre en compte des formalismes utilisant des variables libres. Comme nous le verrons aux chapitres 5 et 6, cette possibilité sera abondamment exploitée pour construire des DRSs en utilisant leur encodage dans leλ-calcul proposé par Reinhard Muskens.