Frequently Asked Questions
Below are answers to the following frequently asked questions about GBBopen:
- When will the next GBBopen version be released?
- What language is GBBopen written in? On what systems will it run?
- How do I install GBBopen? How do I get started using it?
- Can I make use of GBBopen if I'm not building a blackboard application?
- Is there something like GBBopen that is written in C, C++, or Java?
- Is GBBopen an open-source release of the GBB product?
- How much of the GBB product code is in GBBopen?
- Where can I learn more about blackboard systems?
- Aren't blackboard systems outdated?
- How can I contribute to the GBBopen effort?
- How are the GBBopen Project and UMass related?
Frequently Asked Questions (with answers!)
- When will the next
GBBopen version be released?
GBBopen development continues on a regular basis, and GBBopen is being used in a variety of applications. Lists of recently completed, underway, and pending implementation activities are maintained on our “Development status” page.
A note about GBBopen version numbers
Improvements and additions to GBBopen become available through “micro” releases provided by source-code commits to the repository. New features and capabilities are listed in the “Changes since...” section of the
CHANGES
file and the GBBopen Reference Manual is updated to reflect them. In addition, an updated repository-snapshot archive is usually created (although occasionally a related set of commits are made in a batch before a new snapshot archive is generated). We use micro releases to make improvements available as quickly as possible to GBBopen users.Changes that involve name changes, incompatibilities with the current GBBopen version, or significant changes to GBBopen's internal representations or techniques are made in a “point release,” in which the current GBBopen version number is incremented. A point release is accompanied by an announcement, alerting all to its release and important changes. Whenever possible, backward compatibility of name changes (and possibility functionality) is supported until the next point release. If enough micro releases have been produced since the last point release, a new point release may be generated—even if no incompatibilities or major changes are involved.
Major releases (where the integer part of the version number is incremented before it is required by successive point releases) is used to indicate the availability of significant new GBBopen components or capabilities.
- What language is GBBopen
written in? On what systems will it run?
GBBopen is written in Common Lisp and utilizes capabilities provided by the Common Lisp Object System Metaobject Protocol (MOP). GBBopen is actively supported on the following open-source and commercial Common Lisp implementations:
A wide range of popular hardware and operating systems are covered by these Common Lisp implementations. - How do I install GBBopen? How
do I get started using it?
The GBBopen Tutorial will guide you through installation and some initial exercises using GBBopen. The “Starting GBBopen” exercise in the Tutorial describes installation of Common Lisp and GBBopen.
- Can I make use of GBBopen if I'm
not building a blackboard application?
Certainly! There are many applications that make use of GBBopen's blackboard objects (unit instances) and proximity-based retrieval capabilities, link (bidirectional pointer) operations, and event functions—but without using a control shell. By traditional definition, these applications are not “blackboard applications,” but they still use GBBopen's
:gbbopen-core
facilities to significant advantage.Several GBBopen modules have also become widely used:
- Is there a version of GBBopen (or
another blackboard-system framework) available that is written in C, C++, or
Java?
Work was done at Stanford University in the 1990s on a blackboard-system kernel library in C++ called BBK. There are a number of technical reasons why languages that cannot be extended seamlessly (such as C, C++, and Java) are ill-suited to hosting a blackboard-system implementation framework. Although the GBB product had been written in Common Lisp, the strong popularity of Java at the time that the GBBopen Project began weighed heavily on our implementation-language decision. We spent several months exploring techniques that could be used to provide a GBB-like system in Java before launching the GBBopen effort in Common Lisp. Since KSs can be written in any language (including C, C++, and Java), developers can (and sometimes do) use GBBopen/Common Lisp solely as a specification, trigger, and query language for composing blackboard applications from KSs written in other languages.
One of the advantages of open source is that anyone is free to take the GBBopen design and code base and use it as a guide for implementing a blackboard framework in another language. Anyone considering such a route will quickly discover the implementation complexities and usability considerations imposed by their choice of host language.
- Is GBBopen an open-source release
of the GBB product?
No, GBBopen is not “open GBB.” GBBopen is a completely new design and open-source implementation that builds on the experience gained with the UMass Generic Blackboard system and with the GBB product (see list of differences). In most cases, however, only minor effort will be required to migrate a GBB application to GBBopen.
- Where can I learn more about
blackboard systems?
The annotated bibliography presents a nice overview of the literature.
- Aren't blackboard systems
outdated by newer approaches, such as middleware technologies or multi-agent
systems?
The first blackboard-based applications were developed in the mid-1970s in conjunction with several ambitious and difficult AI applications. These applications demonstrated that blackboard systems provide an effective divide-and-conquer approach to the development and maintenance of large and complex software systems. The advantages of using a blackboard-based approach have not been diminished by more “modern” technologies, and blackboard systems are an important area in the space of collaborating-entity approaches (see the ILC'03 paper on this topic).
- How can I contribute to
the GBBopen effort?
There are two avenues:
- as a volunteer performing programming, testing, documentation, and application-development activities
- as a sponsor
Sponsors provide equipment, software, and funding for the overall GBBopen Project or for specific development activities. To find out more about becoming a GBBopen Project sponsor, contact us at sponsor@GBBopen.org.
- How are the GBBopen Project and
the University of Massachusetts Amherst related?
GBBopen's linage is rooted in the Generic Blackboard System research that was performed at UMass in the 1980s. That research was directed by Professor Daniel Corkill, and he now heads the GBBopen Project (a volunteer position). Dan works full-time at his “regular” job as a Senior Research Scientist in the Department of Computer Science at UMass, and he is the Associate Director of the Department's Multi-Agent Systems Laboratory. GBBopen is used in some research efforts at UMass, but beyond that (and Dr. Corkill's volunteer efforts on behalf of the Project) the Project and UMass Amherst are fully independent.