Prolog (Programming in Logic ) wurde in Frankreich zur Erzeugung natürlicher Sprache Übersetzer entwickelt. Es wurde in Schottland für das Schreiben von automatischen Beweiser für Mathematik und Logik perfektioniert. Es kam zu internationalen Aufmerksamkeit, wenn es für den japanischen " fünften Generation "-Projekt ausgewählt wurde . Prolog -Programme bestehen aus einer sorgfältig geordnete Liste von Regeln (geschrieben als Horn -Klauseln ) . Der Benutzer stellt eine Frage und die Antworten Programm - im Sinne der Regeln. Es ist bemerkenswert nützlich Paradigma . Die Standard- Horn Clauses
Horn-Klauseln wurden 1951 von dem amerikanischen Mathematiker Alfred Horn erfunden. Nach seinen Worten ist ein Horn -Klausel " eine Disjunktion von Literalen , die höchstens eine positive wörtliche haben . " Eine typische Horn -Klausel sieht wie folgt aus : (nicht A) oder (nicht B) oder C. Die positive Literal ist C , A und B sind " negativ". Wenn das Horn -Klausel hat genau eine positive wörtliche - als Prolog Horn Klauseln zu tun - es wird als ein definitives Horn -Klausel. Horn-Klauseln sind in der Regel in einer vereinfachten , aber äquivalente Format geschrieben . Die disjunktive Aussage (nicht A) oder (nicht B) oder C ist logisch äquivalent zu der Aussage (A und B) impliziert C. Dieser vereinfachte an : A, B - : C ( in dem das "-: " darstellt die Implikation Pfeil). Die einfachste Horn -Klausel ist ein einziges positives Literal ( in denen es kein Pfeil ) - das ist die gleiche für beide Horn Klauseln und Prolog
Die Prolog Horn Clauses
< . p> Prolog Regelung aussehen Horn -Klauseln , mit Ausnahme der Pfeil in die andere Richtung . Die Grammatik der Regel , dass ein Satz von einer Nominalphrase besteht und ein Verb Phrase S geschrieben : - NP, VP . Das Regelwerk könnte auch das Diktum , dass eine Nominalphrase eines Artikels und ein Substantiv , geschrieben NP besteht aus: - A, N. Wenn es eine andere Regel, die besagt , dass eine Nominalphrase ein Plural ist , könnte es geschrieben werden NP : - PN . Wenn alle Regeln in Kraft sind, kann der Benutzer einen " Satz" auf das Programm vorzulegen , und das Programm wird versuchen, den " Satz" den Regeln entsprechen. Prolog arbeitet rückwärts durch die Regeln - wenn die Frage passt den Abschluss (positive Literal ) einer Regel , die Vorgeschichte (negative Literale ) werden die neuen Fragen geworden . Wenn alle Fragen schließlich übereinstimmen mit Tatsachen , ist der " Satz" ein gültiger Satz . Dieses Matching-Prozess funktioniert für Mathematik, Logik und andere regelbasierte Systeme sowie es funktioniert für Grammatik.
The Cut Clause
Es gibt drei Arten von Horn -Klauseln, die in Prolog verwendet werden : die (kein Pfeil) Feststellung von Tatsachen , die Regel ( mit einem Pfeil , eine positive wörtlichen und mindestens eine negative wörtlichen ) und der Schnitt . Cut Klauseln enthalten die "!" Symbol . Wenn der Prolog-Interpreter den Schnitt Symbol (ausgesprochen " bang" ) sieht , löscht er die restlichen Regeln, die die gleichen positiven Literal als die Regel, die den Knall enthält haben . Dies kann mehrere Auswirkungen auf die Programme haben - es kann bestimmte negative Ergebnisse stellen , kann sie vermeiden oder umgehen reibungslos mit einem Defekt , oder es kann einfach beseitigen Teil des Suchraums und beschleunigt das Programm