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. Each knowledge source updates the blackboard with a partial solution when its internal constraints match the blackboard state. In this way, the specialists work together to solve the problem.