Математический язык Markup (MathMl) является XML прикладной программой, позволяющей описывать математические структуры и выражения. Цель MathMl состоит в том, чтобы дать возможность осуществлять специфические математические проекты в Web-сети.
1. Введение
1.1 Математические идеи и их запись.
Отличие математики от других наук состоит в использовании комплекса высоко
развитой системы символических записей. Математические идеи и записи, с помощью которых они излагаются, существуют независимо друг от друга. Действительно, многие положения элементарной математики можно записать, используя обычные слова. Однако умение представлять идеи в символьной форме является основным при анализе и оперировании данными в математике.
В математике соглашения о форме записей носят комплексный характер. Арифметические выражения, например, записываются с использованием цифр, переменных и стандартного набора знаков для обозначения арифметических операций.
Тем не менее трудности возникают при попытках облечь в письменную форму даже наиболее простые из математических выражений. Отсюда следует необходимость создания системы символьных записей, которая могла бы использоваться во всем мире.
В развитие форм математической записи существенный вклад внесла технология связи. В своем развитии она прошла путь от глиняных планшетов и папирусов до печатного способа представления информации, а математические записи велись с использованием возможностей, предоставляемых технологией связи на различных временных этапах.
В настоящее время возникла новая среда связи, представленная ЭВМ с сетевой структурой. Это открывает новые возможности для передачи и представления математической информации.
1.2 Цели проекта
1.2.1 Предпосылки создания MathMl
Первоначально WWW предназначалась для ученых. Но в ходе использования WWW выяснилось, что информация, передаваемая по ее каналам, представляет интерес не только для специалистов. Но возможности включения математических выражений в HTML оказались очень ограниченными. Статьи записывались в закодированной форме, основу которой составляли наборы символов ASCII.
Сегодня HTML позволяет передавать математические сообщения, однако механизмы их создания и последующей обработки настолько сложны, что попытки пользователей включить в сообщение даже самые простые формулы заканчиваются неудачей. Несмотря на широкое распространение Web, недостаток поддержки научной связи ограничивает сферу ее применения.
1.2.2
Проблемы, возникающие при записи математических выражений, можно разделить на две группы : проблемы кодирования и проблемы реализации. Проблемы, связанные с включением в документ математических записей как иллюстрационного материала, относятся к проблемам реализации.
В последнее время первостепенную важность приобретают различные способы автоматической обработки данных.
Поэтому решение проблемы кодирования математических записей для Web важнее, чем разрешение проблемы реализации, но и ее нельзя игнорировать.
1.2.3 Цели проекта MathML
Цель проекта состоит в разработке прикладных программ, подходящих как для обучения, так и для поддержки научной связи, с чьей помощью можно работать с матрицами, последовательностями и рядами, осуществлять редактирование математических выражений. Предусматривается поддержка просмотра длинных выражений, предоставление возможностей использования макрокоманд, новых схем исполнения, новых символов.
1.2.4 Цели реализации
Итак, цель проекта MathML - разрешение проблемы кодирования математической информации.
Цели реализации - это краткое описание функциональных возможностей MathML.
*Печать MathML уравнений должна осуществляться на принтерах с высокой разрешающей способностью.
*При работе с математическими записями возможно использование мыши.
*Связь MathML записей с прикладными программами осуществляется через окно просмотра.
Осуществление целей реализации может обеспечить расширение области использования HTML документов. Пользователи получат возможность просматривать их в интерактивном режиме, делать распечатки и пр. Однако для наиболее полной реализации возможностей электронных документов необходимо обеспечить взаимодействие между ними иHTML математическими документами.
1.3 Примеры применения математических структур на Web
Спрос на эффективные средства электронной научной связи высок. Количество людей, пользующихся услугами электронной связи, постоянно растет.
1.3.1 Образование
В настоящее время идет активный процесс включения интерактивных материалов в учебную программу. Однако строгие временные и технические ограничения создают трудности при использовании интерактивных материалов на занятиях по математическим дисциплинам.
Например, осуществить проверку экзаменационных ответов на ПК невозможно без умения записывать математические выражения на языке, понятном машине. Следующим шагом использования новых технологий в области образования является создание интерактивных учебников.
1.3.2 Научные исследования
На сегодняшний день существует около дюжины электронных математических изданий. В них содержится большое количество математических записей, выполненных на TeX.
Существует версия "химического" markup языка - CML, основой которого также является XML.
1.3.3
Следующая проблема электронной связи и сопутствующих ей приложений - несовместимость различных систем. Например, статьи, выполненные в Tex, несовместимы со статьями, набранными в Word. Результатами подобной несовместимости являются трудности в передаче и использовании информации.
1.3.4 Публикации
До недавнего времени электронные журналы не пользовались популярностью из-за указанных выше причин, однако с развитием markup языков ситуация начинает меняться.
1.4 Web и математический markup язык
Математические записи более, чем текст, трудны для обработки. Но, опираясь на существующие markup схемы и функциональные возможности HTML, MathML обеспечивает поддержку связи при работе с математическими объектами на Web.
1.4.1 Связь MathML c другими математическими markup языками
TeX является одним из наиболее влиятельных математических markup языков 2-х последних десятилетий.
TeX ,без сомнения, оказал существенное влияние на MathML. Однако есть несколько аспектов, которые не позволяют использовать TeX для работы в Web.
Тем не менее, TeX установил стандарты качества визуального исполнения, которым соответствует MathML.
Вторым markup языком, оказавшим существенное влияние на развитие MathML, является ISO 12083.
В основе ISO 12083 лежит TeX, что означает наличие у ISO 12083 недостатков Tex, однако ISO 12083 более подходит для автоматической обработки данных.
1.4.2 XML
В дополнение к вышесказанному, MathML должен согласовываться и с существующей HTML средой.
Одним из способов согласования является развитие XML - упрощенного варианта SGML, разработанного для Web. XML позволяет вводить и использовать новые отметки. В то же время XML синтаксис тщательно определяет структуру документа, что облегчает автоматическую обработку и сопровождение больших массивов данных. XML подходит для разметки сложных и специализированных данных. В силу вышесказанного MathML можно определить как XML прикладную программу.
1.4.3 Реализация
XML предоставляет способ определения структуры и синтаксиса. Механизмы обработки и представления информации MathML требуют детальной разработки.
Для обработки данных MathML необходимо расширить возможности окон просмотра.
1.5 Общие принципы MathML
1.5.1 Кодирование информации
Существует глубокая связь между математическими идеями и их записью.
Математическая запись, выполненная с соблюдением правил, исключает двоякое толкование.
В некоторых случаях символическая и математическая структура записи эквивалентны. В подобных ситуациях MathML предлагает использовать отметки типа <MSUP>,<MFRAC> и <MROW>.
Рассмотрим пример : < (x + 2)^2 >.Используя отметки MathML, его можно записать так :
<MSUP>
<MROW>
<MF>(</MF>
<MROW>
<MI>x</MI>
<MO>+</MO>
<MN>2</MN>
</MROW>
<MF>)</MF>
</MROW>
<MN>2</MN>
</MSUP>
В дополнение к отметкам представления MathML содержит еще примерно 50 различных отметок. Используя эти отметки, предыдущий пример можно закодировать так:
<EXPR>
<EXPR>
x
<PLUS/>
2
</EXPR>
</EXPR>
<POWER/>
2
</EXPR>
1.5.2
Для увеличения пользовательской аудитории необходимо расширение возможностей MathML. К ним относятся и задачи по усовершенствованию механизма интерфейса.
2.Основы практического использования MathML
В этом разделе представлен краткий обзор принципов работы MathML.
2.1 Использование отметок представления MathML
Отметки представления MathML используются для описания структуры математической записи. Рассмотрим пример :
< x ^ 2 + 4x + 4 = 0 >
<MROW>
<MROW>
<MSUP>
<MI>x</MI>
<MN>2</MN>
</MSUP>
<MO>+</MO>
<MROW>
<MN>4</MN>
<MO>⁢</MO>
<MI>x</MI>
</MROW>
<MO>+</MO>
<MN>4</MN>
</MROW>
<MO>=</MO>
<MN>0</MN>
</MROW>
Здесь стоит обратить внимание на два аспекта: во-первых, в примере присутствуют отметки типа MI, MN, MO и "вложенные" отметки типа MSUP и MROW, а во-вторых, отметки типа MROW используются для обозначения условия, в данном случае представленного операндом "=".
Отметки, содержащие данные, указывают на их тип. Например, отметка MI указывает на идентификатор или переменную, а отметка MN - на номер. Другие отметки обозначают схему размещения. Каждая схема размещения содержит определенное число подвыражений в строгом порядке. Например, MSUP схема должна содержать в точности два подвыражения.
< x = (-b + - sqrt( b ^ 2 - 4ac)) / 2a >
<MROW>
<MI>x</MI>
<MO>=</MO>
<MFRAC>
<MROW>
<MROW>
<MO>-</MO>
<MI>b</MI>
</MROW>
<MO>&PlusMinus</MO>
<SQRT>
<MROW>
<MSUP>
<MI>b</MI>
<MN>2</MN>
</MSUP>
<MO>-</MO>
<MROW>
<MN>4</MN>
<MO>⁢</MO>
<MI>a</MI>
<MO>⁢</MO>
<MI>c</MI>
<MROW>
</MROW>
</SQRT>
</MROW>
<MROW>
<MN>2</MN>
<MO>⁢</MO>
<MI>a</MI>
</MROW>
</MFRAC>
</MROW>
В этом примере следует обратить внимание на то, что знак "плюс/минус" - специальный поименованный объект. MathML предоставляет большой список имен математических объектов.
<Простая матрица>
<MROW>
<MI>A</MI>
<MO>=</MO>
<MROW>
<MF>[</MF>
<MTABLE>
<MTR>
<MTD><MI>x</MI></MTD>
<MTD><MI>y</MI></MTD>
</MTR>
<MTR>
<MTD><MI>z</MI></MTD>
<MTD><MI>w</MI></MTD>
</MTR>
</MTABLE>
<MF>]</MF>
</MROW>
</MROW>
2.2 Использование MathML согласных отметок
< x ^ 2 + 4x + 4 = 0 >
<EXPR>
<EXPR>
<EXPR>
<MI>x</MI>
<POWER/>
<MN>2</MN>
</EXPR>
<PLUS/>
<EXPR>
<MN>4</MN>
<TIMES/>
<MI>x</MI>
</EXPR>
<PLUS/>
<MN>4</MN>
</EXPR>
<E/>
<MN>0</MN>
</EXPR>
Отметки EXPR используются в том случае, когда содержание носит математический характер.
В MathML имеются также и пустые отметки. В XML пустые отметки имеют вид
<.../>.
При помощи отметок содержания MathML можно описать основные математические объекты, однако часто возникают ситуации, когда используются как отметки содержания, так и отметки представления.
< x = (- b + - sqrt(b ^ 2 - 4ac)) / 2a >
<EXPR>
<MI>x</MI>
<E/>
<EXPR>
<EXPR>
<EXPR>
<MO>-</MO>
<MI>b</MI>
</EXPR>
<MO>&PlusMinus</MO>
<MSQRT>
<EXPR>
<EXPR>
<MI>b</MI>
<POWER/>
<MN>2</MN>
</EXPR>
<MINUS/>
<EXPR>
<MN>4</MN>
<TIMES/>
<MI>a</MI>
<TIMES/>
<MI>c</MI>
</EXPR>
</EXPR>
</MSQRT>
</EXPR>
<OVER/>
<EXPR>
<MN>2</MN>
<TIMES/>
<MI>a</MI>
</EXPR>
</EXPR>
</EXPR>
Рассмотрим пример использования отметки SEMANTICS :
< Интеграл >
<SEMANTICS>
<MROW>
<MSUBSUP>
<MO>&int</MO>
<MN>0</MN>
<MI>t</MI>
</MSUBSUP>
<MFRAC>
<MROW>
<MO>&dd</MO>
<MI>x</MI>
</MROW>
<MI>x</MI>
</MFRAC>
</MROW>
<EXPR>
<INT>
<LOWLIMIT>
<MN>0</MN>
</LOWLIMIT>
<UPLIMIT>
<MI>t</MI>
</UPLIMIT>
<EXPR>
<MN>1</MN>
<OVER/>
<MI>x</MI>
</EXPR>
<BVAR>x</BVAR>
</INT>
</EXPR>
</SEMANTICS>
3.Отметки представления
3.1 Введение
3.1.1 Элементы представления
Элементы представления соответствуют конструкциям традиционной математической записи и позволяют описывать синтаксическую структуру математического выражения. Например, структура This улучшает качество математической записи и в тех случаях, когда не известна, например, разрешающая способность монитора.
3.1.2 Типы элементов представления
Элементы представления можно разделить на два класса : лексемы и схемы размещения. Существует также набор пустых элементов, используемых вместе с конкретной схемой размещения.
Все лексемы (в синтаксическом смысле),включенные в математическое выражение, должны быть помечены MathML отметками лексем. Типы MathML лексем : идентификаторы (переменные, имена функций и т.д.),числа, операторы, заграждающие метки (например, круглые скобки) и строковые литералы. Для представления текста нематематического характера используются элементы лексем.
Схемы размещения - конструкторы выражений традиционных математических записей.
3.1.3 XML атрибуты
Согласно проекту XML атрибуты должны иметь вид : attr = "..." .Атрибуты, чье значение определено как числовое, могут быть целыми числами или числами с плавающей запятой. Существуют атрибуты со значениями , связанными с определенным шрифтом.
3.1.4 Пробелы
По умолчанию XML процессоры удаляют конечные пробелы, символы "новой строки", вкладки (позиции табуляции) и сокращают любое внутреннее незаполненное пространство до одиночного пробела (" ").В случае необходимости использование выше перечисленных символов возможно после их кодирования и указания для них ссылки объекта.
3.1.5 Требуемые параметры
Большинство из описанных элементов требуют определенного числа параметров (1,2 или 3).
MathML содержит универсальный элемент разделителя < SEP/>,игнорируемый элементами представления.
3.1.6 Пустые элементы
Единственным пустым элементом лексемы является <MSPACE/>.Пустые элементы <MPRESCRIPTS/> и <NONE/> могут быть включены только в определенную схему размещения.
3.1.7
Некоторые элементы, например, <MOVER> используются для "украшения" операторов.
3.1.8 Резюме
Лексемы :
<MI> идентификаторы
<MN> номер
<MO> оператор
<MF> заграждающая метка
<MTEXT>текст
<MSPACE/>пробел
<MS> литерал строки
Общая схема размещения :
<MSTYLE> изменение стиля
<MERROR> включение сообщения о синтаксической ошибке
<MPHANTOM> при сохранении размера содержание становится невидимым
<MROW> горизонтальная группировка любого числа подвыражений
<MFRAC>формирование дроби из двух подвыражений
<MSQRT>формирование знака квадратного корня (радикала без индекса)
<MROOT>формирование радикала с определенным индексом
Таблицы и матрицы :
<MTABLE> таблица или матрица
<MTR>строка в таблице или матрице
<MTD>одно вхождение в таблицу или матрицу
3.2 Лексемы
В лексемы можно включать любое количество символов, в том числе позволительно
использовать лексемы без содержания.
3.2.1 <MI> - идентификаторы
Идентификаторы включают в себя переменные, имена функций и символьные константы.
Name values default font size number (points) in herited font weight plain|
bold in herited font slant plain |
italic automatic font family string in herited font color#rrggbb in herited
Идентификаторы символа Single по умолчанию выводятся в курсивном шрифте, символьные идентификаторы выводятся в ненаклонном шрифте.
<MI>x</MI>
<MI>π</MI>
<MI>D</MI>
<MI>sin</MI>
<MROW>
<MI>sin</MI>
<MO>⁡</MO>
<MI>x</MI>
</MROW>
Текст, который нужно обработать как символ, должен быть представлен в виде :
<MROW>
<MN>1</MN>
<MO>+</MO>
<MI>...</MI>
<MO>+</MO>
<MI>n</MI>
</MROW>
3.2.2 <MN> - номер
<MN> лексемы, в отличии от <MI>,обычно представлены в ненаклонном шрифте.
<MN>2</MN>
<MN>0.123</MN>
<MN>1,000,000</MN>
<MN>2.1e10</MN>
3.2.3 <MO> - операторы
Лексемы, являющиеся операторами, относятся к типу <MO>.
<MO>+</MO>
<MO>≤</MO>
<MO>++</MO>
<MO>∑</MO>
<MO>.NOT.</MO>
3.2.4 <MF> - заграждающие метки
Согласованные пары заграждающих меток должны быть включены в качестве первого и последнего элементов в схему <MROW>.
Рассмотрим примеры выражений, содержащих заграждающие метки:
(a + b)
<MROW>
<ME>(</MF>
<MROW>
<MI>a</MI>
<MO>+</MO>
<MI>b</MI>
</MROW>
<MF>)</MF>
</MROW>
[0,1)
<MROW>
<MF>[</MF>
<MROW>
<MN>0</MN>
<MO>,</MO>
<MN>1</MN>
</MROW>
<MF>)</MF>
</MROW>
3.2.1.4
Механизмы исполнения операторов и заграждающих меток идентичны и более сложны по сравнению с другими маркерами.
Многие математические символы типа интегрального символа, знака "+",круглых скобок и т.д. имеют заданные по умолчанию атрибуты, которые могут включаться в <MO> и <MF> схемы.
Многие операторы в каждой конкретной форме могут использоваться по-разному. Знак "+",например, в зависимости от ситуации может быть как префиксом, так и инфиксом.
Если оператор является первым подвыражением в <MROW> и его длина превышает единицу, то используется префиксная форма; если же оператор является последним подвыражением в <MROW>,то правилами предусматривается использование постфиксной формы. Инфиксная форма для операторов, включенных в схему типа <MROW>, не используется.
Если возникает ситуация выбора одной из нескольких форм и не дано никаких дополнительных указаний, то право ее остается за пользователем.
Существуют четыре атрибута, регулирующие соотношениями между размерами операторов, заграждающих меток и других элементов : stretchy, symmetric, maxsize и minsize. Например, если для символа maxsize="3", это означает, что его размеры могут превысить стандартные не более, чем в три раза.
Рассмотрим пример: установить максимальный размер круглой скобки.
<MROW>
<MF maxsize="1">(</MF>
<MFRAC><MI>a</MI><MI>b</MI></MFRAC>
<MF maxsize="1">)</MF>
</MROW>
3.2.5 <MTEXT> - текст
Лексема <MTEXT> используется для представления текста нематематического характера.
Этот элемент часто используется для включения в документ "невидимых символов". Элементы, входящие в схемы типа <MTEXT>, могут быть включены в схему типа <MROW>.
<MFRAC>
<MROW>
<MTEXT>&thickspace;</MTEXT>
<MI>a</MI>
</MROW>
<MI>b</MI>
</MFRAC>
Примеры :
<MTEXT>Theorem 1:</MTEXT>
<MTEXT>&thinspace;</MTEXT>
<MTEXT>&alignmentmarker;&thickspace;</MTEXT>
<MTEXT>/* a comment */</MTEXT>
3.2.6 <MSPACE/> - пробелы
<MSPACE/> - пустой элемент, задающий пустое пространство любого желаемого размера.
3.2.7 <MS> - строковый литерал
<MS> используется для включения в выражения "строковых литералов".<MS> сокращает пробелы по умолчанию. Как правило, тексты, которые необходимо внедрить в математический документ, чаще включаются в схемы типа <MTEXT>,<MO>,<MI>,а не в схемы типа <MS>. Строковые литералы отображаются заключенными в двойные кавычки.
"<Изображение: [Graphics: presentationngr6. gif]>" можно представить как :
<MROW>
<MO> there exists </MO>
<MROW>
<MROW>
<MI> δ</MI>
<MO> ></MO>
<MN> 0</MN>
</MROW>
<MO> such that</MO>
<MROW>
<MROW>
<MI>f</MI>
<MO>⁡</MO>
<MROW>
<MF>(</MF>
<MI>x</MI>
<MF>)</MF>
</MROW>
</MROW>
<MO><</MO>
<MN>1</MN>
</MROW>
</MROW>
</MROW>
3.3Общая схема размещения
Помимо лексем существует несколько семейств элементов представления MathML. Одно из таких семейств связано с различными схемами создания сценариев, другое - с таблицами и матрицами. Существуют элементы, с чьей помощью описываются основные схемы записи дробей, радикалов и т.д., происходит поиск и обработка ошибок и пр.
3.3.1 <MSTYLE> - изменения стиля
<MSTYLE> используется для внесения изменений в содержание.
Пример изменения размеров круглой скобки, записанный с использованием <MO> и <MF>, можно переписать с <MSTYLE> следующим образом:
<MSTYLE maxsize="1">
<MROW>
<MF>(</MF>
<MFRAC><MI>a</MI><MI>b</MI></MFRAC>
<MF>)</MF>
</MROW>
</MSTYLE>
3.3.2 <MERROR> - включение сообщения об ошибках
Сообщение о синтаксической ошибке может быть произведено путем изменения фонового цвета, высвечивания изображения или подчеркивания ошибки красным цветом.
Задача этого элемента состоит в обеспечении механизма сообщения о синтаксических ошибках при совместной работе MathML с другими прикладными программами.
3.3.3.<MPHANTOM>
<MPHANTOM> может использоваться для выравнивания частей выражения и изменения позиций символов.
3.3.4<MROW> - горизонтальная группировка подвыражений
Несколько операторов могут быть включены в схему типа <MROW> только в том случае, когда они принадлежат к одному типу. Группировка преследует следующие цели: улучшение визуального представления и упрощение обработки информации различными средствами, предназначенными для этой цели.
Пример <Изображение: [Graphics;presentationgr10.gif]> может быть записан так:
<MROW>
<MROW>
<MN>2</MN>
<MO> ⁢ </MO>
<MI>x</MI>
</MROW>
<MO>+</MO>
<MI>y</MI>
<MO>-</MO>
<MI>z</MI>
</MROW>
3.3.5 <MFRAC> - формирование дроби из двух подвыражений
<MFRAC> numerator (знаменатель) denominator (числитель) </MFRAC>
3.3.6 <MSQRT> и <MROOT> - формирование радикалов
Схема <MSQRT> используется для вывода квадратных корней, а схема <MROOT> - для вывода радикалов с индексами.
<MSQRT> base </MSQRT>
<MROOT> base index </MROOT>
3.4
Для лучшей фиксации абстрактной структуры записи MathML обеспечивает специализированную схему создания сценария.
Отметки представления используются описания структуры выражений.
<Изображение: [Graphics:presentationgr12.gif]> может быть представлено в следующем виде:
<MSUP>
<MROW>
<MF>(</MF>
<MROW>
<MI>x</MI>
<MO>+</MO>
<MI>y</MI>
</MROW>
<MF>)</MF>
</MROW>
<MN>2</MN>
</MSUP>
3.4.1 <MSUB>
<MSUB> base subscript </MSUB>
3.4.2 <MSUP>
<MSUP> basesuperscript </MSUP>
3.4.3 <MSUBSUP>
<MSUBSUP> base subscriptsuperscript </MSUBSUP>
Интеграл при помощи <MSUBSUP> можно записать следующим образом :
<MROW>
<MSUBSUP>
<MO> ∫</MO>
<MN>0</MN>
<MN>1</MN>
</MSUBSUP>
<MROW>
<MSUP>
<MI> ⅇ</MI>
<MI>x</MI>
</MSUP>
<MO> ⁢</MO>
<MROW>
<MO> ⅆ</MO>
<MI>x</MI>
</MROW>
</MROW>
</MROW>
3.4.4 <MUNDER>
<MUNDER> base underscript </MUNDER>
3.4.5 <MOVER>
<MOVER> base overscript </MOVER>
3.4.6 <MUNDEROVER>
<MUNDEROVER> base underscriptoverscript </MUNDEROVER>