Matematikai meta-nyelv MathML 2.0-s verzió MathML - A Matematikai Nyelv egy XML alkalmazás a matematikai jelölésrendszer leírására, a tartalom és a szerkezet megtartására. A MathML célja, hogy a matematika elfogadott legyen és a World Wide Web számára feldolgozható. A szöveg megjelenítésére létrehozták a HTML-t. A MathML jelölőnyelvnek ez a részletes leírása elsősorban azok számára készült, akik fejlődni akarnak vagy előadást valósítanak meg, avagy szerkesztőként használják ezt. Esetleg olyan szoftvert használ, ami úgy tud kommunikálni a MathML-el, mint egy protokollal, így be- vagy kimenetként használva ezt. Amíg a MathML az emberek számára olvasható, addig arra számítunk, hogy a legegyszerűbb ügyeken kívül a felhasználók használnak majd egyenlet szerkesztőket vagy konverziós programokat és specializált programokat, amik tudnak MathMl-t generálni. Az ilyen MathML szerkesztő eszközöknek több verziója létezik már, néhány szabadon elérhető, vannak kereskedelmi termékek is és jópár még fejlesztés alatt áll. A legtöbb komputeralgebrai rendszer a MathML import és export fájljaira támaszkodik és a W3C Math Working Group résztvevőit is bátorítom, hogy használják ezt a részletes leírást és kommentálják is. A World Wide Web eredetileg egy rosszul kitervelt módszer volt az egymástól távol élő személyek közötti információ megosztására, de a felhasználó sok problémával találkozott, mert a kommunikáció túlságosan strukturált volt. Bár a World Wide Web-et kezdetben tudósok fejlesztették, tudósok használatára és a matematikai kifejezések használata korlátos volt. Jelenleg a legtöbb matematikai kifejezés a Web-en tartalmaz szöveget, tudományos képekkel (GIF vagy JPEG formátumban), ami nehezen olvasható a szerkesztő számára vagy PDF formátumban van. Az igény, az elektronikus tudományos kommunikáció hatásos eszközei
iránt magas marad. Azok a kép-alapú módszerek, amik most túlsúlyban vannak a weben, használhatatlanok. A dokumentum minősége általában nagyon rossz, a szerkesztése nehéz és a képeken lévő matematikai információban nem lehetséges a keresés, indexelés vagy újrafelhasználása egy másik applikációban. A három legnyilvánvalóbb probléma a HTML, matematikai kommunikációra való használatáról: 1. A képközpontú egyenleteket általában nehézebb átlátni, olvasni és megérteni a körülvevő szöveget a böngészőablakban. Ezenfelül, ezek a problémák még rosszabbak, ha a dokumentum nyomtatva van. Az egyenletek felbontása képként 70 dpi körül lesz, amíg a környező szöveg 300, 600 vagy több dpi-s lesz. Ezek a minőségbeli egyenlőtlenségek a legtöbb ember számára elfogadhatatlanok. 2. Kódolási problémák - megpróbálni keresni egy dokumentumban, egy egyenlet részét, kivágni és beilleszteni egy egyenletet, egy másik applikációba vagy arra is lehet igény, hogy kilehessen vágni és belehessen illeszteni egy alkifejezést - ezeket kell teljesítenie. Egy egyenlet mindig kisebb és jobban összenyomható, mint egy egyenlet képe. 3. A weben lévő dokumentumok mérete és betöltési ideje - a képlet, ami leír egy egyenletet, a képénél jelentősen ksiebb és összenyomhatóbb és jelölésközpontú kódolást használ, így több feldolgozó folyamat mehet a kliens gépen. Annak érdekében, hogy eleget tegyünk a tudományos társadalom különböző elvárásainak, a MathML-t a következő alapvető elvárások tudatában készítették. MathML-nek tudnia kell: 1. Kódolnia kell a matematikai dolgokat, úgy, hogy a tanítás, és a tudományos kommunikáció minden szintjén megfelelőek legyenek.
2. Kódolnia kell a matematikai jelölés rendszert és jelentést. 3. Elő kell segítenie az átváltást az egyik és a másik matematikai forma között. Mind jelentéstanilag mind pedig az előadás módjában. A kimenti formáknak tartalmazniuk kell: grafikus megjelenítést, beszéd szintetizálókat, bevitelt számítógépes algebrai rendszerek számára, más betűszedő nyelveket, úgy mint TEX, sima szöveges megjelenítések, nyomtatott közeg, pl.: vakírás. A MathML, mint jelölőnyelv megvalósíthatja a céljait és ez csak hasznos lesz, ha jól implementálódik. Ezért a W3C Math Working Group összefoglalta a további implementációs céloknak egy szűkebb körét. Ezek a célok megkísérlik leírni tömören a MathML minimális funkcióit és, hogy a szoftvernek miről kell megpróbálnia gondoskodni. 1. A MathML kifejezéseket amik HTML oldalakban találhatóak (és XHTML-ben) helyesen kellene megjeleníteni az elterjedt web böngészőkben. Az olvasóval és a szerzővel összhangban, akik elsőbbséget élveznek és a platform lehetőségeire nézve a legjobb minőségben. 2. Azokat a HTML (és XHTML) dokumentumokat, amik tartalmaznak MathML kifejezéseket, megfelelően kéne nyomtatni és magas minőségű nyomtató felbontáson. 3. A MathML kifejezéseknek olyanoknak kéne lenniük, hogy megfeleljenek az egyéni felhasználói elvárásoknak. És, hogy tudják vezérelni a kommunikációt más alkalmazásokkal, a bömgészőn keresztül. 4. Matematikai kifejezések szerkesztésére és konvertálására használható szerkesztőket kellen feleszteni, hogy könnyítsék az yolan weboldalak létrehozását, amelyek MathML kifejezéseket tartalmaznak.
Ezek a célok elkezdték olyanná tenni a MathML-t, mint a Java appletek és az ActiveX-es beépülő modulok. Mindazonáltal ahhoz, hogy ezek a célok teljesüljenek, a böngészők fejlesztőinek és egyéb szoftverek fejlesztőinek a beleegyezése is szükséges. A W3C Math Working Group folytatja a munkát, a munkacsoportokkal a Document Object Model (DOM) és az Extensible Style Language kifejlesztéséért, ami biztosítja, hogy a tudományos közösség szükségleteivel találkozzanak a jövőben. És, hogy még érezhetőbb legyen az, hogy a MathML 2.0 jelentős fejlődést mutatott ezen a területen a MathML 1.0 1998 áprilisában megjelent verziójához képest. A MathML-t matematikai információk kódolására fejlesztették ki és több központi rétege van, egy kétréteges architektúrában. Céljai közé tartozik a komplex jelölések és szemantikai struktúrák könnyű és átlátható kódolása és megjelenítése, keresés és más matematikai alkalmazásokkal való kommunikáció. A nyers MathML jelölést nem szánják a szerkestőknek direkt használatra. Helyette, remélhetőleg egyenlet szerkesztőket fognak használni a szerzők, továbbá konverziós programokat és más specializált szoftvereket, amik képesek MatML kódot generálni. Egyébiránt, néhány megjelenítő és rendszerek, amik támogatják a matematikai formákat, röptében átalakíthatják az inputjukat MathML kóddá, pl.: egy kivágás-beillesztés operáció által. Bizonyos szempontból a MathML hasonlít egy másik alacsony szintű, kommunikációs formához: az Adobe PostScript nyelvéhez. PostScript fájlokat több úton is tudsz készíteni, ez csak a szükségleteidtől függ; a szakértők kézzel módosíthatják és írhatják őket, a szerzők szövegszerkesztő programokkal szerkeszthetik, a grafikus felhasználók pedig illusztrációs programokat használhatnak erre a célra. Ha van egy PostScript fájlod, akkor megtudod osztani egy elég nagy közönséggel, amióta a perifériák megtudnak jeleníteni PostScript-et, mint például a nyomtatók és képernyő bemutatók, így ez széles körben elérhető.
A MathML tervézésének egy része az volt, hogy yolan jelölőnyelvet készítsenek, ami alacsonyszintű és a kommunikációs rétegek tudják ösztökélni a matematikai Web szoftverek fejlesztését, a többrétegűség felé. A MathML biztosít egy koordinált utat a moduláris szerkesztő alklamazások fejlődésének és megjelenítő szoftvereknek. Azáltal, hogy könnyebbé teszi a nagyobb rendszerek funkcionális darabjainak fejlesztését, a MathML tudja serkenteni a szoftverfejlesztés "kritikus tömegét", a matematika potenciális felhasználóinak részére. A MathML támogatja a kódolását, mindkét jelölésnek, amelyik reprezentálja a matematikai objectumokat és amelyik az objektumok matematikai struktúráját. ezenfelül, a szerkesztők összetudják keverni a kódolási parancsokat, hogy részletezni tudják a prezentációt és a matematikai ötlet tartalmát is. Minden MathML elem beletartozik a három közül egy kategóriába: prezentációs elem, tartalmi elem és interfész elem.
Prezentációleíró elemek A MathML prezentációs elemek csak javasolják a specifikus megjelenítés útját, azért, hogy elérhető legyen a közepesen alárendelt megjelenítés és a stílus egyéni tulajdonságai. Ez a specifikáció leírja a javasolt vizuális megjelenítési szabályokat néhány részletben, de egy különös MathML megjelenítésnek szabad, hogy használja a saját szabályait, amíg a megjelenítés olvashatatlan. A prezentációs elemektől azt várják el, hogy fejezzék ki a matematikai jelölés szintaktikai szerkezetét, hasonlóan, mint a címek, szekciók és a bekezdések, tehát egy szöveges dokumentum magas szintű szintaktikai struktúrái. Emiatt például az azonosítókat sora és az operátorokat, mint az "x + a/2", gyakran fogják nem épp egy mrow elemmel kifejezni (ami úgy jeleníti meg, mint egy argumentum vízszintes sorát), de a többszörösen egymásbaágyazott mrow elemekkel, ami hasonlít egy matematikai kifejezés egymásbaágyazott alkifejezéseire. <mrow>
<mi>x <mo>+ <mrow> <mi>a <mo>/ <mi>2 Hasonlóan, felsőindexeket csatolnak, de nem az előző karakterhez, de az egész kifejezés alkotja az alapjukat. Ez a struktúra engedi a matematikai kifejezések egy jobbminőségű megjelenítését, különösen a megjelenítési környezet részleteit figyelembe véve, mert a bemutató szélessége nem ismeretes a szerkesztő számára; ez szintén a matematikai struktúrák nagyon gyors értelmezését teszi lehetővé. Például az elfogadott jelölés kontextusában, a hatványozásopoeráció xn igényelne egy felsőindexet is, mert kétoperandusú, van "alap"-ja és "kitevő"-je. <msup> <mi>x <mi>n A prezentációs elemeket két csoportba osztják. •
A tag szimbólumok individuális szimbólumokat reprezentálnak, neveket, számokat, címkéket, stb. Általában a tagek nem csak karaktereket tudnak képviselni. Az egyetlen kivétel, a függőlegesen elhelyezkedő elemek, mint pl.: a rosszindulatú tagek, mglyph és lényeges referenciák.
•
Az alaprajz sémák részekből építenek kifejezéseket és csak az elemek tudnak tartalomból (kivétel a szóköz, amelyik ignorálja őket). Van néhány üres elem, amit csak bizonyos alaprajzsémákkal együtt lehet használni.
Minden individuális "szimbólum"-ot a matematikai kifejezésekben, kellene reprezentálni a MathML tag elemei által. Az elsődleges MathML tag elem típusok az azonosítók (pl.: változók vagy függvénynevek), számok és operátorok (zárójelek, elválasztók, mint pl. a vesszők). Vannak szintén tag elemek, szöveg reprezentálására vagy szóköz, aminek több az esztétikai jelentősége, mint a matematikai és a "sztring literálok" megjelenítése kompatibilis a komputeralgebrai rendszerekével. Jegyezd meg, hogy bár a tag elem egyetlen jelentőségteljes "szimbólumot" reprezentál (név, szám, címke, matematikai szimbólum, stb.), az ilyen szimbólumok több, mint egy karaktert felölelhetnek. Példálul az arccos és a 77, egy egyedülálló taggel vannak reprezentálva: <mi>arccosand <mn>77. A MathML 2.0 nem jobbról-balra címez, csak a balróljobbra címzés megengedett. A matematikai formulák jobbról-balra címzését is elérhetővé kéne tenni a MathML jövőbeni verzióiban.
Prezentációs elemek összefoglalása Tag elemek mi
azonosító
mn
szám
mo
operátor, zárójel vagy szeparátor
mtext
szöveg
mspace szóköz ms
sztring literál
mglyph
engedélyezi a glyph-eket a karaktereknek, a MathMLből
Központi alapsémák mrow
csoportosítja a vízszintes alkifejezések számát
mfrac
törtet készít két alkifejezésből
msqrt
négyzetgyök (sima gyök index nélkül)
mroot
n. gyök kiszámítása
mstyle
stílus váltás
merror
hibajelzés
mpadded helyet csinál a tartalom körül mphantom elérhetetlenné teszi a tartalmat, de megőrzi a méretét mfenced
körbeveszi a tartalmat egy zárójelpárral
menclose bekeríti a tatralmat egy nyújtható szimbólummal
Script és korlát sémák
msub
hozzácsatol egy alindexet az alaphoz
msup
hozzácsatol egy felsőindexet az alaphoz
msubsup
hozzácsatol egy al- és felsőindex párt az alaphoz
munder
hozzácsatol egy alsóindexet az alaphoz
mover
hozzácsatol egy végindexet az alaphoz
munderover hozzácsatol egy alsó- és végindex párt az alaphoz
mmultiscripts
hozzákapcsol egy előindexet és egy tenzorindexet az alaphoz
Táblák és mátrixok mtable
tábla vagy mátrix
mlabeledtr
sor a táblában vagy a mátrixban vagy egyenlet szám
mtr
sor a táblában vagy a mátrixban
mtd
egy belépés a táblába vagy a mátrixba
maligngroup, malignmark
igazított jelölők
Élénkítő kifejezések
maction akciókat és alkifejezéseket köt össze Példa 1. Egy kifejezés MathML kódja 1−x3y4+z2
követésként
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mfrac> <mrow> <mn> 1 <mo> - <mroot> <mrow><mi> x <mrow><mn> 3 <mrow> <msup><mrow><mi> y <mrow><mn> 4 <mo> + <msup><mrow><mi> z <mrow><mn> 2 Példa 2. A kifejezés MathML kódja ∫abe2x5dx
<math xmlns="http://www.w3.org/1998/Math/MathML"> <munderover> <mo> ∫
<mrow><mi> a <mrow><mi> b <msup> <mrow><mo> ⅇ <mrow> <mn> 2 <msup> <mrow><mi> x <mrow><mn> 5 <mi> dx
Tartalom jelölő A prezentációs elemke leírják a matematikai jelölés, vizuálisan kétdimenzziós szerkezetét. Tipikus példa erre, az mrow elem, amely a jelölésre általában egyenletek darabjainak a vízszintes sorát alkalmazza, és msup elem, amely a jelölésre egy báziskifejezést és egy felsőindexet használ. Általános szabályként, mindegyik prezentációs elem hasonlít egy jelölési "sémá"-hoz, mint egy sor, egy felsőindex, egy alsóindex, egy alindex, egy végindexhez és így tovább. Bármilyen képlet állhat olyan részekből, amiket lehet vizsgálni a legegyszerűbb formájukban, mint szám, levél vagy szimbolikus karakter. Bár az előző fejezet foglalkozott a matematikai jelölés megjelenítésével és ezentúl a prezentációs jelöléssel, néhány megfigyelés
néhány megfigyelés egyformán jól nyilatkozik az absztrakt matematikai objektumokról is és ezentúl a tartalomjelölésről is. Például a tartalomjelölés kontextusában egy felsőindex, a szokásos módon lesz jelölve, mint egy hatványozás operáció, tehát szüksége lesz két paraméterre: "alap"-ra és "kitevő"-re. Ez nem egybeesés, mert a matematikai jelölés logikus szerkezetét követik a matematikai objektumok is. Az általános matematikai jelölés szemantikája, nem megegyezés kérdése. Ez egy óriási munka - egy feladat aminek sosem lesz vége. Helyette a MathML készít egy viszonylag kevés közhellyel teli matematikai konstrukciót, amit gondosan terveztek, hogy nagyszámú alkalmazásban legyen használható. Ráadásul ez biztosít egy szemantika összekötő mechanizmust, új jelölési konstrukcióval. Így oylan matematikai fogalmakat is létrehozhatnak, amelyik nincsenek az elemek alapkollekciójában. Az alapkészlet számos eleméből választhatnak, hogy megfelelő és egyszerű legyen a kódolás, amit tudnak használni az óvodától, egészen a középiskola végéig, az USA-ban és valószínűleg a főiskola első két évén túl is vagy Európában az A-Szint vagy a Baccalaureate szinten túl. 1. aritmetika, algebra, logika és relációk 2. analízis és vektornalízis 3. halmazelmélet 4. sorozatok és sorok 5. elemi, klasszikus függvények 6. statisztika 7. lineáris algebra Nincs az állítva, de még csak felvetve sem, hogy a halmaz megadott elemei teljesek ezeken a területeken, de a szerkesztő kiterjeszthetőségi tartalékai nagyban megkönnyítik bármely probléma kihagyását amelyet ezek a véges listák okozhatnak.
A tartalomkódolás elsődleges célja, kapcsoaltot létesíteni a matematikai struktúrák és az ő jelentésük között. A tartalom elemei közvetlenül, a mögöttes matematikai kifejezés fa egy részének felelnek meg. Mindegyik struktúrának van egy társított, alapértelmezett szemantikája és van egy mechanizmus, ami az új matematikai definíciók társítására szolgál, új konstrukciókkal. Fontos előnyök a tartalomspecifikus tagok bemutatásához: 1. A prezentációs elemek használata a legkevésbé erőltetett. Amikor a matematikai szemantika, a prezentáció jelöléséből adódik, bármelyiknek közülük modernnek, kifinomultnak kell lennie, vagy igyekezniük kell kikerülni a hamis, esetleg helytelen következtetést a szemantikában ha éppen szabálytalan szerkezetek érik is el az audio- illetve látványeffekteket. 2. Ez azonnal látszik, hogy melyik fajta információt kódolják egyszerűen azáltal az elem által, amit használnak. 3. Kombinációk szemantikai és prezentációs elemeket használhatnak arra, hogy átvigyék a megjelenést és a matematikai jelentést. Ezeknek a céloknak a megvalósítása, a MathML tartalomkódolása egy kifejezésfa koncepciójára épül. A tartalomfa, több primitív objektum kollekciójából épül fel, tárolóként és operátorokként említették itt. A MathML birtokolja az előredefiniált tárolóknak egy sorát úgy, mint felépítést a kombinált tárolókért és a matematikában használt értelmes operátorokért. Általános szabályként, a végpontok a fában alap matematikai objektumokat reprezentálnak, mint pl. számok, változók, aritmetikai operációk és így tovább. A fában levő belső csomópontok általában valamilyen funkcióalkalmazást vagy egy másik matematikai konstrukciót képviselnek, ami felépít egy összetett objektumot. A funkció alkalmazás tartalmazza a legtöbb fontos példát; lehet, hogy egy belső csomópont
reprezentálja egy funkció alkalmazását, egyes argumentumoknak, amelyek önmagukat reprezentálják a belső csomópont alatti végpontok által. A MathML tartalom elemek a következő kategóriákba lehet sorolni, felhasználás szerint: 1. konstansok és szimbólumok 2. tárolók 3. operátorok és függvények 4. minősítők 5. relációk 6. feltételek 7. szemantikai leképezések Ezekből az építőkockákból épülnek fel a MathML tartalom kifejezései. A legtöbb alap felépítés útja, egy matematikai kifejezés a MathML tartalom jelölésében, ami "felhasználja" a szerkesztést. Egy használható elem jellemzően egy operátort alkalmaz az argumentumokhoz. Ez összhangban van azzal a teljes matematikai kifejezéssel, amelyiknek a jelentése a matematika egy része és körülvehetnék zárójelek vagy "logikai zárójelek", a jelentés változása nélkül. A használat nyitó és záró tage pontosan részeletezi valamennyi operátor vagy függvény hatáskörét. Példa 3. Az (x + y) matematikai kifejezést így lehet kódolni:
x y A tartalmi modell képes szimbolikus leírásra:
op a b Ahol az "a" és "b" operandus tárolók avyg más tartalomközpontú elemek és az "op" egy operátor vagy funkció. Jegyezd meg, hogy amióta a használat egy tároló, az megengedi, hogy a konstrukciókat önkényes mélységbe lehessen beilleszteni. Példa 4. Az "ax + b" egyenlet kódolva:
a x b Az adott függvényeknek, természetes, hogy van inverzük. Ez az inverz elem által van kezelve. A függvényinverzek inkább problematikusak, és matematikai szempontből implicit ellentetként definiálják. A MathML elfogadja a következő inverz függvény elképzelését: Ha f függvény D-ből képez D '-be, akkor az f függvény g inverze a D '-ből fog, tehát g(f (x)) = x, ahol x a D-ből származik.
Eza definíció nem bizonyítja, hogy egyetlen inverz létezik vagy valóban mindenx a D-ben van, vagy egyetlen érték van. Szintén függ a függvény bonyolultságától,a kiegészítő tulajdonságoktól, mint pl.: f (g(y)) = y,ahol y elem D'. Az inverz elem alkalmazott egy függvényt, valahányszor egy inverzre van szükség. Például, a szinusz függvény inverze, így néz ki kódolva x, i.e. sin−1x: <sin /> x Példa 5. A következő jelölés deklarál és felépít egy J
függvényt , ahol J(x, y) egy integrál: <declare type="function''> f x <power /> x 2
x 3
Tárolók A tárolók eszközt biztosítanak egy adott típusú matematikai objektum konstrukciójának. Tagek
ci,cn,csymbol
Konstruktorok
interval, list, matrix, matrixrow, set, vector, apply, reln, fn, lambda, piecewise, piece, otherwise
Speciális kifejezések
declare
Függvények, operátorok és minősítők A MathML által definiált operátorok és függvények, kategóriákra oszthatók, mint látszik a táblában. unáris aritmetikai
factorial, minus, abs, conjugate, arg, real, imaginary, floor, ceiling
unáris logikai
not
unáris funkcionális inverse, ident, domain, codomain, image
unáris elemi, klasszkius függvények
sin, cos, tan, sec, csc, cot, sinh, cosh, tanh, sech, csch, coth, arcsin, arccos, arctan, arccosh, arccot, arccoth, arccsc, arccsch, arcsec, arcsech, arcsinh, arctanh, exp, ln, log
unáris lineáris algebre
determinant, transpose
unáris analízis és vektoranalízis
divergence, grad, curl, laplacian
unáris halmazelmélet
card
bináris aritmetikai
quotient, divide, minus, power, rem
binary logikai
implies, equivalent, approx
bináris beállító operátor
setdiff
bináris lineáris algebra
vectorproduct, scalarproduct, outerproduct
n-áris aritmetika
plus, times, max, min, gcd, lcm
n-áris statisztika
mean, sdev, variance, median, mode
n-áris logikai
and, or, xor
n-áris lineáris
selector
algebra n-áris beállító operátor
union, intersect, cartesianproduct
n-áris funkcionális
fn, compose
integrálás, szumma, produktum operátorok
int, sum, product
diffeneciál operátor diff, partialdiff mennyiségi
forall,exists
Az operátorok minősítőket tartanak A táblázat tartalmazza a minősítőket és az előredefiniált operátorokat, amiket minősítőknek tartanak a MathML-ben.
minősítők
lowlimit, uplimit, bvar, degree, logbase, interval, condition, domainofapplication, momentabout
operátorok
int, sum, product, root, diff, partialdiff, limit, log, moment forall, exists
n-áris operátorok
plus, times, max, min, gcd, lcm, mean, sdev, variance, median, mode, and, or, xor, union, intersect, cartesianproduct, compose, eq, leq, lt, geq, gt
felhasználó által csymbol, ci definiált operátorok Az operátorok, amik minősítőket tartanak, olyan kanonikusan üres függvények, amik abban különböznek a szokásos, üres függvényektől, hogy támogatják a speciális minősítő elemek használatát. A minősítőket midnig követi egy operátor és megelőz mindnen argumentumot, ami előtte van. Ha több, mint egy minősítő van jelen, akkor ők sorrendben mutatkoznak: ''bvar, lowlimit, uplimit, interval, condition, domainofapplication, degree, momentabout, logbase''. Példa 6. A szokásos példa:
x x C <sin /> x
Relációk bináris relációk
neq, equivalent, approx, factorof
bináris logikai relációk implies bináris beállító relációk in, notin, notsubset, notprsubset
bináris sor relációk
tendsto
n-ari relációk
eq, leq, lt, geq, gt
n-ari beállító relációk
subset, prsubset
A MathML tartalom tagje beilleszti egy kanonikusan üres elem számát, amelyik jelölt aritmetikai és logikai reláció. A relációk karakterizálva vannak akkor, hogy ha egy külső alkalmazás értékelte ki őket (MathML nem határozza meg, hogy hogyan lehet kifejezéseket kiértékelni), ők szokásosan visszatérnek egy igazságértékkel. Kontrasztként, az operátorok általában több típus értékével térnek vissza. Például, a kiértékelés értéke a
a b
Feltételek feltétel condition Példa 8. A következő kifejezés kódolja az x<3, akkor x2=4-
t:
<exists />
x x 3 <eq /> <power /> x 2 4
Szintaxis és szemantika feltérképezés semantics, annotation, annotation-xml A tartalom jelölés használata eléggé olyan, mint a prezentációs jelölés a matematikában, amit néha amit néha szemantikai tagként is emlegetnek. Az érvényes elemű struktúra fája, MathML tartalmi elemeket használ, amik közvetlenül egy mögöttes matematikai kifejezés, kifejezésfájának felelnek meg. Mi ezért úgy tekintjük a tartalom tagelést, mint a matematikai kifejetésének szintaxisának a kódolását. Ez általában elegendő a megjelenítéshez és néhány szimbolikus manipulációhoz (pl.: polinomiális faktorizáció).
Szemantikai feltérképezés
Bár a szemantikai feltérképezés könyű tud lenni a különféle saját vagy magasan specializált kódok esetében, nem túl széles körben elérhetőek, a nemsaját általános sémák a szematika feltérképezésre. Az OpenMaath csoport definiált egy XML szintaktikát ezeknek az információknak a kódolására. Ez az elemkészlet biztosítja egy XML-es elemkészlet alapját. A mechanizmus egy vonzó oldala, hogy, hogy az OpenMath szintaxis XML-ben van megadva, tehát egyszerretudják használlni a MatML szintaktikát és az XML-est.
Konstansok és szimbólumok A MathML biztosít egy elődefiniált konstansokból és szimbólumokból álló kollekciót, amely reprezentál gyakran használt fogalmat a matematikában. Így ezek biztosítják a jólismert szimbólumok egy tárát, például egész és racionális számokat és szintén néhány széles körben ismert konstans szimbólumot, mint pl. a false, true, exponenciális. A "constant" kifejezést arra használják, hogy állandókat jelöljön. Néhány fontos konstans, mint a π, úgy van reprezentálva a MathML 2.0-ban, mint az üres elemek. A cn használata ellenzi a definiált konstansok favorizálását vagy egy csymbol megfelelő értékkel rendelkező használatát. Például, helyette használható a π, így: π. Ennek úgy kéne megjelennie, mint a π matematikai konstansnak. A cn tag-re vonatkozó adatok, az alábbi konstansok közül kerülhetnek ki: Szimbólum
Érték
π
A Ludolf-féle szám, általában a trigonometriában π, megközelítően 3.141592653...
ⅇ vagy ⅇ
Euler-féle szám, alapja a természetes alapú logaritmusnak, értéke megközelítően
2.718281828... ⅈ vagy -1 négyzetgyöke, imaginárius egység ⅈ
γ
Euler konstansa, megközelítőleg: 0.5772156649...
∞ or &infty;
Végtelen
&true;
Igaz, logaikai konstans
&false;
Hamis logikai konstans
&NotANumber; or meghatározza egy rosszul definiált &NaN; lebegőpontos osztás értékét
Prezentációk összekötése és tartalom jelölés A prezentáció és tartalom jelölés összetud kötni két utat. Az első módnak a tartalom és a prezentációs elemeket kell vegyítenie, ami lényegében egy egyszerű fa. Ez kevert jelölést használ. A második út biztosít egy átlátható prezentációt és egy átlátható taralmat egy pár fában. Ez párhuzamus jelölést használ. A prezentációs jelölés tartalmaz egy jelölési struktúrát. Ez kódolja egy kifejezés jelölési struktúráját, egy elérhető absztrakt útban, ami elősegíti a megjelenést a médiában. Így néhány prezentációs jelölés megtud jelenni relatív egyszerűséggel bármelyik széles és szűk képernyőn, ASCII-ben vagy grafikában, nyomtatásban vagy szóban. Ezt azáltal teszi, hogy kifejezésrészek strukturált csoportjaként vagy szimbólumok osztályaként információt nyújt. A prezentációs jelölés nem törődik önmagától a
matematikai struktúrától vagy egy kifejezés jelentésével. Néhány helyzetben, a jelölés struktúra és a matematikai struktúra szorosan kapcsolódik egymáshoz. Azonban a gyakorlatban, a matematikai jelölésből származó matematikai jelentés kikövetkeztetését gyakran kell az olvasóra hagyni. A prezentációs tag önmagában való alkalmazása korlátozza egy MathML objektum képességeinek az újrahasználatát egy másik kontextusban, különösen egy külső alkalmazásban. A tartalom és reprezentációs tageknek teljes kifejező képességgel kell rendelkezniük, amire az ember számítana is egy matematikai jelölő nyelvtől. Gyakran ugyanazt a matematikai jelölést használják, több teljesen különböző fogalom jelölésére. Például, az xi kifejezést úgy használják a polinomiális algebrában, mint az i-edik x változó együtthatóját, vagy mint az x vektor komponensének az i-edik tagját. Más esetekben ugyanazt a matematikai fogalmat képviselhetik különböző jelölések. Például egy szám faktoriálisát kilehet fejezni felkiáltójellel, Gamma függvénnyel vagy Pochammer szimbólummal. Így ugyanaz a jelölés képviselhet több matematikai elgondolást vagy fordítva, ugyanannak a matematikai elgondolásnak gyakran több jelölése is adódhat. Ezért ez felruházza a szerzőket a pontos jelölés képességével, amíg a kódoláskor a géppel olvasható utat kell választania, ezért ehhez szükség van tartalom és prezentáció jelölőkre. Néhány szituációban a szerző vagy a szerzőeszköz dönthet, hogy prezentációt vagy kizárólag tartalomjelölőt hoz létre. Például az, hogy hagyatéki dokumentumokat fordítsanak le, tiszta prezentációs jelölést igényel. Hasonlóan, egy oktatási szoftvercsomag nagyonn jól készíthet csupán tartalomjelölést, a komputeralgebra rendszerek értékelésében. Mindazonáltal sok más helyzetben hasznos lehet, ha keverik a prezentációt és a tartalomjelölést, egy kifejezésen belül.
A prezentációs jelölések, tartalomjelölésekben tárolódnak
A prezentációs jelölés használata, a tartalmijelölésen belül, adott helyzetekre van korlátozva, tehát nem hat ki a tartalomjelölés képessége, az egyértelműen kódolt matrematikai jelentésre. Speciálisan, ha a prezentáció jelölés, a tartalomjelölésben tűnik fel, akkor három út lehetséges: 1. belül ci-n és cn tagekkel 2. belül a csymbol elemmen 3. szemantikai elemen belült Bármely másik prezentációs jelölés, ami a tartalmi jelölésen belül történik, MathML hibához vezet.
A tartalomjelölés, prezentációs jelölésben tárolódik A bemutató kifejezéseken belül a tartalomjelölés beágyazására a vezérelv az, hogy az eredményül kapott kifejezésnek megmaradjon az egyértelmű fordítása. Általában ez azt jelenti, hogy a beágyazott tartalomi kifejezéseknek szemantikailag értelmesnek kell lennie, míg a tartalomjelölő fordítása a jelentésétől függ. Egyes tartalmi elemek a szövegkörnyezeti szemantikai jelentésüknek részéből származnak, mint például a bvar elem lehet akár egy módosító integrál, logikai kvantor, vagy akár lambda kifejezés. Egy másik példa lehet, hogy egy degree elem előfordulhat root vagy akár partialdiff elemben is. Ennélfogva egy prezentációs környezetben az elemeknek, mint ezeknek is, nem kell, hogy világosan meghatározott jelentése legyen, és ezért nincs egyértelmű választás a megjelenítésre. Következésképpen ezek nem megengedettek. Operátor, reláció, tároló, állandó és szimbólum elemek magukban értelmeződnek, amíg a minősítők és feltételes típusok elemei nem. (Vegyük figyelembe, hogy az intervallum használható általános tárolóként vagy minősítőként is.) Ezeken a kategóriákon kívül egyes elemek érdemelnek még sajátos magyarázatot: a declare, sep, annotation és annotation-xml elemek, melyek csak nagyon speciális környezetben jelennek meg, és ezért
nem engedélyezettek egyetlen prezentációs elem közvetlen alkifejezéseként sem. Végül, az elemszemantika hordozza ezt magával elegendő információval, hogy engedélyezve legyen prezentációban. Az olyan tartalmi elemek teljes listája, amelyek nem jelenhetnek meg gyerekként prezentációs elemben, a következő: annotation, annotation-xml, sep, declare, bvar, condition, degree, logbase, lowlimit, uplimit. A prezentáció- és tartalomjelölő közti kölcsönhatás nagy mértékben fokozható különböző eszközök használatán keresztül. Amíg az eszközkészlet és a szabványok az XML applikációkra gyorsan fejlődnek a jelenben, már vázolhatunk néhány sajátos technikát. Általában a tartalom és a prezentáció közti kölcsönhatás kezelhető a MathML fa transzformációs szabályain keresztül. Ezeket a transzformációs szabályokat néha „makróknak” hívják. Elvileg ezek a szabályok kifejezhetők a mechanizmusok bármelyikének használatával, beleértve a DSSL-t, Dom-on működő Java programokat stb. is, amíg az első mechanizmus a legtöbb applikációban ezekre a transzformációkra XSLT lesz.
MathML karakterek Egy MathML token elem MathML karakterek sorozataként jelenik meg. A MathML karakterek úgy vannak meghatározva, hogy bármely Unicode karakter érvényes legyen akár XML dokumentumokban, akár mglyph elemekben. Az utóbbit olyan karakterek ábrázolására használják, amelyeknek nincs Unicode kódolása. Mivel az Unicode UCS megközelítőleg ezer speciális betűkaraktert biztosít a matematikai használatra Unicode 3.1-gyel, és több mint 900 további speciális szimbólumot Unicode 3.2ben, ezért ritka esetben van szükség mglyph-re. Bármely XML által megengedett karakter használható a MathMLben egy XML dokumentumban. Az érvényes karakterek hexadecimális kódja 09 (tab = U+0009), 0A (line feed = U+000A), 0D (carriage return = U+000D), 20-D7FF (U+0020..U+D7FF), E000-FFFD (U+E000..U+FFFD), és 10000-10FFFF (U+010000..U+10FFFF) lehet. A jelölési rendszer, zárójelek között bevezetve, U+-szal kezdődően
azt jelenti, hogy Unicode ajánlott az Unicode karakterek hivatkozására. A kivételek a fentebb leírt blokkok D7FF kódszámú pótpárokban használatos, és a két karakter garantálja, hogy egyáltalán nem Unicode karakter. Az U+FFFE ki van zárva, hogy bájtsorrend engedjen meghatározni egyes kódolásokban. Alapvetően három különböző módja van a karakteres adat kódolásának: 1. 1. Közvetlen karakterhasználat: Például egy A begépelhető ’A’-ként a billentyűzetről (U+0041-es karakter). Ez a lehetőség csak akkor elérhető, ha az XML dokumentumra meghatározott karakterkódolás tartalmazza a karaktert. A legtöbb szokásosan használt kódolásnak van ’A’ az ASCII pozíciójában. Sok kódolásban a karaktereknek több, mint egy bájtra van szüksége. Figyeljük meg, hogy ha a dokumentum például Latin-1 (ISO-8859-1) kódolású, akkor csak az adott kódolású karakterek elérhetők közvetlenül. Csak az UTF-8 vagy az UTF-16, az a kódolás amit az XML fordítója eltud fogadni, amin matematikai szimbólumokat, karakteres adatként tud kódolni. 2. Numerikus XML karakterhivatkozások használata: az 'A', A-ként (decimálisan) vagy )-ként (hexdecimálisan) lesz megjelenítve. jegyezd meg, hogy a számoknál midnig utalni kell a Unicode kódolásra (és nem az XML fájlban használt karakterkódolásra). A karakterhasználat mindig utal az egész Unicode érték elérésére. Egy általános XML szókincsnek hátrányos ez a megközelítése: karakterhivatkozásokat nem használhatnak XML elemekben vagy attribútum nevekben. Viszont ez nem a MathML problémája, tehát minden elemnév a MathML-ben ASCII karakterekre van korlátozva. 3. Entitáshivatkozások használata: A MathML DTD definiál egy belső entitást, amit karakteres adattá terjeszt ki. Így pl. az entitáshivatkozás é karakterhivatkozásként kéne használni é vagy, ha pl. a dokumentum ISO-8859-1-ben van kódolva,
akkor ez az é. Egy XML töredék, ami olyan entitáshivatkozást használ, ami nincs definiálva a DTD-ben, az nem helyes; ennek következtében ez vissza lesz utasítva, az XML fordító által. Ezért minden töredék, ami entitáshivatkozást használ, annak kell használnia egy DOCTYPE deklerációt, ami részletezi a MathMl DTD-t vagy egy DTD-t, ami legalább deklarál néhány entitáshivatkozást. A szükség, a DOCTYPE használatára komplikálja a MathML befogadását néhány dokumentumban. Viszont, az entitáshivatkozás nagyon ki van használva a kis szemléltető példákban és kb. minden példában, ebben a dokumentumban is. Néhány karakter, bár fontos a jóminőségű nyomtatás vagy az alternatív megjelenítés, nem rendelkezik glyph jelöléssel, ami egyértelműen megfelel neki. Őket jelöletlen karaktereknek hívják. A MathMl 2.0 oldalbeállítás vezérlője, pl. sortörést használ, ez okozza a megfelelő attribútumokat a myspace elemen. a karakterek között nincsenek egyszerű szóközök. Ők különösen fontos bővítései a UCS-nek, mert szövegi jeleket biztosítanak, amik tudják növelni a nyomtatás megjelenítésének a minőségét, engedélyezik a helyes audio lejátszást és a matematikai szemantika egyedi helyreállítását, olyan szövegből, amelyik vizuálisan kétértelmű. Karakter név
Unicode Megjegyzés
⁢
02062
jelzés nélkülis szorzást jelöl meg
⁣ 02063
szeparátorként használatos, pl. indexekben
⁡
karakter megjelenítő függvény, prezentáció tagolásban
02061
Speciális konstansok
Entitás név
Unicode Megjegyzés
ⅅ 02145
differenciálhányadosokban, pl. integrálokban
ⅆ
02146
differenciálhányadosokban, pl. integrálokban
ⅇ
02147
természetes alapú logaritmus alapjaként
ⅈ
021468
inégyzetgyök -1, imaginárius egység a komplex számokban
A MathML interfész A hatásosságért, a MathML-nek jól kell dolgoznia a megjelenítők, fordítók és editorok széles skálájával. Ebben a fejezetben néhány interfész problémával foglalkozunk, ami a MathML-ben generálódik és jelenítódik meg. A MathMl fennállása óta kódolja a matematikai kifejezéseket a webes dokumentumokban, habár a legfontosabb interfész probléma a MathML, HTML4-be és XHTML-be való beágyazásához kapcsolódik. Az interfész problémáknak három fajtája van, ami a MathML XML dokumentumba való beágyazásához kapcsolódik. Először, a MathML-nek szemantikusan kell integrálódnia. A MathML jelölésnek elfogadottnak kell lennie, mint egy érvényes beáygazott tartalom és nem, mint egy hiba. Elsődleges a névterek kezelésének kérdése XML-ben. Másodszor, HTML/XHTML esetében, a MathML megjelenítőnek integrálódnia kell a böngészőbe. Néhány böngésző már implementálta a MathMl megjelenítőt alapból, de a jövőben egyre több fogja. Ugyanabban az időben, más böngészők fejlesztették az infrastruktúrát és
ez elősegítette a MathML megjelenítését és más XML tartalom beágyazását. Ezeknek a böngészőspecifikus szerkezeteknek a használata általában megköveteli az interfészjelöléstől, hogy aktiválja. Harmadszor, más programok generálnak és feldolgoznak MathML kódot, de ehhez az interfészek közötti kommunikációt ismerniük kell. A MathML programok száma folyamatosan nő, inludálódnak editorok, fordítók, komputeralgebra rendszerek és más tudományos szoftverek. Viszont, a MathML kifejezésének felügyelete hosszadalmas és hajlamos hibát okozni, amikor kézzel hozzányúlnak. Különleges hangsúlyt kell adni annak, hogy a MathML kód könnyen tudjon generálódni, felhasználóbarát konverziók és szerkesztők által. És, hogy ezek a programok megbízhatóan tudjanak működni, platformfüggetlenül. A W3C Math Working Group odaadóan biztosítja a MathMl szoftverek midnen fajtájának a fejlesztését. A Working Group-nak van egy nyilvános levelezőlistája, a [email protected] címen és megpróbálnak válaszolni a kérdésekre, a MathML specifikációkkal kapcsolatban. A Working Group MathML fejlesztőkkel dolgozik együtt és felhasználói csoportokkal. Aktuális információért a MathML programoról és a felhasználói támogatás aktivizálásáért, a honlapjukon lehet nézelődni.
MathML beágyazása XML dokumentumba Amíg a MathML elszigetelve lesz használva, a matematikai kifejezések cseréjére, MathML és más programok között, addig elsődlegesen remélhetőleg a MathML használata az, hogy kódolja a matematikai kifejezéseket egy nagyobb dokumentumból. A MathML ideális a matematikai kifejezések msá XML dokumentumba való beágyazásához. A MathML beágyazása, az XML és XHTML-alapú dokumentumokba általában és részben a névtér kezelés dolga. Egy XML névtér, nevek kollekciójának felismerése egy URI által.
http://www.w3.org/1998/Math/MathML Névterek használata, MathML kifejezések beágyazása egy nagyobb XML dokumentumba, csupán a MathML jelölés felismerésének a dolga. Ez arra lehet jó, hogy bármelyik MathML elemnevet nyíltan tud azonosítani azáltal, hogy hozzácsatol egy névtérprefixet vagy deklarálásnál egy alapértelmezett névteret egy lazárt elemhez. A névtér deklarálása, egy használata az xmlns attribútumnak vagy egy attribútumnak, egy xmlns prefixummal. Amikor az xmlns attribútum egyedül van használva, beállítódik egy alapértelmezett névtér az elemhez, amelyik megjelenik és néhány gyermekelemhez. Például: <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>... Amikor az xmlns attributum prefisumként van használva, deklarál egy prefixumot, amelyik tud ekkor egyszerűen társulni egy másik elemekhez és attribútumokhoz, egy részleges névtérrel. Example: ... <m:math><m:mrow>... ... A névtér deklaráció ezen két metódusa tud egyszerre is használódni. Például, egy egyszerű dokumentum-széles névtér prefixum használata és az alapértelmezett deklarációk, az egyéni matematikai elemeken. Ez lehetséges, hogy korlátozza a névteret, a hozzá kapcsolódó magasszintű matematikai elemekhez.
Például: ... <m:math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>... ...
Kompatibilitási javaslatok A névtér használata a MathML beágyazáshoz, egy másik applikációban teljesen leírt a lényeges W3C Recommendations által, de bizonyos fokú gyakorlatiasságot még mindig igényel. Az XML-nek, a névtereknek és a megjelenítésnek, a népszerű felhasználói programokban nyújtott támogatása nem mindig van a W3C Recommendations-hoz igazítva. Néhány dologban a szoftver előrehoz lényeges alapdolgokat, de más ügyekben ezek még nem teljesek. Az átmeneti időszak alatt, néhány szoftvernek nem kéne teljesen névtér-felismerősnek lennie, de egy kevés konvencionális trükk enyhíteni fog a kompatibilitási problémákon: 1. Amikor névter prefixeket használunk MathML jelöléssel, használjunk m-et: mint egy konvencionális prefixet, a MathML névtérhez. Egy egyszerű prefix használata megpróbálja biztonságosabbá tenni a kompatibilitást, az adott felhasználói programban. 2. Amikor névter prefixeket használunk, válasszunk ki egyet és használjuk következetesen egy dokumentumban. 3. Egyszerűen deklaráljuk a MathML névtereket, minden matematikai elem esetében.
Például: ... <m:math xmlns:m="http://www.w3.org/1998/Math/MathML"> <m:mrow>... ... vagy ... <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>... ... Jegyezd meg, hogy ezek a javaslatok, önmagukban nem elegek funkcionális webodlalak tárolására MathML-ben. Ez általában néhány bővítést igényelni fog. A további munka szintén igényelni fogja minden MathML példa elkészítését, egy dokumentumkompatibilis deklarációval. Ez részben igaz, amikor a dokumentumokat a MathML kifejezések kivágásával és beillesztésével készítették, mert az aktuális eszközök valószínűleg nem lesznek elég fejlettek, hogy globális névtérinformációkat kérdezzenek. Vedd fel a W3C Math Working Group honlapjával a kapcsolatot, a kompatibilitási és implementációs javaslatokért, az aktuális MathML-képes böngészőkért és programokért. Felhasznált irodalom:
[1] http://www.w3.org/Math/ [2] MathML at the W3C, http://www.w3.org/TR/MathML2/