This exposition is a tutorial on how object-oriented programming (OOP) in Lisp can be used for programming a blackboard. Since we have used Common Lisp and the Common Lisp Object System (CLOS), the exposition demonstrates how object classes and the primary, before, and after methods associated with the classes can be used for this purpose. The reader should note that the different approaches to object-oriented programming share considerable similarity and, therefore, the exposition should be helpful to even those who may not wish to use CLOS. We have used the radar tracking problem as a 'medium' for explaining the concepts underlying blackboard programming. The blackboard database is constructed solely of classes which act as data structures as well as method-bearing objects. Class instances fonn the nodes and the levels of the blackboard. The methods associated with these classes constitute a distributed monitor and support the knowledge sources in modifying the blackboard data. A rule-based planner is used to construct knowledge source activation records from the goals residing in the blackboard. These activation records are enqueued in a cyclic queueing system. A scheduler cycles through the queues and selects knowledge sources to fire.

Date of this Version

July 1993