Learning to use the Openbox: A Framework for the Implementation of Heterogeneous Reasoning

In this tutorial we will present the Openbox, a framework for constructing heterogeneous reasoning systems. Heterogeneous reasoning is reasoning involving multiple representations. A common example is using a map (diagram) together with an address (sentence) to plan a route from one point to another. This kind of reasoning may involve diagrams of multiple types, diagrams and sentences, and/or multiple instances of the same diagram type. Reasoning with sentences, or with a single diagram are special cases of the general heterogeneous setting.

Many research groups within the diagrams community develop software implementations of tools for reasoning with diagrammatic representations. Few of these applications are used outside of the research groups that develop them. We conjecture that part of the reason for this is the difficulty involved in moving software from being an experimental platform usable only by the developers, to a widely available, robust vehicle for research. Part of this difficulty is in developing the application infrastructure which is not of research interest, and requires eff ort that is hard to justify within the research/funding community.

The Openbox is a component-based architecture which serves as a container into which di fferent representations can be loaded. A developer interested in building a system to reason with a particular kind of diagram implements the relevant diagram-specifi c components and loads these into the Openbox to obtain a reasoning tool for those diagrams. Components from other developers can be added to the Openbox to create heterogeneous reasoning systems by mixing and matching the representations.

By providing the Openbox framework to the community we hope to encourage the development of more robust, distributable applications for heterogeneous reasoning, encourage sharing of implementations within the community, and reduce redundancy of implementation eff ort. This will lower the cost of entry to the development of diagrammatic and heterogeneous reasoning applications.

This tutorial is aimed at any researcher who seeks to know more about heterogeneous reasoning, and particularly at those who are considering the use of the Openbox toolkit.  Approximately half of the tutorial will be concerned with the general framework that the Openbox provides and its possible applications by the research community, and will be appropriate for a general audience.  The remainder will demonstrate the use of the framework from a programmers point-of-view and will be more appropriate for programmers, or individuals who may be supervising student programmers.  The result will be an understanding of the Openbox component life cycle and activities, and preparation for the implementation of original components.

Length: This tutorial will run for two hours


Learning Objectives

The goal of this tutorial is to provide attendees with the necessary background to begin to develop, or to supervise the development of, heterogeneous reasoning systems using the Openbox framework. The framework is an extensive toolkit which we are making available to the community to facilitate the development of such environments. Use of the Openbox frees developers from the mundane tasks associated with building applications while leaving scope for the implementation of a wide variety of representations (both diagrammatic and sentential). The framework also encourages the sharing and reuse of components between groups.

On completing the tutorial, attendees will have hands-on experience in the development of Openbox components which should prepare them for implementing their own diagrammatic systems, and interfacing with existing representation components.

Presentation Format

The tutorial will divide into two main parts. In the introductory section, we will start with a high level overview of the Openbox toolkit, a description of what it can (and cannot) be used to do, and the overall architecture of the component framework.

The bulk of the tutorial will follow, in which attendees will perform a program-along exercise modifying an existing component template, and/or developing a component from scratch.


The tutorial will be accessible to programmers and non-programmers alike. For the second part of the tutorial, attendees may like to program-along with the presenters.  Materials and instructions for doing this will be available from the Openbox website http://openbox.stanford.edu prior to the conference.

Instructor Backgrounds

The Openproof project at Stanford University has a long track record of building robust, professional level applications for logic pedagogy.

  • Dave Barker-Plummer is the lead researcher (with John Etchemendy) for the Openproof project at Stanford, and has managed the development of the Openbox toolkit since 1994. Dave presented a keynote address on the design of heterogeneous reasoning systems at Diagrams 2008, and a tutorial on the logic of diagrams at Diagrams 2010. Dave was general chair of Diagrams 2006, is a member of the Diagrams Conference Steering committee, and has served on the Program Committees for the conference since 2004.
  • Michael Murray has been a member of the Openproof project since 2007 and is the main developer of the Openbox toolkit. He also developed our soon-to-be-released heterogeneous application, Hyperproof 2.0, which utilizes the Openbox framework.
  • Emma Pease joined the Openproof project in 2009. She is the primary author and maintainer of user-level documentation for the Openbox toolkit.
  • Nik Swoboda has been affliated with the Openproof project since 1996 and is the developer of the Openbox components implementing a logic of Venn diagrams. Nik was a Program Chair of Diagrams 2006, is a member of the Diagrams Conference Steering Committee, member of past Diagrams program committees since 2004, and has presented work at several diagrams conferences.