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 effort that is hard to justify within the research/funding community.
The Openbox is a component-based architecture which serves as a container into which different representations can be loaded. A developer interested in building a system to reason with a particular kind of diagram implements the relevant diagram-specific 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 effort. 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.
Prerequisites
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.