[rules-users] Could anyone suggest alternate approach

Greg Barton greg_barton at yahoo.com
Mon Nov 23 16:27:38 EST 2009


Oh, it's not in there, at least not as the default.  I checked. (It is one of the pluggable conflict resolution strategies included in the source, ComplexityConflictResolver.)  I just couldn't remember if it had been the default at some point.

--- On Mon, 11/23/09, Wolfgang Laun <wolfgang.laun at gmail.com> wrote:

> From: Wolfgang Laun <wolfgang.laun at gmail.com>
> Subject: Re: [rules-users] Could anyone suggest alternate approach
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Monday, November 23, 2009, 2:57 PM
> On 11/23/09, Greg Barton <greg_barton at yahoo.com>
> wrote:
> > Hm, I thought Drools had specificity conflict
> resolution on by default.  Has
> > that changed, or am I just getting old? :)
> 
> Aren't we all :)
> 
> 2.5.7.1 Conflict Resolution
> [...]
> The default conflict resolution strategies employed by
> Drools are:
> Salience and LIFO (last in, first out).
> 
> If this "specificity" is indeed in there it's specifically
> undocumented.
> 
> -W
> 
> >
> > --- On Mon, 11/23/09, Edson Tirelli <ed.tirelli at gmail.com>
> wrote:
> >
> >> From: Edson Tirelli <ed.tirelli at gmail.com>
> >> Subject: Re: [rules-users] Could anyone suggest
> alternate approach
> >> To: "Rules Users List" <rules-users at lists.jboss.org>
> >> Date: Monday, November 23, 2009, 1:44 PM
> >>
> >>     Also, if each of your
> steps involve multiple rules,
> >> the best way to coordinate "phased" execution is
> >> to use ruleflow.
> >>
> >>     Edson
> >>
> >> 2009/11/23 Wolfgang Laun <wolfgang.laun at gmail.com>
> >>
> >> Without salience, there is no
> >> guarantee that rule 1 will fire before rule 2.
> >>
> >>
> >>
> >> Seeing only part of the problem makes it difficult
> to shell
> >> out good advice.
> >>
> >>
> >>
> >> -W
> >>
> >>
> >>
> >> On 11/23/09, Greg Barton <greg_barton at yahoo.com>
> >> wrote:
> >>
> >> > The reason rule 2 is executed even though
> rule 1 has
> >> fired is because you're
> >>
> >> > not notifying the engine that the
> CustomerDetail has
> >> been changed.  You need
> >>
> >> > the statement "update(d)" in the rule
> >> action. (And this is generally true
> >>
> >> > when you modify matched objects in a
> rule.  Only
> >> leave it out in the rare
> >>
> >> > circumstance when you do NOT want other rules
> to be
> >> triggered by a change.)
> >>
> >> >
> >>
> >> > Also, an alternative to your approach is
> using
> >> agenda-group.  Check the
> >>
> >> > docs.
> >>
> >> >
> >>
> >> > --- On Mon, 11/23/09, Lindy hagan <lindyhagan at gmail.com>
> >> wrote:
> >>
> >> >
> >>
> >> >> From: Lindy hagan <lindyhagan at gmail.com>
> >>
> >> >> Subject: [rules-users] Could anyone
> suggest
> >> alternate approach
> >>
> >> >> To: "Rules Users List" <rules-users at lists.jboss.org>
> >>
> >> >> Date: Monday, November 23, 2009, 11:56
> AM
> >>
> >> >> Please ignore my previous email as I
> >>
> >> >> did not include subject.
> >>
> >> >>
> >>
> >> >> I have 4 drl files in my app. Loading all
> the 4
> >> during
> >>
> >> >> application startup.
> >>
> >> >> If any rule is satisfied in File 1,I
> don't
> >> want File 2
> >>
> >> >> be called.Should execute File 3 and 4.
> >>
> >> >> Similarly If rules in File 1 is not
> satisfied,want
> >> to call
> >>
> >> >> File 2 then File 3 and 4.
> >>
> >> >>
> >>
> >> >> At present I am doing this way.Please let
> me know
> >> if
> >>
> >> >> this is ok or if there is any better
> solution.
> >>
> >> >> Set an attribute when a rule is
> satisfied.
> >> (attribute is
> >>
> >> >> not dummy,I need it in my app)
> >>
> >> >> Attribute is checked in each and every if
> it is
> >> null.
> >>
> >> >>
> >>
> >> >> Example File1.drl contains 2 rules.If
> first rule
> >> is
> >>
> >> >> satisfied, don't want to execute second
> >> rule.So setting
> >>
> >> >> rule with a valid number.
> >>
> >> >>
> >>
> >> >> File1.drl
> >>
> >> >> rule "1.Age Factor and Junior"
> >>
> >> >>      when
> >>
> >> >>       
>    d : CustomerDetail( rule ==
> >> ""
> >>
> >> >> && sale == 'Junior' &&
> age
> >> in
> >>
> >> >> ("16","17"))
> >>
> >> >>      then
> >>
> >> >>
> >>
> >> >>     
> System.out.println("Junior and Age
> >> Satisfied
> >>
> >> >> ");
> >>
> >> >>   
>    d.setRule("1");
> >>
> >> >> end
> >>
> >> >> rule "2.Junior only Age Factor"
> >>
> >> >>      when
> >>
> >> >>       
>    m : CustomerDetail( rule ==
> >> ""
> >>
> >> >> && age in
> >> ("16","17"))
> >>
> >> >>      then
> >>
> >> >>   
>    System.out.println("Only junior Age
> >>
> >> >> satisfied.");
> >>
> >> >>
> >>
> >> >>   
>    m.setRule("2");
> >>
> >> >> end
> >>
> >> >>
> >>
> >> >> File2.drl
> >>
> >> >> rule "3.Age Factor and Senior"
> >>
> >> >>      when
> >>
> >> >>       
>    d : CustomerDetail( rule ==
> >> ""
> >>
> >> >> && sale == 'Senior' &&
> age
> >> in
> >>
> >> >> ("70","75"))
> >>
> >> >>      then
> >>
> >> >>
> >>
> >> >>     
> System.out.println("Senior and Age
> >> Satisfied
> >>
> >> >> ");
> >>
> >> >>   
>    d.setRule("10");
> >>
> >> >> end
> >>
> >> >> rule "4.Senior only Age Factor "
> >>
> >> >>      when
> >>
> >> >>       
>    m : CustomerDetail( rule ==
> >> ""
> >>
> >> >> && age in
> >> ("70","75"))
> >>
> >> >>      then
> >>
> >> >>   
>    System.out.println("Only senior Age
> >>
> >> >> satisfied.");
> >>
> >> >>
> >>
> >> >>   
>    m.setRule("11");
> >>
> >> >> end
> >>
> >> >> This one works but I see these
> disadvantages:
> >>
> >> >> 1)If the rule 1 is satisfied, rule2 is
> still
> >>
> >> >> executed.Similary all the rules in
> File2.drl.
> >>
> >> >> 2)Might impact performance all the 4
> rules are
> >> called all
> >>
> >> >> time.
> >>
> >> >> Any suggestions?
> >>
> >> >>
> >>
> >> >> -----Inline Attachment Follows-----
> >>
> >> >>
> >>
> >> >>
> _______________________________________________
> >>
> >> >> rules-users mailing list
> >>
> >> >> rules-users at lists.jboss.org
> >>
> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
> >>
> >> >>
> >>
> >> >
> >>
> >> >
> >>
> >> >
> >>
> >> >
> >>
> >> >
> _______________________________________________
> >>
> >> > rules-users mailing list
> >>
> >> > rules-users at lists.jboss.org
> >>
> >> > https://lists.jboss.org/mailman/listinfo/rules-users
> >>
> >> >
> >>
> >> _______________________________________________
> >>
> >> 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
> >>
> >
> >
> >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> _______________________________________________
> 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