内容MathML与OpenMath进行模型交换

时间:2012-07-21 10:52:07

标签: xml mathml symbolic-math sympy computer-algebra-systems

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

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

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

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

1 个答案:

答案 0 :(得分:5)

格式非常密切相关(并且由一组重叠的人大致同时定义)(例如,我是MathML和OpenMath规范的编辑器)。在当前版本的Content MathML(MathML 3)中,这种形式化远远超过早期版本,并且所有MathML内容元素都以openmath符号的形式给出了语义。所以正式唯一的区别是语法,内容MathML有一个" strict"作为OpenMath的正式编码的子集,以及一组为OpenMath等效子集提供正式重写规则的便利元素。

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

相关问题