[rules-users] Inferencing

Greg Barton greg_barton at yahoo.com
Mon Mar 8 16:34:10 EST 2010


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.  

http://www.pst.com/opsj.htm
http://www.pst.com/opsjbro.htm

--- On Mon, 3/8/10, Tim de Jager <tim.dejager at student.hu.nl> wrote:

> From: Tim de Jager <tim.dejager at student.hu.nl>
> Subject: Re: [rules-users] Inferencing
> To: "Rules Users List" <rules-users at 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 at 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 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
> 
> 
> 
> -----Inline Attachment Follows-----
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 


      




More information about the rules-users mailing list