8

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

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

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

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

4

1 回答 1

5

这些格式密切相关(并且由一组重叠的人大致同时定义)(例如,我是 MathML 和 OpenMath 规范的编辑)。在当前版本的 Content MathML (MathML 3) 中,它的形式化程度远远超过早期版本,并且所有 MathML 内容元素都根据 openmath 符号给出了语义。所以形式上唯一的区别是语法,Content MathML 有一个“严格”子集,它是 OpenMath 的正式编码,加上一组便利元素,这些元素被赋予了 OpenMath 等效子集的正式重写规则。

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

于 2012-07-22T01:05:33.073 回答