📄 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=""><!-- 以下为主体内容 -->
<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"><!-- 正文内容 -->
<DIV class=pt10><B>5.3.2 面向科技领域:最古老的XML——MathML</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>MathML可以说是最“古老的”XML语言之一,它使得数学成为得到XML恩泽的第一个领域。在MathML出现之前,由于HTML缺乏描述数学表达式的标记,这些表达式不得不利用其它公式编辑工具先存为图象格式再插到网页中去,大大降低了传输速度。可以想见,制作一个以包含了众多数学公式的论文为内容的页面有多么繁琐,而浏览者又要花多少时间去等待众多公式图象的下载,这甚至已经成为对科学交流的阻碍。MathML正是因此应运而生,W3C于1998年4月7日发布了MathML的1.0版本,随后又于1999年7月7日发布了升级版1.01。现在MathML2.0草案也在讨论之中。</P>
<P>MathML专门用于描述数学符号并且捕获其结构与内容,它的目的是使数学及科学内容可以在Web上使用和重用,并且可以在其他应用系统上,如计算代数系统、排版打印系统及语音合成系统等,得到使用和重用。MathML从表现形式和语意两个不同的角度定义了两大类标记,其中28个MathML标记描述了抽象符号结构,而另外75个标记提供了一种明确指定表达式意义的方法。这样一来,MathML不但能够用来为高质量的显示系统编码数学符号的表现,也可以用来为科学软件或声音合成软件等基于语义的应用软件编码其数学内容。</P>
<P>现在,我们就通过一个最常见的公式来看看这两大类标记如何使用。</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>使用表形的标记,这个公式是如下描述的:</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中不能直接引用数字、变量和运算符,分别需要用标记对<mn>、<mi>、<mo>括起来。而&PlusMinus;和&InvisibleTimes;则是专门用来代表运算符的实体引用。</P>
<P>如果使用表义的标记,公式表示为:</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>表义标记中<apply>充当封装的作用。各种各样的运算都有专门的记号来描述,例如<reln>、<times>、<divide>、<root>等等。数字和变量同样不能直接出现,用<cn>、<ci>来标注。<BR><BR>这两段MathML都是很容易看懂的,其实它们还可以结合起来使用,例如在下面这段代码中,用semantics元素为一个表形表达式附加一个表义表达式作为“语义注释”:</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>相反,也可以用一个表形表达式为表义法作注释:</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标记包起来,以便和其他内容区分,可以插到HTML等等的网页中。除了我们看到的这个例子之外,MathML还可以用于表示集合、矩阵等非常复杂的数学表达式,可谓是在数学领域“术业有专攻”的典范了。<BR><BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -