Язык математической разметки MathML
Язык разметки математических документов.
Математический язык 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>
<Msub>SUP>
<MO>&int</MO>
<MN>0</MN>
<MI>t</MI>
</Msub>SUP>
<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> - идентификаторы
Идентификаторы включают в себя переменные, имена функций и символьные констан
ты.
Namevaluesdefaultfontsizenumber (points)inheritedfontweightplain|
boldinheritedfontslantplain |
italicautomaticfontfamilystringinheritedfontcolor#rrggbbinherited
Идентификаторы символа 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 sub>script </Msub>>
3.4.2 <MSUP>
<MSUP> base superscript </MSUP>
3.4.3 <Msub>SUP>
<Msub>SUP> base sub>script superscript </Msub>SUP>
Интеграл при помощи <Msub>SUP> можно записать следующим образом :
<MROW>
<Msub>SUP>
<MO> ∫</MO>
<MN>0</MN>
<MN>1</MN>
</Msub>SUP>
<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 underscript overscript </MUNDEROVER>