13.3 The Anatomy of a Knowledge Source

Knowledge sources are represented as objects, procedures, sets of rules, logic assertions, and in some cases entire programs. Knowledge sources have a condition part and an action part. When the blackboard contains some information that satisfies the condition part of some knowledge source, then the action part of the knowledge source is activated. Englemore and Morgan clearly state the responsibilities of a knowledge source in their work Blackboard Systems:

Each knowledge source is responsible for knowing the conditions under which it can contribute to a solution. Each knowledge source has preconditions that indicate the condition on the blackboard that must exist before the body of the knowledge source is activated. One can view a knowledge source as a large rule. The major difference between a rule and a knowledge source is the grain size of the knowledge each holds. The condition part of this large rule is called the knowledge source precondition, and the action part is called the knowledge source body.

Here Englemore and Morgan do not specify any of the details of the condition part or the action part of a knowledge source. They are logical constructs. The condition part could be as simple as the value of some boolean flag on the blackboard or as complex as a specific sequence of events arriving in an event queue within a certain period of time. Likewise, the action part of a knowledge source can be as simple as a single statement performing an expression assignment or as involved as a forward chain in an expert system. Again, this is a statement of how flexible the blackboard model can be. The C++ class construct and the notion of an object will be sufficient for our purposes. Each knowledge source will be an object. The action part of the knowledge source will be implemented by the object's methods . The condition part of the knowledge source will be captured as data members of the object. Once the object is in a certain state then the action parts of that object will be activated. To keep things simple we will map knowledge sources to either threads or processes. Therefore, for each thread there will only be one knowledge source and for each process there will only be one knowledge source. When using the PVM with the blackboard, a knowledge source will be equivalent to a PVM task. Figure 13-3 shows the logical layout of the anatomy of a knowledge source.

Figure 13-3. The logical layout of a knowledge source.

graphics/13fig03.gif

Each knowledge source's condition part is updated from the blackboard. Some of the knowledge source's action part updates the blackboard. Notice in Figure 13-3 there is a one-for-one correlation between process space and knowledge source or thread space and knowledge source. An important attribute of the knowledge source is its autonomy. Each knowledge source is a specialist and is largely independent from the other problem solvers. This presents one of the desired qualities for a parallel program. Ideally the tasks in a parallel program can operate concurrently without much interaction with other tasks. This is exactly the case in the blackboard model. The knowledge sources act independently and any major interaction is through the blackboard. So from the knowledge source's point of view it is acting alone and getting additional information from the blackboard and recording its findings on the blackboard. The activities of the other knowledge sources and their strategies and structures are unknown. In the blackboard model, the problem is partitioned into a number of autonomous or semi-autonomous problem solvers. This is the advantage of the blackboard model over other models. In the most flexible configuration the knowledge sources are intelligent agents . The agent will be completely self-sufficient and able to act on its own with minimum interaction with the blackboard. The intelligent agent presents the greatest opportunity for large-scale parallelism.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net