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(a)verchaska.com> wrote:
From: Nikhil_dev <k.nikhil(a)verchaska.com>
Subject: RE: [rules-users] Identify Rule on Attributes
To: rules-users(a)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(a)lists.jboss.org
> [mailto:rules-users-bounces@lists.jboss.org] On Behalf
Of Nikhil_dev
> Sent: 13 March 2009 11:19
> To: rules-users(a)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(a)lists.jboss.org
>> [mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of Nikhil_dev
>> Sent: 13 March 2009 06:44
>> To: rules-users(a)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(a)lists.jboss.org
>>> [mailto:rules-users-bounces@lists.jboss.org]
On Behalf Of Nikhil_dev
>>> Sent: Friday, March 13, 2009 11:35 AM
>>> To: rules-users(a)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(a)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(a)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(a)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(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
_______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users(a)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(a)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(a)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(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users