Смекни!
smekni.com

MathML (Mathematical Markup Language) (стр. 3 из 9)

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

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 Web Consortium.

Первоначальная концепция 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 расшифровывается как eXtensibleMarkupLanguage. Он создан как упрощенная версия SGML, метаязыка, используемого для определения грамматики и синтаксиса HTML. Одна из целей XML - возможность применения в Сети, и в данном случае он может быть рассмотрен как общий механизм расширений HTML. Как следует из его названия, расширяемость - основная черта XML. Авторы получили возможность объявлять и использовать новые элементы и атрибуты. В то же время, правила грамматики и синтаксиса XML требуют обеспечения регулярной структуры документа для реализации автоматической обработки и сопровождения больших объемов документов. Строго говоря, XML является удобным способом описания древовидных структур и, таким образом, может использоваться в качестве языка разметки.