[rules-users] can drools support complex rules (resetting of Accumulate?)

Wolfgang Laun wolfgang.laun at gmail.com
Thu May 21 12:16:01 EDT 2009


Well, it's definitely not forbidden to do a little computational work on the
RHS, too.

Bind the result to a variable:
    Number( $times : intValue > 10 )...
and, on the RHS, do
    for( int i = 1; i <= $times % 10; i++ ) shout( "alarm" );
or whatever.

-W


On Thu, May 21, 2009 at 4:21 PM, <hrishikesh.varma at wipro.com> wrote:

> Hi,
>
>
> Temporal Reasoning with Accumulate - (like 3- rule "Customer login from
> more than 5 locations in the last one month")
>
> What if I want to reset my count for accumulate within the time
> specified sliding window.So that I can have the RHS triggered for every
> 10times the event occurs in the same window.
> For Example:
>
> when
>    $customer : Customer( $id : id )
>     Number( intValue > 10 ) from accumulate(
>                     CustomerLogin( loginStatus=="Failed", customerId ==
> $id,$cusId:customerId)
> over window:time( 30s ),
>                     count( $ cusId) )
> then
>    // do something as the customer had abnormal number of failed
> violations in last 30 secs.
> end
>
>
> Right now am doing something similar, but using a manual approach -of
> explicitly counting.
>
> Any Light on this?
>
> Regards
> Rishi
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 19 May 2009 11:17:41 -0400
> From: Edson Tirelli <tirelli at post.com>
> Subject: Re: [rules-users] can drools support complex rules
> To: Rules Users List <rules-users at lists.jboss.org>
> Message-ID:
>        <e6dd5ba30905190817q33d15b9er5efee64bc74cdb0e at mail.gmail.com>
> Content-Type: text/plain; charset="windows-1252"
>
>     Your question is funny. First you ask if Drools is capable of
> managing
> complex rules and then you mention examples of extremely simple rules?
> :)
>
>     Drools is FOL complete and so can represent any well formed First
> Order
> Logic expression. Anyway, I will use this message to advertise some of
> the
> temporal reasoning features that we have on Drools 5 for the benefit of
> anyone interested.
>
>     There are several ways of authoring such rules, depending on how
> you
> model your problem domain. One possible way of doing them is:
>
> #1:
> rule "If a customer login within 5 minutes from two different locations,
> mark the user invalid."
> when
>     $l1 : CustomerLogin( )
>     $l2 : CustomerLogin( userId == l1.$id, location != $l1.id,
> timestamp
> after[0s, 5m] $l1.timestamp )
> then
>     // mark user as invalid
> end
>
> In the previous example I assumed both login objects would be in working
> memory, but you can easily query for the previous login in an external
> datasource, pulling the data from the previous login on-demand for the
> reasoning cycle.
>
> #2:
> rule "If the customer location is not on a list of valid locations, mark
> the
> user invalid"
> when
>      $l : CustomerLogin( location not memberOf $validLocations )
> then
>      // mark the user invalid
> end
>
> In the above rule, I assume the valid locations list is a global list,
> but
> you can as easily model locations as being facts on your working memory
> or a
> service end point that you can call to validate the location.
>
> #3:
> rule "Customer login from more than 5 locations in the last one month"
> when
>    $customer : Customer( $id : id )
>    $locations : Set( size > 5 ) from accumulate(
>                     CustomerLogin( customerId == $id, $loc : location )
> over window:time( 30d ),
>                     collectSet( $loc ) )
> then
>    // do something as the customer logged in from more than 5 locations
> in
> the last 30 days
> end
>
> In the previous rule I decided to use sliding windows, just to show how
> that
> feature can be used to simplify rules, but again, there are several ways
> of
> doing it.
>
> I strongly recommend you read Drools manual.
>
> http://www.jboss.org/drools/documentation.html
>
> Cheers,
> Edson
>
>
>
> 2009/5/19 Bhushan Bhangale <bhushan_bhangale at kaleconsultants.com>
>
> >  Hi,
> >
> >
> >
> > I recently came across Drools. I gone through the documentation and
> the
> > examples provide are quite simple. I want to know if it can be really
> > applied to complex real world problems.
> >
> >
> >
> > Take for example,
> >
> >
> >
> > If a customer login within 5 minutes from two different locations,
> mark the
> > user invalid.
> >
> > How can I write the above rule in drools? I have the data when the
> user
> > last logged in and the data of current login. You can say two objects.
> >
> >
> >
> > May be my understanding is wrong but looks like based on rule I have
> to
> > pass all the required data. How can then at real time new rules can be
> > added?
> >
> >
> >
> > For example,
> >
> >
> >
> > If the customer location is not on a list of valid locations, mark the
> user
> > invalid.
> >
> >
> >
> > For the above rule I need to pass a list of valid locations as well.
> >
> >
> >
> > Now how about "Customer login from more than 5 locations in the last
> one
> > month"?
> >
> >
> >
> > Thanks
> >
> > *Mr. Bhangale Bhushan*
> > *Associate Manager*
> > *Kale Consultants Ltd.*
> > bhushan_bhangale at kaleconsultants.com
> > tel: +91 (0)206 608
> 3777<http://www.plaxo.com/click_to_call?lang=en&src=jj_signature&To=%2B9
> 1+%280%29206+608+3777&Email=bhushan_bhangale at kaleconsultants.com<http://www.plaxo.com/click_to_call?lang=en&src=jj_signature&To=%2B9%0A1+%280%29206+608+3777&Email=bhushan_bhangale@kaleconsultants.com>
> >
> > http://www.kaleconsultants.com
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Disclaimer: This email (including any attachments) is intended for the
> sole
> > use of the recipient/s and may contain material that is CONFIDENTIAL.
> Any
> > unauthorized disclosure / copying / distribution or forwarding of this
> message
> > or part is STRICTLY PROHIBITED. If you have erroneously received this
> message,
> > please delete it immediately and notify the sender. No liability is
> assumed for
> > any errors and/or omissions in the contents of this message.
> Information in
> > this message that does not relate to the official business of this
> Company
> > shall be understood as neither given nor endorsed by it. If
> verification is
> > required please request a hard-copy version.
> >
> > To know more about Kale Consultants, visit www.kaleconsultants.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, a division of Red Hat @ www.jboss.com
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> http://lists.jboss.org/pipermail/rules-users/attachments/20090519/4d4928
> 6d/attachment-0001.html<http://lists.jboss.org/pipermail/rules-users/attachments/20090519/4d4928%0A6d/attachment-0001.html>
>
> ------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> End of rules-users Digest, Vol 30, Issue 56
> *******************************************
>
> Please do not print this email unless it is absolutely necessary.
>
> The information contained in this electronic message and any attachments to
> this message are intended for the exclusive use of the addressee(s) and may
> contain proprietary, confidential or privileged information. If you are not
> the intended recipient, you should not disseminate, distribute or copy this
> e-mail. Please notify the sender immediately and destroy all copies of this
> message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient
> should check this email and any attachments for the presence of viruses. The
> company accepts no liability for any damage caused by any virus transmitted
> by this email.
>
> www.wipro.com
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090521/cd3adbca/attachment.html 


More information about the rules-users mailing list