Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009."—  Präsentation transkript:

1 Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009

2 2 XML Informationsdarstellung mit XML Information und ihre Darstellung XML-Dokumente XML-Dokumenttypen Festlegung von Sprachen XML-basierte Sprachen XML-Dokumente und das Document Object Model Verarbeitung von Sprachen XML im Informatikunterricht

3 3 Teil 1 Information und ihre Darstellung

4 4 Einstieg - Telefon Bedienungsanleitung: benutzt die Alltagssprache und eine bildliche Darstellung von Information Entwurfsmodellierung: benutzt eine Diagrammsprache (Zustandsdiagramm) zur Darstellung von Information Zustandsdiagramm

5 5 Einstieg - Telefon [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config]... [Color]... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1=... Werkzeug Charon z. Erzeugung von Zustandsd. Quelltext Speicherformat: benutzt eine spezielle "Daten-Sprache" zur Darstellung von Information

6 6 Einstieg - Telefon fa Ruhezustand Rufnummer eingeben Einwählen... Werkzeug JFlap Quelltext

7 7 Fachkonzept - Datenformat [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config]... [Color]... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1=... Datenformat Ein Datenformat ist eine Daten-Sprache, die zur computergerechten Darstellung von Information benutzt wird.

8 8 Fachkonzept - Datenformat [Main] Anzahl der Zustände=4 Existiert Start=1 Anzahl Alphabet=4 Zeichen1=Zifferblock Zeichen2=Abheben Zeichen3=Abheben lang Zeichen4=Auflegen [Config]... [Color]... [Zustand1] Name=Ruhezustand Nummer=1 x-Koord=77 y-Koord=249 Typ=0 Typname=Start Kommentar1= AkENTRY1= AkDO1=... Viele Software-Entwickler erfinden eine eigene - also proprietäre - Sprache, in der die zu verwaltenden Daten beschrieben und gespeichert werden. Die Entwicklung geht heute eher dahin, Standards bei der Konzeption von Datenformaten zu nutzen. Standards erleichtern den Austausch von Daten. Auch bei der Entwicklung selbst ergeben sich oft viele Vorteile: Für Standards betreffende Aufgaben gibt es oft schon fertige Lösungen, die man direkt übernehmen kann. fa Ruhezustand... proprietäres Datenformat Standard- basiertes Datenformat

9 9 Fachkonzept - XML als Standard XML steht für Extensible Markup Language und ist eine Sprache zur Festlegung von Auszeichnungssprachen (Das sind Sprachen um Information strukturiert in Form von Daten und einer Auszeichnung von Daten darzustellen. Auszeichnungen geben dabei Hinweise, wie die Daten zu verarbeiten sind.). XML ist also eine Meta-Sprache, mit deren Hilfe neue Sprachen entwickelt werden können. XML wird inzwischen so viel genutzt, dass es als Standard bei der Entwicklung neuer Datenformate angesehen werden kann. fa Ruhezustand... Auszeichnung mit Tags Daten

10 10 Übungen (siehe Bearbeiten Sie eine Aufgabe des Abschnitt "Darstellung von Information - Übungen".

11 11 Teil 2 XML-Dokumente

12 12 Einstieg - The Beatles The Beatles were a rock and pop band from Liverpool, England that formed in During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend-setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle:

13 13 Einstieg - The Beatles Beatles Lennon John Gesang Rhytmusgitarre Tasteninstrumente Mundharmonika McCartney Paul Analysieren Sie das folgende XML- Dokument zur Beschreibung einer Band - hier der Beatles. Welche Information wird hier dargestellt? Wie ist das XML-Dokument zur Darstellung der Information aufgebaut?

14 14 Exkurs - XML-Dokumente Beatles Lennon John Gesang Rhytmusgitarre Tasteninstrumente Mundharmonika McCartney Paul The Beatles were a rock and pop band from Liverpool, England that formed in During their career, the group primarily consisted of John Lennon (rhythm guitar, vocals), Paul McCartney (bass guitar, vocals), George Harrison (lead guitar, vocals) and Ringo Starr (drums, vocals). Although their initial musical style was rooted in 1950s rock and roll and skiffle, the group worked with different musical genres, ranging from Tin Pan Alley to psychedelic rock. Their clothes, style and statements made them trend- setters, while their growing social awareness saw their influence extend into the social and cultural revolutions of the 1960s. After the band broke up in 1970, all four members embarked upon successful solo careers. Quelle: XML-Dokumente werden benutzt, um Information strukturiert darzustellen.

15 15 Exkurs - XML-Dokumente Die Strukturierung erfolgt in Form eines Baumes. Beatles Lennon John Gesang Rhytmusgitarre Tasteninstrumente Mundharmonika McCartney Paul Anzeige mit einem Browser Darstellung im Editor

16 16 Exkurs - XML-Dokumente Grundbausteine eines XML- Dokuments sind die XML- Elemente. Ein (XML-) Element wird mit Hilfe von Tags (Anfangs- und Endtag) markiert. Ein Element kann selbst wieder Elemente enthalten (Container) oder nur noch Zeichen (eigentliche Daten) oder beides (gemischter Inhalt) oder auch gar nichts (leeres Element). Das erste Element eines XML-Dokuments ist das Wurzelelement, das alle anderen Elemente in sich einschließt. Wurzelelement Element mit Zeicheninhalt Element als Container leeres Element

17 17 Exkurs - XML-Dokumente Mit Hilfe von Tags werden die verschiedenen Elemente begrenzt. Verschiedene Tags markieren dabei unterschiedliche Elementtypen. Tags werden (wie bei HTML) mit spitzen Klammern gebildet. Die Tag-Namen sind (fast) frei wählbar. Anfangs- und Endtag müssen immer exakt zueinander passen. Dabei wird auf Groß- und Kleinschreibung geachtet. Tags müssen korrekte geschachtelt werden. Bei einem leeren Element wird i. d. Regel eine verkürzte Tag-Schreibweise benutzt. Anfangstag Endtag

18 18 Exkurs - XML-Dokumente Elemente können mit Hilfe von Attributen näher beschrieben werden. Attribute können dabei zusätzliche Informationen über den Inhalt eines Elements liefern, ohne selbst Teil des Inhalts zu sein. Jedem Attribut muss ein bestimmter Wert zugewiesen werden, der in Anführungszeichen geschrieben wird. Attribut Attributwert

19 19 Exkurs - XML-Dokumente Ein XML-Dokument beginnt in der Regel mit dem Prolog. Der Prolog kennzeichnet das Dokument als XML-Dokument. Im Prolog kann der Zeichensatz festgelegt werden, der zur Kodierung benutzt wird. Fehlt die Angabe des Zeichensatzes, so wird utf-8 als Vorgabe benutzt. Wenn deutsche Umlaute korrekt dargestellt werden sollen, sollte man den Zeichensatz iso verwenden. Beatles Lennon John Gesang Rhytmusgitarre Tasteninstrumente Mundharmonika McCartney Paul Kommentare erleichtern das Verständnis und werden vom Browser mit angezeigt. Kommentar

20 20 Übungen (siehe Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumente - Übungen".

21 21 Teil 3 XML-Dokumenttypen

22 22 Einstieg - Fehler im XML-Dokument fa Ruhezustand Rufnummer eingeben Einwählen Wählen... fa Ruhezustand Auflegen 3 0 Auflegen

23 23 fa Ruhezustand Rufnummer eingeben Einwählen fa Ruhezustand Auflegen 3 0 Auflegen... Exkurs - wohlgeformte XML-Dokumente Ein XML-Dokument, das alle syntaktischen Bedingungen von XML erfüllt, heißt wohlgeformt. Anfangstag Endtag? nicht wohlgeformt wohlgeformt

24 24 fa Ruhezustand Auflegen 3 0 Auflegen... Exkurs - gültige XML-Dokumente keine gültige Tag-Struktur wohlgeformt JFlap kann das XML-Dokument nicht verarbeiten, da es nicht die erforderliche Struktur hat.

25 25 fa Ruhezustand Auflegen 3 0 Auflegen... Exkurs - gültige XML-Dokumente wohlgeformt keine gültige Tag-Struktur DTD in automat.dtd Eine Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest.

26 26 fa Ruhezustand Auflegen... Exkurs - gültige XML-Dokumente gültig / valide DTD in automat.dtd Ein XML-Dokument, das alle Festlegungen einer DTD erfüllt, heißt gültig bzw. valide bzgl. dieser DTD.

27 27 Exkurs - gültige XML-Dokumente Man kann die Gültigkeit eines XML-Dokuments mit Hilfe spezieller Validierer überprüfen lassen. Ein XML-Validierer / XML-Parser ist ein Programm, das überprüft, ob das XML-Dokument die von der angegebenen DTD geforderte Struktur hat.

28 28 Exkurs - Dokumenttypdefinitionen DTD in automat.dtd Eine Dokumenttypdefinition beschreibt den Aufbau eines XML-Dokuments aus Elementen sowie die Attributstruktur der Elemente. Das Wurzelelement hat den Namen "structure". Ein Element vom Typ "structure" besteht aus einem Element vom Typ "type" gefolgt von einem Element vom Typ "automaton". Ein Element vom Typ "type" besteht aus Zeichen (parsed character data). Ein Element vom Typ "automaton" besteht aus beliebig vielen Elementen vom Typ "state" gefolgt von beliebig vielen Elementen vom Typ "transition". Ein Element vom Typ "state" besteht aus einem Element vom Typ "x" gefolgt von einem Element vom Typ "y" gefolgt von optionalen Elementen vom Typ "label" und "initial". Ein Element vom Typ "state" hat die Attribute "id" und "name", die beide nicht weggelassen werden können und deren Werte Zeichenketten sind. Ein Element vom Typ "transition" besteht aus einem Element vom Typ "from" gefolgt von einem Element vom Typ "to" gefolgt von einem Elementen vom Typ "read".... Ein Element vom Typ "initial" ist ein leeres Element....

29 29 Exkurs - Dokumenttypdefinitionen Elementtyp-Deklaration OperatorBedeutung ()Bildung von Elementgruppen,Trennzeichen innerhalb einer Sequenz von Elementen |Trennzeichen zwischen sich ausschließenden Alternativen *Element(gruppe) kann beliebig oft (auch gar nicht) vorkommen +Element(gruppe) muss mindestens einmal, kann mehrfach vorkommen ?Element(gruppe) kann einmal oder kein mal vorkommen

30 30 Exkurs - Dokumenttypdefinitionen InhaltsmodellBeschreibung ElementinhaltDas Element enthält ausschließlich Unterelemente. #PCDATADas Element enthält nur Zeichendaten. gemischter InhaltDas Element kann Zeichendaten und Unterelemente enthalten EMPTYDas Element hat keinen Inhalt. Frau Christiane Meier fa ANYDas Element kann beliebige Inhalte haben.

31 31 Exkurs - Dokumenttypdefinitionen Attributlisten-Deklaration CDATA: nur einfache Zeichenketten erlaubt, keine Tags... #REQUIRED: Attributwert muss in jeder Elementinstanz vorkommen #IMPLIED: Attributwert kann optional in einer Elementinstanz vorkommen...

32 32 Einbindung einer DTD interne DTD Eine Dokumenttypdefinition kann direkt in das XML-Dokument nach dem XML- Prolog eingebunden werden (interne DTD). Eine Dokumenttypdefinition kann auch über eine Referenz auf eine Datei mit dem XML-Dokument verbunden werden (externe DTD). Mit dem Schlüsselwort PUBLIC wird auf eine veröffentlichte DTD verwiesen. Als Name der DTD wird der Name d. Wurzelelement benutzt. ... externe DTD

33 33 Übungen (siehe Bearbeiten Sie Aufgabe 1 und eine der Aufgaben 2, 3, 4 des Abschnitt "XML-Dokumenttypen - Übungen".

34 34 Miniprojekt: MyXHTML Ziel ist es, eine DTD für eine vereinfachte Version von XHTML - kurz MyXHTML - selbst zu entwickeln. Das folgende XHTML-Dokument soll dabei als gültig bzgl. dieser DTD validiert werden. Da es sich hier um eine komplexere Aufgabe handelt, sollte man schrittweise vorgehen. Steckbrief von Bailey Steckbrief Ich heiße Bailey. Ich lebe in der Nähe von Kaiserslautern. Ich interessiere mich für Agility-Sport. Meine Lieblingsdisziplinen sind: Sprung durch einen Reifen Lauf über eine Wippe Slalomlauf zwischen Stangen Ich gehe jedes Wochenende zur Welpenschule.

35 35 Miniprojekt: MyXHTML Schritt 1: Zuerst soll nur die Grundstruktur eines XHTML-Dokuments betrachtet werden. Steckbrief von Bailey Steckbrief

36 36 Miniprojekt: MyXHTML Schritt 2: Ein XHTML-Dokument kann mehrere Überschriften 1. Ordnung enthalten. Innerhalb einer Überschrift können bestimmte Zeichenketten auch hervorgehoben werden. Steckbrief von Bailey Steckbrief Führen Sie die gezeigten Schritte durch. Wenn alles soweit geklappt hat, dann erweitern Sie Schritt für Schritt das XML-Dokument und die zugehörige DTD.

37 37 Ausblick: XML-Schema b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1 Schach-Spielzustand - Version 1: Strukturbeschreibung mit einer DTD

38 38 b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f5 f1 f7 g1 Ausblick: XML-Schema Nachteile von DTD: zu unflexibel Strukturbeschreibung mit einer DTD nur bestimmte Feldbezeichner erlaubt mögliche Anzahl der Bauern: 0..8

39 39 Ausblick: XML-Schema b7 e7 d6 b5 f4 c6 e5 c4 d7 h5 f2 g2 f1 f5 f7 g1 Schach-Spielzustand - Version 2: Strukturbeschreibung mit einem XML-Schema xsi: XML-schema-instance

40 40 Ausblick: XML-Schema Spielbrett während eines Schachspiels Schach-Spielzustand - Version 2: Schema-Definition mit e. XML-basierten Sprache

41 41 Ausblick: XML-Schema Validierung: z. B. mit

42 42 Ausblick: XML-Schema "XML Schema ist eine Empfehlung des W3C zum Definieren von XML-Dokumentstrukturen. Anders als bei den klassischen XML-DTDs wird die Struktur in Form eines XML-Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt. XML Schema ist eine komplexe Schemasprache zur Beschreibung eines XML-Typsystems. Dieses XML-Typsystem umfasst die Spezifikation neuer XML-Elemente, deren Attribute, sowie deren Kindelemente. Im Gegensatz zu DTDs kann bei Verwendung von XML Schema zwischen dem Namen des XML-Typs und dem in der Instanz verwendeten XML-Tagnamen unterschieden werden. Vermutlich werden DTDs irgendwann vollständig von XML-Schemata abgelöst. Allerdings sind XML-Schemata durch ihre erweiterten Möglichkeiten wesentlich komplexer und nicht so einfach ohne Hilfsmittel auszuwerten.... Ein konkretes XML-Schema wird auch als eine XSD (XML- Schema-Definition) bezeichnet und hat üblicherweise die Dateiendung ".xsd"." Quelle:

43 43 Teil 4 Festlegung von Sprachen

44 44 Einstieg - Probleme mit der Bedeutung Was beschreiben XML-Dokumente, die gültig bzgl. der DTD kr sind? Was beschreiben XML-Dokumente, die gültig bzgl. der DTD hundeschule sind?

45 45 Einstieg - Probleme mit der Bedeutung Was beschreiben XML-Dokumente, die gültig bzgl. der DTD html in "myxhtml.dtd" sind? Steckbrief von Bailey Steckbrief Ich heiße Bailey. Ich

46 46 Fachkonzept - Sprache Die Lexik einer Sprache beschreibt den Wortschatz einer Sprache, d.h. die Gesamtheit der Wörter der Sprache, die als Grundbausteine zur Verfügung stehen. Die Syntax einer Sprache beschreibt den Satzbau einer Sprache, d.h. wie aus Wörtern Sätze gebildet werden können. Üblicherweise wird sie durch eine Grammatik festgelegt. Die Semantik einer Sprache beschreibt die Beziehung zwischen Sprachelementen und ihrer Bedeutung. Pia fährt Rad.Paul hört Musik. PiafährtRadPaulhörtMusik Pia Musik Paul.hört Paul fährt. Pia fährt Musik.Rad hört Paul.

47 47 Fachkonzept - Sprache XML-Elemente:...,...,... gültige XML-Dokumente bzgl. DTD, z.B.: Lexik Syntax Semantik? XML erlaubt es, neue Sprachen für bestimmte Problembereiche zu entwickeln. Eine XML-Dokumenttypdefinition legt die Lexik und Syntax einer Sprache fest. Die Sprache zu eine Dokumenttypdefinition besteht aus allen XML-Dokumenten, die gültig bzgl. der Dokumenttypdefinition sind.

48 48 Fachkonzept - Sprache Die Elemente der Sprache MyXHTML heißen zwar genau so wie die der Sprache XHTML, die Bedeutung überträgt sich damit aber nicht automatisch. Für den Browser handelt es sich also nicht um ein interpretierbares XHTML- Dokument (das als Webseite dargestellt wird), sondern um ein XML-Dokument ohne spezielle Bedeutung. Eine XML-Dokumenttypdefinition legt also nicht die Semantik der Sprache fest. Diese muss zusätzlich festgelegt werden, z.B. durch ein Anwendungsprogramm. Steckbrief von Bailey Steckbrief Ich heiße Bailey. Ich......

49 49 Teil 5 XML-basierte Sprachen

50 50 Einstieg - SVG P Informatikstudium in RLP KL - KO - MZ - TR SVG PPM PixelgrafikVektorgrafik

51 51 Fachkonzept - Vektorgrafik Objekte bilden die Grundlage von Vektorgrafiken. Eine Vektorgrafik setzt sich aus geometrischen Objekten zusammen. Objektdiagramm

52 52 Fachkonzept - Vektorgrafik Informatikstudium in RLP KL - KO - MZ - TR SVG steht für Scalable Vector Graphics. SVG ist eine Sprache, mit der man die Objekte einer Vektorgrafik beschreiben kann. SVG-Quelltext

53 53 Fachkonzept - Vektorgrafik Informatikstudium in RLP KL - KO - MZ - TR Ein SVG-Dokument kann mit einem Texteditor erstellt und dann von einem neueren Browser angezeigt werden. Man muss hierzu nur das SVG- Dokument in einer Datei mit der Erweiterung.svg abspeichern und diese Datei mit dem Browser laden. SVG-Quelltext Einfacher geht es mit speziellen Vektorgrafikprogrammen wie Inkscape. Diese können SVG-Dokumente nicht nur anzeigen, sondern auch automatisch erstellen. SVG: siehe auch

54 54 Einstieg - WML Hausaufgaben in Mathematik Deutsch Englisch Seite 45 Aufgabe 3 Zurück zur Startseite heute keine Zurück zur Startseite... Hausaufgaben auf dem Handy!

55 55 Fachkonzept - Emulator Ein Emulator ist ein System, das ein anderes System simuliert. Es weist dasselbe Verhalten auf, kann aber dieses Verhalten mit völlig anderen Mitteln erzeugen. Zum Testen von WML-Seiten ist es günstig, Programme zu benutzen, die die Anzeige auf einem Handy-Display simulieren. Man nennt solche Programme WML-Browser- Emulatoren.

56 56 Exkurs - WML Hausaufgaben in Mathematik Deutsch Englisch Seite 45 Aufgabe 3 Zurück zur Startseite heute keine Zurück zur Startseite... "Wireless Markup Language (WML) ist eine XML-basierte Seitenbeschreibungssprache, die eine stark reduzierte Fassung von XHTML darstellt. Sie ist Teil des Wireless Application Protocol (WAP) und zur Darstellung veränderlicher Inhalte auf Mobiltelefonen entwickelt worden." (wikipedia) WML: siehe auch

57 57 Exkurs - MathML a 2 + b 2 = c 2 MathML steht für Mathematical Markup Language. MathML ist eine Sprache, mit der man mathematische Ausdrücke beschreiben kann.

58 58 Einstieg - XHTML+MathML+SVG Pythagoras Satz des Pythagoras In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:... Die folgende Zeichnung verdeutlicht diesen Zusammenhang. Webseite mit integrierten XML-Sprachen

59 59 Einstieg - XHTML+MathML+SVG Satz des Pythagoras In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:... Die folgende Zeichnung verdeutlicht diesen Zusammenhang. Mischung aus XML- Sprachen

60 60 Exkurs - Namensraum Satz des Pythagoras In einem rechtwinkligen Dreieck mit den Katheten a und b sowie der Hypothenuse c gilt:... Die folgende Zeichnung verdeutlicht diesen Zusammenhang. Ein Namensraum ist eine Ansammlung von Namen für Elemente und Attribute. Ein veröffentlichter Namensraum muss mit einem weltweit eindeutigen Namen versehen werden. Dieser Identifikator wird in einer Namensraumdeklaration angegeben. Namensräume

61 61 Teil 6 XML-Dokumente und das Document Object Model

62 62 Einstieg - Erkundung des DOM-Baumes DOM-Baum DOM-Baum

63 63 Einstieg - Erkundung des DOM-Baumes DOM-Baum Erkunden Sie mit dem Python-Programm "dombaum.pyw" die Baumstruktur eines XML- Dokuments. Versuchen Sie, alle Knoten des Baumes mit Hilfe der die Operationen parentNode, previousSibling, nextSibling, firstChild, lastChild zu besuchen.

64 64 Einstieg - Erkundung des DOM-Baumes DOM-Baum Das Python-Programm zeigt, wie man aus einem XML-Quelltext einen DOM-Baum erzeugt und wie man mit Hilfe von Operationen im DOM-Baum navigiert. Testen und ergänzen Sie das Python-Programm. # -*- coding: iso *- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """ """ document = parseString(xml_quelltext) # Navigation im DOM-Baum aktuellerKnoten = document print aktuellerKnoten.nodeName aktuellerKnoten = aktuellerKnoten.firstChild print aktuellerKnoten.nodeName aktuellerKnoten = aktuellerKnoten.firstChild print aktuellerKnoten.nodeName aktuellerKnoten = aktuellerKnoten.nextSibling print aktuellerKnoten.nodeName #...

65 65 # -*- coding: iso *- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """ """ document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc k = k.firstChild # kr k = k.firstChild # mi k = k.firstChild # x k = k.firstChild # #text x = int(k.nodeValue) k = k.parentNode # x k = k.nextSibling # y k = k.firstChild # #text y = int(k.nodeValue) return (x, y) # Test print mittelpunkt(document) Einstieg - Erkundung des DOM-Baumes DOM-Baum Das folgende Python- Programm zeigt, wie man einen DOM-Baum verarbeitet. Testen Sie das Python- Programm. Was berechnet die Funktion mittelpunkt? Entwickeln Sie analog eine Funktion radius.

66 66 # -*- coding: iso *- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """ """ document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): #... wie bisher... return (x, y) # Test print mittelpunkt(document) Einstieg - Erkundung des DOM-Baumes DOM-Baum Wir ändern den XML-Quelltext geringfügig ab, indem wir Zeilenumbrüche und Leerzeichen integrieren. Wie wirkt sich dies auf den DOM-Baum aus? Welche Konsequenzen ergeben sich für die Funktion mittelpunkt?

67 67 # -*- coding: iso *- from xml.dom.minidom import * # Quelltext in einen DOM-Baum umwandeln xml_quelltext = """ """ document = parseString(xml_quelltext) # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc xKnoten = k.getElementsByTagName("x") x = xKnoten[0].firstChild.nodeValue yKnoten = k.getElementsByTagName("y") y = yKnoten[0].firstChild.nodeValue return (x, y) # Test print mittelpunkt(document) Einstieg - Erkundung des DOM-Baumes DOM-Baum Teste diese Implementierung der Funktion mittelpunkt mit verschieden formatierten XML- Dokumenten (ohne / mit Zeilenümbrüche etc.). Welchen Vorteil hat es, die Operation getElementsByTa gName zu benutzen? Implementieren Sie analog die Funktion radius.

68 68 Exkurs - Das Document Object Model DOM-Baum Das Document Object Model (DOM) ist eine standardisierte Spezifikation einer Schnittstelle für den Zugriff auf XML-Dokumente. Die Grundidee des DOM besteht darin, ein XML-Dokument in Baumform mit Hilfe geeigneter Objekte zu repräsentieren. Um einen solchen Baum mit Hilfe von Objekten darzustellen, benötigt man einen geeigneten Satz von Klassen zusammen mit deren Methoden und Attributen. Dieser Satz von Klassen wird in der DOM-Spezifikation genau beschrieben und in einer DOM-Implementierung ausprogrammiert.

69 69 Exkurs - Das Document Object Model Die Basisklasse zur Realisierung eines DOM- Baumes ist die Klasse Node. Objekte dieser Klasse verfügen über geeignete Attribute, um einen Baum zu erstellen und um die Daten der XML-Elemente zu speichern. Node-Objekte DOM-Baum

70 70 Exkurs - Das Document Object Model Die Basisklasse Node ist weiter spezialisiert zu den Klassen Document (zur Verwaltung des gesamten XML-Dokuments), Element (zur Verwaltung von XML- Elementen) und Text (zur Verwaltung von Textpassagen). Diese abgeleiteten Klassen stellen zusätzliche Attribute und Methoden zur Verwaltung und Verarbeitung eines DOM-Baumes zur Verfügung.

71 71 Exkurs - Das Document Object Model Mit Hilfe der Operationen dieser Klassen lässt sich die Verarbeitung eines DOM-Baumes recht einfach realisieren. # Verarbeitung eines DOM-Baumes def mittelpunkt(doc): k = doc xKnoten = k.getElementsByTagName("x") x = int(xKnoten[0].firstChild.data) yKnoten = k.getElementsByTagName("y") y = int(yKnoten[0].firstChild.data) return (x, y) # Test print mittelpunkt(document)

72 72 Miniprojekt - Automatensimulator Ziel ist es, einen von JFlap erzeugten XML-Quelltext zur Beschreibung eines endlichen Automaten mit Hilfe eines selbst entwickelten Automatensimulators zu verarbeiten. Dieser Simulator muss also XML-Quelltexte wie den folgenden verarbeiten können. fa b...

73 73 Miniprojekt - Automatensimulator Analysieren Sie zunächst den gezeigten Python-Quelltext. Was leistet die Funktion "anfangszustand"? Benutzen Sie die Datei " .jff" zum Testen. # -*- coding: iso *- from xml.dom.minidom import * # Anfangszustand def anfangszustand(baum): z = None k_initial_liste = baum.getElementsByTagName("initial") if k_initial_liste != []: k_state = k_initial_liste[0].parentNode z = k_state.getAttribute("id") return z # Einlesen des XML-Quelltextes f_xml = file(" .jff", "r") xml_quelltext = f_xml.read() # Initialisierung des DOM-Baums dombaum = parseString(xml_quelltext) wurzel = dombaum.documentElement # Test z = anfangszustand(wurzel) print z

74 74 Miniprojekt - Automatensimulator Entwickeln Sie analog die Funktionen "naechsterzustand" und "endzustand". # -*- coding: iso *- from xml.dom.minidom import * # Anfangszustand def anfangszustand(baum):... # nächster Zustand def naechsterzustand(baum, zustand, eingabe):... # Endzustand def endzustand(baum, zustand):...

75 75 Miniprojekt - Automatensimulator Testen Sie den entwickelten Automatensimulator.... # Einlesen des XML-Quelltextes f_xml = file(" .jff", "r") xml_quelltext = f_xml.read() # Initialisierung des DOM-Baums dombaum = parseString(xml_quelltext) wurzel = dombaum.documentElement # Test wort = z = anfangszustand(wurzel) print z for w in wort: z = naechsterzustand(wurzel, z, w) print z if endzustand(wurzel, z): print "akzeptiert" else: print "nicht akzeptiert"

76 76 Miniprojekt - Automatensimulator def naechsterzustand(baum, zustand, eingabe): z = None k_transition_liste = baum.getElementsByTagName("transition") for k in k_transition_liste: k_from_liste = k.getElementsByTagName("from") k_to_liste = k.getElementsByTagName("to") k_read_liste = k.getElementsByTagName("read") az = k_from_liste[0].firstChild.data zz = k_to_liste[0].firstChild.data e = k_read_liste[0].firstChild.data if (az == zustand) and (e == eingabe): z = zz return z # Endzustand def endzustand(baum, zustand): ez = False k_final_liste = baum.getElementsByTagName("final") for k in k_final_liste: if k.parentNode.getAttribute("id") == zustand: ez = True return ez

77 77 Teil 7 Verarbeitung von Sprachen

78 78 Einstieg - Verarbeitung von Grafik-Dok. grafik.xml Ziel ist es, XML-Grafik-Dokumente so zu verarbeiten, dass eine Grafik entsteht.

79 79 Einstieg - Verarbeitung von Grafik-Dok. rechteck.xml def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") breite_knoten = knoten.getElementsByTagName("breite") ecke_x = int(x_knoten[0].firstChild.data) ecke_y = int(y_knoten[0].firstChild.data) laenge = int(laenge_knoten[0].firstChild.data) breite = int(breite_knoten[0].firstChild.data) t.up() t.forward(ecke_x) t.left(90) t.forward(ecke_y) t.right(90) t.down() t.forward(laenge) t.left(90) t.forward(breite) t.left(90) t.forward(laenge) t.left(90) t.forward(breite) t.left(90) def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten)

80 80 Einstieg - Verarbeitung von Grafik-Dok. # -*- coding: iso *- from turtle import * t = Turtle() from xml.dom.minidom import * def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge")... def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten) # Test f_xml = file("grafik.xml", "r") xml_quelltext = f_xml.read() print xml_quelltext verarbeiten(xml_quelltext)

81 81 Fachkonzept - Interpreter Ein Interpreter ist ein Programm, das Sätze einer Sprache schrittweise ausführt (interpretiert). # -*- coding: iso *- from turtle import * t = Turtle() from xml.dom.minidom import * def verarbeiteRechteck(knoten): x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge")... def verarbeiten(quelltext): dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: verarbeiteRechteck(knoten)

82 82 Einstieg - Verarbeitung von Grafik-Dok. def verarbeiten(quelltext): svg_dokument = svg_prolog + svg_starttag dokument = parseString(quelltext) rechteck_knoten = dokument.getElementsByTagName("rechteck") for knoten in rechteck_knoten: x_knoten = knoten.getElementsByTagName("x") y_knoten = knoten.getElementsByTagName("y") laenge_knoten = knoten.getElementsByTagName("laenge") breite_knoten = knoten.getElementsByTagName("breite") if x_knoten != []: ecke_x = x_knoten[0].firstChild.data if y_knoten != []: ecke_y = y_knoten[0].firstChild.data if laenge_knoten != []: laenge = laenge_knoten[0].firstChild.data if breite_knoten != []: breite = breite_knoten[0].firstChild.data svg_rect = "" svg_dokument = svg_dokument + svg_rect svg_dokument = svg_dokument + svg_endtag return svg_dokument

83 83 Einstieg - Verarbeitung von Grafik-Dok. # -*- coding: iso *- from xml.dom.minidom import * # Konstanten svg_prolog = """ """ svg_starttag = """ """ svg_endtag = """ """ # Verarbeitung def verarbeiten(quelltext): # siehe... # Test f_xml = file("grafik.xml", "r") xml_quelltext = f_xml.read() svg_quelltext = verarbeiten(xml_quelltext) f_svg = file("grafik.svg", "w") f_svg.write(svg_quelltext) f_svg.close()

84 84 Fachkonzept - Compiler Ein Compiler ist ein Programm, das Sätze einer Sprache in eine andere Sprache übersetzt. grafik svg

85 85 Teil 8 XML im Informatikunterricht

86 86 Lehrplan für das Grundfach Informatik fundamentale Idee XML unterrichtliche Umsetzung Darstellung mit formalen Sprachen

87 87 Fundamentale Ideen fachliche Bedeutung Darstellung mit formalen Sprachen Vermittelbarkeit Eine fundamentale Idee bzgl. einer Gegenstandsbereichs ist ein Denk-, Handlungs-, Beschreibungs- oder Erklärungsschema, das in verschiedenen Gebieten des Bereichs vielfältig anwendbar oder erkennbar ist. (Horizontalkriterium) auf jedem intellektuellen Niveau aufgezeigt und vermittelt werden kann. (Vertikalkriterium) in der Entwicklung des Bereichs deutlich wahrnehmbar ist und längerfristig relevant bleibt. (Zeitkriterium) einen Bezug zu Sprache und Denken des Alltags und der Lebenswelt besitzt. (Sinnkriterium) Vermittelbarkeit fachliche Bedeutung Vgl.: Schubert / Schwill: Didaktik der Informatik, S. 86 ff Nach: J. S. Bruner: The Process of Education

88 88 Fachgegenstand Lerngegenstand Formale Sprachen Klasse 1: Anwendung auch außerhalb der Informatik (Bsp.: Problemlösestrategie) Klasse 2: Charakteristisch für alle Informatiksysteme (Bsp.: Komplexität) Klasse 3: Relevant für eine Klasse von Informatiksystemen (Bsp.: Datenstruktur) Klasse 4: Relevant für ein spezielles System (Bsp.: Syntax einer Programmiersprache) Je weiter oben / unten ein Fachgegenstand in der Klassifikation eingeordnet werden kann, desto eher / weniger eignet er sich als Lerngegenstand. Nach P. Hubwieser: Didaktik der Informatik, S. 83 ff Validierer XML ODF Inhaltliche Ausrichtung des Unterrichts an fundamentalen Fachkonzepten der Informatik

89 89 Problemorientierter Unterricht Gestaltung problemorientierter Lernumgebungen Situiert und anhand authentischer Probleme lernen: Lernen an aktuelle Probleme, authentische Fälle oder persönliche Erfahrungen anknüpfen. In multiplen Kontexten lernen: Gelerntes in unterschiedlichen Anwendungssituationen erproben. Unter multiplen Perspektiven lernen: Gelerntes unter verschiedenen Sichtweisen betrachten. In einem sozialen Kontext lernen: Probleme gemeinsam mit einem Partner oder in einer Gruppe bearbeiten.... Siehe: Hense, Mandl, Gräsel: Problemorientiertes Lernen. In. CuU 44/2001, S. 6ff. Orientierung an konkreten Problemstellungen bei der Gestaltung des Unterrichts.

90 90 Kompetenzorientierter Unterricht Kompetenz: notwendige Fähigkeiten und Fertigkeiten, in unterschiedlichen lebensweltlichen Situationen Probleme zu lösen und die Bereitschaft, dies zu tun Ein Schüler besitzt also dann Kompetenz, wenn er seine Fähigkeiten nutzen kann, auf vorhandenes Wissen zurückgreifen und sich auch neues Wissen beschaffen kann, zentrale Zusammenhänge des jeweiligen Faches versteht, angemessene Handlungsentscheidungen treffen kann, bei der Durchführung der Handlung auf verfügbare Fähigkeiten zurückgreift, diese Gelegenheiten zum Sammeln von Erfahrungen nutzt und aufgrund handlungsbegleitender Kognitionen genügend Motivation zu angemessenem Handeln hat. Siehe: LOGIN 154/155, S. 33 Kompetenzentwicklung erfordert handlungsorientierte Auseinandersetzung mit Fachkonzepten in geeigneten (speziellen) Kontexten Information zur Weiterverarbeitung in Informatiksystemen aufbereiten... (Grundfach-LP)

91 91 Thesen XML ist heute schon Standard bei der strukturierten Darstellung von Information und sollte daher im IU thematisiert werden. XML ist die Basis von XHTML (DOCTYPE...). Eine kurze Behandlung trägt zum vertieften Verständnis von XHTML bei. XML ist ein guter Ausgangspunkt zur Behandlung des Themas "formale Sprachen" (Grammatik, Parser,...). XML kann (im LK) als Ausgangspunkt zur Behandlung des Themas "Bäume" genutzt werden. Mit XML können fundamentale Ideen der Informatik mit sehr aktuellen Unterrichtsbeispielen (WML,...) behandelt werden ("IU am Puls der Zeit").

92 92 Literaturhinweise Folgende Materialien wurden hier benutzt: J.-C. Hanke: XML leicht & verständlich. KnowWare. H. Vonhoegen: Einstieg in XML. Galileo Computing G. Born: XML. Markt+Technik M. Näf: Einführung in XML. M. Jeckle: Vorlesung XML. XML in 10 Punkten: SELFHTML: Weitere benutzte Materialien sind auf den jeweiligen Folien zitiert.


Herunterladen ppt "Informationsdarstellung, Sprachbeschreibung, Sprachverarbeitung - mit XML - Klaus Becker 2009."

Ähnliche Präsentationen


Google-Anzeigen