layout | title |
---|---|
page |
The MathML Manifesto |
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 practitiners, 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.
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.
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.
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.
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 supports provides
- a set of layout primitives (presentation MathML) for the encoding of the presentational aspect 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.
MathML must be used to encode mathematical formulas 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 it usable by the largest number of tools.
These tools are not limited to the dominant web browsers alone, they include web crawlers, screen readers, content aggregators, and browsers without support for script languages such as JavaScript. All tools need to be able to process the respective aspects of MathML, in particular:
Web engines providing visual rendering of documents with complex layout must also support native and fast display of MathML formulas, in a way compatible with the layout, styling or dynamic update that are available for other web content.
Fonts for displaying mathematical formulae must contain appropriate data to make possible for layout engines to use them for a good mathematical rendering.
Assistive technologies used to read or edit documents must be able to handle MathML in order to make mathematical formulas 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.
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 formulas or to convert them from other mathematical representations.