?? 0503-0200.htm
字號:
cache_img ('image/menu_about1.gif');
cache_img ('image/menu_about0.gif');
//-->
</SCRIPT>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下為主體內(nèi)容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=38 rowSpan=2></TD>
<TD vAlign=center width="513" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=35 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="513"><!-- 正文內(nèi)容 -->
<DIV class=pt10><B>5.3.2 面向科技領(lǐng)域:最古老的XML——MathML</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>MathML可以說是最“古老的”XML語言之一,它使得數(shù)學(xué)成為得到XML恩澤的第一個領(lǐng)域。在MathML出現(xiàn)之前,由于HTML缺乏描述數(shù)學(xué)表達(dá)式的標(biāo)記,這些表達(dá)式不得不利用其它公式編輯工具先存為圖象格式再插到網(wǎng)頁中去,大大降低了傳輸速度。可以想見,制作一個以包含了眾多數(shù)學(xué)公式的論文為內(nèi)容的頁面有多么繁瑣,而瀏覽者又要花多少時間去等待眾多公式圖象的下載,這甚至已經(jīng)成為對科學(xué)交流的阻礙。MathML正是因此應(yīng)運(yùn)而生,W3C于1998年4月7日發(fā)布了MathML的1.0版本,隨后又于1999年7月7日發(fā)布了升級版1.01。現(xiàn)在MathML2.0草案也在討論之中。</P>
<P>MathML專門用于描述數(shù)學(xué)符號并且捕獲其結(jié)構(gòu)與內(nèi)容,它的目的是使數(shù)學(xué)及科學(xué)內(nèi)容可以在Web上使用和重用,并且可以在其他應(yīng)用系統(tǒng)上,如計(jì)算代數(shù)系統(tǒng)、排版打印系統(tǒng)及語音合成系統(tǒng)等,得到使用和重用。MathML從表現(xiàn)形式和語意兩個不同的角度定義了兩大類標(biāo)記,其中28個MathML標(biāo)記描述了抽象符號結(jié)構(gòu),而另外75個標(biāo)記提供了一種明確指定表達(dá)式意義的方法。這樣一來,MathML不但能夠用來為高質(zhì)量的顯示系統(tǒng)編碼數(shù)學(xué)符號的表現(xiàn),也可以用來為科學(xué)軟件或聲音合成軟件等基于語義的應(yīng)用軟件編碼其數(shù)學(xué)內(nèi)容。</P>
<P>現(xiàn)在,我們就通過一個最常見的公式來看看這兩大類標(biāo)記如何使用。</P>
<P align=center><IMG height=52
alt="TU000000-0502-0200-01.gif (1156 bytes)"
src="image/TU000000-0502-0200-01.gif" width=138></P>
<P>使用表形的標(biāo)記,這個公式是如下描述的:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><mrow><BR>
<mi>x</mi><BR> <mo>=</mo><BR>
<mfrac><BR>
<mrow><BR>
<mrow><BR>
<mo>-</mo><BR>
<mi>b</mi><BR>
</mrow><BR>
<mo>&PlusMinus;</mo><BR>
<msqrt><BR>
<mrow><BR>
<msup><BR>
<mi>b</mi><BR>
<mn>2</mn><BR>
</msup><BR>
<mo>-</mo><BR>
<mrow><BR>
<mn>4</mn><BR>
<mo>&InvisibleTimes;</mo><BR>
<mi>a</mi><BR>
<mo>&InvisibleTimes;</mo><BR>
<mi>c</mi><BR>
</mrow><BR>
</mrow><BR>
</msqrt><BR>
</mrow><BR>
<mrow><BR>
<mn>2</mn><BR>
<mo>&InvisibleTimes;</mo><BR>
<mi>a</mi><BR> </mrow><BR>
</mfrac><BR></mrow></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>其中:<mrow>表示水平的部件,起到封裝的作用,其子元素排列在一行;<mfrac>表示分式,它的第一個子元素位于分號之上,第二個子元素位于分號之下;<msup>表示乘方,它的第二個子元素位于第一個的右肩;而<msqrt>是根號,其子元素放在根號下。另外,在MathML中不能直接引用數(shù)字、變量和運(yùn)算符,分別需要用標(biāo)記對<mn>、<mi>、<mo>括起來。而&PlusMinus;和&InvisibleTimes;則是專門用來代表運(yùn)算符的實(shí)體引用。</P>
<P>如果使用表義的標(biāo)記,公式表示為:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><reln><BR> <eq/><BR>
<ci>x</ci><BR> <apply><BR>
<divide/><BR>
<apply><BR>
<fn><mo>&PlusMinus;</mo></fn><BR>
<apply><BR>
<minus/><BR>
<ci>b</ci><BR>
</apply><BR>
<apply><BR>
<root/><BR>
<apply><BR>
<minus/><BR>
<apply><BR>
<power/><BR>
<ci>b</ci><BR>
<cn>2</cn><BR>
</apply><BR>
<apply><BR>
<times/><BR>
<cn>4</cn><BR>
<ci>a</ci><BR>
<ci>c</ci><BR>
</apply><BR>
</apply><BR>
<cn>2</cn><BR>
</apply><BR>
</apply><BR>
<apply><BR>
<times/><BR>
<cn>2</cn><BR>
<ci>a</ci><BR>
</apply><BR>
</apply><BR></reln></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>表義標(biāo)記中<apply>充當(dāng)封裝的作用。各種各樣的運(yùn)算都有專門的記號來描述,例如<reln>、<times>、<divide>、<root>等等。數(shù)字和變量同樣不能直接出現(xiàn),用<cn>、<ci>來標(biāo)注。<BR><BR>這兩段MathML都是很容易看懂的,其實(shí)它們還可以結(jié)合起來使用,例如在下面這段代碼中,用semantics元素為一個表形表達(dá)式附加一個表義表達(dá)式作為“語義注釋”:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><semantics><BR>
<mrow><BR> ...<BR>
</mrow><BR><BR> <annotation-xml
encoding="MathML-Content"><BR>
<apply><BR>
...<BR> </apply><BR>
</annotation-xml><BR></semantics></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>相反,也可以用一個表形表達(dá)式為表義法作注釋:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><semantics><BR> <apply><BR>
...<BR> </apply><BR><BR> <annotation-xml
encoding="MathML-Presentation"><BR>
<mrow><BR> ...<BR>
</mrow><BR>
</annotation-xml><BR></semantics></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>最后要指出的是,所有MathML部分都用一個math標(biāo)記包起來,以便和其他內(nèi)容區(qū)分,可以插到HTML等等的網(wǎng)頁中。除了我們看到的這個例子之外,MathML還可以用于表示集合、矩陣等非常復(fù)雜的數(shù)學(xué)表達(dá)式,可謂是在數(shù)學(xué)領(lǐng)域“術(shù)業(yè)有專攻”的典范了。<BR><BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -