Blackboard Metaphor is a pattern most often applied in the field of Artificial Intelligence, 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, used to calculate her contribution, and then her contribution is put on the blackboard.
In the Blackboard Metaphor, these specialists are usually referred to as Knowledge Sources. Each propose and evaluate hypotheses stored in some common area - often an Associative Memory such as Tuple Space.
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 Blackboard Metaphor 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 when:
* Many diverse, specialized knowledge representations are called for * When an integration framework for heterogeneous problem solving representation and expertise is needed
* When the development of an application involves numerous developers * When uncertain knowledge or limited data inhibits absolute determination of a solution; the incremental approach of the blackboard system will still allow progress to be made.
* When multilevel reasoning or flexible, dynamic control of problem-solving activities is required in an application.
Known uses:
* Breaking complex cryptographic codes
* Sensory interpretation and analysis (such as computer vision)
* Speech recognition (Erman & Lesser, 1980, HEARSAY-II system)
* Command and control systems
*
Sensory interpretation and analysis (such as computer vision)
Speech recognition (Erman and Lesser, 1980, on the HEARSAY-II system)
Command and Control Systems
Surveillance Systems
Workflow Processing
Case-based reasoning
Symbolic learning
Data Fusion
While one could think Seti At Home is an application of the Blackboard Metaphor, it's just an example of Distributed Computing and Parallel Computing on a large scale.
Actually, I disagree. While it is distributed and parallel, IMO it is an example of a Compute Server. Being distributed or parallel does not indicate any pattern, style, or architecture.
Blackboard systems are more complex than a simple Compute Server 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 Blackboard Metaphor in the Exposure Time Calculator for the Hubble Space Telescope. -- Donald Mc Lean
See also: Generative Communication
I recently read some passages on Genetic Algorithms. This concept seems analogous to Blackboard Metaphor, 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.
See original on c2.com