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
