Bases Fondamentales du langage Prolog
Prolog est un langage déclaratif basé sur la logique des prédicats ou syntaxe
prédicative. Il est utilisé pour exprimer des idées de manières naturelles et se concentre la
description des relations entre objets et leurs propriétés plutôt que sur les instructions
procédurales. Les concepts clés qui ont été souligné dans le cadre de ce court métrage sont
notamment les faits, les règles et les requêtes.
1- Les Faits
Les faits représentent ce qui est connu sous forme d’axiomes décrivant des objets et
leurs relations. Comme exemple de faits nous avons :
Johnny est gros
Le chien est marron
Susie aime Bobby
En logique prédicative, les prédicats dans cet exemple sont gros, marron et aime. En
prolog, ces faits se traduisent notamment par :
gros (Johnny).
marron (chien).
aime (Susie, Bobby).
Chaque fait se termine par un point ‘.’ Et le nombre d’arguments qu’un prédicat
accepte est appelé arité (arity). Ainsi, gros a une arité de 1, marron a une arité de 1 tandis
que aime a une arité de 2.
2- Les règles
Les règles étendent les faits, permettant déduire des faits à partir d’autres. Comme
exemple de règles nous avons :
Ryan aine Brittany
Brittany aime Ryan
Il se définit ainsi une règle (dating) pour dire qu’ils sortent ensemble. Exprimer
comme suit dans en Prolog : « dating (X, Y) :- aime(X, Y), aime (Y, X) ». Ce qui signifie que
X et Y sortent ensemble si X aime Y et Y aime X.
En Prolog, on y retrouve les opérateurs logiques tels que :
Et (AND) exprimé par ‘,’
Ou (OR) exprimé par ‘;’
Non (NOT) exprimé par ‘not’
Si (IF) exprimé par ‘ :-’
3- Les Requêtes
Les requêtes interrogent la base de faits et de règles. Ainsi à partir de l’éditeur de texte
Sublime Text différentes requêtes seront saisies en code Prolog pour être interroger plus tard
dans le compilateur SWI Prolog. Dans l’éditeur de texte, le code suivant a été utilisé:
- aime (dan, sally),
- aime (sally, dan),
- aime (josh, brittany).
- dating (X, Y) :- aime (X, Y), aime (Y, X).
- friendship (X, Y) :- aime(X, Y) ; aime (Y, X).
Après avoir enregistré ce code dans un emplacement précis, le chemin d’accès de celui-ci
sera copié dans le compilateur pour pouvoir émettre des requêtes. Comme exemples de
requête nous avons :
- ?- aime (dan, sally). qui signifie « Dan aime-t-il Sally »
- True. (Qui est la réponse du compilateur basé sur le code saisi dans l’éditeur)
Ainsi, cette première partie nous a permis de poser des bases fondamentales du langage
Prolog en nous présentant les concepts clés (faits, règles et requêtes) qui gravitent autour de
ce langage. Par la suite, nous approfondirons ces notions en explorant des concepts plus
avancées de ce langage.
Concepts plus avancés du langage Prolog
Cette deuxième partie mets l’accent sur de nouveaux concepts tels que les variables,
les questions approfondies, les structures et une vue approfondie des règles.
1- Les Variables
Les variables en prolog sont des placeholders (espaces réservés) qui ne stockent pas de
mémoire, mais servent à manipuler ou interroger des faits dynamiques. Par exemple,
considérons la base de faits suivants :
- météo (phœnix, été, chaud).
- météo (los Angeles, été, doux).
- météo (phœnix, hiver, doux).
Pour interroger les villes où il fait chaud en été on utilisera la requête suivante : « ?-
météo (Ville, été, chaud). » qui donnera le résultat Ville = phoenix. Ainsi, Ville est considérée
comme notre variable.
Ou encore pour ignorer un paramètre, on utilisera la variable anonyme ‘_’ à l’exemple de
la requête suivante : « ?- météo (Ville, _, doux). » qui donnera les résultats Ville = los Angeles
et Ville = phœnix.
2- Les questions composées
Les questions composées utilisent des opérateurs logiques pour combiner des conditions.
Par exemple, pour trouver une ville où il fait chaud en été et doux en hiver en nous basant sur
la base de faits énoncée précédemment, on utilisera la requête : « ?- météo (Ville, été, chaud),
météo (Ville, hiver, doux). » qui se présente ainsi comme une question composée qui donne le
résultat Ville = phœnix.
3- Les Règles approfondies
Une règle en prolog établit une relation entre des objets ou des variables selon une
condition logique. Elle se compose d’une Tête (relation principale) et d’un Corps (condition
logique) et suit la syntaxe suivante :
« Relation (Obj1, Obj2) :- condition (Obj1), condition (Obj2). »
En nous référant toujours à la base de faits précédente, si l’on veut déterminer si une
ville est plus chaude que l’autre on définira la règle suivante :
Plus_chaud (C1, C2) :- météo (C1, été, chaud), météo (C2, été, doux).
4- Les Structures
Les structures simplifient l’organisation des données en regroupant des informations
associées. Prenons exemple sur le fait qui suit :
Cours (cse110, lundi, mercredi, 11,12, 11, 12, Holton, Bryce, core105, core321). Il s’agit ici
d’un fait sans structure. Il peut être ainsi structuré de la manière suivante :
- Cours (
- cse110,
- Jour (lundi, mercredi),
- Temps (11, 12),
- Professeur (Holton, Bryce),
- core105).
- Cours (
- cse110,
- Jour (lundi, mercredi),
- Temps (11, 12),
- Professeur (Holton, Bryce),
- core321).
Cette seconde partie de l’introduction au langage Prolog a permis de franchir une étape
essentielle dans la maitrise du langage. Nous avons découvert l’importance des variables, des
questions composées, des règles approfondies et des structures dans la résolution des
problèmes de manière logique et structurée dans Prolog.