Navigáció: Főoldal / III. rész / III. rész (3. fejezet)

III. rész: Részletes összehasonlítás (folytatás II.)

3. A jelölések ötvözése

Ebben a részben csak MathML-ről lesz szó, hiszen csak ebben a leírónyelvben van értelme erről beszélni.

3.1. Miért használunk kétféle jelölést?

A megjelenítő jelölés elsősorban a minden médiának megfelelő, helyes megjelenítésre helyezi a hangsúlyt. Ezért általában, a tartalom jelentése sokadrangú szempont az egyes kifejezések megjelenítésében, azok megértését, feldolgozását a felhasználóra bízza.

A tartalmi jelölés a matematikai kifejezések jelentését hangsúlyozza, maga a megjelenítés helyes formájával csak a legszükségesebb mértékben foglalkozik. Természetesen ezért a matematikai alkalmazásokban nagyobb mértékben tudjuk felhasználni az így kódolt jelöléseket.

Így tehát, ha a matematikai leírónyelvek minden hasznos tulajdonságát ki akarjuk használni (magyarul a helyes tartalom mellett a helyes megjelenést is fontosnak tartjuk), akkor a kétféle jelölési módszert ötvöznünk kell.

Természetesen ennek is megvannak a maga szabályai, amiket be kell tartanunk, ha helyes kódokat szándékozunk készíteni.

3.2. A két jelölésfajta összekapcsolása

3.2.1. Megjelenítő elemek a tartalmi elemek között

Meglehetősen behatárolt eszközök állnak rendelkezésünkre az íly módon történő összekapcsolásra, ha nem akarunk homályos kódokat készíteni. Három módon használhatjuk korlátlanul a megjelenítő elemeket a tartalmi elemek között:

  • Megjelenítő elemek a tartalmi token-elemekben: A <ci> és <cn> token-elemekben engedélyezett a megjelenítő elemek használata. Ezek a kódblokkok a megjelenítő elemeknek megfelelően fognak megjelenni (azaz az <mi> és <mn> elemeknek megfelelően). Ilyenkor ne használjuk a <sep/> elemet, mert a megjelenítő úgyis figyelmen kívül hagyja.
  • Megjelenítő elemek az <fn> elemben: Az <fn> elemben használhatunk megjelenítő elemeket, de vigyáznunk kell arra, hogy nem keverhetjük össze a tartalmi elemekkel, mert ez hibát okozna.
  • Megjelenítő elemek a <semantics> elemben: A <semantics> elem egyik feladata, hogy a megjelenítő és a tartalmi elemek között kapcsolatot teremtsen. A legtöbb esetben a tartalmi jelölést mellett nincs sok szerepe a megjelenítő jelölésnek, de a megjelenítőtől függően hatással lehet a kifejezés megjelenítésére, erről bővebben a <semantics> elemnél beszéltem.

3.2.2. Tartalmi elemek a megjelenítő elemek között

A legfontosabb tudnivaló, hogy az így megszerkesztett kifejezésnek nagyon pontos a megjelenítése. Ilyenkor a tartalmi többletjelentés hatással van a megjelenítésre is. Általában csak a következő tartalmi elemek engedélyezettek: <apply>, <ci>, <cn>, <declare>, <fn>, <interval>, <lambda>, <list>, <matrix>, <matrixrow>, <reln>, <set>, <vector>; a műveletek, relációk nem. Fontos tudnunk azt is, hogy a megjelenítő token-elemekben tartalmi elemeket nem használhatunk.

Elmondhatjuk, hogy ebben az összekapcsolási módban a tartalmi elemek helyettesíthetőek megjelenítő elemekkel. Lássuk erre a következő példát:

<mfrac>
  <mi>x</mi>
  <interval closure="open-closed">
    <cn>1</cn>
    <cn>3</cn>
  </interval>
</mfrac>

A fenti kevert jelölés tiszta megjelenítő elemekkel a következő módon állítható elő, természetesen a többletinformáció ilyenkor elveszik:

<mfrac>
  <mi>x</mi>
  <mfenced close="]">
    <mn>1</mn>
    <mn>3</mn>
  </mfenced>
</mfrac>

3.3. Makrók készítése

A MathML-ben lehetőségünk van makrókat készíteni. Például készítsünk egy makrót, mely a mátrix rangját adja meg, és egy olyat, amely leegyszerűsíti a transzponált leírását. Legyen az első a <rank/>, melynek kódja:

<fn>
  <semantics>
    <ci><mo>rank</mo></ci>
    <annotation-xml encoding="OpenMath">
      <OMS cd="BasicLinAlg" name="matrix-rank"/>
    </annotation-xml>
  </semantics>
</fn>

Az egyszerűsítés pedig legyen a <tran> “elem”:

<apply>
  <transpose/>
  <ci>X</ci>
</apply>

Lássuk most a saját függvény kódolását:

<reln>
  <eq/>
  <apply>
    <rank/>
    <apply>
      <times/>
      <tran>u</tran>
      <ci>v</ci>
    </apply>
  </apply>
  <cn>1</cn>
</reln>

Mint a fenti példákból látjuk, makrók (vagy egész makró-könyvtárak) segítségével mennyire egyszerűen és hatásosan kombinálhatjuk a megjelenítő és tartalmi jelölésformákat.

<<< Előző   |   Következő >>>