MathML

MathML eli matemaattinen merkintäkieli (sanoista Mathematical Markup Language) on XML:n sovellus, jolla voidaan esittää matemaattisia symboleja ja kaavoja. Tarkoituksena on sisällyttää verkkosivuihin matemaattisia kaavoja.

MathML on W3C:n suositus.[1] Viimeisin virallinen versio on MathML 3,[2] mutta se on todettu hankalaksi tukea, joten sen tilalle on kehitetty MathML Core,[3] joka keskittyy olennaisiin osiin MathML-koodia. Se on vasta luonnosvaiheessa. Seuraava luonnosvaiheessa oleva laaja standardi tulee olemaan MathML 4.[4]

Historia

Ensimmäinen määrittelyversio 1.01 julkaistiin heinäkuussa 1999 ja versio 2.0 ilmestyi helmikuussa 2001. Lokakuussa 2003 MathML:n versio 2.0 julkaistiin lopullisena versiona.

MathML kehitettiin ennen XML:n nimiavaruuksia. Siksi MathML ei usein käytä nimiavaruuksia ja ohjelmat, jotka käsittelevät MathML:ää, kuten Mozilla-selain, eivät vaadi nimiavaruuksien määrittämistä. Ohjelmissa, jotka käyttävät nimiavaruuksia MathML:ssä, suositeltu nimiavaruus-URI on http://www.w3.org/1998/Math/MathML.

Esitys ja merkitys

XML:n tavoin MathML ei kuvaa ainoastaan esitysmuotoa, vaan se voi myös sisältää kaavojen osien merkityksen. Tämä jälkimmäinen osa tunnetaan nimellä MathML-Content (content tarkoittaa sisältöä). Koska laskua tai kaavaa säilytetään erillään esityksestä se, miten sisällyksen tarkoitus kerrotaan, jätetään käyttäjälle. Esimerkiksi nettisivut, jotka sisältävät MathML:llä toteutetun kaavan, voidaan näyttää normaaleina sivuina monilla eri selaimilla, mutta ruudunlukuohjelma voi lukea näkövammaiselle käyttäjälle saman MathML:n ääneen. Esimerkiksi käyttäen MathPlayer-lisäosaa Internet Explorerissa tai lataamalla MathCAT-lisäosan ruudunlukijaansa (tällä hetkellä saatavilla NVDA-ruudunlukijalle).

Esimerkki

Tunnettu toisen asteen yhtälön ratkaisukaava

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

merkittäisiin TeX-syntaksilla näin:

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

Ja MathML:llä näin:

<math>
 <mi>x</mi>
 <mo>=</mo>
 <mfrac>
  <mrow>
   <mrow>
    <mo>-</mo>
    <mi>b</mi>
   </mrow>
   <mo>±</mo>
   <msqrt>
    <msup>
     <mi>b</mi>
     <mn>2</mn>
    </msup>
    <mo>-</mo>
    <mrow>
     <mn>4</mn>
     <mo>⁢</mo>
     <mi>a</mi>
     <mo>⁢</mo>
     <mi>c</mi>
    </mrow>
   </msqrt>
  </mrow>
  <mrow>
   <mn>2</mn>
   <mo>⁢</mo>
   <mi>a</mi>
  </mrow>
 </mfrac>
</math>

Vaikka MathML-merkintä on TeX-esitystä pidempi, XML-muotoilu laajentaa merkinnän käsittelyä ohjelmallisesti ja mahdollistaa tulostuksen erilaisissa ohjelmissa kuten esimerkiksi selaimessa. MathML-koodia ei ole tarkoitettu suoraan ihmisen muokattavaksi.

Ohjelmistotuki

Editorit

Suoran MathML tuki (mm. MathML:n leikkauksen ja liimauksen) sisältäviä editoreja ovat julkaisseet Wolfram Research (Publicon) ja Soft4science (SciWriter).

MathML:ää tukevia toimisto-ohjelmistoja ovat muun muassa LibreOffice ja KOffice ja matemaattisista ohjelmistoista Mathematica.

Muunto

Monia muunto-ohjelmia matemaattisen ilmaisun muuntamiseen MathML:ksi on markkinoilla, sisältäen muuntajia TeXin ja MathML:n välillä. ConTeXt kääntää MathML:n TeXiin (käyttökohteena pdf-tiedostot). Design Sciencen MathTypellä voi WYSIWYG-editorissa käsiteltyjä kaavoja muuntaa MathML:ksi. Wolfram Research tarjoaa nettisivun kirjoitettujen kaavojen kääntämiseksi MathML:ksi.

GNU TeXmacs on WYSIWYG-editori, joka luotu matematiikan esitystä silmällä pitäen. MathML-muuntajia on kumpaankin suuntaan. TeXmacsia voidaan käyttää kirjoittamaan matemaattisia XHTML-artikkeleita, jotka sisältävät MathML:ää.

Amaya, W3C:n selain-editori voidaan myös mainita wysiwyg-MathML-editorina.

Selaimet

Tammikuusta 2023 lähtien yleisimmät selaimet, kuten Mozilla Firefox, Google Chrome ja Microsoft Edge tukevat MathML-koodin esittämistä.[5] Visuaalinen esitys kuitenkin vaihtelee näiden selainten välillä.

Muita standardeja

OpenMath on standardi, joka on pikemminkin suunniteltu sisältämään kaavan tarkoituksen, mutta sitä voidaan käyttää myös MathML:n lisänä. OpenMathin suunnittelijat ovat suurimmaksi osaksi osallistuneet MathML-Contentin suunnitteluun.

Lähteet

  1. Mathematical Markup Language w3.org. Viitattu 28.2.2020. (englanniksi)
  2. Mathematical Markup Language (MathML) Version 3.0 2nd Edition W3C Recommendation. 10.4.2014. W3C. Viitattu 11.6.2024.
  3. MathML Core W3C Working Draft. 27.11.2023. W3C. Viitattu 11.6.2024.
  4. Mathematical Markup Language (MathML) Version 4.0 W3C Working Draft. 8.9.2022. W3C. Viitattu 11.6.2024.
  5. "mathml" | Can I use... Support tables for HTML5, CSS3, etc caniuse.com. Viitattu 11.6.2024.

Aiheesta muualla

Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta MathML.
  • W3C Math Home -sisältää määrittelyn ja listan MathML:ää tukevista ohjelmista (englanniksi)
  • Viimeisimmät MathML suositukset (englanniksi)
  • Zvon MathML Reference (englanniksi)
  • GNU TeXmacs -ilmainen wysiswyg editori (englanniksi)
  • MathType (englanniksi)
  • MathPlayer – Design Sciensen plugin, jolla Internet Explorer pystyy näyttämään MathML:llä muodostetun kaavan (englanniksi)
  • MathCAT-lisäosa NVDA-ruudunlukijalle, jolla voi kuunnella ja lukea MathML-koodilla muodostetun kaavan (englanniksi).
  • MathFlow XML workflow tools to interpret, create, edit, and export MathML. (englanniksi)
  • MathML Central (englanniksi)
  • Native MathML lisäosa Mozilla Firefox verkkoselaimeen. (englanniksi)
  • itexToMML (englanniksi)
  • ASCIIMath – JavaScript kirjasto wiki-tyypisen syntaksin muuntamiseksi MathML:ksi (englanniksi)
  • LaTeXMathML – JavaScript ohjelma, joka dynaamisesti muuttaa LaTeX matematiikka notaation MathML:ksi (englanniksi)