Bitte warten
Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.
Autor: Thomas Zastrow
Fach: Informatik - Allgemeines
Details
Tags: Beschreibungssprache, Textcorpora
Jahr: 2005
Seiten: 66
Note: 1,3
Literaturverzeichnis: ~ 23 Einträge
Sprache: Deutsch
Dateigröße: 391 KB
ISBN (E-Book): 978-3-638-35675-6
Zuerst wird ein allgemeiner Überblick über die momentan verfügbaren XML-Technologien gegeben: Von der Validierung von XML-Daten hin zu XML-Datenbanken und XML-Abfragesprachen (XPath, XQuery). Anschliessend wird die Problematik der Konvertierung von bestehenden Text-Corpora (relationale Datenbanken) in XML-annotierte Daten behandelt.
Textauszug (computergeneriert)
Universität Trier
Magisterarbeit
XML als Beschreibungssprache für Textcorpora
von
Thomas Zastrow
2005
Inhaltsverzeichnis
1. Einleitung ... 3
1.2 Schreibweisen ... 4
1.3 Verwendete Software ... 4
1.3.1 Java ... 4
1.3.2 Perl ... 4
2. Die „Extensible Markup Language“ (XML) ... 6
2.1 XML – ein offener Standard ... 6
2.2 XML - Syntax ... 7
2.3 Wohlgeformte und gültige XML-Dokumente ... 8
2.4 Die Document Type Definition (DTD) ... 9
2.5 Die DTD des TAZ-Corpus ... 10
2.6 XML-Schema ... 12
2.6.1 Das Instanz-Dokument ... 13
2.6.2 Das XML-Schema Dokument ... 13
2.6.2.1 Der Kopf des XML-Schemas ... 14
2.6.2.2 Elemente deklarieren ... 14
2.6.2.3 Attribute deklarieren ... 16
2.7 Weitere Ansätze zur Erzeugung gültiger XML-Dokumente ... 16
2.8 Unterstützung fremdsprachlicher Zeichensätze ... 17
3. Be- und Verarbeitung von XML-Daten ... 19
3.1 XML Parsen ... 19
3.1.1 XML-Parser für Perl ... 20
3.1.1.1 XML::Parser ... 20
3.1.1.2 Das Modul XML::Parser::PerlSax ... 21
3.1.1.3 Das Modul XML::DOM ... 21
3.1.2 XML-Parser für Java ... 23
3.1.2.1 SAX-Parser ... 23
3.1.2.2 DOM-Parser ... 24
3.2 XPath ... 25
3.2.1 Teilbäume identifizieren ... 25
3.2.2 Attribute berücksichtigen ... 26
3.2.3 Der Inhalt eines Elements ... 26
3.2.4 Weitere Operatoren und Berechnungen ... 28
3.2.5 XPath-Beispiele anhand des TAZ-Corpus ... 28
3.3 XQuery ... 29
3.3.1 FOR, LET, WHERE und RETURN ... 30
3.3.2 Weitere Konstrukte ... 31
3.4 XUpdate ... 32
3.4.1 Elemente einfügen ... 32
3.4.2 Elemente anfügen ... 33
3.4.3 Elemente aktualisieren ... 33
3.4.4 Elemente löschen ... 33
3.4.5 Elemente umbenennen ... 33
3.5 Externe Datenquellen in XML-Daten integrieren ... 34
3.5.1 XLink ... 34
3.5.2 XPointer ... 34
3.5.3 XInclude ... 35
3.5.3.1 TAZ-Corpus: Meta-Daten mittels XInclude auslagern ... 36
3.6 Webservices ... 37
3.6.1 SOAP ... 37
3.6.2 XML-RPC ... 37
3.6.2.1 XML-RPC: Server-Implementierung ... 37
3.6.2.2 XML-RPC: Client-Implementierung ... 38
3.7 XML-Daten transformieren ... 38
3.7.1 XML-Daten mit CSS formatieren ... 39
3.7.2 XSLT ... 39
3.7.2.1 XSLT-Prozessoren ... 39
3.7.2.2 Grundlegende Syntax-Elemente ... 40
3.7.2.3 Abfragen ... 41
3.7.2.4 Weitere XSLT-Funktionen ... 42
3.7.2.5 Formatting Objects (XSL-FO ... 43
3.7.2.6 XSLT-Beispiel anhand des TAZ-Corpus ... 44
4. Weitere Spezifikationen des W3C ... 46
4.1 XML-Elemente mit xml:id indizieren ... 46
4.2 Binären Daten Media-Typen zuweisen ... 46
4.3 SMIL - Synchronized Multimedia Integration Language ... 47
4.4 Scalable Vector Graphics ... 47
4.4.1 Grundlegende SVG-Elemente ... 48
4.4.2 Weitere SVG-Elemente ... 50
4.4.3 Transformationen ... 50
5. XML-Datenbanken ... 51
5.1 Das relationale Datenmodell versus XML ... 51
5.2 OpenSource XML-Datenbanken ... 51
5.3 Die XML-Datenbank eXist ... 53
5.3.1 Installation von eXist ... 53
5.3.2 XML-Workflow in eXist ... 53
5.3.3 Das TAZ-Corpus in der eXist-Datenbank ... 54
5.3.4 Deutsch-Englisches Wörterbuch ... 54
5.4 Beipielanwendung (Perl): Validieren des Zipfschen Gesetzes anhand des TAZ-Corpus ... 55
5.4.1 Programmlauf ... 56
6. Weitere Tools zum Bearbeiten von XML-Daten ... 58
6.1 XML-Editoren ... 58
6.1.1 Kommerzielle Produkte ... 58
6.1.2 OpenSource-Produkte ... 59
6.1.3 Übersicht ... 59
6.2 Weitere Perl-Module zur Verarbeitung von XML-Daten ... 59
6.2.1 XML::Simple ... 59
6.2.2 XML::XPath ... 60
7. XML-Bearbeitung in weiteren Programmiersprachen ... 61
8. Schlussbemerkungen ... 62
Quellenangaben ... 64
Literaturangaben ... 64
WWW-Adressen ... 64
1. Einleitung
Seitdem es elektronisch gespeicherte Daten gibt, existiert das Problem der unterschiedlichen Datenformate: Die Frage nach der Art und Weise, wie die Daten gespeichert werden.
Programme unterschiedlicher Hersteller, die alle einem ähnlichen Zweck dienen, benutzen dennoch zueinander nicht kompatible Datenformate. So kann es vorkommen, dass eine Textverarbeitung die Dokumente einer anderen Textverarbeitung nicht oder nur mehr schlecht als recht lesen kann. Ältere Dokumente können nicht mehr verarbeitet werden, wenn es die sie erzeugenden Programme nicht mehr gibt oder diese auf aktuellen Computer-Plattformen nicht mehr laufen. Verschärfend kommt hinzu, dass auch die verwendeten Speichermedien einer rasanten Entwicklung unterliegen – heute noch auf dem aktuellsten Stand der Technik, in wenigen Jahren schon wieder veraltet und mit den dann gängigen Geräten nicht mehr lesbar.
Liesse sich letzteres Problem noch durch das ständige Umkopieren auf neue Datenträger lösen, so bleibt doch weiterhin das Problem der verschiedenen Datenformate bestehen.
In der Quantitativen Linguistik werden grosse Datenbestände in Form von Text-Corpora benötigt. Diese liegen zumeist als ASCII-Dateien1 vor: In dieser Form sind sie zumindest für Menschen direkt lesbar. Allerdings enthalten die Corpora unterschiedlichste linguistische Informationen und sind dementsprechend unterschiedlich strukturiert. In der Praxis bedeutet dies dass Programme, Schnittstellen etc., die für das eine Corpus erstellt wurden, nur mit erheblichen Anpassungs- Aufwand auf andere Corpora angewandt werden können.
In dieser Arbeit soll versucht werden aufzuzeigen, dass es eine Alternative gibt: Mittels der „Extensible Markup Language“, kurz XML, liesse sich ein einheitlicher Workflow für die verschiedensten Corpora erstellen.
1.2 Schreibweisen
Für den Fliesstext in dieser Arbeit wird die Schriftart Times New Roman in 12 pt Schriftgrösse benutzt. Davon unterscheiden sich Beispiele und Auszüge in Programmiercode oder XML durch die Schriftart Courier New.
Blöcke von Beispielcode werden zusätzlich eingerückt:
<?xml version=“1.0“ ?>
<ausgabe>
Hallo Welt!
</ausgabe>
Auf der dieser Arbeit beiliegenden CD befindlichen Dateien verweist ein Ordner-Symbol in der entsprechenden Fussnote:
Sofern keine weiteren Angaben folgen bzw. das Kapitel endet beziehen sich alle folgenden Code-Beispiele auf diese Datei.
1.3 Verwendete Software
Alle in dieser Arbeit beschriebenen Programme wurden unter Suse Linux 9.1 Personal Edition erstellt2. Um diese kompilieren zu können, sind in fast jedem Fall weitere Software, die nicht im Umfang der Suse-Distribution enthalten ist, notwendig.
Die benutzten Module, Bibliotheken etc. liegen ausschliesslich als OpenSource bzw. zumindest kostenloser Software vor. Abhängig vom Installations-Umfang sind auf anderen Linux-/Unix-Distributionen u.U. schon einige vorhanden, andere müssen nachinstalliert werden.
Prinzipiell steht auch einer Installation unter Windows nichts im Wege.
1.3.1 Java
Um die bereits kompilierten Java-Klassen der beschriebenen Programme auszuführen, genügt ein installiertes „Java Runtime Environment (JRE)“3. Zum erneuten Kompilieren ist das „Java Development Kit (JDK)“ notwendig4.
Java sollte mindestens in der Version 1.4 vorliegen.
1.3.2 Perl
Auf dem Referenz-System befand sich die Perl-Version 5.8.3. Die verwendeten Perl-Module befinden sich alle auf dem „Comprehensive Perl Archive Network CPAN)“5 und können von dort heruntergeladen und installiert werden.
Die meisten Unix-Distributionen enthalten bereits ein installiertes Perl. Wenn nicht, kann es ebenfalls vom CPAN bezogen werden6.
Unter Windows bietet sich die ActivePerl-Distribution von ActiveState7 an. Hierbei handelt es sich um ein fertig kompiliertes Perl, welches bereits zahlreiche nützliche Module enthält.
2. Die „Extensible Markup Language“ (XML)
2.1 XML – ein offener Standard
Am 10. Februar 1998 veröffentlichte das „Worl Wide Web Consortium8“ (kurz: W3C) die Version 1.0 seines Vorschlags zu einer „Extensible Markup Language“9. In der Zusammenfassung heisst es:
Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML.
[....]
1 Zur Geschichte der ASCII-Definition: http://de.wikipedia.org/wiki/ASCII
2 ftp.suse.com/pub/suse/i386/9.1-personal-iso
3 http://www.java.com:80/en/download/manual.jsp
4 http://java.sun.com/j2se/1.5.0/download.jsp
5 http://www.cpan.org
6 http://www.cpan.org/src/README.html
7 http://www.activestate.com/Products/ActivePerl/
Kommentare
Dieser Text kann über folgende URL aufgerufen und zitiert werden: