XML - Grundlagen, Prinzipien und Anwendungen

Veranstaltung im Sommersemester 2002

Projektliste


Im folgenden findet sich eine Liste von Projekt-Vorschlägen für die XML-Vorlesung. Diese Liste wird ergänzt und erweitert werden, und insbesondere sind Studierende eigeladen, eigene Ideen für Projekte zu entwickeln. Grundbedingung für ein Projekt ist die Beschäftigung mit XML nicht nur als Tool, sondern als Kern des Projektes. Die bereits entwickelten Projektvorschläge zeigen, was mit dieser Bedingung gemeint ist:

  1. XSLT für das Pretty-Printing von XSLT Programmen

    XSLT ist funktional unbestritten sehr nützlich, die Syntax jedoch ist zumindest gewöhnungsbedürftig. Wer will schon Programme in XML schreiben? In XSLT muss man das, aber man könnte sich ja ein cleveres XSLT Programm überlegen, das XSLT Programme in eine besser lesbare Form bringt mit einer weniger üppigen Syntax.

    Wie bei einigen anderen Projekten auch kann man das XSLT Programm immer an sich selber ausprobieren, also den XSLT Pretty Printer mit sich selber Pretty Printen... Wie genau die Syntax aussehen soll (z.B. geschweifte Klammern zum Einschliessen von Gruppen) ist durch nichts vorgegeben, sondern ist alleine der Kreativität der Projektgruppe überlassen. Nur das Resultat zählt, d.h. ein Pretty Printed XSLT sollte besser lesbar und übersichlicher sein als die original XSLT-Syntax.

    Mit XSLTXT existiert bereits ein Ansatz für eine alternative XSLT Syntax, dieser Ansatz ist jedoch Java-basiert und weist einige Schwächen und Unschönheiten auf.

  2. Programm für die Übersetzung eines XML Dokumentes in ein XML Infoset Dokument

    Das XML Information Set (XML Infoset) ist ein abstraktes Modell für die Darstelllung der Information eines XML Dokuments. Das W3C hat als informelle Note ein RDF Schema für das XML Infoset veröffentlicht. In diesem Projekt soll aufbauend auf einem existierenden XML Schema (das ebenfalls als W3C Note veröffentlich werden soll) für das Infoset ein auf dem DOM operierendes Programm für die Transformation eines beliebigen XML Dokuments in ein Dokument des XML Infoset Schema geschrieben werden. Java Erfahrung ist von Vorteil.

    Zum Einen ist dieses Projekt eine erstklassige Fingerübung zum Thema Reflexivität von Formalismen und Umgang mit XML Schema und DOM, zum anderen kann das XML Infoset Schema aber auch sehr gut dazu dienen, anderen Standards, die auf das XML Infoset Bezug nehmen (wie XML Schema oder XLink), eine Basis für die Formalisierung ihrer Erweiterungen des XML Infoset zu bieten. Die Berührungspunkte mit dem folgenden Projekt sind recht stark.

  3. XSLT für die Transformation eines XML Infoset Dokumentes in ein XML Dokument

    Das XML Information Set (XML Infoset) ist ein abstraktes Modell für die Darstelllung der Information eines XML Dokuments. Das W3C hat als informelle Note ein RDF Schema für das XML Infoset veröffentlicht. In diesem Projekt soll aufbauend auf einem existierenden XML Schema (das ebenfalls als W3C Note veröffentlich werden soll) für das Infoset ein XSLT Programm für die Transformation eines XML Infoset Dokuments in ein XML Dokument geschrieben werden.

    Zum Einen ist dieses Projekt eine erstklassige Fingerübung zum Thema Reflexivität von Formalismen und Umgang mit XML Schema und XSLT, zum anderen kann das XML Infoset Schema aber auch sehr gut dazu dienen, anderen Standards, die auf das XML Infoset Bezug nehmen (wie XML Schema oder XLink), eine Basis für die Formalisierung ihrer Erweiterungen des XML Infoset zu bieten. Die Berührungspunkte mit dem vorangehenden Projekt sind recht stark.

  4. XML2SVG

    Jedes XML Dokument ist ein Baum, der am besten durch das XML Infoset beschrieben wird. In diesem Projekt soll ein Style Sheet geschrieben werden, dass den Baum visualisiert. Das kann entweder direkt durch XSLT nach SVG erfolgen (dies dürfte aber durch die zu lösenden Graphenlayout-Probleme zu komplex werden), oder durch eine Zwischenstufe.

    Ein exzellentes Paket zum Graphenlayout ist Graphviz von AT&T Labs Research. Ein gangbarer Weg wäre, aus XML per XSLT Eingaben für das Graphviz-Paket zu erzeugen, das dann das Graphen-Layout vornimmt und die Baumdarstellung erzeugt. Ob diese dann in SVG erzeugt werden kann, müsste noch untersucht werden.

    Als XML Grove gibt es bereits Arbeit in dieser Richtung, die allerdings nur auf XSLT setzt (also direkt SVG erzeugt mit netten mouse-over Effekten) und deshalb ein recht wirres Layout erzeugt (wer einen IE mit installiertem SVG Plug-In hat, kann sich den XML Grove der W3C Homepage ansehen). Dies sollte sicher deutlich besser gemacht werden können mit einem guten Graphen-Layout Toolkit.

  5. XML Statistics

    Jedes XML Dokument kann statistisch untersucht werden nach den verschiedensten Merkmalen und Eigenschaften, die Topologie des Baumes, seine Regelmässigkeit, und natürlich alle möglichen Statistiken über Elemente, Attribute, Kommentare, Processing Instructions, Namespaces und was sich sonst noch alles im XML Infoset findet. In diesem Projekt soll ein Konzept erstellt werden, welche dieser Statistiken interessant und aussagekräftig sein könnten, und es soll ein XSLT Programm zur Gewinnung der Statistiken geschrieben werden.

    Sinnvollerweise sollten die Statistiken auch in XML erzeugt werden, so dass sie mit verschiedenen Style Sheets in anpassbarer Weise präsentiert werden können (Trennung von Inhalt und Präsentation).

  6. XHTML Forms Processor

    Das Verarbeiten von Formularen (HTML oder XHTML) erfordert Programmierung auf der Server-Seite. Es gibt eine Reihe an existierender Software (z.B. Perl) um diese Aufgabe zu erleichtern. Es liesse sich allerdings auch eine weitergehende Automatisierung vorstellen, die in etwas dem folgenden Muster folgt:

    1. Die Formular-Seite muss in XHTML vorliegen.
    2. Mittels eines vorgegebenen XSLT Stylesheets wird aus dieser Seite ein Perl-Script erzeugt, dass die im Formular definierten Variablen akzeptiert und als XML-Dokument speichert.
    3. Ein weiteres XSLT wird verwendet, um eine Statistik aller gegebenen Antworten auf das Formular zu erstellen. Je nach Anwendung muss dieses XSLT angepasst werden.

    Resultat dieser Aufgabe sollte ein komplett automatisierter Prozess sein, um aus einem XHTML Perl/XSLT zu generieren, das eine automatisierte Server-seitige Verarbeitung ermöglicht. Wie weit hierbei gegangen werden kann und hinsichtlich welcher Features, hängt von den Interessenschwerpunkten der Bearbeitenden ab.

  7. Verbesserte Darstellung des Glossars aus den Aufgaben 4+5

    Das Glossar zu Web-Technologien wurde in den Aufgaben 4 und 5 für einfache Übungen mit XSLT verwendet. Eine öffentlich zugängliche Version des Glossars findet sich auf dem Web, jedoch hat diese Version einige Nachteile, die behoben werden sollen:

    Da das Ergebnis dieses Projekts für die regelmässige Formatierung des Glossars benutzt werden soll, muss das XSLT dokumentiert werden, im Idealfall wird XSLT 2.0 verwendet (Saxon 7.0 unterstützt bereits einige Sprachmittel). Zudem muss die Erzeugung eines PDF aus dem XML weiterhin unterstützt werden, momentan wird aus dem XML LaTeX erzeugt, dass dann mittels pdflatex in eine PDF Version des Glossars umgewandelt wird.

  8. XML-basiertes Fotoalbum

    In diesem Projekt geht es um die Erstellung eines Fotoalbums, welches auf den in der Vorlesung behandelten Web-Technologien basiert. Dabei soll das ganze Fotoalbum in einem einzigen XML-Dokument beschrieben werden können, woraus dann mit Hilfe entsprechender Stylesheets die verschiedenen Sichtweisen erstellt werden. Im Wesentlichen soll es dabei drei verschiedene Sichten geben:

    In allen Sichten sind zudem geeignete Links zur Steuerung des Albums notwendig. Zwei mögliche Beispiele für ein solches Fotoalbum sind Erik Wilde's Image Database (HTML/XML-basiert) oder David Hausheer's Gallery (HTML/JavaScript-basiert). Natürlich können auch noch weitere Funktionen in das Tool eingebaut werden, soweit sie den zeitlichen Rahmen des Projektes nicht sprengen. Nützlich wäre z.B. die automatische Erfassung eines ganzen Directory das in ein Fotoalbum verwandelt werden soll.

  9. Transformierung des WWWW-Glossars nach PDF mit XSL-FO und FOP

    Das WWWW-Glossar, welches bereits aus den Aufgaben 4+5 bekannt ist, soll in diesem Projekt nach PDF exportiert werden. Dies geschah bislang mit Hilfe von LaTeX, nun soll dazu jedoch die XML-basierte Sprache XSL-FO (XSL Formatting Objects) verwendet werden, welche mit Hilfe von FOP (Formatting Objects Processor) nach PDF transformiert werden kann. Dabei muss im Wesentlichen ein Stylesheet geschrieben werden, welches das Dokument glossary.xml nach XSL-FO transformiert. Das Layout des resultierenden Dokumentes kann schliesslich am momentan existierenden Dokument glossary.pdf gemessen werden.

  10. Erweiterte XML Abfrage

    In diesem etwas ambitionierteren Projekt geht es um die Entwicklung einer XML-basierten Syntax zur verbesserten Abfrage von XML Dokumenten. XPath 1.0 unterstützt momentan nur das exakte Abfragen von Textknoten, Abfragen mit Platzhaltern innerhalb von Strings wie z.B. //topic[@TID='XML*'] werden jedoch nicht unterstützt. Solche Abfragen sind zwar möglich, wenn entsprechende Funktionen (contains, starts-with, substring, etc.) verwendet werden, was jedoch für etwas kompliziertere Abfragen (//zeitschrift[@name='Neue * Zeitung']) sehr mühsam sein kann. Zudem wird in XPath Gross-/Kleinschreibung unterschieden, was die Abfrage zusätzlich erschweren bzw. einschränken kann.

    Die Idee ist nun, dass dazu eine einfache Syntax in XML definiert wird, welche mit Hilfe eines zu entwickelnden Stylesheets in entsprechende XPaths übersetzt werden soll, die auf abzufragende XML-Dokumente angewandt werden können.

  11. Erstellen eines Lehrkraft-Informationssystems

    Viele der z.B. an der ETH tätigen Lehrkräfte verfügen bereits über eine eigene Homepage, auf der sie ihr Lehr- und Forschungsprogramm vorstellen. Leider sind dabei die angebotenen Informationen von sehr unterschiedlichem Umfang, Qualität und Darstellung und teilweise auch nicht aktuell.

    Dies macht es sehr schwierig für Studenten stets die Information zu finden, die sie suchen. Als Lösung bietet es sich daher an, die darzustellenden Informationen (Kontaktadresse, Link auf Photo, angebotene Semester- und Diplomarbeiten, Lehrveranstaltungen, Veröffentlichungen, Forschungsprojekte, ...) in verschiedenen DTDs zu definieren.

    Die entsprechend der DTDs erzeugten XML-Dokumente sollen anschliessend per XSLT in HTML-Darstellungen umgewandelt werden. Per einheitlichem CSS-Stylesheet könnte man dann auch noch eine einheitliche und ansprechende Darstellung sicherstellen. Ein sehr einfaches Beispiel (nicht unbedingt ein gutes) für eine bestehende Lehrkraft-Homepage ist z.B Jan's Homepage.

  12. Verwaltung von Bücher-, Video- und Musik-Listen

    Es ist gar nicht so lange her dass man Musik nur live hören konnte und Bilder nur als Gemälde verfügbar waren. Inzwischen ist es jedoch so, dass die meisten Menschen in den Industrienationen eine Fülle von Büchern, Videos und CDs besitzen, über die man sehr leicht den Überblick verlieren kann.

    Der Gedanke liegt daher nahe diese 'Dokumente' elektronisch zu verwalten, z.B. mit XML. Zu diesem Zweck sollen eine XML-DTD erstellt werden, welche diese Verwaltung übernimmt, wobei sich Informationen wie Authoren, Titel, Stilrichtungen,... berücksichtigen lassen.

    Zur besseren Repräsentation soll aus dem/n XML-Dokument/en anschliessend per XSLT eine HTML-Darstellung generiert werden. Dabei lassen sich per Links z.B. alle Bücher eines Autors darstellen, etc.

  13. Site-Maps

    Grössere Web-Auftritte verfügen heutzutage fast alle über eine sogenannte 'Site-Map', welche die Struktur der einzelnen Web-Seiten anschaulich darstellt. Es liegt nahe, diese Struktur in einem XML-Dokument darzustellen, welches im Rahmen dieses Projekts entworfen werden soll.

    Damit die Leser jedoch mit diesen Informationen etwas anfangen können, ist eine übersichtliche Darstellung notwendig. Mit Hilfe von Graphviz soll daher eine graphische Repraesentation der XML-Site-Maps ermöglicht werden, wozu diese zunächst per XSLT in das textuelle Eingabeformat von Graphviz umgewandelt werden müssen.

    Weiterhin wäre es sehr hilfreich, wenn es nicht nur möglich wäre die so generierte Site-Map anzuschauen, sondern auch durch Klicks auf einzelne Knoten zu den entsprechenden Web-Seiten zu gelangen (Clickable images). Alternativ wäre auch eine zusätzliche textuelle HTML-Darstellung möglich, wobei man dann auch weitere Meta-Daten gut darstellen könnte.

  14. XML-basierte Knowledge Base für Produkt Support

    In diesem Projekt geht es um die Erstellung einer erweiterten FAQ-Liste (sogenannte Knowledge Base) im Sinne eines Support Dienstes für die Produkte einer bestimmten Firma. Diese Knowledge Base soll XML-basiert sein, d.h. es muss eine geeignete DTD erstellt werden in welcher die verschiedenen FAQ-Artikel nach Sprachen, Produkten und sonstigen Kategorien strukturiert werden können. Aus den erstellten XML-Dokumenten sollen mittels XSLT die einzelnen Artikel generiert werden, welche bereits im Text oder mit Keywords geeignet miteinander verlinkt sein sollten, damit ähnliche Artikel und Downloads schnell gefunden werden können. Nötig ist zudem eine entsprechende Suchfunktion mit welcher man nach verschiedenen Kriterien suchen kann. Alternativ können die Artikel auch in geeigneten Kategorien gegliedert aufgelistet werden, damit das Problem der dynamischen XSLT Transformation, welches sich bei der Suchabfrage ergeben würde, umgangen werden kann.

  15. Partituren-Verwaltung

    Zum Notieren von Musikstuecken werden normalerweise sogenannte "Partituren" verwendet. Diese ermoeglichen es Musikern, einmal komponierte Stuecke wiederzugeben.

    Bei den meisten Musikeren sammelt sich im Laufe ihrer Arbeit eine ganze Reihe solcher Partituren, so dass frueher oder spaeter der Wunsch aufkommt, diese komfortabler zu verwalten.

    In diesem Projekt soll ein XML-basiertes Partituren- Verwaltungssystem erstellt werden. Dabei werden die Informationen ueber vorhandene Partituren in einem XML-Dokument gespeichert, aus welchem anschliessend mittels mehrerer XSLTs eine Reihe von HTML-Seiten erzeugt werden, welche die verwaltete Information anschaulich praesentieren.

Die Projekte werden über einen längeren Zeitraum bearbeitet (Vergabe der Projekte ist kurz nach Mitte des Semesters am 28.5.2002, danach sind 5 Wochen Zeit zur Projektarbeit), und wie bei den Übungen steht der Dienstag Nachmittag als Beratungstermin zur Verfügung, um Fragen oder Probleme zu diskutieren. Zudem ist jedem Projekt ein Betreuer zugeordnet, der als direkter Ansprechpartner dient. Die Resultate der Projekte werden bei der Abschlusspräsentation am 2.7.2002 vorgestellt werden. Erwartet werden ein kurzer Bericht, eine Demo, eine Präsentation (ca. 10min), und kommentierter Code.

Sollten sich bei den Projekten Resultate ergeben, die veröffentlichungswürdig sind, so stehe ich gerne mit Rat und Tat zur Seite bei der Veröffentlichung, und insbesondere wäre es dann angebracht, das entsprechende Projekt als Web-Service zur Verfügung zu stellen auf dem Vorlesungsserver. Bei Interesse lässt sich bei einigen der Projekten auch über eine Fortsetzung der Arbeit im Rahmen einer Semester- oder Diplomarbeit diskutieren.


please send comments to xml-vl@dret.net
last modification on Wednesday, 15-Mar-2006 11:35:17 EST
valid CSS!valid XHTML 1.0!