MathML
|}
MathML Mathematical Markup Language | |
![]() | |
Информация | |
---|---|
Файлово разширение | .xml+(.html, .html5) |
Тип MIME | text/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, който ще изиска два операнда: „основа“ и „степен“. Това не е случайно, тъй като общото правило е, че разположението на математическите символи строго следват логическата структура на основните математически обекти.

схемно разположение | действие |
---|---|
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 eлементите.Също така може да бъде използван и атрибут с 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>π<!-- π --></mi>
<mo>⁢<!-- ⁢ --></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>π</mi>
<mo>⁢</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+ |
Редактори
Някои редактори поддържат 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 редактор.
Бележки
- ↑ mathml-association.org MathML асоциация.
- ↑ MathML specification
- ↑ Conf.Uni.bg Науни трудове на русенския университет - 2014, том 53, серия 6.1
- ↑ FMI-Plovdiv(TeacherBook)
- ↑ Wikipedia (EN)
- ↑ Computerworld България Вестник за IT новини.
- ↑ dichev.com /Блогът на Александър Дичев.