In meiner Forschungsgruppe haben wir verschiedene Leute, die algebraische Modellierung in verschiedenen symbolischen Werkzeugen wie Symbolic Toolbox in Matlab und Sympy in Python machen. Diese Modelle werden dann typischerweise in C-Code exportiert und in unsere eigenen symbolischen C ++ - basierten Werkzeuge für weitere symbolische Manipulation kopiert-eingefügt.
Auf der Suche nach einer Alternative zu diesem kaum zu bewältigenden Ansatz fand ich zwei Formate, die mehr oder weniger standardisiert aussahen: OpenMath und "Content MathML". Beachten Sie, dass wir nur an der Semantik interessiert sind, kein schönes Drucken.
Was ist die Beziehung zwischen diesen beiden Formaten? Können beide verwendet werden, um mathematische Ausdrücke zwischen Werkzeugen zu speichern und auszutauschen?
Gibt es noch ein anderes mehr oder weniger standardisiertes Austauschformat für mathematische Ausdrücke?
Die Formate sind sehr nahe verwandt (und werden ungefähr zur gleichen Zeit von einer überlappenden Gruppe von Personen definiert) (ich bin zum Beispiel ein Editor von MathML- und OpenMath-Spezifikationen). In der aktuellen Version von Content MathML (MathML 3) ist dies weitaus mehr formalisiert als in früheren Versionen und alle MathML-Inhaltselemente erhalten eine Semantik in Form von Openmath-Symbolen. Formal ist der einzige Unterschied die Syntax, Content MathML hat eine "strikte" Teilmenge, die eine formale Kodierung von OpenMath ist, plus eine Menge von Convenience-Elementen, denen formale Rewrite-Regeln für die OpenMath-äquivalente Teilmenge gegeben werden.
Abgesehen von der Syntax der Ausdrücke selbst, müssen Sie, wenn Sie sich von der in MathML vordefinierten Menge von Operatoren entfernen, eine Art von Aufzeichnungsdefinitionen benötigen, und sowohl OpenMath als auch MathML verwenden hier dasselbe OpenMath-Inhaltswörterbuch "formatieren.
Tags und Links xml sympy symbolic-math mathml computer-algebra-systems