Looks like a bug to me. I would expect only 1 event.

On Sun, May 7, 2017 at 8:49 PM, Gobinath <slgobin...@gmail.com> wrote:

> Hi,
>
> Thanks for accepting my proposal. I have a question regarding the behavior
> of *and* in a pattern.
>
> // Query: e1 and e2 -> e3
>
> define stream Stream1 (symbol string, price float, volume int);
> define stream Stream2 (symbol string, price float, volume int);
>
> @info(name = 'query1')
> from e1=Stream1[price > 50.0f] and e2=Stream2['IBM' == symbol] ->
> e3=Stream2[price > 20]
> select e1.symbol as symbol1, e2.price as price2, e3.price as price3
> insert into OutputStream;
>
> // Input
> Stream1.send(new Object[]{"GOOGLE", 72.7f, 100});
> Stream2.send(new Object[]{"IBM", 4.7f, 100});
> Stream2.send(new Object[]{"WSO2", 55.6f, 100});
>
>
> // Output
> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false}
> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false}
>
> Is this the expected output?. Note that the output contains two exactly
> similar events but the pattern *e1 -> e2 and e3* outputs a single event
> [1].
>
> [1] https://github.com/wso2/siddhi/blob/master/modules/
> siddhi-core/src/test/java/org/wso2/siddhi/core/query/pattern/
> LogicalPatternTestCase.java#L98
>
>
> Thanks & Regards,
> Gobinath
>
> On Mon, Apr 17, 2017 at 7:58 AM, Gobinath <slgobin...@gmail.com> wrote:
>
>> Hi,
>>
>> Please see the PR at [1]. Please do not merge it.
>>
>>
>> Thanks & Regards,
>> Gobinath
>>
>> [1] https://github.com/wso2/siddhi/pull/313
>>
>>
>> On Mon, Apr 17, 2017 at 7:44 AM, Sriskandarajah Suhothayan <s...@wso2.com
>> > wrote:
>>
>>> Based on first look, it looks great.
>>>
>>> Can you send it as a PR so I can see the exact implementations and also
>>> give comments.
>>>
>>> Regards
>>> Suho
>>>
>>> On Mon, Apr 17, 2017 at 5:30 AM, Gobinath <slgobin...@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> A prototype is implemented and available at [1]. Currently the query
>>>> support for absent patterns and two simple pattern identifications (e1
>>>> -> not e2 and not e1 -> e2) are implemented. Please have a look at the
>>>> unit test [2] to get the idea. Class names and variable names are subject
>>>> to change (will finalize later). I am waiting for your feedback.
>>>>
>>>>
>>>> Thanks & Regards,
>>>> Gobinath
>>>>
>>>>
>>>> [1] https://github.com/lgobinath/siddhi/tree/feature-absent-
>>>> event-pattern
>>>> [2] https://github.com/lgobinath/siddhi/blob/feature-absent-
>>>> event-pattern/modules/siddhi-core/src/test/java/org/wso2/sid
>>>> dhi/core/query/pattern/EveryAbsentPatternTestCase.java
>>>>
>>>>
>>>> On Fri, Mar 31, 2017 at 6:28 AM, Gobinath <slgobin...@gmail.com> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Thanks Suho for your feedback. I have made the changes based on your
>>>>> suggestions and submitted the final proposal. Started working on a
>>>>> prototype and will update you soon with the results.
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>> Gobinath
>>>>>
>>>>> On Thu, Mar 30, 2017 at 12:28 PM, Sriskandarajah Suhothayan <
>>>>> s...@wso2.com> wrote:
>>>>>
>>>>>> I have given some feedback on the gsoc site.
>>>>>>
>>>>>> Suho
>>>>>>
>>>>>> On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <slgobin...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> Thanks. I have shared the draft of my proposal titled
>>>>>>> "Non-Occurrence of Events for Siddhi Patterns" with WSO2 through GSoC
>>>>>>> dashboard and requesting your feedback on this.
>>>>>>>
>>>>>>>
>>>>>>> Thanks & Regards,
>>>>>>> Gobinath
>>>>>>>
>>>>>>> On Wed, Mar 15, 2017 at 1:30 PM, Sriskandarajah Suhothayan <
>>>>>>> s...@wso2.com> wrote:
>>>>>>>
>>>>>>>> Thanks for the GSoC idea, I hope this will be a good way to improve
>>>>>>>> the Siddhi language and make it more powerfull.
>>>>>>>> If time permits we can also add other use-cases of patterns &
>>>>>>>> sequences and improve it further.
>>>>>>>>
>>>>>>>> Since you are still not a commuter I hope these contributions will
>>>>>>>> help you be a committer to Siddhi as well :)
>>>>>>>> I'll make this as a formal idea, do work on a proposal as well.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Suho
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Mar 15, 2017 at 6:09 PM, Gobinath <slgobin...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi team,
>>>>>>>>>
>>>>>>>>> This is Gobinath a former software engineer at WSO2 currently
>>>>>>>>> doing masters at Western University. This time I plan to do GSoC with 
>>>>>>>>> WSO2
>>>>>>>>> and this is the basic idea of what I have discussed with Suho.
>>>>>>>>> Based on Suho's suggestion, I come up with a proposal to
>>>>>>>>> implement detecting non-occurring events using Siddhi patterns. The 
>>>>>>>>> current
>>>>>>>>> Siddhi patterns allow identifying the patterns that present.
>>>>>>>>>
>>>>>>>>> See an example:
>>>>>>>>> from every e1=Stream1[price>20] -> e2=Stream2[price>e1.price]
>>>>>>>>> within 1 sec
>>>>>>>>> select e1.symbol as symbol1, e2.symbol as symbol2
>>>>>>>>> insert into OutputStream;
>>>>>>>>>
>>>>>>>>> Detecting the absence of a pattern is not natively supported by
>>>>>>>>> Siddhi patterns for the moment. In other words, identifying event_a 
>>>>>>>>> not
>>>>>>>>> followed by event_b within 2 minutes is not possible using the current
>>>>>>>>> patterns implementation (Note that a time frame is required otherwise 
>>>>>>>>> we
>>>>>>>>> have to wait for infinite time to say event_b has not arrived). The 
>>>>>>>>> current
>>>>>>>>> workaround [1] to detect non-delivered items is shown below:
>>>>>>>>>
>>>>>>>>> from arrivals_stream#window.time(2 minutes)
>>>>>>>>> select *
>>>>>>>>> insert expired events into overdue_deliveries_stream;
>>>>>>>>>
>>>>>>>>> from every arrivalEvent = arrivals_stream ->
>>>>>>>>> deliveryEvent = deliveries_stream[arrivalEvent.trackingId ==
>>>>>>>>> trackingId]
>>>>>>>>>     or overdue_delivery = 
>>>>>>>>> overdue_deliveries_stream[arrivalEvent.trackingId
>>>>>>>>> == trackingId]
>>>>>>>>> select arrivalEvent.trackingId as trackingId,
>>>>>>>>> arrivalEvent.customerName as customerName, arrivalEvent.telephoneNo as
>>>>>>>>> telephoneNo, deliveryEvent.trackingId as deliveryId
>>>>>>>>> insert into filter_stream;
>>>>>>>>>
>>>>>>>>> from filter_stream [ (deliveryId is null)]
>>>>>>>>> select trackingId, customerName, telephoneNo
>>>>>>>>> insert into alert_stream;
>>>>>>>>>
>>>>>>>>> This solution requires a time window and it is inefficient if we
>>>>>>>>> are interested only on one occurrence of such a pattern (In other 
>>>>>>>>> words
>>>>>>>>> same query without every keyword). Further, the query is more complex 
>>>>>>>>> and
>>>>>>>>> not user-friendly.
>>>>>>>>>
>>>>>>>>> If we provide patterns to detect absence of patterns, the above
>>>>>>>>> query can be rewritten as below:
>>>>>>>>>
>>>>>>>>> from every arrivalEvent = arrivals_stream ->  (not
>>>>>>>>> deliveries_stream[arrivalEvent.trackingId == trackingId] within 2
>>>>>>>>> min )
>>>>>>>>> select arrivalEvent.trackingId as trackingId,
>>>>>>>>> arrivalEvent.customerName as customerName, arrivalEvent.telephoneNo as
>>>>>>>>> telephoneNo
>>>>>>>>> insert into alert_stream;
>>>>>>>>>
>>>>>>>>> As you can see, we can use the existing language components like
>>>>>>>>> not & within. This can be achieved by extending the existing
>>>>>>>>> StreamPreStateProcessors and StreamPostStateProcessors with an 
>>>>>>>>> internal
>>>>>>>>> timer so that they can expire their internal list of events based on 
>>>>>>>>> the
>>>>>>>>> time limit. It is somewhat similar to time windows but the processor 
>>>>>>>>> can
>>>>>>>>> turn off the timer and ignore the events if it is a one time pattern
>>>>>>>>> detection.
>>>>>>>>>
>>>>>>>>> I hope it gives the basic idea and I am waiting for your
>>>>>>>>> suggestions and feedback.
>>>>>>>>>
>>>>>>>>> [1] https://docs.wso2.com/display/CEP400/Sample+0111+-+Detec
>>>>>>>>> ting+non-occurrences+with+Patterns
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks & Regards,
>>>>>>>>> Gobinath
>>>>>>>>> --
>>>>>>>>> *Gobinath** Loganathan*
>>>>>>>>> Graduate Student,
>>>>>>>>> Electrical and Computer Engineering,
>>>>>>>>> Western University.
>>>>>>>>> Email  : slgobin...@gmail.com
>>>>>>>>> Mobile : (+1) 416-895-0721
>>>>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> *S. Suhothayan*
>>>>>>>> Associate Director / Architect & Team Lead of WSO2 Complex Event
>>>>>>>> Processor
>>>>>>>> *WSO2 Inc. *http://wso2.com
>>>>>>>> * <http://wso2.com/>*
>>>>>>>> lean . enterprise . middleware
>>>>>>>>
>>>>>>>>
>>>>>>>> *cell: (+94) 779 756 757 <077%20975%206757> | blog:
>>>>>>>> http://suhothayan.blogspot.com/ 
>>>>>>>> <http://suhothayan.blogspot.com/>twitter:
>>>>>>>> http://twitter.com/suhothayan <http://twitter.com/suhothayan> | 
>>>>>>>> linked-in:
>>>>>>>> http://lk.linkedin.com/in/suhothayan 
>>>>>>>> <http://lk.linkedin.com/in/suhothayan>*
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Gobinath** Loganathan*
>>>>>>> Graduate Student,
>>>>>>> Electrical and Computer Engineering,
>>>>>>> Western University.
>>>>>>> Email  : slgobin...@gmail.com
>>>>>>> Mobile : (+1) 416-895-0721
>>>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *S. Suhothayan*
>>>>>> Associate Director / Architect
>>>>>> *WSO2 Inc. *http://wso2.com
>>>>>> * <http://wso2.com/>*
>>>>>> lean . enterprise . middleware
>>>>>>
>>>>>>
>>>>>> *cell: (+94) 779 756 757 <077%20975%206757> | blog:
>>>>>> http://suhothayan.blogspot.com/ <http://suhothayan.blogspot.com/>twitter:
>>>>>> http://twitter.com/suhothayan <http://twitter.com/suhothayan> | 
>>>>>> linked-in:
>>>>>> http://lk.linkedin.com/in/suhothayan 
>>>>>> <http://lk.linkedin.com/in/suhothayan>*
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Gobinath** Loganathan*
>>>>> Graduate Student,
>>>>> Electrical and Computer Engineering,
>>>>> Western University.
>>>>> Email  : slgobin...@gmail.com
>>>>> Mobile : (+1) 416-895-0721
>>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> *Gobinath** Loganathan*
>>>> Graduate Student,
>>>> Electrical and Computer Engineering,
>>>> Western University.
>>>> Email  : slgobin...@gmail.com
>>>> Mobile : (+1) 416-895-0721
>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> *S. Suhothayan*
>>> Associate Director / Architect
>>> *WSO2 Inc. *http://wso2.com
>>> * <http://wso2.com/>*
>>> lean . enterprise . middleware
>>>
>>>
>>> *cell: (+94) 779 756 757 <+94%2077%20975%206757> | blog:
>>> http://suhothayan.blogspot.com/ <http://suhothayan.blogspot.com/>twitter:
>>> http://twitter.com/suhothayan <http://twitter.com/suhothayan> | linked-in:
>>> http://lk.linkedin.com/in/suhothayan <http://lk.linkedin.com/in/suhothayan>*
>>>
>>
>>
>>
>> --
>> *Gobinath** Loganathan*
>> Graduate Student,
>> Electrical and Computer Engineering,
>> Western University.
>> Email  : slgobin...@gmail.com
>> Mobile : (+1) 416-895-0721
>> Blog    : javahelps.com <http://www.javahelps.com/>
>>
>>
>
>
>
> --
> *Gobinath** Loganathan*
> Graduate Student,
> Electrical and Computer Engineering,
> Western University.
> Email  : slgobin...@gmail.com
> Mobile : (+1) 416-895-0721
> Blog    : javahelps.com <http://www.javahelps.com/>
>
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 

Thanks & regards,
Nirmal

Technical Lead, WSO2 Inc.
Mobile: +94715779733
Blog: http://nirmalfdo.blogspot.com/
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to