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 <[email protected]> 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/siddhi/core/query/pattern/EveryAbsentPatternTestCase.java
>
>
> On Fri, Mar 31, 2017 at 6:28 AM, Gobinath <[email protected]> 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 <
>> [email protected]> wrote:
>>
>>> I have given some feedback on the gsoc site.
>>>
>>> Suho
>>>
>>> On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <[email protected]> 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 <
>>>> [email protected]> 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 <[email protected]>
>>>>> 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  : [email protected]
>>>>>> 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  : [email protected]
>>>> 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  : [email protected]
>> Mobile : (+1) 416-895-0721
>> Blog    : javahelps.com <http://www.javahelps.com/>
>>
>>
>
>
>
> --
> *Gobinath** Loganathan*
> Graduate Student,
> Electrical and Computer Engineering,
> Western University.
> Email  : [email protected]
> 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 | 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>*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to