+1 for template:xxx Mind you above templates are just a once step towards a DSL as you mentioned. Although paper talk about some cases related to DSL, general DSL is quite a lot of work AFAIK.
--Srinath On Wed, Jun 4, 2014 at 11:10 AM, Sriskandarajah Suhothayan <[email protected]> wrote: > Good suggestion Srinath, > Only concern is that these templates may get confused with the function > expressions. > We may need to have a better separation on that. > > One simple option is to use template.xxx(...) > > Another possibility is using another level of domain specific abstraction > to the language & CEP > E.g > > if stock("WSO2") price increasing then send email to("[email protected]") > if list("[email protected]") get more_then 20 mail per 1 hour then ... > > Then allow implementers to map the above to siddhi + CEP input/output > adapters > We may need to come up with a extensible architecture so that we can > achieve this > > These domain specific customisations may involve some coding but since its > a one time effort > it will be still very useful for a non technical users to adopt CEP. > > Regards > Suho > > > > > On Tue, Jun 3, 2014 at 10:10 AM, Srinath Perera <[email protected]> wrote: > >> Hi Suho, All, >> >> We were chatting at DEBS about possibility of supporting "templates" in >> Siddhi, so we can build more descriptive functions into Siddhi without >> having to extend the language. e.g. have a increasing( ..) function instead >> of having to write complex query. (e.g. just like ESB templates) >> >> I have been thinking about this and have some thoughts about how to do >> this. Please comment. >> >> e.g 1. consider "Increasing" >> >> >> from e1=Speed->e2=speed[v > e1.v] insert into ... >> >> template >> ======= >> define template Increasing($S1, $val1){ >> e1=$S1->e2=$S2[v$val> e1.v]; >> return e1,e2; >> } >> >> then query will look like >> >> from increasing("Speed", "v") insert into .. >> >> e.g. 2 >> >> define template vShape($S1, $val1){ >> $S1 as e1, $S1[v$val> e1.v]+ as e2,$S1[v$val< e2[last].v]+ as e3; >> return e1,e2, e3; >> } >> >> then final query looks like >> >> from vShape("Speed", "v") insert into .. >> >> Note this is just a template, not a function. We expand the query like a >> macro. >> >> Execution is that we expand queries using macros before execution. I >> think macro can have chain of streams to make its functions readable. >> >> We have to think about different scenarios, but in general I think this >> should work. >> >> Thanks >> Srinath >> >> -- >> ============================ >> Srinath Perera, Ph.D. >> Director, Research, WSO2 Inc. >> Visiting Faculty, University of Moratuwa >> Member, Apache Software Foundation >> Research Scientist, Lanka Software Foundation >> Blog: http://srinathsview.blogspot.com/ >> Photos: http://www.flickr.com/photos/hemapani/ >> Phone: 0772360902 >> > > > > -- > > *S. Suhothayan* > Technical Lead & Team Lead of WSO2 Complex Event Processor > *WSO2 Inc. *http://wso2.com > * <http://wso2.com/>* > lean . enterprise . middleware > > > *cell: (+94) 779 756 757 <%28%2B94%29%20779%20756%20757> | 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>* > -- ============================ Srinath Perera, Ph.D. Director, Research, WSO2 Inc. Visiting Faculty, University of Moratuwa Member, Apache Software Foundation Research Scientist, Lanka Software Foundation Blog: http://srinathsview.blogspot.com/ Photos: http://www.flickr.com/photos/hemapani/ Phone: 0772360902
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
