Geeks With Blogs

Charles Young

For the other two people in the world who are interested in such things, Peter Lin, Chimezie Ogbuji, Johan Lindberg and I have been debating the finer points of Rete engine implementation over on Peter's web site.   The main thing to emerge from this was a much clearer understanding of the alternative approaches that can be taken when implementing Rete networks (I told you there would only be a couple of people interested in this!).   Chimezie is the author of a reasoning system called FuXi (pronounced 'foo-see', please) which extends a Python-based engine called Pychinko.   Pychinko and FuXi are designed to apply rules to RDF triplets, and therefore can be applied to the semantic web.   With good reason, they use a rather different implementation for the alpha part of their Retes than the approach used in most engines. 

All a little obscure, I realise, for my normal readers, but someone may be interested.

Incidently, congratulations to Chimezie who, I understand, became a dad for the third time just over a week ago.   And he still found time to contribute to our ramblings!!

The debate can be found at:

Difference between RETE/UL and Forgy RETE

For me, the debate began earlier at:

Wikipedia has been updated

Previously posted at Posted on Monday, October 16, 2006 10:03 AM | Back to top

Comments on this post: Alternative Rete implementations

# re: Alternative Rete implementations
Requesting Gravatar...
hey charles, thought I'd drop you a note. I did some rough calculations which suggest RETE/UL using EAV approach wouldn't scale any where near RETE. The unlinking bits are still applicable to forgy's RETE, but the 3-tuple EAV approach most likely wouldn't scale any where forgy's RETE.

For fear of being lynched, I haven't claimed RETE/UL isn't RETE, but it sure looks different :)

thanks again for participating in the discussion.
Left by Peter Lin on Oct 18, 2006 1:54 AM

# re: Alternative Rete implementations
Requesting Gravatar...
I read the updated Wikipedia entry. I must say you've done the world a service by improving the description. thank goodness you're not as lazy as me.

Your prior addition made a significant improvement over the old explanation. The latest revision will hopefully provide more meat for the general public. I had a debate with the author of Hammurapi rules. He claimed his engine was RETE because it "seemed" similar to the old description in the first section. After he read forgy's paper, he still claimed hammurapi rules is RETE, even though the design of hammurapi rules is clearly procedural.
Left by Peter Lin on Oct 28, 2006 2:39 AM

# re: Alternative Rete implementations
Requesting Gravatar...
Thanks Peter. I intend at some point to add some more graphics, and also to hyperlink the document to other articles.

I had only the briefest look at the Hammurapi article, and have not studied it in depth. An example of confusion in regard to Rete and procedural rule processing is US patent 20050240546 which describes Rete beta nodes that, apparently, directly assert newly inferred facts in-line within the beta network! The patent describes an automated approach to 'linear inferencing' in which sequential nodes (representing procedural rules) are re-arranged according to fact dependency analysis in order to eliminate chaining. It’s what procedural rule developers do all the time, manually, when using, say, Microsoft WF rules, and I seriously doubt there is no applicable prior art that would undermine the patent. The approach is compared and contrasted with Rete, but the description of Rete is fundamentally wrong, and there is an underlying inference throughout the patent that Rete is procedural in nature.
Left by Charles Young on Oct 28, 2006 5:03 PM

# re: Alternative Rete implementations
Requesting Gravatar...
yeah, I've read other patents related to RETE that were almost as bad. One in particular in the US patent database describes using demorgan's theorem to rewrite disjunctions in the compilation phase. It's rather silly, considering some prolog systems already employed demorgan's.
I'm hoping once I finish the essay on IAV, EAV and n-tuple approach for RETE, it will improve the situation. Assuming I'm able to figure out a structure that works well and I'm able to explain it in simple terms a non-AI researcher can understand.
Left by Peter Lin on Oct 29, 2006 4:09 PM

Your comment:
 (will show your gravatar)

Copyright © Charles Young | Powered by: