[rules-users] Retrieve rulename in LHS

Alexander Claus styjdt at claus4joy.de
Mon Jun 2 11:03:40 EDT 2008


Yes, I checked the rule attributes for applicability for my needs. Unfortunately I did not find a way, how this could help me.
Here is my scenario:

I want to use Drools as engine for complex event processing / event correlation. My current approach is to insert the events as facts containing a timestamp into the working memory and then do "timestamp-arithmetics".
That I need a mechanism to mark events as processed, you can see, if you consider the following type of rule:
"If there are 3 occurrences of Event "A" within 15 seconds, then fire".
Now consider the event sequence:
Event "A" at time 0 seconds
Event "A" at time 4 seconds
Event "A" at time 8 seconds
Event "A" at time 12 seconds
Obviously I want my rule to be fired, if the first three events were detected. But, without marking the first three events as processed by this rule, the arrival of the fourth event creates 3 new activations:
Events 1,2,4
Events 1,3,4
Events 2,3,4
I think it's clear that I'm not interested in these last three rule firings.
Note, that we have here only one rule, so locking should prevent the rule from firing at all.

So, currently I mark each event occurring in the LHS of a rule in the RHS as processed by this rule and check in the LHS, if the events are not processed by the rule.
I know, not very elegant, but I found this to be the easiest way.

So, if you have suggestions how to overcome this lack of elegance, please let me know.
Thanks.

Alexander Claus

  ----- Original Message ----- 
  From: Edson Tirelli 
  To: Rules Users List 
  Sent: Monday, June 02, 2008 2:55 PM
  Subject: Re: [rules-users] Retrieve rulename in LHS



     Alexander,

     Seems a lot of cumbersome code to control rule execution, and something that should probably not be done that way. Did you looked at the lock-on-active rules attribute? Can't you use it together with either rule-flow or agenda-groups to achieve your goal without manually controlling rules x fact execution?

     []s
     Edson


  2008/6/2 Alexander Claus <styjdt at claus4joy.de>:

    Hello,

    I wonder if there is a way to get the rulename in the LHS of a rule directly
    via DRL. I found a post here:
    http://article.gmane.org/gmane.comp.java.drools.user/8373, which describes a
    solution to get the rulename in the RHS of a rule. But that doesn't work in
    the LHS.

    I need this to mark some facts as processed by the current rule, so that the
    facts do not trigger rule firing again together with other facts. Currently
    I use an arbitrary string, which is only used by one rule. But for the sake
    of convenience, it would be nice to use such an "automated" mechanism for
    getting the rulename as this unique identifier string.

    Thanks in advance.
    Alexander Claus 
    _______________________________________________
    rules-users mailing list
    rules-users at lists.jboss.org
    https://lists.jboss.org/mailman/listinfo/rules-users




  -- 
  Edson Tirelli
  JBoss Drools Core Development
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  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/20080602/635b0124/attachment.html 


More information about the rules-users mailing list