Исследование преобразования формул в MathML | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №18 (360) апрель 2021 г.

Дата публикации: 25.04.2021

Статья просмотрена: 135 раз

Библиографическое описание:

Санина, А. В. Исследование преобразования формул в MathML / А. В. Санина. — Текст : непосредственный // Молодой ученый. — 2021. — № 18 (360). — С. 58-61. — URL: https://moluch.ru/archive/360/80414/ (дата обращения: 16.11.2024).



В статье рассматривается язык разметки MathML, а также алгоритмы его преобразования.

Ключевые слова: MathML, тег представления, тег содержания, преобразование, редактор, конвертер.

В настоящее время, большая часть математической информации на сайтах представлена в виде текстов с включением графических изображений математических формул, к примеру, в виде рисунков или в виде полноформатных документов PDF.

В этом, конечно же, есть свои недостатки, такие как:

— недостаточное качество документов — к примеру, при масштабировании изображения качество значительно ухудшается;

— невозможность редактирования;

— математическая информация недоступна для поиска, индексации и повторного использования в других приложениях.

Решить все эти проблемы может язык разметки MathML.

MathML (от англ. Mathematical Markup Language) — это основанный на XML язык разметки документов для записи математических формул и выражений. Он описывает как внешний вид формул, так и их содержание [1].

Особенности MathML:

— гибкая и расширяемая система записи математической информации;

— позволяет взаимодействовать с внешними программами;

— обеспечивает высококачественное отображение в различных информационных средах.

Рассмотрим подробнее данный язык разметки.

MathML содержит теги двух типов, смотрите таблицу 1.

Таблица 1

Типы тегов в MathML

Теги представления

( p resentation)

Теги содержания

(content)

Презентационный способ передает запись формулы вне связи с ее смыслом.

Содержательный способ отражает ее математическое содержание (математическое знание).

Рассмотрим на синтаксис данных тегов.

Возьмем, к примеру, a-b

а минус b

Разность a b

a

-

b

a

b

Как видно из таблицы 1, смысл и синтаксис у тегов отличается.

Токены, такие как идентификаторы и числа, размечаются индивидуально. Для тегов представления:

— Переменные — mi ( a );

— Константы — mn ( 3.14 );

— Операторы — mo ( + );

— Текст — mtext ( Theorem ).

Для тегов содержания:

— Переменные — с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}

0.15

*

1

8

Общий вид алгоритма преобразования такой:

— Разбор входной формулы на составные части (операции, переменные, константы и т. д.);

— Преобразование составных частей в вид, соответствующий синтаксису MathML;

— Вывод результата.

Литература:

  1. Представление и семантика MathML. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.qaz.wiki/wiki/MathML#Presentation_and_semantics (дата обращения: 24.04.2021).
  2. MathType. — Текст: электронный // MathType: [сайт]. — URL: https://mathtype.ru/ (дата обращения: 24.04.2021).
  3. WebEQ: Набор математических формул для WWW. — Текст: электронный // Федеральный исследовательский центр Информационных и вычислительных технологий: [сайт]. — URL: http://www.nsc.ru/win/mathpub/webeq/ (дата обращения: 24.04.2021).
  4. LaTeX. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.wikipedia.org/wiki/LaTeX (дата обращения: 24.04.2021).
Основные термины (генерируются автоматически): тег представления, тег содержания, запись формулы, математическая информация, способ создания, язык разметки, PDF, XML, редактор, таблица.


Ключевые слова

преобразование, редактор, MathML, тег представления, тег содержания, конвертер

Похожие статьи

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Диагностика утечек памяти в Java-приложениях

Данная статья описывает структуру хранения используемой памяти, простые способы диагностики её утечек и временные исправления их.

Редактор языковых баз Wordnet с использованием гиперграфовой базы данных

В данной статье рассматриваются лингвистическая модель Wordnet, гипеграфовые базы данных и технологии реализации интерфейса для редактора подобной языковой модели.

PlantUML: создание диаграмм с использованием текстового синтаксиса

В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.

Исследование процессов внутри виртуальной машины Java

В статье подробно описываются процессы виртуальной машины Javа, на что выделяется память, как устроена JVM, как в нее попадает код и как он исполняется.

Обзор пакета для анализа временных рядов forecast на языке программирования R

Данная статья рассматривает основные аспекты пакета «forecast», обращая внимание на его ключевые возможности и применение.

Обзор библиотек обучения нейронных сетей на языке Python

В статье даётся обзор самых популярных библиотек машинного обучения языка Python.

Аспекты написания XPath-запросов

В данной статье рассматриваются некоторые особенности написания XPath-запросов.

Похожие статьи

Разработка алгоритма валидации форм на клиентской стороне для передачи данных

В данной статье рассмотрены методы и алгоритмы функционирования систем клиент-серверной архитектуры для передачи данных с помощью технологий программных инструментов: HTML, CSS, Javascript.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Диагностика утечек памяти в Java-приложениях

Данная статья описывает структуру хранения используемой памяти, простые способы диагностики её утечек и временные исправления их.

Редактор языковых баз Wordnet с использованием гиперграфовой базы данных

В данной статье рассматриваются лингвистическая модель Wordnet, гипеграфовые базы данных и технологии реализации интерфейса для редактора подобной языковой модели.

PlantUML: создание диаграмм с использованием текстового синтаксиса

В статье автор рассматривает PlantUML как эффективный инструмент для создания диаграмм в разработке программного обеспечения, преимущества использования текстового синтаксиса, разнообразие поддерживаемых диаграмм.

Исследование процессов внутри виртуальной машины Java

В статье подробно описываются процессы виртуальной машины Javа, на что выделяется память, как устроена JVM, как в нее попадает код и как он исполняется.

Обзор пакета для анализа временных рядов forecast на языке программирования R

Данная статья рассматривает основные аспекты пакета «forecast», обращая внимание на его ключевые возможности и применение.

Обзор библиотек обучения нейронных сетей на языке Python

В статье даётся обзор самых популярных библиотек машинного обучения языка Python.

Аспекты написания XPath-запросов

В данной статье рассматриваются некоторые особенности написания XPath-запросов.

Задать вопрос