The Grasper-CL (Trademark) Graph Management System
Abstract:
Graphs are virtually ubiquitous in programming applications. Moreover, graph-structured information is especially prevalent in AI applications, and in the COMMON LISP system itself. We can enhance programs that manipulate graph-structured information by providing these programs with graphical user interfaces that draw graphs, and that allow users to interact with drawings of graph nodes and edges. Therefore, it follows that a programming tool that supports the construction of graph-based user interfaces is a desirable component of a modern COMMON LISP programming environment. Grasper-CL is a COMMON LISP system for manipulating and displaying graphs, and for building graph-based user interfaces for application programs. The system represents a significant advance over previous COMMON LISP graphers because each level of the Grasper-CL architecture - from the core graph data structures to the interactive display module - has been fully developed and articulated, and is accessible to application programmers. We call this system organization an open architecture. In our experience, several different classes of graph-based user interfaces exist. For example, one class produces static drawings of graphs, whereas another class requires extensive user interaction with graph drawings. The open architecture of Grasper-CL supports the development of all classes of interfaces, whereas previous graphers support only one or two classes of interfaces. Grasper-CL graphics operations are implemented using CLIM, the COMMON LISP Interface Manager. Section of this paper elaborates on the motivations for wanting a system that supports the development of graph-based user interfaces within the COMMON LISP programming environment. Section 3 introduces the architecture of Grasper-CL. Section 4 presents the different classes of graph-based user interfaces. Sections 5 through 8 provide more detailed descriptions of the five levels of the Grasper-CL architecture.