Содержание
1. MathML (Mathematical Markup Language)
1.1 Математика и ее система обозначений
1.2 Истоки и цели
1.2.1 История MathML
1.2.2 Ограниченность HTML
1.2.3 Требования к математической разметке
1.2.4 Цели проекта MathML
1.3 Роль MathML в Сети
1.3.1 Существующие языки математической разметки
1.3.2 Механизм расширения HTML
1.3.3 Механизм расширения браузера
1.4 Обзор MathML
1.4.1 Таксономия элементов MathML
1.4.2 Разметка представления
1.4.3 Разметка содержания
1.4.4 Объединение представления и содержания
1.5 MathML в документах
1.6 Примеры MathML
1.6.1 Примеры разметки представления
1.6.2 Примеры разметки содержания
1.6.3 Примеры смешанной разметки
1.7 Синтаксис и грамматика MathML
1.7.1 Синтаксис и грамматика MathML
1.7.2 Пример синтаксиса XML
1.7.3 Дочерние элементы против аргументов
1.7.4 Значения атрибутов MathML
1.7.4.1 Синтаксические нотации, используемые в спецификацииMathML
1.7.4.2 Атрибуты с единицами измерения
1.7.4.3 CSS-совместимые атрибуты
1.7.4.4 Значения атрибутов по умолчанию
1.7.4.5 Значения атрибутов в MathML DTD
1.7.5 Атрибуты, общие для всех элементов MathML
1.7.6 Свертывание пробелов во вводе
2. Возможности современных браузеровпри работе с MathML
2.1 Mozilla & Firefox
2.2 Microsoft Internet Explorer
2.3 Opera
Список использованной литературы
/>1. MathML (MathematicalMarkup Language)
MathML (Mathematical Markup Language) представляет собой языкразметки математических приложений, основанный на XML. Он был разработанКонсорциумом WWW (W3C) и принят в качестве Рекомендации. Текущей версиейявляется Mathematical Markup Language (MathML) Version 2.0 (Second Edition),утвержденной 21 октября 2003 года.
MathML реализует две «точки зрения» наматематическую разметку. Один из ее видов — это разметка представления (PresentationMarkup), которая описывает визуальную форму представления математическойформулы. Второй — разметка содержания (Content Markup), выражающаясемантическое содержание.
MathML рассматривает не только представление, но и смыслэлементов формулы. Также разрабатывается система разметки математическойсемантики, призванная дополнить MathML. Она называется OpenMath.
/>/>1.1 Математика и ее система обозначений
Характерной чертой математической информации являетсяиспользование сложной и высокоразвитой двумерной символьной системы обозначений.Однако, как писал J. R. Pierce в своей книге по теории коммуникации, математикаи ее нотация не должны рассматриваться как одно и то же. Математические идеисуществуют независимо от способа их представления. Тем не менее, взаимосвязьмежду значением и обозначением весьма тонка, и в возможности представлять иманипулировать идеями в символьной форме кроется значительная мощьматематического аппарата, как инструмента описания и анализа. Основнаятрудность при внедрении математики в World Wide Web состоит в том, чтобы зафиксироватькак представление, так и содержание (то есть значение) таким образом, чтобы вдокументах максимально использовать высокоразвитую систему математическойнотации и потенциал взаимодействия в электронных средствах информации.
Математическая система обозначений постоянно развивается,так как люди постоянно совершенствуют способы представления идей. Дажестандартная система обозначения арифметических действий прошла черезудивительное многообразие стилей, включая множество ныне несуществующих,поддерживающих математические обозначения своего времени. Современнаяматематическая система обозначений является продуктом вековыхусовершенствований, и принятые обозначения для высококачественной печатидостаточно сложны. Например, переменные и буквы, обозначающие числа, сейчасобычно печатаются специальным математическим курсивом чуть отличным от обычноготекстового курсива. Пробелы, окружающие символы операций такие как +, — ,×и /, немного отличаются от таковых в тексте, отражая соглашения о старшинствеоператора. Целые книги посвящены правилам набора математических текстов, отвыравнивания верхних и нижних индексов до правил для выбора размеров круглыхскобок и специальных нотационных соглашений для различных областей математики.
Принятая система обозначений в математике, и в печатномтексте вообще, направлена на то, чтобы зрительно выделить и сделать напечатанныевыражения более легкими для чтения и понимания. Хотя это и кажется очевидным,но мы полагаемся на сотни соглашений таких как параграфы, заглавные буквы,семейства шрифтов, и даже механизм десятичной нумерации разделов, подобныйтому, что мы используем в этом документе (заслуга G. Peano, который вероятноболее известен своими аксиомами для натуральных чисел). Таким образом,нотационные соглашения, наверное, даже более важны для электронных медиа, гдетребуется бороться с трудностями чтения с экрана.
Однако, внедрение математики в Сеть это не просто поискспособов отображения математической информации в окне браузера. Сетьпредставляет фундаментально новый подход к хранению знаний, в которомвзаимосвязь играет центральную роль. Становится все более и более важно найтиспособы взаимосвязи математических документов, которые облегчат автоматическуюобработку, индексацию и повторное использование в других математическихприложениях и контекстах. Подобные усовершенствования в технологии коммуникациипозволяют расширить наши возможности в представлении и кодированииматематического материала. Мы надеемся, что MathML является важным шагом в этомнаправлении.
/>/>1.2 Истоки и цели
/>1.2.1 История MathML
Задача представления математической информации длякомпьютерной обработки и электронных средств коммуникации возникла задолго допоявления Интернета. Раньше общей практикой для ученых была запись статей внеком виде, основанном на ASCII-символах и дальнейшая пересылка их друг другупо электронной почте. Несколько языков математической разметки, в частности TEX,уже широко использовались в 1992 году, еще до того, как Сеть заняла стользначимое положение.
С самого начала Сеть зарекомендовала себя, как весьмаэффективный способ сделать информацию доступной большому количеству людей. Однако,даже при том, что World Wide Web была изначально задумана и реализована ученымидля ученых, возможности для включения математических выражений в HTML быликрайне ограничены. В настоящее время, большая часть математической информации вСети представлена в виде текста с графическими изображениями научных выражений(в формате />GIF или />JPEG) или в видецелых документов в формате />PDF.
Консорциум World Wide Web (W3C) понимал, что отсутствиеоснов для научной коммуникации является серьезной проблемой. Уже в 1994 годуDave Raggett внес предложение о включении HTML Math в прототип HTML 3.0. Наконференции в Дармштадте в апреле 1995 года был проведен круглый стол поматематической разметке. В ноябре того же года представители Wolfram Researchвыдвинули предложение команде W3C о реализации поддержки математики в рамкахHTML. Важную роль в объединении многих заинтересованных сторон сыгралапроведенная в мае 1996 года встреча Digital Library Initiative вChampaign-Urbana. Результатом этой встречи стало формирование редакционногонаблюдательного совета по HTML Math. Впоследствии эта рабочая группаразрослась, и в марте 1997 года была формально повторно сформирована как перваяW3C Math Working Group. Вторая W3C Math Working Group была сформирована в июле1998 года.
Проект MathML отражает интересы и мнения различных группспециалистов. Многое в развитии MathML заслуживает специального упоминания. Например,это касается вопроса общедоступности, где были особенно ощутимые затруднения. Вэтом направлении много работы проделал T. V. Raman. Neil Soiffer и Bruce Smithиз Wolfram Research поделились своим опытом в решении проблем представленияматематического материала, накопленным при работе над проектом Mathematica 3.0.Их идеи оказали важное влияние на структуру элементов представления. PaulTopping из Design Science также внес свой вклад в математическое форматированиеи редактирование. Много пользы извлек MathML из партнерства с рядом членоврабочих групп, связанных с другими работами по кодированию математическойинформации в />SGML и в сообществах компьютерной алгебры. Вих числе Stephen Buswell из Stilo Technologies, Nico Poppelier из Elsevier Science Stéphane Dalmas из INRIA (Sophia Antipolis), Stan Devitt из Waterloo Maple, Angel Diaz и Robert S. Sutor из IBM, и Stephen M. Watt из University of Western Ontario.Также, на MathML повлиял проект OpenMath, работа рабочей группы ISO 12083 иработа Stilo Technologies над фрагментом DTD для 'семантической' математики. Американскоематематическое общество играло ключевую роль в развитии MathML. Помимо прочего,председателями обеих W3C Math Working Group стали представители этойорганизации. С мая 1996 по март 1997 года группу вел Ron Whitney. Patrick Ionбыл сопредседателем группы с марта 1997 по июнь 1998 вместе с Robert Miner изThe Geometry Center, а с июля 1998 вместе с Angel Diaz из IBM.
/>1.2.2 Ограниченность HTML
Спрос на эффективные средства обмена научной информациейостается по-прежнему высоким. Все больше и больше исследователей, ученых,инженеров, учителей, студентов, работая в различных местах земного шара,полагаются на электронные средства коммуникации. В тоже время, методыраспространения научной нотации, основанные на графическом представлении,преобладающие сейчас в Сети, примитивны и неадекватны. Качество документовоставляет желать лучшего, создание — сложно, а математическая информация,содержащаяся в картинках, не доступна для поиска, индексации и повторногоиспользования в других приложениях.
Существует две основных проблемы с использованием HTML.
Проблема отображения. Рассмотрим уравнение 22x=10. Размерыизображения подобраны так, чтобы соответствовать окружающему тексту размера 14 ptв системе, где оно было создано. Естественно, что в других системах или придругом размере текста уравнение будет выглядеть не так, как задумывал автор. Крометого, изображение с этим уравнением создавалось в предположении, что удокумента будет белый фон. Таким образом, если читатель или браузер установитдругой цвет страницы, то в результате вокруг текста возникнет белый «ореол».
Далее рассмотрим уравнение
/>,
которое служит примером выравнивания горизонтальной осиизображения по верху строчных букв в окружающем тексте. В этом уравненииприсутствует знаменатель, и базисная линия располагается на расстоянии околоодной трети от низа изображения. Это уравнение, например, можно разместить так:
/>,
то есть так, чтобы горизонтальная ось изображения и базиснаялиния уравнения совпадали, но это приведет к проблемам с межстрочнымиинтервалами. В результате этого текст станет тяжело читаемым. Кроме того,вертикальное выравнивание по центру отличается в различных браузерах, делаяневозможным гарантировать правильное расположение формул для различныхпользователей.
Уравнения, оформленные в виде изображений, обычно труднеевоспринимать, чем окружающий текст. Более того, эти проблемы толькоувеличиваются, если документ напечатать. Разрешение изображений около 70 точекна дюйм, тогда как окружающий текст обычно имеет 300, 600 или более точек. Такаяразница в качестве неприемлема для большинства людей.
Проблемы кодирования. Попытаемся найти в этом документефрагмент, например, '=10' первого уравнения выше. Или попробуем скопировать ивставить уравнение в другое приложение; более того, попробуем скопировать ивставить только фрагмент уравнения. При использовании методов, основанных награфическом представлении, ни одна из этих задач не может быть решена. И хотяиспользование атрибута alt в документе может немного помочь, ясно, чтоинтерактивные web — документы должны предоставлятьболее продвинутый интерфейс между браузерами и математической информацией.
Другая проблема использования изображений для математическихобъектов — необходимость высокой пропускной способности канала связи. Представлениеуравнения разметкой обычно меньше по объему и лучше сжимаемо по сравнению спредставлением в виде изображения. Кроме того, при использовании разметки длязаписи уравнений большая часть работы по отображению перекладывается наклиентскую машину.
/>1.2.3 Требования к математической разметке
Некоторые проблемы, связанные с включением математическихвыражений в HTML-документ в виде изображений, могут быть решены с помощьюулучшения обработки последних браузерами. Хотя, даже если такое и произойдет,останется проблема доступа к информации, содержащейся в математическихвыражениях из других приложений. Поэтому, в будущем, улучшение методов,основанных на графическом представлении неперспективно. Для полной интеграцииматематического материала в web-документ необходимо представление математическойнотации с помощью языка разметки.
При создании любого языка разметки необходимо тщательноучесть потребности его потенциальных пользователей. В случае с MathML областьприменения простирается от сферы образования до сферы исследований и дажебизнеса.
Сфера образования является большой и важной областью, вкоторой должна быть обеспечена возможность размещения в Сети научных материаловдля занятий. В тоже время, преподаватели ограничены во времени и оборудовании,и обычно останавливаются перед сложностью создания технических web-документов. Студенты и преподаватели должны иметьвозможность быстро и легко создавать математические документы, используяинтуитивно понятные, легкие для изучения и «дешевые» инструменты.
Электронные учебники — другой способ использования Сети,который потенциально очень важен для образования. Известный специалист поуправлению Peter Drucker прогнозировал конец эпохи построения системы высшегообразования вокруг больших университетских городков и начало ее распространениячерез Сеть. Электронные учебники должны быть более интерактивными и позволятьсвязывать текст с научным программным обеспечением.
Академические и коммерческие исследовательские группыпостоянно выпускают большое количество научного материала. Все больше и большенаучных публикаций размещается в базах данных, таких как довольно известныйархив препринтов по физике и математике Национальной Лаборатории в Лос-Аламосе(Los Alamos). В особенности это относится к некоторым областям физики иматематики, где цены на академические журналы весьма высоки. К тому же, базыданных с информацией о математических исследованиях, такие как MathematicalReviews и Zentralblatt für Mathematik, предлагают огромное количествоссылок на содержащиеся в Сети математические документы.
Для соответствия требованиям исследовательского сообщества,язык математической разметки должен упростить обслуживание и работу с большимиобъемами документов, где крайне важны автоматический поиск и индексация. Из-забольшого количества уже существующих математических документов, особенно вформате TEX, также немаловажно иметь возможность конвертации междусуществующими форматами и любым новым. И наконец, для научных исследованийжизненно необходима возможность хранить информацию в архивах.
Многие ученые и инженеры используют в своей работетехнические документы для обмена и записи результатов экспериментов, а такжедля компьютерного моделирования и проверки проведенных вычислений. Для такогорода использования методы размещения математической информации в Сети должныпредоставлять стандартный способ совместного ее использования так, чтобы можнобыло легко ее прочитать, обработать и создавать с использованием доступных ипростых инструментов.
Другое общее требование заключается в возможностиотображения математического материала в других информационных средах, таких какречь или шрифт Брайля, которые крайне важны для людей с нарушением зрения.
Коммерческие издательства также заинтересованы в продвиженииметодов представления математической информации в Сети в различном виде отэлектронных версий обычных книг до интерактивных учебников и академическихжурналов. Издательствам требуется такой способ размещения математическихдокументов в Сети, который бы имел возможность для высококачественного вывода,был применим для крупномасштабного коммерческого использования и, повозможности, совместим со старыми системами, в частности, на основе SGML.
/>1.2.4 Цели проекта MathML
Для соответствия различным требованиям научного сообществаMathML разрабатывался с учетом следующих условий.
MathML должен:
Представлять математический материал так, чтобы он подходилдля обучения и научной коммуникации любого типа.
Представлять как математическую нотацию, так иматематическое содержание.
Обеспечивать возможность преобразования между ним и другимиматематическим форматами, как презентационными, так и семантическими. Форматывывода должны включать:
графическое отображение
синтезаторы речи
форматы систем компьютерной алгебры
форматы других языков, таких как TEX
отображение в виде простого текста, например, эмуляторыVT100
печатные устройства, включая работающие со шрифтом Брайля
Понятно, что такие преобразования могут привести к некоторойпотере информации.
Иметь возможность включения информации, необходимой дляопределенных средств отображения и других приложений.
Поддерживать корректный просмотр длинных выражений.
Обеспечивать расширяемость.
Поддерживать шаблоны и другие средства редактированияматематической информации.
Быть понятным человеку и простым для программной обработки.
В независимости от того, насколько удачен MathML как языкразметки, он будет полезен только в случае грамотного его применения. W3C MathWorking Group определила короткий список дополнительных целей его реализации. Внем кратко описана минимальная функциональность, которую должны обеспечиватьпрограммы отображения и обработки MathML.
Выражения MathML внутри страниц HTML (и XHTML) должныкорректно отображаться в наиболее распространенных браузерах в соответствии сустановками читателя и автора, при этом должно обеспечиваться качество,максимально достижимое на данной платформе.
Документы HTML (и XHTML), содержащие выражения MathML,должны корректно выводиться на печать с высоким разрешением.
Выражения MathML, включенные в web-страницы, должныреагировать на действия пользователя, такие как работа с мышью, и осуществлятьвзаимодействие с другими приложениями через браузер.
Редакторы и конвертеры математических выражений должныразрабатываться с учетом возможности создавать web-страницы, содержащихвыражения MathML.
В ближайшее время для решения проблемы отображенияпланируется использовать встраиваемые элементы, такие как Java-апплеты, плагиныи элементы управления ActiveX. Однако объем, в котором будет это реализовано,зависит от сотрудничества и поддержки производителей браузеров и другогопрограмного обеспечения. W3C Math Working Group продолжает работу с рабочимигруппами по Document Object Model (DOM) и Extensible Style Language (XSL),чтобы гарантировать, что нужды научного сообщества будут удовлетворены вбудущем. Ясно, что MathML 2.0 является значительным шагом вперед по сравнению сMathML 1.0 Recommendation (Апрель 1998).
/>/>1.3 Роль MathML в Сети
/>
Цели разработки MathML требуют гибкой и расширяемой системызаписи математического материала, позволяющей взаимодействовать с внешнимипрограммами и осуществлять высококачественное отображение в различныхинформационных средах. Но любой язык разметки, удовлетворяющий всем этимтребованиям, достаточно сложен.
В то же время, для многих групп пользователей, например,студентов, важно иметь простой путь для включения математических выражений в web-страницы. Аналогично, для других групп, например, дляпользователей системы TEX, лучшим решением была бы система,позволяющая непосредственное включение в web-страницыразметки при помощи языка, подобного TEX. В общем, различным группампользователей требуются различные формы ввода и вывода информации, наиболее соответствующиеих потребностям. Следовательно, в идеале система для размещения математическихдокументов в Сети должна предоставлять как специализированные сервисы для вводаи вывода, так и общие сервисы для обмена информацией и отображения в различныхинформационных средах.
На практике, обзор того, что должен обеспечиватьматематический стандарт в сети для специализированных и общих нужд, приводит кидее многоуровневой архитектуры. Первый уровень включает стандартные мощныесредства обмена, обработки и отображения математических данных. Второй уровеньвключает специализированные инструменты, предназначенные для конкретных групппользователей, с помощью которых можно легко кодировать математическуюинформацию для ее распространения среди ограниченного круга пользователей.
MathML создан для разметки математической информации нанижнем более общем уровнем двухуровневой архитектуры. Это предполагает разметкусложной нотационной и семантической структуры в строгой, регулярной форме,простой для обработки средствами отображения, поиска и индексации, а такжедругими математическими приложениями.
Вследствие этого, разметка MathML не предполагаетнепосредственного использования авторами. MathML понятен для человека, чтосильно помогает при отладке, но во всех случаях, за исключением простейших, онслишком сложен для ручного кодирования. Вместо этого авторы должны будутиспользовать специальные редакторы формул, конвертеры и другиеспециализированные программные средства для создания документов MathML. Вкачестве альтернативы, некоторые программы отображения и системы поддержкиматематических документов могут преобразовывать другие входные форматы в MathML«на лету».
В некотором смысле MathML аналогичен другим низкоуровневымкоммуникативным форматам, таким как язык PostScript, разработанный Adobe. Выможете создавать PostScript-файлы различными способами, в зависимости от вашихпотребностей: эксперты создают и правят их вручную, авторы создают их с помощьютекстовых процессоров, дизайнеры — программами-иллюстраторами и так далее. Еслиу вас есть PostScript-файл, вы можете распространить его среди очень большойаудитории, так как устройства отображения PostScript, такие как принтеры ипрограммы для просмотра на экране, широко доступны.
Одной из причин разработки MathML как языка разметки общегокоммуникативного уровня является стимулирование разработки математическогопрограммного обеспечения Сети верхнего уровня. MathML представляет способкоординирования усилий разработчиков модулей программ для создания иотображения математического материала. Упрощая разработку функциональных частейбольшой системы, MathML может стимулировать разработку программ, которые будуточень полезны потенциальным пользователям.
Авторы могут создавать MathML-документы, используяинструменты, лучше подходящие для их нужд. Студенты могут предпочитатьвизуальные редакторы формул, с возможностью сохранять блоки разметки MathML вXHTML-файле. Исследователи могут использовать пакеты компьютерной алгебры,автоматически кодирующие математическую информацию так, чтобы коллеги могли еевзять из web-страницы и обработать. Издателиакадемических журналов могут использовать программу, которая конвертируетразметку TEX в HTML и MathML. Независимо от метода создания web-страницы,содержащей MathML, становятся доступны все преимущества общего коммуникативногослоя. Различные программы, работающие с MathML, могут быть использованы дляодного и того же документа, чтобы вывести его в систему воспроизведения речи ина печать, а также для ввода в систему компьютерной алгебры и для управления имкак частью большого архива web-документов. Для высококачественной печатиматематических документов в формате MathML часто проводится обратнаяконвертация в стандартные системы верстки, включая TEX, которыйспециально создан для этих целей. Наконец, можно ожидать, что в конечном счетеMathML будет интегрирован в другие области, где встречаются математическиеформулы, такие как электронные таблицы, пакеты статистической обработки данныхи средства инженерной разработки.
W3C Math Working Group сотрудничает с различными софтвернымикомпаниями для гарантии того, что скоро появятся различные программы для работыс MathML, включая как средства создания документов, так и их отображения. Текущийсписок программ, работающих с MathML расположен на странице Math World Wide WebConsortium.
/>Первоначальная концепция HTML Math состоялав том, чтобы просто расширить набор тэгов HTML и таким образом обеспечитьнепосредственную интерпретацию в браузере. Однако еще до этого лавинообразныйрост сети сделал понятным, что требуется глобальный механизм расширений, а математическаяинформация является только одним из типов структурированных данных, которыемогут быть интегрированы в Сеть с помощью такого механизма.
При условии, что MathML должен интегрироваться в Сеть вкачестве расширения, очень важно, чтобы MathML и использующие его программымогли хорошо взаимодействовать с существующей web-средой.В частности, MathML должен разрабатываться с учетом трех типов взаимодействия. Во-первых,для создания математического контента важно, чтобы существующие языкиматематической разметки могли быть преобразованы в MathML, и чтобы всуществующие редакторы была добавлена возможность создания документов MathML. Во-вторых,должно обеспечиваться возможность вставлять разметку MathML в разметку HTML,как ее дополнение, в этом случае, в будущем, она будет доступна для браузеров,поисковых систем и всех типов web-приложений, которыесейчас работают с HTML. И, наконец, должна обеспечиваться возможностьотображения MathML, встроенного в HTML, современными браузерами, даже еслирезультат будет далек от идеала. С переходом от HTML к XHTML всевышеперечисленные требования станут еще более необходимыми.
World Wide Web полностью интернационален. Математика — язык,использующийся во всем мире. Математическая нотация в науке и технике тесносвязана с национальными языками. W3C стремится быть конструктивной силой враспространении коммуникативных возможностей в мире. Поэтому разработчики MathMLстолкнулись с проблемой интернационализации. Неизвестно о несовместимости этойверсии MathML с языками с написанием слева направо. Запись слева направоявляется стандартной в MathML 2, и понятно, что потребность в записиматематических формул в текстах на некоторых национальных языках еще невозникала. Так называемая «двунаправленная технология» толькоразрабатывается, и лучшая поддержка формул в этом контексте — задача будущихразработок.
/>1.3.1 Существующие языки математической разметки
Возможно, наиболее значимое влияние на языки математическойразметки последних двух десятилетий оказала система верстки TEX,разработанная Дональдом Кнутом (Donald Knuth). TEX являетсястандартом de facto в математическом сообществе, и вообще широко распространенсреди ученых. TEX устанавливает стандарт качества для визуализациидокументов, и много усилий было приложено, чтобы MathML мог обеспечить такое жекачество. Более того, так как существует множество документов в формате TEX,и много людей, работающих с ней, основной при создании MathML была возможностьконвертации документов из формата TEX в формат MathML. Возможностьтакой конвертации была продемонстрирована экспериментальными программами.
Обширная работа по кодированию математического материалабыла также выполнена в сообществе SGML, и основанные на SGML схемы кодированияшироко используются коммерческими издателями. ISO 12083 — важный язык разметки,содержащий фрагмент DTD первоначально предназначенный для описания визуальногопредставления математической нотации. Так как математическая нотация ISO 12083и ее производные имеют много общего с TEX, и так как SGML болеерегулярен и структурирован, чем TEX, многое из того, что сделано длясовместимости MathML с TEX, также хорошо применимо к ISO 12083.
MathML также уделяет большое внимание совместимости сдругими математическими программами и, в частности, с системами компьютернойалгебры. Много элементов представления MathML частично основаны на механизмепечатных боксов (typesetting boxes). Элементы содержания MathML во многомзаимствованы из проекта OpenMath и работы Stilo Technologies по созданиюматематического DTD. Проект OpenMath был тесно связан с сообществами SGML икомпьютерной алгебры. В этом проекте были предложены SGML и XML-основанныеспособы взаимодействия между пакетами математических программ. Возможностьсоздания и интерпретации MathML в системах компьютерной алгебры былапродемонстрирована экспериментальными программами.
/>1.3.2 Механизм расширения HTML
Как отмечено выше, успех HTML привел к попыткам интеграции вСеть различных типов данных и приложений. Каждый новый формат или приложениепотенциально накладывал новые требования на HTML и производителей браузеров. Черезнекоторое время стало понятно, что необходим общий механизм для интеграцииновых расширений в HTML. Изначально, рабочая группа начала работу с идеей опростом расширении HTML в духе первых попыток реализации поддержки математики вHTML 3.2 Но при ближайшем рассмотрении, это оказалось не такой уж и хорошейидеей. К моменту начала работ над MathML, XML стал доминирующим механизмомобщих расширений.
XML расшифровывается как eXtensible Markup Language. Он создан как упрощеннаяверсия SGML, метаязыка, используемого для определения грамматики и синтаксисаHTML. Одна из целей XML — возможность применения в Сети, и в данном случае онможет быть рассмотрен как общий механизм расширений HTML. Как следует из егоназвания, расширяемость — основная черта XML. Авторы получили возможностьобъявлять и использовать новые элементы и атрибуты. В то же время, правилаграмматики и синтаксиса XML требуют обеспечения регулярной структуры документадля реализации автоматической обработки и сопровождения больших объемовдокументов. Строго говоря, XML является удобным способом описания древовидныхструктур и, таким образом, может использоваться в качестве языка разметки.
К моменту образования первой W3C Math Working Group XML ужеимел широкую поддержку среди фирм-разработчиков, включая основных производителейбраузеров. Глобальный переход от HTML к XML важен для W3C. Промежуточнымрезультатом работы в этом направлении стало появление рекомендации XHTML,которая определяет новую модульную форму HTML. MathML может рассматриваться какодин из модулей, который очень хорошо соответствует новому формату XHTML.
Кроме того, другие XML-приложения для всех видов публикациии обработки документов обещают стать все более и более распространенными. Следовательно,как с теоретической так и с практической точки зрения, было бы логичноопределить MathML как XML-приложение.
/>1.3.3 Механизм расширения браузера
К настоящему времени детали общей модели для отображения иобработки XML-расширений в HTML в основном ясны, в отличие от ситуации, когдабыла принята MathML 1.0 Recommendation. Предполагается, что свойстваформатирования (Formatting Properties), разработанные Cascading Style Sheets иFormatting Properties Working Group для CSS и доступные через Document ObjectModel (DOM), будут применяться для элементов MathML, чтобы получитьстилистический контроль над представлением MathML. Дальнейшая разработкасвойств форматирования проводится внутри рабочих групп CSS&FP и XSL.
На данный момент механизмы таблиц стилей не способныобеспечить непосредственное отображение MathML браузером, поэтому необходиморасширить возможности браузеров, используя встроенные объекты (embeddedelements) для отображения MathML. Уже возможно использовать в браузеревстроенный ограниченный механизм отображения для обработки встроеннойXML-разметки, такой как MathML, и обеспечивать взаимодействие ее с окружающей web-страницей,однако, результаты пока не полностью соответствуют пожеланиям.
Для специализированной обработки, такой как связь ссистемами компьютерной алгебры, возможность внешнего вызова других программостанется особенно необходимой. Для того чтобы сложное взаимодействие междубраузерами и встроенными объектами было удовлетворительным, необходимоопределить достаточно богатую объектную модель документа. По этой причине W3C Math Working Group тесно сотрудничает сDocument Object Model (DOM) Working Group.
Для обработки встроенных элементов и для многостороннейсвязи между научным программным обеспечением модель таблиц стилей в некоторыхслучаях далека от идеала. Это может наложить дополнительные сложностиреализации в системе, когда можно получить некоторые преимущества, и этонакладывает требования к реализации взаимодействия между браузерами ивстроенными механизмами отображения, что, вероятно, будет недоступно вближайшем будущем.
По этим причинам спецификация MathML определяетатрибут-ориентированную модель, которая показала себя в нескольких независимыхприложениях, как очень эффективная для высококачественного отображения сложныхматематических выражений. Атрибуты представления MathML, где это возможно,используют свойства форматирования W3C. Также, элементы MathML допускаютатрибуты class, style и idдля обеспечения совместимости с традиционными таблицами стилей CSS. Однако, внастоящее время, имеется немного реализаций, где технология CSS используетсяпри отображении MathML.
Использование механизма стилевых таблиц CSS уже упоминалосьвыше. Механизмы XSL также недавно стали доступны для преобразованияXML-документов в формат отображения. Действительно, альтернативные вариантыэтой рекомендации, включая определяющую HTML-версию, были получены изXML-источника, используя средства языка трансформаций XSL. Поскольку разработкив этом направлении доступны для MathML, ожидается, что их использование станетдоминирующим методом стилистического контроля представлением MathML, которыйпредлагается для использования в отображающих средах, поддерживающих этимеханизмы.
/>/>1.4 Обзор MathML
Главной проблемой создания математического языка разметкидля применения в Сети является необходимость задавать одновременнопредставление математической нотации и содержание представляемых математическихидеи или объекта.
Отношение математической нотации и математической идеи — тонкаявещь. Формально, математическая логика поднимает вопросы о соответствии междусистемами символьной логики и явлениями, которые они моделируют. На интуитивномуровне, каждый, кто использовал математическую нотацию, знает как важенправильный выбор нотации; символическая структура нотации предлагает структурулогическую. Например, нотация Лейбница для производных предлагает цепь правилвычисления через символические дроби.
Математики и учителя очень хорошо интуитивно чувствуют это; частьих работы как раз и состоит в выборе нотации, которая подчеркивает ключевыеаспекты проблемы и скрывает или уменьшает несущественные. В математике оченьчасто пишут что-либо, хотя строгое значение этого является совсем другим,потому что опыт показывает, что это значительно лучше передает идею на высокомуровне, чем строгие детали.
В других случаях, математическая нотация используется длязаписи полного, точного значения свойств математического объекта. Математическаянотация может быть потрясающе строгой и при аккуратном использовании полностьюсвободной от неоднозначности. Более того, это отсутствие неоднозначности делаетвозможным описать математические объекты так, что они могут быть использованы вкомпьютерных приложениях, таких как системы компьютерной алгебры и системывоспроизведения речи. В ситуации, когда главным является взаимодействие междуприложениями, детали визуального представления играют минимальную роль.
MathML позволяет авторам записывать как нотацию,представляющую математический объект, и саму математическую структуру объекта. Болеетого, авторы могут смешивать оба типа записи для определения представления исодержания математической идеи. Оставшаяся часть этого раздела дает основноепредставление о том, как MathML может быть использован для каждой из этих целей.
/>1.4.1 Таксономия элементов MathML
Все элементы MathML делятся на три группы: элементыпредставления, элементы содержания и интерфейсные элементы.
Элементы представления описывают визуально ориентированнуюдвухмерную структуру математической нотации. Типичным примером является элементmrow, который обычно применяется для обозначениягоризонтального ряда частей выражения, и элемент msup,который отмечает верхний индекс. Как правило, каждый элемент представлениясоответствует одному типу нотационной схемы, такой как ряд, верхний индекс, нижнийиндекс и так далее. Любая формула состоит из частей, которые могут состоять изпростейших элементов таких как цифры, буквы или другие символы.
Хотя предыдущий абзац связан с аспектом отображенияматематической нотации, и, следовательно, разметкой представления, те же самыерассуждения о декомпозиции применимы к абстрактным математическим объектам, азначит и разметке содержания. Например, в контексте разметки содержания верхнийиндекс обычно обозначает операцию потенцирования, требующую двух операндов: 'основания'и 'показателя'. Это ни коим образом не является совпадением, так как обычноматематическая нотация тесно связана с логической структурой рассматриваемыхматематических объектов.
Рекурсивная природа математических объектов и нотацииотражена в разметке MathML. Большинство элементов представления и содержаниясодержат в себе другие элементы MathML, отвечающие за части, из которыхрекурсивно построен исходный объект. Первоначальная схема обычно называетсяродительской, а части — дочерними. В общем, выражения MathML можно представитьв виде деревьев, где каждый узел соответствует элементу MathML, ветвь под'родительским' узлом соответствует 'дочерним' узлам, и листья деревасоответствуют атомарным элементам нотации или содержания, таким как числа,символы и т.д.
Большинство элементов-листьев в дереве выражения MathML иликанонические пустые элементы без тела, или токены. Канонические пустые элементыотображают символы в MathML, например, это делает элемент содержания .Токены — единственные элементы MathML, которые могут содержать текстовые данные.Текстовые данные в MathML содержат символы Unicode и специальные символьныеконструкции, сделанные с помощью элемента mglyph. Третьимтипом элементов-листьев в MathML являются комментарии,используемые для хранения данных, формат которых отличен от формата MathML.
Наиболее важными токенами представления являются mi,mn и mo, используемые дляпредставления идентификаторов, чисел и операторов соответственно. Обычно этиэлементы отображаются разными стилями: числа — прямым шрифтом, идентификаторы — наклонным, вокруг операторов оставляется дополнительное свободное пространство.В разметке содержания содержится только три токена, ci,cn и csymbol, дляидентификаторов, чисел и новых введенных в документ символов соответственно. Вразметке содержания существуют различные элементы для часто используемыхфункций и операторов. Элемент apply применяется дляпользовательского расширения стандартного набора.
В терминах разметки, большинство элементов MathMLопределяются открывающим и закрывающим тегами, которые ограничивают содержаниеэлемента. В случае токенов содержимое является текстовыми данными, вбольшинстве остальных случаев — разметкой дочерних элементов. Элементы третьейкатегории, называемые каноническими пустыми элементами, не требуют никакогосодержания и определяются одиночным тегом вида .Примером может служить элемент в разметкесодержания.
Давайте возьмем для примера выражение (a + b) 2и рассмотрим на практике описанные выше принципы. Одним из вариантов разметкипредставления для этого выражения будет такой:
a
+
b
2
Этот пример демонстрирует использование различных элементовпредставления. Первый элемент, очень широко используемый, это элемент mrow.Он используется для обозначения ряда данных с выравниванием по горизонтали. Данные,содержащиеся между тегами и рассматриваются как аргумент элемента mrow. Такимобразом, в элементе mrow содержится целое выражение. Как было замеченоранее, большинство математических выражений состоят из подвыражений. Этиподвыражения, в свою очередь, также содержатся в элементе mrow.Например, a + b также содержится в mrow.
Элемент mfenced используется дляограничения формул различными типами скобок. По умолчанию используются круглыескобки.
Обратите внимание на использование элемента miдля отображения переменных a и b и элемента mo длявыделения оператора +.
Элемент msup применяется ввыражениях с верхними индексами и имеет два аргумента: основание (в нашемслучае (a+b)) и показатель (в нашем случае 2).
Разметка содержания для того же примера будет иметь вид:
a
b
2
Элемент apply обозначаетприменение операции к выражению. В нашем примере применяются пустойэлемент power (для возведения в степень) и аналогичныйэлемент plus (для сложения). Обратите внимание, что обаоператора имеют два аргумента. Но если в случае возведения в степень их порядокважен лишь отчасти, то в случае применения apply он имеетключевое значение, так как первый дочерний элемент является оператором,принимающим остальные в качестве аргумента.
Обратите внимание на использование элемента ciдля выделения переменных a и b, и элемента cn длявыделения числа 2.
/>1.4.2 Разметка представления
Разметка представления MathML состоит из приблизительно 30элементов, которые имеют более 50 атрибутов. Большинство элементов представляютиз себя схемы форматирования, которые содержат в себе другие элементыпредставления. Каждая схема соответствует двумерному фрагменту нотации, такомукак верхний или нижний индекс, дробь или таблица. Кроме того, в разметкепредставления есть описанные выше токены mi, moи mn и несколько других, которые используются не такчасто. Несколько оставшихся элементов представления — это пустые элементы,связанные, в основном, с выравниванием.
Все схемы форматирования делятся на несколько классов. Однагруппа элементов отвечает за индексы и содержит такие элементы, как msubmunder, и mmultiscripts.Другая отвечает за более общее форматирование и включает элементы mrow,mstyle и mfrac. Третьягруппа реализует работу с таблицами. Элемент mactionобразует еще одну категорию и позволяет кодировать различные типы действий наднотацией, встречающиеся в выражениях, которые toggles between two pieces ofnotation.
Схемы форматирования обладают важным свойством: важенпорядок их дочерних элементов. Например, первый дочерний элемент схемы mfracявляется числителем дроби, а второй — знаменателем. Так как порядок дочернихэлементов не задается на уровне XML с помощью MathML DTD, информация о порядкедоступна только препроцессору MathML, в отличие от общего препроцессора XML. Когдамы хотим подчеркнуть, что элементы MathML, такие как mfrac,требуют указания дочерних элементов в определенном порядке, мы рассматриваем ихкак аргументы, а mfrac — как 'конструктор' нотации.
/>1.4.3 Разметка содержания
Разметка содержания содержит около 120 элементов,принимающих около дюжины атрибутов. Большинство этих элементов — пустые,соответствующие различным математическим операторам, зависимостям и функциям. Вкачестве примера можно привести partialdiff, leqи tan. Другие, такие как matrix и set,используются для представления различных типов математических данных. Третьяважная категория элементов разметки содержания, такая как apply,используется для применения к выражениям операций и создания новыхматематических объектов.
Возможно, одним из наиболее важных элементов содержанияявляется apply. Он используется для применения функции илиоперации к набору аргументов. Здесь также важно положение дочерних элементов: первыйдочерний элемент указывает применяемую функцию, остальные — аргументы всоответствующем порядке. Надо отметить, что конструкция applyвсегда использует префиксную нотацию, как язык программирования LISP. Вчастности, даже бинарные операторы, такие как вычитание, описываютсяприменением префиксного оператора вычитания к двум аргументам. Например, a — b будет описано так:
a
b
Многие функции и операции, для того чтобы четкоопределенными, требуют одного или нескольких кванторов. Например, кроме подинтегральноговыражения у определенного интеграла должны быть заданы пределы интегрирования ипеременная, по которой происходит интегрирование. По этой причине существуетнесколько схем-спецификаторов вроде bvar и lowlimit.Они используются с операторами diff и int.
Конструкция declare особенно важна дляразметки содержания, которая может обрабатываться системами компьютернойалгебры. Элемент declare реализует основной механизм присваивания,когда может быть объявлена переменная определенного типа с определеннымзначением.
И в примерах разметки представления, и в примерах разметкисодержания математические выражения рекурсивно разлагаются на вложенные, болеепростые элементы MathML, определяющие стадию декомпозиции. В следующем разделеэто проиллюстрировано на более сложных примерах.
/>1.4.4 Объединение представления и содержания
Для разных типов задач различные типы разметки могут бытьнаиболее подходящими. Документы, созданные до широкого распространения Сети,очень часто предназначены только для визуального обмена информацией и наилучшимобразом преобразуются в чистую разметку представления, так как семантическаяинформация, которую подразумевал автор, может быть восстановлена толькоэвристически. Наоборот, некоторые математические приложения и средства обученияоснованы на содержании. Большинство же приложений находятся посредине междуэтими крайностями. Для них наиболее подходящим вариантом является объединениеразметки представления и содержания.
Правила объединения разметки представления и содержанияследуют из общего принципа, что смешанная разметка может быть только в техместах, где она действительно необходима. Для разметки содержания, встроенной вразметку представления, это означает, что любые фрагменты содержания должныбыть семантически значимыми и не требовать дополнительных аргументов иликванторов для того, чтобы быть четко определенными. Для разметки представления,встроенной в разметку содержания, это означает, что разметка представлениядолжна содержаться в токене разметки содержания как неделимый элемент,используемый в качестве имени переменной или функции.
Другой способ заключается в использовании элемента semantics.Он используется для связывания выражений MathML и различных типов примечаний. Чащевсего элемент semantics используется для того, чтобы присоединитьфрагмент разметки содержания к разметке представления как семантическоепримечание. Таким образом, автор может определить нестандартную нотацию,которая будет использоваться при отображении конкретного выражения. Другимприменением элемента semantics является включение других семантическихспецификаций, таких как OpenMath выражения, в выражения MathML. В этом случае,элемент semantics может быть использован для расширенияразметки содержания MathML.
/>/>1.5 MathML в документах
Все вышесказанное относится к отдельным формулам внеконтекста документа. Давайте подробно рассмотрим пример, соответствующийпримеру «Hello, World!», разбираемому при изучении языковпрограммирования. Мы представим полный код документа XHTML 1.0, содержащегорассмотренный выше квадрат суммы двух переменных:
MathML's HelloSquare
This is a perfect square:
a
+
b
2
Это стандартная структура документа XHTML. Он начинаетсяоткрывающим тегом , содержащим декларацию пространстваимен XML и объявление языка. Элемент head содержит, как обычно, заголовок. Открывающий тег beginning also has anamespace declaration of an abbreviative prefix letter mto be used for the standard MathML namespace. Затем идет обычныйпараграф. И, наконец, идет элемент math, который такжеимеет декларацию пространства имен. Внутри элемента mathнаходится разметка MathML.
/>/>/>1.6 Примеры MathML
Далее мы будем приводить примеры в форме фрагментов разметкиMathML, которые в реальном документе расположены в элементе math.
/>1.6.1 Примеры разметки представления
Нотация: x2 + 4x + 4 = 0.
Разметка:
x
2
+
4
⁢
x
+
4
=
0
Обратите внимание на использование вложенных элементов mrowдля обозначения термов. Например, левая часть уравнения является операндом для'='. Выделение термов значительно улучшает структуру для визуальногоотображения, воспроизведения с помощью голоса и переноса строк. Символ MathML InvisibleTimesприменяется для того, чтобы сообщить программе отображения, что между 4 и xзапрещен перенос строки. На самом деле, такое использование данного элемента,введенного еще в MathML 1.0, не рекомендуется. Все обычные текстовые данныезадаются кодами Unicode. Тем не менее, хотя символ для замены ⁢ожидается в Unicode 3.2, и рассматриваются предложения поулучшению Unicode, в текущей версии Unicode 3.0 такого символа не используется.Мы можем использовать ожидаемую цифровую ссылку ࠎ но для понятностибудем продолжать использовать в примерах элемент InvisibleTimes.
Разметка:
x
=
-
b
±
b
2
-
4
⁢
a
⁢
c
2
⁢
a
Элементы mfrac и msqrtиспользуются для создания дроби и квадратного корня соответственно.
Обратите внимание, что знак 'плюс-минус' задаетсяспециальной сущностью ±, хотя в данном случае существуеттакой символ Unicode, как B1;. MathML предоставляет обширный списокимен элементов, задающих математические символы. В дополнение к математическимсимволам для вывода документа на экран и на печать, MathML предоставляетсимволы для воспроизведения документа с помощью речи. Для воспроизведения спомощью речи важно автоматически определять, как должен быть прочитан фрагмент
z
x
+
y
Как 'z умножить на величину x плюс y'or 'z умножить на x плюс y'. Символы ⁢(U+2062) и ⁡ (U+2061) предоставляют авторамспособ напрямую кодировать такие различия для программ речевого воспроизведения.Например, в первом случае, символ ⁢ (U+2062)должен быть вставлен после строки, содержащей z. MathML также содержиттакие сущности как ⅆ (U+2146), представляющая дифференциал. Припечати она отображается с отличными от обычного символа 'd' интервалами, апроизноситься может как 'd' или 'with respect to'. Пока для исключениядвусмысленности используются теги содержания или любой другой механизм, авторывсегда должны использовать описанные выше символы как сущности для того, чтобысделать документы более доступными.
Разметка:
A
=
x
y
z
w
Элемент mtable указывает на началотаблицы в MathML. Элемент mtr определяет строку таблицы и элемент mtdсодержит данные для элемента строки (ячейки). Большая часть элементов имеетатрибуты, определяющие свойства отображения на экране и на печати. Например, уэлемента mfenced есть атрибуты, определяющие, какие символыдолжны использоваться в начале и в конце группируемого выражения. Атрибутыэлементов-операторов устанавливаются в определенное справочником значение поумолчанию при помощи элемента .
/>1.6.2 Примеры разметки содержания
Нотация: x2 + 4x + 4 = 0.
x
2
4
x
4
0
Обратите внимание, что элемент applyиспользуется для уравнений, операторов и функций.
Разметка содержания MathML не содержит элемента дляотображения операции 'плюс-минус'. Поэтому мы используем элемент moдля объявления, что мы хотим применить разметку представления для этогооператора в качестве оператора содержания. Это простой пример того, какразметки представления и содержания могут быть объединены для расширенияразметки содержания.
Нотация:
Разметка:
A
x
y
z
w
Здесь мы используем элементы matrix и matrixrowдля помещения содержания в строку матрицы. Заметьте, что по умолчаниюотображение элемента содержания matrix включает в себяограничивающие круглые скобки, а, значит, нет необходимости кодировать ихвручную. В этом состоит отличие от элемента представления mtable,который может и не относиться к матрице, и, следовательно, требует отдельногоуказания, что надо использовать скобки./>/>1.6.3 Примеры смешаннойразметки
Нотация: />
Разметка:
∫
1
t
ⅆ
x
x
x
1
t
1
x
В этом примере мы используем элемент semanticsдля того, чтобы представить выражение разметки содержания MathML каксемантическое примечание к выражению разметки представления. В представленнойразметке элемент msubsup применяется для задания нижних и верхнихиндексов в выражении, в данном случае — пределов интегрирования в определенноминтеграле. Также для описания символов интеграла и дифференциала используютсясущности ∫ и ⅆ.
Элемент semantics содержит вкачестве первого дочернего элемента комментируемое выражение, а в качествевторого — сам комментарий. На тип нотации, задаваемой элементом semantics,ограничений не существует. Например, можно задавать разметку TEX иликомпьютерной алгебры в качестве примечания. Тип аннотации задается атрибутом encodingи элементами annotation, annotation-xml.
Элемент semantics также частоприменяется, когда надо задать предложения по представлению разметки содержаниядокумента. В этом случае, в применении к вышеописанной формуле мы получим такуюразметку:
x
1
t
1
x
∫
1
t
ⅆ
x
x
Этот тип комментариев полезен, если требуется отображениеразметки содержания, отличное от заданного по умолчанию. Например, поумолчанию, некоторые программы отображения могут выводить подинтегральноевыражение в виде ' (1/x) dx'. С помощью комментарияMathML-Presentation можно задать отображение в виде 'dx/x'. Будьтевнимательны, так как программы отображения не обязаны принимать во вниманиерасположенную в комментариях информацию. Ее использование зависит от программы.
/>/>1.7 Синтаксис и грамматика MathML
/>1.7.1 Синтаксис и грамматика MathML
MathML основан на [XML] (Extensible Markup Language), азначит его синтаксис подчиняется правилам сиснтаксиса XML, и грамматикаопределяется DTD (Document Type Definition). Другими словами, деталииспользования тегов, атрибутов, сущностей и всего остального определены вспецификации языка XML, а детали, касающиеся элементов и атрибутов MathML,вложенности элементов и так далее, определены в MathML DTD.
W3C, стараясь увеличить легкость и гибкость использованияXML в Сети и поддержать создание модульных XML-приложений, обнаружил, чтоосновная форма DTD не является достаточно гибкой. Поэтому, была создана рабочаягруппа W3C для разработки XML Schemas, которые являются документамиспецификации и должны заменить DTD. MathML 2.0 разработан так, что математикимогли использовать все преимущества развивающихся Web-технологий. Такимобразом, существует схема для MathML.
Также MathML определяет синтаксические и грамматическиеправила в дополнение к общим правилам, которые он наследует как приложение XML.Эти правила позволяют MathML представлять значительно больше информации, чемвозможно представить с помощью чистого XML, без введения большого числа новыхэлементов и использовать значительно более сложные DTD или схемы. Конечно,недостатком введения специфических правил MathML является то, что созданныедокументы не могут обрабатываться процессорами и валидаторами XML.
Существует два основных типа дополнительных грамматических исинтаксических правил MathML. Первый тип включает в себя установкудополнительных критериев на значения атрибутов. Например, в чистом XMLневозможно потребовать, чтобы значение атрибута было положительным целым числом.Второй тип правил определяет более детальные ограничения на дочерние элементы (например,на их порядок), чем даны в DTD или даже схемах. Например, в XML нельзя указать,что первый дочерний элемент должен обрабатываться иначе, чем остальные./>/>1.7.2 Примерсинтаксиса XML
Так как MathML основан на XML, спецификация MathML используеттерминологию XML. Данные XML состоят из символов Unicodes (которые включают всебя обычные ASCII-символы), ссылки на сущности (неформально называемыесущностями), такие как x .
Элементы часто содержат в себе другие XML-данные, называемыеих 'содержанием' или 'телом', между 'открывающим' и 'закрывающим' тегами, такжекак в HTML. Существуют также 'пустые элементы', такие как ,у которых открывающий тег заканчивается символом />,чтобы показать, что элемент не имеет содержания или закрывающего тега. Открывающийтег должен содержать именованные параметры, называемые атрибутами, например, fontstyle=«normal»в приведенном выше примере.
Так как большие и маленькие буквы различаются в XML, то иимена элементов и атрибутов MathML являются чувствительными к регистру. Дляудобочитаемости в спецификации MathML большинство из них определены в нижнемрегистре.
В формальном обсуждении разметки XML делается различие междуэлементом, таким как mrow и задающими его тегами и . То, что находится между тегами и , называется содержанием или теломэлемента mrow. 'Пустой элемент', например none,не имеет тела и определяется одним тегом вида .В этой спецификации не будет делаться упора на это различие между тегами иэлементами. Например, мы иногда будем ссылаться на элементы и , подразумевая элемент, которомупринадлежат эти теги. Это делается для того, чтобы ссылки на элементыотличались от ссылок на атрибуты. Тем не менее, термины 'элемент' and 'тег'будут использоваться в строгом соответствии с терминологией XML.
/>1.7.3 Дочерние элементы против аргументов
Многие элементы MathML требуют определенного числа дочернихэлементов или присваивают дополнительный смысл дочерним элементам, стоящим вопределенной позиции. Как было отмечено выше, этот тип ограничений являетсяспецифическим для MathML и не может быть задан при помощи синтаксиса играмматики XML. Когда дочерний элемент данного элемента MathML удовлетворяетэтим дополнительным условиям, мы будем говорить о нем как об аргументе,а не о дочернем элементе, чтобы подчеркнуть специфичность его использования. Заметьте,что термин 'аргумент' применяется именно в этом техническом смысле, если неуказано обратное.
Некоторые элементы имеют другие требования на число или типаргументов. Эти дополнительные требования описываются для каждого конкретногоэлемента.
/>1.7.4 Значения атрибутов MathML
В соответствии со спецификацией языка XML, атрибутыэлементов должны быть заданы в одной из следующих форм:
attribute-name = «value»
or
attribute-name = 'value'
где пробелы вокруг знака '=' необязательны.
Имена атрибутов выделены в тексте спецификации моношириннымшрифтом, так же как и примеры.
Значения атрибутов, которые в MathML могут быть строкойпроизвольных символов, должны быть заключены в двойные (")или одинарные (') кавычки. Значение атрибута может содержать тоттип кавычек, который не используется для заключения всего значения.
MathML использует более сложный синтаксис для значенийатрибутов, чем общий синтаксис XML, задаваемый MathML DTD. Эти дополнительныеправила предназначены для приложений MathML, и их нарушение является ошибкойMathML, однако они не могут быть отслежены процессорами XML. Синтаксис значенийэлементов MathML определен в таблице атрибутов и сопровожден описанием каждогоэлемента, используя описанную ниже нотацию. Когда приложение MathMLобрабатывает значения атрибутов, все пробелы, за исключением разделяющихотдельные слова или числа, игнорируются. Символьные данные могут быть включеныв значения атрибутов напрямую или с использованием ссылочных сущностей.
В частности, символы ", ', &и
MathML DTD, объявляет типы большинства значений атрибутовкак строку CDATA. Это позволяет увеличить совместимость ссуществующим программным обеспечением на основе SGML и XML и расширять списокпредопределенных значений. Подобные же рассуждения применимы к схемам XML.
/>1.7.4.1 Синтаксические нотации, используемые вспецификации MathML
Для описания MathML-специфического синтаксиса допустимыхзначений атрибутов, в этом документе используются следующие соглашения инотации. Нотация Что означает number десятичное целое или рациональное число (строка цифр с одной десятичной точкой), возможно, начинающееся со знака '-' unsigned-number десятичное целое или вещественное число, без знака integer десятичное целое число, возможно, начинающееся со знака '-' positive-integer десятичное целое число, без знака, не 0 string произвольная строка (всегда полное значение атрибута) character одиночный непробельный символ или ссылочая сущность MathML; возможно разделение пробелами #rrggbb цвет в формате RGB; три пары шестнадцатиричных цифр в примере #5599dd определяют пропорцию красного, зеленого и синего по шкале от x00 до xFF, которая дает яркий голубой цвет. h-unit единица измерения горизонтальной длины (допустимые единицы измерения перечислены ниже) v-unit единица измерения вертикальной длины (допустимые единицы измерения перечислены ниже) css-fontfamily объясняется ниже, в подразделе о CSS css-color-name объясняется ниже, в подразделе о CSS остальные слова, выделенные курсивом объясняются в тексте, отдельно для каждого атрибута form + один или более экземпляров 'form' form * нуль или более экземпляров 'form' f1 f2… fn один экземпляр каждой формы, последовательно, возможно разделенные пробельными символами f1 | f2 |… | fn любая из указаных форм [form] необязательный экземпляр 'form' (form) то же самое, что и просто form невыделенные слова слова, включеные в значени атрибута дословно (есди это не часть объясняющей фразы) символы в кавычках символы, дословно включенные в значение атрибута (например, "+" or '+')
Приоритет операция, от наивысшего к наинизшему:
form + или form *
f1 f2… fn (последовательность форм)
f1 | f2 |… | fn (одна из форм)
Тип string может содержать произвольные символы,которые определены в значениях атрибута XML CDATA. ВMathML нет синтаксических правил, по которым string может быть частьюзначения атрибута, а не всем значением.
Соседние ключевые слова и числа в значениях атрибутов должныразделяться пробельными символами, за исключением следующих за числамиидентификаторов единиц измерения (что указано в синтаксисе символов h-unitи v-unit). Пробельные символы не требуются, норазрешены между любыми перечисленными выше токенами, за исключением (длясовместимости с CSS) непосредственно перед идентификаторами единиц измерения,между знаком '-' и числами, между # и rrggbbили rgb.
Значения числовых атрибутов, которые задают размеры и должнызависеть от текущего шрифта, могут задаваться в связанных со шрифтом единицахизмерения или в указанных абсолютных единицах (описанных ниже). Горизонтальныеразмеры обычно задаются в em, а вертикальные — в ex. Идентификаторыem или ex следуютнепосредственно за числом. Например, горизонтальные отступы от оператора '+'обычно задаются в em, хотя могут использоваться и другие единицыизмерения. Использование связанных со шрифтом единиц измеренияпредпочтительнее, чем абсолютных, так как они позволяют увеличивать илиуменьшать размер отображаемого элемента в зависимости от текущего размерашрифта.
Для большинства числовых атрибутов возможные значенияограничены некоторым подмножеством, другие значения ошибкой не являются (еслине указано противное), а округляются программой отображения вверх или вниз доближайшего допустимого. Множество допустимых значений может зависеть отпрограммы отображения и не определяется MathML.
Если числовое значение в соответствии с синтаксисом атрибутаможет содержать знак минус ('-'), например number или integer,то его использование в случае, когда отрицательные значения не существенны,ошибкой не является. Вместо этого, значение должно обрабатываться приложениемтак, как описано в предыдущем параграфе. Явное указание знака плюс ('+') какчасти числового значения запрещено за исключением тех случаев, когда этоспециально указано в синтаксисе (в виде '+' или "+"), и егоприсутствие может изменить смысл значения атрибута (как описано в каждом изтаких атрибутов).
Символы h-unit, v-unit,css-fontfamily, и css-color-nameрассматриваются в следующих подразделах.
/>1.7.4.2 Атрибуты с единицами измерения
Некоторые атрибуты принимают горизонтальные и вертикальныеразмеры как числа, за которыми следует 'идентификатор единицы измерения' (частоназываемый 'единицей измерения'). Синтаксические символы h-unitи v-unit относятся к горизонтальным и вертикальнымразмерам соответственно. Возможные единицы измерения и размеры, к которым ониотносятся, перечислены в таблице, расположенной далее; они совпадают длягоризонтальных и вертикальных размеров, но синтаксические символы отличаются (какнапоминание используемого в них направления).
Идентификаторы единиц измерения и их смысловое значениевзяты из. Тем не менее, синтаксис числа с последующим идентификатором в MathMLне идентичен синтаксису в CSS, так как числа в CSS не могут заканчиватьсядесятичной точкой и могут начинаться со знака '+'.
Допустимые горизонтальные и вертикальные единицы измерения вMathML: Идентификатор Описание em em (единица измерения, зависящая от размера шрифта и обычно применяемая для горизонтальных размеров) ex ex (единица измерения, зависящая от размера шрифта и обычно применяемая для вертикальных размеров) px пиксель in дюйм (1 дюйм = 2.54 сантиметра) cm сантиметр mm миллиметр pt пункт (1 пункт = 1/72 дюйма) pc picas (1 pica = 12 пунктов) % процент от величины
Типографские единицы измерения em и exобсуждаются далее в пункте 'Дополнительные замечания'.
% является 'относительной единицей измерения'; когдазначение атрибута задано в виде n% (для любого числовогозначения n), значение определяется как значение по умолчанию,умноженное на n и поделенное на 100. Значение по умолчанию (илиспособ, которым его можно получить, если оно не является константой) описано втаблице атрибутов для каждого элемента, а его смысл описан в последующейдокументации по атрибуту. (Элемент mpadded имеетсвой синтаксис для% и не позволяет использовать его как идентификатор единицыизмерения)
Для согласованности с CSS, единицы измерения длины в MathMLмогут быть необязательными. Когда это так, символ единицы измерения всинтаксисе атрибута заключается в квадратные скобки, например, число[h-unit]. Смысл значения атрибута без единиц измерения описан вдокументации для каждого атрибута; обычно указанное число умножается назначение по умолчанию. (В этом случае число nnn безединицы измерения эквивалентно числу nnn умноженномуна 100 и со знаком %. Например, (эквивалентно ()
Как исключение (тоже для совместимости с CSS), числовыезначения равные нулю не требуют указания идентификатора единицы измерения дажеесли этого требует синтаксис. В этом случае наличие или отсутствиеидентификатора единицы измерения не играет роли, так как любое число умноженноена 0 есть 0.
Для большинства атрибутов в данной спецификации в качествестандартных единиц измерения выбраны единицы, используемые в типографскомнаборе; когда не указано конкретное значение величины, то стандартные единицыизмерения обычно указаны в таблице или в описании атрибута. Чаще всегоиспользуются такие единицы измерения как em или ex.Однако, могут использоваться любые единицы, если в описании конкретногоатрибута не указано обратное.
/>Отметим, что некоторые атрибуты, например framespacingв , могут содержать более одногочислового значения, после каждого из которых следует своя единица измерения.
Принято использовать единицы измерения exв основном для задания вертикальных размеров, а em — для горизонтальных,хотя это не является обязательным требованием. Эти единицы измерения зависят отшрифта, используемого для отображения элемента, в атрибутах которого они применяются,и его размера. А значит, они должны интерпретироваться после такихатрибутов, как fontfamily и fontsize, еслиони встречаются в одном элементе, так как изменение текущего шрифта или егоразмера может привести к изменению размера единиц измерения.
Определение длины каждой единицы измерения (но не синтаксисMathML для значений длины) такое же как в CSS, за исключением тех случаев,когда шрифт устанавливает специальные значения для emи ex, отличающиеся от значений, определенных в CSS (fontsize и 'x'-height соответственно).
/>1.7.4.3 CSS-совместимые атрибуты
Некоторые атрибуты MathML, перечисленные ниже, соответствуютсвойствам отображения текста, определенным в CSS1. Это сделано для того, чтобыпрограммы отображения могли запросить CSS-окружение о соответствующих свойствахпри определении значений атрибутов по умолчанию.
Возможность определения стилевых свойств через атрибуты MathMLи CSS имеет и недостатки. Как минимум, это запутывает, а в худшем случае, этоприводит к непреднамеренному изменению смысла уравнений при изменении CSS длявсего документа. Поэтому, эти атрибуты осуждаются. В свою очередь, MathML 2.0вводит четыре новых математических стилевых атрибута. Эти атрибуты используютлогические значения для того, чтобы лучше передать абстрактные категориииспользуемых в математике символов, и предоставляют четкое разделение междуMathML и CSS.
Следующая таблица показывает соответствие осуждаемыхстилевых атрибутов MathML 1.01 и их CSS-аналогов: Атрибут MathML Свойство CSS синтаксический символ Элемент MathML fontsize font-size -
токены представления; mstyle fontweight font-weight -
токены представления; mstyle fontstyle font-style -
токены представления; mstyle fontfamily font-family css-fontfamily
токены представления; mstyle color color css-color-name
токены представления; mstyle background background css-color-name
mstyle
/>
Порядок обработки атрибутов и стилевых таблиц.
CSS или аналогичные стилевые таблицы могут задаватьизменения свойств отображения элементов MathML. Так как свойства отображениямогут изменяться как атрибутами элемента, так и программой отображения,необходимо определить порядок, в котором происходят изменения из разныхисточников. Примером автоматического согласования является ситуация с fontsize.В случае 'абсолютных' изменений, например, установки новогозначения свойства, независимого от старого значения (в отличие от'относительных' изменений, таких как инкремент или умножение на число),действуют только последние абсолютные изменения, поэтому источник изменений снаивысшим приоритетом должен обрабатываться последним.
В случае CSS, порядок обработки изменений, действующих насвойства отображения элемента MathML, из различных источников должен бытьследующим: (изменяется первым; самый низкий приоритет)
Автоматические изменения свойств или атрибутов, основанныхна типе родительского элемента и положении элемента в родительском (какупоминается выше об изменениях fontsize в соответствии с scriptlevel;такие изменения обычно применяются самим родительским элементом перед передачейсвойств отображения текущему элементу
Из стилевых таблиц читателя: стили, которые необъявлены 'важными'
Явно заданные атрибуты текущего элемента MathML
Из стилевых таблиц автора: стили, которые необъявлены 'важными'
Из стилевых таблиц автора: стили, которые объявлены'важными'
Из стилевых таблиц читателя: стили, которые объявлены'важными' (изменяется последним; самый высокий приоритет).
Отметим, что порядок изменений, производимых стилевымитаблицами CSS, определен в самих CSS (это порядок, определяемый CSS2). Следующееобъяснение относится только к случаю, когда в этом порядке происходятизменения, вызванные точным заданием атрибутов MathML.
Объяснение: Атрибуты отображения в MathML аналогичныатрибутам отображения в HTML (таким как align),которые, согласно определенному в CSS порядку, должны обрабатываться содинаковым приоритетом. Более того, такой выбор очередности позволяет читателямрешить, определяя стили CSS 'важными', какие из их установок должныпереопределять явные установки MathML. Так как выражения MathML, состоящие изэлементов содержания или представления, в первую очередь предназначены дляпередачи смысла, а 'графическое представление' (если таковое имеется) должнопомогать этому (но не является важным само по себе), вероятно, что читателизахотят, чтобы их стилевые предпочтения имели приоритеты. Основным исключениемявляется ситуация, когда атрибуты отображения предполагают изменение смыславыражения.
/>1.7.4.4 Значения атрибутов по умолчанию
Значения по умолчанию для атрибутов MathML как правилодаются вместе с подробным описанием соответствующего элемента. Значения поумолчанию, указанные в таблицах атрибутов обычным шрифтом, являются точными (еслиони не являются очевидными объяснениями), выделенные курсивом фрагментыописывают, как значения по умолчанию могут быть вычислены.
Значения по умолчанию, описанные как inherited, берутся изсреды отображения, как описано для mstyle, или, внекоторых отдельно описанных случаях, из значений других атрибутов окружающихэлементов, или из определенной части этих значений. Всегда используетсязначение, которое может быть задано точно, если оно известно; оно никогда независит от содержания или атрибутов данного элемента, только от его окружения.(Его смысл при использовании может, тем не менее, зависеть от этих атрибутовили содержания)
Значения по умолчанию, описанные как automatic, должнывычисляться программой отображения таким образом, чтобы получитьвысококачественное изображение. Способ, как этого добиться, обычно не указан вспецификации MathML. Всегда используется значение, которое может быть заданоточно, если оно известно; но оно обычно зависит от содержания элемента и,возможно, от среды отображения.
Другие выделенные курсивом описания значений по умолчанию,которые встречаются в таблицах атрибутов, объясняются отдельно для каждогоатрибута.
Одинарные или двойные кавычки, в которые должны бытьзаключены значения атрибута, расположенного в открывающем теге XML, не показаныв синтаксисе значений в таблице атрибутов, но показаны в тексте примеров.
Отметим, что, как правило, не существует значений, которыеточно могут быть присвоены атрибутам MathML и имитируют эффект их отсутствиядля атрибутов, являющихся inherited или automatic. Указание 'inherited' или'automatic' точно не будет работать, и вообще запрещено. Более того, даже дляатрибутов представления (для которых здесь приведены конкретные значения поумолчанию), должен использоваться элемент mstyle дляизменения содержащихся в нем элементов. Поэтому, MathML DTD определяетбольшинство значений по умолчанию для атрибутов представления как #IMPLIED,что не позволяет обработчикам XML добавлять к этим атрибутам любые специальныезначения по умолчанию. MathML schema работает по тем же правилам.
/>1.7.4.5 Значения атрибутов в MathML DTD
В XML DTD, разрешенные значения атрибутов могут бытьопределены как общие строки, или могут быть различными способами ограничены (перечислениемвозможных значений, или указанием определенного типа данных). Выбор типаатрибута XML влияет на объем, в котором могут быть проведены проверкикорректности с использованием DTD.
MathML DTD определяет формальные типы атрибутов XML для всехатрибутов MathML, включая в некоторых случаях перечисления допустимых значений.В общем, тем не менее, MathML DTD является относительно нестрогим, частоопределяя значения атрибутов как строки; это сделано для совместимости спарсерами SGML, которые допускают, чтобы несколько атрибутов одного элементаMathML принимали одинаковые значения (такие как true и false),и для того, чтобы позволить расширять список предопределенных значений.
В то же время, даже если значение атрибута может бытьопределено как строка в DTD, только определенные значения являются допустимымив MathML, как описано выше и в оставшейся части этой спецификации. Например,многие атрибуты требуют числовых значений. В следующем разделе описаныдопустимые значения атрибутов для каждого элемента. Тем не менее, недостатокжесткости требований в DTD не подразумевает, что эти требования не являютсячастью MathML, или что они не могут быть усилены конкретной программойотображения MathML.
Более того, MathML DTD предоставляется для удобства; хотя иподразумевается полная совместимость с текстом спецификации, текст должен бытьопределяющим в случае возникновения противоречий.
/>1.7.5 Атрибуты, общиедля всех элементов MathML
Для того чтобы облегчить использование таких стилевыхмеханизмов, как XSLT и CSS2, все элементы MathML имеют атрибуты class,style, и id вдополнение к атрибутам, описанным для каждого элемента. Программы отображенияMathML, не поддерживающие CSS, могут игнорировать эти атрибуты. MathMLопределяет значения этих атрибутов как общие строки, даже если стилевыемеханизмы имеют для них более строгий синтаксис. Поэтому, любое значение дляних является допустимым в MathML.
Для того чтобы обеспечить совместимость с механизмамисвязывания, все элементы MathML имеют атрибут xlink: href.
Все элементы MathML также имеют атрибут xrefдля использования в параллельной разметке. id также используетсяв этом контексте.
Каждый эдемент MathML, как наследство от MathML 1.0, такжепринимает осужденный атрибут other, которыйпредполагался для передачи нестандартных атрибутов без нарушения MathML DTD. Отпрограмм отображения MathML требуется обработка этого атрибута только в томслучае, если они реагируютя на все нестандартные атрибуты MathML. Тем не менн,использование атрибута other сильно осуждается, так как в MathML существуютдругие способы передать специфическую информацию.
/>1.7.6 Свертывание пробелов во вводе
MathML игнорирует пробельные символы, встречающиеся внетокенов. Непробельные символы здесь запрещены. Пробельные символы,встречающиеся в содержании токенов, удаляются на концах, то есть удаляются всепробельные символы в начале и конце содержания. Пробельные символы,расположенные внутри содержания элементов MathML свертываются кононически, тоесть каждая последовательность из 1 или более таких символов заменяется на 1 (иногданазываемый пустым символом).
В MathML, как и в XML, под пробельными символамиподразумеваются простой пробел, табуляция, новая строка или перевод строки, тоесть символы с кодами Unicode U+0020, U+0009,U+000A, U+000Dсоответственно.
Например,
( эквивалентно (, и
Теорема
1:
эквивалентно Теорема 1: .
Авторы, желающие поместить пробельные символы в начале иликонце содержания токена, или последовательность более чем из одного пробельногосимвола так, чтобы они не были проигнорированы, должны использовать или другие неотображаемые пробельные символы. Например, сравните
Теорема
1:
с
Теорема 1:
Когда отображается первый пример, перед словом 'Теорема' нетпробельных символов, один — между 'Теорема' и '1: ', и нет после '1: '. Вовтором примере одиночный пробел будет отображен перед словом 'Теорема', два — перед'1: ', и ни одного после '1: '.
Отметим, что атрибут xml: space вданной ситуации неприменим, так как процессоры XML передают пробельные символыв токенах процессору MathML; удаление происходит по правилам обработки MathML.
Для пробельных символов, встречающихся вне содержаниятокенов mi, mn, mo,ms, mtext, ci,cn и annotation, должениспользоваться элемент mspace, в противоположность элементу mtextсодержащий только пробельные символы
/>2. Возможностисовременных браузеров при работе с MathML
В качестве тестового примера для демонстрации возможностейбраузеров была создана простая XHTML-страница, содержащая примеры обоихразметок. Опишем основные требования к ней. Во-первых, это должны бытькорректным XHTML-документом, то есть:
быть корректным xml-документом;
корневым элементом должен быть элемент html в пространствеимен XHTML, например:
должен содержать декларацию типа документа. В нашем случаеэто:
«www.w3.org/TR/MathML2/dtd/xhtml-math11-f. dtd»>
MathML-фрагменты должны принадлежать пространству именMathML, например:
…
Тестовый пример, который используется ниже: test. xhtml.
2.1 Mozilla & Firefox
Используемая версия: Mozilla/5.0 (Windows; U; Windows NT 5.0;en-US; rv: 1.7 5) Gecko/20041107 Firefox/1.0.
Mozilla и построенный на том же ядре Firefox имеютвстроенные возможности отображения разметки MathML. Правда, до сих пор ониограничены лишь поддержкой разметки представления. Так в нашем тестовом примерефрагмент разметки представления отобразился правильно, чего нельзя сказать оразметке содержания.
/>
Решением этой проблемы может служить использованиеспециальных XSLT-стилей «XSLT stylesheets for MathML». Такой подходвозможен, так как поддержка XSLT-трансформаций встроена в браузер. Для этогонадо скачать набор XSLT-стилей и в первой строчке нашей страницы указать ссылкуна заглавный файл mathml. xsl:
/>
По соображениям безопасности Mozilla позволяет использоватьXSLT-стили расположенные в другом домене просмотра исходного кода MathML сподсветкой выделенного фрагмента. Правда, при использовании разметки содержанияи XSLT-стилей мы увидим не исходный код, а результат преобразования.
Из других возможностей следует отметить интеграцию споисковыми системами. При выделенном фрагменте формулы контекстное менюпозволяет отправить запрос к поисковой системе.
/>
Но пока это задел на будущее, так как пока подобный поискрезультатов не дает.
2.2 Microsoft Internet Explorer
Используемая версия: 6.0.2800.1106 (SP1;Q867801; Q823353; Q833989)
Браузер от Microsoft не имеет встроенной поддержки MathML. Длякорректного отображения математических формул можно использовать свободнораспространяемый плагин MathPlayer.
/>
Помимо собственно отображения математической разметки онпозволяет быстро копировать MathML-нотацию. Также можно при желании увеличитьформулу для лучшей наглядности:
/>
Из недостатков следует отметить отсутствие возможностивыделить или скопировать фрагмент математического выражения. Также нетвозможности (как и в Mozilla) корректно скопировать формулу с окружающимтекстом.
2.3 Opera
Используемая версия: 7.54u1 (Build 3918; PlatformWin32; System Windows 2000; Java not installed).
Этот браузер на данном своего развития этапе не имеетвозможностей для корректного отображения разметки MathML.
/>Список использованнойлитературы
1. Дорофеев А.В., Федотов А.М. Электронные публикации в среде Internet имножественность кодировок русского языка // Вычислительные технологии, 1997, т.2,N 3, c.31-44.
2. ОлейникО.В., Толкачева Е.М., Федотов А.М. Электронные издания и представлениематематических текстов на WWW // Вычислительные технологии, 1997, т.2, N 3, c.60-67.
3. ШокинЮ.И., Федотов А.М., Знаменский С.В. Электронные публикации и проблемымножественности кодировок русского языка // Информационные технологии ивычислительные системы, 1997, N 2, c.90-101.
4. ЗнаменскийС.В. Стандартизация русского TeX: утопия или неизбежность // Вычислительныетехнологии, 1997, т.2, N 3, c.51 — 59.
5. Галактионов В.В. Расширяемый язык разметки XML (Extensible Mark-upLanguage): промышленный стандарт, определяющий архитектуру программных средствИнтернет следующего поколения. Сообщение ОИЯИ, Р10-2000-44, Дубна, 2000.
6. Митюнин В.А. Обзор средств публикации и просмотра математическихдокументов в сети Интернет — mathmag. spbu.ru/article/4/
7. Math on the Web: A Status Report — www.dessci.com/ webmath/status/
8. Including Math Notation in Web Pages — mathforum.org/typeseting/
9. MathML 1.01 — www.w3.org/TR/REC-MathML/
10. MathML2.0 — www.w3.org/TR/MathML2/