8

私の研究グループには、MatlabのSymbolicToolboxやPythonのSympyなどのさまざまなシンボリックツールで代数モデリングを行うさまざまな人々がいます。これらのモデルは通常、Cコードにエクスポートされ、さらにシンボリック操作を行うために、独自のシンボリックC++ベースのツールにコピーアンドペーストされます。

このほとんど保守不可能なアプローチの代替案を探しているときに、多かれ少なかれ標準化されているように見える2つの形式、OpenMathと「ContentMathML」を見つけました。私たちはセマンティクスにのみ関心があり、きれいな印刷には関心がないことに注意してください。

これら2つのフォーマットの関係は何ですか?ツール間で数式を保存および交換するために両方を使用できますか?

数式の交換形式は、他にも多かれ少なかれ標準化されていますか?

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 に答える