[rules-users] Inferencing

Edson Tirelli ed.tirelli at gmail.com
Mon Mar 8 11:55:15 EST 2010


   Hi Tim,

   That is a nice topic for studies, but be prepared for a tsunami of
information and quite a few controversies. :)

   Regarding your question, I am not sure I completely understand what you
mean, but it is important to be clear that "generation of code" is an
orthogonal concern to the chosen algorithm. I.e., take the Rete algorithm
for example: you can have it fully "interpreted" (I am using the term
loosely here), you can generate code for it completely, or you can be
anywhere in the middle. In all cases, the properties of the algorithm itself
will be preserved (assuming the implementations are correct). Incurring the
risk of making a mistake here, I will mention that AFAIK Jess falls in the
first cathegory, OPSJ falls in the second and Drools falls in the 3rd, and
they are all Rete based algorithms.

   Its been a long time since I last looked at TAKE, but at that time it was
generating code for a backward-chaining-like algorithm. Not sure what it has
now.

   So, my suggestion is that you either focus on the properties of the
algorithms itself (for instance, are you comparing classic Rete with known
algorithm like LEAPS, TREAT, etc) or focus on the advantages and
disadvantages of code generation (for instance "interpreted Rete" versus
"code generated Rete", again using terms loosely here). Mixing everything in
a single comparison might be misleading.

   Edson

2010/3/8 Tim de Jager <tim.dejager at student.hu.nl>

>
> Hi everybody,
>
> I'm currently doing my bachelor thesis on Rule engines. This includes
> comapring different Rule engine products. I have set up a small Java
> program
> (Conway's game of life) and I'm writing the 'engine' in different Rule
> engines, while keeping the same GUI,CellGrid etc. I have already made a
> Drools based engine.
>
> I have been studying the Rule engine subject for somewhat more then a month
> now. And I'm currently seeing two different developments namely the use of
> an inference engine and the generation of embedded code instead (Take,
> Visual Rules etc.)  I can see some of the pro's and cons with both
> paradigms. But I'm wondering what opinion some of you guys have on the
> subject.
>
> I can see that without inferencing  it is very hard (or even impossible) to
> keep a statefull session inside the rule engine, haven't seen a
> non-inferencing rule engine which does offer this possibility. And also
> lose
> features like TMS. But what would be a concrete example where a statefull
> session is absolutely necessary? Instead of letting the engine reason over
> all the facts in stateless way. And managing conflicts with a ruleflow (see
> Visual Rules for a nice example).
>
> I'm looking forward to hearing your thoughts.
>
> Thanks,
>
> Tim
>
> P.S I already read two of Mark Proctors blogs on inferencing, but while
> enlightening, they didn't supply me with a definitive awnser
> --
> View this message in context:
> http://n3.nabble.com/Inferencing-tp435411p435411.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100308/99daf33f/attachment.html 


More information about the rules-users mailing list