При поиске движка правил на основе RETE в Python вы могли бы использовать либо Pyke , либо PyCLIPS .
PS: Я оставил комментарий к ответу С.Лотта о Пайке. Я опубликовал отдельный ответ в соответствии с его предложением, а также чтобы другие читатели легко знали, что механизм правил, упомянутый в этом ответе, может быть вероятным выбором, если они его ищут.
Вы можете посмотреть CLIPS , как уже предлагалось, или, если вы хотите заплатить деньги или вам они нужны, Rete2 . В прошлом я использовал CLIPS в Unix и успешно встраивал их в другие приложения.
Надеюсь, это поможет.
ruleby - это механизм правил, написанный на ruby. Это было предметом презентации на rubyhoedown 2008: ruleby-the-rule-engine-for-ruby
In effect, Python is a rules engine.
"The engine will be used as way to automate a house, like turning the light off when somebody leaves a room etc."
You need sensors and controllers. You write your "rules" as ordinary Python objects.
Your main "program" collects events from your sensors and sends events to your controllers.
If you can read from your sensors via ordinary USB, that's even better. The marine industry uses a couple of closely related standards like NMEA 0183 and NMEA 2000 for specifying the traffic on the bus from sensor to controller.
You don't need Yet Another Rules Language. You have Python.
Пычинко существует уже давно. Я никогда не использовал его в производстве, но некоторое время назад исследовал его на предмет возможного производственного применения. Похоже, у него довольно хорошие функции и приличное сообщество пользователей.
Rulecore действительно частично написан на Python. Но это неважно. Вы, как пользователь, в любом случае не увидите ни одной из этих деталей реализации.
Правила являются чисто декларативными и определяются с использованием XML. XML отправляется на сервер ruleCore CEP в виде событий с использованием веб-служб, JMS или других протоколов.
Вот список из 13 правил с открытым исходным кодом двигатели в java, Drools, возможно, лучший из них. http://java-sources.org/open-source/rule-engines
Я знаю, что Ruleecore есть некоторые детали, написанные в Python. Но API использует XML и ActiveMQ или WebServices, поэтому он находится на более высоком уровне абстракции.