Re: notNext() and next(negation) not yielding same output in Flink CEP

2017-07-24 Thread Yassine MARZOUGUI
Hi Dawid,

Thanks a lot for the explanation, it's all clear now.

Best,
Yassine

2017-07-23 13:11 GMT+02:00 Dawid Wysakowicz :

> Hi Yassine,
>
> First of all notNext(A) is not equal to next(not A). notNext should be
> considered as a “stopCondition” which tells if an event matching the A
> condition occurs the current partial match is discarded. The next(not A) on
> the other hand accepts every event that do not match the A condition.
>
> So let’s analyze a sequence of events like “b c a1 a2 a3 d”. For the first
> version with next(not A) the output will be “c a1 a2 a3 d” which is what
> you expect, I think. In the other version with notNext(A) a partial match
> “c a1” will be discarded after “a2” as the notNext says that after the A’s
> there should be no A.
>
> I hope this helps understanding how notNext works.
>
> Regards,
> Dawid
>
> > On 22 Jul 2017, at 20:32, Yassine MARZOUGUI 
> wrote:
> >
> > Hi all,
> >
> > I would like to match the maximal consecutive sequences of events of
> type A in a stream.
> > I'm using the following :
> > Pattern.begin("start").where(event is not A)
> > .next("middle").where(event is A).oneOrMore().consecutive()
> > .next("not").where(event is not A)
> > I This give the output I want. However if I use
> notNext("not").where(event is A) instead of next("not").where(event is not
> A), the middle patterns contain only sequences of single elements of type A.
> > My understaning is that notNext() in this case is equivalent to
> next(negation), so why is the output different?
> >
> > Thank you in advance.
> >
> > Best,
> > Yassine
>
>


Re: notNext() and next(negation) not yielding same output in Flink CEP

2017-07-23 Thread Dawid Wysakowicz
Hi Yassine,

First of all notNext(A) is not equal to next(not A). notNext should be 
considered as a “stopCondition” which tells if an event matching the A 
condition occurs the current partial match is discarded. The next(not A) on the 
other hand accepts every event that do not match the A condition.

So let’s analyze a sequence of events like “b c a1 a2 a3 d”. For the first 
version with next(not A) the output will be “c a1 a2 a3 d” which is what you 
expect, I think. In the other version with notNext(A) a partial match “c a1” 
will be discarded after “a2” as the notNext says that after the A’s there 
should be no A.

I hope this helps understanding how notNext works.

Regards,
Dawid

> On 22 Jul 2017, at 20:32, Yassine MARZOUGUI  wrote:
> 
> Hi all,
> 
> I would like to match the maximal consecutive sequences of events of type A 
> in a stream.
> I'm using the following :
> Pattern.begin("start").where(event is not A)
> .next("middle").where(event is A).oneOrMore().consecutive()
> .next("not").where(event is not A)
> I This give the output I want. However if I use notNext("not").where(event is 
> A) instead of next("not").where(event is not A), the middle patterns contain 
> only sequences of single elements of type A.
> My understaning is that notNext() in this case is equivalent to 
> next(negation), so why is the output different?
> 
> Thank you in advance.
> 
> Best,
> Yassine



signature.asc
Description: Message signed with OpenPGP


notNext() and next(negation) not yielding same output in Flink CEP

2017-07-22 Thread Yassine MARZOUGUI
Hi all,

I would like to match the maximal consecutive sequences of events of type A
in a stream.
I'm using the following :

Pattern.begin("start").where(event is not A)

.next("middle").where(event is A).oneOrMore().consecutive()

.next("not").where(event is not A)

I This give the output I want. However if I use
notNext("not").where(event is A) instead of next("not").where(event is
not A), the middle patterns contain only sequences of single elements
of type A.
My understaning is that notNext() in this case is equivalent to
next(negation), so why is the output different?

Thank you in advance.

Best,
Yassine