title: Blackboard Metaphor author: url: https://wiki.c2.com/?BlackboardMetaphor
tags: #[[Good Articles]], #read-again
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 …
When many diverse, specialized knowledge representations are needed.
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 and Lesser, 1980, on the HEARSAY-II system)
Command and Control Systems
Data Fusion 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.
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.
Last edit November 6, 2014, See github about remodeling.