Faysal
MASTER 1 TNSID
ISTV Université de Valenciennes et du Hainaut-Cambrésis
E. ADAM
Introduction
• 1971 : création de Prolog par A. Colmerauer et P. Roussel à Luminy, suite à des travaux sur la détection automatique • 1972, PROLOG I • 1975, fin premier manuel PROLOG I • 1977, premier compilateur PROLOG (Warren) • 1978, multiplication des compilateurs PROLOG • 1983, • machine abstraite (WAM) PROLOG (Warren) =>
– Quintus-Prolog, SB-Prolog, SWI-Prolog, GNU-Prolog, …
• PROLOG II -> Version commerciale • 1989, PROLOG III -> solveur permettant de résoudre des contraintes linéaires • 1996, PROLOG IV -> solveur, basé sur l'arithmétique des intervalles • travaux sur compilation, implantations parallèle, algorithmes d’unification par contrainte, …
E. ADAM – ISTV - UVHC
Terminologie de PROLOG
• Base de faits : ensemble de faits relatifs au problème traité, sous forme de clauses de Horn positives
– Rex est un epagneul : epagneul(rex)
• Base de règles : ensemble de faits relatifs au problème traité, sous forme de clauses de Horn stricte
– Un epagneul est un chien : epagneul(x) → chien(x)
• Question : demandée par l’utilisateur, sous forme de clause de Horn négative • Moteur d’inférences : moteur non-monotone, à chaînage arrière, à régime par tentatives. Opère sur faits et règles. Tente de prouver l'inconsistance des faits et de la négation de la question
E. ADAM – ISTV - UVHC
La syntaxe
• constantes :
– chaînes de caractères commençant par une minuscule – nombres : entiers ou flottants
• VARIABLES :
– chaînes de caractères commençant par une majuscule
• prédicats :
– chaînes de caractères commençant par une minuscule – Peut posséder des arguments de type constante, variable ou prédicat :
• pere(jerome, assia) ; pere(X, assia) ; non(pere(arnaud, assia))
E. ADAM – ISTV - UVHC
La syntaxe
• Listes :
– Suite d’objets séparés par des . et terminant par nil
• a.b.c.nil ≡ [a,b,c]
– Possibilités de