Welcome to the CLIPS++ site!
|Our goal is to enhance
CLIPS by rewriting it in
C++ while maintaining backward source compatibility for all
current CLIPS programs.
The mascot for CLIPS++ is the White Tiger, an endangered species that needs
Version 1.0 feature set :
A list of Objects that will form the basis for CLIPS++ is in progress
- Implement wide-character functionality for :
- CLIPS system messages.
- CLIPS data elements (i.e. RETE pattern nodes etc.). Note : CLIPS program elements will not (necessarily) be wide-character.
- Will use the RETE II engine for inferencing. (Improved performance, Backward chaining etc.)
- Multiple CLIPS Workspaces will be available.
- Will use STL where appropriate.
- Routers store data in one of two media :
- Memory-based : All data will be stored in a string(s).
- File-based : All data will be stored in a file. All file I/O operations for routers will be replaced with
- Memory mapped file option for Workspace data.
Potential future features :
- ADO Recordset-based Router. All data will be stored in an ADO recordset with an interface similiar to the current CLIPS OCX.
- Ability to access the methods and properties of COM objects through a new construct
- Develop an interface (IPatternDispatch) that will allow objects to be incorporated directly into active RETE II networks.
- OLE DB provider allowing concurrent SQL access to facts and objects.
- A new contruct called
(defDatabase ...). This construct will allow any OLE DB compliant datasource to be part of an LHS expression. LHS Syntax will be similiar to
- Incremental Bload/BSave functionality.
- Import and export Facts and Instances as XML documents using deftemplate or defclass to generate DTD/Schema.
- Option to associate a router to an XML DTD/Schema.
(printout xmldoc1 ?variable) will generate an
AddNode() type functionality. This will provide some kind of structure to router output.
- New data types Date & Variant.
- New constructs supporting the ideas of :
- enums - For example :
(defEnum CursorType (adOpenForwardOnly 0)
- constants - For example :
(defConstant MAX_PATH (Type INTEGER)
- Embedded VBScript in RHS expresions of rules.
- IDE featuring color coded syntax and interactive debugging ala MS Visual Studio.