Labels

Tuesday, May 14, 2013

The Blackboard Design Pattern

Having gotten together a lot of the lower level patterns, I am now turning to the Blackboard design pattern itself.  I am using the POSA1 book chapter on the Blackboard design pattern.  In addition I will be using a design pattern paper entitled, "Two complementary patterns to build multi-expert systems" by Philippe Lalanda.  This allows me to think about what goes into such a design.  The Blackboard pattern layout is in the following diagram:



Notice that in this layout, the Domain knowledge sources and Control knowledge sources are separate.  The ControlPlanNet is implemented as a StateChart design pattern as is the BlackboardControl element.  The ControlPlan itself is derived from the CommandProcessor design pattern so that command are executed separate from definition and that the commands can be "named".  In addition, the ControlPlan contains a number of ControlPlanNets, allowing the Control knowledge sources to select which one is to be the current control plan.  The Top_Control_KS affords the ability to intialize both the Blackboard and the Control plan and would of course be the first knowledge source that is executed.  Again, I am trying to allow myself the luxury of defining each of these structures from xml file definitions.