MathML

редактировать
Руководство по использованию MathML и математических тегов в Википедии см. В разделе Справка: отображение формулы.

MathML
Тип интернет-СМИ приложение / mathml + xml, приложение / mathml-презентация + xml, приложение / mathml-content + xml, math / mml
Разработано Консорциум World Wide Web
Тип формата Язык разметки
Расширен с XML
Стандарт W3C MathML
MathML
Математический язык разметки
Родное имя
Положение дел Рекомендация W3C
Впервые опубликовано Апрель 1998 ( 1998-04)
Последняя версия 3.0 10 апреля 2014 г. ; 7 лет назад ( 2014-04-10)
Организация W3C, ISO, МЭК
Комитет
Редакторы
Авторы Основные авторы
    • Рон Осбрукс
    • Стивен Басвелл
    • Дэвид Карлайл
    • Георгий Чавчанидзе
    • Стефан Далмас
    • Стэн Девитт
    • Анхель Диас
    • Сэм Дули
    • Роджер Хантер
    • Патрик Ион
    • Майкл Кольхейз
    • Аззеддин Лазрек
    • Поль Либбрехт
    • Брюс Миллер
    • Роберт Майнер
    • Крис Роули
    • Мюррей Сарджент
    • Брюс Смит
    • Нил Сойфер
    • Роберт Сутор
    • Стивен Ватт
Базовые стандарты XML
Связанные стандарты OpenMath, Office Open XML, OMDoc
Сокращенное название MathML
Веб-сайт

Математический язык разметки ( MathML) - это язык математической разметки, приложение XML для описания математических обозначений и фиксации как его структуры, так и содержания. Он направлен на интеграцию математических формул в страницы всемирной паутины и другие документы. Он является частью HTML5 и стандарта ISO / IEC 40314 с 2015 года.

СОДЕРЖАНИЕ
  • 1 История
    • 1.1 MathML версии 3
  • 2 Представление и семантика
    • 2.1 Представление MathML
    • 2.2 Контент MathML
      • 2.2.1 Аннотации Викиданных в Content MathML
  • 3 Пример и сравнение с другими форматами
  • 4 Встраивание MathML в файлы HTML / XHTML
  • 5 Поддержка браузера
  • 6 Другие стандарты
  • 7 См. Также
  • 8 Примечания
  • 9 ссылки
  • 10 Дальнейшее чтение
    • 10.1 Технические характеристики
  • 11 Внешние ссылки
История

MathML 1 был выпущен в качестве рекомендации W3C в апреле 1998 года как первый язык XML, рекомендованный W3C. Версия 1.01 формата была выпущена в июле 1999 года, а версия 2.0 появилась в феврале 2001 года.

В октябре 2003 года второе издание MathML Version 2.0 было опубликовано в качестве окончательного выпуска рабочей группой W3C Math.

MathML был первоначально разработан до завершения создания пространств имен XML. Однако ему было назначено пространство имен сразу после завершения Рекомендации по пространству имен, и для использования XML элементы должны находиться в пространстве имен с URL-адресом пространства имен http://www.w3.org/1998/Math/MathML. Когда MathML используется в HTML (в отличие от XML), это пространство имен автоматически выводится анализатором HTML, и его не нужно указывать в документе.

MathML версии 3

Версия 3 спецификации MathML была выпущена как рекомендация W3C 20 октября 2010 года. Рекомендация A MathML для профиля CSS была позже выпущена 7 июня 2011 года; это подмножество MathML, подходящее для форматирования CSS. Другое подмножество, Strict Content MathML, предоставляет подмножество MathML контента с единообразной структурой и предназначено для совместимости с OpenMath. Другие элементы контента определяются в терминах преобразования в строгое подмножество. Новые элементы содержимого включают в себя то, lt;bindgt;что связывает связанные переменные ( lt;bvargt;) с выражениями, например индекс суммирования. Новый lt;sharegt;элемент позволяет разделять структуру.

Разработка MathML 3.0 прошла несколько этапов. В июне 2006 года W3C повторно уполномочил рабочую группу MathML подготовить рекомендацию MathML 3 до февраля 2008 года, а в ноябре 2008 года продлил срок действия устава до апреля 2010 года. В июне 2009 года был опубликован шестой рабочий проект версии MathML 3. 10 августа 2010 года версия 3 были преобразованы в «Предлагаемую рекомендацию», а не в проект.

Второе издание MathML 3.0 было опубликовано в качестве Рекомендации W3C 10 апреля 2014 года. Спецификация была утверждена в качестве международного стандарта ISO / IEC 40314: 2015 23 июня 2015 года.

Представление и семантика

MathML имеет дело не только с представлением, но и со значением компонентов формулы (последняя часть MathML известна как «Content MathML»). Поскольку значение уравнения сохраняется отдельно от презентации, то, как будет передаваться контент, можно оставить на усмотрение пользователя. Например, веб-страницы со встроенным MathML можно просматривать как обычные веб-страницы во многих браузерах, но пользователи с ослабленным зрением также могут читать им тот же MathML с помощью программ чтения с экрана (например, с помощью подключаемого модуля MathPlayer для Internet Explorer или Firefox, Opera 9.50 build 9656+ или расширение Fire Vox для Firefox). Новые версии JAWS поддерживают озвучивание MathML, а также вывод шрифта Брайля.

Презентация MathML

Презентация MathML ориентирована на отображение уравнения и содержит около 30 элементов. Имена всех элементов начинаются с m. Выражение Presentation MathML создается из токенов, которые объединяются с использованием элементов более высокого уровня, которые контролируют их макет (также имеется около 50 атрибутов, которые в основном контролируют мелкие детали).

Элементы токена обычно содержат только символы (не другие элементы). Они включают:

  • lt;migt;xlt;/migt; - идентификаторы;
  • lt;mogt;+lt;/mogt; - операторы;
  • lt;mngt;2lt;/mngt; - числа.
  • lt;mtextgt;non zerolt;/mtextgt; - текст.

Однако обратите внимание, что эти элементы токена могут использоваться в качестве точек расширения, позволяя разметку на языках хоста. MathML в HTML5 допускает большую часть встроенной HTML-разметки в многотекстовом тексте и lt;mtextgt;lt;bgt;nonlt;/bgt; zerolt;/mtextgt;соответствует этому, при этом HTML-разметка используется в MathML для разметки встроенного текста (в этом примере первое слово выделено жирным шрифтом).

Они объединяются с использованием элементов макета, которые обычно содержат только элементы. Они включают:

  • lt;mrowgt; - горизонтальный ряд предметов;
  • lt;msupgt;, lt;munderovergt;И другие - надстрочные, пределы над и под операторами, как суммы и т.д.;
  • lt;mfracgt; - фракции;
  • lt;msqrtgt;а lt;mrootgt;- корни;
  • lt;mfencedgt; - окружение контента ограничениями, такими как круглые скобки.

Как обычно в HTML и XML, многие сущности доступны для указания специальных символов по имени, например, amp;pi;и amp;RightArrow;. Интересной особенностью MathML является то, что сущности также существуют для выражения обычно невидимых операторов, таких как amp;InvisibleTimes;(или сокращение amp;it;) для неявного умножения. Они есть:

  • ФУНКЦИОНАЛЬНОЕ ПРИЛОЖЕНИЕ U + 2061;
  • U + 2062 НЕВИДИМЫЕ ВРЕМЯ;
  • НЕВИДИМЫЙ СЕПАРАТОР U + 2063;
  • U + 2064 НЕВИДИМЫЙ ПЛЮС.

Полная спецификация объектов MathML тесно согласована с соответствующими спецификациями для использования с HTML и XML в целом.

Таким образом, для выражения требуются два элемента макета: один для создания общей горизонтальной строки и один для экспоненты с надстрочным индексом. Включая только элементы макета и (еще не размеченные) голые токены, структура выглядит так: а Икс 2 + б Икс + c {\ displaystyle ax ^ {2} + bx + c}

 lt;mrowgt; a amp;InvisibleTimes; lt;msupgt;x 2lt;/msupgt; + b amp;InvisibleTimes; x + c lt;/mrowgt;

Однако отдельные токены также должны быть идентифицированы как идентификаторы (mi), операторы (mo) или числа (mn). После добавления разметки токена полная форма будет выглядеть так:

 lt;mrowgt; lt;migt;alt;/migt; lt;mogt;amp;InvisibleTimes;lt;/mogt; lt;msupgt;lt;migt;xlt;/migt;lt;mngt;2lt;/mngt;lt;/msupgt; lt;mogt;+lt;/mogt;lt;migt;blt;/migt;lt;mogt;amp;InvisibleTimes;lt;/mogt;lt;migt;xlt;/migt; lt;mogt;+lt;/mogt;lt;migt;clt;/migt; lt;/mrowgt;

Допустимый документ MathML обычно состоит из объявления XML, объявления DOCTYPE и элемента документа. Затем тело документа содержит выражения MathML, которые появляются в элементах lt;mathgt; по мере необходимости в документе. Часто MathML встраивается в более общие документы, такие как HTML, DocBook или другие схемы XML. Полный документ, состоящий только из приведенного выше примера MathML, показан здесь:

lt;?xml version="1.0" encoding="UTF-8"?gt; lt;!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"gt; lt;math xmlns="http://www.w3.org/1998/Math/MathML"gt; lt;mrowgt; lt;migt;alt;/migt; lt;mogt;amp;InvisibleTimes;lt;/mogt; lt;msupgt;lt;migt;xlt;/migt;lt;mngt;2lt;/mngt;lt;/msupgt; lt;mogt;+lt;/mogt;lt;migt;blt;/migt;lt;mogt;amp;InvisibleTimes;lt;/mogt;lt;migt;xlt;/migt; lt;mogt;+lt;/mogt;lt;migt;clt;/migt; lt;/mrowgt; lt;/mathgt;

Контент MathML

Content MathML фокусируется на семантике или значении выражения, а не на его макете. Центральным lt;applygt;элементом Content MathML является элемент, представляющий приложение-функцию. Применяемая функция является первым дочерним элементом lt;applygt;, а ее операнды или параметры - оставшимися дочерними элементами. Content MathML использует только несколько атрибутов.

Токены, такие как идентификаторы и числа, размечаются индивидуально, как и для Presentation MathML, но с такими элементами, как ciи cn. Вместо того, чтобы быть просто другой тип маркера, операторы представлены конкретные элементы, у которых математическая семантика известны MathML: times, powerи т.д. Есть более ста различных элементов для различных функций и операторов.

Например, представляет и представляет. Элементы, представляющие операторы и функции, являются пустыми элементами, потому что их операнды являются другими элементами, находящимися под содержимым. lt;applygt;lt;sin/gt;lt;cigt;xlt;/cigt;lt;/applygt; грех ( Икс ) {\ Displaystyle \ грех (х)}lt;applygt;lt;plus/gt;lt;cigt;xlt;/cigt;lt;cngt;5lt;/cngt;lt;/applygt; Икс + 5 {\ displaystyle x + 5}lt;applygt;

Выражение можно представить как а Икс 2 + б Икс + c {\ displaystyle ax ^ {2} + bx + c}

lt;mathgt; lt;applygt; lt;plus/gt; lt;applygt; lt;times/gt; lt;cigt;alt;/cigt; lt;applygt; lt;power/gt; lt;cigt;xlt;/cigt; lt;cngt;2lt;/cngt; lt;/applygt; lt;/applygt; lt;applygt; lt;times/gt; lt;cigt;blt;/cigt; lt;cigt;xlt;/cigt; lt;/applygt; lt;cigt;clt;/cigt; lt;/applygt; lt;/mathgt;

Content MathML почти изоморфен выражениям на функциональном языке, таком как Scheme. lt;applygt;...lt;/applygt;составляет схему (...), а многие операторы и функциональные элементы составляют функции схемы. С этим тривиальным буквальным преобразованием, плюс снятие тегов с отдельных токенов, приведенный выше пример выглядит следующим образом:

(plus (times a (power x 2)) (times b x) c)

Это отражает давно известную тесную взаимосвязь между структурами элементов XML и S-выражениями LISP или Scheme.

Аннотации Викиданных в Content MathML

Согласно OM Society, словари содержимого OpenMath могут использоваться как наборы символов и идентификаторов с декларациями их семантики - имен, описаний и правил. В документе 2018 года, представленном на конференции SIGIR, предлагалось использовать базу семантических знаний Wikidata в качестве словаря содержимого OpenMath для связывания семантических элементов математической формулы с уникальными и независимыми от языка элементами Викиданных.

Пример и сравнение с другими форматами

Известная квадратичная формула :

Икс знак равно - б ± б 2 - 4 а c 2 а {\ displaystyle x = {\ frac {-b \ pm {\ sqrt {b ^ {2} -4ac}}} {2a}}}

будет размечен с использованием синтаксиса LaTeX следующим образом:

x=\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

в troff / eqn вот так:

x={-b +- sqrt{b sup 2 – 4ac}} over 2a

в Apache OpenOffice Math и LibreOffice Math вот так (все три действительны):

x={-b plusminus sqrt {b^2 – 4 ac}} over {2 a} x={-b +- sqrt {b^2 – 4ac}} over {2a} x={-b ± sqrt {b^2 – 4ac}} over {2a}

в AsciiMath вот так:

x=(-b +- sqrt(b^2 - 4ac))/(2a)

Вышеупомянутое уравнение может быть представлено в Presentation MathML как дерево выражений, составленное из элементов макета, таких как элементы mfrac или msqrt:

lt;math mode="display" xmlns="http://www.w3.org/1998/Math/MathML"gt; lt;semanticsgt; lt;mrowgt; lt;migt;xlt;/migt; lt;mogt;=lt;/mogt; lt;mfracgt; lt;mrowgt; lt;mo form="prefix"gt;amp;minus;lt;/mogt; lt;migt;blt;/migt; lt;mogt;amp;pm;lt;/mogt; lt;msqrtgt; lt;msupgt;lt;migt;blt;/migt;lt;mngt;2lt;/mngt;lt;/msupgt; lt;mogt;amp;minus;lt;/mogt; lt;mngt;4lt;/mngt;lt;mogt;amp;it;lt;/mogt;lt;migt;alt;/migt;lt;mogt;amp;it;lt;/mogt;lt;migt;clt;/migt; lt;/msqrtgt; lt;/mrowgt; lt;mrowgt; lt;mngt;2lt;/mngt; lt;mogt;amp;it;lt;/mogt; lt;migt;alt;/migt; lt;/mrowgt; lt;/mfracgt; lt;/mrowgt; lt;annotation encoding="application/x-tex"gt;lt;!-- TeX --gt; x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} lt;/annotationgt; lt;annotation encoding="StarMath 5.0"gt; x={-b plusminus sqrt {b^2 - 4 ac}} over {2 a} lt;/annotationgt; lt;!-- More annotations can be written: application/x-troff-eqn for eqn, application/x-asciimath for AsciiMath... --gt; lt;!-- Semantic MathML go under lt;annotation-xml encoding="MathML-Content"gt;. --gt; lt;/semanticsgt; lt;/mathgt;

В этом примере используется lt;annotationgt;элемент, который можно использовать для встраивания семантической аннотации в формате, отличном от XML, например, для хранения формулы в формате, используемом редактором формул, таким как StarMath, или разметки с использованием синтаксиса LaTeX. encodingПоле обычно представляет собой тип MIME, хотя большинство из уравнения кодирования не имеет такую регистрацию; В этом случае можно использовать произвольный текст.

Хотя XML-структура менее компактна, чем TeX, она обещает сделать его широко используемым и позволяет мгновенно отображать его в приложениях, таких как веб-браузеры, и облегчает интерпретацию его значения в математических программных продуктах. MathML не предназначен для написания или редактирования непосредственно людьми.

Встраивание MathML в файлы HTML / XHTML

MathML, будучи XML, может быть встроен в другие файлы XML, такие как файлы XHTML, с использованием пространств имен XML. Такие браузеры, как Firefox 3+ и Opera 9.6+ (поддержка не завершена), могут отображать Presentation MathML, встроенную в XHTML.

lt;?xml version="1.0" encoding="UTF-8"?gt; lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"gt; lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"gt; lt;headgt; lt;titlegt;Example of MathML embedded in an XHTML filelt;/titlegt; lt;meta name="description" content="Example of MathML embedded in an XHTML file"/gt; lt;/headgt; lt;bodygt; lt;h1gt;Example of MathML embedded in an XHTML filelt;/h1gt; lt;pgt; The area of a circle is lt;math xmlns="http://www.w3.org/1998/Math/MathML"gt; lt;migt;amp;#x03C0;lt;!-- π --gt;lt;/migt; lt;mogt;amp;#x2062;lt;!-- amp;InvisibleTimes; --gt;lt;/mogt; lt;msupgt; lt;migt;rlt;/migt; lt;mngt;2lt;/mngt; lt;/msupgt; lt;/mathgt;. lt;/pgt; lt;/bodygt; lt;/htmlgt;
нет на плаву
Визуализация формулы для круга в MathML + XHTML с использованием Firefox 22 в Mac OS X

Встроенный MathML также поддерживается в файлах HTML5 в текущих версиях WebKit ( Safari и JavaFX / WebView ), Gecko ( Firefox ). Нет необходимости указывать пространства имен, как в XHTML.

lt;!DOCTYPE htmlgt; lt;html lang="en"gt; lt;headgt; lt;meta charset="utf-8"gt; lt;titlegt;Example of MathML embedded in an HTML5 filelt;/titlegt; lt;/headgt; lt;bodygt; lt;h1gt;Example of MathML embedded in an HTML5 filelt;/h1gt; lt;pgt; The area of a circle is lt;mathgt; lt;migt;amp;pi;lt;/migt; lt;mogt;amp;InvisibleTimes;lt;/mogt; lt;msupgt; lt;migt;rlt;/migt; lt;mngt;2lt;/mngt; lt;/msupgt; lt;/mathgt;. lt;/pgt; lt;/bodygt; lt;/htmlgt;
Поддержка браузера

Из основных веб - браузеров, Gecko -На браузеры (например, Firefox ) имеют наиболее полную встроенную поддержку MathML.

Хотя механизм компоновки WebKit имеет разрабатываемую версию MathML, эта функция доступна только в версии 5.1 и выше Safari, Chrome 24, но не в более поздних версиях Chrome. Google удалил поддержку MathML, заявив, что проблемы с архитектурной безопасностью и малое использование не оправдывают затраты времени на разработку. По состоянию на октябрь 2013 года реализация WebKit / Safari содержит множество ошибок.

JavaFX / WebView. Также на основе WebKit встроенный веб-браузер JavaFX поддерживает MathML, начиная с версий JavaFX 8 Update 192 и JavaFX 11. Поддержка не поддерживается в предыдущих версиях JavaFX 8, JavaFX 9 и JavaFX 10.

Opera между версиями 9.5 и 12 поддерживает профиль MathML для CSS, но не может правильно позиционировать диакритические знаки. До версии 9.5 требовался пользовательский JavaScript или пользовательские таблицы стилей для имитации поддержки MathML. Начиная с Opera 14, Opera отказывается от поддержки MathML, перейдя на движок Chromium 25.

Microsoft Edge не поддерживает MathML и не планирует добавлять поддержку.

Internet Explorer не поддерживает MathML изначально. Поддержка IE6 через IE9 может быть добавлена ​​путем установки плагина MathPlayer. В IE10 есть несколько сбоев в работе MathPlayer, и Microsoft решила полностью отключить в IE11 интерфейс бинарных плагинов, который нужен MathPlayer. MathPlayer имеет лицензию, которая может ограничивать его использование или распространение на коммерческих веб-страницах и в программном обеспечении. Использование или распространение подключаемого модуля MathPlayer для отображения HTML-содержимого через элемент управления WebBrowser в коммерческом программном обеспечении также может быть запрещено этой лицензией.

KHTMLKonqueror в настоящее время не обеспечивает поддержку MathML.

Качество рендеринга MathML в браузере зависит от установленных шрифтов. Проект STIX Fonts выпустил исчерпывающий набор математических шрифтов под открытой лицензией. Cambria Math шрифт поставляется с Microsoft Windows была несколько более ограниченную поддержку.

По словам члена команды MathJax, ни один из основных производителей браузеров не платил своим разработчикам за любую работу по рендерингу MathML; любая существующая поддержка в подавляющем большинстве случаев является результатом неоплачиваемого времени / работы волонтеров.

В 2015 году была основана ассоциация MathML для поддержки принятия стандарта MathML.

Браузер MathML
Amaya да
AOL Explorer Нет
Avant Нет
Арора да
Василиск да
Камино да
Хром, Хром Нет
Дилло Нет
Dooble да
ELinks Нет
Фалькон Нет
Стадо да
Галеон да
iCab Нет
Internet Explorer Нет
Internet Explorer для Mac Нет
К-Мелеон да
Konqueror Нет
Ссылки Нет
Лунаскейп да
Рысь Нет
Maxthon Нет
Microsoft Edge да
Мидори Нет
Мозаика Нет
Mozilla да
Mozilla Firefox да
Netscape да
Браузер Netscape Зависит от
Netscape Navigator Нет
Netscape Navigator 9 да
NetSurf Нет
OmniWeb Нет
Опера да
Браузер Otter да
Бледная луна да
Полярность Нет
Qutebrowser Нет
Сафари Нет
SeaMonkey да
Шиира Нет
Слейпнир Нет
серфить Нет
Браузер Torch Нет
Интернет да
Всемирная сеть Нет
w3m Нет
Прочие стандарты

Другой стандарт, называемый OpenMath, который был разработан (в основном теми же людьми, которые разработали Content MathML) более конкретно для семантического хранения формул, также может использоваться в качестве дополнения к MathML. Данные OpenMath можно встроить в MathML с помощью lt;annotation-xml encoding="OpenMath"gt;элемента. Словари содержимого OpenMath можно использовать для определения значения lt;csymbolgt;элементов. Следующее определило бы P 1 ( x) как первый многочлен Лежандра

lt;applygt; lt;csymbol encoding="OpenMath" definitionURL="http://www.openmath.org/cd/contrib/cd/orthpoly1.xhtml#legendreP"gt; lt;msubgt;lt;migt;Plt;/migt;lt;mngt;1lt;/mngt;lt;/msubgt; lt;/csymbolgt; lt;cigt;xlt;/cigt; lt;/applygt;

Формат OMDoc был создан для разметки более крупных математических структур, чем формулы, от утверждений, таких как определения, теоремы, доказательства или примеры, до теорий и учебников. Формулы в документах OMDoc могут быть написаны либо в Content MathML, либо в OpenMath; для презентации они конвертируются в Presentation MathML.

ISO / IEC стандарт Office Open XML (OOXML) определяет другой XML - математический синтаксис, полученный из Microsoft Office продуктов. Однако он частично совместим благодаря относительно простым преобразованиям XSL.

Смотрите также
Примечания
использованная литература
дальнейшее чтение

Характеристики

внешние ссылки
  • W3C Math Home - содержит спецификации, ответы на часто задаваемые вопросы и список поддерживаемого программного обеспечения.
  • Пави, Сандху (12 декабря 2002 г.). «Справочник по математике». Чарльз Ривер Медиа. Дата обращения 2 октября 2015.
  • web-xslt, набор программ XSLT для обработки MathML (например, преобразование Content MathML в Presentation MathML, преобразование Presentation MathML в TeX)
Последняя правка сделана 2024-01-01 11:32:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте