ancien TP4

Transcription

ancien TP4
Master d’Informatique
prolog
Programme 4 : Encore les analyseurs.
On se donne la grammaire suivante décrivant des formes simples d’interrogatives en français :
<interrogative> ::=
<interrogative> ::=
< interrogative totale>
< interrogative partielle>
< interrogative totale> :: est-ce-que <proposition>
< interrogative partielle> ::= <groupe interrogatif> <proposition incomplète>
< proposition > ::= <sujet> <verbe> <complément>
< proposition > ::= <quantificateur> <verbe> <complément>
<groupe interrogatif> ::= qui
<groupe interrogatif> ::= <adjectif> <nom>
<proposition incomplète> ::= <verbe> <complément>
<proposition incomplète> ::= <verbe> <sujet>
<sujet> ::= Léa | Eve | Marie | Henry | Louis | Jean
<verbe> ::= habite | habitent | parle | parlent | lit | lisent
<complément> ::= Balzac | Hergé | Asimov | Aix | Nice | Cannes | Anglais | Chinois | Espagnol
<nom> ::= auteur | auteurs | ville | villes | langue | langues
<adjectif> ::= quel | quels | quelle | quelles
<quantificateur> ::= tous | quelqu'un
Cette grammaire autorise par exemple les interrogations suivantes :
Qui parle Anglais ?
Quels auteurs lit Marie ?
Est-ce-que Henry lit Hergé ?
Est-ce-que tous lisent Hergé ?
a) Ecrire l’analyseur Prolog correspondant à cette grammaire.
b) Compléter cet analyseur, par ajout d’arguments (traits de genre et de nombre),
pour réaliser les accords en genre et en nombre et interdire, par exemple, des énoncés
tels que :
Est-ce-que Marie parlent Anglais ?
Quel ville habitent Henry ?
c) Compléter cet analyseur, par ajout d’un autre trait (trait de type), permettant de classer
les objets (auteur, ville, langue) et ainsi interdire des énoncés tels que :
Est-ce-que Marie parle Cannes ?
Quelle ville lit Henry ?
d) Compléter cet analyseur, par ajout d’un autre argument, permettant d’avoir une
représentation sémantique (sous la forme d’un terme Prolog) des différentes
interrogations :
Est-ce-que Marie parle Anglais ? représentée par
estceque( parle(marie,anglais))
Quelle ville habite Henry ?
représentée par
quel(x,habite(henry,x))
Qui parle Anglais ?
représentée par
quel(x,parle(x,anglais))
Quels auteurs lit Marie ?
représentée par
quel(x,lit(marie,x))
Est-ce-que Henry lit Hergé ?
représentée par
estceque( lit(henry,hergé))
Est-ce-que tous lisent Hergé ?
représentée par
estceque( tout(x,lit(x,hergé)))
Est-ce-que quelqu’un lit Hergé ? représentée par
estceque(un(x,lit(x,hergé)))