[rules-users] Identify Rule on Attributes

Greg Barton greg_barton at yahoo.com
Fri Mar 13 11:04:05 EDT 2009



Nikhil, there seems to be a communication breakdown here.  Several people have suggested a solution that I believe fits your problem, but I'm not sure that you understand what they're saying.  Generally, if I were dealing with a situation like this face to face, I'd have you summarize what others have suggested to see if you understood their ideas.  Would you be willing to do that?

--- On Fri, 3/13/09, Nikhil_dev <k.nikhil at verchaska.com> wrote:

> From: Nikhil_dev <k.nikhil at verchaska.com>
> Subject: RE: [rules-users] Identify Rule on Attributes
> To: rules-users at lists.jboss.org
> Date: Friday, March 13, 2009, 7:16 AM
> Perfect this is the situation but the only difference is the
> last part,
> 
> Rulebase for all the 3 Rules are stored in memory.
> 
> Now i have is attributes(implemented as bean class), but
> the issue is i dont
> know which Rulebase to use out of the three which is
> present in the memory,
> fetching them one by one and executing it individually is
> possible but a
> long procedure which i want to avoid.(executing 3 Rule is
> ok what if i have
> 100000 rules it will be very slow process)
> 
> I would like to know is there any mechanism to understand
> which rulebase
> will be appropriate without executing the rule completely.
> a mechanism such
> as where we can compare the set of variable required by the
> rule and set of
> variable that i am passing for execution. this can be one
> of the mechanism,
> like that is there any other mechanism available with
> drools.
> 
> I hope i am clear enough, please let knw...if i need to be
> more clear, it
> will be very helpful...... 
> 
> Thank u all for the response.....
> 
> Anstis, Michael (M.) wrote:
> > 
> > Hi Nikhil,
> > 
> > Let's break down what you have said into pseudo
> Drools terms:-
> > 
> > Rule 1
> > 	AdultFare(value==3000)
> > 	ChildFare(value==2500)
> > Then
> > 	//Do what you want to do
> > End
> > 
> > Rule 2
> > 	ChildFare(value==2000) or 
> > 	InfantFare(value==1500)
> > Then
> > 	//Do what you want to do
> > End
> > 
> > Rule 3
> > 	AdultFare($f1 : value)
> > 	InfantFare($f2 : value)
> > 	eval($f1 + $f2 < 4000)
> > Then
> > 	//Do what you want to do
> > End
> > 
> > You suggest you have a RuleBase that has been
> successfully loaded. 
> > 
> > You state you have some attributes (I assume these to
> be implemented as
> > Classes).
> > 
> > StatefulSession ss = rulebase.newStatefulSession();
> > ss.insert( new AdultFare(1000) );    //<-- Causes
> object to be compared
> > to ALL rules. This is how RETE works
> > ss.insert( new InfantFare(1000) );   //<-- Causes
> object to be compared
> > to ALL rules. This is how RETE works
> > ss.fireAllRules();                   //<-- Causes
> the "then" part of
> > Rule 3 to execute
> > 
> > It sounds like you are trying to hard.
> > 
> > With kind regards,
> > 
> > Mike
> > 
> > -----Original Message-----
> > From: rules-users-bounces at lists.jboss.org
> > [mailto:rules-users-bounces at lists.jboss.org] On Behalf
> Of Nikhil_dev
> > Sent: 13 March 2009 11:19
> > To: rules-users at lists.jboss.org
> > Subject: RE: [rules-users] Identify Rule on Attributes
> > 
> > 
> > Thank you Michael, 
> > Following is the use-case/example/Situation that i
> trying to make it
> > work
> > Consider Example ::::
> > Rule 1: requires attributes/Values :::::::: adultFare
> == 3000 and
> > ChildFare
> > == 2500
> > Rule 2: requires attributes/Values :::::::: ChildFare
> == 2000 or
> > InfantFare 
> > == 1500
> > Rule 3: requires attributes/Values :::::::: AdultFare
> + InfantFare <
> > 4000
> > 
> > Above said rules is complied and its Rulebase is
> stored in the
> > memory......
> > 
> > Now i have adultFare and InfantFare Attribute in
> hand....... so now is
> > there
> > any way with the help of drools we can identify which
> rule to execute
> > with
> > out executing all of them one after the
> another.......as per the example
> > Rule3 should be executed....and will give right
> output.......
> > 
> > I hope u got what i am trying to do..... let me know
> weather it is
> > possible........  through RETE algo used inside drools
> or should i do it
> > on
> > my own of identifying the rules.......
> > 
> > 
> > Anstis, Michael (M.) wrote:
> >> 
> >> I concur everybody's statements fully.
> >> 
> >> The purpose of a rules engine is to remove the
> need for the
> > application
> >> developer to code algorithms to determine which of
> a set of rules
> > should
> >> execute given a set of
> facts\properties\objects. Drools implements the
> >> RETE algorithm. Writing your own code to determine
> which rule should
> > be
> >> executed would be like writing your own video
> driver so you can
> > display
> >> an image. 
> >> 
> >> Of course "we" all assume you plan on
> using Drools as a rule engine; a
> >> black box to drive the execution of consequences
> based upon rule
> >> definitions and domain objects. As you state in
> your last post below;
> >> your "point is that [you] want to use rule
> engine in [your]
> > application
> >> at it's fullest". Without a clearer
> description of your use-case it
> >> might be impossible for anybody to give an answer
> that helps with your
> >> particular issue.
> >> 
> >> These forums are an excellent place to find
> solutions. Everybody has
> >> always been extremely helpful to me.
> >> 
> >> I hope you are not discouraged by the responses
> received to date and
> > am
> >> sure everybody is genuinely trying to help.
> >> 
> >> With kind regards,
> >> 
> >> Mike
> >> 
> >> -----Original Message-----
> >> From: rules-users-bounces at lists.jboss.org
> >> [mailto:rules-users-bounces at lists.jboss.org] On
> Behalf Of Nikhil_dev
> >> Sent: 13 March 2009 06:44
> >> To: rules-users at lists.jboss.org
> >> Subject: RE: [rules-users] Identify Rule on
> Attributes
> >> 
> >> 
> >> Hi Vikrant,
> >> 
> >> Please go through all the post and try understand
> what i am trying to
> >> get
> >> from rule engine............ please do not post
> just for the namesake.
> >> My point is that i want to use rule engine in my
> application at its
> >> fullest,
> >> if something is possible in Rule engine i would
> like to experiment on
> >> it. 
> >> 
> >> Cheers,
> >> Nikhil.
> >> 
> >> 
> >> 
> >> 
> >> Vikrant Yagnick wrote:
> >>> 
> >>> Hi Nikhil,
> >>> 
> >>> Drools implements the RETE algorithm. The
> "average" rules user does
> >> not
> >>> need to bother or even care about it. All you
> need to do is use the
> >> rule
> >>> engine(for which you do not need to design or
> write your own
> >> algorithm)
> >>> and it will automatically do the work for you.
> >>> 
> >>> Cheers,
> >>> Vikrant
> >>> 
> >>> -----Original Message-----
> >>> From: rules-users-bounces at lists.jboss.org
> >>> [mailto:rules-users-bounces at lists.jboss.org]
> On Behalf Of Nikhil_dev
> >>> Sent: Friday, March 13, 2009 11:35 AM
> >>> To: rules-users at lists.jboss.org
> >>> Subject: Re: [rules-users] Identify Rule on
> Attributes
> >>> 
> >>> 
> >>> 
> >>> from the doc i got what is Rete algo ... but
> not getting the way to
> >>> implement it.... using drools
> >>> 
> >>> 
> >>> Nikhil_dev wrote:
> >>>>
> >>>>
> >>>> if this is the doc
> >>>>
> >>
> >
> http://downloads.jboss.com/drools/docs/4.0.4.17825.GA/html_single/index.
> >> html
> >>>> u are talking about then i coudl'nt 
> find much help.
> >>>> It will be very helpful if u can give me a
> kick start on the
> >> same.......
> >>>> since i am just an average rule engine
> user.....some helpful doc on
> >> the
> >>>> same
> >>>>
> >>>>
> >>>>
> >>>> Greg Barton wrote:
> >>>>>
> >>>>>
> >>>>> Yes, if you use a rules engine that
> implements rete the
> >> functionality
> >>>>> you
> >>>>> need is available.
> >>>>>
> >>>>> Read the Drools docs.
> >>>>>
> >>>>> Carefully.
> >>>>>
> >>>>> GreG
> >>>>>
> >>>>> On Mar 12, 2009, at 23:40, Nikhil_dev
> <k.nikhil at verchaska.com>
> >> wrote:
> >>>>>
> >>>>>
> >>>>> thank u Scott and Greg for u'r
> reply......
> >>>>>
> >>>>> by the way Greg is it possible for me
> to use this rete algo through
> >> rule
> >>>>> engine as this functionality already
> available in the core of Rule
> >>>>> Enigne
> >>>>> or
> >>>>> should i implement this out side rule
> engine.
> >>>>>
> >>>>>
> >>>>> Greg Barton wrote:
> >>>>>
> >>>>>
> >>>>> That's the core functionality of a
> rule engine.  The rete algorithm
> >> does
> >>>>> this, and drools implements rete.
> >>>>>
> >>>>> --- On Thu, 3/12/09, Nikhil_dev
> <k.nikhil at verchaska.com> wrote:
> >>>>>
> >>>>> so now is there
> >>>>> any way with the help of drools we can
> identify which rule
> >>>>> to execute with
> >>>>> out executing all of them one after
> the another
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> _______________________________________________
> >>>>> rules-users mailing list
> >>>>> rules-users at lists.jboss.org
> >>>>>
> https://lists.jboss.org/mailman/listinfo/rules-users
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> -----
> >>>>> Regards,
> >>>>> :working:Nikhil
> >>>>> --
> >>>>> View this message in context:
> >>>>>
> >>
> >
> http://www.nabble.com/Identify-Rule-on-Attributes-tp22471473p22490126.ht
> >> ml
> >>>>> 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
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> _______________________________________________
> >>>>> rules-users mailing list
> >>>>> rules-users at lists.jboss.org
> >>>>>
> https://lists.jboss.org/mailman/listinfo/rules-users
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>> 
> >>> 
> >>> -----
> >>> Regards,
> >>> :working:Nikhil
> >>> --
> >>> View this message in context:
> >>>
> >>
> >
> http://www.nabble.com/Identify-Rule-on-Attributes-tp22471473p22490776.ht
> >> ml
> >>> 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
> >>> 
> >>> 
> >>> MASTEK LTD.
> >>> Mastek is in NASSCOM's 'India Top
> 20' Software Service Exporters
> > List.
> >>> In the US, we're called MAJESCOMASTEK
> >>> 
> >>>
> >>
> >
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>> Opinions expressed in this e-mail are those of
> the individual and not
> >> that
> >>> of Mastek Limited, unless specifically
> indicated to that effect.
> >> Mastek
> >>> Limited does not accept any responsibility or
> liability for it. This
> >>> e-mail and attachments (if any) transmitted
> with it are confidential
> >>> and/or privileged and solely for the use of
> the intended person or
> >> entity
> >>> to which it is addressed. Any review,
> re-transmission, dissemination
> >> or
> >>> other use of or taking of any action in
> reliance upon this
> > information
> >> by
> >>> persons or entities other than the intended
> recipient is prohibited.
> >> This
> >>> e-mail and its attachments have been scanned
> for the presence of
> >> computer
> >>> viruses. It is the responsibility of the
> recipient to run the virus
> >> check
> >>> on e-mails and attachments before opening
> them. If you have received
> >> this
> >>> e-mail in error, kindly delete this e-mail
> from desktop and server.
> >>>
> >>
> >
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>> 
> >>> 
> >>>
> _______________________________________________
> >>> rules-users mailing list
> >>> rules-users at lists.jboss.org
> >>>
> https://lists.jboss.org/mailman/listinfo/rules-users
> >>> 
> >>> 
> >> 
> >> 
> >> -----
> >> Regards,
> >> :working:Nikhil
> >> -- 
> >> View this message in context:
> >>
> >
> http://www.nabble.com/Identify-Rule-on-Attributes-tp22471473p22491091.ht
> >> ml
> >> 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
> >> 
> >> _______________________________________________
> >> rules-users mailing list
> >> rules-users at lists.jboss.org
> >>
> https://lists.jboss.org/mailman/listinfo/rules-users
> >> 
> >> 
> > 
> > 
> > -----
> > Regards,
> > :working:Nikhil
> > -- 
> > View this message in context:
> >
> http://www.nabble.com/Identify-Rule-on-Attributes-tp22471473p22494433.ht
> > ml
> > 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
> > 
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> > 
> > 
> 
> 
> -----
> Regards,
> :working:Nikhil
> -- 
> View this message in context:
> http://www.nabble.com/Identify-Rule-on-Attributes-tp22471473p22495260.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


      



More information about the rules-users mailing list