Dieses Kapitel beschreibt eine getestete Anwendung, um die praktische Einsetzbarkeit von IP4W3 zu veranschaulichen und zu belegen. Meine Absicht ist es, hier einen Eindruck von dem laufenden Programmsystem zu geben, so weit das in gedruckter Form möglich ist.
Als Anwendungsfall verwende ich hier nicht das in der Einführung genannte und in Kapitel 6 detailliert beschriebene Material über Makroökonomie. Der Grund dafür ist, daß das Material zum gegenwärtigen Zeitpunkt noch in einem mangelhaften Zustand ist. In Kapitel 6 führe ich diesen Punkt etwas genauer aus. Obwohl die Qualität der zur Verfügung gestellten Texte nicht sehr gut ist, hinterlassen die Testläufe mit IP4W3 einen positiven Eindruck. Sichtbare Schwächen waren direkt auf in der Instanz fehlende Auszeichnungen zurückzuführen, so daß sich diese Anwendung eignet, um Erfahrungen über benötigte Auszeichnungen zu erlangen.
Im folgenden beschreibe ich die Anwendung von IP4W3 auf die deutsche Übersetzung der XML-Spezifikation [W3C98J]. Dieses Dokument ist aus mehreren Gründen besonders interessant:
Die folgenden Beschreibungen folgen den Schritten, die zur Integration der XML-Spezifikation in IP4W3 notwendig waren. Im Überblick waren dies:
Die Initialisierung dient dazu, die Verzeichnisstruktur für das neue Dokument anzulegen, damit für die nächsten Schritte definierte Verhältnisse vorliegen. Unterstützt wird der Administrator dabei von dem Programm ip4w3-manager, das ihm nicht nur die Arbeit erleichtern soll, sondern ihn auch anleiten soll (siehe Abbildung 6). Bei der hervorgehobenen Textstelle handelt es sich um die Antwort, die der Administrator auf die Frage von ip4w3-manager eingegeben hat. Das Verzeichnis /home/kimo-d/mintert/DA/web/dokumente/ip4w3 ist in diesem Fall das Installationsverzeichnis von IP4W3. Dokumente befinden sich im Unterverzeichnis /dokumente.

Abbildung 6: Die Initialisierung eines neuen Dokuments
In diesem Schritt ist als einzige Frage zu beantworten, welchen Dokumentbezeichner der Administrator für das neue Dokument vergeben möchte (hier »xmlspec«). Er dient als eindeutige Bezeichnung innerhalb von IP4W3.
Das Dokument für die deutsche XML-Spezifikation ist gemäß einer DTD für die Buchherstellung ausgezeichnet (vgl. [BEMI98]). Aufgrund des Umfangs der DTD werde ich sie hier nicht vorstellen. Sie ist auch nicht Teil meiner Diplomarbeit, sondern wurde (genau wie die Instanz) schon vor der Arbeit an IP4W3 von mir geschrieben. Gleiches gilt für das DSSSL-Stylesheet, das ich zur Umwandlung von Instanzen dieser DTD in HTML geschrieben habe. Es kommt in IP4W3 als DSSSL-Rumpf zum Einsatz. Der in HTML gewandelte Ausgangstext kann im Web unter der Adresse http://www.mintert.com/xml/trans/REC-xml-19980210-de.html eingesehen werden.
Die Definition der drei verwendeten Suchmuster besitzt in diesem Fall folgende Gestalt. Zur besseren Lesbarkeit habe ich die Datei unterteilt, um jedes Suchmuster einzeln beschreiben zu können.
<!DOCTYPE ip4w3project
PUBLIC "-//mintert.com//DTD IP4W3 Project 1.0//DE">
<ip4w3project>
<suchmuster id="def">
<element type="absatz">
<any>
<target-element type="def">
<beschreibung>Begriffsdefinitionen</beschreibung>
<form>
<textinput>
</form>
</target-element>
</any>
</element>
</suchmuster>Das Muster mit der ID »def« paßt zu allen Zielelementen des Typs def, die beliebig tief in einem absatz eingebettet sind. Für Definitionen im Fließtext wird also der umgebende Absatz als Atom benutzt.
<suchmuster id="keys">
<element type="absatz">
<any>
<target-element type="kbd">
<beschreibung>Schlüsselworte im Fließtext</beschreibung>
<form>
<textinput>
</form>
</target-element>
</any>
</element>
</suchmuster>Das Muster mit der ID »keys« paßt zu allen Zielelementen des Typs kbd, die beliebig tief in einem absatz eingebettet sind. Ein komplexeres Suchmuster ist das folgende:
<suchmuster id="prod">
<element type="table">
<attribute name="class" value="spec">
<any>
<element type="table">
<attribute name="class" value="prod">
<any>
<target-element type="td">
<beschreibung>XML-Syntaxregeln</beschreibung>
<form>
<textinput>
</form>
</target-element>
</any>
</element>
</any>
</element>
</suchmuster>
</ip4w3project>
Das Muster mit der ID »prod« paßt zu allen »Produktionsregeln der XML-Syntax«. Diese befinden sich innerhalb des Textes in verschachtelten Tabellen der unten dargestellten Form. Das Suchmuster berücksichtig die Tabellenstruktur.
Im folgenden Auszug aus dem Dokument korrespondieren die hervorgehobenen Stellen mit den entsprechenden Stellen im obigen Suchmuster. Daran ist zu erkennen, daß das Suchmuster den Dokumentausschnitt finden würde (wenn nach einem der Begriffe document, prolog, element oder Misc gesucht würde).
![]() | <table class="spec" rules="groups">
<tr>
<th>Dokument</th>
</tr>
<tr>
<td><table cols="4" class="prod">
<tr>
<td>[1]</td>
<td>document</td>
<td>::=</td>
<td>prolog element Misc*</td>
</tr>
</table>
</td>
</tr>
</table> |
Nachdem alle Dateien vom Administrator in das Dokumentverzeichnis kopiert wurden, liegt folgende Situation vor: Die Datei AWLINET.DTD enthält die DTD und die Datei awl2w3c.dsl das zugehörige DSSSL-Stylesheet für die Transformation in HTML. Beides war bereits vorhanden und mußte für diese Anwenung nicht neu geschrieben werden. Bei der Suchmusterdatei spec-suchmuster.sgml handelt es sich um die im vorhergehenden Abschnitt beschriebene Datei. Die Instanz xmlspec.sgml ist das Ausgangsdokument16.
Zur Aufnahme muß noch einmal ip4w3-manager aufgerufen werden ip4w3-manager neu (siehe Abbildung 7). Bei den hervorgehobenen Textstellen handelt es sich wieder um die Antworten, die der Administrator auf die Fragen von ip4w3-manager eingegeben hat. Abgesehen von einem Dokumenttitel muß er lediglich die Namen der zuvor genannten Dateien eingeben.

Abbildung 7: Die Anmeldung eines neuen Dokuments
Bereits der im letzten Schritt erreichte Zustand ist voll funktionsfähig. Im Dokumentenverzeichnis befinden sich nun zwei Dateien: index.html und formular.html. Es ist gängige Praxis, daß die Vorgabeseite für ein Verzeichnis index.html heißt. Wenn man nun mit einem Web-Browser auf das Dokument zugreift, so wird diese Seite ausgeliefert. Es handelt sich um den folgenden Frameset. Die Ansicht im Web-Browser zeigt Abbildung 8.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
<head>
<title>XML-Spezifikation</title>
</head>
<frameset rows="*,10%">
<frame name="hauptrahmen"
src="formular.html">
<frame name="steuerrahmen"
src="/ip4w3/lib/html/steuerung.html?xmlspec">
</frameset>
</html>
Abbildung 8: Die von IP4W3 erzeugte Webseite: etwas schmucklos, aber voll funktionsfähig. In der Adress-Zeile ist zu erkennen, daß der vom Administrator gewählte Dokumentbezeichner (»xmlspec«) in den URL eingeflossen ist.
Der obere Frame enthält nur ein HTML-Fragment, nämlich das »nackte« Suchformular17. Diese Datei sollte in eine HTML-Datei integriert werden, so daß Einstellungen wie Farben und Schriftarten manuell vorgenommen werden können. Für das Anwendungsbeispiel der XML-Spezifikation habe ich eine weitere HTML-Datei geschrieben, die das Formular einbindet (siehe Abbildung 9).

Abbildung 9: Das Suchformular nach der Modifikation
Der untere Frame enthält die Steuerung, die für alle Dokumente in IP4W3 identisch ist. Über einen Parameter erhält sie die Dokumenten-ID (das ist in obigem Listing zu sehen: ?xmlspec), um die Links korrekt zu erzeugen. Die Funktionsweise der Steuerung beschreibe ich im folgenden Abschnitt.
Für den Administrator ist damit die Arbeit erledigt. Er mußte lediglich die Suchmuster erstellen (falls sie für die DTD nicht schon vorhanden waren) und die Webseite um etwas Text ergänzen. Ich denke, daß das ursprünglich gesetzte Ziel der einfachen Handhabung damit erreicht wurde.
Bei der Betrachtung der Benutzersicht muß man davon ausgehen, daß der Benutzer mit der Thematik des jeweiligen Textes vertraut ist. Andernfalls würde er sich wohl kaum für den Text interessieren. Um die folgenden Ausführungen nachvollziehen und bewerten zu können, muß auch beim Lesen dieser Arbeit das Vorwissen des Benutzers berücksichtigt werden. Da es sich bei der beschriebenen Anwendung um XML handelt, hoffe ich, daß die anfänglichen Ausführungen zu SGML/XML den nötigen Hintergrund geschaffen haben.
Ein Beispiellauf
Als
erstes wird nach der Definition des
Begriffs »Zeichen«
(vgl. Abbildung 10) gesucht. Die
Klein/Großschreibung wird dabei nicht
berücksichtigt. Sobald das Eingabefeld aktiviert wird, wird
automatisch der Schalter für die zugehörige Kategorie
»Begriffsdefinition« ausgewählt. Diese Kategorie
korrespondiert mit dem in 4.3
gezeigten Suchmuster »def«.

Abbildung 10: Eingabe eines Suchbegriffs
In den »Begriffsdefinitionen« findet IP4W3 das Wort »Zeichen« dreimal (vgl. Abbildung 11). Der Benutzer kann nun einzelne Treffer auswählen oder mit dem Schalter »Alle auswählen« alle drei Ausschnitte markieren. In diesem Fall erhält er die formatierte Ansicht in Abbildung 12.

Abbildung 11: Die HTML-Trefferliste der Suche

Abbildung 12: Die formatierte Ansicht dreier Atome
Jedes angezeigte Atom kann nun einzeln behandelt werden. Der Benutzer kann den Ausschnitt vergrößern, unverändert behalten oder verwerfen. Beim Vergrößern liefert IP4W3 das Vater-Element zum gerade sichtbaren Element als Ergebnis. In diesem Beispiel wird der erste Ausschnitt vergrößert und die beiden anderen verworfen. Das Ergebnis ist in Abbildung 13 zu sehen. Es handelt sich dabei um den Abschnitt 2.2 aus der XML-Spezifikation, der neben der umgangssprachlichen Definition von »Zeichen« auch den formalen Zeichenbereich in XML definiert. Dieses Element wird nun durch Anklicken von »Ausschnitt merken« in den virtuellen Warenkorb gelegt. Hier tritt erstmals der Steuerrahmen am unteren Bildrand in Aktion: Der Zähler für die gemerkten Atome wurde um eins erhöht.

Abbildung 13: Das gewünschte Ergebnis der Suche
Durch eine zweite Suche nach dem Begriff »attlist« in der Kategorie »XML-Syntaxregeln« (Suchmuster »prod« in Abschnitt 4.3 erhält der Benutzer alle Stellen der XML-Syntax, die sich mit Attributlisten befassen (vgl. Abbildung 14). Als gesuchten Ausschnitt merkt er sich hier den zweiten Treffer.

Abbildung 14: Das Ergebnis der zweiten Suche nach »attlist« in der Kategorie »XML-Syntaxregeln«
Nun befinden sich im Warenkorb zwei Atome unterschiedlicher Kategorien, die das Ergebnis von zwei unabhängigen Suchen sind. Um sie zusammen anzeigen zu lassen, genügt ein Klick auf den Link »gemerkte Ausschnitte zeigen« im Steuerrahmen. Der Browser zeigt anschließend die Ansicht in Abbildung 15. Hier ist zu bemerken, daß bei der Formatierung der gemerkten Ausschnitte die Schalter zur Ausschnittwahl unterdrückt werden, um das »fertige« Dokument drucken zu können. Die Ausschnitte behalten ihre Reihenfolge aus dem Ursprungsdokument, unabhängig davon, in welcher Reihenfolge sie gefunden wurden.

Abbildung 15: Atome unterschiedlicher Kategorien, die das Ergebnis von zwei unabhängigen Suchen sind
| 16 | Tatsächlich ist es ein Kapitel aus dem Buch [BEMI98]. |
| 17 | Formal ist es ein Element des Typs form gemäß HTML-DTD. |
