Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Blackboard Pattern


Published on

Published in: Technology

Blackboard Pattern

  1. 1. Blackboard Architectural Pattern Andy Bulka Melbourne Patterns Group - 2004
  2. 2. Intent <ul><li>is useful for problems for which no deterministic solution strategies are known. </li></ul><ul><li>In Blackboard several specialised sub-systems assemble their knowledge to build a possibly partial or approximate solution. </li></ul>
  3. 3. Context <ul><li>An immature domain in which no closed approach to a solution is known or feasible. </li></ul>
  4. 4. E.g. <ul><ul><ul><li>A problem that, when decomposed into subproblems, spans several fields of expertise. </li></ul></ul></ul><ul><ul><ul><li>The solutions to the partial problems require different representations and paradigms. </li></ul></ul></ul><ul><ul><ul><li>In many cases no predetermined strategy exists for how the `partial problem solvers' should combine their knowledge. </li></ul></ul></ul><ul><ul><ul><li>Each transformation step can also generate several alternative solutions. In such cases it is often enough to find an optimal solution for most cases, and a suboptimal solution, or no solution, for the rest. </li></ul></ul></ul>
  5. 5. Example - speech recognition <ul><li>For example, one procedure divides the waveform into segments that are meaningful in the context of speech, such as phones 6 . At the other end of the processing sequence, another procedure checks the syntax of candidate phrases. Both procedures work in different domains. </li></ul>
  6. 6. Example <ul><li>The transformations involved require acoustic-phonetic, linguistic, and statistical expertise. </li></ul><ul><li>there is no consistent algorithm that combines all the necessary procedures for recognising speech </li></ul><ul><li>To make matters worse, the problem is characterized by the ambiguities of spoken language, noisy data, and the individual peculiarities of speakers such as vocabulary, pronunciation, and syntax. </li></ul>
  7. 7. Solution <ul><li>Collection of independent programs working cooperatively on a common data structure </li></ul><ul><li>Each program is specialized for solving a particular part of the overall task </li></ul><ul><li>Specialised programs work independently of one another </li></ul>
  8. 8. Solution <ul><li>A central control component evaluates the current state of progress and coordinates the specialised programs </li></ul><ul><li>Programs communicate via a Blackboard data structure to share results </li></ul>
  9. 9. Structure
  10. 10. UML
  11. 11. Complex theorising...
  12. 12. Live Exampe <ul><li>Java examples incl. Business rules </li></ul><ul><li>Java AI examples </li></ul><ul><li>Jython simple example </li></ul>