ruleCore? (Python rule engine, anybody?)

jbone at place.org jbone at place.org
Wed Nov 26 13:14:36 PST 2003


Greg sez:

> (Hi Andrew, not directly related to your post...)
>
> Oh gawd.  They (rulecore) reinvented RETE networks.

It's clear from the docs that they're internally / structurally similar 
to RETE, but it's not entirely clear that they're actually implementing 
RETE per se or any of its new / improved variants.  I think RETE as 
implemented by JESS includes many improvements, for example;  also, 
might want to take a glance at this paper if you're interested in this 
kind of thing, talks about the optimization problem vis-a-vis 
production systems:

	http://citeseer.nj.nec.com/ishida88optimizing.html

Still, I had been looking for a Python-based rules implementation a 
while back and tabled it for lack of good alternatives;  this looks 
like it might do the trick for what I need it for.

The GUIs are funky, but also tangential;  the core looks well-factored 
and is only about 7500 lines of Python.  Score!

As for OPS5:  I'll nod hat to Greg and Joe on that, I ducked that 
bullet, never had to actually use it (though I'm sure it was covered in 
some survey or tutorial or other.)  Plenty of other rule system crap, 
though;  mostly Lisp-derived, hard to write, impossible to read, 
hopeless to debug. ;-)  (This coming from a guy who actually *likes* 
Lisp / Scheme, too --- but in a rules context --- ugh!)  This looks a 
lot more tenable than earlier implementations, just from a usage 
perspective.

Given that JESS has been making some noise (did I hear there's an 
O'Reilly book out or coming soon?) my guess is that availability of 
this kind of thing in Python is just an indication of growing "steam" 
for this kind of technology.  Now that everybody's finally drunk the 
"loose coupling" Kool-aid and started implementing message-based (even 
if it's document-centric SOAP) systems with lots of queueing, this kind 
of thing's gonna start to heat up.  Got events?  Sure --- now what do I 
do with 'em?

jb



More information about the FoRK mailing list