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 <[email protected]> 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 <[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>* > -- *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/>
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
