Направо към съдържанието

MathML

от Уикипедия, свободната енциклопедия
MathML
Mathematical Markup Language
Mathml-square-logo-128 [1]
Информация
Файлово разширение.xml+(.html, .html5)
Тип MIMEtext/mathml, application/mathml+xml [2]
СобственикWorld Wide Web Consortium
Тип на форматаМаркиращ език
MathML
Mathematical Markup Language
в Общомедия

Mathematical Markup Language (Шаблон:Lang-bg) (MathML) е спецификация от ниско ниво за описване на математическа символика в електронна форма, която може да направи възможно предаването между компютри както на самата символика, така и на нейното математическо съдържание. [3]

История

Предпоставки за възникването на езика

До момента на създаването на MathML, дълги години уеб разработчиците записват математическите формули и изрази с помощта на текстообработващи програми или с езика LaTex. За да се визуализира в Уеб, текстът се преработва в pdf-формат или се включват изображения за формулите в jpg-формат[4]. Формулите, съхранявани като картинки, в общия случай са по-трудни за гледане, четене и разбиране спрямо останалия околен текст в даден уеб-документ. Резултатът е трудно разчитане от потребителя.

Други недостатъци на този подход са удълженото време за създаване и редактиране на формулите, невъзможност за достъп до част от формулите, забавянето и липсата на достъп до самия сорс-код. Претърсването на текст за определена формула е трудоемко. Реално една формула е много по-малка и може да се компресира по-добре от нейния картинен формат. При изображения на формули не се позволява описанието на семантиката на отделните символи.

MathML version 1.0

Първата версия на MathML e представена от World Wide Web Consortium (W3C) през април 1998 г.[5]

Версия 1.01 излиза през юли 1999 г.

MathML version 2.0

Подготовката на второто издание на MathML 2.0 включва корекции на всички известни бъгове, оказали се проблематични в предишните версии, като не се правят промени, модифициращи фундамента на езика. В тази версия е разширен наборът от поддържани символи и е осигурена интеграция с други технологии на W3C. За първи път се включва и моделът MathML DOM (MathML Document Object Model) [6], така че компонентите на MathML могат да бъдат ползвани и управлявани от всеки език за сценарии. (MathML) Version 2.0 (Second Edition) е пусната през февруари 2001 г.

MathML version 3.0

Последната версия 3.0 2nd Edition е препоръчана на 10 април 2014 г.

Синтаксис и елементи на езика

Синтаксисът на езика включва текстови елементи, чрез които може да се уточни както представянето, така и съдържанието на математическата идея. Елементите се делят на два основни типа: презентиращи и съдържателни.

Презентиращи елементи

Имената на този тип елементи започват винаги с m и предназначението им е да комбинират отделните символи в математически изрази от по-високо ниво, посредством форматиране.

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

Презентиращите елементи се разделят на два класа.

  • Символни елементи (Представят отделни символи, имена, числа, букви, оператори и др.)
Ето как може да се представи изразът
символен елемент обозначава
mi identifier (идентификатор)
mn number (число)
mo operator (оператор)
mtext text (текст)
mspace space (интервал)
ms string literal (стрингов литерал)



  • Схемни разположения (Схемните разположения създават изрази отчасти и могат да имат за съдържание само елементи, с изключение на празните интервали, които се игнорират.)

В контекста на указателя за съдържание горният индекс типично ще се означава като оператор за степен xn, който ще изиска два операнда: „основа“ и „степен“. Това не е случайно, тъй като общото правило е, че разположението на математическите символи строго следват логическата структура на основните математически обекти.

Ето как може да се представи изразът xnПолучер текст
схемно разположение действие
mrow групира хоризонтално произволен брой от под-изрази
mfrac образува обикновена дроб от два под-израза
msqrt образува корен квадратен (радикал без индекс)
mstyle променя стила
mpadded нагласява разстоянието около съдържанието
msub добавя долен индекс към основа



Съдържателни елементи

Основното множество от съдържателните елементи е избрано да бъде адекватно на простото кодиране на повечето формули.

Първата цел на кодирането на съдържание е да се установят явните връзки между математическите структури и тяхното математическо значение. Съдържателните елементи съответстват директно на частите от основното дърво на математическия израз. На всяка структура е присвоена съответна семантика по подразбиране и съществува механизъм за присвояване на нови математически дефиниции с нови конструкции. За постигане на тези цели MathML кодирането на съдържание се базира на концепцията на дървото на математическия израз. Съдържанието на дървото на израза се конструира от множество от по-примитивни обекти, наричани контейнери и оператори. MathML притежава богат набор от предефинирани обекти от тип контейнер и оператор, както и конструкции за комбиниране на контейнери и оператори така, че да се отчита математическия им смисъл.

Най-основният начин за изграждане на математически израз в MathML с маркиране на съдържание е използването на конструкцията „приложи“ („apply“). Един елемент на apply типично прилага някакъв оператор върху неговите аргументи. Това съответства на пълен математически израз, което означава част от математика, която може да е оградена със скоби или „логически скоби“, без да се променя нейния смисъл. Отварящият и затварящ таг на apply задават точно обхвата на всеки оператор или функция.

Така например ще бъде изписан по следният начин:

      <apply><sin/><ci>x</ci></apply>
Ето как изглежда кодираният математически израз
дума действие
interval, list, matrix, matrixrow, set, vector, apply конструктори
int, sum, product, root, diff, partialdiff оператори
neq, equivalent, approx, factorof двоична релация
condition условие
semantics, annotation, annotation-xml планировки
&true; Логическата константа true („истина“)
&false; Логическата константа false („лъжа“)



Работа с MathML в HTML / XHTML файлове

Работата с различните интерпретатори на тагове, процесори, транслатори и редактори е изключително важна и най вече интегрирането му в HTML4 и XHTML. MathML маркирането трябва да се разпознава като валидно XML вложено съдържание, а не като грешка.

Освен, че може да се използва изолирано като език за обмен на математически изрази между MathML, той може да бъде използван и за вмъкване на формули в други приложения на XML.

Ето един пример за работа с MathML синтаксис в XHTML документ, като трябва да се забележи поставянето на xmlns атрибут в началото, който задава име-пространство по подразбиране за MathML елементите. Също така може да бъде използван и атрибут с xmlns префикс. Закодираният текст в примера по- долу изчислява лице на окръжност с формулата π*r 2.

      <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
  "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Example of MathML embedded in an XHTML file</title>
    <meta name="description" content="Example of MathML embedded in an XHTML file"/>
  </head>
  <body>
    <h1>Example of MathML embedded in an XHTML file</h1>
    <p>
      The area of a circle is
      <math xmlns="http://www.w3.org/1998/Math/MathML">
        <mi>&#x03C0;<!-- π --></mi>
        <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
        <msup>
          <mi>r</mi>
          <mn>2</mn>
        </msup>
      </math>.
    </p>
  </body>
</html>

Работа с MathML в HTML5 файлове

HTML5 поддържа MathML синтаксиса! Поради тази причина, не е необходимо да се специфицира име- пространство, чрез атрибути.

Улеснението в HTML5 е видимо в по долния пример, изчисляващ лице на окръжност с формулата π*r 2.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Example of MathML embedded in an HTML5 file</title>
  </head>
  <body>
    <h1>Example of MathML embedded in an HTML5 file</h1>
    <p>
      The area of a circle is
      <math>
        <mi>&pi;</mi>
        <mo>&InvisibleTimes;</mo>
        <msup>
          <mi>r</mi>
          <mn>2</mn>
        </msup>
      </math>.
    </p>
  </body>
</html>

Софтуерна поддръжка

Браузъри

Браузърите, които биха могли да рендират страници, използващи конвенциите на MathML[7] (знакът '+' индикира, че и следващите версии също работят):

Списък с браузърите в табличен вид
За Windows За Linux/Unix За Macintosh
IE 5.0 с Techexplorer плъг-ин Netscape 6.1 с Techexplorer плъг-ин IE 5.0+ с Techexplorer плъг-ин
IE 5.5 с MathPlayer или с Techexplorer плъг-ини Netscape 7.0+ Mozilla 0.9.9+
IE 6.0+, опционално с MathPlayer или с Techexplorer плъг-ини Mozilla 0.9.9+
Netscape 7.0+ Amaya, всички версии (Само Presentation MathML)
Amaya, всички версии (Само Presentation MathML)
Mozilla 0.9.9+

Редактори

Файл:2d28yes.jpg
Инсталационен прозорец на Math Type Editor

Някои редактори поддържат MathML още с инсталационния си пакет. Такива редактори са MathFlow и MathType от Design Science, MathMagic, Publicon от Wolfram Research и WIRIS.[27] Full MathML editor list at W3C.[28]

MathML се поддържа от основните офис продукти, като Apache OpenOffice (от OpenOffice Math), LibreOffice (от LibreOffice Math), Calligra Suite (KOffice), и MS Office 2007, също така и от изчислителни софтуерни продуктикато Mathematica, Maple и Microsoft версията Casio ClassPad 300.

Firemath, и addon, от Firefox, предоставят WYSIWYG MathML редактор.

Бележки

  1. mathml-association.org MathML асоциация.
  2. MathML specification
  3. Conf.Uni.bg Науни трудове на русенския университет – 2014, том 53, серия 6.1
  4. FMI-Plovdiv(TeacherBook)
  5. Wikipedia (EN)
  6. Computerworld България Вестник за IT новини.
  7. dichev.com /Блогът на Александър Дичев.

Външни препратки