Dave Cooper of Genworks published an AIAA paper where he defines the minimum set of features for a Knowledge-Based Engineering (KBE) system. These features include:
Functional Coding Style: programs return values, rather than modifying things in memory or in the model.
Declarative Coding Style: there is no “begin” or “end” to a KBE model – only a description of the items to be modeled.
Runtime Value Caching and Dependency Tracking: the system computes and memorizes those things which are required – and only those things which are required (no more, no less).
Dynamic Data Types: Slot values and ob ject types do not have to be specified ahead of time. They are inferred automatically at runtime from the instantiated data. Their datatypes can also change at runtime. In fact, the entire structure and topology of a model tree can change, depending on the inputs.
Automatic Memory Management: When an object or piece of data is no longer accessible to the system, the runtime environment automatically reclaims its memory.
The paper is well worth a read as it provides some interesting historic insight into KBE systems and the deficiencies of pseudo-KBE systems such as CATIA Knowledgeware.