MATHML Aufbau, Verwendung, Alternativen Proseminar XML-basierte Technologien | [email protected] | 2004-07-01 Gliederung 1. Einstieg 2. Aufbau und Techniken 3. Pro & Kontra 4. Alternativen 5. Quellen 2 MathML - Einstieg Wofür steht MathML? Mathematical Markup Language Warum MathML? Mathematische Inhalte einfach ins Internet übertragen (z.B. in XHTML-Dokumenten) Wer hat‘s erfunden? W3C Math Working Group 3 W3C Math Working Group Website: http://www.w3.org/Math/ Zielsetzung: Einführung eines Standards, der sich mit der Problematik ernsthaft auseinandersetzt und Lösungen bereitstellt Geschichte: 1994: erste Vorschläge zu HTML Math im HTML 3.0 Working Draft März 1997: Gründung der W3C Math Working Group April 1998: Version 1.0 als W3C-Recommendation veröffentlicht aktuell: Version 2.0 Second Edition (VÖ: 21. Oktober 2003) 4 HTML für mathematische Inhalte Technik ist an andere Markup-Sprachen wie HTML angelehnt Erweiterung von XML → Gebrauch von XML zwingend einige aktuelle Browser können MathMLInhalte in XHTML-Dokumenten anzeigen → Formeln müssen nicht als Grafiken eingebunden werden 5 MathML-Dokumente erstellen wie jedes XML-Dokument per Text-Editor → sehr aufwändig (und damit fehleranfällig) bei komplexen Formeln einfacher mit verschiedenen Tools (Mathematica, Maple, WebEQ) 6 MathML-Dokumente erstellen Dokument muss gültiges XML sein Stylesheet für Ausgabe muss vor dem <html>-Tag stehen, da „Processing Instruction“ als Stylesheet kann die Vorgabe des W3C genutzt werden Beispiel: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/pmathml.xsl"?> <html> ... 7 MathML-Dokumente erstellen MathML-Beschreibungen können auf zweierlei Art dargestellt werden: 1. Präsentationsbeschreibung 2. Inhaltliche Beschreibung (= preorder-Traversierung eines Baumes) Die inhaltliche Beschreibung ist nicht direkt auf die Darstellung übertragbar. Für die Einbindung in XHTML-Dokumente ist es egal, welche Beschreibung man wählt. Allerdings bietet sich hierbei die Präsentationsbeschreibung an. 8 MathML-Dokumente erstellen Präsentationsbeschreibung: <math xmlns="http://www.w3.org/1998/Math/MathML"> <msup> <mfenced open="(" close=")"> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mfenced> <mn>2</mn> </msup> </math> (a+b)² 9 MathML-Dokumente erstellen <math> Beginn jedes MathML-Dokuments, NamespaceAngabe erforderlich (wie in jedem XML-Dokument) <mi> Identifier (Variable, Funktion oder Konstante) <mo> Operator <mn> Zahl <mrow> Definiert einen zusammengehörigen Ausdruck <mfenced> Definiert einen Klammerausdruck. Als Attribute können die öffnende und schließende Klammer angegeben werden (optional, Standard: „()“). <msub> Subscript (= tiefgestellt, indexiert) <msup> Superscript (= Exponent) 10 MathML-Dokumente erstellen Inhaltliche Beschreibung: <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <power /> <apply> <plus /> <ci>a</ci> <ci>b</ci> </apply> <cn>2</cn> </apply> </math> (a+b)² 11 MathML-Dokumente erstellen <apply> In apply werden die auszuführenden Elemente der Formel eingefasst <power /> Kindelemente wird potenziert (erwartet 2 Kindelemente - Basis und Exponent) <plus /> Kindelemente werden addiert (erwartet genau 2 Kindelemente) <ci> Identifier (Variable, Funktion oder Konstante) <cn> Zahl 12 MathML-Dokumente erstellen Ein weiteres Beispiel, an dem deutlich wird, dass die Abbildung einer recht simplen Formel sehr aufwändig werden kann: 260 [a+b] +{a+b} i 13 MathML-Dokumente erstellen <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <msup> <mfenced open="[" close="]"> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mn>260</mn> </msup> <mo>+</mo> <msub> <mfenced open="{" close="}"> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mi>i</mi> </msub> 260+{a+b} </mrow> [a+b] i </math> 14 Vor- und Nachteile von MathML PRO + einfaches und schnelles Erstellen bzw. Ändern von mathematischen Formeln und Symbolen + bedeutend kleinere Dateigröße gegenüber Grafiken KONTRA – mangelhafte Implementierung in Browsern – Basiskenntnisse der MarkupSprachen notwendig → deutlich höhere Ladegeschwindigkeit + keine Qualitätsverluste im Ausdruck da keine Pixelinformationen ► Nachteile liegen also nicht bei MathML selbst! 15 Alternativen zu MathML OpenMath: Web-Publishing Datenaustausch zwischen verschiedenen Softwaresystemen Speicherung in Datenbanken Hauptverwendung in Computer-Algebra-Systemen viele Parallelen und Schnittpunkte mit MathML → beide Systeme sind komplementär und ergänzen sich gegenseitig weitere Informationen: http://www.openmath.org/ 16 Alternativen zu MathML Mathematische Inhalte in HTML-Dokumenten: Formeln als präformatierter Text im ASCII-Format, z.B.: f(x)=x²+1 → <pre>f(x)=x&sup2;+1</pre> → Nachteile: komplexe Formeln schlecht darstellbar, Probleme mit Sonderzeichen, keine Weiterverarbeitung möglich Formeln als Grafiken einbinden → Nachteile: höhere Ladezeiten, keine Weiterverarbeitung möglich, keine späteren Änderungen möglich Formeln als Java-Applets einbinden → Nachteile: Java wird benötigt, höhere Ladezeiten, undynamisch 17 Alternativen zu MathML Mathematische Inhalte in Dokumenten: Eine weitere Alternative zu MathML ist TeX/LaTeX. Das Dokumentsatzprogramm ist ebenfalls gut geeignet, mathematische Inhalte darzustellen, auch hier gibt es für praktisch jedes mathematische Konstrukt eine entsprechende Beschreibung. Weitere Alternative: Postscript (z.B. Adobe PDF) 18 Quellen W3C Math Home: http://www.w3.org/Math/ NET - Network for Educational Technology: http://www.net.ethz.ch/mathml/ Diplomarbeit von Tanja Schniederberend: http://www-lehre.inf.uos.de/~tschnied/HTML/node66.html MathML-Präsentation von Primo Cirrincione: http://fgb.informatik.unibas.ch/fgb/archive/ss02/xmltech/material/online/sess11/mathml.ppt OpenMath: http://www.openmath.org/ LaTeX – Fortgeschrittene Anwendungen: ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0279510.pdf 19