Ich versuche, ein regelbasiertes System für die Interpretation von Daten zu erstellen. Ich habe jedoch Probleme, über eine Möglichkeit zu entscheiden, die Logik zum Speichern und Interpretieren von Regeln zu konstruieren.PHP: Outlook-Stil Regel-Engine
Momentan gibt es eine Datenbankstruktur, die ziemlich komplex ist, aber alle Aspekte der Speicherung der Regeldaten behandeln wird. Die Idee ist, dass das System die Art nachahmen kann, wie MS Outlook einem Benutzer das Hinzufügen von Regeln ermöglicht.
Meine Probleme sind wie folgt:
- Welche Muster sollte ich diese Regeln innerhalb Objekte zu speichern verwenden?
- Sollte ich eval() oder richtige Objektorientierung verwenden, um die Regeln auszuführen?
Und Beispielregel könnte sein:
Hund muss Kragen in Bereich Park
hat, wobei jedes Element (Hund, haben muss, Kragen, in dem Bereich, Park) ist eine separate Logik, die interpretiert werden soll.
Jeder allgemeine Hinweis auf die oben genannten Fragen wird sehr geschätzt!
Prolog würde es wahrscheinlich zu weit von PHP nehmen, aber das ist eine gute Idee.Könnten Sie vielleicht eine Implementierung für First Order Logic vorschlagen? – tombazza
Was meinen Sie mit einer "Implementierung für FOL"? Der letzte Link in meinem Beitrag ist im Grunde eine Anleitung zur Implementierung Ihrer eigenen FOL Inferenz-Engine. Sie können auch das Cyc-Projekt ausprobieren: http://www.opencyc.org/ – rmeador
Ja, ich hatte gehofft, vielleicht hat jemand schon etwas gemacht, das diesen logischen Prozess implementiert. Zumindest kann ich überprüfen, wie sie die Code-Basis davon erstellt haben! – tombazza