Стандарт кодирования математических выражений

Рейтинг: 2Ответов: 2Опубликовано: 19.03.2015

Есть необходимость в сохранении и передаче математических выражений, причем в перспективе хранение этих самых выражений должно происходить неограниченное время. Я предположил формат LaTeX и в конечном результате получилось что-то вроде:

{"task":"lim_{n\rightarrowinfty}\frac{n-1}{3n};","solution":"lim_{n\rightarrowinfty}\frac{n-1}{3n}=lim_{n\rightarrowinfty}\frac{\frac{n}{n}-\frac{1}{n}}{\frac{3n}{n}}=lim_{n\rightarrowinfty}\frac{1-\frac{1}{n}}{3}=\frac{1}{3};","answer":"\frac{1}{3};"}

Но меня стали одолевать сомнения в правильности выбора формата: я не имею представления, насколько он универсален и стандартизирован, знаю только о его популярности в web. Может быть, дадите почитать что-нибудь об этом? Или не существует стандарта цифрового хранения математических записей?

Основные требования заключаются в минимальности исходника и возможности его однозначной интерпретации. Уже даже подумывал разработать свой стандарт (ох уж эта эфемерность мысли программиста).

Ответы

▲ 2Принят

Существует несколько стандартов записи математических формул. Из них выделю следующие, для реализации рекомендую именно в таком порядке:

  • LaTeX - de facto стандарт для набора математических (и не только формул) уже многие годы; из плюсов - очень широкая поддержка во всех популярных математических продуктов (даже в sympy для Python'а есть экспорт в LaTeX), читаемый формат, весьма простой и однозначный для парсинга.
  • MathML - стандарт для набора формул на базе XML, весьма специфичен, не читаем, поддерживается весьма слабо.
  • eqn - популярный в узких кругах способ записи.
  • MathType - устаревший стандарт из Office 2007 и ранее, сейчас практически нигде не поддерживается и крайне малопопулярен и даже в официальной реализации весьма медленный.

Есть ещё множество стандартов: OMML, OpenMath, OMDoc и другие, более узкоспециализированные.

▲ 0

Reverse Polish Notation - невозможно придумать что-то более универсальное, стандартизированное (единственный спецсимвол - пробел), минималистичное и однозначное.