You can have code generated rete and still maintain state. Edson mentioned OPSJ, and I
can verify that (at least the last time I worked with it 10 years ago) it was code
generated and maintained state.
From: Tim de Jager <tim.dejager(a)student.hu.nl>
Subject: Re: [rules-users] Inferencing
To: "Rules Users List" <rules-users(a)lists.jboss.org>
Date: Monday, March 8, 2010, 2:37 PM
Thanks a lot everybody for their awnsers, this clarifies it
to some extend :)!
What I was talking about was indeed the difference between
an: interpreted rete engine vs. code generated rete engine
vs. the use of no inference engine at all (e.g. Visual
Rules). One of the questions that pop up: Is it possible to
maintain the same 'statefull' features with a code generated
inference engine? Like you said Take generates a backward
chaining algorith, but would it be able to react to a
changed fact like drools can with the modify statement? Is
code-generated Rete maybe comparable with the drools
sequential mode?
It could be that I'm mixing alot of things up, I can't find
a whole lot on this subject.
So do you have any insight on the differences between a
interpreted rete engine an a code generated one. Would they
differ in functionality in any way?
Thanks!
-----Oorspronkelijk bericht-----
Van: rules-users-bounces(a)lists.jboss.org
namens Edson Tirelli
Verzonden: ma 8-3-2010 17:55
Aan: Rules Users List
Onderwerp: Re: [rules-users] Inferencing
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(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com
-----Inline Attachment Follows-----
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users