is a modern, high-performance, open source blackboard-system framework based on the concepts that were explored and refined in the UMass Generic Blackboard system and the commercial GBB product. It is not, however, a clone or updated version of either system. Instead, the knowledge and experience gained with these frameworks has been applied in GBBopen to create a new generation of blackboard-system capabilities and make them freely available to a wide audience. GBBopen enables complex blackboard-system applications to be developed quickly and executed efficiently.
GBBopen is structured for high-performance and scalability while maintaining flexibility and adaptability to changes in representation, knowledge-source (KS) components, and control strategies. Multi-dimensional abstraction of the blackboard repository (“spaces”), blackboard objects, and proximity-based retrieval patterns is used to provide a semantically meaningful separation of repository indexing and retrieval mechanisms from KS and control code [Corkill88]. This unique separation allows storage and search strategies to change dynamically as well as to be adapted easily to a broad range of application areas. GBBopen also provides highly efficient and extensible event primitives that form the foundation for fast, yet effective, opportunistic control reasoning.
At the implementation level, GBBopen is designed as a smooth extension of Common Lisp, CLOS, and the Metaobject Protocol (MOP). This provides all the advantages of a rich, dynamic, reflective, and extensible language to blackboard-system architects and component writers. These capabilities are crucial in building complex blackboard-based applications where representations, KSs, and control mechanisms will change as an application is being developed and throughout its operational lifetime.
GBBopen has been used in substantial research and high-performance application settings, including: DARPA's COORDINATORS program; DND Canada's Innovative Naval Combat Management and Decision Support (INCOMMANDS) system; AFRL's resource-aware cognitive sensor network; and the CIFAR real-time, multi-level, battlespace situation assessment system (U.S. Army). GBBopen's predecessor, GBB, is the core of the RADARSAT-1 Mission Control System, which has been operating continuously since the synthetic aperture radar (SAR) earth-observation satellite was launched in November 1995.
As open source, GBBopen provides a number of important benefits:
- A modular, open-source reference implementation of blackboard-system infrastructure that serves as a basis for research and development activities.
- Deployment of robust and high-quality software releases that are validated through a process of widespread peer review.
- The availability of source code and the right to modify it enable unlimited improvement and enhancement of the software. It also makes it possible to port the code to new hardware and software, to adapt it to changing conditions, and to reach a detailed understanding of how GBBopen works. Source-code availability also makes it much easier to isolate and fix bugs.
- The right to redistribute improvements and extensions to the GBBopen source code encourages developments and enables them to be shared by the user community.
- The right to use the GBBopen software, when combined with redistribution rights, attracts users, volunteers, and sponsors. This encourages further support and extension of the software.
- There is no single entity on which the future of the GBBopen software depends. This is particularly important given the highly specialized nature of blackboard-system software and the lack of multiple implementations. It is always possible for another group to continue maintenance and improvement of the open-source GBBopen software.
- Open-source software enables forking—the creation of an alternative version when development is perceived as not moving in the right direction or quickly enough to meet particular needs. Although forking can be a disadvantage, it allows the concurrent exploration of different approaches by different groups in the development of complex software systems. The modular nature of GBBopen is intended to encourage the creation of alternative and additional GBBopen modules (“module forks”) for use in research and experimentation.