Blackboard Metaphor

BlackboardMetaphor is a pattern most often applied in the field of ArtificialIntelligence, where a group of specialists collaborate on a blackboard to create the solution for some complex problem cooperatively. Initially, the problem and any of its context data are put on the blackboard. The specialists then wait, watching the blackboard for information that allows them to make a contribution. This is taken off the blackboard, use to calculate his contribution, and then his contribution is put on the blackboard.

In the BlackboardMetaphor, these specialists are usually referred to as Knowledge Sources. Each propose and evaluate hypotheses stored in some common area - often an AssociativeMemory such as TupleSpace. Since different knowledge sources deal with different hypotheses, the pattern of activity can be quite complex and unpredictable. Sources are invoked and suspended repeatedly on different parts of the problem, depending on the characteristics of the data being processed.

Because of its complex interactions, the BlackboardMetaphor often requires another entity to manage control. The control manager is responsible for evaluation/weighing of solutions, and also for removing entries that seem too far away from a solution, i.e. have a low weight. Finally, the manager decides about the overall work flow, which means it decides what experts to consult, and when a solution is sufficient (yes, we want to reach an end, and someone has to terminate the process).

This metaphor allows an extremely complex problem to be collaboratively worked on by autonomous processors, processes, and/or threads. Each Knowledge Source is a worker process or thread that is specialized to deal with a particular type of task. This provides diverse problem solving techniques that can work together.

Use this idiom ...

Known uses:

While one could think SetiAtHome is an application of the BlackboardMetaphor, it's just an example of DistributedComputing and ParallelComputing? on a large scale.

Actually, I disagree. While it is distributed and parallel, IMO it is an example of a ComputeServer. Being distributed or parallel does not indicate any pattern, style, or architecture.

Blackboard systems are more complex than a simple ComputeServer where workers are homogeneous and simply retrieve tasks and execute their embedded logic. As such, a Blackboard system does not usually perform well on simple problems.
I used a BlackboardMetaphor in the ExposureTimeCalculator for the HubbleSpaceTelescope?. -- DonaldMcLean
See also: GenerativeCommunication

I recently read some passages on Genetic Algorithms. This concept seems analogous to BlackboardMetaphor, except the experts are species and the control manager is the environmental constraints that impose natural selection. Is this accurate?

Is there a reason behind the clause taken off the blackboard? In generative computation, is there ever a reason to remove a step?

Is there an existing concept/pattern that creates a new solution branch if more than one knowledge source/specialist contend to add their hypotheses? Or is this just categorized as tweaking the blackboard manager? I'm guessing this would create a graph of all solutions.
CategoryMetaphor CategoryCollaboration CategoryPattern

View edit of November 6, 2014 or FindPage with title or text search