Integrating multiple and diverse abstract knowledge types in real-time embedded systems

Abstract Designers of large-scale real-time systems are increasingly turning to knowledge-based techniques in order to solve complex problems. This paper identifies three essential needs to support the implementation of these systems: first, the need to provide a variety of knowledge-based components that can be used to model the diverse expert domains being encountered; second, the need to provide the user with the means of creating multiple independent instances of the knowledge-based components; and third, the need to provide an integrating environment in which the knowledge-based instances may be controlled. This paper uses ideas derived from the concept of abstract data types and recommends the construction of a library of diverse knowledge-based components, called abstract knowledge types, and that multiple instances of the abstract knowledge types be integrated and controlled using a blackboard architecture. A prototype component library and a blackboard have been implemented in Ada in order to take advantage of a real-time language which supports software engineering principles through a well defined and enforced standard. The use of abstract knowledge types gives a uniform software engineered approach to the development and integration of both conventional and knowledge-based components.