J'essaie d'écrire un programme qui traduit une phrase de prologue en une phrase anglaise formelle. Voici mon code :
sentence --> [if],[the], first_phrase, second_phrase.
first_phrase --> predicate, det , assertion, det, noun.
second_phrase --> [then],[the], predicate, det , noun.
assertion --> noun, [and], [the], predicate.
det --> [are].
det --> [is].
noun --> [flat].
noun --> [webbed].
noun -->[waterfowl].
predicate --> [feet].
predicate --> [bill].
predicate -->[order].
sentence(S1,S3) :- first_phrase(S1,S2), second_phrase(S2,S3).
first_phrase(S1,S3) :- second_phrase(S1,S2), noun(S2,S3).
second_phrase(S1,S3) :- assertion(S1,S2), first_phrase(S2,S3).
det([is|X], X).
det([are|X], X).
le résultat de ce code est le suivant : X = [si, les, pieds, sont, plats, et, les, pieds, sont| ] il manque donc quelques mots, où il devrait afficher quelque chose comme ceci : Si les pieds sont palmés et que le bec est plat, alors l'ordre est celui du gibier d'eau.
Que dois-je ajouter ou corriger pour obtenir ce résultat ?