Utilisation du Programme
L’exécution d’un programme ne se fait que lors d’une interrogation.
Il faut donc poser une question (ou requête, ou but) à Prolog.
Une telle question prend la même forme qu’un fait, seul le contexte d’interprétation change. ?- est le prompt de l’interpréteur Prolog
Exemple
?- apprenti(luc,colmerauer).
Exemple
?- etudiant(luc,colmerauer).
Requête et variable
Lorsqu’une requête contient une variable, Prolog cherche de la variable pour les quelles la questions se déduit du programme.
Exemple
?- apprenti(luc,X).
Exemple
?- etudiant(X,colmerauer).
Requête avec plusieurs variables
Exemple
?- etudiant(X,Y).
Requête composée
le prédicat promo(P,A) : indique que la promotion P est en année A
On enrichit le programme avec les faits suivants : promo(colmerauer,1). promo(humpich,2).
Exemple
?- etudiant(Nom,Promo),promo(Promo,An).
Principe d’effacement d’un But : la SLD Résolution
Pour répondre à une requête , Prolog procède par en cherchant parmi les prédicats du programme ceux qui aux prédicats de la requête dans l’ordre des prédicats de la requête (de gauche à droite)
dans l’ordre d’entrée des prédicats dans le programme (de haut en bas)
Ces deux ordres sont importants et influent sur le résultat d’une requête.
Remarque
Tous les faits portant sur un même prédicat doivent être saisis dans la base, les uns après les autres (en un seul bloc !). L’ensemble des faits portant sur un même prédicat forme la du prédicat.
Exemple
etudiant(jean,colmerauer). ?-apprenti(X,Y).
etudiant(tom,colmerauer).
etudiant(julie,humpich).
apprenti(luc,colmerauer).
apprenti(marie,humpich).
promo(colmerauer,1).
promo(humpich,2).
Un autre exemple : but composé
Pour des raisons de présentation, on renome les prédicats etudiant et apprenti respectivement en etud et app.
R1 etud(jean,colmerauer). ?-app(X,Y),promo(Y,Z).
R2 etud(tom,colmerauer).
R3 etud(julie,humpich).
R4 app(luc,colmerauer).
R5 app(marie,humpich).
R6 promo(colmerauer,1).
R7 promo(humpich,2).