Math Supporting tagline

Presentation

Math has its own language with special symbolics. Therefore we need tools to visually present formulas. There are many ways to achieve that.

ASCIIMathML

The easiest way is to use ASCIIMathML format, which features intuitive way to describe formulas.

x = (-b +- sqrt(b^2 – 4ac)) / (2a)

LaTeX

Another way is LaTeX math format. LaTeX is a typesetting tool, that is very popular in math community and many publications are written in it.

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

MathML

A Presentation MathML is a format based on XML. MathML expression is built up out of tokens that are combined using higher-level elements, which control their layout. It is inconvenient to write it by hand, but it advantage is that it is natively supported by modern web browsers.

Others

Other formats includes OpenOffice and MS Office formats. They are both based on XML and are somewhat compatible with MathML.

Conclusion

This problem is solved well. We have MathML standard which is easily embedded n HTML and supported by modern web browsers. Other formats like ASCIIMathML and LaTeX can be converted using javascript Mathjax library.

Meaning

Another challenge is to capture meaning or semantics of math, not just its visual layout. When we capture meaning of math, we can use tools for automatic theorem prooving or inference.

Content MathML

Content MathML utilizes <apply> element that is used to construct formula using function application. Rusult is a expression tree represented in XML which is similar o LISP's S-expressions. Strict Content MathML, provides a subset of content MathML with a uniform structure and is designed to be compatible with OpenMath.

OpenMath

OpenMath is a XML based language for specifying meaning of mathematical formulas. OpenMath knowledge is represented in Content Dictionaries which consist of lists of Symbols. Each Symbol can have following properties:

OMDoc

OMDoc (Open Mathematical Documents) is a semantic markup format for mathematical documents. It can include OpenMath and MathMl definitions. OMDoc documents represent knowledge in Theories. A Theory is a set of contextually related Statements (e.g. definitions, theorems, proofs, examples and the relations between them). Theories may import each other, thereby forming a graph. Seen as collections of symbol definitions, OMDoc theories are compatible to OpenMath content dictionaries.

OMDoc also specifies document ontology. To make creating documents easier, there is a tool QMath which enables to write documents in ascii plaintext and then transform them to OMDoc XML.

Conclusion

OMDoc is the leading specification. However, its complexity prevents widespread adoption and practical use. I personally think that most effort should be first put into collecting and consolidating math knowledge to central place. To prevent discouraging of contributors, this knowledge can be expressed only in natural language and does not have to have semantic meaning. After first stage completed, second stage would have goal to represent collected knowledge formally with semantic meaning.

Links

Math is like a programming language with all operators and single identifier names in global scope, which is against best practices and leads to unmaintainable code. link

[Badiou's Number: A Critique of Mathematics as Ontology. Ricardo L. Nirenberg and David Nirenberg.] (http://criticalinquiry.uchicago.edu/uploads/pdf/nirenbergs_badiousnumber_complete.pdf)

Existing websites

Wikipedia

Wikipedia is a great source and has huge number of articles about math subjects. In my opinion it also has some shortcomings. Most important is that math articles are usually too complex and are not suitable as a study text. Knowledge is represented as a list of articles instead of consistent theories.

Learning tools

Existing systems

Intelligent Computer Science Lecture Notes

Intelligent Computer Science Lecture Notes is a system for publishing interactive lectures. A lecture material is written is semantic LaTex format and then it is transformed to OMDoc and then to HTML for online interaction. This system is similar to my vision of learning software.