[om-a] Announcement: Open-sourcing OpenMath libraries and phrasebooks

Manfred Riem manfred.riem at yamamoto.be
Wed Sep 12 13:12:32 CEST 2001

Announcement (see http://www.win.tue.nl/~amc/oz/om/libprop.pdf for pdf

           Open-sourcing OpenMath libraries and phrasebooks
                 		  version 0.9.1

           Arjeh M. Cohen, Manfred N. Riem, Henny A. Wilbrink,
                  RIACA, TU/e, The Netherlands

Abstract: This document describes how we make part of our work on
OpenMath (OM) widely available. First we unfold our plan to
open-source it to the OpenMath community.  Then we address the
website, the download location and the CVS-server where you can get
the latest development snapshots.  Next, we sketch the projects that
are underway and how they apply to OpenMath. Finally, we expound on
the specific public license for the software.

S.1 Introduction.

Recently we have been working on libraries and phrasebooks for OpenMath.

 OpenMath (http://www.openmath.org) is an activity (and a society) for
 representing mathematical objects with their semantics on computers,
 allowing them to be exchanged between computer programs, stored in
 databases, or published on the World Wide Web.

 A phrasebook looks after communication with an application (via ports,
 webserver technology using Apache's tomcat), called servers/services,
 and contains translators, called codecs,

 	back (from application to OM, called decoders), and
	forth (from OM to application, called encoders).

 A library is understood to be an Application Programmer's Interface (API)
 for the construction of phrasebooks.

Specifically, we have constructed the following software.

 a Java library, called ROML (for RIACA OpenMath Library)
 that enables the rapid construction
 of phrasebooks understanding an arbitrary number of CDs that need to be
 speficied in advance.

 Phrasebooks built by use of the RIACA Openmath Library for

 	* CoCoA (skeleton).
 	* COQ (especially for Strong OpenMath).
	* GAP understanding most core CDs and an experimental programming CD
        that we have under construction.
	* Mathematica (understanding the MathML CDs).
	* MuPad (skeleton).
	* R (skeleton).

Each of these phrasebooks consists of a server/service framework for
the OpenMath enabled services and codecs built by use of the RIACA
OpenMath Java Library.

S.1.1 Goal.

Our goal is to make the OpenMath Library compliant with the OpenMath
Standard (cf. http://www.openmath.org/standard), more widely
applicable and, of course, flawless. The OpenMath community is invited
to participate in these improvements.

The release schedule for the next official feature-frozen versions

        version                  release date
        1.0.0                    October 2001
        candidate 1.1            June 2002
        1.1.0                    October 2002
        1.2.0                    October 2003

S.1.2. Authors

The primary author of the OpenMath Library is Manfred Riem, who can be
reached via Manfred.Riem at yamamoto.be.  The head of RIACA is Arjeh M.
Cohen, who can be reached via A.M.Cohen at tue.nl. The person taking care
of the software and its availability is Henny Wilbrink, who can be
reached via H.A.Wilbrink at tue.nl.

Furthermore, Ernesto Reinaldo Barreiro (ereinald at win.tue.nl)
and Olga Caprotti, Hans Cuypers and Hans Sterk play a big role in the
creation process.

S.1.3. Remainder of this announcement

The following sections describe
         our web presence thus far ... 2
         the current projects ........ 3
         the RPL license  ............ 4

S.2. Website, Download and CVS

S.2.1 Website

As suits every open-source movement,
RIACA publishes its developments
on the web. The webserver at http://crystal.win.tue.nl contains a
link to all our open-source projects.

S.2.2 Download

The software developed is available either in source-code format or as an
executable. The download location for the open-source project currently
is http://crystal.win.tue.nl/download/.

S.2.3. Downloading from CVS

To use the CVS-server for anonymous access, you can use the following

cvs -d :pserver:anoncvs at crystal.win.tue.nl:/home/cvs/public login

You may want to checkout the README file at the root of the CVS-server
by means of the following command.

cvs -d :pserver:anoncvs at crystal.win.tue.nl:/home/cvs/public co README.txt

S.2.4 Uploading to CVS

The general policy is not to grant many people facilities to upload
contributions to the cvs server, but rather to referee submissions to
the source code. Submissions are to be sent to Henny Wilbrink,
H.A.Wilbrink at tue.nl.

In order to apply for commit access, you will have to email to the
CVS-server administrators and request a password (mriem at win.tue.nl or
wsdwhw at win.tue.nl). Once you have access, use the following command
to start working.

cvs -d :pserver:<username>@crystal.win.tue.nl:/home/cvs/public login

S.3 Projects

We have made the OM Java library ROML available in the directory
om on our public CVS server.  This library helps to build a
codec between OpenMath and an application.  The library is to be used
for implementing the codec of a phrasebook, and for enabling a given
application to communicate with the OpenMath world (and hence with
other applications).

It is up to the application builders to choose which Content
Dictionaries (CDs) to incorporate in the phrasebook under
construction.  For each CD the application builder wants the
phrasebook to understand, a mini-codec should be made. Examples and
documentation are abundant.  Note that for the decoding part of our
Mathematica phrasebook, the parsing of the Mathematica object is
greatly facilitated by the use of the so-called FullForm
command in Mathematica.

To implement a phrasebook, communication (with ports) needs to be
established.  The Server/Service Framework project (to be found in the
directory server on our public server) supplies the user with a
framework for writing such services, which run on a server. The code
is packaged in a small JAR-file which can be redistributed.  There are
plenty examples available (and documentation) for the application
builder to gather how this can be done.  Interesting implementations
of phrasebooks (codec and server/services) appear in the projects Gap
(directory gap) and Mathematica (directory mathematica),
whereas first explorations at a phrasebook for `Strong Openmath' and
formal reasoning exist for the Proof Assistant (directory coq).
Note that for Mathematica, we have used JavaLink, whereas for Gap this
is done by a straightforward connection to Gap.

Furthermore, skeleton implementations have been set up for
CoCoa, Maple, Mupad, and R under directories (projects) carrying the
same name in lower cases.

S.4 License

So far, two other libraries providing a standard API have appeared,

	* the OpenMath Esprit library (both a Java and C version,
	  available at http://www.nag.co.uk/projects/OpenMath), and

	* the PolyMath Java library (cf. http://pdg.cecm.sfu.ca/openmath).

We have built yet another because we felt the need for greater
flexibility and because a library of our own seemed better suited for
the variations and experiments we want to conduct in order to achieve
better interactive books (see http://www.win.tue.nl/ida).

Now that the library has become operational, we want to make it
available for general use, without losing our intellectual property
rights and without excluding the possibility of future commercial
exploitation. Hence we decided to look for a suitable
open-source license.  Having read some of the comments at

we took the Sun Public License
(http://www.netbeans.org/spl.html) as a starting point.  It is a
minor variation of the Mozilla Public License, and allows to
differentiate between libraries and other products.
A draft version of the license is at

The software described in Section 1
falls under the RIACA Public Licence. This means these are
open source projects. Individuals and Companies alike are allowed to
use the software as is, provided this fact is properly acknowledged.
It does not allow third parties to undertake support for the software
without explicit consent of the intellectual property owner

Each code file is supposed to contain a license block looking like this:

                         RIACA Public License Notice

  The contents of this file are subject to the RIACA Public License
  Version 1.0 (the "License"). You may not use this file except in
  compliance with the License. A copy of the License is available at

  The Original Code is ROML -- the RIACA OpenMath Library.
  The Initial Developer of the Original Code is Manfred N. Riem.
  Portions created by Manfred N. Riem are Copyright (C) 2001.
  All Rights Reserved.

  Contributor(s): Ernesto Reinaldo Barreiro, Olga Caprotti,
                Arjeh M. Cohen, Hans Cuypers, Hans Sterk.

S.5 Conclusion

We will strive for a great supply of tools for semantically rich
communication of mathematics on the net.  For any comments and/or help
regarding these decisions, please write to A.M.Cohen at tue.nl.

om-announce at openmath.org  -  public announcements concerning OpenMath
Post discussion to om at openmath.org
Automatic list maintenance software at majordomo at openmath.org
Mail om-announce-owner at openmath.org for assistance with any problems

More information about the Om-announce mailing list