Hey, 

I try to use drools fusion to detect patterns in an event stream.
Each time an event occurs I insert it into my ksession and call fireAllRules().

Most of my rules need to reason over the newest event (the one that just came 
in) in conjunction with events that happend before or after that. 
I also have a "state" within my environment. e.g. temperature (HIGH, MEDIUM, 
LOW). (but also other state variables)

e.g. [pseudo code]
WHEN
        temperature MEDIUM or LOW
        newest event (value >= 20)
        last previous event (value >= 20)
then
        set temperature to HIGH


Now I run into lots of problems with this e.g. that I can not easily get the 
"newest" and "last previous" events. When i get Events() there is usually more 
than one (as some of them are not immediately expired)
Also the rule is triggert when temperature is changed without a new event being 
inserted. 

I could theoretically "mark" events that have been used, but I might run into 
problems when other rules are added that depend on the same events. Also it 
seems to be untidy to do so.
For now I used this to get the "newest" event, but it seems to be very 
non-declarative to do it like that

        //most recent event     
        Stack(size > 0, $event: pop, $event.value == 1) 
                from collect( Event())  


Are there any best practices especially for working with the "newest" event and 
with events + facts (as "states")?

- Alex

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to