Broadly speaking, there have been two generations of commercial knowledge based system (KBS) shells. The first generation of KBS shells were built on top of symbolic programming languages such as Lisp. These shells exhibited a high degree of flexibility and functionality as a result, but suffered because of their lack of standardization, poor performance, and inability to communicate with other applications. The second generation of KBS shells were generally written in C to attack the latter two weaknesses of Lisp-based shells. However these C-based shells are inevitably less flexible, and exacerbate the standardization issue. Although written in a C (a standard language), each C-based shell must re-invent a range of features already provided as standard in every Common Lisp implementation, including the object-system and even elementary structures like lists.
KnowledgeWorks addresses all of these issues by providing a high performance rule-based system for LispWorks. The latter is a full and efficient Common Lisp implementation including the Common Lisp Object System (CLOS), and foreign function interfaces to languages such as C, C++, and FORTRAN. Hence KnowledgeWorks constitutes a tightly integrated multi-paradigm programming environment, allowing all the most powerful features of rule-based, object-oriented and procedural approaches to be combined without abandoning accepted standards.