If I understand you correctly Edson, you have provided a better description
to solution 1) in my post above.
This works to a degree but leaves a bit to be desired. For example when
correlating instant events as "during" the interval events (ie, startX,
endX, eventX) those correlations cannot simply use "during", because there
may be no eventX yet (ie, endX has not yet occurred).
This requires patterns of the form:
instant: InstantEvent
beginX: BeginX
(or (and instant after beginX
not endX(id == beginX.id)
instant is during eventX(id == beginX.id)
Which like I said gets messy.
Again, if the @timestamp and @duration were not stored in the fact handle
and could be altered via a working-memory update then "instant is during
eventX" would work in all instances. The trade off is that it would make the
drools internals much more complex as behaviors scheduled based on
@timestamp and @duration would need to be modified according on a wm.update,
along with all race conditions that would entail.
It could also be argued that modifying an event's timestamp smells for
purity reasons. But that would depend the perspective you take. Some events
unfold over time (hence the modeling construct of using startX, endX,
eventX). So a counter argument might be that a CEP engine should have first
class support events of this nature.
--
View this message in context:
http://n3.nabble.com/Fusion-and-open-ended-intervals-tp719076p721426.html
Sent from the Drools - User mailing list archive at
Nabble.com.