OpenMath: an overview

OpenMath is a standard for representing mathematical data in as unambiguous a way as possible. It can be used to exchange mathematical objects between software packages or via email, or as a persistent data format in a database. It is tightly focussed on representing semantic information and is not intended to be used directly for presentation, although tools exist to facilitate this. Since 1997 its development has been partially funded by the European Union under a multimedia ESPRIT project.The original motivation for OpenMath came from the Computer Algebra community. Computer Algebra packages were getting bigger and more unwieldy, and it seemed reasonable to adopt a generic "plug and play" architecture to allow specialised programs to be used from general purpose environments. There were plenty of mechanisms for connecting software components together, but no common format for representing the underlying data objects. It quickly became clear that any standard had to be vendor-neutral and that objects encoded in OpenMath should not be too verbose. This has led to the design outlined below.In 1998, the Worldwide Web Consortium (W3C) produced its first recommendation for the Extensible Markup Language (XML) [11], intended to be a universal format for representing structured information on the worldwide web. It was swiftly followed by the first MathML recommendation [10] which is an XML application oriented mainly towards the presentation (i.e. the rendering) of mathematical expressions. Both these developments were significant for OpenMath in different ways as shall be described later in this article and elsewhere in this issue of SIGSAM.The formal definition of OpenMath is contained within The OpenMath Standard [7] and its accompanying documents, and the reader is referred there for more details.