PC版
搜索导航
论文网 > 理学论文 > 数学论文

基于MathML的WEB数学公式实现

  
  0引言
  随着网络技术和多媒体技术的发展,教育已进入网络时代,在基于网络的教学中,数学公式的编辑和使用是一个无法回避的问题。教师和学生之间在探讨含有数学公式内容的课程时,均需要在线编辑数学公式,实时传输和显示,以满足远程教学即时互动的效果。以往在WEB环境中,一般是将公式转变为图形的形式来处理,具体做法是使用HTML的标签,借助语法实现网页中公式的显示。这种做法的弊端显而易见,就是不能重新编辑公式,若需要更改公式,必须重新制作公式的图片,制作后还需要与网页编辑软件协作,过程可谓繁琐,即使最后可以在网上显示,也不能对公式进行查找和索引,难以进行控制和信息处理,非常不利于网络上信息发布、学术交流、教学互动等活动的开展。而且一旦数学公式增多导致文件变大,传输速度和显示速度将变得缓慢,无疑影响双方交流和互动的效果。使用TeX/LaTeX标准是另辟蹊径的一种选择方案。比如免费下载“NieTEX网络公式编辑器”,它是以TeX/LaTeX为标准的CGI应用程序,可以使用标准的TeX/LaTeX语言表述公式。但是TeX/LaTeX比较专业,不是花一两天就能完全学会的[1],输入的命令往往会出现令人困惑的错误信息,并且往往无法准确找到错误所在,掌握TeX/LaTeX需要一段比较漫长而艰难的过程。利用专用数学公式浏览器插件同样可以实现WEB中数学公式的表示,比如比较知名的ScienceWord Web Edition网络插件,其支持Html、Asp、Asp.Net、Php、Jsp等WEB语言,正如官方所言“可将公式和数学符号完全融入到文字流中,使公式、数学符号和文字成为一个有机的整体。公式一方面具有普通文字流的属性特征如字体、字号、颜色等,另一方面具有自己的逻辑结构。全新的公式'文字流化'编辑技术使公式和数学符号的编辑与修改就像编排文字一样简单、方便而快捷。”这个ScienceWord插件方案本来效果不错,但是非常遗憾的是,它的价格不菲,让一般用户觉得难以承受,普及起来可能有较大难度。比较下来,利用MathML实现数学公式在互联网上的显示和传输,不失为一种行之有效的解决之道。
  1数学标记语言MathML
  MathML (Mathematical Markup Language)是国际互联网标准组织W3C制定的一种基于XML的数学标记语言,是计算机之间交换数学信息的基本标准。它以树状结构表示数学公式的结构和内容,采用文本形式存储数学的符号、公式及特殊字符而只占用很小的存储空间,不仅在计算机程序的实现上更方便快捷,[2]在Web的其他应用程序中实现再利用和转换上也更简便高效,而且可以有效克服传统的Web中使用图片表达数学公式的缺点与弊端。XML具有上下文相关和动态功能,也可以让信息提供者根据需要,自行定义符号及其属性来扩展公式表述、数据描述和对文件进行嵌套,从而使得MathML能够支持在网页上显示各类复杂的数学公式,极大拓展了其应用空间与前景。
  与HTML类似,MathML标记语言包括两部分。一种是内容型标记(Content Markup),用来描述抽象的数学对象,提供表达式数学结构的编码,一种是表现型标记(Presention Markup),用来表达数学公式内在的结构,它关注数学公式的构成,而并不强调公式的语义含义,主要目的就是能够把数学公式表现出来。[3]数学表达式本身就是递归性的树状结构,MathML充分利用了数学表达式的这个特点,使得内容型标记和表现型标记也都体现了递归性。例如对于不定积分表达式∫xdx,写成的含有MathML的网页代码为:
  
  
  
  
  
  x
  

  
  
  x
  

  

  

  
  其中,MathML数学公式均以开始,以结束,其作用在于传递在中设置的参数给MathML的处理程序,这些参数影响整个数学表达式的显示,并为在MathML的处理程序和浏览器之间传递信息提供了一种机制。[4]表示水平方向上任意数目公式的组合。表示运算符、边界或分隔符。
  2WEB中应用MathML
  由于微软的IE浏览器无法正确识别含有MathML的网页,所以必须安装Design Science公司的MathPlaye插件才能显示用MathML描述的公式。在使用Java Applet来实现数学公式的输入与显示时,首先是将WebEQApplet.jar拷贝到发布目录,然后在HTML中插入以下代码:
  
  
  
  
  
  
  
  
  
  
  该处理方式固然可实现交互式数学文档,但是描述公式的代码一般非常复杂,一个很简单的公式也将涉及很多的XML的tag,掌握起来确实有点力不从心。这时候使用MathType进行可视化编辑,让其自动生成MathML语言,无疑化繁为简。MathType是一款专业的数学公式编辑器(也就是让Word公式编辑器自动“下岗”的编辑器),同时也是一套为MathML提供写作和编辑工具的Java小程序,相信数学工作者对它不会陌生。获取MathML代码比较方便,只需在MathType中输入公式以后选择所需部分,复制到剪贴板上,之后执行【参数→转换…】,按照如下图所示操作即可。
  这时源码所有标签都在一个名字空间里,即数据是以“m”为命名间隔的MathML格式的公式代码,这样就可使IE能自动启动MathType和真正识别MathML代码。[5]在HTML中使用MathPlayer插件对象的具体步骤如下:
  1)把以“m”为命名间隔的MathML格式代码粘贴在与之间
  2)在与之间插入以下语句:
     llD4-BDl1-00104BD3F987”>
  <? importnamespace=“m”implementation=“ #MathPlayer ”?>
  3)修改标签:   8/Math/MathML”>
  而调用通用MathML样式表则使数学公式的显示方式及优化趋于完善。XML最大特点是内容与形式分离,XML采用CSS和XSL两种样式来使IE能够以公式的形式显示给使用者,而非以树形结构的代码呈现给用户。CSS意思是层叠样式表,熟悉HTML的读者应该熟悉它的主要功能是弥补网页格式化功能的不足,它适用元素顺序不变的XML文件,元素在XML中是什么顺序排列,通过CSS表现出来顺序依旧。对于CSS文档,这里不再赘述。XSL也称可扩展样式语言,其作用在于能发现并判断阅读文档的是什么浏览器,以及系统中安装了什么样的显示渲染组件。XML文件在展开后是一种树状结构,XSL处理器则根据XSL样式表的指示读取XML文件中的信息,进行一系列操作,重新组合后转换产生一个Well-Formed的HTML文件,从而实现数学公式的优化。[6]在脱机状态下,调用通用MathML样式表,必须在网页头部加上下面两条语句:
  <?xml version =“1.0”?>
  <?xml-stylesheet type =“text/xsl”href =“路径/mathml.xsl”?>
  同时当前目录应至少包含mathm1. xsl、pmathm1.xsl和ctop.xsl文件。如果缺少了某个文件,对MathML的解析将实效。
  3小结
  MathML作为“未来的数学网络标准语言”,其在解决网络环境中数学公式的输入、显示、编辑等问题上是可靠和有效的,它使WEB数学信息和普通文本一样在浏览器上显示出来,必将能被广泛应用。随着以MathML为代表的XML技术的不断发展和进步,相信还会有更先进高效的WEB数学表达方式出现,进一步加强网络对教育的支撑力度,为推动网上数学信息交流和教育信息化铺平道路。
  

相关论文

公式基于数学WEB
基于环境工程专业实验课程思政教育的
基于学习通SPOC的高校保险学课程教学
基于企业内部财务控制制度创新思考
浅谈小学数学教学中培养学生综合能力
基于协同理论的项目财务管理系统建设
基于当前中药专业教学中存在的问题及
基于民营企业文化建设的问题与对策思
浅谈心理学理论在初中数学教学中的运
基于案例的行政单位内部控制建设研究
基于现金流量税重构国际税收规则的理