Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does anyone know of a successful implementation of the Blackboard pattern? [closed]

Tags:

I've been interested in the Blackboard pattern for years (especially back when I was studying AI), however I still haven't been able to find a good implementation of it outside of academia, although it seems a very useful pattern for the current trends in software development, I can't think of any big framework built around the pattern.

Does anyone here know of success or failure stories related to this pattern?

Note: Other links

  • external link 1
  • external link 2

Edit: Now I'm wondering if the pattern might have use as a pattern for a mashup-able ecosystem or something like that

Edit: After investigating some more I found an interesting paper which proposes stuff like Wikipedia is a Blackboard however it depends on Humans as agents. That just led me to realize StackOverflow is pretty much a Blackboard system, with us as agents, sharing our expert knowledge about the undetermined problems set on the board... anyways its some food for thought.

like image 857
Robert Gould Avatar asked Jan 26 '09 07:01

Robert Gould


People also ask

What are the three 3 main components of Blackboard pattern?

A blackboard system consists of three components: 1) Knowledge sources (KSs); 2) Blackboard; 3) Control component. Knowledge sources are independent modules that contain the knowledge needed for problem solving.

What are the main components of Blackboard pattern?

The blackboard model defines three main components: blackboard - a structured global memory containing objects from the solution space. knowledge sources - specialized modules with their own representation. control component - selects, configures and executes modules.

What is blackboard model?

A blackboard system is an artificial intelligence approach based on the blackboard architectural model, where a common knowledge base, the "blackboard", is iteratively updated by a diverse group of specialist knowledge sources, starting with a problem specification and ending with a solution.

What is a blackboard object?

A blackboard (also known as a chalkboard) is a reusable writing surface on which text or drawings are made with sticks of calcium sulphate or calcium carbonate, known, when used for this purpose, as chalk. Blackboards were originally made of smooth, thin sheets of black or dark grey slate stone.


2 Answers

The blackboard pattern is good for collaborative applications. Other than that I tend to think it's really not a very good idea.

The blackboard has a tendency to end up as a big bag of shared state that create all sorts of interesting access patterns. Modern languages and techniques all try to encapsulate and control state management as much as possible, the blackboard is quite the opposite.

The times I have found it used in algorithms its usually a tell-tale sign of not having a proper up-front understanding of the problem to be solved. So "to be on the safe side", you make too much state available to too many actors.

I have removed this pattern from two applications and replaced it with good, solid interfaces that represented the actual functionality and data-requirements, and it was a success both times ;)

like image 85
krosenvold Avatar answered Oct 06 '22 02:10

krosenvold


My view is that a blackboard pattern would work very fine when you have a constrained set of data, which several actors can work on in parallel, and where the dataset should be refined and re-refined. It allows for actors to be written completely seperate, with a very simple interface, and all running asynchronously.

As a good candidate for this would be our system.

Our vision system has some fundamental data (images) and we have many algorithms that produce new data from these. Very often we see that one algorithm could make good use of information that other algorithms produce, but we have very poor ways of sharing these, as normal arguments through messages in a oo-system would quickly make a list to large to handle. Also we have the problem that some information we find late in the process could improve earlyer guesses, but doing this would require more pipelining of arguments.

Unfortunately would such a refactoring require more resources than we currently have :(

like image 40
daramarak Avatar answered Oct 06 '22 02:10

daramarak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!