Yes exactly. This is a feature which we still have to add.

On Tue, Apr 5, 2016 at 1:07 PM, Anwar Rizal <anriza...@gmail.com> wrote:

> Thanks Till.
>
> The only way I can change the behavior would be to post filter the result
> then.
>
> Anwar.
>
> On Tue, Apr 5, 2016 at 11:41 AM, Till Rohrmann <trohrm...@apache.org>
> wrote:
>
>> Hi Anwar,
>>
>> yes, once we have published the introductory blog post about the CEP
>> library, we will also publish a more in-depth description of the approach
>> we have implemented. To spoil it a little bit: We have mainly followed the
>> paper “Efficient Pattern Matching over Event Streams” for the
>> implementation.
>>
>> Concerning your questions:
>>
>> 1.) followedBy means that there can be an arbitrary sequence of events
>> between two matching events, as long as they occur in the specified time
>> interval. Thus, TemperatureEvent(40) will match together with
>> TemperaturEvent(50), TemperaturEvent(70), TemperaturEvent(65) and
>> TemperaturEvent(60).
>>
>> 2.) The same applies here for the next operator. It says that the second
>> matching event has to follow directly after the previous matched event.
>> However, a matching event can be part of multiple matching sequences. Thus,
>> you will get TemperaturEvent(70), TemperaturEvent(65) and
>> TemperaturEvent(65), TemperaturEvent(60) as two distinct matching sequences.
>>
>> To make a long story short, there is currently no option to change the
>> sequence semantics so that events are only part of one matching sequence.
>> At the moment, events can participate in multiple matching sequences. I
>> hope that answers your question Anwar.
>>
>> Cheers,
>> Till
>> ​
>>
>> On Mon, Apr 4, 2016 at 11:18 AM, Anwar Rizal <anriza...@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>>
>>> I saw Till's blog preparation. It will be a very helpful blog. I hope
>>> that some other blogs that explain how it works will come soon :-)
>>>
>>> I have a question on followedBy pattern matching semantic.
>>>
>>>
>>> From the documentation
>>> https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/libs/cep.html
>>> ,
>>>
>>> <citaton>
>>>
>>> Non-strict contiguity means that other events are allowed to occur
>>> in-between two matching events. A non-strict contiguity pattern state can
>>> be created via the followedBy method.
>>>
>>> Pattern<Event, ?> nonStrictNext = start.followedBy("middle");
>>>
>>>
>>> </citation>
>>>
>>> I try to use Till's examples in the blog, to understand the semantic of
>>> followedBy
>>>
>>> --
>>> First question.
>>> Say, I have sequence of temperatures in a time window that corresponds
>>> to the within clause (say in 20 minutes).
>>>
>>> TemperatureEvent(40) , OtherEvent(...), TemperatureEvent(30),
>>> TemperatureEvent(50), OtherEvent(...), TemperatureEvent(70),
>>> TemperatureEvent(65), TemperatureEvent(60)
>>>
>>> say I want to match two TemperatureEvents whose temperatures > 35.
>>>
>>> What will be the matches in this case ?
>>>
>>>
>>>    -  Will TemperatureEvent(40) , TemperatureEvent(50), match ?
>>>    (because we have TemperatureEvent(30) at time 3 that does not match.
>>>    - Will TemperatureEvent(40) , TemperatureEvent(70) match ? (because
>>>    the pair matches also the specification of pattern , the difference is we
>>>    have TemperatureEvent(50) which happened before TempertureEvent(70) ).
>>>    Similar question for TemperatureEvent(40) - TemperatureEvent(65) and
>>>    TemperatureEvent(50)-TemperatureEvent(65) etc. pairs.
>>>
>>>
>>>
>>> --
>>> Second question.
>>> For next (and also for followedBy) , I have also questions regarding
>>> example above:
>>> Will TemperatureEvent(70), TemperatureEvent(65) and
>>> TemperatureEvent(65), TemperatureEvent(60) be returned , or the second pair
>>> is no longer returned because TemperatureEvent(65) has been used in the
>>> first pair ?
>>>
>>>
>>>
>>> Is there a way to define the different sequence semantics  for the two
>>> questions I asked above ?
>>>
>>>
>>> Thanks,
>>> Anwar.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>

Reply via email to