ruleCore is an event-driven reactive rule engine with GUI tools,
all written in Python.
The ruleCore Engine accepts events with XML-RPC and detects
complex patterns of events, called situations. A situation is
defined by combining events with different kind of nodes, such as
logical or timer nodes.
For example, ruleCore can do things like:
"Detect the situation, if it is not december, when event HOST_DOWN
comes after event ROUTER_DOWN and event FAILOVER does not come
within 10 minutes"
When a situation is detected a condition can be evaluated on all the
events that took part in the detection process. If the condition is
true an action is executed, normally a script.
The ruleCore Engine is written in completely in Python. The GUI tools
are also in Python and uses Qt with the PyQt wrapper. Everything is
tested on recent versions of SUSE and RedHat. The rpm contains
*everything* needed to run ruleCore, so it should run on most Linux
Portability to Windows and Mac is a goal, but not tested yet. But as
everything is in Python it should run provided that all the required
software is installed. Although this is left as an exercise to the
The ruleCore Engine is based on ideas from the research done on active
rules called Event-Condition-Action (ECA) rules. Google on ECA-rules or
check the references section on www.rulecore.com to learn more about
this type of event-driven active rules.
Interesting concept. Where millisecond reaction time is not important it
could even be considered 'realtime'. I've been working on a process
control project and needed a Linux solution. There is an entire, well
developed industry surrounding process control, standardized on the
EN 61131-3 or IEC 1131-3 language description.
Here is an example of industrial process control:
The language defined above is used to program process controllers one of
four methods, two graphical, and two using scripts.
Here are some Linux based solutions:
Here is a Linux program that utilizes one of the graphical methods, called
I think you'll see the strong similarities between your rule engine and the
classic ladder, as shown by the snapshots of the engine at work.
I didn't understand much of the ladder, but it seems to be some kind of
tool for event correlation just as ruleCore is.
Most industrial process controllers come with a software/hardware modeling
tool that uses the IEC 1131-3 language. Once you get the model working
(using Ladder, for instance) you can then burn the software that the Ladder
generates into the control EPROM.
ok, this seems to be a bit more low-level than ruleCore is intended
people tend to use software in the most strange ways.... ;)
It is a interesting idea to use ruleCore for monitoring industrial
things, really cool.
I suppose there exists some kind of standard to extract events from
industrial process thingy and somehow collect them all and send them
into a ruleCore instance?