A method, apparatus, and program product for designing, implementing,
distributing, and deploying computer programs that consist of packaged
knowledge components written in modem object oriented programming
languages. A meta model defines a model for representing facts,
intelligence, and packaging facts and intelligence into readily usable
knowledge components implemented in off the shelf object oriented
programming languages and tools. In addition, the meta model defines
knowledge algebra to assemble and cascade knowledge components into
larger and more powerful knowledge components and knowledge oriented
software applications. A kernel is provided that links and executes
knowledge components and knowledge oriented applications. The kernel
dynamically links logical definition of knowledge components and the
knowledge application to real implementations.