Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MathML Seminar XML-Technologien Von Primo Cirrincione.

Ähnliche Präsentationen


Präsentation zum Thema: "MathML Seminar XML-Technologien Von Primo Cirrincione."—  Präsentation transkript:

1 MathML Seminar XML-Technologien Von Primo Cirrincione

2 12.6.2002Seminar XML-Technologien: MathML 2 Was ist MathML? MathML = Mathematical Markup Language MathML ist eine auf XML basierende Auszeichnungssprache für mathematische Ausdrücke. Was HTML für Text-Information ist, soll MathML für mathematische Ausdrücke sein.

3 12.6.2002Seminar XML-Technologien: MathML 3 Geschichte von MathML (1) 1994 - Es wurde ein Vorschlag für HTML Math im HTML 3.0 working draft eingefügt. Mai 1996 - Nach einem Meeting der digital Library Initiative wurde ein Ausschuss für HTML Math Editorial Review gegründent. März 1997 - Dieser Ausschuss wurde zum W3C Math Working Group neu zusammengesetzt. April 1998 - W3C veröffentlicht MathML 1.0 als Recommendation.

4 12.6.2002Seminar XML-Technologien: MathML 4 Geschichte von MathML (2) Juli 1999 - Das Math Working Group veröffentlicht MathML 1.01 als überarbeitete Version der vorherigen Recommendation. Februar 2001 - Die W3C Recommendation von MathML 2.0 wurde veröffentlicht. An der Entwicklung von MathML sind auch folgende Firmen beteiligt: –Waterloo (Maple) –Wolfram Research (Mathematica) –IBM –Microsoft –uvm.

5 12.6.2002Seminar XML-Technologien: MathML 5 Alternativen zu MathML Man lässt sich von Mathematik-Programmen (z.B. Maple oder Mathematica) Bilder der Ausdrücke generieren und fügt diese in ein HTML-Dokument ein. Man versucht die Ausdrücke mit HTML zu schreiben Zum Beispiel: -b ± Sqrt(b2 - 4ac) x = ------------------- x = ------------------- 2a 2a -b ± Sqrt(b 2 - 4ac) -b ± Sqrt(b 2 - 4ac) x= ------------------- 2a 2a

6 12.6.2002Seminar XML-Technologien: MathML 6 Nachteile Mit HTML hat man Probleme um spezielle mathematische Ausdrücke darzustellen (z.B. Integrale, Summen, usw.). Die mathematische Bedeutung geht verloren. Wenn die Formeln als Bilder abgespeichert sind, geht jegliche Dynamik verloren. Bilder können nicht als Input für Programme benützt werden, die symbolisch Rechnen können. Bilder brauchen mehr Speicher -> Der Aufbau einer Internetseite ist langsamer.

7 12.6.2002Seminar XML-Technologien: MathML 7 Lösung: MathML MathML erlaubt sowohl äussere Struktur eines Ausdrucks als auch dessen Semantik zu kodieren. Durch die Attribute von MathML-Elemente kann man den Layout der Ausdrücke festlegen. Man könnte MathML als Input für Mathematik- Programme verwenden. Man kann MathML in andere Formate umwandeln, z.B. LaTeX.

8 12.6.2002Seminar XML-Technologien: MathML 8 Aufbau von MathML Jedes MathML Dokument beginnt mit und endet mit dem schliessenden und es ist wie ein XML Dokument aufgebaut. Es gibt zwei Unterschiedliche Arten ein mathematischer Ausdruck in MathML zu kodieren: Presentation oder Content Markup. Presentation Markup ermöglicht es einen Ausdruck über das Aussehen zu kodieren. Content Markup ermöglicht es einen Ausdruck über die Semantik zu kodieren. Man kann beide Markup Varianten auch mischen bzw. parallel benützen.

9 12.6.2002Seminar XML-Technologien: MathML 9 Idee von MathML: Expression Trees Die Idee ist es die Baumstruktur eines mathematischen Ausdrucks zu nutzen. Man kann mathematische Symbole nur auf wenige Arten in einem Ausdruck anordnen. Z.B.: –In einer Reihe. –In eine Matrix. –Als Index. Mathematische Ausdrücke sind oft nur Ineinanderschachtelungen einfacherer Ausdrücke.

10 12.6.2002Seminar XML-Technologien: MathML 10 Presentation Markup: Layout Box Presentation Markup hat 27 Elemente mit ca. 50 Attributen. Presentation Markup basiert auf der Idee der Layout Box: Jedes Element ist eine Layout Box. –Die einfachsten Layout Boxes enthalten Zeichen, Zahlen oder Entitäten. –Kompliziertere Boxes ordnen ihre child Boxes gemäss einem Algorithmus an. –Z.B. gibt es ein Element welches seine zwei Kinder- Elemente als Bruch darstellt. Man könnte sagen, dass jedes Element eine Art intelligentes Template ist, welches seine Kinder auf eine gewisse Art darstellt.

11 12.6.2002Seminar XML-Technologien: MathML 11 Presentation Markup: Tokens Die einfachsten Elemente im Presentation Markup sind die Tokens. Das sind die einzigen Elemente die direkt Daten enthalten (entweder Zahlen, Buchstaben oder Entitäten), also die eigentlichen Blätter im Baum... Weist darauf hin, dass sein Inhalt als Variable angezeigt werden soll. Wichtige Attribute sind fontweight, fontstyle, etc.... Weist darauf hin, dass sein Inhalt als Zahl angezeigt werden soll. Hat dieselben Attribute wie... Weist darauf hin, dass sein Inhalt als Operator angezeigt werden soll. Attribute sind lspace, rspace, stretchy, movablelimits

12 12.6.2002Seminar XML-Technologien: MathML 12 Presentation Markup: Layout Schemata Kind(1)..Kind(n) Das üblichste Layout Schema. Es zeigt seine Kinder in einer Reihe entlang einer Horizontalen Basislinie an. Kind(1)..Kind(n) Erfüllt gleiche Aufgabe wie und schliesst zusätzlich seine Kinder in Klammern ein. Zähler Nenner Zeigt einen Bruch an. Wenn man das Attribut linethickness auf 0 setzt, kann dazu benutzen Binomialausdrücke anzeigen zu lassen. Kind(1)..Kind(n) Zeigt seine Kinder unter einem Wurzel-Zeichen an. Basis Index Benötigt man um Wurzeln höherer Ordnung anzeigen zu lassen.

13 12.6.2002Seminar XML-Technologien: MathML 13 Erstes Beispiel: 3 ( x + 2 )

14 12.6.2002Seminar XML-Technologien: MathML 14 Presentation Markup: Indices Basis tiefgestellter-Index Basis hochgestellter-Index Erstes Kind wird als Basis angezeigt und zweites Kind als tiefgestellter bzw. hochgestellter Index Basis tiefg.-Index hochg.-Index Ermöglicht es sowohl einen tiefgestellten Index als auch einen hochgestellten zu setzen Basis Zeichen Das Zeichen wird über der Basis bzw. unter der Basis angezeigt. Benutzt man z.B. um ein Tilde oder ein Strich über eine Variable zu schreiben. Basis Zeichen Zeichen Erlaubt es einem Zeichen sowohl über die Basis als auch darunter zu schreiben. Findet Anwendung bei Summen oder Integralen (z.B. die Grenzen über und unter dem Integralzeichen).

15 12.6.2002Seminar XML-Technologien: MathML 15 Beispiele zu Indices (1): x x 1 1 α α + + <msubsup> x x 1 α 1 α </msubsup></mrow>

16 12.6.2002Seminar XML-Technologien: MathML 16 Beispiele zu Indices (2): ∑ i = 1 &infty; x i

17 12.6.2002Seminar XML-Technologien: MathML 17 Presentation Markup: Tabellen Tabellen in MathML sind ähnlich zu den Tabellen in HTML aufgebaut. Sie haben aber noch einige zusätzliche Attribute um das Verhalten des Layouts besser zu kontrollieren. Reihe(1)..Reihe(n) wobei Reihe(i) Elemente (math table row) sind. Zelle(1)..Zelle(n) wobei Zelle(i) Elemente (Datenzellen) sind. Kind(1)..Kind(n)

18 12.6.2002Seminar XML-Technologien: MathML 18 Beispiel: Matrix <mrow> A A = = x x y y <mtr> z z w w </mtr> </mrow>

19 12.6.2002Seminar XML-Technologien: MathML 19 Presentation Markup: Vererbung Attribute können entweder explizit in den MathML- Tags gesetzt werden oder von der Umgebung ererbt werden. Jedes MathML-Element hat eine Umgebung welches einen Default-Wert für die Attribute festlegt. Die Idee ist, dass die Attribute der Umgebung, die für Schriftart, Hintergrund, etc. zuständig sind, durch den Browser initialisiert werden. Attribute die in einem Element gesetzt werden, wirken sich nur auf dieses aus. Um gewisse Attribute für mehrere Elemente gleichzeitig zu setzen, benutzt man das Element.

20 12.6.2002Seminar XML-Technologien: MathML 20 Beispiel zu Beispiel zu f f x x + + y y f(x + y)

21 12.6.2002Seminar XML-Technologien: MathML 21 Content Markup: Prefix-Notation In Content Markup werden die Ausdrücke in Prefix-Notation geschrieben. Der Vorteil ist, dass Klammern überflüssig werden, da die Reihenfolge der Operationen durch die Notation eindeutig ist. Zum Beispiel: (x+y)/2 wird zu / + x y 2

22 12.6.2002Seminar XML-Technologien: MathML 22 Content Markup: Tokens und fundamentale Elemente.. Ist das analoge Element zu. Hat ein Attribut type, welches den Typ des angezeigten Objekts festlegt (z.B. vector, array, etc.)... Ist das analoge Element zu. Hat auch ein Attribute type (z.B. real, integer, rational, complex-cartesian, complex-polar, constant) und ein Attribut base um das Zahlsystem festzulegen. Operator Argument(1)..Argument(n) Ist ein fundamentales Element des Content Markup um Operationen auszudrücken. Typ Argument(1) Argument(2) Ist das Analogon zu um Relationen auszudrücken. Es gibt kein Element! Operatoren sind leere Elemente oder werden durch das Element definiert.

23 12.6.2002Seminar XML-Technologien: MathML 23 Content Markup: Operatoren und Relationen Es gibt ca. 50 leere Operator Elemente für die üblichsten Funktionen und Operatoren (z.B. oder ). Es gibt ein Element um Funktionen bzw. Operatoren zu definieren: Operator Bemerkung: Wenn man eine Funktion f(x) definiert, sagt man nicht explizit, dass das x in Klammern dargestellt werden soll. Das muss der Browser selber erkennen. Relationen werden von Operatoren unterschieden. Man definiert sie über das Element.

24 12.6.2002Seminar XML-Technologien: MathML 24 Beispiel: Funktionen und Relation 1. (sin + cos)(x) <apply><fn> <sin/><cos/> </fn><ci>x</ci></apply> 2. g(y) g g <ci>y</ci></apply> 3. x=1 <ci>x</ci><cn>1</cn></reln>

25 12.6.2002Seminar XML-Technologien: MathML 25 Content Markup: Containers MathML benutzt sogenannte Container Elemente um elemantare mathematische Objekte und Datentypen darzustellen....| Konstruiert eine Menge dessen Elemente auf zwei Arten definiert werden: Entweder durch eine Liste von Tokens (in einem Container) und Containers oder durch ein Element. Punkt1 Punkt2 Definiert ein Intervall, wobei die Punkte die Anfangs und Endpunkte sind. Durch das Attribut closure kann man Intervalltyp festlegen (open, open-closed, etc.).... Konstruiert ein Vektor (per Konvention ein Spaltenvektor).... sind Elemente, deren Kinder dann die Matrixeinträge sind.

26 12.6.2002Seminar XML-Technologien: MathML 26 Beispiel: Menge und Intervall x x x 0 x 0 0 0 &infty; &infty; </reln>

27 12.6.2002Seminar XML-Technologien: MathML 27 Beispiel: Matrix und Vektor 1 2 1 2 0 1 0 1 1 0 1 0 2 1 2 1 </reln>

28 12.6.2002Seminar XML-Technologien: MathML 28 Paralleler und gemischter Markup: Es ist notwendig beide Markup Varianten gleichzeitig zu verwenden, um das Layout eines mathematischen Ausdrucks kontrollieren zu können, aber dabei die semantische Bedeutung nicht zu verlieren. Der mathematische Ausdruck soll möglichst schön angezeigt werden, aber dabei muss der Inhalt für ein Programm noch immer verständlich bleiben. Das Element erlaubt dies. Mit dem bzw. Element (innerhalb von ) können noch zusätzliche Informationen gespeichert werden. Es ist auch möglich Presentation Markup im Content Markup zu verwenden und umgekehrt. Dies kann aber heikel sein. Man muss vieles beachten, damit der Code noch Sinn macht.

29 12.6.2002Seminar XML-Technologien: MathML 29 Beispiel: semantics <semantics> f ′ x <apply><diff/><bvar><ci>x</ci></bvar><apply> f f x x </apply></apply></annotation-xml></semantics>

30 12.6.2002Seminar XML-Technologien: MathML 30 Tools (1): Da MathML von XML stammt, ist es mühsam MathML von Hand zu schreiben. Der WebEQ Equation Editor ist ein graphischer Editor, der es einem Erlaubt einen mathematischen Ausdruck sowohl in Content als auch Presentation Markup zu exportieren.

31 12.6.2002Seminar XML-Technologien: MathML 31 Tools (2): WebEQ kann das MathML Dokument als Applet exportieren (natürlich auch als XML oder auch als Bild), so dass der mathematische Ausdruck in einem Applet generiert wird. Vorteil: Man braucht kein Browser der MathML unterstützt um den Ausdruck zu lesen. Beispiel Eine weitere Möglichkeit um ein MathML Dokument zu erstellen ist es, mit einem Programm wie Maple (nur mit Version 7 möglich) oder Mathematica den Ausdruck zu schreiben und dann als MathML zu exportieren.

32 12.6.2002Seminar XML-Technologien: MathML 32 Browser und Plug-ins Applets sind zwar Praktisch, da sie von jedem Browser unterstützt werden. Aber das ganze ist dafür ziemlich langsam und undynamisch. MathML wird noch nicht standardmässig von allen Browsern unterstützt. Es gibt aber Plug-ins für IE (ab Version 5.5), der sogenannte Mathplayer Beispiel Browser die MathML Presentation Markup schon unterstützen: –Netscape 7.0 –Mozilla –Amaya

33 12.6.2002Seminar XML-Technologien: MathML 33 Nützliche Links www.w3.org/Math : Die W3C Math Working Group Homepagewww.w3.org/Math www.w3.org/Math/implementations.html: Informationen zu Software für MathMLwww.w3.org/Math/implementations.html www.webeq.com/mathml/gitmml/: Ein gutes Tutorial für MathMLwww.webeq.com/mathml/gitmml/

34 12.6.2002Seminar XML-Technologien: MathML 34 Fazit: MathML ist ein gutes Beispiel dafür, wie man XML sinnvoll anwenden kann. Da es auf XML basiert, ist es einfach möglich MathML in andere Formate (wie TeX z.B.) umzuwandeln. MathML hat natürlich auch den Nachteil von XML, das der Code schnell ziemlich gross wird und sich entsprechend schnell Fehler reinschleichen. Ein Nachteil ist auch, dass es leider nur wenig Freeware gibt, um MathML Dokumente zu erzeugen. Damit MathML sinnvoll eingesetzt werden kann, ist es notwendig, dass alle Browser MathML standardmässig unterstützen. Was wahrscheinlich bald der Fall sein wird.


Herunterladen ppt "MathML Seminar XML-Technologien Von Primo Cirrincione."

Ähnliche Präsentationen


Google-Anzeigen