Horn-Klausel-Regel-Engine

Vorwärtsverkettung von Fakten im Prolog-Stil und Horn-Regeln; Ziele abfragen und Ableitungsspuren untersuchen.

About this tool

Fakten und positive Horn-Regeln eingeben, dann ein Ziel beweisen oder alle Folgen ableiten. Ein Fakt oder eine Regel pro Zeile; der abschließende Punkt ist optional. Leerzeilen und Zeilen mit # am Anfang werden ignoriert.

Beispiel: parent(bob,ann). Variablen beginnen mit Großbuchstaben oder Unterstrich: ancestor(X,Z) :- parent(X,Y), ancestor(Y,Z). Jedes _ steht unabhängig für einen beliebigen Wert. Namen unterscheiden Groß- und Kleinschreibung; Konstanten und Prädikate beginnen mit Kleinbuchstaben. Keine Funktionen, zitierten oder numerischen Konstanten, Arithmetik oder Negation. Fakten enthalten keine Variablen; jede Kopfvariable muss im Rumpf vorkommen.

Auch Ziele mit Variablen funktionieren: ancestor(dora,X) zeigt passende Fakten. Nicht bewiesen heißt, dass keine Antwort aus dieser Wissensbasis folgt, nicht dass das Ziel in der Realität falsch ist. Die Spur zeigt die erste Ableitung jeder neuen Tatsache mit konkreten Voraussetzungen und Ableitungsrunde. Bereits bekannte Fakten erhalten keine weitere Spurzeile. Bekannte Fakten aufklappen, um die vollständige aktuelle Menge zu sehen.

Kleine Datalog-Demo, vollständig im Browser: maximal 12.000 Zeichen je Feld, 300 Faktenzeilen, 100 Regeln, 8 Argumente je Atom und 12 Voraussetzungen je Regel. Abbruch nach 200 Runden, 1.000 bekannten Fakten oder 50.000 Kandidatenvergleichen. Teilergebnisse enthalten gültige Ableitungen; fehlende Antworten bleiben offen.

Bindung von Datalog-Regelvariablen