The GBBopen FAQ

The following questions about GBBopen are asked frequently:

If your questions aren't answered here, feel free to ask them directly at FAQ@GBBopen.org.

Frequently Asked Questions (with answers!)

  • When will the next GBBopen version be released?

    GBBopen development continues on a daily basis, and GBBopen is being used in a number 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 we skip ahead and increment the integer part of the version number before it is required by successive point releases) will be 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 currently 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 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.

  • How much of the GBB product code is in GBBopen?

    None (see the previous question).

  • Is there a GBBopen newsgroup or discussion list?

    There are four GBBopen mailing lists: gbbopen-announce, gbbopen-list, gbbopen-developers, and gbbopen-commits:

    • The gbbopen-announce mailing list is for receiving official GBBopen announcements. Only major project and other milestone announcements will be made on this list.
    • The gbbopen-list mailing list is the place for questions, suggestions, and general discussions of GBBopen and GBBopen applications. Bugs should be reported to bugs@GBBopen.org—not to the mailing lists.
    • The gbbopen-developer list is for anyone interested in contributing to or following GBBopen development discussions.
    • The gbbopen-commits mailing list provides automated e-mail notification of SVN commits. Commits involving significant differences that produce large summary descriptions (and large e-mail messages) are not sent to this list. These major commits are usually announced in the gbbopen-announce list or in a brief, manually generated, e-mail notice sent to the gbbopen-developer mailing list.
    Subscription details can be found here.

    If you need help or advice, the GBBopen Users list is the place to ask (should the GBBopen Tutorial and archived messages from the GBBopen Users list come up short).

  • Where can I learn more about blackboard systems?

    The BBTech Corporation web site is a good starting point. The site's annotated bibliography page 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:

    1. as a volunteer performing programming, testing, documentation, and application-development activities
    2. as a sponsor
    If you would like to become involved with the Project we want to hear from you! From time to time, calls for important volunteer tasks are listed on our “Development status” page, but there are many other needed tasks that we do not post. Contact us at volunteer@GBBopen.org and let us know how you'd like to get involved.

    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 a number of 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.

  • How are the GBBopen Project and BBTech Corporation related?

    BBTech Corporation is an independent commercial entity providing training, support, consulting, and research services for blackboard and multi-agent technologies (including GBBopen). When appropriate, BBTech contributes the results of research and development activities to the GBBopen Project to be incorporated into GBBopen.

If your questions weren't answered above, please send them to FAQ@GBBopen.org.

Last updated: Septebmer 1, 2008