8 января 2001 года Консорциум W3C объявил о продвижении второй версии еще одного языка разметки - MathML (Mathematical Markup Language). Новый язык, описывая совокупность XML-функций, позволяет осуществлять в WWW многочисленные математические операции. Более точная формулировка возможностей MathML звучит следующим образом: MathML предназначен для облегчения использования и повторного использования математического и научного наполнения Сети, а также для различных приложений типа компьютерных алгебраических систем, типографского набора и голосового синтеза. MathML может использоваться с целью кодирования и представления математического содержания для последующей высококачественной визуальной интерпретации для приложений, в которых основную роль играет семантика.
Язык MathML, по спецификации Консорциума W3C, является ничем иным, как XML-приложением. В совокупности с таблицами стилей CSS, новый язык в конечном итоге позволит браузерам обрабатывать математические выражения. Уже в сейчас часть производителей могут предложить специальные апплеты и надстройки, с помощью которых конструкции MathML будут выполняться непосредственно в самом браузере. А в скором будущем появится программное обеспечение - переводчики и редакторы уравнений, - способные генерировать HTML-код на основе представленных математических данных на MathML.
Появление MathML обусловлено тем, что HTML, хотя и содержит довольно богатый набор тегов, не способен обрабатывать математические выражения. MathML состоит из множества XML-тегов, предназначенных для разметки уравнений в соответствии с их условиями. Математический язык разметки MathML направлен на фиксирование исходящих значений, нежели на фокусирование на том, что в результате решения будет отображено на экране. XML имеет много схожего с HTML и обладает подобным, однако не идентичным синтаксисом. Одно различие в том, что в XML нельзя пропускать закрывающие теги. Кроме того, теги элементов, не несущих никакого содержания, отмечаются наклонной чертой (слэш) перед последней угловой скобкой закрывающего тега.
MathML - стандарт, предназначенный для математического описания как основы коммуникативной цепочки "машина-машина". MathML не будет использоваться для ручного редактирования, а преподносится как инструмент управления специализированными средствами работы с авторским материалом (например, редакторы уравнений) и взаимодействия между различными математическими пакетами.
Чтобы представить, как с помощью MathML обрабатываются математические выражения, ниже приведу простой пример:
x2 + 4x + 4 = 0
Есть два способа решения этого уравнения. Первый использует теги представления (presentational tags), которые обычно начинаются с <m>, затем идет <o> для оператора <i> для идентификатора <n> и т.д. Тег <mrow> указывает на горизонтальную групповую иерархию:
<mrow>
<mrow>
<msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo>
<mrow>
<mn>4</mn>
<mo>&invisibletimes;</mo>
<mi>x</mi>
</mrow>
<mo>+</mo>
<mn>4</mn>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>
Другой вариант - применение семантических тегов:
<apply>
<plus/>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>4</cn>
<ci>x</ci>
</apply>
<cn>4</cn>
</apply>
В качестве примера программного обеспечения, поддерживающего MathML 2.0, можно назвать W3C Amaya browser, DSSSL stylesheets for MathML, IBM techexplorer, MathType и другие (полный перечень ПО для MathML можно найти здесь).
Более подробную информацию о математическом языке разметки MathML, а также ссылки на прочие Интернет-ресурсы, посвященные этому стандарту, названия и адреса тематических форумов и прочие материалы можно найти на сервере Консорциума W3C. |