next up previous contents
Next: The Intermediate Representation Up: System architecture Previous: System architecture   Contents

Module Requirements

Each of these modules has several requirements to respect. These requirements ensure the system is efficient and behaves satisfactorily. (Here IR stands for intermediate representation)

MathML to IR:
This module parses through MathML and generates an equivalent expression in the intermediate representation. It should ensure that the input given is not lexically or syntactically incorrect. In which case the translation process is aborted. Incorrect or unimportant attribute values should be ignored unless they compromise the translation process. Both MathML 1.0 and MathML 2.0 expressions must be accepted as valid and parsed. It should be designed so any modification in MathML can be easily adapted to.

IR to MathML:
This module generates valid MathML from the intermediate representation of an expression. The user should have the option to generate either MathML 2.0 or MathML 1.0 since most applications today are only MathML 1.0 compliant . In order to embed MathML into a web page for rendering by a plug-in, there should also be an option outputting the MathML inside HTML <embed> tags.

OpenMath to IR:
This module reads in OpenMath expressions and transforms them into the intermediate representation. It should ensure that the input given is not lexically or syntactically incorrect. In which case the translation process is aborted. Symbols must be checked to see if they have a MathML equivalent. This means checking each symbol against the CD it belongs to and then looking up in a table to see whether a mapping is possible. If there is no equivalent, this module must encode the OpenMath symbol into the intermediate representation as an unknown symbol for inclusion in MathML <semantic> tags.

IR to OpenMath:
This module generates valid OpenMath from the intermediate representation. It is important that all symbols generated appear next to the correct CD to which they belong. This is done by consulting a table containing this information.

Because it is important to specify which OpenMath CDs an application handles, Appendix A gives a comprehensive list of all the OpenMath CDs and elements which are supported by the translator.


next up previous contents
Next: The Intermediate Representation Up: System architecture Previous: System architecture   Contents
root
2000-05-01