В статье рассматривается язык разметки MathML, а также алгоритмы его преобразования.
Ключевые слова: MathML, тег представления, тег содержания, преобразование, редактор, конвертер.
В настоящее время, большая часть математической информации на сайтах представлена в виде текстов с включением графических изображений математических формул, к примеру, в виде рисунков или в виде полноформатных документов PDF.
В этом, конечно же, есть свои недостатки, такие как:
— недостаточное качество документов — к примеру, при масштабировании изображения качество значительно ухудшается;
— невозможность редактирования;
— математическая информация недоступна для поиска, индексации и повторного использования в других приложениях.
Решить все эти проблемы может язык разметки MathML.
MathML (от англ. Mathematical Markup Language) — это основанный на XML язык разметки документов для записи математических формул и выражений. Он описывает как внешний вид формул, так и их содержание [1].
Особенности MathML:
— гибкая и расширяемая система записи математической информации;
— позволяет взаимодействовать с внешними программами;
— обеспечивает высококачественное отображение в различных информационных средах.
Рассмотрим подробнее данный язык разметки.
MathML содержит теги двух типов, смотрите таблицу 1.
Таблица 1
Типы тегов в MathML
Теги представления ( p resentation) |
Теги содержания (content) |
Презентационный способ передает запись формулы вне связи с ее смыслом. |
Содержательный способ отражает ее математическое содержание (математическое знание). |
Рассмотрим на синтаксис данных тегов. Возьмем, к примеру, a-b |
|
а минус b |
Разность a b |
|
|
Как видно из таблицы 1, смысл и синтаксис у тегов отличается.
Токены, такие как идентификаторы и числа, размечаются индивидуально. Для тегов представления:
— Переменные — mi (
— Константы — mn (
— Операторы — mo (
— Текст — mtext (
Для тегов содержания:
— Переменные — сi (<сi>a );
— Константы — сn (<сn>3.14 ).
А вот вместо того, чтобы использовать просто другой тип маркера, как у тегов представления, теги содержания представляют операторы конкретными элементами, у которых математическая семантика такая: plus, minus, times и т.д [1].
Безусловно это не все различия данных тегов, для понимая описаны самые основные.
Перейдем к реализации, точнее к способу создания MathML документов.
Существуют такие способы создания:
— программирование;
— использование редакторов;
— использование конвертеров.
Такой способ, как программирование, мы рассмотрели выше.
Рассмотрим способ создания MathML документов с помощью редакторов.
На сегодняшний день существует достаточное количество редакторов. К примеру, самые распространённые из них:
— Редактор MathType — это инструмент для набора уравнений и формул на профессиональном уровне. Используется для соответствующего оформления документов. Совместим с текстовыми редакторами, Word, программами для обработки данных под полиграфические стандарты или в целях презентаций [2].
— Редактор WebEQ — это мощный программный инструмент, который позволяет встраивать математические выражения в Web-страницы [3].
Но, как мы выяснили немного выше, формулы в виде MathML можно получить не только путем программирования и создания через редактор, но и путем преобразования другого формата в MathML.
Одним из таких форматов является LaTeX, который получил широкое распространение среди ученых.
Рассмотрим подробнее формат LaTeX и сопоставим его с MathML.
LaTeX — популярный набор макрорасширений системы компьютерной вёрстки TeX, который облегчает набор сложных документов [4].
Рассмотрим пример записи формулы базовой математический функции в таблице 2.
Таблица 2
Запись формулы базовой математической функции LaTeX и MathML
LaTeX |
MathML |
Результат |
0.15 \cdot \frac{1}{8} |
|
|
Общий вид алгоритма преобразования такой:
— Разбор входной формулы на составные части (операции, переменные, константы и т. д.);
— Преобразование составных частей в вид, соответствующий синтаксису MathML;
— Вывод результата.
Литература:
- Представление и семантика MathML. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.qaz.wiki/wiki/MathML#Presentation_and_semantics (дата обращения: 24.04.2021).
- MathType. — Текст: электронный // MathType: [сайт]. — URL: https://mathtype.ru/ (дата обращения: 24.04.2021).
- WebEQ: Набор математических формул для WWW. — Текст: электронный // Федеральный исследовательский центр Информационных и вычислительных технологий: [сайт]. — URL: http://www.nsc.ru/win/mathpub/webeq/ (дата обращения: 24.04.2021).
- LaTeX. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.wikipedia.org/wiki/LaTeX (дата обращения: 24.04.2021).