Newsletter

Grupa MagazynyInternetowe

Online: 1003

Wyszukiwarka

Narzędzia dla webmastera

MathML - matematyka na stronach WWW

MathML - matematyka na stronach WWW Mathematical Markup Language to język znacznikowy, który umożliwia osadzanie wzorów matematycznych na stronach WWW. Artykuł opisuje, w jaki sposób przygotowywać dokumenty XHTML zawierające wstawki MathML, tak by były zgodne ze standardami oraz poprawnie wyświetlane w przeglądarkach Firefox i IE.

Włodzimierz Gajda

Dlaczego MathML?

Z powodu ograniczeń HTML-a matematycy, a także naukowcy z wielu innych dziedzin, przez wiele lat byli skazani na publikowanie formuł w postaci obrazów dołączanych do strony WWW znacznikiem <img>. Jedyną alternatywą były formaty PDF oraz PostScript. Wymienione rozwiązania pozwalają wprawdzie na tworzenie stron WWW zawierających dowolnie złożone wzory, jednak dokumenty takie są dostępne wyłącznie dla przeglądarek graficznych. Ani przeglądarki czytające treść stron WWW, ani roboty wyszukiwarek internetowych nie odczytają treści matematycznych zawartych w plikach graficznych czy PDF-ach.

Rozwiązaniem problemu dostępności treści matematycznych jest Mathematical Markup Language, czyli matematyczny język znacznikowy, w skrócie oznaczany jako MathML. Formuły zapisane w MathML-u mogą być nie tylko wyświetlane w postaci graficznej na monitorze, ale także automatycznie przetwarzane przez różnego rodzaju oprogramowanie. W ten sposób treści matematyczne opublikowane w sieci WWW będzie można katalogować i przeszukiwać podobnie jak dokumenty HTML.

W języku MathML wzory matematyczne są tworzone z licznych znaczników, np. mfrac (ułamek), msqrt (pierwiastek kwadratowy) oraz mn (liczba). Wzór "pierwiastek z dwóch przez dwa" przyjmuje w MathML-u postać:

[+]
 
XML
Pobierz
1. <math>
2.   <mfrac>
3.     <msqrt>
4.       <mn>2</mn>
5.     </msqrt>      
6.     <mn>2</mn>
7.   </mfrac>
8. </math>

Po wyświetleniu w przeglądarce Firefox powyższy kod MathML będzie wyglądał tak, jak na rys. 1.

Rys. 1. Wzór: pierwiastek z dwóch przez dwa Rys. 1. Wzór: pierwiastek z dwóch przez dwa

MathML prezentacyjny, znaczeniowy i mieszany

Od początku prac nad MathML-em równolegle rozwijane są dwa dialekty języka: prezentacyjny (ang. presentational markup) oraz znaczeniowy (ang. content markup). W dialekcie prezentacyjnym nacisk położono na wizualny skład wyrażeń, zaś znaczeniowy MathML ma przede wszystkim kodować zawartą we wzorze treść.

Wzór x2 + 4x + 4 = 0 w dialekcie prezentacyjnym przyjmuje postać:

[+]
 
XML
Pobierz
 1. <math>
 2.   <mrow>
 3.     <msup>
 4.       <mi>x</mi>
 5.       <mn>2</mn>
 6.     </msup>
 7.     <mo>+</mo>
 8.     <mrow>
 9.       <mn>4</mn>
10.       <mo>&InvisibleTimes;</mo>
11.       <mi>x</mi>
12.     </mrow>
13.     <mo>+</mo>
14.     <mn>4</mn>
15.   </mrow>
16.   <mo>=</mo>
17.   <mn>0</mn>
18. </math>

Ten sam wzór zapisany w znaczeniowym MathML-u wygląda następująco:

[+]
 
XML
Pobierz
 1. <math>
 2.   <apply>
 3.     <eq/>
 4.     <apply>
 5.       <plus/>
 6.       <apply>
 7.         <power/>
 8.         <ci>x</ci>
 9.         <cn>2</cn>
10.       </apply>
11.       <apply>
12.         <times/>
13.         <cn>4</cn>
14.         <ci>x</ci>
15.       </apply>
16.       <cn>4</cn>
17.     </apply>
18.     <cn>0</cn>
19.   </apply>
20. </math>

Pierwszy z wzorów zawiera operatory +, &InvisibleTimes; = oraz indeksację msup. Wzór zapisany w sposób znaczeniowy operuje zaś znacznikami plus, times, power oraz eq.

Oba dialekty, prezentacyjny i znaczeniowy, można łączyć. Otrzymany w ten sposób zapis składa się z dwóch fragmentów, z których jeden zawiera instrukcje do wizualnego przedstawienia wzoru, a drugi reprezentuje treść matematyczną. Można to porównać do znacznika img oraz atrybutu alt. Mieszany MathML jest zawarty w elemencie semantics. Prezentacyjna część znajduje się bezpośrednio po znaczniku <semantics>, zaś znaczeniowa w elemencie annotation-xml:

[-]
 
XML
Pobierz
Listing zwinięty - 31 linii
18 września 2008

Powiązane publikacje

Skonwertuj wszystko

Skonwertuj wszystko

SimpleXML - przetwarzanie plików XML w PHP

SimpleXML - przetwarzanie plików XML w PHP

 
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)
 

Autor

Włodzimierz Gajda

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.