[rules-users] Writing a pattern in which each event constraint depends on the previous event

Wolfgang Laun wolfgang.laun at gmail.com
Sat Jan 29 12:32:31 EST 2011


Is there a *defined *order in which objects resulting from an "over" clause
are presented to the preceding from? Otherwise, an accumulate function
requiring a specific order is based on implementation details.
-W

On 29 January 2011 18:24, Greg Barton <greg_barton at yahoo.com> wrote:

> See the current discussion of accumulate functions.  That should satisfy
> your need.
>
> GreG
>
> On Jan 29, 2011, at 10:18, OlliSee <o.roess at seeburger.de> wrote:
>
> >
> > Hello everyone.
> >
> > Lets say we have StockTicks...
> > Is it possible to detect a monotonically decreasing StockTick stream over
> a
> > window?
> >
> > If I knew the number of events I want to check on, I'd do it this way
> >
> > $a : StockTick() over window:time(20s)
> > $b : StockTick(this after $a, price < $a.price) over window:time(20s)
> > ...
> >
> > But I don't know for how long the StockTick prices continue to decrease..
> > I imagine doing something like that
> >
> > $list : List(size > 0) from collect(StockTick() over window:time(20s))
> > forall($a : StockTick() from $list
> >        $b : StockTick(this after $a, price < $a.price from $list
> > )
> >
> > That results in a nice exception.
> > Any idea how to do this work? And more efficiently than my approach?
> >
> > Thanks
> > Oliver
> >
> >
> >
> > Exception in thread "Thread-1" java.lang.ClassCastException:
> > org.drools.common.DefaultFactHandle cannot be cast to
> > org.drools.common.EventFactHandle
> >    at
> >
> org.drools.base.evaluators.AfterEvaluatorDefinition$AfterEvaluator.evaluateCachedLeft(AfterEvaluatorDefinition.java:336)
> >    at
> >
> org.drools.rule.VariableRestriction.isAllowedCachedLeft(VariableRestriction.java:110)
> >    at
> >
> org.drools.rule.VariableConstraint.isAllowedCachedLeft(VariableConstraint.java:115)
> >    at
> >
> org.drools.common.DoubleBetaConstraints.isAllowedCachedLeft(DoubleBetaConstraints.java:166)
> >    at
> >
> org.drools.reteoo.FromNode.checkConstraintsAndPropagate(FromNode.java:274)
> >    at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:138)
> >    at
> >
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:220)
> >    at
> >
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:81)
> >    at
> >
> org.drools.reteoo.FromNode.checkConstraintsAndPropagate(FromNode.java:279)
> >    at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:138)
> >    at
> >
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:220)
> >    at
> >
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:81)
> >    at
> >
> org.drools.reteoo.AccumulateNode.evaluateResultConstraints(AccumulateNode.java:662)
> >    at
> org.drools.reteoo.AccumulateNode.assertObject(AccumulateNode.java:270)
> >    at
> >
> org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:450)
> >    at
> >
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:378)
> >    at
> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:190)
> >    at
> org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:145)
> >    at
> >
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1187)
> >    at
> >
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1089)
> >    at
> >
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:893)
> >    at
> >
> org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:238)
> >
> > --
> > View this message in context:
> http://drools-java-rules-engine.46999.n3.nabble.com/Writing-a-pattern-in-which-each-event-constraint-depends-on-the-previous-event-tp2370165p2370165.html
> > Sent from the Drools - User mailing list archive at Nabble.com.
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> 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/20110129/7eba232b/attachment.html 


More information about the rules-users mailing list