Frage

Wie viele Programmierer studierte ich Prolog in der Universität, aber nur sehr wenig. Ich verstehe, dass Prolog und Datalog eng miteinander verwandt sind, aber Datalog ist einfacher? Auch ich glaube, dass ich gelesen, dass Datalog nicht auf Anordnung der Logik Klauseln abhängt, aber ich bin nicht sicher, warum diese Vorteile sind. CLIP ist angeblich ganz anders, aber es ist zu subtil für mich zu verstehen. Kann jemand bitte eine allgemeine Highlight der Sprachen in den anderen Sprachen zur Verfügung zu stellen?

War es hilfreich?

Lösung

datalog ist eine Teilmenge von Prolog. der Teilmenge, die datalog trägt zwei Dinge im Sinn:

  1. adoptieren eine API, die Regeln und Abfragen unterstützen
  2. stellen Sie sicher, alle Anfragen beenden

prolog ist Turing abgeschlossen. Datalog ist es nicht.

immer datalog aus dem Weg, lassen Sie uns sehen, wie Prologs mit Clips vergleicht.

prologs Expertise ist „Problemlösung“, während Clips ein „Expertensystem“ ist. wenn ich richtig verstehe, „Problemlösung“ umfasst Know-how-Code und Daten. „Expertensysteme“ verwenden meist Datenstrukturen Know-how zum Ausdruck bringen. finden Sie unter http://en.wikipedia.org/wiki/Expert_system#Comparison_to_problem-solving_systems

ein weiterer Weg, um es zu betrachten ist:

Expertensysteme arbeiten auf der Prämisse, dass die meisten (wenn nicht alle) Ergebnisse bekannt sind. Alle diese Ergebnisse werden in Daten zusammengestellt und werden dann in ein Expertensystem eingespeist. geben System dem Experten ein Szenario berechnet das Expertensystem, das Ergebnis aus den erhobenen Daten, auch bekannt als Wissensbasis. es ist immer eine „eine gerade Zahl plus eine gerade Zahl ist immer noch“ Art des Denkens.

Problemlösungssysteme haben eine unvollständige Ansicht des Problems. so dass man beginnt mit der Modellierung von Daten und Verhalten, das die Wissensbasis umfassen würde (dies gibt Gerechtigkeit auf den Begriff „Ecke Fall“) und endet mit „wenn wir zwei vor sechs addieren wir mit acht enden. ist acht teilbar durch zwei? dann ist es sogar "

Andere Tipps

Der Unterschied zwischen CLIPS und Prolog / Datalog ist, dass CLIPS ist eine „Produktionsregelsystems“, die von arbeitet Vorwärts-Chaining : Gegeben sei eine Menge von Fakten und Regeln, wird es versuchen, jede mögliche Ableitung zu machen neuer Tatsachen und speichert die im Speicher. Eine Abfrage wird dann beantwortet, indem geprüft wird, ob es etwas in der Tatsache, Speicher paßt. Also, in CLIPS, wenn Sie (pseudo-Syntax):

parent(X,Y) => child(Y,X)
parent(john,mary)

es wird sofort derive child(mary,john) und denken Sie daran, diese Tatsache. Dies kann sehr schnell sein, aber legt Einschränkungen für die möglichen ruleset und nimmt Speicher.

Prolog und Datalog arbeiten von Rückwärtsverkettung , was bedeutet, dass eine Abfrage (Prädikat-Aufruf), indem Sie versuchen beantwortet wird die Abfrage zu beweisen, das heißt Ausführen des Prolog / Datalog-Programm. Prolog ist eine Turing komplette Programmiersprache, so kann jeder Algorithmus darin implementiert werden.

Datalog ist eine nicht-Turing komplette Untergruppe von Prolog, das nicht, zum Beispiel Negation nicht gestattet. Sein Hauptvorteil ist, dass alle Datalog-Programm beendet (keine Endlosschleifen). Dies macht es nützlich für die so genannte „deduktive Datenbanken“, das heißt Datenbanken mit Regeln zusätzlich zu Fakten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top