Datalog vs. CLIPS vs. Prolog
Wie viele Programmierer ich studierte Prolog in der Universität, aber nur sehr wenig. Ich verstehe, dass Prolog und Datalog sind eng verwandt, aber Datalog ist einfacher? Ich glaube auch, dass ich gelesen habe, dass Datalog hängt nicht davon ab, die Bestellung der Logik-Klauseln, aber ich bin nicht sicher, warum dies Vorteile. CLIPS ist angeblich auch ganz anders, aber es ist zu subtil für mich zu verstehen. Kann mir bitte jemand einen Allgemeinen highlights der Sprachen, über die anderen Sprachen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
datalog ist eine Teilmenge von prolog. die Teilmenge, die datalog trägt, hat zwei Dinge im Sinn:
prolog ist Turing-vollständig. datalog ist nicht.
immer datalog aus dem Weg, mal sehen wie prolog vergleicht mit clips.
prolog ist die Kompetenz "Problemlösen", während die clips ist ein "Expertensystem". wenn ich das richtig verstehe, "Problemlösen" geht es um know-how mithilfe von code und Daten. "Expertensysteme" verwenden meist Daten-Strukturen zu äußern know-how. sehen http://en.wikipedia.org/wiki/Expert_system#Comparison_to_problem-solving_systems
andere Möglichkeit es zu betrachten ist:
expert-Systeme arbeiten auf der Prämisse, dass die meisten (wenn nicht alle) Ergebnisse sind bekannt. alle diese Ergebnisse sind zusammengestellt in Daten und dann wird gefüttert in ein Experte system. geben Sie dem Expertensystem ein Szenario, das Experten-system berechnet das Ergebnis aus den gesammelten Daten, aka knowledge base. es ist immer eine "eine gerade Zahl plus eine gerade Zahl ist immer noch" Art des Denkens.
problem der Lösung des systems haben einen unvollständigen Blick auf das problem. so beginnt man mit der Modellierung von Daten und Verhalten, die sich aus der knowledge base (dies gibt die Rechtsprechung den Begriff "Ecke-Fall") und endet mit "wenn wir zwei-sechs, wir am Ende mit acht. acht dividiert durch zwei? dann ist es sogar"
Den Unterschied zwischen CLIPS und Prolog/Datalog ist, dass die CLIPS ist ein "production rule system", das arbeitet, indem vorwärtsverkettung: gegeben sei eine Menge von Fakten und Regeln, es wird versucht, jede mögliche Ableitung von neuen Tatsachen und speichern diese im Arbeitsspeicher. Eine Abfrage wird dann beantwortet, indem geprüft wird, ob es stimmt etwas in der Tat-Shop. So, in den CLIPS, falls du (pseudo-syntax):
wird es sofort abzuleiten
child(mary,john)
und denken Sie daran, die Tatsache. Dies kann sehr schnell, aber legt Einschränkungen auf die möglichen Regelsatz und nimmt Speicher.Prolog und Datalog betreiben von backward chaining, was bedeutet, dass eine Abfrage (Prädikat) Anruf beantwortet, indem Sie versuchen zu beweisen, dass die query, d.h. die Ausführung des Prolog/Datalog-Programm. Prolog ist eine Turing-vollständige Programmiersprache, so dass jeder Algorithmus implementiert werden kann, in es.
Datalog ist eine nicht-Turing-vollständige Teilmenge von Prolog, die nicht erlauben, z.B. die negation. Sein Hauptvorteil ist, dass jedes Datalog-Programm beendet ist (keine unendlichen Schleifen). Dies macht es nützlich für die so genannte "deduktive Datenbanken", D. H. Datenbanken mit Regeln, die zusätzlich zu den Fakten.