MathML - MathML
Vyvinul | World Wide Web Consortium |
---|---|
Typ formátu | Značkovací jazyk |
Rozšířeno z | XML |
Standard | W3C MathML |
Matematický značkovací jazyk (MathML) je matematický značkovací jazyk, aplikace XML za popis matematický notace a zachycení jeho struktury i obsahu. Jeho cílem je integrovat matematické vzorce do Celosvětová Síť stránky a další dokumenty. Je součástí HTML5 a ISO standard ISO / IEC DIS 40314 od roku 2015.
Dějiny
MathML 1 byl vydán jako doporučení W3C v dubnu 1998 jako první XML jazyk, který doporučuje W3C. Verze 1.01 formátu byla vydána v červenci 1999 a verze 2.0 se objevila v únoru 2001.
V říjnu 2003 vyšlo druhé vydání MathML verze 2.0 jako finální vydání matematické pracovní skupiny W3C.
MathML byl původně navržen před dokončením Obory názvů XML. Byl mu však přidělen obor názvů bezprostředně po dokončení doporučení oboru názvů a pro použití XML by měly být prvky v oboru názvů s identifikátorem URI oboru názvů Obor názvů MathML. Když se MathML používá v HTML (na rozdíl od XML), tento obor názvů je automaticky odvozen analyzátorem HTML a nemusí být v dokumentu specifikován.
MathML verze 3
Verze 3 specifikace MathML byla vydána jako Doporučení W3C dne 20. října 2010. Doporučení ze dne MathML pro profil CSS byl později propuštěn 7. června 2011;[1] toto je podmnožina MathML vhodná pro formátování CSS. Další podmnožina, Přísný obsah MathML, poskytuje podmnožinu obsahu MathML s jednotnou strukturou a je navržen tak, aby byl kompatibilní s OpenMath. Další prvky obsahu jsou definovány z hlediska transformace na přísnou podmnožinu. Mezi nové prvky obsahu patří <bind>
který spojuje vázané proměnné (<bvar>
) na výrazy, například souhrnný index. Nové <share>
prvek umožňuje sdílení struktury.[2]
Vývoj MathML 3.0 prošel řadou fází. V červnu 2006 W3C přepracovalo pracovní skupinu MathML, aby vypracovala doporučení MathML 3 do února 2008, a v listopadu 2008 prodloužila chartu do dubna 2010. Šestý pracovní návrh revize MathML 3 byl zveřejněn v červnu 2009. Verze z 10. srpna 2010 3 promoval, aby se stal spíše „navrhovaným doporučením“ než návrhem.[2]
Druhé vydání MathML 3.0 bylo vydáno jako doporučení W3C 10. dubna 2014.[3] Specifikace byla schválena jako ISO / IEC mezinárodní norma 40314: 2015 23. června 2015.[4]
Prezentace a sémantika
MathML se zabývá nejen prezentace ale také význam komponent vzorce (druhá část MathML je známá jako „Content MathML“). Protože význam rovnice je zachován odděleně od prezentace, může být způsob komunikace obsahu ponechán na uživateli. Například webové stránky, do nichž je vložen MathML, lze zobrazit jako normální webové stránky s mnoha prohlížeči, ale uživatelé se zrakovým postižením si mohou stejný MathML přečíst také pomocí čtečky obrazovky (např. pomocí MathPlayer zapojit pro internet Explorer, Opera 9,50 sestavení 9656+ nebo Fire Vox rozšíření pro Firefox).
Prezentace MathML
Prezentace MathML se zaměřuje na zobrazení rovnice a má přibližně 30 prvků. Názvy všech prvků začínají na m
. Je vytvořen výraz Presentation MathML žetony které jsou kombinovány pomocí prvků vyšší úrovně, které řídí jejich rozložení (existuje také asi 50 atributů, které řídí hlavně jemné detaily).
Prvky tokenu obecně obsahují pouze znaky (nikoli jiné prvky). Obsahují:
<mi>x</mi>
- identifikátory;<mo>+</mo>
- operátoři;<mn>2</mn>
- čísla.<mtext>non zero</mtext>
- text.
Všimněte si však, že tyto prvky tokenu lze použít jako body rozšíření, což umožňuje označení v hostitelských jazycích HTML5 umožňuje většinu vložených značek HTML v mtextu a
<mtext><b>non</b> zero</mtext>
je v souladu s tím, že se značka HTML používá v MathML k označení vloženého textu (v tomto příkladu je první slovo zvýrazněno tučně).
Kombinují se pomocí prvků rozvržení, které obecně obsahují pouze prvky. Obsahují:
<mrow>
- vodorovná řada položek;<msup>
,<munderover>
„a další - horní indexy, limity nad a pod operátory, jako jsou částky atd .;<mfrac>
- zlomky;<msqrt>
a<mroot>
- kořeny;<mfenced>
- obklopení obsahu ploty, jako jsou závorky.
Jako obvykle v HTML a XML, mnoho subjekty jsou k dispozici pro specifikaci speciálních symbolů podle názvu, například & pi;
a & RightArrow;
. Zajímavou vlastností MathML je, že entity také existují k vyjádření normálně neviditelných operátorů, jako je & InvisibleTimes;
pro implicitní násobení. Oni jsou:
FUNKČNÍ APLIKACE U + 2061; U + 2062 NEVIDITELNÝ ČAS; U + 2063 NEVIDITELNÝ ODDĚLOVAČ; a U + 2064 INVISIBLE PLUS. Úplná specifikace entit MathML [5] je úzce koordinován s odpovídajícími specifikacemi pro použití s HTML a XML [6] obecně.
Tedy výraz vyžaduje dva prvky rozvržení: jeden pro vytvoření celkové vodorovné řady a jeden pro horní index. Včetně pouze prvků rozložení a (dosud neznačených) holých tokenů vypadá struktura takto:
<mrow> A & InvisibleTimes; <msup>x 2</msup> + b & InvisibleTimes; x + c </mrow>
Jednotlivé tokeny však také musí být identifikovány jako identifikátory (mi), operátory (mo) nebo čísla (mn). Přidáním označení tokenu skončí celý formulář jako:
<mrow> <mi>A</mi> <mo>& InvisibleTimes;</mo> <msup><mi>X</mi><mn>2</mn></msup> <mo>+</mo><mi>b</mi><mo>& InvisibleTimes;</mo><mi>X</mi> <mo>+</mo><mi>C</mi> </mrow>
Platný dokument MathML se obvykle skládá z deklarace XML, DOCTYPE deklarace a prvek dokumentu. Tělo dokumentu poté obsahuje výrazy MathML, které se v dokumentu v elementech
<?xml version="1.0" encoding="UTF-8"?> "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"> xmlns =„http://www.w3.org/1998/Math/MathML“> <mrow> <mi>A</mi> <mo>& InvisibleTimes;</mo> <msup> <mi>X</mi> <mn>2</mn> </msup> <mo>+</mo> <mi>b</mi> <mo>& InvisibleTimes; </mo> <mi>X</mi> <mo>+</mo> <mi>C</mi> </mrow> </math>
Obsah MathML
Obsah MathML se zaměřuje spíše na sémantiku nebo význam výrazu než na jeho rozložení. Centrem obsahu MathML je <apply>
prvek, který představuje funkci aplikace. Aplikovaná funkce je první podřízený prvek pod <apply>
a jeho operandy nebo parametry jsou zbývající podřízené prvky. Content MathML používá pouze několik atributů.
Tokeny, jako jsou identifikátory a čísla, jsou jednotlivě označeny, podobně jako u Presentation MathML, ale s prvky, jako je ci
a cn
. Spíše než pouhým jiným typem tokenu jsou operátory reprezentovány konkrétními prvky, jejichž matematickou sémantiku zná MathML: krát
, Napájení
atd. Existuje více než sto různých prvků pro různé funkce a operátory.[7]
Například, <apply><sin/><ci>X</ci></apply>
představuje a <apply><plus/><ci>X</ci><cn>5</cn></apply>
představuje . Prvky představující operátory a funkce jsou prázdné prvky, protože jejich operandy jsou dalšími prvky pod obsahem <apply>
.
Výraz může být reprezentován jako
<math> <apply> <plus/> <apply> <times/> <ci>A</ci> <apply> <power/> <ci>X</ci> <cn>2</cn> </apply> </apply> <apply> <times/> <ci>b</ci> <ci>X</ci> </apply> <ci>C</ci> </apply></math>
Obsah MathML je téměř izomorfní výrazy v funkční jazyk jako Systém. <apply>...</apply>
činí Schéma (...)
a mnoho prvků operátoru a funkce odpovídá funkcím Scheme. S touto triviální doslovnou transformací a odznačením jednotlivých tokenů se výše uvedený příklad stane:
(Plus (krát A (Napájení X 2)) (krát b X) C)
To odráží dlouho známý úzký vztah mezi strukturami prvků XML a LISP nebo schématem S-výrazy.[8][9]
Anotace Wikidata v Content MathML
Podle OM Society,[10] Slovníky obsahu OpenMath lze použít jako kolekce symbolů a identifikátorů s deklaracemi jejich sémantiky - jmen, popisů a pravidel. Jak bylo navrženo v,[11] sémantická znalostní databáze Wikidata[12] lze použít jako OpenMath Content Dictionary k propojení sémantických prvků matematického vzorce s jedinečnými a jazykově nezávislými položkami Wikidata.
Příklad a srovnání s jinými formáty
Známý kvadratický vzorec:
bude označen pomocí Latex taková syntaxe:
x = frac{-b odpoledne sqrt{b^2 - 4ac}}{2a}
v troff / ekv takhle:
x = {- b + - sqrt {b sup 2 - 4ac}} nad 2a
v Apache OpenOffice Math a LibreOffice Math takto (všechny tři jsou platné):
x = {- b plusminus sqrt {b ^ 2 - 4 ac}} nad {2 a} x = {- b + - sqrt {b ^ 2 - 4ac}} nad {2a} x = {- b ± sqrt {b ^ 2 - 4ac}} nad {2a}
v AsciiMath takhle:
x = (- b + - sqrt (b ^ 2 - 4ac)) / (2a)
Výše uvedená rovnice může být v Presentation MathML reprezentována jako strom výrazů vytvořený z prvků rozvržení jako mfrac nebo msqrt elementy:
režim ="Zobrazit" xmlns =„http://www.w3.org/1998/Math/MathML“> <semantics> <mrow> <mi>X</mi> <mo>=</mo> <mfrac> <mrow> forma ="předpona">& # x2212;<!-- − --></mo> <mi>b</mi> <mo>& # x00B1;<!-- ± --></mo> <msqrt> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>& # x2212;<!-- − --></mo> <mn>4</mn> <mo>& # x2062;<!-- ⁢ --></mo> <mi>A</mi> <mo>& # x2062;<!-- ⁢ --></mo> <mi>C</mi> </msqrt> </mrow> <mrow> <mn>2</mn> <mo>& # x2062;<!-- ⁢ --></mo> <mi>A</mi> </mrow> </mfrac> </mrow> kódování =„TeX“> x = frac {-b pm sqrt {b ^ 2-4ac}} {2a} </annotation> kódování =„StarMath 5.0“> x = {- b plusminus sqrt {b ^ 2 - 4 ac}} nad {2 a} </annotation> </semantics></math>
Tento příklad používá <annotation>
prvek, který lze použít k vložení sémantické anotace do formátu jiného než XML, například k uložení vzorce ve formátu používaném editorem rovnic, jako je například StarMath nebo označení pomocí Latex syntax.
I když je méně kompaktní než TeX, strukturování XML slibuje, že bude široce použitelné, a umožňuje okamžité zobrazení v aplikacích, jako je internetové prohlížeče a usnadňuje interpretaci jeho významu v matematických softwarových produktech. MathML není určen k tomu, aby byl psán nebo upravován přímo lidmi.[13]
Vkládání MathML do souborů HTML / XHTML
MathML, který je XML, lze vložit do jiných souborů XML, například XHTML soubory využívající jmenné prostory XML. Prohlížeče jako Firefox 3+ a Opera 9.6+ (podpora neúplná) mohou zobrazit Presentation MathML vložený do XHTML.
<?xml version="1.0" encoding="UTF-8"?> „http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd“> xmlns =„http://www.w3.org/1999/xhtml“ xml: lang =„cs“> <head> <title>Příklad MathML vloženého do souboru XHTML</title> jméno ="popis" obsah ="Příklad MathML vloženého do souboru XHTML"/> </head> <body> <h1>Příklad MathML vloženého do souboru XHTML</h1> <p> Plocha kruhu je xmlns =„http://www.w3.org/1998/Math/MathML“> <mi>& # x03C0;<!-- π --></mi> <mo>& # x2062;<!-- ⁢ --></mo> <msup> <mi>r</mi> <mn>2</mn> </msup> </math>. </p> </body></html>
- Vykreslení vzorce pro kruh v MathML + XHTML pomocí Firefoxu 22 v Mac OS X
Inline MathML je také podporován v HTML5 soubory v aktuálních verzích WebKit (Safari a JavaFX / WebView ), Gekon (Firefox ). Není třeba specifikovat jmenné prostory jako v XHTML.
<!DOCTYPE html><html jazyk=„cs“> <hlava> <meta znaková sada="utf-8"> <titul>Příklad MathML vloženého do souboru HTML5</titul> </hlava> <tělo> <h1>Příklad MathML vloženého do souboru HTML5</h1> <str> Plocha kruhu je <matematika> <mi>& pi;</mi> <mo>& InvisibleTimes;</mo> <msup> <mi>r</mi> <mn>2</mn> </msup> </matematika>. </str> </tělo></html>
Podpora prohlížeče
Major internetové prohlížeče, Gekon - prohlížeče založené na Firefox ) mají nejúplnější nativní podporu pro MathML.[14][15]
Zatímco WebKit layout engine má vývojovou verzi MathML,[16] tato funkce je k dispozici pouze ve verzi 5.1 a vyšší Safari,[17] Chrome 24[18][19] ale ne v novějších verzích prohlížeče Chrome.[20] Google odstranil podporu MathML prohlašující problémy se zabezpečením architektury a nízké využití neospravedlňují jejich konstrukční čas.[21] Od října 2013[Aktualizace], implementace WebKit / Safari má řadu chyb.[22]
JavaFX / WebView. Vestavěný webový prohlížeč JavaFX založený na WebKit podporuje také MathML počínaje verzemi JavaFX 8 Update 192 a JavaFX 11. Podpora je přerušena, v předchozích verzích JavaFX 8, JavaFX 9 a JavaFX 10.
Opera, mezi verzí 9.5 a 12, podporuje MathML pro profil CSS,[23][24] ale nedokáže správně umístit diakritická znaménka.[25] Před verzí 9.5 vyžadovalo emulaci podpory MathML pomocí uživatelského JavaScriptu nebo vlastních šablon stylů.[26] Začínání s Opera 14, Opera upustí od podpory MathML přepnutím na engine Chromium 25.[27]
internet Explorer nativně nepodporuje MathML. Podpora pro IE6 přes IE9 lze přidat instalací MathPlayer zapojit.[28] IE10 má několik havarujících chyb s MathPlayerem a Microsoft se rozhodl úplně zakázat v IE11 binární zásuvné rozhraní, které MathPlayer potřebuje.[29] MathPlayer má licenci, která může omezit jeho použití nebo distribuci na komerčních webových stránkách a v softwaru. Používání nebo distribuce pluginu MathPlayer k zobrazování obsahu HTML pomocí ovládacího prvku WebBrowser v komerčním softwaru může být touto licencí také zakázáno.
The KHTML -na základě Konqueror v současné době neposkytuje podporu pro MathML.[30]
Kvalita vykreslení MathML v prohlížeči závisí na nainstalovaných písmech. The Projekt STIX Fonts vydali komplexní sadu matematických písem pod otevřenou licencí. The Cambria Math písmo dodávané s Microsoft Windows mělo mírně omezenější podporu.[31]
Podle člena týmu MathJax žádný z hlavních tvůrců prohlížečů neplatil žádnému ze svých vývojářů za žádnou práci s vykreslováním MathML; jakákoli podpora existuje, je převážně výsledkem neplaceného času / práce dobrovolníka.[32]
V roce 2015 bylo založeno sdružení MathML na podporu přijetí standardu MathML.[33]
Prohlížeč | MathML |
---|---|
Amaya | Ano |
Průzkumník AOL | Ne[poznámka 1] |
Avant | Ne |
Arora | Ano |
Bazilišek | Ano |
Camino | Ano |
Chrome | Ne[21] |
Dillo | Ne |
Dooble | Ano |
ELinks | Ne |
Falkon | Ne |
Stádo | Ano |
Galeon | Ano |
iCab | Ne |
internet Explorer | Ne[poznámka 1] |
Internet Explorer pro Mac | Ne |
K-Meleon | Ano |
Konqueror | Ne |
Odkazy | Ne |
Lunascape | Ano[34] |
Rys | Ne |
Maxthon | Ne |
Microsoft Edge | Ne |
Midori | Ne |
Mozaika | Ne |
Mozilla | Ano |
Mozilla Firefox | Ano |
Netscape | Ano |
Prohlížeč Netscape | Záleží[35] |
Netscape Navigator | Ne |
Netscape Navigator 9 | Ano |
NetSurf | Ne |
OmniWeb | Ne |
Opera | Ano |
Bledý měsíc | Ano |
Polarita | Ne |
Safari | Ne |
Mořská opice | Ano |
Shiira | Ne |
Sleipnir | Ne[poznámka 1] |
surfovat | Ne |
Prohlížeč pochodní | Ne |
Web | Ano |
Celosvětová Síť | Ne |
w3m | Ne |
Další standardy
Volal další standard OpenMath který byl navržen (převážně stejnými lidmi, kteří vymysleli Content MathML) konkrétněji pro sémantické ukládání vzorců, lze také použít k doplnění MathML. Data OpenMath lze vložit do MathML pomocí & lt; annotation-xml encoding = "OpenMath" & gt;
živel. OpenMath slovníky obsahu lze použít k definování významu <csymbol>
elementy. Následující by definovalo P1(X) být první Legendární polynom
<apply> kódování =„OpenMath“ definiceURL =„http://www.openmath.org/cd/contrib/cd/orthpoly1.xhtml#legendreP“> <msub><mi>P</mi><mn>1</mn></msub> </csymbol> <ci>X</ci></apply>
The OMDoc Byl vytvořen formát pro značení větších matematických struktur než vzorců, od příkazů, jako jsou definice, věty, důkazy nebo příklady, až po teorie a učebnice. Vzorce v dokumentech OMDoc lze psát v Content MathML nebo OpenMath; pro prezentaci jsou převedeny na Presentation MathML.
The ISO /IEC Standard Office Open XML (OOXML) definuje jinou matematickou syntaxi XML, odvozenou od Microsoft Office produkty. Je však částečně kompatibilní[36] přes relativně jednoduché Transformace XSL.
Viz také
- CSS
- Seznam značkovacích jazyků dokumentů
- Porovnání značkovacích jazyků dokumentů
- Redaktoři vzorců
- LaTeX2HTML
- LaTeXML
- KaTeX - Knihovna Javascript, která převádí latex na mathml
- MathJax - Knihovna Javascript, která převádí latex na mathml
Poznámky
Reference
- ^ „MathML pro profil CSS“. W3C. 7. června 2011. Citováno 25. července 2013.
- ^ A b Doporučení W3C pro matematický značkovací jazyk verze 3.0. W3.org. Citováno dne 9. května 2012.
- ^ MathML verze 3.0, 2. vydání. W3.org. Citováno dne 8. července 2014.
- ^ W3C MathML 3.0 Schváleno jako mezinárodní standard ISO / IEC. W3.org. Citováno 12. července 2015.
- ^ „Postavy, entity a písma“. www.w3.org.
- ^ „Definice entit XML pro znaky (2. vydání)“. www.w3.org.
- ^ „Označení obsahu“. www.w3.org.
- ^ Steven DeRose. Kniha SGML FAQ: Understanding the Relationship of SGML and XML, Kluwer Academic Publishers, 1997. ISBN 978-0-7923-9943-8.
- ^ Kanonické výrazy S # citují poznámku-0
- ^ „OpenMath Home · OpenMath“. www.openmath.org.
- ^ Moritz Schubotz; Philipp Scharpf; Bela Gipp. (2018). "Reprezentace matematických vzorců v MathML obsahu pomocí Wikidata" (PDF). Birndl @ sigir.
- ^ „Wikidata“. www.wikidata.org.
- ^ Buswell, Steven; Devitt, Stan; Diaz, Angel; et al. (7. července 1999). „Specifikace Mathematical Markup Language (MathML) 1.01 (abstrakt)“. Citováno 26. září 2006.
I když je MathML čitelný člověkem, předpokládá se, že ve všech, kromě nejjednodušších případů, budou autoři používat ke generování MathML editory rovnic, převodní programy a další specializované softwarové nástroje.
- ^ Wang, Frédéric, Stav Mozilla MathML, Mozilla
- ^ Sidje, Roger B., Vytváření MathML pro Mozillu, Mozilla
- ^ Chyba 3251 - Implementujte MathML (hlavní chyba), WebKit . . . (Nicméně „viz také“) https://trac.webkit.org/wiki/MathML%20Status
- ^ Safari 5.1 a matematika
- ^ Podpora MathML pro Chrome, BrowserFame, archivováno z originál dne 14. října 2012, vyvoláno 16. října 2012
- ^ Stabilní Chrome 24 podporuje MathML a uzavírá bezpečnostní díry, The H Online, vyvoláno 11. ledna 2013
- ^ Stabilní aktualizace kanálu, vyvoláno 7. dubna 2013
- ^ A b „Google odečte z Chromu MathML a hněv se znásobí“. CNET. Citováno 22. listopadu 2014.
- ^ Frédéric Wang. „Financování vývoje MathML v Gecko a WebKit - Blog de Frédéric“. maths-informatique-jeux.com. Archivovány od originál dne 14. prosince 2014. Citováno 22. listopadu 2014.
- ^ McCathieNevile, Charles (27. září 2007), Umí Kestrels dělat matematiku? Podpora MathML v Opera Kestrel, Opera
- ^ Olsen, Tommy A. (16. listopadu 2007), Ještě více práce, Opera, archivovány z originál dne 18. listopadu 2007
- ^ MathML - blog Opera MathML. My.opera.com (1. listopadu 2007). Citováno dne 9. května 2012.
- ^ UserJS pro MathML 2.0. My.opera.com. Citováno dne 9. května 2012.
- ^ Opera 14 beta pro Android je venku, archivovány z originál dne 8. března 2013
- ^ MathPlayer - historie verzí
- ^ „Microsoft ochromuje zobrazení matematiky v IE10 a 11“. dessci.com. Archivovány od originál dne 1. července 2014. Citováno 22. listopadu 2014.
- ^ Chyba 30526 - podpora MathML pro Konqi
- ^ Vismor, Timothy, Prohlížení matematiky na internetu, vyvoláno 13. dubna 2011
- ^ Peter Krautzberger. „MathML navazuje“. oreilly.com. Citováno 22. listopadu 2014.
- ^ Deyan Ginev; Michael Kohlhase; Moritz Schubotz; Raniere Silva; Frédéric Wang, Mondial Association for Tools Handling MathML, vyvoláno 20. června 2016
- ^ Závisí na tom modul rozložení který je vybrán: Trident nebo Gecko nebo WebKit.
- ^ Závisí na tom modul rozložení který je vybrán: Trident nebo Gecko.
- ^ David Carlisle (9. května 2007), XHTML a MathML z Office 2007, David Carlisle, vyvoláno 20. září 2007
Další čtení
Specifikace
- Doporučení W3C: Specifikace Mathematical Markup Language (MathML) 1.01
- Doporučení W3C: Mathematical Markup Language (MathML) verze 2.0 (druhé vydání)
- Doporučení W3C: Mathematical Markup Language (MathML) verze 3.0 (třetí vydání)
externí odkazy
- W3C Math Home - Obsahuje specifikace, časté dotazy a seznam podpůrného softwaru.
- Pavi, Sandhu (12. prosince 2002). „Matematická příručka“. Charles River Media. Citováno 2. října 2015.