cnam:utc503:declarative:prolog

Ceci est une ancienne révision du document !


Programation logique

Prolog (PROgrammer en LOGique, 1970, Robert A. Kowalski (Edinburgh) & Alain Colmerauer (Marseille)) est né du besoin de pouvoir traiter la langue naturelle par ordinateur et, en particulier, la grammaire.

Télécharger et installer SWI Prolog

Créer un nouveau fichier (tests.pl) qui va constituer votre base de faits.

Les faits : « Jean aime Marie » ou « Anne aime Jean » sont traduits en Prolog par :

aime(jean, marie). % car Jean aime Marie
aime (paul , marie). % Paul est amoureux de Marie
aime (marie , paul). % et Marie aime Paul
Avec

  1. le nom de la relation ou prédicat (débutant par une minuscule),
  2. le/les arguments (ici « jean » et « marie ») séparés par une virgule, dans un ordre qui possède un sens (qui est le sujet et le complément de l’action décrite),
  3. le fait se termine par un point « . ».

Les espaces ne jouent pas de rôle et le % indique le début du commentaire. (Le commentaire peut aussi être placé entre /* … */). Le nom de la relation (ici « aime ») dépend du programmeur / analyste.

Les questions permettent d'interroger la base de fait. Elles se posent dans la fenêtre d'exécution de Prolog.

Charger votre base de connaissances avec le nom du fichier entre crochets :

[tests].

En Prolog, les questions débutent par le point d’interrogation suivi du nom de la relation et du/des argument(s) (objet). On parle également de but pour désigner une question. Par exemple, on peut se poser la question de savoir si « Est-ce que Jean aime Marie ? ». Cette question se traduit par :

?- aime(jean, marie).
Pour y répondre, l’interprète Prolog va essayer d’unifier la question posée avec un des faits de sa base de connaissance. S’il réussit, il répond « Yes » et « No » dans le cas contraire.

Une variable commence par une Majuscule.

Les variables permettent d'introduire des inconnues, et sont utilisables dans les questions :

?- aime(jean, X).
X = marie
Yes

  • cnam/utc503/declarative/prolog.1701011896.txt.gz
  • Dernière modification : il y a 17 mois
  • de jcheron