MathML

Izvor: Wikipedija

MathML je jezik baziran na XMLu namijenjen kodiranju matematičkih izraza s ciljem jednostavnijeg prikazivanja i razmjene na webu. Ideja jezika je da se isti kodirani izraz može prikazati i na ekranu web preglednika, i tekstualnog procesora, kao i isprintati na printeru bez ikakvih izmjena u izrazu. Odgovarajući računalni program trebao bi znati prepoznati i na ispravan način prikazati MathML kodirani izraz.
MathML specifikacija izdana je kao preporuka matematičke radne grupe World Wide Web Consortiuma.


Povijest[uredi | uredi kôd]

HTML je na svojim počecima uglavnom korišten za objavljivanje znanstvenih informacija i komunikaciju među znanstvenicima. Zbog toga su od samog početka razvoja HTMLa autori su shvaćali ozbiljno nedostatak podrške matematičkim izrazima unutar HTMLa. Kako bi prikazali matematički izraz na HTML stranici korisnici su se dovijali raznim trikovima i najčešće su prikazivali matematičke izraze kao slike umetnute u HTML stranicu. Takav način razmjene informacija nije odgovarajući zbog loše kvalitete prikaza informacija, nemogućnosti jednostavnog uređivanja izraza, nemogućnosti pretraživanja izraza, a i prijenos slika preko mreže zahtjeva više mrežnih resursa od prijenosa teksta, što je u to vrijeme bio problem.

W3Cu su upućeni razni prijedlozi za proširenje HTMLa kako bi se na webu mogli prikazivati matematički izrazi, i 1997. je W3C osnovao prvu matematičku radnu grupu koja je trebala riješiti taj problem. Radna grupa je ubrzo došla do zaključka da proširenje HTMLa nije rješenje zbog ograničenja samog jezika u smislu prikazivanja tekstualnih informacija i kodiranja odgovarajućih posebnih znakova koji se koriste u matematičkim izrazima (npr. grčkih slova) te da je potrebno stvoriti poseban jezik namijenjen upravo radu s matematičkim izrazima.

Zadali su niz ciljeva kojih su se u razvoju jezika pridržavali. Velik naglasak je stavljen na mogućnosti korištenja jezika od strane slijepih i slabovidnih (veza sa sintetizatorima govora, ispis na pisačima za Brailleovo pismo) kao i vezu s različitim skupom uređaja (prikaz na ekranu, prikaz na tekstualnim terminalima, ispis na printerima, veza s drugim matematičkim jezicima (npr. TEX ). Shvatili su također da čak i ako naprave savršen jezik, n neće postati prihvaćen ako infrastruktura najpopularnijih Internet preglednika ne bude omogućavala korisnicima rad s tim jezikom. U to vrijeme druga radna grupa W3Ca radila je na razvoju XMLa i on je zbog svojih dobrih osobina izabran za osnovu iz koje je kreiran MathML jezika. Kako jezik postaje sve popularniji i proizvođači internet preglednika kao i specijaliziranih matematičkih programa u svoje proizvode sve više uključuju podršku za MathML.


MathML jezik[uredi | uredi kôd]

MathML jezik služi za opisivanje prikaza i sadržaja matematičkih izraza. Sam jezik baziran je na XMLu i sintaksna pravila su identična sintaksnim pravilima u XMLu. Svaki element ima početnu i završnu oznaku koja omeđuje određeni sadržaj ili druge elemente ugnježđene unutar njega.

Korijenski element MathMLa je <math> koji uokviruje sve ostale elemente dokumenta. Sve što se nalazi unutar tog elementa odnosi se na jedan MathML dokument.


Elementi MathMLa[uredi | uredi kôd]

Elementi MathMLa dijele se u 3 grupe:

  • prezentacijski elementi zaduženi za prikaz matematičkog sadržaja. Tipičan prezentacijski element je <mrow> koji označava jedan red u izrazu.
    • korištenjem prezentacijskog elementa značenje zbroja 2 broja bi izgledalo kao a + b
<mrow>
	<mi> a </mi>
	<mo> + </mo>
	<mi> b </mi>
</mrow>
 
  • sadržajni elementi zaduženi za opisivanje matematičkog sadržaja.
    • korištenjem sadržajnog elementa značenje izraza za zbrajanje 2 broja izgledalo bi otprilike zbroji a i b
<apply>
	<plus/>
	<ci> a </ci>
	<ci> b </ci>
</apply>
 
  • elementi MathML sučelja koji omogućuju da se MathML izrazi na ispravan način prikazuju u određenom okruženju. MathML rađen je na osnovu XMLa, kao i XHTML. Zbog toga oba dijele isto XML imeničko područje (namespace). Imeničko područje za MathML je
http://www.w3.org/1998/Math/MathML

Ono se obično navodi kao xmlns atribut <math> elementa.

<m:math xmlns:m="http://www.w3.org/1998/Math/MathML">
 	<m:mrow>
 		<mi> a </mi>
 		<mo> + </mo>
 		<mi> b </mi>
 	<m:mrow>
</m:math>


Primjer MathML dokumenta[uredi | uredi kôd]

Primjer kvadratne formule

U TEXu izraz izgleda ovako:

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

U MathMLu isti izraz izgleda ovako

<math>
 <mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>±</mo>
      <msqrt>
        <mrow>
          <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>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>⁢</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
 </mrow>
</math>

Prikazivanje MathML sadržaja unutar HTMLa[uredi | uredi kôd]

Kako popularnost MathMLa raste proizvođači internet preglednika u svoje programe pomalo, na različite načine uključuju podršku za prikazivanje MathML sadržaja. Osnova prikazivanja MathML sadržaja u HTML dokumentu je da se odgovarajućim XSLT transformacijama MathML sadržaj pretvori u odgovarajući formatirani XHTML sadržaj koji se prikazuje u web pregledniku.

U okviru Mozilla projekta postoji podprojekt MathML in Mozilla koji ima za cilj napraviti brz i kvalitetan programski proizvod koji bi omogućavao prikazivanje MathML izraza u Internet preglednicima baziranima na Gecko platformi (Netscape navigator, Mozilla Firefox). Preglednici na toj bazi imaju dosta dobru ugrađenu podršku za prikaz MathML sadržaja. Osim njih W3Cov web preglednik Amaya ima ugrađenu podršku za prikazivanje MathMLsadržaja.

Za Internet Explorer i druge preglednike postoje posebni programski dodaci drugih proizvođača koji omogućuju prikaz MathML sadržaja u tim preglednicima.

Verzije MathMLa[uredi | uredi kôd]

Prva verzija preporuke MathML 1.0 objavljena je 1999. U vrijeme nastanka prve verzije MathML preporuke nije u potpunosti bio specificiran način na koji se XML sadržaji prikazuju unutar HTML dokumenta. Zbog toga se prva verzija MathMLa u internet preglednicima prikazivala uglavnom pomoću dodatnih programa.

Prva verzija preporuke 2.0 obavljena je 2001., a druga koja se smatra završnom 2003. U vrijeme razvoja ove verzije preporuke već je dobro definiran način na koji se XML sadržaji prikazuju unutar HTML dokumenta.

2006. Matematička grupa W3Ca započinje rad na razvoju verzije 3.0 MathML preporuke. Ova verzija trebala bi poboljšati postojeću specifikaciju u području internacionalizacije i proširiti ju s novim matematičkim izrazima.


Vanjske poveznice[uredi | uredi kôd]

W3C stranica matematičke radne grupe
W3C MathML 1 preporuka
W3C MathML 2 preporuka

Vodič kroz MathML
MathML reference i primjeri