Mathematical Markup Language
Mathematical Markup Language(マスマティカル マークアップ ランゲージ 略:MathML(マスエムエル))は、XMLアプリケーションの一つで、数式を記述するためのマークアップ言語である。単体では数式の記述しかできないため、文書として利用するにはXHTMLに埋め込んでXHTML文書として扱うなどする。 歴史コンピュータ上で数式を記述する要求はウェブが普及する前からあった。なかでもTeXは有名でかつよく使われており、数式の表記方法としてもテキストのみで表記せざるを得ないときなどに用いられる他、ウィキペディアを含むウィキ等での数式を表現する手段として今日でもよく使われている。しかし、HTML上で数式を表現する手段がなく、ウェブで数式を表現するには画像にするか、PDFなどHTML以外の形式にすることが多い。 なお、HTML 3.0では数式を表現できるようにしていた。1995年の案ではMATH要素が入れられることになっていた[2]。これは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を読むこともできる。 表現MathML表現MathMLは(方程)式の(視覚的)表示に向けて用途を絞る、そしておおよそ30
個の構成要素をもつ。構成要素の名前はすべて 内容MathML内容MathMLは意味論においてまたは意味について、またはそれのレイアウトよりもむしろ表現に向いて用途を絞る。内容MathMLの中心は関数の適用を表示するところの 例よく知られた二次方程式の解の公式を例にする: これを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を直接書いたり編集したりすることは意図していない[3]。 ソフトウェアでの対応状況2015年現在、普及はしているとは言い難いが、MathML出力をサポートしているソフトは増えつつある。 エディタMathMLをサポートするネイティブなエディタにはデザイン・サイエンスからのMathFlowとMathType、ウルフラム・リサーチからのMathMagic、Publicon、そしてWIRISがある。[4] W3CにMathMLのエディタのリストがある。[5] TeXmacsなどのWYSIWYGなエディタでMathML出力をすることができるものや、MathMLをネイティブに読込・保存できるソフトとしてFormulator[6]、Amayaなどがある。 他の数式表現形式からMathMLに変換するソフトもあり、例えばTeXからの変換ソフトとしてConTeXtやMathType、itex2mmlなどがある。またウェブ上で変換をするページもある。 ブラウザブラウザでのMathMLネイティブサポート(ブラウザのレンダリングエンジンによるMathMLのレンダリング)は進んでいない。対応しているのは、Gecko を採用している Mozilla Firefox などのブラウザ[7]、Safari 5.1 以降にとどまる。Google ChromeではChrome 24で対応したが、実装上の問題からChrome 25で非対応になり[8]、Chrome 109から再び対応した[9]。Microsoft Edgeでも同様に対応した。Presto を採用している、Opera 9.50[10]〜12.1 においては単体でほとんどの数式の表示が可能となったが、Opera 14 よりレンダリングエンジンが WebKit そして Blink になり非対応となった。 Internet Explorer は対応していない。ただしJavaScriptライブラリのMathJax[11]や、Internet Explorer 用のプラグインMathPlayerなどを使うと、MathML非対応ブラウザでも表示することができる。 ブラウザでのMathMLのレンダリングの品質はインストールされているフォントに依存する。STIXフォント事業はオープンライセンスの数学フォントをリリースしている。Microsoft Windows付属のCambria Mathフォントもサポートしている。 その他アンテナハウスのAH FormatterはXMLまたはHTML中に埋め込まれたMathMLを可視化して印刷したり、PDFやSVGなどに出力できる[12]。 JAWSは2015年に発売されたVersion 16.0よりMathMLに対応している[13]。 ソフトウェア開発のサポートコンピューター・エイデッド・エデュケーション(遠隔教育、電子教科書、そして他の教材);魅力的なレポートの自動作成;数式処理システム;著作、教育、出版ツール(ウェブとデスクトップ・オリエンテッドの両方)、そして数学、科学、ビジネス、経済、その他の多くの他のアプリケーションのような多様なものにおいてMathMLフォーマットのサポートはソフトウェア・アプリケーションの開発を加速する。ソフトウェア開発者らにたいして彼らのアプリケーションにおいて機能的で数学的なレンダリング/編集/処理を組み入れるように簡易な方法の提供を行って、幾つかのソフトウェア・ベンダーらは彼らのMathMLエディタのコンポーネント・エディションを提案する。例えば、Hermitech LaboratoryからのFormulator ActiveX ControlはMathMLのエディタと同じようになるようにアプリケーションへ合併するようできる、Design Scienceはインタラクティブな数式を含むものであるウェブ・ページを組み立てるためのツールキットを提供する(MathFlow DEvelopers Suite[14])。 脚注
訳注
外部リンク
|
Portal di Ensiklopedia Dunia