GithubHelp home page GithubHelp logo

opencep's People

Contributors

adirgigi avatar bazbazm avatar benlugasi avatar chen-ts avatar davidrazz avatar dganith avatar evaseb avatar goodfella47 avatar guyelf avatar ilya-kolchinsky avatar is130 avatar karayanni avatar kiryuo avatar lidorasulin avatar limorez avatar linorlavi avatar muhammad-dah avatar muhannadq avatar nathanbellalou avatar ofir-shechtman avatar ofriol avatar ophirz avatar orgitli avatar salehbahoty avatar shimon77 avatar talfrankel avatar tomershahr avatar tonybishara8 avatar twyair avatar yuvadius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

opencep's Issues

Count-based window support

OpenCEP should also support count-based windows in addition to the currently supported time-based windows.

Aggregations

Add support for aggregations in Kleene closure conditions.

Task parallelism

Implement the task-based parallelism approach for multi-pattern workloads where different pattern subsets are assigned to the parallel execution units.

Structural parallelism

Implement the structural parallelism mode where an evaluation graph is divided into subgraphs and each one is executed in a separate parallel unit.

Rewrite the readme

The project documentation should be reworked to improve readability and usability. The explanations should be made more concise, and the examples should be simpler and to the point.

Inter-pattern sharing

Extend the existing multi-pattern model to support sharing identical or similar subexpressions within a single pattern.

Multi-process execution

As of now, the only implemented parallelization platform is based on the threading library, hence there is no true parallelism.
An alternative platform allowing true multi-process execution has to be added.

SLA-based multi-pattern CEP

Augment the multi-pattern CEP mechanism with a way to specify and enforce priorities between the different patterns and/or constraints on the performance metrics / plan optimality.

Attribute uncertainty

Implement a mechanism for supporting uncertainty in the values of event attributes.

Return clause

Add support for 'return' clauses in the specified patterns, i.e., returning an arbitrary transformation on a pattern match rather than the match itself.

Exception in merge_according_to (Utils.py) - line 136

The following simple pattern throws the exception on line 136 in merge_according_to function (Utils.py).

pattern = Pattern(
SeqOperator(
PrimitiveEventStructure("blue", "a"),
KleeneClosureOperator(PrimitiveEventStructure("red", "b"))
),
TrueCondition(),
timedelta(minutes=5)
)

The input is the following (I am leaving out timestamps for clarity):
blue,1
blue,2
red,1
red,2
red,3

Note that the exception is not thrown if I change SeqOperator to AndOperator but I believe SeqOperator should work as it follows the example in the OpenCEP documentation (shown below):

pattern = Pattern(
SeqOperator(
PrimitiveEventStructure("GOOG", "a"),
KleeneClosureOperator(PrimitiveEventStructure("GOOG", "b"))
),
AndCondition(
SmallerThanCondition(Variable("a", lambda x: x["Peak Price"]), Variable("b", lambda x: x["Peak Price"])),
SmallerThanCondition(Variable("b", lambda x: x["Peak Price"]), Variable("c", lambda x: x["Peak Price"]))
),
timedelta(minutes=5)
)

Any suggestions or is this a bug? Thanks.

Sequence sharing does not work properly

Sharing sequences is now broken due to the way it works involving IDs. For example, the shared tree of seq(a,b) and seq(a,c,d,b) will not work correctly due to the second pattern being verified using the indices of the first one.
The correct implementation should only consider event names.

Interval-based timestamp semantics

Allow for primitive events to contain a pair of timestamps marking the start and the end of an event. Support interval-based relations in pattern definitions.

Hybrid parallelism

Implement the hybrid parallelism approach (a generalization of SIGMOD '22).

Differential on-the-fly tree replacement

When replacing an evaluation tree on-the-fly, identify the intersection between the old and the new tree plans and only replace the non-intersecting parts rather than making the entire old tree obsolete and building the new one from scratch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.