MathML Martin Dlask
Charakteristika nadstavba XML pro zobrazování matematických výrazů na webu značkovací jazyk (markup language) součástí dokumentů konsorcia W3C v současnosti verze 3.0 (z roku 2010) alternativy pro psaní dalších nematematických vzorců (ChemistryML, MusicXML, VectorML)
Možnosti zápisu vzorců za pomoci standardních ascii znaků (a^2 + b^2) / (sqrt(x)) vylepšená znaková sada (a 2 + b 2 ) / √x vložením obrázku sofistikovanější způsob → MathML
Obrázky jako vzorce Obrázek je hezký, proč ho nepoužít? –velikost obrázku – zabírá paměť –složité vytvoření, v programu –komplikovaná obměna, modifikace (není možné měnit přímo v kódu) –nemožnost interpretace dat, jejich významu –při zvětšování dochází ke ztrátě kvality
Cíle MathML 1.rozšířitelný, snadno konvertovatelný systém (do jiných standardů – TeX) 2.možnost připojit MathML k HTML a interpretovat ho prohlížeči 3.získání vzorce ze zdrojového kódu, který může být určeným programem interpretován a vyhodnocen
2 varianty zápisu MathML Vizuální varianta (presentation markup) –lépe se zapisuje lidem –pro standardní matematickou notaci jak ji chápeme Sémantická varianta (content markup) –více se zaměřuje na strukturu a význam –pro strojové chápání výrazu –podobné funkcionálním zápisům
Dvě varianty
Kam psát kód? Document Type Definition definice jmenného prostoru
Vizuální varianta Základní tagy obaluje řádek matematického obsahu číslo, konstanta identifikátor, proměnná operátor (násobení, sčítání, odčítání) zlomek, který obaluje dva řádky mat. obsahu obaluje obyčejný text („Nechť je dán vektor…“)
Příklad
Opravdu to funguje? Příklady k prezentaci:
Další tagy horní index, zapisuje se do něho jak mocněnec tak mocnitel dolní index, zapisuje se do něho jak index tak objekt, který tento index bude mít druhá odmocnina z výrazu vyšší odmocniny – očekává řádek s výrazem pod odmocninou a druhý řádek řád mocniny v připojí prvek pod obsah připojí prvek nad obsah očekává tři prvky: samotný objekt, řádek k připojení pod obsah, řádek k připojení nad obsah tabulka, matice řádek v tabulce jeden prvek v matici
Příklad 2
Speciální znaky píší se do tagů Nekonečno∞ Suma∑ Derivace′ Parciální derivace∂ Integrál∫ Řecká písmenaα
Sémantická varianta stromová struktura uzavírá se do tzv. „prováděcích tagů“ tagy už nemají první jednotné písmeno („m“) jako u vizuální varianty „příkazové tagy“ nemusí být párové obtížné pro zápis do kódu prováděcí tag, obaluje obsah, zvláštní význam číslo, konstanta identifikátor, proměnná
Příklad 3 „divide(3,plus(x,2))“
Příklad 4
Příklad 5 – množiny
Další možnosti použití množinové operace rovnice, nerovnice funkce definované svorkou (piecewise) limity parciální derivace …
Atributy barva symbolů: barva pozadí: velikost: styl: pro celý blok vlastností se uzavírá do tagu
Předávání významu objektům deklarace přes definitionURL Příklad – Legendreovy polynomy v zápisu použity obě varianty = chyba?
Předávání významu objektům deklarace přes element declare x = 1.01 y = 2.02 A = (x,y) = (1.01, 2.02)
Míchání obou stylů (1) 1.povoleno dát prvky z vizuálního do sémantického (ne u všech prvků musí být jasně daný význam) 2.povoleno dát prvky ze sémantického do vizuálního (přidání prvkům informace o jejich významu) přidává možnosti při konverzi do jiných výstupů (audio výstup, LaTeX) možnost využití formy zobrazení jednoho stylu s tagy jiného stylu (rendering) jeden styl pro zobrazování (vizuální), druhý pro kopírování do kopírování a vložení do jiného systému pro zpracování a vyhodnocení (CAS), tag
Míchání obou stylů (2) pravidla na míchání stylů – složitá do uzavíracích tagů se mohou vkládat jen potomci, kteří jsou přípustní Příklad – x 2 Vizuální varianta Sémantická varianta Nesprávné použití tagů – degree není potomek msup
Podpora MathML podpora vizuálního MathML v prohlížečích Mozilla Firefox ano, již od verze 2.0 Google Chrome podporoval do února 2013 (24) Internet Explorer ne, ani nejnovější verze 10 Firefox pro Android ano, od verze 15.0 Chrome pro Android zatím nepodporuje Opera Mini (Mobile) zatím nepodporuje
Řešení možnosti –instalovat do prohlížeče plugin –aplikace na webu na zobrazování vzorců Mathjax – např. do formátu SVG Equation server – obrázkový výstup AsciiMathML - Javascript –sémantický konvertovat na vizuální (případně naopak)
Výhody a nevýhody Výhody –umožní vytvořit strukturovaný dokument, čitelný na více platformách –na bázi jazyka XML, jednoduché se ho naučit Nevýhody –XML je „upovídaný jazyk“, jedna rovnice může mít kód na půl stránky –i visuální varianta může být obtížná k vytváření vzorců a jejich editování
Reference 1.SANDHU, Pavi. The MathML handbook. 1st ed. Hingham, Mass.: Charles River Media, c2003, xviii, 518 p. ISBN W3C World Wide Web Consortium. MathML 3.0 [online] [cit ]. Dostupné z: 3.ROOT.CZ. Novinky v HTML5: Úvod do specifikace MathML 3.0 [online] [cit ]. Dostupné z: specifikace-mathml-3-0/ 4.K čemu nám je MathML. Inverval.cz [online] [cit ]. Dostupné z: mathml/