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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.