OpenMath Workshop 6
July 27-28th, 1996
One result of the OpenMath design committee's mini-meeting at RIACA (Eindhoven, The Netherlands) was a proposed syntax definition for OpenMath contexts. In response to the aforementioned specification, several Java applications are currently being developed to facilitate the creation, maintenance and archival of such contexts. This talk will detail a prototypical arena for the maintenance and registry of OpenMath contexts with the intent of stimulating discussion relevant to both OpenMath context syntax and the context registry mechanism. In the interim, such an arena aims to encourage the rapid creation of OpenMath contexts and ultimately to provide a procedure for context maintenance and archival. Finally, our plans for further refinement and development of the OpenMath registry are presented.
The OpenMath context registry aims to serve as a focal point for the collaborative creation, maintenance and archival of OpenMath contexts. In our view, this early prototype of an OpenMath context registry is intended to stimulate the rapid creation of OpenMath contexts while providing an arena for discussion relevant to the OpenMath context syntax and the context registry mechanism. In the interim, the audience for this prototypical implementation are parties interested in this endeavor. The following text details several items that may serve as the impetus for the ultimate incarnation of the OpenMath context registry.
Our proposed arena for realizing the OpenMath context registry is a World Wide Web based client/server application. By taking advantage of several Internet protocols, standards, and Java, a freely available cross-platform language, the aforementioned goals may be achieved.
In this scenario, OpenMath contexts are accessed and maintained through a Java coded OpenMath context registry server. Access to the server is accomplished via either a Java registry client applet or a stand-alone Java registry client. While the registry client applet only requires a Java enabled Web browser or applet viewer for the purpose of execution, both the registry server and stand-alone registry client require the utilization of a Java interpreter (see section 3.3).
The reason we provide two Java registry clients is that in Netscape Navigator 2.0 or higher, applets cannot read or write files. The stand-alone registry client adds the functionality of context file up-load and down-load.In what follows is an initial specification for the organization of contexts, the OpenMath context registry server and the OpenMath context registry client. We will also comment on several thoughts currently under consideration which relate to the additional functionality that the context registry should exhibit.
In order to alleviate potential network congestion, the OpenMath consortium could maintain several registries residing in different geographical locations. Initially, a mirror site would be a copy of the registry which does not support any updating operations. If necessary, we could extend the registry functionality to include several "principal" sites. Each principal site would allow both context retrieval and updating. This, however, would involve a more intimate coupling between each principal registry server.
In light of the potential danger of stale context versions, a user could utilize the registry home page to declare his/her "interest" in a particular list of contexts. The registry would keep track of updates and inform the interested parties via email.
Our prototypical "OpenMath Context Registry" home page can be reached by following:
http://www2.cs.rpi.edu/projects/OpenMath (OpenMath Registry Home Page)
This page provides additional information regarding our current implementation and enables access to our context registry via a context registry client applet. Furthermore, the context registry home page publishes an online user's guide detailing the utilization of the context registry client.
The contexts currently archived are intended to demonstrate our prototype`s functionality and context syntax. It is our hope that recent discussions with Stéphane Dalmas and Marc Gaetano, members of the SAFIR (Formal Algebraic Systems for Industry and Research) group in France, will produce a unified context design, as well as some initial OpenMath contexts.
This prototype implements a subset of the initial registry specifications detailed in section 2. At this point, the functionality offered by our prototype server and clients are summarized. By utilizing "screen shots", we provide an overview of the steps involved in context creation and registry.
The registry client consists of three areas : a control panel, an editing pad and a status window. Click here for a full screen shot of the context registry client.
Upon initialization the registry client reads several "parameters" specified within the HTML file and attempts to connect to an OpenMath registry server. In the case of unforeseen network situations, the registry server may not be available. In this scenario, a user can utilize the editing facility and attempt to connect to the registry at a later time. Figure 1 displays the client control panel. In this example, a connection to the registry has been established and the LinearAlgebra context has been selected from the list of available contexts.
Buttons located at the bottom of the control panel area refer to actions related to the context pad, while buttons that are left aligned perform context registry related operations.
Also, an external status window is spawned on applet initialization. The intent is to provide detailed information regarding the results and status of all registry client operations.
This prototype supports user level authentication. The "Authenticate" action button produces a pop-up user authentication dialog window. Internally, on authentication success, the registry client is given a unique randomly selected session identification by the registry server. Sensitive transactions are accomplished by the utilization of this id. Please note that in this prototype, authentication is not required for the context fetch and registry directory listing operations.
Figure 4 exhibits the context pad area. In this example, user "diaz" has down loaded the LinearAlgebra context from the registry. This context was retrieved by selecting the LinearAlgebra entry from the registry directory listing and clicking on the "Get Context" action button. Context key words are displayed in red while context hyper-links are displayed in blue. This prototype does not fully support the context hyper-link mechanism. In this implementation, context scrolling is achieved by taking advantage of several pre-defined hot keys. It is expected that our next prototype will provide scroll bars for this functionality
One would ultimately be able to click on the context pad to initiate a "Context Wizard" (see figure 5). The wizard provides the user with all of the possible syntactically correct context entry types at any given point. This prototype only allows the insertion and deletion of context entries and the end of a context document.
Once a context is ready for archival, a user can update the registry to reflect the local changes. This is accomplished by utilizing the "Send Context Pad" action button. This action will update the current directory of contexts automatically. If desired a manual update can be achieved at any instance via the "Refresh Context List" action button. Also, contexts may be removed from the archive by utilizing the "Delete Context" action button.
Applets loaded over the Internet can only establish network connections to the originating host. For this reason, it is required that the OpenMath registry server execute on the same compute node as the Web server.
Both the OpenMath registry server and stand-alone context registry client require the utilization of a Java interpreter for the purpose of execution. Each of the aforementioned applications have been tested using the Java interpreter provided in the JDK 1.0.2 on the following platforms: Microsoft Windows NT/95, Linux 2.0, SPARC/Solaris, x86/Solaris.
The applet form of the registry client requires a Java applet viewer. The JDK provides an applet viewer, as well as, Netscape 2.0 or higher, on most platforms. Due to several problems with the Microsoft Windows NT/95 Netscape implementation, the context registry client Java applet causes Netscape to perform an "illegal" operation. Microsoft Windows NT/95 users can take advantage of the functionality offered by the context registry client applet by utilizing either the JDK applet viewer or the Microsoft Internet explorer 3.0 Beta 1 or higher.
Our current focus revolves around obtaining a stable definition for the syntax and file format of OpenMath contexts and a concrete specification for the functionality of the OpenMath context registry. It is our hope that this prototype encourages steps in the aforementioned directions.
Plans for the next iteration of our prototype include the full implementation of the specifications detailed in section 2. Figure 6 displays a proposed interface for achieving the set forth specifications.Click here for a full screen shot of a candidate interface for the next iteration of the context registry.