Tutoriel Prolog: On enregistre un ensemble de faits
Une fois installé SWI-Prolog ou GNU Prolog, au choix, on entre dans le système en cliquant sue l'icône sur le bureau, ce qui a pour effet d'ouvrir une console interactive. On peut alors entrer des faits, des règles et des interrogations. On quittera le système en tapant:
?- halt.
Notez bien que toute commande ou ligne de code se termine par un point en Prolog.
La première chose à faire dans un programme est d'énoncer des faits.
Tout comme l'esprit humain pense en utilisant des références, des mots représentants de choses, prolog se sert de références, avant de leurs ajouter des relations. On appelle ces références, et leurs relations des "faits".
Exemple de faits:
alyssa.
fille(alyssa).
fille(kiera).
Pas d'initiales majuscules aux prénoms ici, car cela est réservé aux variables, ce que l'on verra plus loin. Mais on peut écrire:
fille('Alyssa').
fille('Kiera').
Ajouter un fait dans l'espace du programme, une référence ou une relation, comme on vient de le faire, affirme leur existence. On peut alors interroger la base de fait pour savoir si quelque chose est vrai.
Mais avant, pour ne pas avoir à entrer les même données à chaque session, on placera ces faits dans un fichier source, d'extension ".pl", comme par exemple "faits.pl".
La commande suivante dans la console prolog:
consult(faits.pl)
a pour effet de charger le contenu de ce fichier dans la mémoire et de le compiler.
On peut alors interroger le système en tapant des requêtes. Par exemple:
?- fille('Kiera').
Le système répond "yes" car ce fait est bien enregistré.
Si l'on tape:
?- fille('Tom').
il répondra: "no".
Une variable prolog commence par une majuscule ou peut être constituée d'une simple lettre majuscule comme "X". Si on interroge le système avec une variable plutôt qu'une référence, il fera une "unification" de la variable avec tous les faits qui sont vérifiés pour la relation donnée. Par exemple:
?- fille(X).
La console affichera:
X = 'Alyssa' ?
et attendra que vous appuyez sur la barre d'espacement pour avoir la ligne suivante. Elle affichera ensuite:
X = 'Kiera'
Les faits peuvent être utilisés dans des règles pour former des connaissances grâce auxquelles on pourra résoudre des problèmes plus complexes.