"Topic Map Query Language"-Abfragesprache für die Groupware

Werbung
Seminararbeit
Prototypische Implementierung der
"Topic Map Query Language"-Abfragesprache für die
Groupware-basierte Topic Map Engine
Prof. Dr. Ludwig Nastansky
Wintersemester 2004/2005
Vorgelegt von:
Christian Temath
Student der Wirtschaftsinformatik
Matrikelnummer 6090502
Ferdinandstraße 30
33102 Paderborn
Inhaltsverzeichnis
1. Einleitung ............................................................................................................................... 4
2. Konzeption ............................................................................................................................. 4
2.1. Die „Topic Map Query Language“-Abfragesprache ...................................................... 4
2.2. Prototypische Implementierung auf Basis von tolog ...................................................... 6
2.3. Unterstützte Sprachelemente von tolog........................................................................... 7
2.4. Rückgabeformate .......................................................................................................... 11
2.4.1. Rückgabe im HTML-Format ................................................................................. 12
2.4.2. Rückgabe im XML Topic Maps (XTM) Format ................................................... 12
2.5. Integration in bestehende Architektur ........................................................................... 13
3. Technische Realisierung ...................................................................................................... 14
3.1 Komponenten ................................................................................................................. 14
3.2 Java Klassen ................................................................................................................... 15
3.2.1. Tmql Parser package .............................................................................................. 15
3.2.2. Tmql Query package .............................................................................................. 15
3.2.3. Tmql package ......................................................................................................... 15
3.2.4. TmqlQueryServlet.................................................................................................. 15
3.3. HTML Dateien .............................................................................................................. 16
3.4. Änderungen in Konfigurationsdateien .......................................................................... 16
4. Funktionen des Prototyps ..................................................................................................... 16
4.1. Anmeldung und Navigation im Prototypen .................................................................. 16
4.2. Die Abfragemaske......................................................................................................... 17
4.2.1. Abfrage mittels vorgegebener Abfrage .................................................................. 17
4.2.2. Definition eigener Abfragen................................................................................... 18
4.2.3. Auswahl des Rückgabeformates ............................................................................ 18
5. Installation............................................................................................................................ 18
6. Fazit & Ausblick ................................................................................................................. 19
7. Abkürzungsverzeichnis ........................................................................................................ 20
8. Quellenverzeichnis ............................................................................................................... 20
Seite 2
Abbildungsverzeichnis
Abbildung 1: Grundlegendes Konzept der TMQL-Abfragesprache.......................................... 5
Abbildung 2: Übersicht über Vorschläge für die neue TMQL-Abfragesprache........................ 6
Abbildung 3: Ergebnis einer „instance-of“-Abfrage.................................................................. 7
Abbildung 4: Ergebnis einer Abfrage mit einem dynamischen Prädikat nach Variante 1 ........ 8
Abbildung 5: Ergebnis einer Abfrage mit einem dynamischen Prädikat nach Variante 2 ........ 8
Abbildung 6: Erste Variante der UND-Verknüpfung ................................................................ 8
Abbildung 7: Zweite Variante der UND-Verknüpfung ............................................................. 9
Abbildung 8: Beispielhafte UND-Verknüpfung nach Variante 1 .............................................. 9
Abbildung 9: Ergebnis der beispielhaften UND-Verknüpfung nach Variante 1 ....................... 9
Abbildung 10: Beispielhafte UND-Verknüpfung nach Variante 2.......................................... 10
Abbildung 11: Ergebnis der beispielhaften UND-Verknüpfung nach Variante 2 ................... 10
Abbildung 12: Ergebnis einer beispielhaften Projektionsoperation......................................... 11
Abbildung 13: Ergebnis einer beispielhaften Sortieroperation ................................................ 11
Abbildung 14: Das Abfrageergebnis überführt in eine HTML-Tabelle .................................. 12
Abbildung 15: Das Ergebnis einer TMQL-Abfrage im XTM-Format .................................... 13
Abbildung 16: Das um die TMQL Schnittstelle erweiterte GTME Framework...................... 14
Abbildung 17: Die Komponenten des TMQL-Prototyps......................................................... 14
Abbildung 18: Die Anmeldemaske des Prototyps ................................................................... 16
Abbildung 19: Navigationsbereich des TMQL-Prototyps ....................................................... 17
Abbildung 20: Die Abfragemaske des TMQL Prototyps......................................................... 17
Seite 3
1. Einleitung
Die folgende Dokumentation beschäftigt sich mit den Ergebnissen der Seminararbeit zum Thema
„Prototypische Implementierung der "Topic Map Query Language"-Abfragesprache für die
Groupware-basierte Topic Map Engine“, die im Rahmen des Seminars Wirtschaftsinformatik II am
Groupware Competence Center entstanden ist.
Im Rahmen des Dissertationsprojektes „K-Discovery“ von Stefan Smolnik am Groupware
Competence Center entstand der Prototyp einer Groupware-basierten Topic Map Engine1. Diese
Umgebung stellt verschiedene Werkzeuge zur Modellierung, Erstellung und Visualisierung von Topic
Maps in einem Groupware-basierten Umfeld zur Verfügung2. So reichen die vorhandenen Werkzeuge
von einem grafischen Modellierungswerkzeug für die Erstellung von Topic Maps, bis hin zu
Suchwerkzeugen, die grafisch oder textbasiert die Suche nach Informationen erleichtern. Zusätzlich
existiert eine Exportschnittstelle, die es ermöglicht, die Daten der erzeugten Topic Map in ein
standardisiertes XML-Format, dem XML Topic Maps (XTM) Format, zu exportieren. Dies stellt eine
erste, rudimentäre Schnittstelle zum Abfragen von Topic Map Informationen für die Groupwarebasierte Topic Map Engine (GTME) dar.
Im Rahmen internationaler Standardisierungsbemühungen wird zurzeit an einem Abfragestandard für
Topic Maps gearbeitet, der so genannten „Topic Map Query Language (TMQL)“-Abfragesprache.
Ziel dieser Arbeit ist es nun, einen Überblick über den aktuellen Stand des Standardisierungsprozesses
für die TMQL-Abfragesprache aufzuzeigen und basierend auf den im Standardisierungsprozess bisher
erarbeiteten Ergebnissen eine prototypische Implementierung für die Groupware-basierte Topic Map
Engine zu erstellen. Das Ziel ist demnach eine standardisierte Schnittstelle zum Abfragen von Topic
Map Daten zu schaffen, um die Groupware-basierte Topic Map Engine einem neuen
Anwendungsspektrum zugänglich zu machen.
2. Konzeption
2.1. Die „Topic Map Query Language“-Abfragesprache
Im Rahmen der Arbeit der Arbeitsgruppe ISO/IEC JTC1 SC34 WG33 wird an einer Abfragesprache
für Topic Maps gearbeitet. Die „Topic Map Query Language“-Abfragesprache soll als ISO/IEC ISO
18048 verabschiedet werden. Die Arbeitsgruppe beschäftigt sich im ersten Schritt zunächst mit
„retrieval scenarios“4, also der lesenden Abfrage von Topic Map Daten. In einem späteren zweiten
Schritt sollen dann auch „update scenarios“, das heißt, Zugriffe die Daten der Topic Map verändern,
behandelt werden. In Abbildung 1 wird das grundlegende Konzept der TMQL-Abfragesprache
deutlich.
1
Vgl. MEIRONKE, J.; MEYER, M.; PETER, M. (2001)
2 Vgl. K-DISCOVERY (2005): K-Discovery Architecture
3
Vgl. ISO/IEC JTC1 SC34 WG3 (2005A)
4
Vgl. ISO/IEC JTC1 SC34 WG3 (2005B): Introduction
Seite 4
Abbildung 1: Grundlegendes Konzept der TMQL-Abfragesprache5
Die Abfragesprache soll als standardisiertes Abfrageinstrument dienen, ohne dabei die Datenhaltung
kennen zu müssen, die der abzufragenden Topic Map zu Grunde liegt. Damit wird ein Datenaustausch
zwischen verschiedenen Topic Map Applikationen erleichtert. Der neue Abfragestandard für die
„Topic Map Query Language“-Abfragesprache befindet sich momentan noch im
Entwicklungsstadium. Ein aktueller Überblick über den Standardisierungsprozess kann auf der
Projektwebseite6 gefunden werden. Auf der Webseite finden sich alle für den
Standardisierungsprozess relevanten Informationen. Im „Requirements document“7 werden alle
grundlegenden Anforderungen an die TMQL-Abfragesprache definiert. Dort werden zunächst
Anforderungen an die Abfrageumgebung8 definiert. Weiterhin finden sich Anforderungen an das zu
definierende Sprachdefinitionsdokument für die Beziehung zu anderen Standards, zur Struktur, zur
Syntax und Semantik. In einem weiteren Kapitel9 werden die Anforderungen an die TMQLAbfragesprache selbst definiert. Zu diesen zählen Anforderungen an Kernfunktionalitäten, Eingabe
und Ausgabe, Benutzerfreundlichkeit und der Implementation der Sprache.
In einem weiterem Dokument, dem „TMQL Use Case Document“10 werden Anwendungsfälle für die
„Topic Map Query Language“-Abfragesprache definiert, nach denen einzelne Sprachvorschläge
bewertet werden können. In diesem Dokument finden sich einige globale Anwendungsszenarien, wie
zum Beispiel „Knowledge Web Sites, Web Portals, Content Management (Horizontal and Vertical
Markets), Enterprise Information Integration, High-Integrity Systems, Meta-Data Syndication,
Knowledge Management und Intangible Asset Management“. Darüber hinaus werden 29 konkrete
Anwendungsfälle definiert, die von der TMQL-Abfragesprache unterstützt werden sollen.
Für die „Topic Map Query Language“-Abfragesprache existieren einige Vorschläge, die sich
hinsichtlich ihres Implementierungsgrades teilweise stark unterscheiden. Die bisher in den
Standardisierungsprozess eingebrachten Vorschläge führt Abbildung 2 auf.
5
Vgl. ISO/IEC JTC1 SC34 WG3 (2005B)
Vgl. ISO/IEC JTC1 SC34 WG3 (20056)
7
Vgl. ISO/IEC JTC1 SC34 WG3 (2003A)
8
Vgl. ISO/IEC JTC1 SC34 WG3 (2003A): Query environment
9
Vgl. ISO/IEC JTC1 SC34 WG3 (2003A): Requirements for the language
10
Vgl. ISO/IEC JTC1 SC34 WG3 (2003B)
6
Seite 5
verfügbares
Sprachvorschlag Material
URL
TMRQL
Spezifikation
http://www.networkedplanet.com/download/TMRQL.pdf
tolog
Anleitung
http://www.ontopia.net/omnigator/docs/query/tutorial.html
Spezifikation
http://www.ontopia.net/topicmaps/materials/tolog-spec.html
kein Material
Empolis TMQL verfügbar
AsTMa?
Anleitung
http://astma.it.bond.edu.au/astma%3F-tutorial.dbk
Spezifikation
http://astma.it.bond.edu.au/astma%3F-spec.dbk
TMPath
Einführung
http://homepage.mac.com/dmitryv/TopicMaps/TMPath/TMPathRevisited.html
Anleitung/
Spezifikation
Toma
http://www.spaceapplications.com/toma/Toma.html
TMQL strawman Grundprinzip
http://www.y12.doe.gov/sgml/sc34/document/0186.doc
XTMPath
Anleitung
http://topicmaps.bond.edu.au/docs/13?style=printable
Spezifikation
http://cpan.uwinnipeg.ca/htdocs/XTM/XTM/Path.html
tmfun
Vorstellung
http://www.isotopicmaps.org/tmql/tmql-london-intro.pdf
Abbildung 2: Übersicht über Vorschläge für die neue TMQL-Abfragesprache
Eine aktuelle Übersicht über die eingereichten Vorschläge findet sich auf der Projektwebseite11.
Des Weiteren wird die „Roadmap“12 für den Standardisierungsprozess angegeben. Die einzelnen
Stufen bis zum endgültigen Standard sind als „Clay Man“, „Wood Man“, „Tin Man“, „Iron Man“ und
„Steel Man“ bezeichnet. Die aktuell fertig gestellte „Clay Man“ Version13 geht auf das Arbeitstreffen
vom April 2004 in Amsterdam14 zurück. Dort wurde der von der Firma Ontopia entwickelte Vorschlag
tolog als Basis für die „Topic Map Query Language“-Abfragesprache ausgewählt. Dieser Vorschlag
soll nun um noch nicht erfüllte Anforderungen erweitert werden. Für die prototypische
Implementierung der TMQL-Abfragesprache im Rahmen dieser Arbeit wurde aus diesem Grunde
tolog gewählt.
2.2. Prototypische Implementierung auf Basis von tolog
Wie im Abschnitt zuvor beschrieben, wurde tolog für die im Rahmen dieser Arbeit zu erstellende
prototypische „Topic Map Query Language“-Abfragespracheschnittstelle ausgewählt. Eine detaillierte
Beschreibung von tolog gibt die tolog Spezifikation15 und die tolog Anleitung16. Tolog ist eine Datalog
und SQL ähnliche Sprache. Mit ihr können Daten aus einer Topic Map ähnlich wie Daten aus einer
relationalen Datenbank mit SQL abgefragt werden. Eine Basisabfrage dieser Logik-basierten
Abfragesprache17 besteht grundsätzlich aus einer Behauptung, wobei das Ergebnis aus der Menge der
Fälle besteht, bei denen diese Behauptung wahr ist. Die Behauptungen in tolog bestehen im
Wesentlichen aus Prädikaten. Diese beschreiben Beziehungen zwischen Mengen von Werten. Die
Ergebnisse dieser Standardabfragen können als zweidimensionale Relation beschrieben werden, was
in seiner Form den Ergebnissen einer SQL-Abfrage gleicht. Die Ergebnisrelationen einzelner
Abfragen können mittels UND- und ODER- Verknüpfungen kombiniert werden. Durch Projektion ist
es möglich, aus einer Ergebnisrelation bestimmte Spalten auszuwählen. Wie bei SQL ist es außerdem
möglich, Ergebnismengen nach bestimmten Kriterien zu sortieren oder bestimmte Vorkommen in den
Ergebnisrelationen zu zählen.
Zu den erweiterten Funktionalitäten von tolog zählen eingebaute Prädikate, die Möglichkeit
Folgerungsregeln zu definieren und vergleichende Prädikate. Im Rahmen dieser Arbeit wurden die
nachfolgend beschriebenen Basisfunktionalitäten von tolog prototypisch implementiert.
11
Vgl. ISO/IEC JTC1 SC34 WG3 (2005B): Proposals
Vgl. ISO/IEC JTC1 SC34 WG3 (2005A): Roadmap
13
Vgl. ISO/IEC JTC1 SC34 WG3 (2005C)
14
Vgl. ISO/IEC JTC1 SC34 WG3 (2004)
15
Vgl. ONTOPIA (2003)
16
Vgl. ONTOPIA (2004)
17
Vgl. ONTOPIA (2004): Introduction
12
Seite 6
2.3. Unterstützte Sprachelemente von tolog
Aus den im vorherigen Kapitel vorgestellten Sprachelementen wurden im Rahmen dieser Arbeit
ausgewählte Elemente prototypisch für die Groupware-basierte Topic Map Engine implementiert. Die
Syntax von tolog ist als formale, kontext-freie Grammatik definiert. Zur Notation wird die erweiterte
Bachus Naur Form verwendet. Eine Basisabfrage hat bei tolog die folgende Form:
query ::= selectpart? clauselist orderpart? ‚?’
Im „Clauselist“-Teil werden ein oder mehrere verknüpfte Prädikate aufgeführt, die den Kern der
tolog-Abfrage bilden. Der optionale „Selectpart“-Teil ermöglicht die Nutzung der Projektion in
der Ergebnisrelation. Die so entstandene Ergebnisrelation kann mittels des ebenfalls optionalen
„Orderpart“-Teils in unterschiedlicher Weise sortiert werden.
Der Prototyp unterstützt zwei Arten von Prädikaten. Das instance-of($TOPIC, TYPE)Prädikat ist ein fest in tolog verankertes Prädikat, welches die Beziehung eines Topics zu einem Topic
Type beschreibt. Das instance-of($TOPIC, TYPE)-Prädikat ist genau dann wahr, wenn das
angegebene Topic ($TOPIC) vom Typ des angegebenen Topic Types (TYPE) ist. In diesem
Zusammenhang wird vorausgesetzt, dass der Basename des Topic Types für TYPE übergeben wird.
Das unterstützte instance-of($TOPIC, TYPE)-Prädikat veranschaulicht weiterhin die Nutzung
von Variablen. Variablen werden mit einem vorgestellten „$“-Zeichen gebildet. Der nachfolgende
Variablenname muss zusammengeschrieben werden und darf keine Umlaute enthalten. Sollten die
Bezeichnungen von Topic Types oder von Assoziationstypen Leerzeichen oder Umlaute enthalten, so
müssen diese mit einem “’“-Zeichen beginnen und mit einem „’“-Zeichen enden. Im Falle des
instance-of($TOPIC, TYPE)-Prädikats werden nun alle Topics vom Typ TYPE in der Spalte
mit dem Namen, den $TOPIC bezeichnet, zurückgegeben. Beispielsweise würde „instanceof($Lehrveranstaltung, Lehrveranstaltung) ?“ alle Lehrveranstaltungen in einer
einspaltigen Ergebnismenge zurückliefern. Die Spalte in dieser Ergebnismenge wäre in diesem Fall
mit $Lehrveranstaltung bezeichnet. Lehrveranstaltung muss hierbei nicht in
Anführungszeichen gesetzt werden, da es zusammengeschrieben wird und keine Umlaute enthält.
Abbildung 3 zeigt das Ergebnis der beispielhaften Abfrage.
$Lehrveranstaltung
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
…
2
4
1
3
Abbildung 3: Ergebnis einer „instance-of“-Abfrage
Neben dem instance-of($TOPIC, TYPE)-Prädikat unterstützt der Prototyp dynamische
Assoziationsprädikate. Diese können die folgende syntaktische Form annehmen:
1) Association($VAR1:TYPE1, TOPIC: TYPE2) oder
2) Association($VAR1:TYPE1, $VAR2: TYPE2)
Dynamische Assoziationsprädikate können genutzt werden, um Beziehungen zwischen Topics
abzufragen. Der Name des Prädikats ist der Name des Assoziationstyps, der die Beziehung zwischen
den Topics beschreibt. Für Association können somit alle in der Topic Map definierten
Assoziationstypen eingesetzt werden. TYPE1 und TYPE2 geben bei der Abfrage den Basename des
Topic Types an, von dem die Topics bei der angegeben Assoziation sein sollen. Im Falle einer
Abfrage nach 1) kann nun für einen Topic Type der Assoziation festgelegt werden, welchen Basename
das Topic haben soll. Der gewünschte Basename wird mit TOPIC bezeichnet. Das Ergebnis dieser
Abfrage ist dann eine Ergebnisrelation mit einer Spalte, die mit dem in $VAR1 angegebenen Namen
Seite 7
benannt ist. In dieser Spalte befinden sich nun alle Topics vom Type TYPE1, die in der in
Association definierten Beziehung zu einem Topic vom Typ TYPE2 stehen, welches den
Basename hat, der in TOPIC bezeichnet ist. Im Fall 2) wird die zusätzliche Einschränkung mit dem
Topic Basename nicht gemacht, so dass eine zweispaltige Ergebnisrelation besteht, die alle in der
Topic Map hinterlegten Beziehungen zwischen Topics vom Typ TYPE1 und TYPE2 enthält. Die erste
Spalte ist analog zum ersten Fall mit $VAR1 benannt, die zweite Spalte mit dem Wert von $VAR2.
Beispielsweise liefert das Assoziationsprädikat „‚findet statt im’($Semester :
Semester, ‚Wirtschaftsinformatik 2’
: Lehrveranstaltung)“ in einer
einspaltigen Ergebnisrelation alle Semester zurück in denen die Lehrveranstaltung mit dem Namen
„Wirtschaftsinformatik 2“ stattfindet. Das Ergebnis dieser Abfrage kann in Abbildung 4 betrachtet
werden.
$Semester
Sommersemester
Abbildung 4: Ergebnis einer Abfrage mit einem dynamischen Prädikat nach Variante 1
Lässt man wie in Fall 2) beschrieben den Topic Basename weg und nutzt man eine zweite Variable,
dann werden alle Kombinationen von Lehrveranstaltungen und dem zugehörigen Semester in dem sie
stattfinden zurückgegeben. Die Abfrage „‚findet statt im’($Semester : Semester,
$Lehrveranstaltung : Lehrveranstaltung) ?“ führt dann beispielsweise zu dem in
Abbildung 5 veranschaulichten Ergebnis.
$Semester
Sommersemester
Sommersemester
Wintersemester
Wintersemester
…
$Lehrveranstaltung
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
…
2
4
1
3
Abbildung 5: Ergebnis einer Abfrage mit einem dynamischen Prädikat nach Variante 2
Wie im vorherigen Kapitel beschrieben, bietet tolog die Möglichkeit Ergebnisrelationen logisch
miteinander zu verknüpfen. Verknüpfungen mit Operatoren werden bei tolog von links nach rechts
ausgewertet. Der in dieser Arbeit vorgestellte Prototyp unterstützt aus Demonstrationszwecken
lediglich die UND-Verknüpfung. UND Verknüpfungen werden in tolog durch ein einfaches „,“
zwischen zwei Prädikaten dargestellt. Syntaktisch sieht eine UND-Verknüpfung demnach so aus:
Prädikat1 ‚,’ Prädikat2
In diesem Fall kann Prädikat1 für das Ergebnis eines einzelnen Prädikats stehen oder selber das
Ergebnis einer Verknüpfung von zwei Ergebnisrelationen sein. Prädikat2 ist das Ergebnis eines
oben beschriebenen Basisprädikats und kann entweder eine ein- oder zweispaltige Ergebnisrelation
sein. Daraus ergeben sich zwei unterstützte Anwendungsszenarien. Eine n-spaltige Ergebnisrelation
wird mit einer einspaltigen Ergebnisrelation verknüpft oder eine n-spaltige Ergebnisrelation wird mit
einer zweispaltigen Ergebnisrelation verknüpft. Abbildung 6 und Abbildung 7 verdeutlichen
schematisch die beiden Varianten.
$1Sp_1
…
…
$1Sp_2
…
…
…
…
…
$1Sp_n
…
…
$2Sp_1
…
…
Abbildung 6: Erste Variante der UND-Verknüpfung
Seite 8
$1Sp_1
…
…
$1Sp_2
…
…
…
…
…
$1Sp_n
…
…
$2Sp_1
…
…
$2Sp_2
Abbildung 7: Zweite Variante der UND-Verknüpfung
Die UND-Verknüpfung führt nur dann zu einer Verknüpfung der Ergebnisrelationen, wenn der Name
von genau einer Spalte der ersten Ergebnisrelation mit dem Namen von genau einer Spalte der zweiten
Ergebnisrelation übereinstimmt. Stimmen nun zum Beispiel $1Sp_1 und $2Sp_1 überein, dann
werden aus der ersten Ergebnisrelation alle Zeilen entfernt, bei denen das Topic in der Spalte $2Sp_1
nicht in irgendeiner Zeile der Spalte $2Sp_1 der zweiten Relation vorhanden ist. Dies gilt analog
wenn $2Sp_1 mit einer anderen Spalte $1Sp_2, ..., $1_Sp_n übereinstimmt. Beispielsweise
kann die UND-Verknüpfung im ersten Fall wie in Abbildung 8 aussehen.
$Semester
Sommersemester
Sommersemester
Wintersemester
Wintersemester
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 4
Wirtschaftsinformatik 1
Wirtschaftsinformatik 3
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 3
Abbildung 8: Beispielhafte UND-Verknüpfung nach Variante 1
Der Name der zweiten Spalte der ersten Relation stimmt mit dem Namen der ersten Spalte der zweiten
Relation überein. Wird nun die UND-Verknüpfung zwischen beiden Ergebnisrelationen durchgeführt,
dann werden alle Zeilen der ersten Ergebnisrelation entfernt, in denen in der Spalte
$Lehrveranstaltung
nicht
entweder
„Wirtschaftsinformatik
2“
oder
„Wirtschaftsinformatik 3“ steht. Abbildung 9 zeigt das resultierende Ergebnis.
$Semester
Sommersemester
Wintersemester
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 3
Abbildung 9: Ergebnis der beispielhaften UND-Verknüpfung nach Variante 1
Die zweite Variante ist ein wenig komplexer und gibt als Ergebnis eine Ergebnisrelation R3 zurück,
die eine Spalte mehr enthält als die erste Ergebnisrelation R1. Wiederum ist Voraussetzung, dass
genau ein Spaltenname aus R1 mit dem Namen einer Spalte aus der zweiten Ergebnisrelation R2
übereinstimmt. Das ist zum Beispiel wiederum für $1Sp_1 und $2Sp_2 der Fall. Jede Zeile aus R1
wird nun mit jeder Zeile aus R2 verglichen. Stimmen die Topics in Spalte $1Sp_1 und $2Sp_2
überein, dann wird eine neue Zeile in R3 erstellt, die alle Spalten aus der Zeile aus R1 enthält und
zusätzlich um den Eintrag in der Spalte $2Sp_1 erweitert wird. Die letztgenannte Spalte in R3 wird
dementsprechend mit $2Sp_1 bezeichnet. Abbildung 10 veranschaulicht das Prinzip.
Seite 9
$Semester
Sommersemester
Sommersemester
Wintersemester
Wintersemester
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 4
Wirtschaftsinformatik 1
Wirtschaftsinformatik 3
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 3
Wirtschaftsinformatik 3
$Veranstaltungsart
Übung
Vorlesung
Übung
Abbildung 10: Beispielhafte UND-Verknüpfung nach Variante 2
In diesem Beispiel stimmen die Namen der zweiten Spalte der ersten Relation mit dem Namen der
ersten Spalte der zweiten Relation überein. Für die erste Zeile der ersten Relation gilt nun, dass der
Eintrag „Wirtschaftsinformatik 2“ in der ersten Zeile mit dem Eintrag der ersten Zeile der
zweiten Relation übereinstimmt. Nun wird in der zu bildenden Ergebnisrelation eine Zeile gebildet, in
der alle Einträge der ersten Relation und der Eintrag „Übung“ aus der Spalte
$Veranstaltungsart enthalten sind. Für die nächsten beiden Zeilen der ersten Relation findet
sich für die Spalte $Lehrveranstaltung kein übereinstimmender Eintrag in der zweiten
Relation. Dementsprechend wird in der Ergebnisrelation keine neue Zeile gebildet. Für den Eintrag
„Wirtschaftsinformatik 3“ der ersten Relation gibt es in zwei Zeilen der zweiten Relation
eine Entsprechung. Die Zeile der ersten Relation wird nun in der Ergebnisrelation sowohl um
„Vorlesung“, als auch um „Übung“ ergänzt. Das Ergebnis der UND-Verknüpfung kann in
Abbildung 11 betrachtet werden.
$Semester
Sommersemester
Wintersemester
Wintersemester
$Lehrveranstaltung
Wirtschaftsinformatik 2
Wirtschaftsinformatik 3
Wirtschaftsinformatik 3
$Veranstaltungsart
Übung
Vorlesung
Übung
Abbildung 11: Ergebnis der beispielhaften UND-Verknüpfung nach Variante 2
Des Weiteren wurde auch die in dem optionalen „Selectpart“-Teil definierte Projektion im
Prototyp implementiert. Grundsätzlich besteht der Projektionsteil aus den Schlüsselwörtern
„SELECT“ und „FROM“. In der „selectlist“ werden alle Spaltennamen aufgeführt, die aus der
ursprünglichen Ergebnisrelation ausgewählt werden sollen. Die einzelnen Spaltennamen sind jeweils
durch ein „,“ getrennt. Die folgenden Produktionsregeln definieren den „selectpart“-Teil:
selectpart ::= 'SELECT' selectlist 'FROM'
selectlist ::= variable (',' variable)*
Zum Beispiel würde die Abfrage „SELECT $Semester FROM ‚findet statt
im’($Semester : Semester, $Lehrveranstaltung
: Lehrveranstaltung)
?“ aus der in Abbildung 5 gezeigten Ergebnisrelation die Spalte $Semester auswählen. Das
Ergebnis der gesamten Abfrage kann in Abbildung 12 betrachtet werden.
Seite 10
$Semester
Sommersemester
Sommersemester
Wintersemester
Wintersemester
…
Abbildung 12: Ergebnis einer beispielhaften Projektionsoperation
Die letzte im Prototyp implementierte Funktionalität ist die Sortierung. Der optionale „Orderpart“Teil der Abfrage ist syntaktisch folgendermaßen definiert:
orderpart
::=
'ORDER' 'BY' orderlist
orderlist
::=
ordpart (',' ordpart)*
ordpart
::=
variable ('ASC' | 'DESC')?
Der Sortierteil beginnt mit den Schlüsselwörtern “ORDER BY”. Danach werden in der „orderlist“
die einzelnen Spaltennamen der Ergebnisrelation angegeben, nach denen sortiert werden soll. Es ist
möglich nacheinander nach verschiedenen Spalten sortieren zu lassen. Dabei werden die einzelnen
Spaltennamen durch das Kommazeichen „,“ getrennt. Die den Variablen folgenden Schlüsselwörter
„ASC“ und „DESC“ geben an, ob aufsteigend („ASC“) oder absteigend („DESC“) sortiert werden
sollen. Wird weder „ASC“ noch „DESC“ angegeben, so wird standardmäßig aufsteigend sortiert. Die
Reihenfolge der Sortierung ist von rechts nach links. So wird bei einem Sortierteil „ORDER BY
$Spalte1, $Spalte2“ die Ergebnisrelation zuerst nach $Spalte2 und danach nach
$Spalte1 sortiert. Das verwendete Sortierverfahren sortiert stabil, was bedeutet, dass gleiche
Elemente nicht in ihrer Reihenfolge vertauscht werden. Das Ergebnis der folgenden Abfrage
„’findet statt im’($Semester : Semester, $Lehrveranstaltung
:
Lehrveranstaltung) ORDER BY $Lehrveranstaltung ASC ?“ kann in Abbildung 13
betrachtet werden.
$Semester
…
Wintersemester
Sommersemester
Wintersemester
Sommersemester
…
$Lehrveranstaltung
…
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
Wirtschaftsinformatik
…
1
2
3
4
Abbildung 13: Ergebnis einer beispielhaften Sortieroperation
Damit sind alle vom Prototyp unterstützten Sprachelemente von tolog beschrieben.
2.4. Rückgabeformate
Laut Anforderungsdokument der „Topic Map Query Language“-Abfragesprache sollen die
„ResultSets“, also die Ergebnismengen einer Abfrage, sowohl möglichst primitive Formate, als auch
XML Formate unterstützen18. Ergebnisse von tolog-Abfragen entsprechen in ihrer Form grundsätzlich
denen von ResultSets aus SQL-Abfragen. Dies orientiert sich an der zweidimensionalen Struktur der
Ergebnisrelationen. Die Ergebnisse der Abfragen im vorliegenden Prototyp werden zunächst in der
Form eines von SQL bekannten ResultSets dargestellt. Die ResultSets bieten die Möglichkeit die
einzelnen Zeilen der Ergebnisrelation zu betrachten und in jeder Zeile das Topic einer bestimmten
Spalte abzufragen. Die Topics in den ResultSets beinhalten alle zugehörigen Informationen wie die
Basenames, die Topic Types und die Occurrences der Topics. Diese Form der Ergebnisdarstellung
kann vor allem in Applikationen eingesetzt werden, die die abgefragten Daten direkt
18
Vgl. ISO/IEC JTC1 SC34 WG3 (2003A): ResultSets
Seite 11
weiterverarbeiten. Zusätzlich zu der Darstellung in ResultSets wurden Möglichkeiten implementiert,
das ResultSet zu serialisieren und somit den Datenaustausch zu erleichtern. Im Folgenden werden die
beiden unterstützten Überführungen in ein serialisiertes Format näher beschrieben.
2.4.1. Rückgabe im HTML-Format
Die Ausgabe im HTML-Format dient vor allem der Visualisierung der Abfrageergebnisse. Die
zweidimensionale Ergebnisrelation wird in einer Tabelle dargestellt. Dabei werden die Topics jeder
Zeile der Ergebnisrelation in eine Zeile in der HTML-Tabelle dargestellt. Die einzelnen Spalten der
Ergebnisrelation werden als Tabellenspalten dargestellt. Als Eintrag in jeder Zelle dient der Basename
eines Topics. Zusätzlich wird ein Link hinter dem Basename hinterlegt, der auf das Occurrence des
Topics verweist. Diese Art der Darstellung kann vor allem in einem Suchkontext verwendet werden,
bei dem Abfrageergebnisse in einem Webbrowser angezeigt werden und über die hinterlegte
Verlinkung direkt auf die entsprechenden Occurrences zugegriffen werden kann. Abbildung 14 zeigt
eine beispielhafte Darstellung eines ResultSets überführt in eine HTML-Tabelle.
Abbildung 14: Das Abfrageergebnis überführt in eine HTML-Tabelle
2.4.2. Rückgabe im XML Topic Maps (XTM) Format
Zusätzlich zu den oben genannten Formen der Ergebnisdarstellung wurde im Rahmen dieser Arbeit
auch die Möglichkeit vorgesehen, die Ergebnisrelation in ein XML-Format zu überführen. Für dieses
Format wurde das XML Topic Maps Format19 ausgewählt. Damit wird dem Anforderungsdokument
Rechnung getragen, in dem gefordert wird, sich möglichst an existierenden Standards zu orientieren.
Das Ergebnis einer TMQL-Abfrage ist nur ein Teil der gesamten Topic Map und kann somit nicht
ohne weiteres in das XTM-Format überführt werden. Nach einem von Kalil Ahmed vorgeschlagenen
Algorithmus20 ist es jedoch möglich, das Ergebnis einer Abfrage in ein Topic Map Fragment zu
überführen. Ein Topic Map Fragment ist eine eigenständige, vollständige Topic Map, die in der XTM
1.0 Austauschsyntax ausgedrückt wird21. In diesem Topic Map Fragment befinden sich alle
Informationen des Abfrageergebnisses, jedoch keine weiteren Daten aus der abgefragten Topic Map.
Mit folgendem Algorithmus kann ein wie oben beschriebenes ResultSet in das XTM 1.0 Format
überführt werden. Zuerst werden für alle Spaltennamen Topics erzeugt. Zusätzlich wird für jedes in
der Ergebnisrelation vorhandene Topic ein Topic in dem XTM-Dokument angelegt. Nun wird für jede
Zeile der Ergebnisrelation eine Assoziation erzeugt, bei der jede Spalte ein Member-Element der
Assoziation darstellt. In diesen Member-Elementen ist das in der Spalte vorliegende Topic das
„Player“-Topic und der Spaltenname das „Role“-Topic. Aus diesen Informationen kann nachträglich
wieder eindeutig das ResultSet zusammengesetzt werden. Zusätzlich werden in dem XTM-Dokument
noch Topics für alle Topic Types der im Ergebnis enthaltenen Topics angelegt. Der XTM-Standard
selbst sieht keine Elemente für Topic Types vor22/23. Diese Beziehungen werden über das „instanceOf“
Element der einzelnen Topics abgebildet. Somit ist es nachträglich weiterhin möglich zu erkennen,
19
Vgl. TOPICMAPS.ORG (2001)
Vgl. AHMED, KALIL (2003): tolog ResultSets
21
Vgl. AHMED, KALIL (2003): Topic Map Fragment Exchange
22
Vgl. SCHMITZ, M.;SILLEKENS, T, (2003)
23
Vgl. TOPICMAPS.ORG (2001)
20
Seite 12
von welchem Typ ein bestimmtes Topic ist. Das umgewandelte Ergebnis einer beispielhaften Abfrage
kann in Abbildung 15 betrachtet werden.
Abbildung 15: Das Ergebnis einer TMQL-Abfrage im XTM-Format
2.5. Integration in bestehende Architektur
Die im Rahmen dieser Arbeit implementierte Schnittstelle fügt sich nahtlos in die bestehende
Architektur der Groupware-basierten Topic Map Engine ein. Neben einer Vielzahl bereits vorhandener
Visualisierungswerkzeuge und speziell für die Groupware-basierten Topic Map Engine entwickelten
Suchwerkzeuge, stellt die prototypische TMQL-Schnittstelle eine weitere Schnittstelle dar, die den
Anwendungsspielraum der Topic Map Engine erhöht. Die erweiterte Architektur wird in Abbildung
16 dargestellt. So greift die prototypische „Topic Map Query Language“-Abfragespracheschnittstelle
über die schon vorhandenen Schnittstellen auf die relationale Datenbank und die
Konfigurationsdatenbank in Lotus Domino zu.
Seite 13
Abbildung 16: Das um die TMQL Schnittstelle erweiterte GTME Framework
3. Technische Realisierung
Dieses Kapitel erläutert die technische Umsetzung der im Kapitel „Konzeption“ beschriebenen
Funktionalitäten des Prototyps. Im Einzelnen werden die verwendeten Komponenten, die darin
enthaltenen Javaklassen und weitere Änderungen erläutert.
3.1 Komponenten
Die drei wichtigsten Komponenten des Prototyps werden in Abbildung 17 dargestellt.
Abbildung 17: Die Komponenten des TMQL-Prototyps
Abfragen werden vom „TMQL-Query-Servlet“ entgegengenommen und an die „TMQL-Parser“Komponente weitergegeben. Der Parser wird benötigt, um generisch die vom Prototyp unterstützten
Sprachelemente erkennen zu können. Der Parser durchläuft dann die gegebene Abfrage und überführt
diese in eine Objektstruktur, die sich an den Produktionsregeln der unterstützten Sprachelemente
orientiert und die Abfrage in Objekten nachbildet. Diese „TMQL-Query“-Objektstruktur führt nun die
Abfrage auf der relationalen Datenbank durch und gibt das Ergebnis der Abfrage an das „TMQLSeite 14
Query-Servlet“ zurück. Die einzelnen Komponenten werden in den folgenden Kapiteln ausführlicher
beschrieben.
3.2 Java Klassen
Im folgenden Kapitel wird auf die einzelnen Javaklassen eingegangen, die im Rahmen dieser Arbeit
erstellt worden sind. Diese sind in drei Pakete eingeteilt worden, die sich grundsätzlich an der
beschriebenen Komponentenstruktur orientieren.
3.2.1. Tmql Parser package
Um eine kontextfreie Grammatik generisch verarbeiten zu können, ist ein Parser notwendig. Für Java
existiert mit dem Java Compiler Compiler (JavaCC) eine freies Entwicklungspaket, dass die
Entwicklung eines angepassten Parsers ermöglicht24. Dazu werden alle Produktionsregeln in der Datei
„TmqlParser.jjt“ aufgeführt. Diese Regeln können zusätzlich noch um Javabefehle erweitert werden,
so dass es möglich ist, die vom Parser vorgefundene Abfragestruktur in eine eigene Objektstruktur zu
überführen. Der Java Compiler Compiler überführt die Datei „TmqlParser.jjt“ in zwei Schritten in eine
eigene Javaquellcode Datei, die dann wiederum mit einem normalen Java Compiler in ausführbaren
Javacode übersetzt werden kann.
3.2.2. Tmql Query package
Im TmqlQuery Paket sind alle Elemente der Produktionsregeln der unterstützten Sprachelemente als
Javaklassen abgebildet. Diese werden vom TmqlParser benötigt, um die Abfrage in eine nutzbare
Objektstruktur zu überführen. In diesem Paket sind die „TmqlQuery“-Klasse in Verbindung mit der
„TmqlDatabaseSearchEngine“-Klasse die wichtigsten Konstrukte. Die „TmqlQuery“-Klasse enthält
die gesamte Logik, um Funktionen wie Projektion, Verknüpfungen und weitere Funktionen
durchzuführen. Die Daten aus der relationalen Datenbank liest in diesem Kontext die
„TmqlDatabaseSearchEngine“-Klasse aus.
3.2.3. Tmql package
Im Tmql Paket befindet sich vor allem die „ResultSet“-Klasse. Diese Klasse implementiert die weiter
oben beschriebenen Rückgabefunktionen in das HTML –Format und das XTM-Format. Sie ist das
zentrale Element, um mit den Abfrageergebnissen zu arbeiten. Zusätzlich werden in diesem Paket
auch die zentralen Elemente der Sortierfunktion implementiert, die direkt von der „ResultSet“-Klasse
ausgeführt werden. Die Klassen „Connection“ und „Statement“ orientieren sich an dem Java.sql Paket.
Vor allem die „Connection“-Klasse kann in einer weiteren Ausbaustufe des Prototyps dazu verwendet
werden, Abfragen auf verschiedene Topic Maps beziehungsweise Topic Map Engines zu ermöglichen.
Über verschiedene „Connection“-Objekte könnten Verbindungen zu verschiedenen Datenquellen
realisiert werden. Zusätzlich enthält dieses Paket die „Topic“-Klasse. Objekte von diesem Typ können
für ein TMQL-Abfrage Ergebnis aus dem ResultSet abgefragt werden.
3.2.4. TmqlQueryServlet
Die Klasse „TmqlQueryServlet“ ist das zentrale Element der Webanwendung des Prototyps. Über das
TmqlQueryServlet werden alle angefragten HTML-Seiten angezeigt und zusätzlich die TMQLAbfragen an den Parser weitergeleitet und das Abfrageergebnis zurückgegeben. Des Weiteren
implementiert das TmqlQueryServlet die in der Groupware-basierten Topic Map Engine vorhandene
Benutzerverwaltung.
24
Vgl. JAVACC (2005)
Seite 15
3.3. HTML Dateien
Für die Darstellung der einzelnen Seiten des TmqlQueryServlets wurden einige HTML-Seiten erstellt.
Sie befinden sich im „resource\html“ Ordner und können ohne Neukompilieren des Prototyps geändert
werden. Damit können Änderungen am Design der Webanwendung vorgenommen werden, ohne den
Quellcode der Applikation kennen und ändern zu müssen.
3.4. Änderungen in Konfigurationsdateien
Der in dieser Arbeit entstandene Prototyp greift auf wesentliche Klassen der Groupware-basierten
Topic Map Engine zurück. Aus diesem Grund mussten einige Konfigurationsdateien angepasst
werden, um bestimmte Funktionen nutzen zu können. In der Datei „log.properties“ wurde der Name
des Logs auf das TmqlQueryServlet angepasst. Die vom Prototyp benutzten HTML-Seiten wurden in
der „resources.properties“-Datei eingetragen. Zusätzlich wurden in der Datei „statements.properties“
die vom Prototyp benötigten SQL-Abfragestatements aufgenommen und diese durch zusätzliche
Einträge in der „rdb.properties“-Datei nutzbar gemacht.
4. Funktionen des Prototyps
In diesem Kapitel werden die einzelnen Funktionen des Prototyps vorgestellt.
4.1. Anmeldung und Navigation im Prototypen
Im Prototypen der „Topic Map Query Language“-Abfrageschnittstelle ist eine Benutzerverwaltung
integriert, die auf die registrierten Benutzer der GTME Lotus Domino Konfigurationsdatenbank
zurückgreift. Will ein Benutzer den Prototypen nutzen, so muss er sich zuerst am System anmelden.
Abbildung 18 zeigt die Anmeldemaske des Prototyps.
Abbildung 18: Die Anmeldemaske des Prototyps
Nach erfolgreicher Anmeldung wird das Hauptfenster des Prototyps angezeigt. Auf der linken Seite
findet sich der Navigationsbereich über den auf die einzelnen Seiten zugegriffen werden kann. Dieser
kann in Abbildung 19 betrachtet werden. Standardmäßig wird im Hauptteil des Fensters die
Abfragemaske angezeigt, auf die weiter unten detailliert eingegangen wird. Zu dieser kann man immer
durch die Verlinkung „Search“ im Navigationsbereich zurückkehren. Zusätzlich kann man über die
Verlinkung „Help“ die Hilfeseite anzeigen lassen. Weiterhin kann eine Informationsseite über das „KDiscovery“-Projekt aufrufen und sich den Haftungsausschluss („Disclaimer“) ansehen. Über den
Navigationspunkt „Logout“ kann man sich vom System abmelden.
Seite 16
Abbildung 19: Navigationsbereich des TMQL-Prototyps
4.2. Die Abfragemaske
Die nach der Anmeldung standardmäßig angezeigte Abfragemaske wird in diesem Kapitel ausführlich
beschrieben. Die Abfragemaske kann in Abbildung 20 betrachtet werden. Der Benutzer kann mithilfe
der Abfragemaske die auszuführende Abfrage definieren und das Rückgabeformat des
Abfrageergebnisses festlegen.
Abbildung 20: Die Abfragemaske des TMQL Prototyps
4.2.1. Abfrage mittels vorgegebener Abfrage
Der vorliegende Prototyp bietet einige vorgegebene Abfragen. Diese in Abbildung 20 abgebildeten
Abfragen können durch das Auswahlfeld ausgewählt werden. Durch das Betätigen des „Send Query“
Knopfes wird die Abfrage ausgeführt. Die vorgegebenen Beispielabfragen führen den Benutzer Schritt
für Schritt in die Fähigkeiten der Abfrageschnittstelle ein. Ausgehend vom „instance-of“-Prädikat,
werden dynamische Prädikate in ihren verschiedenen Varianten behandelt. Weiterhin werden
Beispiele für die Projektion mittels „SELECT … FROM“ und der Sortierung mittels „ORDER BY“
Seite 17
gegeben. Die letzte Abfrage befasst sich mit der UND-Verknüpfung. Da die beiden verknüpften
Prädikate auch einzeln als Beispiele aufgeführt sind, wird der Benutzer in die Lage versetzt, die
Funktionsweise der UND-Verknüpfung einfach nachzuvollziehen.
4.2.2. Definition eigener Abfragen
Weiterhin ist es für den Benutzer möglich, eigene Abfragen zu definieren und sich die Ergebnisse
ausgeben zu lassen. Dazu muss das Auswahlfeld neben dem Textfeld eingegeben werden und in das
Textfeld eine gültige TMQL-Abfrage eingegeben werden. Nach dem Betätigen des „Send query“
Knopfes wird das Ergebnis der Abfrage ermittelt und ausgegeben. Das Textfeld zur freien
Abfrageerstellung kann vom Benutzer genutzt werden, um sich mit der Syntax und den Fähigkeiten
der implementierten „Topic Map Query Language“-Abfragesprache vertraut zu machen.
4.2.3. Auswahl des Rückgabeformates
Für das Rückgabeformat stehen wie in dem Kapitel „Konzeption – Rückgabeformate“ beschrieben,
zwei Möglichkeiten zur Verfügung. Eine Möglichkeit ist, dass sich der Benutzer das Ergebnis im
HTML-Format im Webbrowser anzeigen lässt. Dies wird durch die Auswahl der Option „HTML
output“ erreicht. Dabei wird die zweidimensionale Ergebnisrelation wie oben beschrieben und in
Abbildung 14 dargestellt in eine Tabelle überführt. Hinter den einzelnen Einträgen ist das Occurrence
des Topics verlinkt. Eine weitere Möglichkeit ist die Ausgabe des Abfrageergebnisses im XTMFormat im Webbrowser. Verfügt dieser über einen XML-Parser, dann wird das Ergebnis in der XMLBaumansicht dargestellt. Zusätzlich ist es möglich über die Auswahl der Option „XTM download“ das
Abfrageergebnis als XTM-Dokument lokal zu speichern. Damit ist es möglich, die durch die Abfrage
erhaltenen Daten weiterzuverarbeiten und gegebenenfalls weiterzugeben.
5. Installation
Die Installation des „Topic Map Query Language“-Abfragespracheprototyps gestaltet sich bei einer
installierten Groupware-basierten Topic Map Umgebung als sehr einfach. Die einzelnen Schritte
werden hier zusammengefasst:
•
Die Datei „TmqlQueryServlet.war“ muss in das Apache Tomcat „webapps“-Verzeichnis
werden.
Beispiel: „C:\jakarta-tomcat-3.3.1a\webapps\TmqlQueryServlet.war“
•
Nun muss weiterhin die Datei „uriworkermap.properties“ angepasst werden. Diese befindet
sich im Tomcat Konfigurations-Verzeichnis „\conf\jk“.
Beispiel: „C:\jakarta-tomcat-3.3.1a\conf\jk\uriworkermap.properties”
In dieser Datei müssen folgende Zeilen ergänzt werden, damit Anfragen an das Servlet
weitergeleitet und verarbeitet werden:
/TmqlQueryServlet/*=ajp12
/TmqlQueryServlet =ajp12
•
Der Lotus Domino Server, und damit auch der Apache Tomcat, müssen neu gestartet werden.
Beim Neustart von Apache Tomcat wird die „TmqlQueryServlet.war“-Datei automatisch
entpackt und das Servlet steht als Webanwendung zur Verfügung
•
Der Prototyp der „Topic Map Query Language“-Abfragesprache kann nun durch Eingabe
folgender
URL
in
einem
Browser
gestartet
werden:
„http://servername/TmqlQueryServlet“
Seite 18
Diese Anleitung sollte benutzt werden, falls bereits eine Groupware-basierte Topic Map Engine
Umgebung eingerichtet ist. Für den Fall, dass diese noch nicht eingerichtet ist, sollte zuerst die
Groupware-basierte Topic Map Engine installiert werden. Eine Installationsanleitung findet sich in der
Konfigurationsdatenbank. Danach kann dann wie oben beschrieben der TMQL-AbfragesprachePrototyp installiert werden.
6. Fazit & Ausblick
Als Fazit der vorliegenden Arbeit lässt sich sagen, dass es möglich war, eine prototypische
Abfrageschnittstelle für die „Topic Map Query Language“-Abfragesprache für die Groupware-basierte
Topic Map Engine zu konzipieren und implementieren. Mit der in dieser Arbeit implementierten
Schnittstelle erhöhen sich die Nutzungsmöglichkeiten der Groupware-basierten Topic Map Engine für
weitere Anwendungsfelder. Die Abfrage von Topic Map Informationen ist nun über eine sich in der
Standardisierung befindliche Abfragesprache für andere Applikationen möglich geworden.
Für die Zukunft wäre es wünschenswert, den Standardisierungsprozess weiter zu verfolgen und den
Prototyp auf die endgültig verabschiedete „Topic Map Query Language“-Abfragesprache anzupassen.
Des Weiteren wäre es wünschenswert, den Prototypen um die Möglichkeit zu erweitern, Abfragen an
unterschiedliche Instanzen der Groupware-basierten Topic Map Engine stellen zu können. Eine
zusätzliche Erweiterung würde ein Importmechanismus darstellen, der mit Hilfe der „Topic Map
Query Language“-Abfragesprache Daten aus anderen Topic Maps abfragt und diese in der
Groupware-basierten Topic Map Engine speichert und über die vorhandenen Such- und
Visualisierungswerkzeuge nutzbar macht.
Seite 19
7. Abkürzungsverzeichnis
GTME
Groupware-basierte Topic Map Engine
JavaCC
Java Compiler Compiler
SQL
Structured Query Language
TMQL
Topic Map Query Language
URL
Uniform Resource Locator
XTM
XML Topic Maps
8. Quellenverzeichnis
AHMED, KALIL (2003):
TMShare – Topic Map Fragment Exchange In a Peer-To-Peer Application; 2003;
http://www.idealliance.org/papers/dx_xmle03/papers/02-03-03/02-03-03.pdf (Stand:
19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2003A):
TMQL Requirements 1.2.0; Working Draft; 2003;
http://www.y12.doe.gov/sgml/sc34/document/0448.htm (Stand: 19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2003B):
Topic Map Query Language, Use Cases; Technical Document; 2003;
http://www.y12.doe.gov/sgml/sc34/document/0448.htm (Stand: 19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2004):
TMQL 0.1 – Design Notes; Notes from SC34/WG3 meeting; 2004; Amsterdam
http://www.jtc1sc34.org/repository/0502.pdf (Stand: 19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2005A):
ISO/IEC JTC1 SC34 WG3; Arbeitsgruppenwebseite; 2005; http://www.isotopicmaps.org
(Stand: 19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2005B):
Topic Map Query Language; Projektwebseite; 2005; http://www.isotopicmaps.org/tmql/
(Stand: 19.04.2005)
ISO/IEC JTC1 SC34 WG3 (2005C):
Topic Maps Query Language; Working Draft; 2005;
http://www.isotopicmaps.org/tmql/spec.html (Stand: 19.04.2005)
JAVACC (2005):
Projektwebseite;2005; https://javacc.dev.java.net/ (Stand 20.04.2005)
K-DISCOVERY (2005):
K-Discovery; Projektwebseite; 2005; http://gtm.upb.de (Stand 20.04.2005)
Seite 20
MEIRONKE, J.; MEYER, M.; PETER, M. (2001):
Konzeption und Implementation einer Groupware-basierten Topic Map Engine;
Seminararbeit; Universität Paderborn; Lehrstuhl Wirtschaftsinformatik 2; Paderborn; 2001
ONTOPIA (2004):
tolog – Language Tutorial; 2004; http://www.ontopia.net/omnigator/docs/query/tutorial.html
(Stand: 19.04.2005)
ONTOPIA (2003):
tolog 1.0;Technical Report; 2003; http://www.ontopia.net/topicmaps/materials/tolog-spec.html
(Stand: 19.04.2005)
SCHMITZ, M.; SILLEKENS, T. (2003)
Entwicklung einer XML Schnittstelle; Projektarbeit; Universität Paderborn; Lehrstuhl
Wirtschaftsinformatik 2; Paderborn; 2003
TOPICMAPS.ORG (2001):
XML Topic Maps (XTM) 1.0; TopicMaps.Org Specification; 2001;
http://www.topicmaps.org/xtm/1.0/ (Stand: 19.04.2005)
Seite 21
Herunterladen