Mathematical Markup Language
よく知られた二次方程式の解の公式を例にする:
x = − b ± b 2 − 4 a c 2 a {\displaystyle x={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}}
これをTeXで記述すると以下のようになる:
MathMLで記述すると以下のようになる:
このように人間の可読性を求めるならばTeXのほうが優れている。しかし、XMLアプリケーションであるMathMLは本来コンピュータによる数式の意味認識において有利となるよう設計されたものであり、人間がMathMLを直接書いたり編集したりすることは意図していない。
コンピュータ上で数式を記述する要求はウェブが普及する前からあった。なかでもTeXは有名でかつよく使われており、数式の表記方法としてもテキストのみで表記せざるを得ないときなどに用いられる他、ウィキペディアを含むウィキ等での数式を表現する手段として今日でもよく使われている。しかし、HTML上で数式を表現する手段がなく、ウェブで数式を表現するには画像にするか、PDFなどHTML以外の形式にすることが多い。
なお、HTML 3.0では数式を表現できるようにしていた。1995年の案ではMATH要素が入れられることになっていた。これはMathematicaで有名な Wolfram Research の提案をもとにしたものである。しかしHTML3.0は後に破棄され、またほとんどのブラウザはMATH要素に対応しなかった。
内容MathMLは意味論においてまたは意味について、またはそれのレイアウトよりもむしろ表現に向いて用途を絞る。内容MathMLの中心は関数の適用を表示するところの<apply>構成要素である。適用されるその関数は<apply>のもとの最初の子の構成要素であり、そしてそれのオペランドまたはパラメーターは子の構成要素を保持する。内容MathMLはわずかな標識しか用いない。 識別子のようなものや数は、表現MathMLと比べて多量に、しかしciとcnのようなものの構成要素をもって、個別にマークアップされる。トークンの単なる他のタイプの存在よりもむしろ、times、powerなどの、数学的な意味をMathMLが認めるものである、明確な構成要素によってオペレーターは表示される。いろいろな関数とオペレーターのために100個を超えるいろいろな構成要素がある(を見よ)。