Prolog ( Programmation en Logique ) a été développé en France pour la création de traducteurs en langage naturel . Il a été perfectionné en Ecosse pour écrire démonstrateurs de théorèmes des mathématiques et logiques. Il est venu à l'attention internationale quand il a été choisi pour le projet japonais " cinquième génération " . Programmes Prolog se composent d'une liste soigneusement ordonnée de règles (écrites les clauses Horn) . L'utilisateur pose une question et les programmes réponses - en termes de règles. C'est un paradigme remarquablement utile . La Corne de clauses
clauses de Horn standard ont été inventés en 1951 par le mathématicien américain Alfred Horn. Dans ses mots, une clause corne est " une disjonction de littéraux qui ont au plus un littéral positif. " Une clause de klaxon typique ressemble à ceci: (non A) ou (non B) ou C. Le littéral positif est C , A et B sont «négatif». Si la clause de corne a exactement un littéral positif - comme clauses de Horn Prolog font - on l'appelle une clause de corne définitive. Clauses Horn ne sont généralement écrites sous une forme simplifiée mais équivalente . L'énoncé disjonctif (non A) ou (non B) ou C est logiquement équivalente à l'instruction (A et B) implique C. Ceci est simplifiée comme suit: A, B - : C (dans lequel le "-: " représente la flèche d' implication) . La clause de corne simple est un littéral positif (dans lequel il n'ya pas de flèche) - ce qui est la même pour les deux clauses de Horn et Prolog
Les clauses de Horn Prolog
< . p> règles Prolog ressemblent clauses de Horn , sauf la flèche pointe dans l'autre sens . La règle de grammaire que la peine est composé d' un syntagme nominal et un syntagme verbal est rédigé S: - NP, VP . L'ensemble de règles peut également contenir le dicton selon lequel un syntagme nominal est composé d'un article et d'un substantif , écrit NP : - A, N. S'il ya une autre règle selon laquelle un syntagme nominal est un nom pluriel , il pourrait être écrit NP : - PN . Lorsque toutes les règles sont en place , l'utilisateur peut soumettre une «peine» au programme et le programme va essayer de correspondre à la «peine» pour les règles. Prolog fonctionne en arrière dans les règles - si la question correspond à la conclusion ( littéral positif) d'une règle , les antécédents ( littéraux négatifs ) deviennent les nouvelles questions. Si toutes les questions éventuellement correspondre avec les faits , la «peine» est une phrase valide. Cette correspondance fonctionne le processus pour les mathématiques , la logique et les autres systèmes à base de règles , ainsi que cela fonctionne pour la grammaire .
La clause Cut
Il existe trois types de clauses de Horn qui sont utilisés dans Prolog : la déclaration ( pas de flèche ) de fait, la règle ( avec une flèche, un littéral positif et au moins un littéral négatif) et la coupe. Clauses Cut contiennent le "!" symbole. Lorsque l'interprète Prolog voit le symbole de coupe (prononcé "bang" ) , il supprime les règles restantes qui ont le même littéral positif que la règle qui contient le coup . Cela peut avoir plusieurs effets sur les programmes - il peut représenter certains résultats négatifs , il permet d'éviter ou de traiter en douceur avec des échecs , ou il peut simplement éliminer une partie de l'espace de recherche et d'accélérer le programme
< br . >