2012-07-21 32 views
8

在我的研究小組中,我們有不同的人在不同的符號工具中進行代數建模,例如Matlab中的Symbolic Toolbox和Python中的Sympy。然後,這些模型通常會導出爲C代碼並複製粘貼到我們自己的基於符號C++的工具中,以進行進一步的符號操作。內容MathML與OpenMath進行模型交換

當尋找替代這種難以維護的方法時,我發現兩種格式看起來差不多標準化:OpenMath和「Content MathML」。請注意,我們只對語義感興趣,沒有漂亮的打印。

這兩種格式之間的關係是什麼?既可以用來存儲和交換工具之間的數學表達式?

數學表達式還有其他或多或少標準化的交換格式嗎?

回答

5

這些格式是非常密切相關的(並且大致同時由一組重疊的人定義)(例如,我是MathML和OpenMath規範的編輯者)。在當前版本的Content MathML(MathML 3)中,它的形式化程度遠遠高於早期版本,並且所有MathML內容元素都以openmath符號的形式給出了語義。所以形式上唯一的區別就是語法,Content MathML有一個「嚴格」的子集,它是OpenMath的一種正式編碼,外加一組給予OpenMath等效子集的正式重寫規則的便利元素。

除了表達式本身的語法之外,如果您偏離了MathML中預定義的固定運算符集合,您需要某種方式來記錄定義,並且這裏OpenMath和MathML都使用相同的OpenMath「Content字典「格式。

+0

既然你已經成爲這兩個項目的一部分,你知道這兩種格式是否正在積極維護? – Joel 2012-07-23 10:59:25

+2

是的,都維護。在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 – 2012-07-23 11:55:18