Blackboard system

A blackboard system in computer science is a type of Artificial Intelligence application based on the blackboard architectural model. The following scenario provides a simple metaphor that gives some insight into how a blackboard system works:

A group of specialists are seated in a room with a large blackboard. The specialists are working as a team to brainstorm a solution to a problem, using the blackboard as the workplace for cooperatively developing the solution.

The session begins when the problem specifications are written onto the blackboard. The specialists all watch the blackboard, looking for an opportunity to apply their expertise to the developing solution. When someone writes something on the blackboard that allows another specialist to apply her expertise, she records her contribution on the blackboard, hopefully enabling other specialists to then apply their expertise. This process of adding contributions to the blackboard continues until the problem has been solved.

A blackboard system enables this flexible brainstorming style of interaction between diverse software specialists. Each of these specialists scans the changes to the blackboard, and posts an updated partial solution based on the state of the blackboard whenever its own internal conditions for doing so are met. These partial solutions cause other knowledge sources to update their portions of the solution on the blackboard until eventually an answer is found. In this fashion, the specialists work together to solve the problem.

A blackboard-system application consists of three major components:

1. The software specialist modules, which are called knowledge sources (KSs). Like the human experts at a blackboard, each knowledge source provides specific expertise needed by the application. The ability to support interaction and cooperation among diverse KSs creates enormous flexibility in designing and maintaining applications. As the pace of technology has intensified, it becomes ever more important to be able to replace software modules as they become outmoded or obsolete.

2. The blackboard, a shared repository of problems, partial solutions, suggestions, and contributed information. The blackboard can be thought of as a dynamic "library" of contributions to the current problem that have been recently "published" by other knowledge sources.

3. The control shell, which controls the flow of problem-solving activity in the system. Just as the eager human specialists need a moderator to prevent them from trampling in a mad dash to grab the chalk, KSs need a mechanism to organize their use in the most effective and coherent fashion. In a blackboard system, this is provided by the control shell.

The blackboard model was originally designed as a means to handle complex, ill-defined problems. Famous examples of early academic systems are the Hearsay II speech recognition system and Douglas Hofstadter's Copycat and Numbo projects. More recent examples of the technology include deployed real-world applications. For example, the PLAN component of the Mission Control System for RADARSAT-1, an Earth observation satellite developed by Canada to monitor environmental changes and the planet's natural resources, is a blackboard system.