このページは著作権侵害のおそれが指摘されており、事実関係の調査が依頼されています。
このページの現在または過去の版は、ウェブサイトや書籍などの著作物からの無断転載を含んでいるおそれが指摘されています。もしあなたが転載元などをご存知なら、どうぞこのページのノートまでご一報ください。著作権侵害が確認されると、このページは削除の方針により削除されます。もしこのページの加筆や二次利用をお考えでしたら、この点を十分にご認識ください。
この項目「Mathematical Markup Language」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:MathML 15:14, 2 January 2017 の版
)MathML拡張子.mml
MIMEタイプapplication/mathml+xml
開発者 ⇒World Wide Web Consortium
最新版3.0 2nd Edition
(2014-4-10)
種別マークアップ言語
派生元XML
ウェブサイト ⇒www.w3.org/Math/
Mathematical Markup Language(マスマティカル マークアップ ランゲージ 略:MathML(マスエムエル))は、XMLアプリケーションの一つで、数式を記述するためのマークアップ言語である。単体では数式の記述しかできないため、文書として利用するにはXHTMLに埋め込んでXHTML文書として扱うなどする。目次 コンピュータ上で数式を記述する要求はウェブが普及する前からあった。なかでもTeXは有名でかつよく使われており、数式の表記方法としてもテキストのみで表記せざるを得ないときなどに用いられる他、ウィキペディアを含むウィキ等での数式を表現する手段として今日でもよく使われている。しかし、HTML上で数式を表現する手段がなく、ウェブで数式を表現するには画像にするか、PDFなどHTML以外の形式にすることが多い。 なお、HTML 3.0では数式を表現できるようにしていた。1995年の案ではMATH要素が入れられることになっていた[1]。これはMathematicaで有名な Wolfram Research の提案をもとにしたものである。しかしHTML3.0は後に破棄され、またほとんどのブラウザはMATH要素に対応しなかった。HTMLに数式を載せること自体は果たせなかったものの、後のW3CのMathワーキンググループの前身といえる HTML Math Editorial Review Board が設立されるなどした。ちなみに、これは現在のMathMLとは違い、TeXの数式表記に似た表記法であった。 1999年7月にMathML規格バージョン1.01がW3CのMathワーキンググループから勧告された。そして2001年2月にバージョン2.0が勧告され、2003年10月にバージョン2.0第2版が勧告された。その後、2010年10月にバージョン3.0が勧告された。 MathMLのオリジナルのバージョンでは名前空間が決められていなかった。というのも、まだXML名前空間の仕様自体が決まっていなかったからである。こうした事情から名前空間を指定されないことが多いが、名前空間を ⇒http://www.w3.org/1998/Math/MathML と指定しないとMathMLと認識しない実装も多い。 MathMLは数式の要素のその表示をもってだけでなくその意味もまた処理する(MathMLの後者のものは「内容MathML」として知られる[訳注 1])。その内容が利用者にたいして通じるかどうかは、(方程)式の意味がその表示から離れて保たれるかどうかによる。例えば、それらにおいてMathMLが埋め込まれたウェブページは多くのブラウザーで自然なウェブページとして見ることができる、しかし視覚障害の利用者はそれらをスクリーンリーダー(例えば、Internet Explorer、(あるいは)9656+ビルトのOpera9.5のためのMathPlayerプラグイン、またはFirefoxのためのFire Vox 表現MathMLは(方程)式の(視覚的)表示に向けて用途を絞る、そしておおよそ30個の構成要素をもつ。構成要素の名前はすべてmから始まる。ひとつの表現MathMLの表示は、それらのレイアウトを制御するものである(主に細部を細かく制御するものである、おおよそ50個の標識がまたある)、上位レベルの構成要素を使って組み合わされたところのトークンから組み立てられる。 内容MathMLは意味論においてまたは意味について、またはそれのレイアウトよりもむしろ表現に向いて用途を絞る。内容MathMLの中心は関数の適用を表示するところの<apply>構成要素である。適用されるその関数は<apply>のもとの最初の子の構成要素であり、そしてそれのオペランドまたはパラメーターは子の構成要素を保持する。内容MathMLはわずかな標識しか用いない。 よく知られた二次方程式の解の公式を例にする: x = − b ± b 2 − 4 a c 2 a {\displaystyle x={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}} これをTeXで記述すると以下のようになる: x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} MathMLで記述すると以下のようになる:<math> <mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mrow> <mo>-</mo> <mi>b</mi> </mrow> <mo>±</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mn>4</mn> <mo>⁢</mo> <mi>a</mi> <mo>⁢</mo> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo>⁢</mo> <mi>a</mi> </mrow> </mfrac> </mrow></math> このように人間の可読性を求めるならばTeXのほうが優れている。しかし、XMLアプリケーションであるMathMLは本来コンピュータによる数式の意味認識において有利となるよう設計されたものであり、人間がMathMLを直接書いたり編集したりすることは意図していない[2]。 2015年現在、普及はしているとは言い難いが、MathML出力をサポートしているソフトは増えつつある。 MathMLをサポートするネイティブなエディタにはデザイン・サイエンス
1 歴史
2 表示と意味論
2.1 表現MathML
2.2 内容MathML
3 例
4 ソフトウェアでの対応状況
4.1 エディタ
4.2 ブラウザ
4.3 その他
4.4 ソフトウェア開発のサポート
5 註
5.1 訳注
6 外部リンク
歴史
表示と意味論
表現MathML
内容MathML
識別子のようなものや数は、表現MathMLと比べて多量に、しかしciとcnのようなものの構成要素をもって、個別にマークアップされる。トークンの単なる他のタイプの存在よりもむしろ、times、powerなどの、数学的な意味をMathMLが認めるものである、明確な構成要素によってオペレーターは表示される。いろいろな関数とオペレーターのために100個を超えるいろいろな構成要素がある( ⇒[1]を見よ)。
例
ソフトウェアでの対応状況
エディタ
Mathematica、MapleおよびCasio ClassPad 300(英語版)のウィンドウズ版のようなものの数学のソフトウェア製品と同様に、(OpenOffice Mathによる)Apache OpenOffice、(LibreOffice Mathによる)LibreOffice、(以前の KOfficeの)Calligra Suite、そしてMS Office 2007のような主要な製品によってもMathMLはサポートされている。
Mozilla FirefoxのアドオンのFiremath(英語版)は、WYSIWYGのMathMLエディタを提供する。
たいていのエディタは表現MathMLだけを作り出す。MathDoxの数式エディタは表現だけでなく内容MathMLもまた提供するOpenMathエディタである。MathMLの表現、内容、ならびにそれらの混ざったマークアップを編集するのにFormulator MathML WeaverはWYSIWYGスタイルを使う。
TeXmacsなどのWYSIWYGなエディタでMathML出力をすることができるものや、MathMLをネイティブに読込・保存できるソフトとしてFormulator[5]、Amayaなどがある。
他の数式表現形式からMathMLに変換するソフトもあり、例えばTeXからの変換ソフトとしてConTeXtやMathType、itex2mmlなどがある。またウェブ上で変換をするページもある。 ブラウザでのMathMLネイティブサポート(ブラウザのレンダリングエンジンによるMathMLのレンダリング)は進んでいない。対応しているのは、Gecko を採用している Mozilla Firefox などのブラウザ[6]、Safari 5.1 以降にとどまる。Google ChromeではChrome 24で対応したが、実装上の問題からChrome 25で非対応になり、それ以降実装されていない[7]。Presto を採用している、Opera 9.50[8]?12.1 においては単体でほとんどの数式の表示が可能となったが、Opera 14 よりレンダリングエンジンが WebKit そして Blink になり非対応となった。
ブラウザ