MathML
MathML to język służący do prezentacji matematycznych i naukowych materiałów w tekstowych dokumentach elektronicznych - także na stronach WWW.
MathML umożliwia stosowanie specjalistycznej notacji, prawidłowe wyświetlanie znaków charakterystycznych dla matematyki (np. symboli całek i pierwiastków) oraz prezentowanie skomplikowanych wyrażeń matematycznych (np. wielopiętrowych ułamków, macierzy). Pozwala także na przeszukiwanie i przetwarzanie wyrażeń matematycznych.
MathML - nowy sposób zapisu wyrażeń
MathML uzupełnia ograniczone możliwości języka HTML. Dotychczas twórcy witryn internetowych pragnąc umieścić w nich wyrażenia matematyczne korzystali najczęściej z narzędzi zawartych w specjalistycznych aplikacjach. Przygotowane przy ich pomocy wyrażenia po wykonaniu zrzutu ekranu zapisywali w postaci grafiki GIF. MathML pozwala uzyskać ten sam efekt za pomocą wyrażeń sterujących pracą przeglądarki.
MathML
Krótka historia MathML-a
Pierwsze prace nad MathML rozpoczęto już w 1993 roku, zaraz po eksplozji sieci WWW. Jednak dopiero cztery lata później organizacja W3C powołała grupę roboczą Math Working Group, która zajmować się miała wyłącznie opracowywaniem standardu prezentacji matematycznych w dokumentach hipertekstowych. Pierwsza specyfikacja MathML, oznaczona numerem 1.0, ukazała się w 1998 roku. Rok później przedstawiono najnowszą wersję 1.01.
Math ML: prezentacja i semantyka
MathML jest w istocie aplikacją XML-a. Składa się z szeregu znaczników XML przeznaczonych do oznaczania wzorów oraz z predefiniowanego zestawu znaków specjalnych.
Wśród znaczników wyróżnić można dwie zasadnicze grupy: odpowiedzialne za prezentację wyrażeń oraz za ich zawartość merytoryczną. Duży nacisk położony został zwłaszcza na semantykę - dzięki temu można łatwo weryfikować poprawność działań oraz automatyzować przetwarzanie wyników obliczeń. W odrębnym słowniku wchodzącym w skład MathML zdefiniowano symbole specjalne, takie jak stała pi czy całka. Dodatkowo, w celu rozplanowania wyglądu i układu strony autorzy mogą stosować arkusze styli. Składnia wyrażeń MathML-owych zbliżona jest do HTML-a. Same wyrażenia mogą być osadzane w dokumentach HTML..
Przykład zastosowania MathML-a
Poniższy przykład pokazuje, w jaki sposób MathML dba o wygląd oraz semantykę wyrażeń. Zobaczmy, jak proste równanie:
x2 + x + 1 =0
opisane może być przy pomocy znaczników odpowiedzialnych za prezentację. Generalnie, znaczniki te rozpoczynają się literą "m", po której następują litery wskazujące na typ danych (np: "o", "i", "n" - odpowiednio: operator, identyfikator, liczba naturalna). Zadaniem znacznika mrow jest rozmieszczenie elementów w pionie.
<math>
<mrow>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mi>x</mi>
<mo>+</mo>
<mn>1</mn>
<mo>=</mo>
<mn>0</mn>
</mrow>
</math>
Z kolei drugi fragment kodu przedstawia podejście kładące nacisk na zawartość wyrażenia. Odpowiednikami znaczników mi oraz mn są tutaj znaczniki ci oraz cn:
<apply>
<plus/>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
<ci>x</ci>
<cn>1</cn>
</apply>Narzędzia
Ponieważ ręczne tworzenie wyrażeń MathML (zwłaszcza odpowiadających bardziej złożonym konstrukcjom matematycznym) może być niezwykle czasochłonne, zalecane jest korzystanie z generatorów automatycznie tworzących odpowiedni kod. Generatory takie zaimplementowane są już w niektórych specjalistycznych aplikacjach - np. w pakiecie Mathematica.
Na rynku dostępne są również konwertery potrafiące przekształcać do postaci MathML dokumenty TeX-a. Samo przeglądanie dokumentów, a zwłaszcza stron WWW zawierających wyrażenia MathML wymaga posiadania przeglądarki "wzmocnionej" odpowiednim plug-inem (choć promowana przez W3C przeglądarka Amaya w znacznym stopniu radzi sobie z zapisem MathML).
zobacz również:
- Amaya, HTML, MathML
- Specyfikacja MathML
- MathML FAQ
- strony o MathML prowadzone na Concordia University