Mathematics is the foundation of modern science, technology, and engineering. Mathematical knowledge is complex in structure, rich in presentation, and supported by a globally accepted writing system subject to local notational preferences. Mathematical communication is well-supported in conventional publishing, but communication of mathematics on the web does not make use of the inherent structure of mathematical knowledge in general and mathematical formulae in particular.
Hence we, mathematical practitioners, educators, tool developers, and MathML enthusiasts postulate the following agenda for supporting mathematics more fully on the Web and thus bringing the communication of mathematical knowledge to the new millennium.
1) Mathematical Language
Mathematical language is fundamental for scientific, technical, and educational communication. It must be supported by internet tools with the same consideration as any other human language.
2) Open Standards
In order to guarantee compatibility for data exchange, mathematical rendering and authoring tools must rely on open formats and standards. When extension or improvements are necessary, they must be conducted in a public standardization process.
3) Mathematical Formulae
Modern mathematical language relies on mathematical formulae, highly structured and condensed expressions composed of previously introduced identifiers that are presented in a conventionalized non-linear notation.
4) MathML: Mathematical Markup Language
The pertinent open standard for representing the meaning and layout of mathematical formulae is the Mathematical Markup Language (MathML) maintained by the World Wide Web Consortium (W3C). MathML3 provides
- a set of layout primitives (presentation MathML) for the encoding of the presentational aspect of mathematical formulae as a layout tree, and
- a set of meaning composition primitives and operators (content MathML) for the encoding the meaning of formulae - the operator tree.
These two sublanguages are well-integrated: presentation and meaning can be combined in one mixed expression (parallel MathML markup) for cross-fertilization and interactive presentation.
5) MathML Tool Support
MathML must be used to encode mathematical formulae on the internet.
Software applications must use content MathML to communicate partial results among each other without loss of meaning and generate parallel MathML markup for the communication with humans. For mathematical web documents (e.g. web pages, electronic mails or whitepapers) suitable MathML encodings must be provided in the source code to make them usable by the largest number of tools.
5.1) Layout Engines
Web engines providing visual rendering of documents with complex layout must also support native and fast display of MathML formulae, in a way compatible with the layout, styling or dynamic update that are available to other web content.
5.2) Mathematical Fonts
Fonts for displaying mathematical formulae must be widely available and must contain appropriate data so that Web engines can use them to produce good mathematical rendering.
Assistive technologies used to read or edit documents must be able to handle MathML in order to make mathematical formulae accessible to disabled persons based on the the layout & content structure of MathML-encoded formulae.
Mathematical tools must support the miscellaneous scripts and notations permitted by MathML and Unicode in order to take into account the cultural differences of mathematical writing. This includes supporting non-latin alphabets and bidirectional writing.
5.5) Security and Privacy
Security and Privacy are important features for internet users. MathML must be implemented in web engines and assistive technologies without losing these features. Web services for mathematical content should also guarantee these features to their users.
Authoring tools must give individuals the opportunity to write and edit the content & layout structure of MathML formulae or to convert them from other mathematical representations.