Skip to content

Development Road Map

mbadler edited this page Jun 13, 2018 · 18 revisions

Chronological Expressions Developmental Road-map

ChronEx is both a specification and a reference implementation

The actual specification is currently a work in progress and is on the repo readme

Reference Implementation

The reference implementation will be written in .net core c#


Releases

Current Release

0.8 Simple OR groups (Completed)

Allows for simple (non nested groups) OR group expressions,


Upcoming Releases


Past Releases

0.1 The Foundation (Completed)

This is a the basic foundational work to get the concept up and running.

Features

This release will support reading a IEnumerable of Events and will support specific named selectors and wildcard selectors. IsMatch and MatchCount methods are provided

Implementation Notes

This release is very raw and has a very primitive parser , the parser just splits by line breaks and looks at the text to create the element type. There is a very primitive AST that will serve as the basis for future releases


0.2 Regex (Completed)

Will add a selector that is defined as a regex to match event names. Also added the capability to single quote a selector

Features

The Main change in this release will be to allow the addition of an element that is a regex expression to match event names

Implementation Notes

The AST and Runner will not change much however this release will require the creation of the Lexer and Tokenizer to allow the parsing of the regex


0.3 Negations (Completed)

Adding Negations

Features

This feature will add the ability to specify that a selector is a negating selector by prepending a ! to the selector

Implementation Notes

The AST will become a real tree as the negated token will contain children. Additionally the Tokenizer and Parser are going to upgraded to deal with nested groupings. The runner will change slightly to be able to deal with nested groups

0.3.1 Matches and Query Editor (Completed)

This was a mini release that surfaced the matches method (implementation was completed in 0.3 but there was no public method for it). Additionally I added a simple query editor application to enable exploration of datasets and help explore use cases for patterns and highlight ways for the patterns to evolve

0.4 Symbol Quantifiers (Completed)

Will add regex style symbol quantifiers symbol to selectors,

Features

Selectors will be able to specify a symbol quantifier. The following symbols will be available *,+,? . Quantifiers are considered lazy

Implementation Notes

Will keep the current naive statement splitting parser. Adding Lexer and AST for the symbol quantifiers Adding a state bag to trackers so that the AST classes can remain stateless Adding a return signal to the tracker / ast interface to indicate to continue with this element or to immediately pass this event on to the next element

0.5 Non Capture Flag (Completed)

Adding a - flag to ignore the capture for events,

Features

a minus ( - ) symbol prepended to a selector will cause the events that match that to be ignored and not captured

Implementation Notes

need to add a mechanism for the tracker to tell the runner to not capture a specific event


0.7 And Groups (Completed)

Parentheses will allow you to specify a group of and statements

Features

Implementation Notes