The technical work in the project can be broken down into three categories:
The OpenMath Standard was based on earlier work which pre-dated the start of the project, and designed to be as simple as possible. A few new features were introduced to support particular kinds of applications, such as an explicit binding operator to assist searching tools and support for the different kinds of type system needed by automated reasoning packages. A decision was taken to use XML as the principal underlying mechanism to bring OpenMath closer to MathML and facilitate the use of the many tools and standards emerging from W3C, such as XSL and the DOM. This has proved a wise decision although it did cause problems early on in the project since XML was not yet a standard. A significant amount of effort was devoted to the task of ``MathML alignment'', i.e. ensuring that where MathML and OpenMath overlapped in some sense, they were either equivalent or there was a well-defined mapping from one to the other. This involved work by both the Consortium and the MathML Working Group, which includes a number of OpenMath members. The bulk of the work was in the area of developing and defining content dictionaries, which lie at the heart of OpenMath since they embody the agreed semantics of symbols in the language.
The development of tools was driven on the whole by the requirements of the applications being developed both inside and outside the project. The rapid growth in the popularity of XML and its associated standards (in particular XSLT), and support for them in popular browsers, had a significant impact on this part of the workplan. All the tools developed were used in applications, although some (notably the searching tools) are still in the research phase and require further investigation.
The applications covered a number of areas including mathematical software components and electronic books and journal. An important lesson which was learned during this exercise is that it is much easier to design these kinds of applications from scratch, using OpenMath as one of several tools, than to retro-fit OpenMath support to an existing piece of software. On the other hand a modern computer algebra system such as AXIOM or GAP represents hundreds of person-years of development effort and has proved its reliability in the field over a period of time. In cases like these adding OpenMath support is worthwhile and can be done in a number of different ways, as we have demonstrated.
In the area of electronic publishing, it is clear that interactive books have very different requirements to traditional ``static'' ones, and it is far better to write specially than to try and re-use an existing text. The availability of toolkits of re-usable OpenMath plug-ins and components to facilitate interaction and display will make the author's task significantly easier. With academic journals the issues are somewhat different: economic considerations mediate against the introduction of large amounts of interactivity, and their rôle as a long-term repository of knowledge makes it important that they should not depend on software or hardware which will one day be obsolete. In this latter case the fact that OpenMath is text-based and flexible enough to exist in a variety of encodings makes it very attractive as a means to deliver features such as indexing and searchability.
In all these instances, OpenMath is only part of the solution. Frameworks for connecting and controlling mathematical components (and which use OpenMath to carry data) and for organising mathematical texts (such as OMDoc [2,3]) still need to be defined.
The technical work carried out during the project has been extremely successful. The standard has met with widespread approval and been implemented in a number of software tools and applications. The software developed during the project is continuing to be used and in some cases has already been incorporated into commercial systems. OpenMath has had a significant impact on the MathML activity, and both OpenMath and MathML are attracting a wide range of interest.