Yleiskatsaus MathML-standardiin

Teletekniikan laboratorio
S-38.128 Teletekniikan erikoistyö
Jyri Pötry, 41017T

1. Johdanto

2. MathML-standardin kuvaus

2.1 MathML:n elementit

2.2 Esityspuut ja merkkielementit

2.3 Sisällön ja ulkoasun yhdistäminen

2.4 Syntaksi ja kielioppi

3. MathML ja muut ohjelmistot, kielet ja järjestelmät

3.1 HTML

3.2 LaTex

3.3 Mathematica

3.4 Selaimet

4. Kritiikkiä

5. Yhteenveto

Lähdeluettelo

 

1. Johdanto

Tämän työn tarkoituksena on antaa yleiskuva MathML-standardista. Käsittelen lähinnä standardin sisältöä ja sen toimivuutta eri standardien ja välineiden kanssa. Tavoitteena on, että lukija tämän luettuaan tietää mikä MathML on ja miten se liittyy nykyisiin WWW- ym. sovelluksiin ja mitä vaikutuksia standardilla mahdollisesti tulee olemaan.

WWW Consortium (W3C) julkaisi MathML 1.0-version huhtikuussa 1998. MathML on W3C:n matematiikkaryhmän (perustettu 1997) ensimmäinen tuote, alemman tason kuvauskieli matemaattisille merkinnöille ja sisällöille. Se on suunniteltu matemaattisten esitysten toteuttamiseksi WWW:ssä.

MathML-tiedostoformaatti mahdollistaa matemaattisten dokumenttien esittämisen Webissä nykyistä HTML:ää paremmin. HTML:ssähän joudutaan vähänkin monimutkaisemmat kaavat esittämään bittikarttoina, jotka näyttävät usein epäselviltä ja joiden luominen ja muokkaaminen on hankalaa. HTML-bittikarttojen matemaattista tietoa ei luonnollisesti voi juurikaan käyttää hyväksi muissa sovelluksissa. Tietoa ei voi hakea, indeksoida tai käyttää uudelleen. MathML on lyhenne sanoista Mathematics Markup Language.

MathML-standardilla pyritään siihen, että matemaattisia esityksiä voitaisi julkaista, katsella ja käsitellä WWW:ssä samaan tapaan kuin tekstille voidaan tehdä HTML-kielellä. MathML on tarkoitettu enemmän tietokoneiden väliseen kommunikointiin, kuin "kaiken kansan" työkaluksi. MathML voi kuvata myös matemaattisen lausekkeen semantiikkaa, ei pelkkää ulkoasua.

WWW Consortiumin määrittelemät tavoitteet MathML-standardille (http://indy.cs.concordia.ca/mathml/history/index.html):

2. MathML-standardin kuvaus

MathML perustuu XML-kuvauskieleen (Extensible Markup Language). XML puolestaan perustuu laajaan SGML-kuvauskieleen (kuten HTML:kin). XML:stä on kuitenkin riisuttu joitakin vaikeita tai harvoinkäytettyjä SGML-ominaisuuksia. (Keurulainen, http://www.comlab.hut.fi/users/ake/html4.htm) SGML on metakieli, jolla kuvataan dokumenttityyppejä vastaavia kieliä (HTML, MathML). SGML:n peruskäsitteitä ovat dokumenttityypin määrittely (DTD), joka kuvaa dokumentin muodollisen syntaksin. (Korpela, http://www.hut.fi/home/jkorpela/sgml.html) Dokumentin sisältämiä rakenteita kutsutaan elementeiksi tai alkioiksi. Tässä työssä käytetään nimitystä elementti.

Elementtien yleinen rakenne on seuraava:

Koodaus SGML- (tai XML-) pohjaisissa kielissä tapahtuu siis ns. tageja käyttäen. Tageilla määritellään halutunlainen elementti. Edellä kerrottu pätee myös MathML-kieleen. Suoranaisesti MathML pohjautuu siis, kuten sanottu, XML:ään; monimutkaisimmat SGML-ominaisuudet puuttuvat. XML-perusteisuuden ansioista MathML ei vaadi erityisiä uusia ominaisuuksia selaimilta, ainoastaan keveitä laajennuksia. (WWW Consortiums Math Home Page, http://www.w3.org/Math/)

MathML sisältää mahdollisuuden sekä visuaaliseen että semanttiseen kuvaukseen. Tällöin lausekkeessa voidaan kertoa LaTeX-tyyliin sen taittoasu, mutta samalla voidaan lisätä tietoa lausekkeen merkityksestä. Tiedostomuunnokset esimerkiksi LaTeXiin (ja LaTeXista) ovat suoraviivaisia. Muunnostyökaluja on jo olemassa ja niitä kehitetään parhaillaan. Myös matemaattisten lausekkeiden siirto symbolinkäsittelyjärjestelmiin (Mathematica tms.) on mahdollista. (Haataja, http://www.csc.fi/math_topics/Publ/matstand.html)

MathML tarkoittaakin oikeastaan kahta eri kieltä. Ensimmäinen, ns. Presentation Markup Language pyrkii välittämään matemaattisten struktuurien visuaalisen muodon, sen miten ne kirjoitetaan tai esitetään. Toinen, Content Markup Language pyrkii esittämään matemaattisten struktuurien sisällön. Content Markup-kieltä käytettäessä jokin toinenkin matemaattinen sovellus (esim. Maple, Mathematica) voi ymmärtää, mistä on kysymys matemaattisessa mielessä. (Malvela, http://www.joensuu.fi/sciences/mathematics/ExplInfTech/Keinoja.htm)

Sekä matemaattisten merkkien että sisällön esittäminen samalla standardilla on pulmallista. Tosin matematiikassa merkit ja merkitykset ovat usein sidottuja toisiinsa. Kuitenkin vain osa merkeistä on yksiselitteisiä. Siksi MathML-kieli on jaettu visuaaliseen ja semanttiseen osaan.

2.1 MathML:n elementit

MathML voidaan jakaa ulkoasu- (esitys-, visuaalinen-), sisältö- ja rajapintaelementteihin (presentation, content & interface elements). Esityselementeillä määrätään, miltä matemaattiset merkinnät ja perussymbolit sekä niiden rakenne näyttävät. Jokainen esityselementti viittaa johonkin merkin ominaisuuteen (ylä- tai alaindeksi, rivi jne.) Esityselementtejä tarkennetaan erilaisin attribuutein. Ne on suunniteltu riippumattomaksi mediasta, jolloin niitä voidaan käyttää paitsi visuaalisissa esityksissä myös audiosovelluksissa. (MathML 1.0 Specification http://www.w3.org/TR/REC-MathML/chap3_1.html#sec3.1) Osa esityselementtien attribuuteista määrittää vain visuaalisia ominaisuuksia, mutta valtaosaa voidaan käyttää myös analogisesti audiosovelluksissa. MathML-esityselementit sopivat hyvin yhteen HTML:n kanssa. HTML kuvaa loogisia rakenteita kuten otsikoita tai riviasetuksia, mutta ei vaadi mitään erityisiä tapoja käyttää dokumenttien loogisia osia.

Esitystapaelementit ilmaisevat matemaattisten merkintöjen rakenteen samaan tapaan kuin otsikot, kappaleet ja niin edelleen ilmaistaan tekstidokumenteissa. Esimerkiksi yksittäinen rivi muuttujia ja operaattoreita kuten "x + a/b" määritellään useammalla sisäkkäisellä <mrow>-elementillä:

<mrow>

<mi> x </mi>

<mo> + </mo>

<mrow>

<mi> a </mi>

<mo> / </mo>

<mi> b </mi>

</mrow>

</mrow>

Esityselementit on jaettu kahteen luokkaan: Merkkielementteihin (Token Elements) ja Layout-elementteihin (Layout schemata). Merkkielementit esittävät yksittäisiä symboleja, nimiä, numeroita, otsikoita ja niin edelleen ja voivat sisältää vain kirjaimia ja olioviittauksia. Layout-elementit kokoavat esityksen pienemmistä osista ja ne sisältävät vain elementtejä. Joitakin tyhjiä elementtejä voidaan käyttää layout-määritteiden yhdistämiseen. Käytössä on myös useita operaattoreita kuvaavia entiteettejä, jotka tulostuvat symboleina, esimerkiksi "&ExponentialE;", "&ImaginaryI;" tai entiteettejä, jotka usein ovat tulostuksessa näkymättömiä, kuten "&InvisibleTimes;" ja "&ApplyFunction;". (Halonen, http://www.cs.uku.fi/~mrhalone/mathml).

Merkkielementit (Token elements):

<mi>

tunniste (identifier)

<mn>

numero

<mo>

operaattori, erotin, sulut

<mtext>

teksti

<mspace/>

välilyönti

<ms>

"string literal"

Taulukko 1. MathML-merkkielementit

Yleiset layout-elementit (general layout schemata):

<mrow>

ryhmittelee aliesitykset horisontaalisesti

<mfrac>

muodostaa murtoluvun kahdesta aliesityksestä

<msqrt>

neliöjuurimerkki

<mroot>

määritetty juuri

<mstyle>

tyylin muutos

Taulukko 2. Layout-elementit

Teksti- ja rajaelementit (Scripts and Limits Schemata):

<msub>

liittää alaindeksin (attach a subscript to a base)

<msup>

liittää yläindeksin (attach a superscript to a base)

Taulukko 3. Teksti- ja rajaelementit

Taulukot ja matriisit:

<mtable>

taulukko tai matriisi

<mtr>

rivi taulukossa tai matriisissa

Taulukko 4. Taulukot ja matriisit

Sisältöelementit kuvaavat matemaattisia objekteja. Esimerkeiksi käyvät esimerkiksi plus-elementti, joka tarkoittaa reaalilukujen yhteenlaskuoperaattoria ja vektorielementti, joka kuvaa vektorin. Jokainen sisältöelementti vastaa tarkoin määriteltyä matemaattista sisältöä. Jotkut elementeistä kuvaavat objekteja, toiset operaattoreita tai funktioita.

Sisältöelementtien käyttöön päädyttiin, koska täydellisen tarkallakaan esityselementtien käytöllä ei voida ilmaista kaikkea semanttista informaatiota. (MathML 1.0 Specification, http://www.w3.org/TR/REC-MathML/chap4_1.html)

Sisältöelementteihin kuuluu kaksi merkkielementtiä (<cn> ja <ci>), yksitoista perussisältöelementtiä kuten <inverse> tai <lambda> ja pitkä liuta erikoiselementtejä, jotka voidaan jakaa seuraaviin ryhmiin:

Yhtä lukuunottamatta kaikki MathML-elementit ovat joko esitys- tai sisältöelementtejä. "Matematiikkaelementti" (Math element) <math> toimii ylätason rajapintana. Se ohjaa parametreja MathML-prosessorille ja ilmoittaa parametrien avulla web-selaimelle, mikä ohjelmisto MathML-esitystä käyttää ja kuinka MathML-esitys integroidaan HTML-dokumenttiin. Myöhemmin, kun selaimet tukevat XML:ää, tarvitaan yksi tai kaksi rajapintaa lisää.

Esimerkki visuaalisten ja sisältöelementtien käytöstä, kaavan (a+b)2 esitys- ja sisältökoodit:

Visuaalinen:

<msup>

<mfenced>

<mi>a</mi>

<mo>+</mo>

<mi>b</mi>

</mfenced>

<mn>2</mn>

</msup>

 

Sisältö:

<apply>

<power/>

<apply>

<plus/>

<ci>a</ci>

<ci>b</ci>

</apply>

<cn>2</cn>

</apply>

2.2 Esityspuut ja merkkielementit

Sisältö- ja visuaalisissa esityksissä on tietyt sääntönsä ja ominaisuutensa. Molemmissa suurin osa esityksistä on jaettu paloihin tai aliosiin. Esimerkiksi esitys (a+b)2 jakaantuu "kantaan" (a+b) ja kaavaan, joka tässä tapauksessa on eksponentti 2. Luonnollisesti nämä aliosat voivat jakautua edelleen pienempiin osiin, kunnes päästään "pohjaan".

Edellinen esimerkki pätee myös abstrakteihin matemaattisiin objekteihin ja siten myös sisällön ilmaisemiseen. Edellinen esimerkki koostuu kahdesta operandista: kannasta (base) ja eksponentista. Matemaattinen merkintäkielihän vastaa pitkälti matemaattisten objektien loogista rakennetta. (MathML 1.0 Specification, http://www.w3.org/TR/REC-MathML/chapter2.html#sec2.1.2)

Matemaattisten merkintöjen ja objektien rekursiivinen luonne näkyy myös MathML-standardissa. Useimmat elementit sisältävät muita MathML-elementtejä, jotka liittyvät kokonaisen esityksen eri osiin (vrt. (a+b)2). Kokonaisesitystä kutsutaan isäksi (parent schema) ja osia lapsiksi (child schema). Yleisesti MathML-esityksiä voidaan pitää puina, joissa jokainen haarautumiskohta on MathML-elementti, oksat isähaaran alla ovat lapsia ja lehdet ovat merkki- tai sisältöyksiköitä, kuten numeroita tai kirjaimia.

Useimmat lehdet ovat joko kanoonisesti tyhjiä tai merkkielementtejä. Kanoonisesti tyhjät elementit ovat symboleja, kuten plus-sisältöelementti. Merkkielementit ovat ainoita MathML:n elementtejä, jotka saavat itsessään sisältää merkkitietoa. Merkkitieto voi koostua joko ASCII-merkeistä tai MathML-olioista, jotka tavallisesti ASCII:sta puuttuvia, tärkeitä merkkejä kuten "alfa". Kommentit ovat kolmas "lehtityyppi".

2.3 Sisällön ja ulkoasun yhdistäminen

MathML:ssä käytetään yleensä erilaisia merkkejä (tag) erilaisiin sisältö- tai ulkoasukuvauksiin. Usein tarvitaan vain ulkoasun kuvausta, mutta esimerkiksi monet matemaattiset sovellusohjelmat tarvitsevat ainoastaan sisältötietoa. Useimmissa tapauksissa liikutaan kuitenkin välimaastossa, jolloin tarvitaan kuvaus- ja sisältömerkintöjen yhdistämistä. (W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter2.html)

Sisältömerkintöjen upottaminen kuvaukseen onnistuu, mikäli sisältöosuus on semanttisesti oikea ja täydellinen eli ei vaadi lisäparametreja. Sisältömerkinnät voidaan liittää ulkoasukuvaukseen myös eräänlaisena semanttisena huomautuksena (semantics-elementti). Ulkoasumerkintöjen upottaminen sisältökoodiin onnistuu, jos ulkoasumerkinnät on koodattu yhdeksi jakamattomaksi merkkiyksiköksi (vastaavasti kuten muuttujan tai funktion nimi).

Esitysmuotomerkkaus voi esiintyä sisältömerkkauksessa kolmella tavalla:

Muualla esiintyminen käsitellään virheenä. (Halonen, http://www.cs.uku.fi/~mrhalone/mathml)

Sisältömerkkaus puolestaan voi esiintyä esitysmuotomerkkauksessa paikassa, jossa minkä tahansa MathML-merkkauksen on sallittua esiintyä. Sisältömerkkaus ei voi esiintyä esitysmuotoelementtien välissä. Sisältömerkkauksessa on kuitenkin vain 13 elementtiä, jotka voidaan sisällyttää esitysmuotomerkkaukseen. Näitä ovat esim. <ci>, <cn>, <apply>, <reln>, <list>, <matrix> ja <vector>. Esimerkiksi operaattorit eivät ole sallittuja. Tämä sen takia, että yhdistetyllä merkkauksella olisi yksiselitteinen esitystapa. (Halonen, http://www.cs.uku.fi/~mrhalone/mathml)

2.4 Syntaksi ja kielioppi

Koska MathML on XML-sovellus, sen syntaksi noudattaa XML-syntaksin sääntöjä ja sen kielioppi on määritetty DTD-määrittelyssä (Document Type Definition, XML-määritelmä). Tagien, attribuuttien, olioviittausten jne. käytön yksityiskohdat on määritelty XML language specification-dokumentissa .(W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter2.html) MathML-osien ja attribuuttien nimien käytön yksityiskohdat on määritelty MathML DTD-dokumentissa .

Lisäksi MathML-standardi määrittelee uusia syntaksi- ja kielioppisääntöjä, joita ei ole XML:ssä. Näiden sääntöjen avulla voidaan koodata se informaatio, jota ei voitu esittää XML:n avulla. (W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter2.html) Haittana tietysti on se, että XML-selaimet jne. eivät tunne kyseisiä sääntöjä (vielä).

Lisäsäännöt koskettavat joko attribuuttimäärittelyjä tai aliosien (children elements) kutsumista. Esimerkiksi XML:ssä ei voi vaatia, että attribuutti on positiivinen kokonaisluku tai että ensimmäinen aliosa käännetään eri tavalla kuin toinen. (W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter2.html)

3. MathML ja muut ohjelmistot, kielet ja järjestelmät

Tässä luvussa kerrotaan, miten MathML-suhtautuu muihin WWW- ja matematiikkastandardeihin, sovelluksiin ja työkaluihin

3.1 HTML

HTML ja MathML perustuvat molemmat XML-kuvauskieleen. Niiden perusfilosofia on samanlainen. Suurin kysymys tällä hetkellä on, miten MathML-esitys voidaan upottaa HTML-dokumenttiin.

MathML:n upottaminen HTML:ään on mahdollista, mutta kaikkia ongelmia ei ole vielä ratkaistu. MathML määrittelee yhden ylätason elementin <math>, joka upottaa kaiken muun MathML-koodin. Tämä rajapintaosa on liittymäpiste koko MathML-esitykselle. (W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter7.html) Rajapintaosan tulisi siis olla rajapinta esimerkiksi HTML:ään. Ideaalisesti itse matemaattisten elementtien tulisi olla kyseisiä upotusrajapintoja. Käytännössä tämä olisi liian monimutkaista. MathML:n upottaminen HTML:ään on vastaavalla tavalla ongelmallista kuin XML:n upottaminen HTML:ään. Näitä ongelmia ratkotaan useissa W3C:n työryhmissä (XML, HML, CSS, DOM). Nimenomaan semanttinen integrointi HTML:ään on vielä kesken.

Suunniteilla on erilaisia työkaluja, joilla voidaan rakentaa ja lisätä MathML-esityksiä HTML-dokumentin sisään.

3.2 LaTex

Koska MathML pohjautuu XML-standardiin, ovat TeX- ja LaTex-muunnokset melko yksinkertaisia. TeX4ht-työkalulla voidaan tehdä XML- ja MathML-dokumenttejä LateXista. MathML-koodia voidaan tehdä esimerkiksi LATEX2HTML-, WebEQ- ja WebTEX-työkaluilla. (http://indy.cs.concordia.ca/mathml/translators/index.html)

3.3 Mathematica

Mathematica voi käyttää hyväkseen MathML:n semanttista tietoa. Tiedon siirto verkosta Mathematicaan on suoraviivaista ja aiempaa tehokkaampaa. Siirto on yksinkertaista, koska Mathematica-formaatti on lähellä XML-standardia. Mathematica 3-versioon tulee laajennus, jolla voidaan tehdä MathML-dokumentteja. Mathematica-ohjelmiston kehittäjiä on mukana MathML-standardoinnissa. Eräs heistä, Neil Soiffer, ennustaa, että MathML tulee olemaan keskeinen standardi teknisessä kommunikoinnissa (Wolfram Research, http://www.wolfram.com/news/mathml/).

Myös OpenMath-ohjelmistoon on tehty laajennus, jonka avulla MathML-esityksiä voidaan kääntää OpenMath-muotoon.( OpenMath Home Page, http://www.openmath.org/)

3.4 Selaimet

Koska MathML perustuu XML-standardiin, se ei vaadi selaimilta kovin paljon. Lisäohjelmia (Plug-in) tullaan julkaisemaan kaikkiin tavallisimpiin selaimiin. WWW Consortium on rakentanut oman testiselaimensa nimenomaan MathML:ää ajatellen. Selain on nimeltään Amaya ja sitä voi käyttää myös editorina. Tällä hetkellä Amayalla voidaan määritellä tekstin ulkoasu, ei semantiikkaa. Amaya toimii useissa eri käyttöjärjestelmissä. Kuvassa 1. näkyy, miltä MathML-esitys Amayan kautta näyttää ja miten sitä muokataan. (http://www.w3.org/Amaya/)

Kuva 1. Amaya-selain ja -editori

IBM:n techexplorer-lisäohjelma (plug-in) Netscape Navigator- ja Microsoft Internet Explorer-selaimiin tukee MathML:ää. Tänä vuonna valmistuneva versio tukee myös LaTex-MathML-muunnoksia. Plug-in on tällä hetkellä saatavissa Windows 95/NT-, AIX-, Solaris- ja Irix-käyttöjärjestelmiin. (http://indy.cs.concordia.ca/mathml/browsers/index.html)

Jotta MathML-sisältöisiä dokumentteja voitaisi kunnolla käyttää selainten avulla, tarvitaan seuraavia parannuksia:

4. Kritiikkiä

T.V. Raman, joka on osallistunut MathML-työryhmään, on julkaissut lyhyen MathML-kritiikin (A Critique of MathML, http://www.ora.com/people/staff/crism/math/mathml.html). Lyhyesti sanottuna hänen mielestään päätyminen staattiseen matematiikkadokumenttityyppiin on virhe. Ramanin mukaan MathML on skitsofreeninen semanttisuuden ja ulkoasun kuvauksen suhteen.

Esimerkiksi Raman antaa MathML-kielellä koodattujen Maxwellin yhtälöiden semanttisen ja ulkoasukuvauksen, joita hän vertaa omaan ehdotukseensa .

Lisäksi MathML-standardi on vielä keskeneräinen, mutta tämä epäkohta on korjaantumassa.

5. Yhteenveto

MathML on WWW Consortiumin (W3C) matematiikkaryhmän ensimmäinen tuote, alemman tason kuvauskieli matemaattisille merkinnöille ja sisällöille. Se on suunniteltu matemaattisten esitysten toteuttamiseksi WWW:ssä. MathML on lyhenne sanoista Mathematics Markup Language.

MathML-standardilla pyritään siihen, että matemaattisia esityksiä voitaisi julkaista, katsella ja käsitellä WWW:ssä samaan tapaan kuin tekstille voidaan tehdä HTML-kielellä.

WWW Consortiumin määrittelemät tavoitteet MathML-standardille ovat: (http://indy.cs.concordia.ca/mathml/history/index.html)

MathML pohjautuu XML-kuvauskieleen. Standardi on jaettu ulkoasu- ja sisältökuvauskieliin. MathML:n elementit ovat siten joko ulkoasu- tai sisältöelementtejä. Lisäksi on määritelty yksi rajapintaelementti, joka merkitään <math>-tagilla ja jonka avulla MathML-esitys voidaan esimerkiksi upottaa HTML-dokumenttiin. MathML:llä voidaan siis kuvata matemaattisen esityksen ulkonäkö ja semantiikka. MathML-dokumenttien rakenne on puumainen, se koostuu sisäkkäisistä elementeistä, joista jokainen on puun haarakohta.

Koska MathML pohjautuu XML-kuvauskieleen, on muunnosten teko eri XML- (tai SGML-) pohjaisten kuvauskielien ja MathML:n välillä yksinkertaista. Työkaluja tähän on jo olemassa. Samaten selaimille riittää kevyt (plug-in) päivitys MathML:ää varten. MathML:n semanttista tietoa voidaan käyttää suoraviivaisesti matemaattisissa ohjelmistoissa kuten Mathematica. Jako semanttiseen ja visuaaliseen kuvaukseen on paitsi MathML:n etu myös ongelma. Toinen ongelma on uusien rajapintaelementtien määrittely.

MathML on tarkoitettu lähinnä tietokoneiden väliseen kommunikointiin. Siitä ennustetaan keskeistä standardia tekniseen kommunikointiin.

 

Lähdeluettelo

WWW Consortiums Math Home Page, http://www.w3.org/Math/

Mathematical Markup Language (MathML)1.0 Specification, http://www.w3.org/TR/REC-MathML/

W3C MathML Working Draft, http://www.w3.org/TR/WD-math/chapter2.html

MathML Frequently Asked Questions, http://www.w3.org/Math/mathml-faq.html

Amaya Overview, http://www.w3.org/Amaya

Concordia University, Deparment of Computer Science, MathML, http://indy.cs.concordia.ca/mathml/

Wolfram Research, News and Events, http://www.wolfram.com/news/mathml/

OpenMath Home Page, http://www.openmath.org/

T.V. Raman, A Critique of MathML, http://www.ora.com/people/staff/crism/math/mathml.html

Antti Keurulainen, HTML-XML-VRML, http://www.comlab.hut.fi/users/ake/html4.htm

Jukka Korpela, Hyvin lyhyt johdatus SGML:ään, http://www.hut.fi/home/jkorpela/sgml.html

Taina Malvela, Keinoja matemaattisen tekstin esittämiseen webissä, http://www.joensuu.fi/sciences/mathematics/ExplInfTech/Keinoja.htm

Juha Haataja, Matematiikan tiedostostandardia etsimässä, http://www.csc.fi/math_topics/Publ/matstand.html

Jörgen M Westerling, XML: Framtiden för World Wide Web, http://www.tcm.hut.fi/Opinnot/Tik-110.350/Tehtavat/essays/xml.html

Marjo Halonen, MathML, http://www.cs.uku.fi/~mrhalone/mathml


Jyri Pötry