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