Content MathMLについて理解するための基本概念は、一連の機能と演算子を、他の要素に適用することから成っています。これを行うためにContent MathMLは、プリフィックスnatationを使用します。Prefix notationでは、演算子が最初になり、その後に演算対象が続きます。2+3は以下のように書きます。
<m:math>
<m:apply>
<m:plus/>
<m:cn>2</m:cn>
<m:cn>3</m:cn>
</m:apply>
</m:math>
上記のContent MathMLの例には3つの種類の要素があります。最初はapplyタグですこれは演算子(または関数)が演算対象に適用されようとしていることを示します。次は適用される関数もしくは演算子がきます。この例の場合、演算子plusが適用されています。最後は、演算子の後にくる演算対象です。この例の場合、演算対象は加えられる数です。要約すると、applyタグは、関数(sinや
トークン
Content MathMLには、ci、cn、csymbolの3つのトークンがあります。トークンは基本的に最も低い要素です。トークンは作用している要素の種類を意味します。cnタグは、タグの中身が数字であることを示します。ciタグは、タグの中身が識別子であることを示します。識別子とは変数や関数のことです。例えばci要素は、Presentation MathMLを含めることができます。トークン(特にciとcn)は、Content MathMLで多く使用されます。あらゆる数、変数、または関数がトークンによってマークされます。
csymbolは、ciとcnとは異なったタイプのトークンです。それは、新しいオブジェクトを作成するために使用されます。それはplainテキストかPresentation MathMLを含むことができます。Content MathMLで定義されている演算子か関数を必要とするとき、それの作成にcsymbolを使用することができます。
ciとcsymbolの両方は、識別子か新しいシンボルがどように表示されるかを決めるPresentation MathMLを使用することができます。Presentation MathMLについてより詳しく学びたいなら、Section 3
of the MathML 2.0 Specificationを見てください。例えば、添字2がある
<m:math>
<m:ci>
<m:msub>
<m:mi>x</m:mi>
<m:mn>2</m:mn>
</m:msub>
</m:ci>
</m:math>
ci要素には、要素の内容に関する詳しい情報を提供するために使用するtype属性があります。例えば、ciタグの内容が関数(type='fn')、ベクトル(type='vector')、複素数(type='complex')、そして他のいろいろなもの同様に、宣言することができます。type属性の使用は、あなたが書いている数字の意味をエンコードするのを助けてくれます。
関数と演算子
関数を変数に適用するため、関数の最初の引数を適用してください。2番目の引数は変数になるでしょう。例えば、以下のコードを使って意味をエンコードします。引数ciタグのtype属性にtype='fn'と入力してください)。
<m:math>
<m:apply>
<m:ci type='fn'>f</m:ci>
<m:ci>x</m:ci>
</m:apply>
</m:math>
また事前に定義された関数と演算子がContent MathMLにはあります。例えばサインとコサインは事前に定義されています。事前に定義されたこれらの関数と演算子は、applyタグに直接続く空のタグです。
<m:math>
<m:apply>
<m:sin/>
<m:ci>x</m:ci>
</m:apply>
</m:math>
MathML specificationのチャプター4で、事前に定義された関数の違いについてのより詳しい記述を見ることができます。
また、事前に定義された関数に加えて、多くの事前に定義された演算子があります。それらのいくつかは、plus(和)、minus(差)、times(乗)、divide(商)、power(べき乗)、root(ルート)などです。
ほとんどの演算子が、特定の数の子要素タグを持っています。例えば、power演算子は2つの子要素を持っています。最初の子要素はbaseで、2番目がexponentのvalueです。しかし、多くの子要素を含むことができる他のタグがあります。例えば、plus演算子は1つ以上の子要素を持つことができます。これはn-ary operatorと呼ばれます。
負の変数を表すことは、正の変数を表すことと少し異なる構文があります。この場合、あなたは問題の変数や数へ、plusやminus演算子を適用します。以下のコードは負の
<m:math>
<m:apply>
<m:minus/>
<m:ci>x</m:ci>
</m:apply>
</m:math>
負の変数を表すこととは対象的に、負の数を表すには以下のようなコードを使います。
<m:math><m:cn>-1</m:cn></m:math>
より複雑な式を作成するためには、これらの要素を互いに入れ子にしてください。複雑な式はこのように作成することができます。
<m:math>
<m:apply>
<m:times/>
<m:ci>a</m:ci>
<m:apply>
<m:plus/>
<m:ci>b</m:ci>
<m:ci>c</m:ci>
</m:apply>
</m:apply>
</m:math>
eq演算子は方程式を書くのに使用されます。それは他の演算子と同じように使用されます。これはapplyの最初の子要素です。それは2つ(以上)の子要素を持ちます。それらは等しい量になります(例えば右辺=左辺)。例えば、
<m:math>
<m:apply>
<m:eq/>
<m:apply>
<m:plus/>
<m:apply>
<m:times/>
<m:ci>a</m:ci>
<m:ci>b</m:ci>
</m:apply>
<m:apply>
<m:times/>
<m:ci>a</m:ci>
<m:ci>c</m:ci>
</m:apply>
</m:apply>
<m:apply>
<m:times/>
<m:ci>a</m:ci>
<m:apply>
<m:plus/>
<m:ci>b</m:ci>
<m:ci>c</m:ci>
</m:apply>
</m:apply>
</m:apply>
</m:math>



MathML Specification
Mozilla for Windows
