Mathematica as an OpenMath application
Authors: Prieto Hélène , Dalmas Stéphane , Papegay Yves 
Published: January 2007

Several computer algebra teams around the world have been working on OpenMath since 1994, but in spite of more than six years of work (including a dedicated three years European project), there are not yet any widely available OpenMath applications. There is obviously some sort of boot-strapping problem: people developing mathematical software are not really ready to invest in the OpenMath technology by making their applications OpenMath compliant because there are no interesting OpenMath programs which their own applications can talk to.Our computer algebra team at INRIA (formerly SAFIR and now CAFE) has been involved with the international OpenMath effort since the very first OpenMath meeting. We have produced several prototypes at various stages. With the help of people from Waterloo Maple we have demonstrated a development version of Maple linked with our OpenMath C library in December 1996. This prototype was able to exchange data (including multivariate polynomials in a special representation) with a Reduce OpenMath server (thanks to people at ZIB) and a small Aldor ([11]) program (linked with an Aldor OpenMath library). We have produced a quite complete OpenMath version of Reduce at the end of 1997 (during a sabbatical leave at ZIB). We have used OpenMath in various projects: an algorithm animation system for Aldor programs ([3]), a deductive database for mathematical formulas ([5]), a software component to display and edit formulas ([2]) and as the output format of a system for optical formula recognition. Despite all these efforts and the efforts of the other teams involved in OpenMath which has shown the interest of this technology the future of OpenMath is still not clear. Many people in the mathematical software community remain to be convinced.The advent of MathML ([9]) has complicated the situation, since to some people it seems like an alternative to OpenMath. In practice those defining them see the two standards as complementary rather than competing, but the rationale for this is not always obvious to those outside these communities. With an ever growing number of MathML applications (the latest versions of Mathematica and Reduce are already MathML capable), it is desirable to have applications which demonstrate the advantages of OpenMath. A natural choice for such an application is a major computer algebra system. This would provide a very convenient environment to test OpenMath applications for any mathematical software implementer.Currently the only major system that has a reliable and well tested technology that can be used to make it an OpenMath application without access to the system internals is Mathematica (thanks to the MathLink library, [13]). That is why we choose to build MOMOS, an OpenMath-Mathematica translator. We also considered MuPAD and Maple as possible candidates. MuPAD is a very interesting system. Its ability to dynamically link external libraries would have allowed us to use our C library ([7]) to read and write OpenMath objects, but there are far fewer MuPAD users than Maple or Mathematica users. The last version of Maple also has the same sort of capability but when started to write MOMOS the current Maple version we had access to did not.