December 2011

Added a new document: TULIP - A Technical Overview 

August 2010

27th: Uploaded the Tulip Engine.   This is the core tuple list processing monad, only.
         Uploaded Miss Manners proof of concept test code.
         Published the Proof of Concept

Currently, Tulip is in early development. The core engine exists and runs hand-crafted rule sets (for example, a complete implementation of classic Miss Manners).

Tulip has a novel design. It is based on a functional monad rather than dataflow node graphs (NB., it does not implement a LINQ monad). Unlike similar engines, there is no concept of a node network. The monadic approach provides better separation of concerns and a generally cleaner architecture. The Tulip Engine captures the general semantics of relational processing. The data flow is defined dynamically through the generation of functions that the monad binds in turn. In a twist on the common monadic pattern, each function directs the monad instance it returns as to which function it should bind next – hence it is a ‘self-propagating’ monad.

A lower-level relational model has been designed to support definition of dataflow, and work is currently progressing to implement code generation of monadic functions driven by this model. Once this is complete, a higher-level rule modeling approach will be implemented together with code to transform rule sets into dataflows. At that stage, we will have a complete rules engine, built on a general purpose dataflow engine that can be used for other dataflows (e.g., complex event processing).

WARNING: development will progress at its own pace which we confidently predict will be slower than we would have hoped. The initial code upload has already been three years in development, on and off, but the plan is to make a push over the next few months to get a full working rules engine for .NET out there.

Last edited Dec 13, 2011 at 5:27 PM by tuplelister, version 26


No comments yet.