Content MathML和OpenMath用于模型交换的比较

8

在我的研究小组里,我们有不同的人员使用不同符号工具进行代数建模,例如Matlab中的符号工具箱和Python中的Sympy。然后将这些模型通常导出为C代码,并将其复制粘贴并适应到我们自己的基于符号C ++的工具中以进行进一步的符号操作。

在寻找替代这种难以维护的方法时,我发现了两种看起来更或多或少标准化的格式:OpenMath和“Content MathML”。请注意,我们只对语义感兴趣,不需要漂亮的打印效果。

这两种格式之间有什么关系?两种格式都可以用于在工具之间存储和交换数学表达式吗?

还有其他更或多或少标准化的数学表达式交换格式吗?

1个回答

5

这两种格式非常相似(并且由一组重叠的人大致同时定义)(例如,我是MathML和OpenMath规范的编辑者)。在当前版本的Content MathML(MathML 3)中,这比早期版本更加正式化,所有MathML内容元素都以openmath符号的术语给出语义。因此,在形式上唯一的区别是语法,Content MathML具有“严格”的子集,它是OpenMath的正式编码,还包括一组方便的元素,这些元素被赋予了到OpenMath等效子集的正式重写规则。

除了表达式本身的语法之外,如果你远离在MathML中预定义的固定运算符集合,你需要某种记录定义的方式,在这里,OpenMath和MathML都使用相同的OpenMath“内容字典”格式。


既然你参与了这两个项目,你知道这两种格式是否都在积极维护吗? - Joel
2
是的,两者都得到了维护。在OpenMath中,大部分工作实际上是设计内容字典,这些字典通常是项目特定的,但是最近的OpenMath会议(我没能参加)是在本月的CICM举行的http://www.informatik.uni-bremen.de/cicm2012/cicm.php,似乎进展顺利。MathML具有更高的知名度,特别是表示数学公式的MathML,因为它被用于浏览器,所以活动更加可见,编辑草案最近进行了修改,以修复本月早些时候报告的问题http://www.w3.org/Math/draft-spec/appendixf.html#changes.mathml3.02e-3.0。 - David Carlisle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接