Vorlesungsreihe Entwicklung webbasierter Anwendungen Anwendungsbeispiel zu XML -MathML Prof. Dr.-Ing. Thomas Wiedemann email: wiedem@informatik.htw-dresden.de HOCHSCHULE FÜR TECHNIK UND WIRTSCHAFT DRESDEN (FH) Fachbereich Informatik/Mathematik Gliederung Motivation / Gründe für die Entwicklung Historische Entwicklung Prinzipieller Lösungsansatz Die wichtigsten MathML-Tags Anwendungsbeispiel Einbindung in Browser oder andere IT-Systeme Bewertung und Ausblick Diskussion Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 2 1
Motivation / Gründe für die Entwicklung Hauptanliegen von MathML Präsentation vom mathematischen Formeln Kodierung von mathematischen Formeln mit dem Ziel der Weiterverarbeitung und Berechnung Bisheriger Stand (bzw. Lösungsmöglichkeiten) Umwandlung von Formeln in Grafiken und Einbindung dieser in die Dokumente (mathematische Bedeutung geht verloren) Angenäherte Darstellung durch HTML-Tabellen (mathematische Bedeutung geht ebenfalls weitgehend verloren, da keine inhaltsbezogene Auszeichnung) Einsatz von proprietären Programme Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 3 Historische Entwicklung MathML war eine der ersten Beispielanwendungen von XML : 1994 - erster Vorschlag für HTML Math im HTML 3.0 working draft Mai 1996 - Ausschuss für HTML Math Editorial Review gegründet März 1997 - Ausschuss wurde zum W3C Math Working Group neu zusammengesetzt. April 1998 - W3C veröffentlicht MathML 1.0 als Recommendation. Juli 1999 - Math Working Group veröffentlicht MathML 1.01 als überarbeitete Version der vorherigen Recommendation. Februar 2001 - W3C Recommendation von MathML 2.0 veröffentlicht. MathML wurde und wird durch führende Firmen unterstützt: Waterloo (Maple) Wolfram Research (Mathematica) IBM, Microsoft Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 4 2
Prinzipieller Lösungsansatz es gibt zwei Unterarten: Presentation oder Content Markup Presentation dient zur Visualisierung Content Markup dient zur verarbeitungsorientierten Beschreibung Mathematische Formeln können in der Regel als eine Hierarchie von durch Operatoren verbundenen Operanden verstanden werden diese Struktur kann sehr gut mit einem XML-Baum abgebildet werden : 10 Y = X+1 <math><mrow><mrow> <mi>y</mi><mo>=</mo> <mfrac><mrow><mn>10</mn></mrow> <mrow><mi>x</mi> <mo>+</mo><mn>1</mn> </mfrac></mrow></mrow> </math> Y = 10 X+1 Formel MathML-Schreibweise Anzeige Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 5 Die wichtigsten MathML-Tags MathML-Ausdrücke werden durch <math> </math> umschlossen Tags für Presentation Markup: <mi>.. </mi> - definiert Variable <mn>.. </mn> - definiert Zahl <mo>.. </mo> - definiert Operator <mrow>... </mrow> - zeilenweise Anordnung <mfenced>... </mfenced> - zeilenweise in Klammern <mfrac> Zähler Nenner </mfrac> - Bruch <sub> Basis tiefgestellter-index </msub> <msup> Basis hochgestellter-index </msup> <munder> Basis Zeichen </munder> - unter anderem Zeichen <mover> Basis Zeichen </mover> -über anderem Zeichen Alle Tags können durch Attribute ergänzt werden, wie z.b. lspace, rspace, stretchy, movablelimits, fontweight, fontstyle, etc.. Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 6 3
Ein zweites Anwendungsbeispiel Mit den <munder>-tags können die Laufparameter für Summen u.ä definiert werden <mstyle> defniert über größere Bereiche ein spezielles Aussehen <mrow> <mstyle displaystyle='true'> <munderover> <mo> </mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>&infty;</mi> </munderover> </mstyle> <msup> <mi>x</mi> <mi>i</mi> </msup> </mrow> Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 7 Besonderheiten des Content-Markup Ausdrücke werden in Prefix-Notation geschrieben: Klammern werden überflüssig, da die Reihenfolge der Operationen durch die Notation eindeutig ist. Beispiel: (x+y)/2 wird zu / + x y 2 Die wichtigsten Tags für Content-Markup Markup: <ci>..</ci> - aanlog zu mi für Variablen <cn>..</cn> - wie <mn> für Zahlen (mit Zahlenbasisangabe) <apply> Operator Argument(1)..Argument(n) </apply> drückt Operationen aus <reln> Typ Argument(1) Argument(2) </reln> - drückt Relationen aus Standardoperatoren werden durch Einzeltags definiert <cos/> oder <plus/>) <reln> > <eq< eq/>< /><ci>y</ >y</ci><apply> <fn><ci ci>g</ >g</ci></fn> <ci>x</ci> y = g(x) wird zu </apply> </reln reln> Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 8 4
Einbindung von MathML in Browser oder andere IT-Systeme 1. Generierung von MathML mit professionellen Mathematikprogrammen (Mathematica, Marpel,...) kleinere Programme : WebEQ Equation Editor (exportiert Formel als MathML, als Bild oder auch Java-Scripcode) 2. Anzeige von MathML direkte Darstellung durch den Browser : Netscape 7.0, Mozilla, Amaya durch Plug-ins, z.b. für IE (ab Version 5.5) der Mathplayer durch Applets (noch relativ langsam) Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 9 Bewertung und Ausblick Vorteile: MathML ist eine sehr leistungsfähige Anwendung von XML könnte zum universellen Austauschformat für mathematisch orientierte Programme werden bei Unterstützung durch alle Browser könnte sich für die Dokumentenablage in XML-Formaten ein Schub ergeben Nachteile: auch einfache Formeln werden relativ groß und unübersichtlich Manuelle Erstellung und Verwaltung nicht sehr sinnvoll Unterteilung in Presentation und Content-Tags erschwert die praktische Anwendung Gesamturteil: gutes Potential für weiteren Ausbau -> Beobachten! perspektivisch relevant für webbasierte Anwendungen Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 10 5
Quellen und Links www.w3.org/math : Die W3C Math Working Group Homepage www.w3.org/math/implementations.html: Informationen zu Software für MathML www.webeq.com/mathml/gitmml/: Ein gutes Tutorial für MathML Entwicklung webbasierter Anwendungen - Prof. T.Wiedemann - HTW Dresden - Folie 11 6