PDF (Eine graphische Benutzerschnittstelle für ein Volltext-Retrieval ...
PDF (Eine graphische Benutzerschnittstelle für ein Volltext-Retrieval ...
PDF (Eine graphische Benutzerschnittstelle für ein Volltext-Retrieval ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
For: hemmje<br />
Printed on: Fri, May 19, 1995 12:13:59<br />
From book: LyberReport<br />
Document: LTh_Titel<br />
Last saved on: Fri, May 19, 1995 12:06:42<br />
Document: LTh_Inhalt<br />
Last saved on: Fri, May 19, 1995 12:06:42<br />
Document: LTh_AbbVerz<br />
Last saved on: Fri, May 19, 1995 12:06:42<br />
Document: LTh_C1<br />
Last saved on: Fri, May 19, 1995 12:06:42<br />
Document: LTh_C2<br />
Last saved on: Fri, May 19, 1995 12:06:43<br />
Document: LTh_C3<br />
Last saved on: Fri, May 19, 1995 12:06:44<br />
Document: LTh_C32<br />
Last saved on: Fri, May 19, 1995 12:06:48<br />
Document: LTh_C34<br />
Last saved on: Fri, May 19, 1995 12:06:48<br />
Document: LTh_C35<br />
Last saved on: Fri, May 19, 1995 12:06:50<br />
Document: LTh_C41<br />
Last saved on: Fri, May 19, 1995 12:06:51<br />
Document: LTh_C42<br />
Last saved on: Fri, May 19, 1995 12:06:52<br />
( ...)
Angaben <strong>für</strong> Titelblatt der GMD-Studie:<br />
Titel:<br />
<strong>Eine</strong> <strong>graphische</strong> <strong>Benutzerschnittstelle</strong><br />
<strong>für</strong> <strong>ein</strong> <strong>Volltext</strong> <strong>Retrieval</strong> System<br />
auf der Basis<br />
interaktiver dreidimensionaler<br />
Visualisierung<br />
Autoren:<br />
Matthias Hemmje<br />
Clemens Kunkel<br />
Alexander Willett<br />
Erstellt bei:<br />
Gesellschaft <strong>für</strong> Mathematik und Datenverarbeitung<br />
(GMD)<br />
Institut <strong>für</strong> integrierte Publikations- und Informationssysteme<br />
(IPSI)<br />
1
Zusammenfassung:<br />
Die vorliegende Arbeit beschreibt die Grundlagen und die Entwicklung <strong>ein</strong>er prototypischen<br />
<strong>Benutzerschnittstelle</strong> (”LyberWorld”) <strong>für</strong> <strong>Volltext</strong>-Informationssysteme<br />
auf der Basis dreidimensionaler räumlicher Visualisierungen. Die Arbeit wurde am<br />
Institut <strong>für</strong> Intergrierte Publikations- und Informationssysteme (IPSI) der Gesellschaft<br />
<strong>für</strong> Mathematik und Datenverarbeitung (GMD) in Darmstadt durchgeführt.<br />
Die Entwicklungs und Implementierungsarbeiten wurden innerhalb der Abteilung<br />
<strong>für</strong> Visuelle Interaktionswerkzeuge des Forschungsbereiches <strong>für</strong> Kognitive <strong>Benutzerschnittstelle</strong>n<br />
(CUI) innerhalb <strong>ein</strong>er zweijährigen Studie von den Autoren<br />
durchgeführt.<br />
Das LyberWorld-System realisiert Visualisierungen <strong>ein</strong>es abstrakten Informationsraumes<br />
– <strong>Volltext</strong>. Innerhalb der vorliegenden Arbeit wird <strong>ein</strong> Modell zur Visualisierung<br />
<strong>ein</strong>es solchen Informationsraumes vom aktuellen Stand der Forschung ausgehend<br />
abgeleitet. Die vorgestellte exemplarische <strong>Benutzerschnittstelle</strong> arbeitet auf<br />
der Basis von INQUERY, <strong>ein</strong>em probabilistischen <strong>Volltext</strong>-<strong>Retrieval</strong> System der<br />
University of Massachusetts. Die vorgestellten Visualisierungen erlauben dem Benutzer<br />
verschiedene direktmanipulative Aktivitäten wärend <strong>ein</strong>er interaktiven Informationssuche<br />
in großen Textmengen. Entsprechende Visualisierungswerkzeuge<br />
ermöglichen ihm <strong>ein</strong>en intuitiven Zugriff auf textuelle Informationen auf der Basis<br />
von räumlichen Metaphern. In <strong>ein</strong>er visuellen räumlichen Informationswelt befriedigt<br />
der Benutzer s<strong>ein</strong> Informationsbedürfnis mit Hilfe s<strong>ein</strong>er natürlichen Fähigkeit<br />
zur visuellen Wahrnehmung und Orientierung im Raum.<br />
2
3
4
5
6
7
8
1. Einleitung und Motivation<br />
”Ein Bild ersetzt 10.000 Worte”<br />
Dieses chinesische Sprichwort verdeutlicht den hohen Wert von Bildern und <strong>graphische</strong>n<br />
Darstellungen zur Vermittlung und Darstellung von Informationen.<br />
Der Wert von Bildern wird besonders bei Lösungen und Präsentationen wissenschaftlicher<br />
Probleme deutlich. In Disziplinen wie der Physik oder den Ingenieurwissenschaften<br />
bedient man sich häufig <strong>ein</strong>er <strong>graphische</strong>n Darstellung in Form von<br />
Diagrammen, um Informationen schneller erfaßbar zu machen. Mit zweidimensionalen<br />
Diagrammen lassen sich beispielsweise Beziehungen zwischen verschiedenen<br />
Größen effektiver darstellen als durch <strong>ein</strong>e textuelle Beschreibung [LARKIN87].<br />
Bei <strong>ein</strong>er <strong>graphische</strong>n Informationsdarstellung kann Information auf Attribute wie<br />
Farbe, Form, Größe oder Position abgebildet werden. So lassen sich semantische<br />
Beziehungen auf geometrische Abstände der Darstellung abbilden. Wichtigkeit von<br />
Information läßt sich gut durch Größe oder Farbintensität der Darstellung codieren.<br />
<strong>Eine</strong> solche Abbildung auf <strong>graphische</strong> Attribute ist intuitiv und somit schneller erfaßbar<br />
als <strong>ein</strong>e textuelle Beschreibung.<br />
Graphische <strong>Benutzerschnittstelle</strong>n<br />
Die Vorteile <strong>ein</strong>er <strong>graphische</strong>n Informationsdarstellung haben sich in den letzten<br />
Jahren immer stärker auf die Gestaltung moderner Anwendungssoftware ausgewirkt.<br />
Graphische <strong>Benutzerschnittstelle</strong>n haben die Kommandooberflächen der ersten<br />
Rechnergenerationen abgelöst. Bei <strong>graphische</strong>n <strong>Benutzerschnittstelle</strong>n wird<br />
der Vorteil der Informationsabbildung auf <strong>graphische</strong> Gegebenheiten nicht nur zur<br />
Darstellung der dem Benutzer zu übermittelnden Informationen genutzt, sondern<br />
auch zur Formulierung dessen Aktionen.<br />
Die wohl meistverwendete Metapher <strong>für</strong> <strong>ein</strong>e Benutzeroberfläche ist die <strong>ein</strong>er<br />
Schreibtischoberfläche. Auf dieser Oberfläche werden Objekte, die dem Benutzer<br />
aus s<strong>ein</strong>er ’natürlichen’ Arbeitsumgebung vertraut sind, plaziert. So können Dateien<br />
durch Dokumente oder Akten, Verzeichnisse durch Ordner und verschiedene Blicke<br />
auf die Arbeitsumgebung durch Fenster dargestellt werden. Der Benutzer braucht<br />
s<strong>ein</strong>e Befehle nicht textuell <strong>ein</strong>zugeben, sondern kann sie durch Aktionen wie Auswählen<br />
oder Bewegen von Objekten der Oberfläche formulieren.<br />
Das Löschen <strong>ein</strong>er Datei geschieht beispielsweise nicht mehr durch Eingabe <strong>ein</strong>es<br />
Befehls, sondern durch das Auswählen und das anschließende Bewegen des Dateisymbols<br />
auf das Symbol <strong>ein</strong>es Papierkorbes.<br />
Der Erfolg der fensterbasierten Benutzeroberflächen zeigt, daß es auch dem ungeübten<br />
Benutzer möglich ist, sich in der an s<strong>ein</strong>e natürliche Umgebung angepaßten Arbeitsumgebung<br />
zurechtzufinden.<br />
Vorteile dreidimensionaler Darstellung<br />
9
Diese Arten von zweidimensionalen Metaphern sind jedoch in ihrer Effektivität <strong>ein</strong>geschränkt,<br />
da Darstellung und Benutzerinteraktion auf die Ebene beschränkt sind.<br />
In <strong>ein</strong>er räumlichen Darstellung fällt es dem Benutzer leichter, in der Umgebung zu<br />
interagieren, da <strong>ein</strong>e noch bessere Simulation der natürlichen Umgebung erreicht<br />
werden kann und so Fähigkeiten wie Orientierung besser <strong>ein</strong>gesetzt werden können.<br />
Neben den <strong>graphische</strong>n Metaphern zur Definition von <strong>Benutzerschnittstelle</strong>n sind<br />
auch Modelle zur <strong>graphische</strong>n Darstellung abstrakter Informationsstrukturen meist<br />
zweidimensional. Es gibt <strong>ein</strong>e Vielzahl solcher Modelle, wie zum Beispiel Tabellen,<br />
Graphen, Bäume und Netzwerke. Der Grund der Beschränkung auf zwei Dimensionen<br />
mag zum <strong>ein</strong>en, in der durch nicht rechnergestützte Arbeit erworbenen Gewohnheit<br />
zu finden s<strong>ein</strong>. Zum anderen sind erst die neuesten Rechnersysteme in der Lage,<br />
bewegte dreidimensionale Graphiken ausreichend schnell zu generieren.<br />
Die Entwicklung von Hard- und Softwaresystemen, welche die Möglichkeiten bieten,<br />
sowohl statische, als auch animierte dreidimensionale Szenen mit hoher Qualität<br />
zu visualisieren, hat die aktuelle Forschung veranlaßt, sich verstärkt auf das Design<br />
dreidimensionaler Metaphern zu konzentrieren.<br />
M. Hemmje diskutiert in [HEMMJE] die Vorteile <strong>ein</strong>er Erweiterung der <strong>graphische</strong>n<br />
Informationsdarstellung um die dritte Dimension und formuliert diese in folgenden<br />
Hypothesen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Im 3D-Raum kann Information über <strong>ein</strong> Element an <strong>ein</strong>em Ort<br />
lokalisiert werden; dadurch erübrigt sich die Verwendung symbolischer<br />
Ausdrücke und die Suche nach ihnen.<br />
Räumliche Darstellungen sind nicht deshalb besonders vorteilhaft,<br />
weil sie potentiell mehr Information enthalten, sondern weil<br />
die durch Anordnung im Raum möglichen Indexierungen der Information<br />
die Informationsverarbeitungsprozesse des Menschen<br />
effizient unterstützen<br />
Darstellungen im 3D-Raum unterstützen intuitive Schlußfolgerungen<br />
des Menschen, die <strong>für</strong> ihn unbewußt und damit ’<strong>ein</strong>fach’<br />
sind.<br />
Für den Menschen stellt <strong>ein</strong> 3D-Raum <strong>ein</strong>en natürlichen Bezugsrahmen<br />
zur Verfügung, in den er sich <strong>ein</strong>ordnen kann. Anders als<br />
beim 2D-Raum kann der Mensch sich selbst auf natürliche Weise<br />
als Teil des Raumes empfinden und sich in diesem Raum lokalisieren.<br />
Bei der Informationsvermittlung im Raum stehen durch Position,<br />
Blickwinkel, Entfernung und Perspektive neue Parameter<br />
(gegenüber 2D) zur Verfügung, die zu benutzerspezifischen<br />
Parametern wie Standpunkt, Interesse oder Erfahrung in <strong>ein</strong>e direkte<br />
Beziehung gesetzt werden können.<br />
Diffuses räumliches Erinnerungsvermögen mit Ahnungen wie<br />
’das war dort hinten links irgendwo’ ist mit Hilfe von unscharfen<br />
10
Abbildungen formulierbar. Dadurch kann <strong>ein</strong>e Navigation mit<br />
zunächst vagem Ziel im Raum oder in der Zeit (Dialoggeschichte)<br />
unterstützt werden.<br />
<strong>Eine</strong> dreidimensionale <strong>Benutzerschnittstelle</strong><br />
Mit der vorliegenden Arbeit wollen wir die Konzeption und Realisierung <strong>ein</strong>er interaktiven<br />
dreidimensionale <strong>Benutzerschnittstelle</strong> <strong>für</strong> <strong>ein</strong> vektorbasiertes Information-<br />
<strong>Retrieval</strong>-System vorstellen. Die <strong>Benutzerschnittstelle</strong> stellt dem Benutzer Interaktionswerkzeuge<br />
zur Führung des <strong>Retrieval</strong>dialogs und zur Auswertung, der aus der<br />
Datenbank extrahierten Ergebnismenge, zur Verfügung.<br />
Durch die Entwicklung <strong>ein</strong>er dreidimensionalen <strong>graphische</strong>n Darstellung des Datenbankinhalts<br />
ist es dem Benutzer möglich, in der abstrakten Datenstruktur zu navigieren.<br />
Ziel <strong>ein</strong>er Interaktion mit den Werkzeugen ist es, daß der Benutzer durch<br />
intuitiv erlernbare Interaktionen, wie dem Navigieren in <strong>ein</strong>er dreidimensionalen<br />
Struktur den Information-<strong>Retrieval</strong>-Prozeß steuern kann.<br />
Die Informationsvermittlung durch <strong>graphische</strong> Darstellung soll das Erlernen komplizierter<br />
Datenbankanfragesprachen ersetzen.<br />
In Kapitel 2 wird zunächst der Stand der Technik von Soft- und Hardwaresystemen<br />
zur Graphikdarstellung und von <strong>graphische</strong>n Eingabegeräten beschrieben. Im Rahmen<br />
der Beschreibung wird jeweils genauer auf die zur Realisierung des Prototyps<br />
verwendete Soft- und Hardware <strong>ein</strong>gegangen.<br />
Kapitel 3 b<strong>ein</strong>haltet <strong>ein</strong>e Beschreibung des Aufbaus verschiedener Information-<strong>Retrieval</strong>-Systemmodelle<br />
und anschließend die Beschreibung von PUBLICAT, <strong>ein</strong>em<br />
traditionellen biblio<strong>graphische</strong>n IR-System. Im Abschnitt 3.5. wird genauer auf das<br />
Modell des vektorbasierten Information-<strong>Retrieval</strong> <strong>ein</strong>gegangen. Mit dem Abschnitt<br />
über das INQUERY-System folgt die Beschreibung des vektorbasierten IR-Systems,<br />
auf dem die in dieser Arbeit vorgestellte interaktive 3D-<strong>Benutzerschnittstelle</strong><br />
aufsetzt.<br />
Mit Kapitel 4 folgt nun <strong>ein</strong>e umfassende Beschreibung der drei Interaktionswerkzeuge,<br />
die die <strong>Benutzerschnittstelle</strong> bilden. Zunächst wird das Werkzeug zur Visualisierung<br />
und Führung des Suchdialogs, der ’Kontextbaum’, vorgestellt. Zur Präsentation<br />
der mit dem Kontextbaum erzeugten Ergebnismenge wird im folgenden<br />
Abschnitt das Interaktionswerkzeug der ’Relevanzkugel’ definiert und zum Abschluß<br />
folgt noch <strong>ein</strong>e kurze Erläuterung des ’Dokumentenraumes’, mit welchem<br />
der Inhalt der Elemente der Datenbank visualisiert werden kann.<br />
In Kapitel 5 wird die Realisierung des Prototyps ‘LyberWorld’ beschrieben. Im ersten<br />
Abschnitt des Kapitels wird anhand <strong>ein</strong>es Beispielsuchvorgangs das Ersch<strong>ein</strong>ungsbild<br />
und die Funktionalität des bestehenden Systems vorgestellt. Der zweite<br />
Abschnitt beschäftigt sich mit der Realisierung des Systems als C++ Programm. An<br />
dieser Stelle wird besonders auf die Klassenhierarchie und die wichtigsten Methoden<br />
der <strong>ein</strong>zelnen Klassen des Programms <strong>ein</strong>gegangen. Den Abschluß des Kapitels<br />
bilden <strong>ein</strong>ige Beispiele zur Erweiterung des Systems.<br />
11
2. Stand der rechnergestützten 3D-Graphik<br />
Dieses Kapitel bietet <strong>ein</strong>en Überblick über die bestehenden Softwarenormen <strong>für</strong><br />
Graphik-Modellierungssysteme und den Stand der Technik der Graphikhardwaresysteme.<br />
Desweiteren werden das verwendete Softwarepaket IRIS Inventor Toolkit<br />
der Firma Silicon Graphics und die Architektur der verwendeten Graphikworkstations<br />
der gleichen Firma genauer beschrieben. Im letzten Teil werden die Vorteile<br />
multidimensionaler Eingabegeräte diskutiert.<br />
2.1. Stand der Hardwaretechnik<br />
Die frühen 50er Jahre werden von den meisten Autoren als Geburtsstunde der<br />
Computergraphik angesehen [MACH78], [CACM84]. <strong>Eine</strong>s der ersten Systeme das<br />
Computergraphik zur Realisierung <strong>ein</strong>er Mensch-Maschine-Schnittstelle nutzte,<br />
war das ’SAGE air-defence-system’, welches Mitte der 50er Jahre entwickelt und<br />
<strong>ein</strong>gesetzt wurde.<br />
Der Benutzer des SAGE–Systems saß vor <strong>ein</strong>er radarschirmartigen Anzeige, welche<br />
statt Punkten Symbole anzeigte, die der Benutzer mit Hilfe <strong>ein</strong>es Lichtgriffels auswählen<br />
konnte. Der Computer war außerdem in der Lage, Landkartenumrisse zu generieren<br />
die dem Benutzer als Umgebung und Orientierungshilfe angezeigt wurden.<br />
Der nächste Meilenst<strong>ein</strong> in der Geschichte der Computergraphik war die Entwicklung<br />
des ’Sketchpad’ von Ivan Sutherland, <strong>ein</strong>em Doktoranten des MIT in den frühen<br />
60er Jahren [SUTH63]. In den Arbeiten im Rahmen s<strong>ein</strong>er Promotion definierte<br />
Sutherland bereits <strong>graphische</strong> Primitive wie Linien, Polygone und Bögen, auf welche<br />
Grundoperationen wie Translation, Rotation und Skalierung angewendet werden<br />
konnten.<br />
Diese Definitionen bildeten bereits das theoretische Fundament <strong>für</strong> später definierte<br />
Graphiknormen, die im folgenden Kapitel 2.2. beschrieben sind.<br />
2.1.1. Vektor- und Rastergraphik<br />
Erst Ende der 50er und Anfang der 60er Jahre machten Forscher verschiedener Labors<br />
(MIT, Universität Illinois) erste Versuche, <strong>ein</strong>e Kathodenstrahlröhre (CRT =<br />
Cathode Ray Tube) als Datensichtgerät zu verwenden. Die Kathodenstrahlröhre hat<br />
sich seither trotz vieler neuer Technologien als meistangewandtes Ausgabegerät be-<br />
12
hauptet. Gründe hier<strong>für</strong> sind unter anderem die hohe Auflösung, die <strong>ein</strong>fache Adressierung<br />
und der niedrige Gerätepreis bei hoher Zuverlässigkeit.<br />
Die Kathodenstrahlröhre wird sowohl in Vektor- als auch in Rastersichtgeräten <strong>ein</strong>gesetzt<br />
und bildet somit das Ausgabegerät fast aller Graphiksysteme.<br />
Das Konzept der Vektorgraphik war die Basis der meisten frühen Graphiksysteme.<br />
Bei <strong>ein</strong>er Kathodenstrahlröhre zur Wiedergabe von Vektorgraphiken, wird wie bei<br />
<strong>ein</strong>em Oszilloskop der Elektronenstrahl auf den Kanten, aus denen das darzustellende<br />
Objekt besteht, bewegt.<br />
In <strong>ein</strong>em Rastergraphiksystem wird das darzustellende Objekt aus <strong>ein</strong>zelnen Bildpunkten<br />
zusammengesetzt. Der Elektronenstrahl läuft in horizontalen Linien das<br />
gesamte Bild ab und erhellt die Bildpunkte, aus denen das darzustellende Objekt besteht.<br />
Der Vorteil der Vektordarstellung ist der wesentlich geringere Speicherbedarf zur<br />
Speicherung <strong>ein</strong>es Bildes. Während bei der Rasterdarstellung der Zustand jedes<br />
Bildpunktes gespeichert werden muß, reicht es bei der Vektordarstellung aus, die<br />
Eckpunktkoordinaten der darzustellenden Objekte zu speichern. Allerdings muß der<br />
Vorteil des geringeren Speicherbedarfs mit <strong>ein</strong>em wesentlich komplizierteren Elektronenstrahlablenksystem<br />
in der Kathodenstrahlröhre bezahlt werden.<br />
Mit der schnellen Entwicklung der Speicherbaust<strong>ein</strong>e durch die VLSI Technik und<br />
dem damit verbundenen Preisverfall setzten sich die Rastergraphiksysteme durch.<br />
2.1.2. Moderne Rastergraphiksysteme<br />
Da die <strong>ein</strong>zelnen Berechnungen, welche zur Darstellung von Rastergraphiken nötig<br />
sind, leicht unterteilt werden können, nutzen moderne Graphiksysteme Parallelisierung,<br />
um <strong>ein</strong>e höhere Leistungsfähigkeit zu erreichen, d.h. die Teilberechnungen<br />
werden auf verschiedene parallelarbeitende Prozessoren verteilt.[AKEL89]<br />
Die Darstellungspipeline moderner geometriebasierter Rastergraphiksysteme läßt<br />
sich in fünf fundamentale Schritte unterteilen:<br />
1. Generierung G <strong>graphische</strong>r Daten und ihre Organisation<br />
in Datenstrukturen<br />
2. Traversierung T der Datenstrukturen und Berechnung der<br />
Weltkoordinaten der Graphik<br />
3. Transformation X in Bildschirmkoordinaten und<br />
Ausführung von Clipping– und Shadingoperationen<br />
4. Zeilenrasterung S (Scan Conversion) Beschreibung des<br />
Rasterspeichers<br />
5. Anzeige D (Display) Darstellung des Rasterspeicherinhalts<br />
auf dem Bildschirm<br />
13
Die Entwicklung moderner Graphiksysteme b<strong>ein</strong>haltet also weniger <strong>ein</strong>e Entscheidung<br />
ob Teilberechnungen auf verschiedene Graphikprozessoren verteilt werden,<br />
sondern vielmehr wie <strong>ein</strong>e solche Aufteilung realisiert wird. Entschieden werden<br />
muß, welche der fünf Aufgaben speziellen Graphikprozessoren und welche den<br />
Prozessoren der CPU übertragen werden.<br />
Die Anzeige der Daten des Rasterspeichers auf dem Bildschirm variiert nicht zwischen<br />
verschiedenen Graphikanwendungen, ist aber sehr zeitintensiv. Aus diesem<br />
Grund wird sie in allen modernen Graphiksystemen <strong>ein</strong>em speziellen Graphikprozessor<br />
zugeordnet.<br />
Auch bei der Realisierung der Generierung der Graphikdaten unterscheiden sich die<br />
verschiedenen Graphiksysteme nicht, da diese Aufgabe aufgrund ihrer Komplexität<br />
und der verschiedenen Variationsmöglichkeiten immer programmierbaren Prozessoren<br />
übertragen wird.<br />
Die <strong>für</strong> diese Arbeit verwendeten Graphikworkstations der Firma Silicon Graphics<br />
sind mit <strong>ein</strong>er GT–XSD Architektur realisiert, d.h. Die Generierung und Traversierung<br />
der Graphikdaten wird mit programmierbaren Prozessoren realisiert, während<br />
die restlichen drei Aufgaben speziellen Graphikprozessoren übertragen werden.<br />
(Abbildung 1.1.)<br />
<strong>Eine</strong> genauere Diskussion der Vor– und Nachteile der verschiedenen GTXSD Architekturen<br />
findet man in [AKEL 89] und [FOLEY90].<br />
14
G,T<br />
memory<br />
FPU<br />
CPU<br />
screen<br />
R<br />
G<br />
B<br />
geometry<br />
engine<br />
rendering<br />
engine<br />
frame<br />
buffer<br />
bit to video<br />
converter<br />
z–buffer<br />
X S D<br />
Architektur <strong>ein</strong>er Silicon Graphics 4D/240GTX Worksta-<br />
Abbildung: 1.1.<br />
tion<br />
2.2. Stand der Softwaretechnik<br />
Die schnelle Entwicklung der Hardware im Bereich der Computergraphik führte in<br />
den späten 70er und Anfang der 80er Jahre zu Standardisierungen im Softwarebereich.<br />
Der erste Schritt auf dem Weg zu den heutigen Graphiknormen war die Veröffentlichung<br />
des CORE-Systems im Jahre 1977. Mit CORE, <strong>ein</strong>er Entwicklung des ACM/<br />
SIGGRAPH Graphics Standards Planing Committee, lag <strong>ein</strong>e erste Definition <strong>ein</strong>es<br />
portablen geräteunabhängigen Graphiksystems vor. <strong>Eine</strong> Graphik wird im CORE-<br />
System aus <strong>graphische</strong>n Primitiven, welche mit Attributen versehen werden, erzeugt.<br />
Ende 1982 wurde dann mit GKS das erste Graphikkernsystem als ANSI–Norm verabschiedet<br />
[ENC88]. Die GKS-Norm definiert <strong>ein</strong>e <strong>ein</strong>heitliche Schnittstelle zwischen<br />
Anwenderprogramm und Graphiksystem.<br />
15
Abbildung 1.2. zeigt die Einordnung <strong>ein</strong>es Kernsystems in die Systemhierarchie.<br />
Das Anwendungsprogramm findet nur über die sprachabhängige Schicht den Kontakt<br />
zum Kernsystem. Das Kernsystem ist folglich sprachunabhängig und muß in die<br />
jeweils gewünschte Programmiersprache <strong>ein</strong>gebettet werden. Da die gesamte Einund<br />
Ausgabe über das Betriebsystem stattfindet, ist das Kernsystem zudem geräteunabhängig.<br />
Anwendungsprogramm<br />
anwendungsorientierte Schicht<br />
sprachabhängige Schicht<br />
Kernsystem<br />
Betriebssystem<br />
andere Betriebsmittel<br />
<strong>graphische</strong> Betriebsmittel<br />
Abbildung: 1.2.<br />
S.13]<br />
Kernsystems in der Systemhierarchie [DIN 66252 Teil1,<br />
Von der Konzeption war GKS als 2D–System ausgelegt. Im Jahre 1985 wurde <strong>ein</strong>e<br />
3D–Erweiterung als GKS–3D normiert. Bei dieser Definition fehlte allerdings <strong>ein</strong>e<br />
hierarchische Datenstruktur und somit die Voraussetzung zur Verknüpfung von Bildelementen<br />
zu komplexeren 3D-Objekten. Aus diesem Grund ist GKS-3D <strong>für</strong> die<br />
wichtigste 3D-Anwendung, das Computer Aided Design (CAD), ungeeignet.<br />
2.2.1. Programmierschnittstelle <strong>für</strong> 3D-Graphiken<br />
<strong>Eine</strong> geeignetere Anwenderprogramm-Graphiksystem-Schnittstelle <strong>für</strong> 3D-Graphik<br />
ist das PHIGS-System (Programmer’s Hierarchical Interactive Graphics System),<br />
das im Oktober des Jahres 1986 als ANSI–Norm festgelegt wurde [FO-<br />
LEY90]. Wie schon der Name andeutet, besteht der Hauptunterschied zu GKS in der<br />
konsequenten Beschreibung aller <strong>graphische</strong>n Objekte mittels hierarchischer Datenstrukturen<br />
als 3D-Modell.<br />
Ein 3D-Objekt wird aus <strong>ein</strong>zelnen geometrischen Primitiven konstruiert, die in <strong>ein</strong>em<br />
gerichteten azyklischen Graphen (DAG) zusammengefaßt werden. Jedes so definierte<br />
Objekt kann in weiteren Definitionen als neues geometrisches Primitiv an-<br />
16
gesehen und verwendet werden. An <strong>ein</strong>em Beispiel aus [FOLEY90] (Abbildung<br />
1.3.) läßt sich der hierarchische Aufbau der Datenstruktur verdeutlichen.<br />
Mit der Datenstruktur des <strong>graphische</strong>n Objektes Roboter werden gleichzeitig primitivere<br />
<strong>graphische</strong> Objekte wie Oberkörper, Arm oder Finger definiert.<br />
Roboter<br />
Unterkörper<br />
Oberkörper<br />
Arm<br />
a. 3D–Objekt b. Datenstruktur<br />
Finger<br />
Abbildung: 1.3.<br />
Ein 3D-Objekt als gerichteter azyklischer Graph<br />
Die Erweiterung von PHIGS um Funktionen, die <strong>für</strong> <strong>ein</strong>e pseudorealistische Darstellung,<br />
d.h. <strong>für</strong> <strong>ein</strong>e möglichst natürlich anmutende Darstellung, notwendig sind,<br />
heißt PHIGS+. Diese Erweiterungen schließen unter anderem verschiedene Shadingfunktionen,<br />
verschiedene Beleuchtungsmodelle und <strong>graphische</strong> Grundoperationen<br />
wie Set of Filled Set (SOFAS), Meshes oder Non Uniform Rational B–Splines<br />
(NURBS) <strong>ein</strong>.<br />
2.2.2. Die Graphics Libary GL<br />
Neben den Standards, welche von offiziellen Gremien verabschiedet werden, gibt<br />
es die sogenannten Industrie- oder de Facto-Standards, die sich über <strong>ein</strong>e breite Akzeptanz<br />
der Benutzer am Markt durchsetzen.<br />
So entwickelte die Firma Silicon Graphics etwa zeitgleich mit der Entwicklung des<br />
PHIGS-Systems die Graphics Libary GL [SILICON91]. <strong>Eine</strong> Softwareschnittstelle,<br />
die <strong>ein</strong>e Programmierung der leistungsstarken Graphikhardware der Firma ermöglicht.<br />
GL ist als <strong>ein</strong>e weitgehend sprachunabhängige Bibliothek von Unterroutinen realisiert,<br />
die es ermöglichen 2D und 3D Farbgraphiken darzustellen und zu animieren.<br />
Bei der Entwicklung von GL-Graphiken liefert die jeweils verwendete Programmiersprache<br />
die logische Struktur der Anwendung, während die Routinen der Graphics<br />
Libary die Schnittstelle zum Graphiksystem darstellen.<br />
17
2.2.3. IRIS Inventor<br />
Inventor ist <strong>ein</strong>e objektorientierte Erweiterung der Graphics Libary, die aus <strong>ein</strong>er<br />
umfangreichen Klassenbibliothek besteht [INVEN92],[STRAU92]. Die Inventorklassen<br />
ermöglichen <strong>ein</strong>e Definition von 3D-Objekten als sogenannte ’Szenen’ in<br />
Form <strong>ein</strong>es gerichteten azyklischen Graphen ähnlich der hierarchischen Datenstruktur<br />
des PHIGS–Systems.<br />
2.2.3.1. Der Aufbau <strong>ein</strong>es Szenengraphen<br />
Der Graph, der <strong>ein</strong>e dreidimensionale Szene definiert, wird ’Szenengraph’ genannt.<br />
Jeder Knoten des Graphen entspricht <strong>ein</strong>er Informations<strong>ein</strong>heit, mit der die Szene<br />
beschrieben wird. Es gibt drei verschiedene Arten von Knoten. Formknoten (shapenodes)<br />
beschreiben die Form <strong>ein</strong>es Körpers der Szene. Mit Hilfe der Formknoten<br />
lassen sich Basiskörper definieren, aus denen nach <strong>ein</strong>em ’Baukastenprinzip’ komplexe<br />
Szenen zusammengesetzt werden können.<br />
Dieses ’Zusammensetzten’ entspricht in etwa dem Prinzip des körperorientierten<br />
geometrischen Modellieren durch die Constructive Solid Geometry (CSG) [FO-<br />
LEY92]. In der Constructive Solid Geometry werden die <strong>graphische</strong>n Objekte in <strong>ein</strong>er<br />
baumartigen Datenstruktur repräsentiert. Die Blätter des Baumes repräsentieren<br />
die <strong>graphische</strong>n Primitive bzw. Basiskörper, aus denen das gesamte Objekt zusammengesetzt<br />
wird. Transformationen werden durch die inneren Knoten des Baumes<br />
definiert.<br />
Im Szenengraphen des Inventorsystems werden <strong>graphische</strong> Attribute wie Transformationen<br />
und Materialien durch <strong>ein</strong>e weitere Art von ’Blattknoten’ definiert.<br />
Transformationsknoten beschreiben Rotationen, Translationen und Skalierungen,<br />
welche die Größe, Position und Ausrichtung der <strong>ein</strong>zelnen Szenenobjekte festlegen.<br />
Mit der dritten Knotenart, dem Gruppenknoten, können die objektbeschreibenden<br />
Knoten zu Graphen und Subgraphen zusammengefaßt werden. Die Gruppenknoten<br />
sind also die inneren Knoten des Szenengraphen. Die Gruppenknoten unterscheiden<br />
sich durch die Reihenfolge, in der ihre Kinder beim Vorgang des ’Renderings’ bearbeitet<br />
werden. Das Rendern <strong>ein</strong>er Graphik geschieht durch die in Kapitel 2.1.1. erläuterte<br />
Zeilenrasterung und dem damit verbundenen Beschreiben des Rasterspeichers<br />
(Frame Buffer). Das Rendering <strong>ein</strong>er Datenstruktur ist folglich die<br />
Visualisierung der durch die Struktur definierten Szene.<br />
Abbildung 1.4. zeigt <strong>ein</strong>en Szenengraphen zur Darstellung <strong>ein</strong>es Armes des Roboters<br />
aus Abbildung 1.3.. Ein Eigenschaftsknoten vererbt die durch ihn festgelegten<br />
<strong>graphische</strong>n Objekteigenschaften in der Struktur des Szenengraphen an die im Graphen<br />
rechts von ihm definierten Teilobjekte der Szene. Folglich müssen die Eigenschaftsknoten<br />
im Szenengraphen immer links der Objekte stehen, die sie be<strong>ein</strong>flussen<br />
sollen. Der in Abbildung 1.4. dargestellte Knoten cube, welcher <strong>ein</strong>en Quader<br />
definiert, erbt die durch die Knoten transformation und material definierten <strong>graphische</strong>n<br />
Eigenschaften und erhält so s<strong>ein</strong>e Oberflächenstruktur, s<strong>ein</strong>e Größe und s<strong>ein</strong>e<br />
Position im Raum.<br />
18
Arm–Gruppe<br />
transformation material cube<br />
Der Roboterarm aus Abbildung 1.3. als Inventor Szenen-<br />
Abbildung: 1.4.<br />
graph<br />
Die Festlegung der <strong>graphische</strong>n Attribute als Objekte und ihre Eingliederung in die<br />
Hierarchie des Szenengraphen hat den Vorteil, daß Eigenschaften nicht <strong>für</strong> jedes<br />
<strong>graphische</strong> Objekt neu definiert werden müssen. Ein Eigenschaftsknoten be<strong>ein</strong>flußt<br />
alle <strong>graphische</strong>n Objekte, die rechts von ihm im Szenegraphen <strong>ein</strong>gebunden sind.<br />
Das Material des gesamten Roboters muß in unserem Beispiel also nur durch <strong>ein</strong>en<br />
Materialknoten, der sich ganz links oben im Graphen befindet, festgelegt werden.<br />
Abbildung 1.5. zeigt <strong>ein</strong>en Szenengraphen, mit dem der gesamte Roboter repräsentiert<br />
wird. Links neben jedem Formknoten und jedem Gruppenknoten liegen jeweils<br />
die Transformationsknoten, welche die Transformationen der Basiskörper und der<br />
durch die Gruppenknoten definierten <strong>graphische</strong>n Teilobjekte b<strong>ein</strong>halten. Der Materialknoten<br />
direkt unter dem Wurzelknoten be<strong>ein</strong>flußt alle Formknoten des Szenengraphen<br />
und legt somit daß Material der gesamten Szene fest.<br />
19
Roboter<br />
material<br />
Oberkörper<br />
Kopf<br />
B<strong>ein</strong><br />
trans.<br />
cube<br />
Arme<br />
trans.<br />
cube<br />
trans.<br />
cube<br />
trans.<br />
linker Arm<br />
trans.<br />
rechter Arm<br />
trans.<br />
cube<br />
trans.<br />
cube<br />
Abbildung: 1.5. Szenengraph des Roboters aus Abbildung 1.3.<br />
2.2.3.2. Definition von <strong>graphische</strong>n Teilobjekten durch Pfade<br />
Der Vorteil <strong>ein</strong>er hierarchischen Datenstruktur zur Repräsentation <strong>ein</strong>er Szene ist die<br />
Verknüpfung von Bildelementen zu komplexen 3D-Objekten und Szenen. Es können<br />
dadurch die Teilobjekte <strong>ein</strong>er Szene erkannt, ausgewählt und verändert werden.<br />
Dies ist insbesondere zur Entwicklung interaktiver Graphiken notwendig, um Interaktionen<br />
auf Teilen <strong>ein</strong>er Szene durchführen zu können.<br />
Bei <strong>ein</strong>er Szenendefinition mittels <strong>ein</strong>es Szenengraphen tritt das Problem auf, daß<br />
Teilobjekte mehrfach im Graphen auftreten können. So werden im Beispiel des<br />
’Roboterszenengraphen’ der linke und der rechte Arm des Roboters durch die gleiche<br />
Gruppe von ’Blattknoten’ definiert. Ein bestimmtes Teilobjekt der Szene kann<br />
also nur durch <strong>ein</strong>e Knotenliste, die alle Knoten von der Wurzel des Szenengraphen<br />
bis zur Wurzel des Teilobjekts enthält, spezifiziert werden.<br />
<strong>Eine</strong> solche Liste von Knoten heißt im Inventor-System Pfad. Wenn der Benutzer<br />
<strong>ein</strong>er interaktiven Graphik <strong>ein</strong> Teilobjekt der Szene auswählt, so wählt er den Pfad<br />
im Szenengraphen aus, der das Teilobjekt spezifiziert.<br />
20
Abbildung 1.6. zeigt den Pfad im ’Roboterszenengraphen’, der den Finger des linken<br />
Arms des Roboters spezifiziert.<br />
Roboter<br />
Oberkörper<br />
Kopf<br />
B<strong>ein</strong><br />
Arme<br />
linker Arm<br />
rechter Arm<br />
Oberarm<br />
Finger<br />
Abbildung: 1.6.<br />
Beispiel <strong>ein</strong>es Pfades in <strong>ein</strong>em Szenengraphen<br />
2.2.3.3. Operationen auf dem Szenengraphen<br />
Auf den gesamten Szenengraphen sowie auf Teile deselben können Operationen angewendet<br />
werden. Diese als sogenannte ’Actions’ definierten Operationen werden<br />
entweder an die Wurzel des Szenengraphen oder an <strong>ein</strong>en Pfad im Graphen angehängt.<br />
Bei der Aktivierung <strong>ein</strong>er solchen Aktion wird der Szenengraph von links<br />
oben nach rechts unten traversiert und in jedem Knoten wird <strong>ein</strong>e der Aktion zugeordnete<br />
Reaktion hervorgerufen. So gibt es zum Beispiel <strong>ein</strong>e Inventor Aktion die<br />
das Rendern, d.h. die Visualisierung des Szenegraphen bewirkt.<br />
2.3. Stand der Eingabegerätetechnik<br />
Mit der Entwicklung neuer Graphiksysteme entsteht auch immer <strong>ein</strong>e Nachfrage<br />
nach neuartigen Eingabegeräten, die den Möglichkeiten der Graphik und dem Inter-<br />
21
aktionsbedürfnis des Benutzers besser gerecht werden als Geräte, welche <strong>für</strong> <strong>ein</strong>e<br />
alphanummerische Datenverarbeitung entwickelt wurden. So hat sich die Maus als<br />
Eingabegerät <strong>für</strong> interaktive zweidimensionale Graphik, insbesondere durch die<br />
Mitte der 80er Jahre entwickelten fensterbasierten zweidimensionalen Benutzeroberflächen,<br />
durchgesetzt.<br />
2.3.1. Tastatur<strong>ein</strong>gabegeräte<br />
Bei Graphikanwendungen besteht <strong>ein</strong>e Benutzerinteraktion oft aus <strong>ein</strong>er kontinuierlichen<br />
Bewegung von <strong>graphische</strong>n Objekten der Darstellung. So muß zum Beispiel<br />
bei <strong>ein</strong>er fensterbasierten Benutzeroberfläche der Mauszeiger in der Bildschirmebene<br />
bewegt werden.<br />
Zur Steuerung <strong>ein</strong>er <strong>graphische</strong>n Anwendung mit <strong>ein</strong>er Tastatur muß jede mögliche<br />
Bewegungsrichtung der Objekte durch <strong>ein</strong>e bestimmte Taste ausgelöst werden. <strong>Eine</strong><br />
solche Steuerung ist nicht intuitiv verständlich, da es <strong>für</strong> den Benutzer nicht ersichtlich<br />
ist welche Taste welche Bewegung in der Darstellung auslöst.<br />
Ein weiteres Problem der Bewegungssteuerung durch Tastendruck oder Halten <strong>ein</strong>er<br />
Taste während der Bewegung ist, daß der Benutzer nicht die Geschwindigkeit<br />
der Bewegung durch die Geschwindigkeit s<strong>ein</strong>er Eingabeaktion be<strong>ein</strong>flußen kann.<br />
Je mehr verschiedene Interaktionsmöglichkeiten dem Benutzer zur Anwendungssteuerung<br />
zur Verfügung gestellt werden, desto mehr Tasten müssen mit Bewegungsrichtungen<br />
der <strong>graphische</strong>n Objekte belegt werden. Bei komplizierteren Systemen<br />
ist es daher nur <strong>ein</strong>em geübten Benutzer möglich, die Graphikanwendung<br />
über <strong>ein</strong>e Tastatur zu steuern.<br />
2.3.2. Graphische Eingabegeräte<br />
In zweidimensionalen Graphikanwendungen muß der Benutzer folgende Objektbewegungen<br />
und Aktionen ausführen können:<br />
Translation in der Darstellungsebene, d.h. Veränderung der<br />
Position in der Ebene.<br />
Rotation des Objektes, d.h. Veränderung der Objektausrichtung.<br />
Auswahl <strong>ein</strong>es Objektes der Darstellung.<br />
Um <strong>ein</strong>e Translation in der Ebene durchzuführen muß das Eingabegerät über zwei<br />
Freiheitsgrade verfügen. Ein zusätzlicher Freiheitsgrad wird zur Manipulation der<br />
Objektorientierung in der Ebene benötigt. Zur Objektauswahl ist <strong>ein</strong>e Taste am Eingabegerät<br />
ausreichend.<br />
22
Als Eingabegerät <strong>für</strong> die Interaktion mit zweidimensionaler Graphik, hat sich neben<br />
dem Lichtgriffel und dem <strong>graphische</strong>n Tablett besonders die Maus durchgesetzt.<br />
Diese ’2D-Eingabegeräte’ verfügen jeweils über zwei Freiheitsgrade, und <strong>ein</strong>e<br />
Möglichkeit zur Objektauswahl. Aufgrund des fehlenden dritten Freiheitsgrades<br />
wird die Objektrotation simuliert. Bei der Maus kann dies zum Beispiel durch drükken<br />
<strong>ein</strong>er Maustaste während <strong>ein</strong>er Seitwärtsbewegung realisiert werden.<br />
y<br />
y<br />
x<br />
x<br />
z<br />
Abbildung: 1.7.<br />
Freiheitsgrade in zwei- und dreidimensionaler Graphik<br />
Zur Manipulation dreidimensionaler Szenen lassen sich die folgenden Bewegungen<br />
und Aktionen definieren [FELGER92]:<br />
Translation <strong>ein</strong>es Objekts, d.h. Veränderung der Objektposition<br />
im Raum.<br />
Rotation <strong>ein</strong>es Objekts der Szene, d.h. Veränderung der<br />
Objektausrichtung im Raum.<br />
Auswahl von Szenenobjekten.<br />
Im Vergleich zur Interaktion mit zweidimensionalen Graphiken muß <strong>ein</strong> Eingabegerät<br />
<strong>für</strong> <strong>ein</strong>e dreidimensionale Graphik über sechs Freiheitsgrade verfügen. Drei <strong>für</strong><br />
die Translationen in Richtung der drei Achsen welche den Darstellungsraum aufspannen<br />
und drei zur Durchführung der Rotationen um die drei Achsen.<br />
2.3.2.1. Manipulation dreidimensionaler Graphik mit der Maus<br />
Um mit Eingabegeräten mit weniger Freiheitsgraden dreidimensionale Graphiken<br />
manipulieren zu können, müssen mehrere Bewegungen auf <strong>ein</strong>e Eingabebewegung<br />
abgebildet werden.<br />
23
<strong>Eine</strong> solche Mehrfachbelegung von Freiheitsgraden des Eingabegerätes läßt sich<br />
wiederum <strong>für</strong> die Maus definieren:<br />
<br />
Gedrückt halten der linken Maustaste während der Mausbewegung<br />
verursacht <strong>ein</strong>e Translation in der xy-Ebene und<br />
gleichzeitiges gedrückt halten der linken und der mittleren<br />
Maustaste während der Mausbewegung verursacht <strong>ein</strong>e<br />
Translation in der xz-Ebene.<br />
y<br />
x<br />
z<br />
y<br />
x<br />
z<br />
<br />
Gedrückt halten der mittleren Maustaste während der<br />
Mausbewegung verursacht die Rotation des <strong>graphische</strong>n<br />
Objekts um <strong>ein</strong>e virtuelle Kugel.<br />
y<br />
x<br />
z<br />
<br />
Die unbenutzte rechte Maustaste bleibt zum Auswählen<br />
<strong>graphische</strong>r Objekte der Szene.<br />
2.3.2.2. Der Spaceball, Eingabegerät mit sechs Freiheitsgraden<br />
Der Spaceball ist <strong>ein</strong> stationäres Eingabegerät in Form <strong>ein</strong>er Kugel [FOLEY90],<br />
[SPACE91]. Der Benutzer kann Kraft auf diese Kugel in Richtung der Translationen<br />
und Rotationen ausüben. Die ausgeübte Kraft wird auf die Veränderung von Position<br />
24
und Orientierung der Objekte der Szene abgebildet (s. Abbildung 1.8.). Der Spaceball<br />
ist folglich <strong>ein</strong>e Eingabegerät mit sechs Freiheitsgraden.<br />
1<br />
y<br />
4<br />
4<br />
2<br />
6 3 5<br />
1<br />
6<br />
2 2<br />
3<br />
2<br />
5<br />
x<br />
3<br />
3<br />
1<br />
1<br />
z<br />
Abbildung: 1.8.<br />
Abbildung der Kräfte auf Bewegungen<br />
Zur Objektauswahl steht dem Benutzer <strong>ein</strong>e Taste auf der Kugeloberfläche zur Verfügung,<br />
die er mit der gleichen Hand bedienen kann, mit der er die Objektbewegung<br />
steuert.<br />
Ein Nachteil, welcher das intuitive Verständnis des Benutzers <strong>für</strong> die Interaktion erschweren<br />
kann, ist, daß nicht <strong>ein</strong>e Bewegung der Hand sondern das Ausüben <strong>ein</strong>er<br />
Kraft Bewegungen der <strong>graphische</strong>n Objekte verursacht.<br />
2.3.2.3. Der Datenhandschuh<br />
Mit <strong>ein</strong>em Datenhandschuh als Eingabegerät <strong>für</strong> <strong>ein</strong>e Graphikanwendung, kann der<br />
Benutzer durch Bewegung s<strong>ein</strong>er Hand mit der Anwendung interagieren.<br />
Die Realisierung <strong>ein</strong>es solchen Datenhandschuhs ist der ’DataGlove’ von VPL Research.<br />
Er kann die Handposition und -orientierung und die Bewegung der <strong>ein</strong>zelnen<br />
Finger als Eingabe an die Anwendung liefern.<br />
Der DataGlove ist <strong>ein</strong> Handschuh auf dessen Rückenfläche fünf lichtempfindliche<br />
Sensoren aufgenäht sind, die dazu dienen den Grad der Fingerkrümmung aufzunehmen.<br />
Jeder Sensor besteht aus <strong>ein</strong>em kurzen Fieberglaskabel an dessen beiden Enden<br />
<strong>ein</strong>e Leuchtdiode und <strong>ein</strong> Photowiderstand angebracht sind. Die Intensität des<br />
Lichtes der Leuchtdiode welches auf den Photowiderstand trifft, ist proportional zur<br />
Krümmung des betreffenden Fingers.<br />
Position und Orientierung des Handschuhs werden mit <strong>ein</strong>em auf dem Handschuhrücken<br />
befestigtem 6D-Sensors, dem ’3Space Isotrack’ von Polhemus aufgenommen.<br />
25
Der Datenhandschuh ist wie der Spaceball <strong>ein</strong> <strong>graphische</strong>s Eingabegerät mit sechs<br />
Freiheitsgraden. Er vermittelt dem Benutzer <strong>ein</strong> intuitiveres Verständnis <strong>für</strong> die Interaktion<br />
mit dreidimensionalen Szenen, da die Bewegung der Szenenobjekte durch<br />
<strong>ein</strong>e gleichartige Bewegung des Eingabegerätes gesteuert werden kann.<br />
Desweiteren können mit Hilfe der Werte des Krümmungsgrades der <strong>ein</strong>zelnen Finger<br />
Handgesten und -posen definiert werden, mit denen der Benutzer bestimmte Aktionen<br />
ausführen und Reaktionen der Anwendung hervorrufen kann [BORD93]. So<br />
kann zum Beispiel das Auswählen <strong>ein</strong>es <strong>graphische</strong>n Objektes durch das ’Greifen’<br />
nach dem Objekt erfolgen.<br />
26
3. Information <strong>Retrieval</strong><br />
Ein Information-<strong>Retrieval</strong>-System ist <strong>ein</strong> Computer Programm, mit dem <strong>für</strong> <strong>ein</strong>e<br />
Problemstellung relevante Information aus <strong>ein</strong>er großen Informationsmenge extrahiert<br />
werden kann.<br />
Im folgenden nennen wir die ’große Informationsmenge’ Datenbank. Die Information<br />
innerhalb der Datenbank besteht aus Dokumenten. Wenn wir also von Wiedergewinnung<br />
relevanter Information sprechen, wollen wir diejenige Menge von Dokumenten<br />
aus der Datenbank extrahieren, die bezüglich unseres Interesses relevant<br />
ist. Unser Interesse formulieren wir in <strong>ein</strong>er Anfrage, auf die das <strong>Retrieval</strong>-System<br />
durch Präsentation der relevanten Dokumente reagiert.<br />
Trivialerweise würde <strong>ein</strong> <strong>Retrieval</strong>-System, welches auf jede Anfrage immer alle<br />
Dokumente als Ergebnismenge präsentiert, immer auch das Benutzerinteresse erfüllen,<br />
solange überhaupt relevante Dokumente in der Datenbank existieren. Zur Effektivität<br />
<strong>ein</strong>es Information-<strong>Retrieval</strong>-Systems gehört also nicht nur das sichere Finden<br />
der gesuchten Information, sondern auch das sichere Ausblenden der nicht<br />
gesuchten Information. Als Maß <strong>für</strong> die Effektivität werden darum precision und recall<br />
angegeben[ENDN89].<br />
precision <br />
recall <br />
gefundene und relevante Dokumente<br />
gefundene Dokumente<br />
gefundene und relevante Dokumente<br />
relevante Dokumente<br />
Beide Werte sind wegen ihrer Relevanzabschätzungen schlecht operationalisierbar.<br />
Sie vedeutlichen aber den Konflikt zwischen Ergebnismengen mit vielen nicht relevanten<br />
Dokumenten und Ergebnismengen, in denen viele relevante Dokumente fehlen.<br />
3.1. Aufbau von Information–<strong>Retrieval</strong>–Systemen<br />
Ein Information-<strong>Retrieval</strong>-System läßt sich in drei funktional getrennte Komponenten<br />
zerlegen. <strong>Eine</strong> Schnittstelle erlaubt die Steuerung des Systems. Die <strong>Retrieval</strong>–<br />
Maschine dient der Wiedergewinnung der gesuchten Information und die Dateiorganisation<br />
ist <strong>für</strong> die Speicherung der Datenbasis zuständig. Abbildung 2.1. zeigt die<br />
27
Abhängigkeiten der Komponenten und den schematischen Ablauf <strong>ein</strong>es iterativen<br />
<strong>Retrieval</strong>prozesses.<br />
Suchanfrage<br />
<strong>ein</strong>lesen<br />
Transitions<br />
datei<br />
Suchanfrage<br />
absetzen<br />
Suchwort<br />
datei<br />
<strong>Retrieval</strong>–<br />
Maschine<br />
Ergebnismenge<br />
präsentieren<br />
Text<br />
datei<br />
Ja<br />
neue<br />
Anfrage<br />
stellen?<br />
N<strong>ein</strong><br />
Ende<br />
Schnittstelle <strong>Retrieval</strong>-Maschine Dateiorganisation<br />
Abbildung: 2.1.<br />
Iterativer <strong>Retrieval</strong>prozeß<br />
28
3.1.1. <strong>Retrieval</strong>-Maschine<br />
Die <strong>Retrieval</strong>–Maschine b<strong>ein</strong>haltet den Informationswiedergewinnungsprozeß. <strong>Eine</strong><br />
Anfrage wird ausgewertet, indem, je nach zugrunde liegendem Modell, die Menge<br />
der Dokumente bestimmt wird, die die Anfrage erfüllen. Die verschiedenen Auswertungsstrategien<br />
bieten sich <strong>für</strong> <strong>ein</strong>e Klassifizierung von<br />
Information-<strong>Retrieval</strong>-Systemen an. In [BELKIN92] wird vorgeschlagen, drei Modelle<br />
zu unterscheiden.<br />
3.1.1.1. Boolesches <strong>Retrieval</strong><br />
Das boolesche <strong>Retrieval</strong>-Modell basiert auf exakter Erfüllung <strong>ein</strong>er Anfrage durch<br />
<strong>ein</strong> Dokument. <strong>Eine</strong> Anfrage besteht aus Suchwörtern oder Sätzen, die durch boolesche<br />
Operatoren verknüpft werden. Ein Dokument erfüllt die Anfrage, wenn es die<br />
Suchwörter oder Sätze in der durch die booleschen Operatoren geforderten Konstellation<br />
enthält. Gehen wir zum Beispiel von den booleschen Operatoren AND, OR<br />
und NOT aus, und nehmen an, daß A, B, C und D Suchwörter sind. Die Anfrage<br />
AND(A OR(B C) NOT(D)) wird von allen Dokumenten erfüllt, die A enthalten und<br />
B oder C enthalten und D nicht enthalten.<br />
<strong>Eine</strong> Unterscheidung der Dokumente in der Ergebnismenge findet nicht statt. Insbesondere<br />
wird k<strong>ein</strong>erlei Relevanz der Dokumente in oder außerhalb der Ergebnismenge<br />
berücksichtigt.<br />
3.1.1.2. Best-Match <strong>Retrieval</strong><br />
Im <strong>Retrieval</strong>-Modell des Best-Match wird die Forderung nach exakter Erfüllung der<br />
Anfrage aufgegeben und da<strong>für</strong> <strong>ein</strong>e Sortierung der Dokumente nach dem Grad ihrer<br />
Erfüllung der Anfrage <strong>ein</strong>geführt. Durch die Beispielanfrage AND(A OR(B C)<br />
NOT(D)) könnte durchaus <strong>ein</strong> Dokument gefunden werden, in dem das Wort D, trotz<br />
der Forderung NOT(D), vorkommt. Dies ist sinnvoll, wenn D als wenig relevant <strong>ein</strong>gestuft<br />
und der Rest der Anfrage mit hoher Über<strong>ein</strong>stimmung erfüllt wird.<br />
Zentrale Frage dieses Modells ist die Bewertung der Relevanz, die <strong>ein</strong> Suchwort <strong>für</strong><br />
<strong>ein</strong> Dokument hat. Grundlage dieses <strong>Retrieval</strong>-Modells ist die Idee, daß <strong>ein</strong> Dokument<br />
als Vektor in <strong>ein</strong>em Inhaltsraum aufgefaßt werden kann. Im Kapitel 3.5. gehen<br />
wir auf vektorbasierte Systeme genauer <strong>ein</strong>.<br />
3.1.1.3. Probabilistisches <strong>Retrieval</strong><br />
Bezüglich der Erfassung des Inhaltes <strong>ein</strong>es Dokumentes und der Erfassung des Benutzerinteresses<br />
durch <strong>ein</strong>e Anfrage besteht Unsicherheit. Dieses Modell versucht<br />
dem Rechnung zu tragen, indem mit Mitteln der Wahrsch<strong>ein</strong>lichkeitsrechnung abgeschätzt<br />
wird, wie gut <strong>ein</strong> Dokument das Benutzerinteresse erfüllt. Statistische Verteilungen<br />
und Vorkommenshäufigkeiten von Begriffen spielen dabei <strong>ein</strong>e wichtige<br />
29
Rolle. INQUERY ist <strong>ein</strong> probabilistisches <strong>Retrieval</strong>-System und wird in Kapitel 3.6.<br />
ausführlich vorgestellt.<br />
3.2. Dateiorganisation <strong>ein</strong>es Information-<strong>Retrieval</strong>-<br />
Systems<br />
Basis vieler Information–<strong>Retrieval</strong>–Systeme sind drei Dateitypen [ENDN89]. In <strong>ein</strong>er<br />
Textdatei sind alle Informationen als Text abgelegt. In <strong>ein</strong>er Suchwortdatei sind<br />
alle Begriffe gespeichert, die als Suchwort dienen können und in <strong>ein</strong>er Transitionsdatei<br />
werden schließlich Verweise zwischen Suchwort und zugehörigem Text abgelegt.<br />
Diese drei Dateien bilden die Datenbasis des Systems. Abbildung 2.2. auf Seite<br />
31 veranschaulicht den schematischen Aufbau der Datenbasis. Beispielhaft sind in<br />
der Textdatei die zwei Einträge D1 und D2 wiedergegeben. Zwischen dem Suchwort<br />
’energy’ und dem Dokument D1 besteht <strong>ein</strong> Verweis. Der Verweis ist in der Transitionsdatei<br />
enthalten und ist durch t1 gekennzeichnet. Ein zweiter Verweis besteht<br />
zwischen ’solar’ und D2. Dieses Beispiel ist der CORDIS-Datenbank über EG Projekte<br />
entnommen. Tatsächlich gehen von den Suchwörtern ’energy’ und ’solar’ <strong>ein</strong>e<br />
Vielzahl von weiteren Verweisen aus. Auch die beiden Beispieldokumente werden<br />
von <strong>ein</strong>er Vielzahl von Verweisen getroffen.<br />
3.3. Schnittstellen<br />
Als Grundtypen <strong>für</strong> Schnittstellen lassen sich interaktive <strong>Benutzerschnittstelle</strong>n und<br />
Programmierschnittstellen unterscheiden. Das im Kapitel 3.4. vorgestellte PUBLI-<br />
CAT-System verfügt über <strong>ein</strong>e interaktive <strong>Benutzerschnittstelle</strong>. Das im Kapitel<br />
3.6.4.1. beschriebene Application Programmers Interface von INQUERY ist <strong>ein</strong><br />
Beispiel <strong>für</strong> <strong>ein</strong>e Programmierschnittstelle.<br />
Strategien zur Erhöhung der Benutzerfreundlichkeit setzen oft bei der Schnittstelle<br />
an. Sie zielen darauf ab, dem Benutzer möglichst komfortable Unterstützung bei der<br />
Erstellung s<strong>ein</strong>er Suchanfrage zu leisten. Als Beispiele seien hier die Benutzerführung<br />
durch <strong>graphische</strong> Oberflächen und wissensbasierte Systeme genannt, die phonetische<br />
Suche unterstützen, Synonyme erkennen oder <strong>ein</strong>e quasi natürlichsprachlich<br />
formulierte Suchanfrage akzeptieren.<br />
30
Textdatei<br />
31<br />
Abbildung: 2.2. Dateiorganisation <strong>ein</strong>es Information-<strong>Retrieval</strong>-Systems<br />
Suchwort<br />
Datei<br />
aalbog<br />
abat<br />
abb<br />
abbrev<br />
endurance<br />
enea<br />
energy<br />
energetic<br />
soil<br />
sol<br />
solar<br />
solderability<br />
solenoid<br />
ZrNiAl<br />
ZrO(2)<br />
zylene<br />
Transitions<br />
Datei<br />
t1<br />
t2<br />
D1<br />
D2<br />
TENTH EC PHOTOVOLTAIC SOLAR ENERGY CONFERENCE<br />
Around 350 contributions from 53 countries were presented at the proceedings of<br />
the 10th European Photovoltaic Solar Energy Conference. Session topics included:<br />
– high efficiency cells and novel devices<br />
– crystalline silicon materials and devices<br />
– amorphous silicon and related materials and alloys<br />
– photovoltaic (PV) systems technology – compound semiconductor solar cells<br />
– hybrid and utility photovoltaics – stand–alone PV systems<br />
– PVs in developing countries – organisation and training needs<br />
– national programms and<br />
– international aid.<br />
The Panel discussion dealt with the topic of mass production of PV electricity.<br />
THERMAL COMFORT IN BUILDINGS WITH PASSIVE SOLAR FEATURES<br />
Field studies in domestic and non–domestic buildings in France, Germany and Grat<br />
Britain have been performed in order to assess thermal comfort in buildings with<br />
passivs solar features. Air and global temperatures, air velocity and relative humidity<br />
were measured, while respondents completed a questionnaire which gave details of<br />
activity levels and clothing worn. They also described their thermal sensations on a<br />
9–point rating scale, as well as their environmental priorities. Results are published for<br />
each building type. One of the general conclusions is that there do not appear to be<br />
significant differences between buildings with passive solar features ans those without,<br />
in terms of the experience of their occupants. The general satisfaction with passive<br />
solar houses was, however, very high.
3.4. PUBLICAT<br />
Am Beispiel von PUBLICAT soll in diesem Kapitel gezeigt werden, wie die Recherche<br />
mit <strong>ein</strong>em konventionellen <strong>Retrieval</strong>-System abläuft. Es wurde bewußt auf<br />
die Beschreibung der umfangreichen, zusätzlichen Funktionalität des Systems verzichtet,<br />
um nicht vom eigentlichen <strong>Retrieval</strong>prozeß abzulenken. Im Vordergrund<br />
des folgenden Textes steht aus diesem Grund die <strong>Benutzerschnittstelle</strong> und der Sitzungsverlauf.<br />
PUBLICAT enthält als Datenbank den Zentralkatalog der GMD-Bibliotheken also<br />
<strong>ein</strong>e biblio<strong>graphische</strong> Datenbank. Die Dokumente der Datenbank sind kurze und<br />
stark strukturierte Texte. Der Umfang der Datenbank beträgt etwa 100000 Einträge.<br />
Die <strong>Retrieval</strong>-Engine des Systems folgt dem booleschen Modell. Die Anfrage des<br />
Benutzers führt zu <strong>ein</strong>er Ergebnisliste, in der alle Dokumente aufgeführt sind, die<br />
die Anfrage im booleschen Sinn mit TRUE erfüllen. Wir werden sehen, daß boolesches<br />
<strong>Retrieval</strong> anfällig <strong>für</strong> den unbeabsichtigten Ausschluß von relevanten Dokumenten<br />
ist und das PUBLICAT Möglichkeiten bietet, dieser Gefahr zu begegnen.<br />
Die <strong>Benutzerschnittstelle</strong> ist als Fenstersystem realisiert. Zur Benutzerführung stehen<br />
Eingabefelder, Buttons, Menüs zur Verfügung. Die Formulierung der Suchanfragen<br />
wird komfortabel unterstützt.<br />
3.4.1. Recherchefenster<br />
Die Recherche im Bibliothekskatalog beginnt mit dem Recherchefenster. In den<br />
Maskenfeldern können Suchbegriffe <strong>ein</strong>getragen werden. Die Maskenfelder korrespondieren<br />
mit den Feldern der Datenbank. Die Angabe <strong>ein</strong>es Suchbegriffs im Feld<br />
’Titel’ hat <strong>ein</strong>e Suche des Begriffs in den Titelfeldern der Bibliotheksdatenbank zur<br />
Folge.<br />
In den Maskenfeldern können Suchbegriffe <strong>ein</strong>getragen werden. Nimmt man Eintragungen<br />
in mehreren Feldern vor oder gibt mehrere Wörter in <strong>ein</strong>em Feld <strong>ein</strong>, so<br />
werden diese in der Suchanfrage mit AND verknüpft. Die Eingabe der Suchbegriffe<br />
’virtual’ und ’reality’ im Titelfeld führt zu <strong>ein</strong>er Suche nach allen Dokumenten, in<br />
deren Titel sowohl das Wort ’virtual’ als auch das Wort ’reality’ vorkommt. PUBLI-<br />
CAT findet 18 Einträge. Wünscht man <strong>ein</strong>e oder-Verknüpfung der Begriffe, so kann<br />
man den OR-Operator explizit angeben. Die Suche nach ’virtual OR reality’ findet<br />
149 Einträge.<br />
Mit <strong>ein</strong>em ’?’ kann man Suchbegriffe trunkieren. Der Suchbegriff ’retrieval?’ paßt<br />
in s<strong>ein</strong>er trunkierten Form auf die Wörter ’retrieval’, ’retrievalsoftware’, ’retrievalsystem’<br />
usw. Das Trunkieren von Suchbegriffen ist <strong>ein</strong> Mittel, um die oft unerwünschte<br />
Forderung nach exakter Über<strong>ein</strong>stimmung von booleschen <strong>Retrieval</strong>-Maschinen<br />
aufzuweichen. <strong>Eine</strong> Suche mit der Eintragung ’Croft’ im Personenfeld geht<br />
32
leer aus, die Suche nach ’Croft, Bruce’ findet zwei Einträge, die Suche nach ’Croft,<br />
?’ liefert sieben Treffer. Nach kurzer Sichtung stellt sich heraus, daß alle relevant<br />
sind.<br />
Spezifiziert man im Feld ’Ersch. Jahr’ das Ersch<strong>ein</strong>ungsjahr <strong>ein</strong>er Veröffentlichung,<br />
kann das boolesche <strong>Retrieval</strong> schnell zu lästigen Einschränkungen führen.<br />
Will man s<strong>ein</strong>e Suche zum Beispiel auf Veröffentlichungen der letzten zehn Jahre<br />
beschränken, müßte der Eintrag lauten ’1993 OR 1992 OR 1991 OR 1990 OR ... OR<br />
1984’. Zur komfortableren Spezifikation solcher Anfragen ist in diesem Feld die<br />
Verwendung der Vergleichsoperatoren ’>’, ’=’, und ’= 1984’ spezifiziert werden.<br />
In <strong>ein</strong>em Ausgabefeld werden die generierten Anfragen und ihre Trefferzahl aufgelistet.<br />
Durch Mausselektion läßt sich <strong>ein</strong>e frühere Anfrage wieder aktivieren. Mehrere<br />
frühere Anfragen lassen sich durch oder-Verknüpfung oder durch und-Verknüpfung<br />
kombinieren. Der Benutzer selektiert sie dazu mit der Maus und wählt die<br />
Verknüpfung durch anklicken der Buttons ’Einsch. (AND)’ oder ’Erw. (OR)’ .<br />
Abbildung 2.3. zeigt das Recherchefenster. Die erwähnten Eingabebeispiele stehen<br />
noch im Suchanfrageausgabefeld.<br />
Abbildung: 2.3.<br />
Recherchefenster<br />
3.4.2. Ergebnisfenster<br />
Nachdem der Benutzer im Recherchefenster alle gewünschten Eingaben vorgenommen<br />
hat, betätigt er den ’Suchen’ Button. Das System generiert darauf <strong>ein</strong>e Anfrage<br />
33
in <strong>ein</strong>em speziellen Syntax und übergibt ihn der <strong>Retrieval</strong>-Maschine. Nach der Evaluierung<br />
meldet sich die <strong>Benutzerschnittstelle</strong> mit dem Ergebnisfenster zurück.<br />
Des Ergebnisfenster gibt Auskunft über die Anzahl der gefundenen Einträge. In <strong>ein</strong>er<br />
blätterbaren Kurztitelanzeige wird die Ergebnisliste präsentiert. Jedes Element<br />
der Liste wird in <strong>ein</strong>er Zeile dargestellt, die Titel, Autor und Ersch<strong>ein</strong>ungsjahr des<br />
gefundenen Dokuments wiedergibt. Die Kurztitelanzeige umfaßt acht Zeilen. Ist die<br />
Trefferanzahl höher, kann die Liste geblättert werden.<br />
In Folge der booleschen <strong>Retrieval</strong>maschine läßt die Stellung <strong>ein</strong>es Dokuments in der<br />
Liste k<strong>ein</strong>erlei Aufschluß über dessen Relevanz zu. Alle Einträge der Liste erfüllen<br />
exakt die Anfrage und sind völlig gleichberechtigt.<br />
Als Beispiel ist in Abbildung 2.4. das Ergebnisfenster <strong>ein</strong>er Anfrage abgebildet. Die<br />
Anfrage spezifizierte als Ersch<strong>ein</strong>ungsjahr ’>= 1993’ und als Titel ’retrieval?’. Die<br />
Ergebnisliste enthält also alle Dokumente, die im Jahr 1993 erschienen sind und in<br />
deren Titel <strong>ein</strong> Wort vorkommt, welches mit der Buchstabenfolge ’retrieval’ beginnt.<br />
PUBLICAT findet 14 Treffer.<br />
Abbildung: 2.4.<br />
Ergebnisfenster<br />
3.4.3. Vollanzeigefenster<br />
Die Information aus der Kurztitelanzeige ermöglicht dem Benutzer <strong>ein</strong>en groben<br />
Überblick über das Ergebnis der Suche. Mit der Vollanzeige können die Details <strong>ein</strong>es<br />
gefundenen Eintrags angezeigt werden. Der Benutzer selektiert dazu <strong>ein</strong>e Zeile<br />
der Ergebnisliste in der Kurztitelanzeige und betätigt den ’Vollanzeige’-Button.<br />
34
Das Vollanzeigefenster ist dem Ergebnisfenster sehr ähnlich. Es enthält ebenfalls<br />
das achtzeilige Ausgabefenster, das aber nun ganz den bibliogaphischen Daten und<br />
Statusinformationen <strong>ein</strong>es Buches zur Verfügung steht. Benötigen diese mehr als<br />
acht Zeilen, so kann auch hier geblättert werden. Wenn <strong>ein</strong> Buch verliehen ist, befindet<br />
sich <strong>ein</strong> entsprechender Eintrag in der Anzeige.<br />
Abbildung: 2.5.<br />
Vollanzeigefenster<br />
35
3.5. Vektorbasierte IR Systeme<br />
Vektorbasierte Modelle sind im Bereich des Best-Match <strong>Retrieval</strong> weit verbreitet.<br />
Grundlage dieses Modells ist die Idee, daß <strong>ein</strong> Dokument als Vektor in <strong>ein</strong>em Inhaltsraum<br />
aufgefaßt werden kann. Die inhaltliche Verwandschaft von verschiedenen<br />
Dokumenten unter<strong>ein</strong>ander oder bezüglich <strong>ein</strong>er Anfrage kann durch den Abstand<br />
von Vektoren zum Ausdruck gebracht werden.<br />
Zentrale Eigenschaft dieses Modells ist die Berücksichtigung der Relevanz <strong>ein</strong>es<br />
Begriffes bezüglich <strong>ein</strong>es Dokuments und der Relevanz <strong>ein</strong>es Suchbegriffs bezüglich<br />
der Anfrage.<br />
3.5.1. Inhaltsraum<br />
Der Inhaltsraum <strong>ein</strong>er Datenbasis ist der Vektorraum der Dokumentvektoren. Er<br />
umschließt die Information, die in der Dokumentenmenge enthalten ist. Diese Information<br />
besteht aus der Gesamtheit der Themen, die in den Dokumenten behandelt<br />
werden. Die Themen werden durch die Begriffe definiert, mit welchen sie beschrieben<br />
sind.<br />
Der Inhalt content <strong>ein</strong>es Dokumentes d läßt sich dann folgendermaßen als Vektor D<br />
von inhaltsspezifizierenden Begriffen w 1 bis w m beschreiben [s. HEMMJE92]:<br />
content(d) (w 1 , w 2 , w 3 , ... ,w m ) D<br />
Ein ’inhaltsspezifizierender Begriff’ muß hierbei k<strong>ein</strong>esweg <strong>ein</strong> <strong>ein</strong>zelnes Wort<br />
s<strong>ein</strong>. Es kann sich dabei genausogut um <strong>ein</strong>e Klasse von Worten, <strong>ein</strong>en bestimmten<br />
Worttyp (zB. <strong>ein</strong> Firmenname) oder, entfernt man sich von r<strong>ein</strong>en Textdaten, auch<br />
beliebige andere Information wie zum Beispiel Video– oder Audiomaterial handeln.<br />
Der Inhalt content <strong>ein</strong>es Begriffes w läßt sich dann folgendermaßen als Vektor W<br />
beschreiben:<br />
content(w) (text(w), video(w), audio(w), typ(w), ...) W<br />
Für <strong>ein</strong>e genaue Beschreibung des Dokumenteninhalts ist es jedoch nicht ausreichend,<br />
nur die in ihm enthaltenen Begriffe aufzulisten. Von Bedeutung ist auch die<br />
Relvanz, die <strong>ein</strong> Begriff <strong>für</strong> den Inhalt <strong>ein</strong>es Dokuments hat. Zum Informationsinhalt<br />
<strong>ein</strong>es Begriffes kommt aus diesem Grund noch <strong>ein</strong> Maß <strong>für</strong> die Relevanz bezüglich<br />
jedes Dokuments in der Dokumentenmenge hinzu. Die Funktion g(w,d) gibt die<br />
Relevanz des Wortes w im Dokument d an.<br />
36
w (content(w), g(w, d 1 ), g(w, d 2 ), ... , g(w, d i ))<br />
Der Inhalt <strong>ein</strong>es Dokuments d i setzt sich nur aus s<strong>ein</strong>en relevanten Begriffen w 1 bis<br />
w m zusammen. Die Gewichtungen der relevanten Begriffe bezüglich der anderen<br />
Dokumente d k (ki) ist <strong>für</strong> d i nicht von Bedeutung. Wir extrahieren die benötigte Information<br />
durch die Definition<br />
w d (content(w), g(w, d))<br />
und können so <strong>ein</strong>e umfassende Definition des Dokumentinhalts angeben. Ein Dokument<br />
besteht nun aus <strong>ein</strong>em Vektor gewichteter ’inhaltsspezifizierender Begriffe’,<br />
denen inhaltliche Information beliebiger Art zugeordnet s<strong>ein</strong> kann.<br />
content(d) (w 1d , w 2d , w 3d , ... , w md )<br />
((content(w 1d ), g(w 1 , d)), ... , (content(w md ), g(w m , d)))<br />
D<br />
<strong>Retrieval</strong>-Systeme, die sich auf Textdatenbanken stützen und die Wiedergewinnung<br />
von Texten durch textuelle Suchbegriffe erlauben, nutzen <strong>ein</strong>en Spezialfall des ’inhaltsspezifizierenden<br />
Begriffs’. Der Inhalt <strong>ein</strong>es Begriffs besteht in diesem Fall nur<br />
aus textueller Information. Wir gehen im folgenden ebenfalls von diesem ver<strong>ein</strong>fachten<br />
Begriff aus, verwenden also Begriff und Wort sowie Suchbegriff und Suchwort<br />
synonym. Die Relevanz <strong>ein</strong>es Wortes bezüglich <strong>ein</strong>es Dokuments soll weiterhin<br />
berücksichtigt werden. Der Inhalt <strong>ein</strong>es Textdokuments ergibt sich aus Wörtern<br />
und deren Relevanz.<br />
content(d text ) (w text<br />
1d , wtext 2d , wtext 3d<br />
, ... , wtext<br />
md )<br />
((text(w 1d ), g(w 1 , d)), ... , (text(w md ), g(w m , d)))<br />
D<br />
3.5.1.1. Interessenraum<br />
Analog zu den Begriffen Inhaltsraum und Dokumenteninhalt läßt sich der Interessenraum<br />
und das Benutzerinteresse definieren. Der Interessenraum ist die Menge aller<br />
möglichen Informationsbedürfnisse der Benutzer, die in der Datenbank nach Informationen<br />
suchen. Das Benutzerinteresse interest <strong>ein</strong>es Benutzers u ist <strong>ein</strong> Vektor<br />
A von inhaltsspezifizierenden Begriffen i 1 bis i n [HEMMJE92]:<br />
37
interest(u) (i 1 , i 2 , i 3 , ... ,i n ) A<br />
Die ’inhaltsspezifizierenden Begriffe’ des Anfragenetzes haben grundsätzlich die<br />
gleichen Eigenschaften, wie die des Inhaltsnetzes. Auch hier sind Suchwörter, also<br />
textuelle Begriffe <strong>ein</strong> Spezialfall von Begriffen mit beliebiger Informationsdarstellung.<br />
content(i) (text(i), video(i), audio(i), typ(i), ...) A<br />
Wie beim Inhaltsnetz gehen wir auch beim Anfragenetz von <strong>ein</strong>em <strong>ein</strong>fachen ’inhaltsspezifizierenden<br />
Begriff’ aus, der aus <strong>ein</strong>em <strong>ein</strong>zelnen Wort besteht, welchem<br />
analog zur Relevanz <strong>ein</strong>es Begriffs in <strong>ein</strong>em Dokument <strong>ein</strong>e Relevanz des Suchbegriffs<br />
bezüglich der Anfrage zugeordnet ist.<br />
Durch diese Bewertung ist es dem Benutzer möglich, die Treffsicherheit der Anfrage<br />
zu erhöhen, indem er von der Möglichkeit Gebrauch macht, die Relevanz der von<br />
ihm gewählten Suchbegriffe zu spezifizieren.<br />
i (content(i), d(i))<br />
Die Funktion d(i) ordnet dem interessenspezifizierenden Begriff i <strong>ein</strong>e Relevanz zu.<br />
Im Kapitel 4.2.3. ist beschrieben, in welcher Weise es dem Benutzer ermöglicht werden<br />
kann, Relevanzwerte zu spezifizieren. Der Interessenvektor läßt sich durch Hinzunahme<br />
der Relevanz folgendermaßen präzisieren:<br />
interest(u) (i 1 , i 2 , i 3 , ... ,i n )<br />
((content(i 1 ), d(i 1 )), ... , (content(i n ), d(i n )))<br />
A<br />
Die Definitionen des Dokumentinhalts und des Benutzerinteresses sind nun typkompatibel.<br />
Sowohl die Dokumente des Inhaltsraumes als auch die Benutzerinteressen<br />
des Interessenraums bestehen aus Vektoren aus Begriffs–Gewicht–Paaren. Gewährleistet<br />
man <strong>ein</strong>e <strong>ein</strong>heitliche Skalierung der Gewichtungswerte, lassen sich<br />
Inhaltsvektoren und Interessenvektoren direkt vergleichen. Ein Dokument erfüllt<br />
das Benutzerinteresse, wenn beide Vektoren identisch sind. Der Abstand zwischen<br />
dem Benutzerinteresse und <strong>ein</strong>em Dokument ist der Differenzvektor zwischen beiden<br />
Vektoren. Die Länge des Differenzvektors gibt Auskunft über das Maß, mit dem<br />
38
<strong>ein</strong> Dokument vom Benutzerinteresse abweicht. Die Abweichung identischer Vektoren<br />
ist Null.<br />
Bei den geläufigen Vektoren der linearen Algebra ist die i–te Komponente des Vektors<br />
dessen Richtungsanteil in der i–ten Dimension. Vektoren, auf die man Operationen<br />
wie Subtraktion anwendet, müssen in ihrer Dimensionalität über<strong>ein</strong>stimmen.<br />
Inhalts und Interessenvektor weisen diese Über<strong>ein</strong>stimmung bestenfalls in wenigen<br />
Ausnahmefällen auf. Wir können <strong>ein</strong>e Über<strong>ein</strong>stimmung der Dimensionalität aber<br />
<strong>ein</strong>fach erreichen, indem wir die Begriffe in den Vektoren so umsortieren, daß gleiche<br />
Begriffe gleiche Indizes bekommen. Begriffe, die in <strong>ein</strong>em Vektor vorkommen,<br />
im anderen aber fehlen, werden durch Einfügen des fehlenden Begriffs mit Gewichtung<br />
Null ergänzt. Weder das Benutzerinteresse noch der Dokumentinhalt wird dadurch<br />
verändert. Wir erhalten <strong>ein</strong>en Interessenvektor A und <strong>ein</strong>en Inhaltsvektor W<br />
mit folgenden Eigenschaften:<br />
i k A w l W : k l content(i k ) content(w l )<br />
Der Differenzvektor zwischen Interessenvektor und Inhaltsvektor läßt sich berechnen,<br />
indem die Gewichtswerte der korrespondierenden Dimensionen subtrahiert<br />
werden.<br />
A D interest(u) content(d)<br />
(i 1 , i 2 , i 3 , ... , i n ) (w 1 , w 2 , w 3 , ... , w m ) <br />
((content(i 1 ), d(i 1 )), ... , (content(i n ), d(i n ))) <br />
((content(w 1d ), g(w 1 , d)), ... , (content(w md ), g(w m , d)))<br />
((content(i 1 ), d(i 1 )), ... , (content(i n ), d(i n ))) <br />
((content(i 1 ), g(w 1 , d)), ... , (content(i n ), g(w m , d)))<br />
((content(i 1 ), d(i 1 ) g(w 1 , d)), ... , (content(i n ), d(i n ) g(w m , d)))<br />
Die Abweichung von Benutzerinteresse zu Dokumentinhalt ergibt sich aus der Länge<br />
des Differenzvektors |A–D|.<br />
39
3.6. INQUERY<br />
Dieses Kapitel beschreibt das Information-<strong>Retrieval</strong>-System INQUERY, auf welchem<br />
die in dieser Arbeit behandelte, visuelle <strong>Benutzerschnittstelle</strong> aufsetzt. IN-<br />
QUERY folgt dem probabilistischen <strong>Retrieval</strong>-Modell und ist durch s<strong>ein</strong>e effizienten<br />
Subsysteme sehr gut <strong>für</strong> den Umgang mit umfangreichen <strong>Volltext</strong>datenbanken<br />
geeignet.<br />
INQUERY wurde am Information-<strong>Retrieval</strong>-Labor der Universität von Massachusetts<br />
entwickelt. Das System ist speziell auf die Aufgabenstellung zugeschnitten, mit<br />
<strong>Volltext</strong>en großer Anzahl und großer Länge umzugehen. Konkrete Tests des Systems<br />
wurden dabei mit <strong>ein</strong>er Datenbasis mit <strong>ein</strong>em Volumen von ca. 1 Gigabyte<br />
durchgeführt. Die Anzahl der Dokumente in der Datenbasis betrug etwa 400000<br />
Stück, ihre Länge lag zwischen wenigen Zeilen bis hin zu 150 Seiten. Weiterführende<br />
Informationen bezüglich der Performance finden sich in [CROFT92].<br />
Die Aufgaben von INQUERY bestehen im Aufbau des Inferenznetzes und in der<br />
Anwendung des Netzes zur Wiedergewinnung der gesuchten Information.<br />
3.6.1. Inferenznetze<br />
Inferenznetze dienen der Repräsentation, sowohl des Informationsinhalts der Datenbasis,<br />
als auch der Repräsentation des Informationsbedürnisses des Benutzers.<br />
Diese Organisationsform erlaubt es, verschiedene Informationen in <strong>ein</strong>e <strong>ein</strong>zige Datenstruktur<br />
zu integrieren. Das Inferenznetz zur Repräsentation des Informationsinhalts<br />
wird im folgenden Inhaltsnetz genannt, das Inferenznetz zur Repräsentation<br />
des Informationsbedürfnis Anfragenetz. Abbildung 2.6. zeigt <strong>ein</strong> <strong>ein</strong>faches Inferenznetz,<br />
bestehend aus Inhalts– und Anfragenetz.<br />
Die von probabilistischen Systemen benutzten Dokument-<strong>Retrieval</strong>-Inferenznetze<br />
sind <strong>ein</strong> spezieller Typus der sogenannten Bayes Netze. Mathematisch handelt es<br />
sich bei den Bayes Netzen um gerichtete, azyklische Graphen [CHAR91]. Für ihre<br />
Handhabung stehen effiziente Graphalgorithmen zur Verfügung.<br />
40
d1 d2 d3 di<br />
Inhaltsnetz<br />
w1 w2 w3 wm<br />
i1 i2 i3<br />
in<br />
Anfragenetz<br />
q<br />
Abbildung: 2.6.<br />
Inferenznetz aus Inhalts- und Anfragenetz<br />
3.6.1.1. Inhaltsnetz<br />
Das Inhaltsnetz repräsentiert den Inhalt <strong>ein</strong>er Datenbasis. Typischerweise ist die Datenbasis<br />
<strong>ein</strong>e <strong>Volltext</strong>datenbank, der Inhalt der Datenbasis die <strong>ein</strong>zelnen <strong>Volltext</strong>e<br />
oder Dokumente. Der Informationsinhalt <strong>ein</strong>es Dokuments ist im <strong>ein</strong>fachsten Fall<br />
die Menge der gewichteten Begriffe, die der Verfasser des Dokuments gewählt hat.<br />
In Anlehnung an diesen anschaulichen Fall sind im Inhaltsnetz in der Abbildung 2.6.<br />
Dokumentknoten mit der Bezeichnung d 1 bis d i sowie Begriffsknoten (Wörter) mit<br />
der Bezeichnung w 1 bis w m dargestellt. <strong>Eine</strong> Kante zwischen <strong>ein</strong>em Dokumentenknoten<br />
d und <strong>ein</strong>em Begriffsknoten w besteht dann, wenn dieser Begriff im Dokument<br />
von Relevanz ist. Ein Maß <strong>für</strong> die Relevanz läßt sich durch Kantenbewertungen<br />
P(w,d) zum Ausdruck bringen.<br />
P(w, d) g(w, d)<br />
Für die Relevanzbemessungsfunktion g sind viele Realisierungen denkbar. Die<br />
Spanne reicht von <strong>ein</strong>er <strong>ein</strong>fachen Vorkommenshäufigkeit bis hin zu wissensbasier-<br />
41
ten Algorithmen, welche zum Beispiel Kontext, Synonyme oder unterschiedliche<br />
Sprachen berücksichtigen. An dieser Stelle soll als Beispiel <strong>ein</strong>e Wichtigkeitsfunktion<br />
angegeben werden, die die relative Häufigkeit <strong>ein</strong>es Wortes zugrunde legt. Im<br />
Kapitel 4.2.3.1. finden sich weitere Wichtigkeitsfunktionen.<br />
g(w, d) <br />
count(w, d)<br />
len(d)<br />
Zur Definition der Funktionen count und len benutzten wir die Listennotation.<br />
count(w, d) 0 falls d <br />
1 count(w, tail(d)) falls head(d) w<br />
count(w, tail(d)) sonst<br />
0 falls d <br />
len(d) <br />
1 len(tail(d)) sonst<br />
Das Inhaltsnetz ist statisch, solange sich der Inhalt der Datenbasis nicht ändert. Das<br />
Netz wird darum nicht bei jeder Anfrage generiert, sondern nur <strong>ein</strong>mal. Die Generierung<br />
des Inhaltsnetzes geschieht durch das Parser-Subsystem (s Kapitel. 3.6.2.).<br />
3.6.1.2. Anfragenetz<br />
Die Repräsentation des Benutzerinteresses leistet das Anfragenetz. Suchwörter werden<br />
zu Knoten des Anfragenetzes, Dringlichkeitswerte zu Kantenbewertungen.<br />
Weitere Knoten im Anfragenetz ergeben sich aus Verknüpfungsoperatoren.<br />
Wie in Abbildung 2.6. zu sehen ist, sind Anfrage– und Inhaltsnetz durch Kanten verbunden.<br />
Im Gegensatz zum abgebildeten Beispiel können Inhalts– und Interessenknoten<br />
auch mehrfach verbunden s<strong>ein</strong>.<br />
42
Opel VW Stadtbus ICE Fahrrad<br />
PKW öffentliches Verkehrsmittel Sportgerät<br />
Transportmittel<br />
Abbildung: 2.7.<br />
Zusätzliche Abstraktionsebenen<br />
Abbildung 2.7. zeigt <strong>ein</strong> <strong>ein</strong>faches Beispiel <strong>für</strong> die Organisation von Begriffen in<br />
weiteren Abstraktionsebenen. Wie man am Beispiel Fahrrad sieht, kann <strong>ein</strong> spezieller<br />
Begriff durchaus verschiedenen, abstrakteren Begriffen in verschiedenen Abstraktionsebenen<br />
zugeordnet s<strong>ein</strong>. <strong>Eine</strong> Anfrage mit dem Suchwort ’PKW’ hätte <strong>ein</strong>e<br />
Verbindung des Interessenknotens PKW mit den Inhaltsknoten ’Opel’ und ’VW’,<br />
also <strong>ein</strong>e Mehrfachverbindung zur Folge.<br />
Da wir aber bei unserem ver<strong>ein</strong>fachten inhaltsspezifizierendem Begriff zusätzliche<br />
Abstraktionsebenen ausgeschlossen haben, haben wir es lediglich mit<br />
Eins-zu-Eins-Verbindungen an der Schnittstelle zwischen Inhalts– und Anfragenetz<br />
zu tun.<br />
Die Erkennung der Zugehörigkeit <strong>ein</strong>es Begriffes zu <strong>ein</strong>er Abstraktion ist <strong>ein</strong> k<strong>ein</strong>eswegs<br />
triviales Problem. Hier sind Methoden der KI oder menschliche Bearbeitung<br />
angesprochen. Im Abschnitt 3.6.2.4. werden <strong>ein</strong>ige <strong>ein</strong>fache Begriffserkenner<br />
vorgestellt, darüber hinaus soll dieses Thema im Rahmen dieser Arbeit nicht weiter<br />
vertieft werden.<br />
3.6.2. Das Parser Subsystem<br />
Beim Aufbau des Inhaltsnetzes lassen sich verschiedene Phasen unterscheiden, die<br />
<strong>ein</strong>e Folge von Dokumenten zu Einträgen in verschiedenen Datenbanken verarbeiten.<br />
Abbildung 2.8. zeigt das Zusammenspiel der Komponenten. Die folgenden Abschnitte<br />
erklären die Teilaufgaben im Detail.<br />
43
Dokument–<br />
anfang<br />
Dokument–<br />
ende<br />
... The Panel discussion ... c c c c c .... of PV electricity. ccc ... ccc ...<br />
Dokument in spezifischem Format<br />
lexikalische Analyse<br />
Dokument in kanonischem Format<br />
... c c c c ... The Panel discussion ... c c c c c .... of PV electricity. c c c ... c c c ....<br />
Datenbank–<br />
generator<br />
Dokumenten<br />
Datenbank<br />
syntaktische<br />
Analyse<br />
Tokenreihe<br />
panel discuss ..... pv electr<br />
EOS<br />
EOD<br />
Begriffs–<br />
erkenner<br />
Begriffs<br />
Datenbank<br />
Transitions–<br />
manager<br />
Transitions<br />
Datenbank<br />
Abbildung: 2.8.<br />
Das Parser Subsystem<br />
3.6.2.1. Die lexikalische Analyse<br />
Dieser Arbeitsschritt erhält als Eingabe <strong>ein</strong>e Folge von Dokumenten, die in <strong>ein</strong>em<br />
vom System unterstützten Format vorliegen müssen. INQUERY verarbeitet gegenwärtig<br />
sechs verschiedene Formate, d.h. es b<strong>ein</strong>haltet sechs verschiedene lexikalische<br />
Parser, die auf die jeweiligen Formate zugeschnitten sind. Ergebnis der lexikalischen<br />
Analyse ist <strong>ein</strong>e Folge von Dokumenten in kanonischem Format. Die<br />
folgenden Arbeitsschritte können damit systemunabhängig arbeiten.<br />
3.6.2.2. Die syntaktische Analyse<br />
Aus der Folge von kanonischen Dokumenten wird in diesem Schritt <strong>ein</strong>e Tokenreihe<br />
generiert. Tokens sind die kl<strong>ein</strong>sten Informations<strong>ein</strong>heiten, aus denen die Dokumente<br />
zusammengesetzt sind. Neben Worttokens existieren auch Tokens <strong>für</strong> Feldbegrenzungen.<br />
In Abbildung 2.8. sind als Beispiel <strong>ein</strong> Token <strong>für</strong> Satzende (EOS) und <strong>ein</strong>es<br />
<strong>für</strong> Dokumentende (EOD) zu erkennen.<br />
44
Neben der Identifizierung der Tokens leistet die syntaktische Analyse weitere Aufgaben.<br />
Großbuchstaben werden zu Kl<strong>ein</strong>buchstaben konvertiert. Semantisch überflüssige<br />
Wortenden werden entfernt (z.B. wird aus ’discussion’ ’discuss’). Anhand<br />
<strong>ein</strong>er Stopwortliste werden unerwünschte Wörter ausgefiltert (z.B. ’a’, ’and’, ’of’,<br />
’the’ usw.).<br />
3.6.2.3. Die Dokumentendatenbank<br />
Parallel zur syntaktischen Analyse fügt <strong>ein</strong> Datenbankgenerator die Dokumente in<br />
<strong>ein</strong>e Dokumentendatenbank <strong>ein</strong>. Die Information <strong>ein</strong>es Dokuments wird verschiedenen<br />
Feldern zugeordnet, die durch spezielle Markierungen unterschieden werden<br />
können. <strong>Eine</strong> Markierung besteht aus <strong>ein</strong>er <strong>ein</strong>zelnen Zeile, die aus <strong>ein</strong>em Punkt<br />
(’.’), gefolgt von <strong>ein</strong>em <strong>ein</strong>zelnen Großbuchstaben, besteht .<br />
.I externe Dokumentnummer (s. 3.6.4.1.5.)<br />
.T Dokumenttitel<br />
.W Kurzbeschreibung (Abstract)<br />
.B Titelaufnahme<br />
.A Verfasser<br />
.K Schlüsselbegriffe<br />
.C Kategorie<br />
.N Erfassungsdatum<br />
.X Mehrzweckfeld<br />
Abbildung: 2.9.<br />
Feldmarkierungen der Dokumentdatenbank<br />
3.6.2.4. Die Begriffserkenner<br />
Begriffserkenner haben die Aufgabe, bestimmte Begriffsklassen zu erkennen. Gegenwärtig<br />
verfügt INQUERY über Erkenner <strong>für</strong> die Klassen Zahl, Datum, Personennamen,<br />
Firmennamen, Satz– und Absatzenden.<br />
Das Erkennen von Begriffsklassen kann oftmals zu komplexen Problemstellungen<br />
führen. So muß zum Beispiel der Zahlenerkenner Begriffe wie ’1 million’,<br />
’1000000’ und<br />
’1,000,000’ als gleiche Zahl erkennen. Daten können ebenfalls in verschiedenen<br />
Schreibweisen vorliegen. ’Monday, November 29 th , 1993’ und 29.11.1993 sind<br />
gleiche Begriffe. Firmennamen lassen sich an Bezeichnungen wie ’Co’, ’Inc’, ’Ltd’<br />
oder ’SpA’ erkennen.<br />
Prinzipiell sind der Anzahl und der Komplexität von Begriffserkennern k<strong>ein</strong>e Grenzen<br />
gesetzt. Ihr Einsatz erhöht jedoch den zeitlichen Aufwand des Parsens beträchtlich.<br />
Die obengenannten Erkenner verlangsamen den Parserprozeß zum Beispiel um<br />
25%.<br />
45
Alle Begriffserkenner liegen als Grammatik vor, so daß systemunabhängig und automatisch<br />
die passenden Parser generiert werden können. Dadurch sind Effizienz<br />
und Portabilität gewährleistet. Konkret liegen die Grammatiken im LEX–Format<br />
vor. LEX ist <strong>ein</strong> standardisiertes Werkzeug in UNIX Umgebungen, welches aus <strong>ein</strong>er<br />
formalen, kontextfreien Grammatik den Quellcode <strong>ein</strong>es endlichen Automaten<br />
generiert [LEX79, MAU89].<br />
3.6.2.5. Die Begriffsdatenbank<br />
Die Begriffserkenner liefern als Ergebnis attributierte Begriffe in <strong>ein</strong>em <strong>ein</strong>heitlichen<br />
Format. Basis des Formats sind aber immer noch Zeichen– und Ziffernfolgen,<br />
deren Handhabung wenig effizient ist. In der Begriffsdatenbank verwaltet INQUE-<br />
RY darum Datensätze, die jedem Begriff <strong>ein</strong>e <strong>ein</strong>deutige Nummer zuordnen. Vergleiche<br />
zwischen Begriffen sowie Verweise können so schneller und platzsparender<br />
realisiert werden.<br />
3.6.2.6. Der Transitionsmanager<br />
Der Transitionsmanager registriert jeden identifizierten Begriff. Bei Erreichen des<br />
Dokumentenendes hat der Transitionsmanager Kenntnis über Vorkommenshäufigkeit<br />
und Position <strong>ein</strong>es jeden Begriffs des Dokuments. Diese Information wird in der<br />
sogenannten Transitionsdatenbank festgehalten.<br />
3.6.2.7. Die Transitionsdatenbank<br />
Für jeden Begriff in jedem Dokument existiert <strong>ein</strong> Eintrag in der Transitionsdatenbank,<br />
der Begriff und Dokument identifiziert, sowie Auskunft über Vorkommenshäufigkeit<br />
und Position des Begriffs gibt.<br />
Die Gesamtheit der Transitionen spiegelt die Topologie des Inhaltsnetzes der Datenbasis<br />
wieder. Jede Kante im Inhaltnetz entspricht <strong>ein</strong>em Datensatz in der Transitionsdatenbank.<br />
Die Häufigkeits– und Positionsinformation ist die Kantenbewertung.<br />
46
Inhaltsnetz<br />
Transitionsdatenbank<br />
w2<br />
w1<br />
d1<br />
d2<br />
w3<br />
(f 32 , p, p, p, ...)<br />
d3<br />
w 1 , d 1 , f 11 , p, p, p, ...<br />
w 1 , d 2 , f 12 , p, p, p, ...<br />
w 2 , d 1 , f 21 , p, p, p, ...<br />
w 3 , d 1 , f 31 , p, p, p, ...<br />
w 3 , d 2 , f 32 , p, p, p, ...<br />
w5<br />
d4<br />
w4<br />
d6<br />
w6<br />
d5<br />
w 7 , d 7 , f 77 , p, p, p, ...<br />
d7<br />
w7<br />
Abbildung: 2.10.<br />
Inhaltsnetz und Transitionsdatenbank<br />
Das INQUERY Inhaltsnetz ist <strong>ein</strong> gerichteter, azyklischer Graph, wie er im Abschnitt<br />
3.6.1.beschrieben wurde. Die Richtung der Kanten verläuft immer von Dokumentknoten<br />
zu Begriffsknoten. Da zu <strong>ein</strong>em Dokumentknoten immer nur Begriffsknoten<br />
benachbart seien können und umgekehrt zu <strong>ein</strong>em Begriffsknoten<br />
immer nur Dokumentknoten, ist die Zyklenfreiheit gewährleistet.<br />
Zur Kantenbewertung im Inhaltsnetz wird von INQUERY noch k<strong>ein</strong>e der angesprochenen<br />
Gewichtungsfunktionen angewendet. Durch die Markierung der Kanten mit<br />
Vorkommenshäufigkeit und Position bleiben so verschiedene Optionen offen.<br />
Das Inhaltsnetz in Abbildung 2.10. ist lediglich zweistufig, da es lediglich Dokumenten–<br />
und Begriffsknoten b<strong>ein</strong>haltet. Zweistufige Inhaltsnetze haben in der praktischen<br />
Anwendung die größte Bedeutung. Weitere Abstraktionsebenen können jedoch<br />
konsistent in das Inhaltsnetz integriert werden. Beispielsweise kann <strong>ein</strong>er<br />
Gruppe von Begriffen, die <strong>ein</strong>e gem<strong>ein</strong>same Eigenschaft aufweisen, <strong>ein</strong> gem<strong>ein</strong>samer<br />
Vaterknoten vorangestellt werden, der Begriffsträger der gem<strong>ein</strong>samen, abstrakteren<br />
Eigenschaft ist.<br />
47
3.6.3. Das <strong>Retrieval</strong>-Subsystem<br />
Das <strong>Retrieval</strong>-Subsystem wandelt zunächst <strong>ein</strong>e Benutzeranfrage in <strong>ein</strong> Anfragenetz<br />
um. Die INQUERY <strong>Retrieval</strong>-Maschine evaluiert Anfrage– und Inhaltsnetz<br />
und liefert als Ergebnis <strong>ein</strong>e Liste von Dokumenten mit zugeordneter Bewertung.<br />
3.6.3.1. Aufbau des Anfragenetzes<br />
Anfragen können <strong>für</strong> INQUERY in <strong>ein</strong>er speziellen, strukturierten Anfragesprache<br />
formuliert werden, die dem Benutzer <strong>ein</strong>e exakte Formulierung s<strong>ein</strong>es Informationsbedürfnisses<br />
erlaubt.<br />
Als zweite Möglichkeit steht <strong>ein</strong>e quasi natürlichsprachliche Anfragestellung zur<br />
Verfügung, die weit weniger exakt ist, da<strong>für</strong> aber nur <strong>ein</strong> Minimum an formalen Anforderungen<br />
an die Formulierung der Anfrage stellt. Anfragen in dieser Form werden<br />
von der <strong>Retrieval</strong>-Maschine in Ausdrücke der zuerstgenannten Anfragesprache<br />
übersetzt. Beide Formen können auch gemischt auftreten.<br />
Aus <strong>ein</strong>em Anfrageteil in natürlichsprachlicher Form werden zunächst mit Hilfe des<br />
Parsers die Begriffe extrahiert. Die Begriffe werden dann OR–verknüpft und als Gesamtheit<br />
mit dem Mittelwert ihrer Gewichte gewichtet.<br />
Anfragen in der strukturierten Anfragesprache können direkt in das Anfragenetz abgebildet<br />
werden. Begriffe und Operatoren werden zu Knoten im Anfragenetz. Die<br />
Verbindung zwischen Anfragenetz und Inhaltsnetz geschieht über die Begriffsknoten.<br />
#and<br />
#or<br />
AND–Verknüpfung<br />
#and(A B) Wörter A und B müssen beide vorkommen<br />
OR–Verknüpfung<br />
#or(A B) A oder B muß vorkommen<br />
#not Negation<br />
#not(A) A darf nicht vorkommen<br />
#sum Mittelwert der Dringlichkeiten der Argumente<br />
#wsum Summe der gewichteten Dringlichkeiten. Gewichtung erfolgt<br />
durch Summe der Gewichte und durch Benutzerangabe<br />
#n Suchspannweite <strong>für</strong> Wortfolgen<br />
#3(A B) wird von den Wortfolgen<br />
”A B”, ”A c B” und ”A c c B” erfüllt.<br />
#phrase<br />
#syn<br />
Satzerkenner<br />
Sucht nach kompletten Sätzen<br />
Synonymdeklarator<br />
#syn(A B) A und B sind Synonyme<br />
Die Abbildung der Anfrage in das Inhaltsnetz erhält die Klammerungsstruktur des<br />
Anfrageausdrucks. Den so entstehenden gerichteten, azyklischen Graphen kann<br />
48
man als invertierten Baum auffassen [CROFT91 S.193]. Er verfügt über nur <strong>ein</strong><br />
Blatt, welches mit dem Grad der Befriedigung des Benutzerinteresses korrespondiert.<br />
Wurzeln hat der invertierte Baum mehrfach. Jeder Wurzelknoten korrespondiert<br />
mit <strong>ein</strong>em inhaltsspezifizierenden Begriff. Die gesamtheit der Wurzelknoten<br />
definiert das Benutzerinteresse.<br />
#or (#and(A #or(B C) #not(D)) E)<br />
A<br />
B<br />
C<br />
D<br />
E<br />
or<br />
not<br />
and<br />
or<br />
Abbildung: 2.11.<br />
Beispiel <strong>ein</strong>es Anfragenetzes<br />
Abbildung 2.11. zeigt <strong>ein</strong>e <strong>ein</strong>fache Anfrage und deren Abbildung in <strong>ein</strong>en invertierten<br />
Baum. Die Wurzeln des Baumes sind die Suchwörter A, B, C, D und E. Die<br />
inneren Knoten des Baums enthalten die Operatoren der Anfragesprache. <strong>Eine</strong><br />
Klammerungsebene des Anfrageausdrucks entspricht <strong>ein</strong>em Teilbaum. Das Blatt<br />
des Baumes entspricht der Gesamtanfrage und damit dem Informationsbedürfnis<br />
des Benutzers.<br />
3.6.3.2. Die <strong>Retrieval</strong>-Maschine<br />
Die INQUERY <strong>Retrieval</strong>-Maschine erhält das Anfragenetz als Eingabe und verknüpft<br />
dieses zunächst mit dem Inhaltsnetz. Im nächsten Schritt wird der Interessenerfüllungsgrad<br />
des Anfragenetzes bestimmt. Dazu wird als initiale Bewertung <strong>ein</strong>es<br />
Suchwortknotens die Wahrsch<strong>ein</strong>lichkeit bestimmt, mit der dieser das<br />
Informationsbedürfnis erfüllt, unter der Annahme, daß alle Dokumente in der Auswahl<br />
gleich zutreffend sind.<br />
Nun werden der Reihe nach alle Dokumente der Auswahl observiert. Jeder bearbeitete<br />
Dokumentknoten wird markiert und dessen Bewertung durch das Netz propagiert.<br />
Es wird somit die bedingte Wahrsch<strong>ein</strong>lichkeit berechnet, daß das Interesse<br />
49
des Benutzers durch das untersuchte Dokument erfüllt wird. Sind alle Dokumente<br />
der Auswahl abgearbeitet, lassen sie sich in <strong>ein</strong>e Rangfolge sortieren, die ihren Interessenerfüllungsgrad<br />
wiederspiegelt.<br />
Im Laufe des Berechnungsvorgangs muß <strong>für</strong> jeden inneren Knoten <strong>ein</strong>e Bewertung<br />
aufgrund der Bewertung s<strong>ein</strong>er Vorgängerknoten abgeschätzt werden. In Abbildung<br />
2.12. sind die Berechnungsformeln <strong>für</strong> die Knoten des Anfragenetzes wiedergegeben.<br />
Die Wahrsch<strong>ein</strong>lichkeit, daß der Knoten Q das Informationsbedürfnis des Benutzers<br />
erfüllt, wird als bel(Q) (engl. belief) bezeichnet. Die Berechnung von bel(Q)<br />
ist vom Typ des Knotens Q abhängig. Mit p i sind die Bewertungen der i Vorgängerknoten<br />
von Q bezeichnet, mit w i deren Wichtigkeit. <strong>Eine</strong> genauere Erläuterung der<br />
Formeln, sowie Berechnungsmethoden <strong>für</strong> boolesche Bewertungen finden sich in<br />
[CROFT91].<br />
bel not (Q) 1 p 1<br />
bel or (Q) 1 (1 p 1 ) ... (1 p n )<br />
bel and (Q) p 1 p 2 ... p n<br />
bel max (Q) max(p 1 , p 2 , ... ,p n )<br />
bel sum (Q) p 1 p 2 ... p n<br />
n<br />
bel wsum (Q) (w 1 p 1 w 2 p 2 ... w np n ) w q<br />
w 1 w 2 ... w n<br />
Abbildung: 2.12.<br />
Evaluierung der Knoten des Anfragenetzes<br />
Ein Wurzelknoten des Anfragenetzes hat <strong>ein</strong>en Begriffsknoten des Inhaltsnetzes als<br />
Vorgänger. Als Berechnungsvorschrift <strong>für</strong> dessen Bewertung schlagen Croft und<br />
Turtle in [CROFT91] folgende Formel vor:<br />
bel(Q) w p i parents(Q) w q<br />
w p<br />
p parents(Q)<br />
Q ist in diesem Fall vom Typ Begriffsknoten und damit sind die Vorgänger von Q<br />
(parents(Q)) alle Dokumentknoten. Die Berechnung wird durchgeführt, wenn der<br />
Vorgänger p i von Q observiert wird. w p ist das Gewicht des Knotens p.<br />
50
3.6.4. Schnittstellen<br />
INQUERY bietet drei verschiedene Interaktionsschnittstellen. <strong>Eine</strong> Schnittstelle <strong>für</strong><br />
Anwendungsprogramme erlaubt die Anbindung an andere Programme oder die Entwicklung<br />
eigener <strong>Benutzerschnittstelle</strong>n. <strong>Eine</strong> interaktive <strong>Benutzerschnittstelle</strong> erlaubt<br />
direkte Arbeit mit dem System. Als dritte Zugriffsmethode besteht die Möglichkeit<br />
INQUERY über <strong>ein</strong>e Batchdatei nicht interaktiv zu steuern. Auf die<br />
Darstellung der Fähigkeiten der interaktiven– und der Batch Schnittstelle wird nicht<br />
weiter <strong>ein</strong>gegangen, da diese <strong>für</strong> die vorliegende Arbeit nicht von Bedeutung sind.<br />
Etwas detaillierter wird da<strong>für</strong> im folgenden die Funktionaliät der Schnittstelle <strong>für</strong><br />
Anwendungsprogramme vorgestellt.<br />
3.6.4.1. Application Programmers Interface<br />
Das Application Programmers Interface (API) ist <strong>ein</strong>e Funktionsbibliothek, die Anwendungsprogrammen<br />
den Zugriff auf das INQUERY <strong>Retrieval</strong>-System erlaubt.<br />
opendb void<br />
opendb(dbinfo *db);<br />
closedb<br />
inq_num_docs_in_collection<br />
void<br />
closedb(dbinfo *db);<br />
long int<br />
inq_num_docs_in_collection<br />
(void);<br />
eval_query belieflst *<br />
eval_query (char *query,<br />
void (*feedback_function)());<br />
externalToInternalID<br />
int<br />
externalToInternalID<br />
(char *externalID);<br />
internalToExternalID char *<br />
internalToExternalID<br />
(int internalID);<br />
get_doc<br />
int<br />
get_doc (int id, int mode);<br />
did char *<br />
did (void);<br />
dsource char *<br />
dsource (void);<br />
dtitle char *<br />
dtitle (void);<br />
öffnet Datenbank<br />
schließt Datenbank<br />
liefert Anzahl der Dokumente<br />
der Datenbank<br />
evaluiert Anfrage<br />
wandelt externe Dokumentnummer<br />
in interne<br />
Dokumentnummer<br />
wandelt interne Dokumentnummer<br />
in externe<br />
Dokumentnummer<br />
liefert Inhalt <strong>ein</strong>es Dokuments<br />
liefert externe Dokumentnummer<br />
liefert Autor des Dokuments<br />
liefert Dokumenttitel<br />
51
dtext char *<br />
dtext (void);<br />
new_dbinfo<br />
dbinfo*<br />
new_dbinfo<br />
(char *dbname, char *outdir,<br />
char *stopname,<br />
char *relnamefloat bel,<br />
float tf, int batchflag);<br />
liefert Dokumenttext<br />
erzeugt und initialisiert<br />
<strong>ein</strong>e neue Instanz der<br />
dbinfo Struktur<br />
Abbildung: 2.13.<br />
Funktionen des Application Programmers Interface<br />
3.6.4.1.1. opendb<br />
void opendb(dbinfo *db);<br />
Diese Funktion öffnet <strong>ein</strong>e Datenbank <strong>für</strong> den anschließenden Zugriff. Es können<br />
nicht mehrere Datenbanken gleichzeitig geöffnet s<strong>ein</strong>. Ist Zugriff auf verschiedene<br />
Datenbanken gewünscht, so muß vor Öffnen <strong>ein</strong>er neuen Datenbank die aktuell geöffnete<br />
geschlossen werden.<br />
Das Argument db ist die Adresse <strong>ein</strong>er Variablen vom Typ dbinfo. Die Variable db<br />
muß mit den gewünschten Werten initialisiert s<strong>ein</strong> (s. Funktion new_dbinfo).<br />
3.6.4.1.2. closedb<br />
void closedb(dbinfo *db);<br />
Schließt die vorher mit opendb(db) geöffnete Datenbank. Der belegte Speicher wird<br />
freigegeben. Falls der Zugriff in Batch–Betriebsart geschah, wird durch closedb das<br />
Suchergebnis in die Ergebnisdatei <strong>ein</strong>gestellt.<br />
3.6.4.1.3. inq_num_docs_in_collection<br />
long int inq_num_docs_in_collection(void);<br />
Diese Funktion liefert die Anzahl der Dokumente in der geöffneten Datenbank.<br />
3.6.4.1.4. eval_query<br />
belieflst *eval_query (char *query, void (*feedback_function)());<br />
Die eval_query Funktion ist das Herzstück des API. Sie erhält im Argument query<br />
<strong>ein</strong>e Anfrage als Text, generiert daraus das Anfragenetz und wertet es aus. Der Rück-<br />
52
gabewert belief_lst ist <strong>ein</strong>e Liste mit den als relevant befundenen Dokumenten und<br />
deren Relevanzwerten.<br />
Struktur belief_lst<br />
default_belief float default_belief Defaultwert <strong>für</strong> Dokumentbewertung<br />
term_freq int term_freq Gegenwärtig nicht benutzt<br />
doc_cnt int doc_cnt Anzahl der Elemente des<br />
Vektors<br />
list belief_elt *list Vektor aus belief_elt<br />
Abbildung: 2.14.<br />
Felder der Struktur belief_lst<br />
Die Struktur belief_lst b<strong>ein</strong>haltet im wesentlichen <strong>ein</strong>en Vektor aus Elementen vom<br />
Typ belief_elt und die Information, aus wievielen Elementen der Vektor besteht. Die<br />
belief_elt-Elemente enthalten die Zuordnung von Dokumentennummer und Bewertung<br />
des Dokuments. Die Elemente sind nach der Bewertung sortiert, das Dokument<br />
mit der höchsten Bewertung steht an der ersten Stelle.<br />
Struktur belief_elt<br />
doc_id int doc_id interne Dokumentnummer<br />
belief float belief Bewertung des Dokuments<br />
(s. Kapitel<br />
3.6.3.2.)<br />
Abbildung: 2.15.<br />
Felder der Struktur belief_elt<br />
Als feedback_function kann <strong>ein</strong>e Funktion angegeben werden, die von eval_query<br />
nach jeder Termevaluierung aufgerufen wird. Als Parameter wird ihr die Anzahl der<br />
noch zu bearbeitenden Terme übergeben. Das aufrufende Programm kann sich so<br />
über den Fortschritt der Arbeit informieren lassen. Wir k<strong>ein</strong>e feedback_function gewünscht,<br />
so kann an ihrer Stelle auch NULL angegeben werden.<br />
3.6.4.1.5. externalToInternalID<br />
int externalToInternalID(char *externalID);<br />
Diese Funktion wandelt die externen Dokumentennummern in die intern benutzte<br />
Nummerndarstellung um. Die externe Nummer liegt als Zeichenfolge in der Dokumentendatenbank<br />
vor. Sie wird im .I-Feld abgelegt (s. Abbildung 2.9.). Die Dar-<br />
53
stellung der internen Nummer durch den Typ int dient <strong>ein</strong>er effizienteren Handhabung.<br />
3.6.4.1.6. internalToExternalID<br />
char *internalToExternalID(int internalID);<br />
Diese Funktion liefert die umgekehrte Umwandlung diesmal von der internen Nummer<br />
zur externen Dokumentnummer.<br />
3.6.4.1.7. get_doc<br />
int get_doc(int id, int mode);<br />
Diese Funktion erlaubt den Zugriff auf den Inhalt <strong>ein</strong>es Dokuments. Das Argument<br />
id gibt die Nummer des gewünschten Dokuments an. Mit mode wählt man die gewünschte<br />
Betriebsart. Es stehen drei verschidene Betriebsarten zur Verfügung, die<br />
den Umfang der gewünschten Information spezifizieren:<br />
ID nur externe Dokumentnummer<br />
HEADING Dokumentnummer, Titel, und Quelle (Autor)<br />
ALL gesamtes Dokument, d.h. HEADING und Text<br />
Die Funktion kopiert den gewünschten Text in <strong>ein</strong>en internen Puffer und gibt die<br />
Länge des Textes als Rückgabewert zurück. Die folgenden Funktionen liefern die<br />
Einträge des Puffers.<br />
3.6.4.1.8. did<br />
char *did(void);<br />
Diese Funktion liefert die externe Nummer des letzten mit get_doc observierten Dokuments.<br />
Falls dieses Dokument über k<strong>ein</strong>en Dokumentnummern<strong>ein</strong>trag verfügte,<br />
wird der String ’id missing’ zurückgegeben.<br />
3.6.4.1.9. dsource<br />
char *dsource(void);<br />
Diese Funktion liefert die Quelle (den Autor) des letzten mit get_doc observierten<br />
Dokuments. Falls dieses Dokument über k<strong>ein</strong>en Quellen<strong>ein</strong>trag verfügte, wird der<br />
String ’source missing’ zurückgegeben. Die Betriebsart von get_doc muß dabei die<br />
Quelle <strong>ein</strong>geschlossen haben.<br />
54
3.6.4.1.10. dtitle<br />
char *dtitle(void);<br />
Diese Funktion liefert den Titel des letzten mit get_doc observierten Dokuments.<br />
Falls dieses Dokument über k<strong>ein</strong>en Titel<strong>ein</strong>trag verfügte, wird der String ’title missing’<br />
zurückgegeben. Die Betriebsart von get_doc muß dabei den Titel <strong>ein</strong>geschlossen<br />
haben.<br />
3.6.4.1.11. dtext<br />
char *dtext(void);<br />
Diese Funktion liefert den Text des letzten mit get_doc observierten Dokuments.<br />
Falls dieses Dokument über k<strong>ein</strong>en Text<strong>ein</strong>trag verfügte, wird der String ’document<br />
body missing’ zurückgegeben. Die Betriebsart von get_doc muß dabei den Text <strong>ein</strong>geschlossen<br />
haben.<br />
3.6.4.1.12. new_dbinfo<br />
dbinfo *new_dbinfo(char *dbname, char *outdir, char *stopname,<br />
char *relname<br />
float bel, float tf, int batchflag);<br />
Die Funktion new_dbinfo erzeugt <strong>ein</strong>e neue Instanz der dbinfo Struktur und initialisiert<br />
die Felder der Struktur mit den als Argumenten übergebenen Werten.<br />
Struktur dbinfo<br />
dbname char dbname[] Pfadname der Datenbankdatei<br />
ohne Extension<br />
outdir char outdir[] Pfadname der Directory<br />
<strong>für</strong> Ausgabedateien<br />
stopname char stopname[] Pfadname der Stopwortdatei.<br />
NULL, falls k<strong>ein</strong>e<br />
Stopwortdatei benutzt<br />
wird<br />
relname char relname[] Pfadname der Relevanzdatei.<br />
NULL, falls k<strong>ein</strong>e<br />
Relevanzdatei erwünscht<br />
ist<br />
bel float bel Defaultwert <strong>für</strong> belief<br />
55
tf float tf Defaultwert <strong>für</strong> Termfrequenz<br />
batchflag int batchflag Schalter <strong>für</strong> Batchbetriebsart<br />
Abbildung: 2.16.<br />
Felder der Struktur dbinfo<br />
Die Einträge in den Feldern von dbinfo können auch nachträglich geändert werden.<br />
Folgende Funktionen stehen dazu zur Verfügung:<br />
int set_db_name(dbinfo *db, char *name);<br />
int set_db_stopname(dbinfo *db, char *stname);<br />
int set_db_relname(dbinfo *db, char *rlname);<br />
int set_db_outdir(dbinfo *db, char *outdir);<br />
int set_db_tf(dbinfo *db, int newtf);<br />
int set_db_bel(dbinfo *db, newbel);<br />
int set_db_batch_mode(dbinfo *db, int mode);<br />
Welche Felder der dbinfo-Struktur von den Funktionen verändert werden, ist selbserklärend.<br />
Der Rückgabewert ist 0, wenn die Funktion erfolgreich war oder –1,<br />
wenn <strong>ein</strong> Fehler auftrat.<br />
56
4. Entwurf der <strong>Benutzerschnittstelle</strong><br />
Aus Sicht des Benutzers besteht der <strong>Retrieval</strong>prozeß aus Suchdialog und Präsentation<br />
der Ergebnismenge. In diesem Kapitel werden diese beiden Bestandteile analysiert<br />
und <strong>ein</strong> Entwurf <strong>für</strong> <strong>ein</strong>e interaktive, dreidimensionale <strong>Benutzerschnittstelle</strong> erarbeitet.<br />
4.1. Visualisierung des Suchdialogs<br />
In der Regel besteht der traditionelle Suchdialog zwischen Benutzer und <strong>Retrieval</strong>-<br />
System aus <strong>ein</strong>er Folge von Informationsanforderungen und Informationsangeboten<br />
durch das System. Die spezifischen Ausprägungen der <strong>ein</strong>zelnen Äußerungen<br />
im Dialog richten sich nach dem Informationsbedürfnis des Benutzers und nach dem<br />
Inhalt der Datenbank. In jedem Dialogschritt findet also entweder <strong>ein</strong>e Informationssuche<br />
des Systems oder <strong>ein</strong>e Relevanz<strong>ein</strong>schätzung des Benutzers statt, anhand<br />
der er s<strong>ein</strong>e nächste Anfrage gestaltet [HEMMJE92].<br />
Der Suchdialog zwischen Benutzer und <strong>Retrieval</strong>-System ist <strong>ein</strong> iterativer Prozeß,<br />
bei dem der Benutzer durch schrittweise Modifikation s<strong>ein</strong>er Anfrage die Ergebnismenge<br />
solange be<strong>ein</strong>flußt, bis sie s<strong>ein</strong>em Informationsbedürfnis entspricht. Im theoretischen<br />
Idealfall liefert jeder Iterationsschritt <strong>ein</strong>e Verbesserung des Erfüllungsgrades<br />
des Benutzerinteresses, bis nach Überschreiten <strong>ein</strong>es Interessenerfüllungsgrenzwertes<br />
der Prozeß abgebrochen wird.<br />
In der Praxis besteht jedoch k<strong>ein</strong>e Garantie da<strong>für</strong>, daß sich <strong>ein</strong> <strong>Retrieval</strong>-System in<br />
dieser idealen Weise verhalten wird. So können zwei <strong>für</strong> den Benutzer subjektiv sehr<br />
ähnliche Anfragen zu gänzlich verschiedenen Ergebnismengen führen und umgekehrt<br />
zwei subjektiv stark verschiedene Anfragen <strong>ein</strong>e identische Ergebnismenge<br />
zur Folge haben. Da Benutzerinteresse und Informationsinhalt nicht <strong>ein</strong>deutig quantifizierbar<br />
sind, bleibt dem Benutzer so immer die Unsicherheit, in der Datenbank<br />
vorhandene und relevante Information nicht erhalten zu haben. Die Anforderungen<br />
an <strong>ein</strong> <strong>Retrieval</strong>-System bestehen darum nicht nur aus <strong>ein</strong>er möglichst leistungsfähigen<br />
<strong>Retrieval</strong>-Maschine, sondern auch in <strong>ein</strong>er Benutzerführung, die <strong>ein</strong>e möglichst<br />
sichere Erschließung der Leistungsfähigkeit der <strong>Retrieval</strong>-Maschine erlaubt.<br />
In diesem Kapitel wird das Modell <strong>ein</strong>es Interaktionswerkzeuges vorgestellt, welches<br />
räumliche Strukturen als Metapher heranzieht, um den Suchdialog <strong>für</strong> den Benutzer<br />
intuitiv erfaßbar und kontrollierbar zu machen.<br />
4.1.1. Inhaltsorientierte Suche<br />
Die Unterstützung der Intuition des Benutzers ist maßgebend <strong>für</strong> die Gestaltung <strong>ein</strong>es<br />
visuellen Suchdialogs. An erster Stelle der wünschenswerten Fähigkeiten steht<br />
57
die Befreiung von der Notwendigkeit, die internen Strukturen des <strong>Retrieval</strong>-Systems<br />
zu kennen, um erfolgreich Suchanfragen stellen zu können. Mit anderen Worten,<br />
der Benutzer sollte in die Lage versetzt werden, den Inhalt <strong>ein</strong>er Datenbank zu<br />
untersuchen, indem er inhaltsorientierten und nicht organisatorisch orientierten<br />
Suchpfaden folgt. Räumliche, visuelle Strukturen sollen dem Benutzer den Informationswiedergewinnungsprozeß<br />
nachvollziehbar machen und ihm <strong>ein</strong>e Orientierung<br />
im Informationsinhalt der Datenbank ermöglichen. Ziel ist es, <strong>ein</strong>e Metapher<br />
zu finden, die den Informationsinhalt <strong>ein</strong>er Datenbank in <strong>ein</strong>e räumliche Struktur<br />
mit den genannten Eigenschaften abbildet.<br />
Aus dem Bereich der zweidimensionalen, <strong>graphische</strong>n <strong>Benutzerschnittstelle</strong>n sind<br />
Metaphern wie Schreibtischoberfläche, Aktenordner, Dokument, Knopf, Schieberegler<br />
bekannt. All diese Metaphern sind von Objekten der realen Welt abgeleitet<br />
und geben so Aufschluß über ihre Eigenschaften und Verwendungsmöglichkeiten.<br />
Wie aber sieht der Inhalt <strong>ein</strong>er Datenbank aus? Hierbei handelt es sich um <strong>ein</strong>e abstrakte<br />
Informationsstruktur, die k<strong>ein</strong>e Entsprechung in Form <strong>ein</strong>es Werkzeugs oder<br />
Gegenstands der realen Welt hat. Als Ansatz <strong>für</strong> die Entwicklung <strong>ein</strong>er Metapher<br />
strukturieren wir darum zunächst die unterscheidbaren Bestandteile des Suchdialogs<br />
in Form von Informationsmengen.<br />
4.1.2. Informationsmengen<br />
Während des Suchdialogs lassen sich verschiedene Informationsmengen unterscheiden.<br />
Der Inhalt der Datenbank, die Menge aller in der Datenbank gespeicherten<br />
Dokumente, ist die Inhaltsmenge. Die Menge aller Dokumente, die der Benutzer als<br />
interessant <strong>ein</strong>stuft, ist die Interessenmenge. Die Interessenmenge ist nicht unbedingt<br />
<strong>ein</strong>e Teilmenge der Inhaltsmenge, denn möglicherweise enthält die Datenbank<br />
nicht die Information, die der Benutzer wünscht. Haben die Inhaltsmenge und die<br />
Interessenmenge <strong>ein</strong>e gem<strong>ein</strong>same Teilmenge, so ist dies die Menge der relevanten<br />
Dokumente, die das <strong>Retrieval</strong>-System wiedergewinnen soll.<br />
Im Laufe des <strong>Retrieval</strong>-Prozeßes werden Teilmengen der Inhaltsmenge durch die<br />
Anfragen des Benutzers zu Ergebnismengen. Die Ver<strong>ein</strong>igung dieser Teilmengen<br />
heißt im folgenden Kontextmenge. <strong>Eine</strong> Kontextmenge entsteht bei jedem Suchdialog<br />
und verändert sich im Laufe des Dialogs. Die Benennung Kontextmenge bringt<br />
zum Ausdruck, daß ihr Inhalt <strong>ein</strong>en thematischen Zusammenhang zwischen dem Inhalt<br />
der Datenbank und den Anfragen des Benutzers herstellt.<br />
Da die Ergebnismenge <strong>ein</strong>er Anfrage auch Dokumente b<strong>ein</strong>halten kann, die der Benutzer<br />
als nicht relevant <strong>ein</strong>stuft, ist die Kontextmenge nicht in jedem Fall auch das<br />
Suchergebnis des Gesamtprozeßes. Außerdem ist die Interessenmenge des Benutzers<br />
nicht unbedingt klar umrissen, da sie Dokumente enthalten kann, die <strong>für</strong> den<br />
Benutzer sehr interessant sind, aber auch Dokumente, die das Informationsbedürfnis<br />
nur schwach berühren. Wir führen darum <strong>ein</strong>e Kernmenge <strong>ein</strong>, in die der Benutzer<br />
alle Dokumente der Kontextmenge aufnehmen kann, die er zu <strong>ein</strong>em bestimmten<br />
58
Zeitpunkt als relevant beurteilt. Der Inhalt der Kernmenge muß in jedem Fall <strong>ein</strong>e<br />
Teilmenge der zu diesem Zeitpunkt aktuellen Kontextmenge s<strong>ein</strong>, denn alle relevanten<br />
Dokumente des bisherigen Suchprozeßes sind in ihr enthalten.<br />
Der Zusammenhang zwischen den <strong>ein</strong>zelnen Mengen wird in Abbildung 3.1. dargestellt.<br />
In der Schnittmenge von Inhaltsmenge und Interessenmenge liegen Dokumente,<br />
die sowohl in der Datenbank gespeichert sind, als auch <strong>für</strong> das Informationsinteresse<br />
des Benutzers relevant sind. Durch drei verschiedene Anfragen erhielt der<br />
Benutzer die drei Ergebnismengen t 1 bis t 3 . Ihre Ver<strong>ein</strong>igung bildet die Kontextmenge.<br />
Die Kontextmenge enthält im rechten, oberen Gebiet auch Dokumente, die nicht<br />
im Interessensgebiet des Benutzers liegen. Auch liegen Dokumente im relevanten<br />
Bereich, die der Benutzer noch nicht durch Anfragen in die Kontextmenge aufgenommen<br />
hat. <strong>Eine</strong>n Teil der Kontextmenge hat der Benutzer durch <strong>ein</strong> manuelles<br />
Auswahlverfahren in den Kern aufgenommen.<br />
Inhaltsmenge<br />
Kontextmenge<br />
t 2<br />
t 3<br />
t 1<br />
Kern<br />
Interessenmenge<br />
Abbildung: 3.1.<br />
Informationsmengen<br />
4.1.3. Kontextbaum<br />
Durch den iterativen Suchdialog erarbeitet sich der Benutzer die Kontextmenge. Für<br />
die Erfaßbarkeit des Suchdialogs sind weniger die Elemente der Kontextmenge wesentlich,<br />
sondern in erster Linie die Ursache ihrer Aufnahme in die Menge. Die Visualisierung<br />
muß also besonderen Wert auf die intuitive Wiedererkennbarkeit der<br />
<strong>ein</strong>zelnen Dialogschritte legen.<br />
59
Ein Dialogschritt besteht aus <strong>ein</strong>er Anfrage und dem anschließenden Hinzufügen<br />
des Anfrageergebnisses zur Kontextmenge. Die Anfrage ergibt sich aus der bisherigen<br />
Entwicklung des Dialogs. <strong>Eine</strong> Zuordnung von Anfrage und verursachter Ergebnismenge<br />
wird umso <strong>ein</strong>facher, je <strong>ein</strong>facher die Anfrage ist. Im elementaren Fall<br />
besteht <strong>ein</strong>e Anfrage aus <strong>ein</strong>em inhaltsspezifizierenden Begriff und die zugehörige<br />
Ergebnismenge aus allen Dokumenten, in denen dieser Begriff von Relevanz ist.<br />
Gleichzeitig benötigt man <strong>für</strong> <strong>ein</strong>e derart elementare Anfrage k<strong>ein</strong>e komplexe Anfragesprache.<br />
Dem Benutzer muß lediglich die Angabe <strong>ein</strong>es inhaltsspezifizierenden<br />
Begriffs ermöglicht werden.<br />
<strong>Eine</strong> elementare Anfrage mit <strong>ein</strong>em Begriff erfüllt unsere Anforderungen bezüglich<br />
intuitiver Erfaßbarkeit und Inhaltsorientierung. Andererseits bedeuten elementare<br />
Anfragen den Verzicht auf das mächtige Mittel der Suchanfragen in Anfragesprachen<br />
mit booleschen Operatoren. Wir werden jedoch sehen, wie dem Benutzer durch<br />
das Werkzeug der Relevanzkugel die Mächtigkeit <strong>ein</strong>er Anfragesprache zurückgegeben<br />
wird.<br />
Zunächst betrachten wir die Entwicklung des Suchdialogs auf der Basis elementarer<br />
Anfragen. Zur Expansion der Kontextmenge steht dem Benutzer die Möglichkeit<br />
zur Verfügung, <strong>ein</strong>en Begriff als relevanten Suchbegriff zu spezifizieren. Die Kontextmenge<br />
wird dadurch um alle Dokumente erweitert, in denen dieser Begriff von<br />
Relevanz ist. Diese Expansion heißt Begriffsexpansion. Weiter wird dem Benutzer<br />
anhand der bisherigen Kontextmenge die Möglichkeit gegeben, neue Anfragen zu<br />
finden, indem die Begriffe der Dokumente aus der Kontextmenge <strong>für</strong> neue Anfragen<br />
angeboten werden. Diese Expansion heißt Dokumentexpansion. So entsteht <strong>ein</strong><br />
Kontextbaum, der alle Dokumente der Kontextmenge als Dokumentknoten enthält.<br />
Jeder Dokumentknoten geht auf <strong>ein</strong>e elementare Anfrage, also <strong>ein</strong>en Begriff zurück.<br />
Dieser Begriff ist im Baum in Form <strong>ein</strong>es Begriffsknotens enthalten. Ein Dokument<br />
ist mit s<strong>ein</strong>em Ursprungsbegriff durch <strong>ein</strong>e Kante verbunden.<br />
60
a<br />
A B C<br />
b c d e f g<br />
D<br />
E<br />
e h g<br />
Abbildung: 3.2.<br />
Kontextbaum<br />
Ein Beispiel <strong>ein</strong>es möglichen Kontextbaumes ist in Abbildung 3.2. dargestellt. Die<br />
Kl<strong>ein</strong>buchstaben stellen Begriffsknoten dar, große Buchstaben Dokumentknoten.<br />
Im Beispiel beginnt der Benutzer die Suche mit dem Begriff a. Die erste Kontextmenge<br />
b<strong>ein</strong>haltet die Dokumente A, B und C. Der Benutzer wählt Dokument B <strong>für</strong><br />
<strong>ein</strong>e Dokumentexpansion und erhält die Begriffe b und c; b und c sind die relevanten<br />
Begriffe des Dokuments B. Mit ihnen könnte nun <strong>ein</strong>e Begriffsexpansion durchgeführt<br />
werden. Der Benutzer ist jedoch zunächst an Dokument C interessiert. Er führt<br />
mit C <strong>ein</strong>e Dokumentexpansion durch und erhält die Begriffe d, e, f und g. Mit dem<br />
Begriff d wird <strong>ein</strong>e Begriffsexpansion durchgeführt. Das Ergebnis dieser elementaren<br />
Anfrage ist das Dokument D. Der Inhalt der Kontextmenge wird erweitert zu<br />
A, B, C und D.<br />
Nun expandiert der Benutzer Dokument D und erhält den Begriff e. Begriff e gehörte<br />
aber auch schon zu den Begriffen, die durch Expansion von C aufgenommen wurden.<br />
Dieser Effekt tritt auf, wenn in verschiedenen Dokumenten gleiche Begriffe<br />
verwendet werden. Da <strong>ein</strong>e Suche darauf abzielt, Dokumente <strong>ein</strong>es gem<strong>ein</strong>samen<br />
Themengebiets wiederzugewinnen, kann das vermehrte Auftreten dieses Effekts als<br />
Anzeichen <strong>für</strong> <strong>ein</strong>e zielgerichtete Entwicklung des Suchdialogs gewertet werden.<br />
Schließlich bedeuten gleiche Begriffe in verschiedenen Dokumenten <strong>ein</strong>e thematische<br />
Verwandtschaft der Dokumente (s. Kapitel 3.5.).<br />
Um den Baum konsistent zu halten, muß geregelt werden, wie <strong>ein</strong>e Expansion des<br />
Begriffs e behandelt wird. Da e im Baum zweimal vorkommt, kann der Suchdialog<br />
an zwei verschiedenen Stellen fortgesetzt werden, wobei die erzeugten Unterbäume<br />
in beiden Fällen identisch wären. <strong>Eine</strong> unabhängige Behandlung der Knoten könnte<br />
zu unnötig komplexen Bäumen führen, deren teilweise identische Unterbäume<br />
nichts zur Entwicklung der Kontextmenge beitragen. <strong>Eine</strong> Expansion sollte folglich<br />
61
nur an <strong>ein</strong>em der beiden Knoten möglich s<strong>ein</strong>. Im folgenden wird von der Konvention<br />
ausgegangen, daß <strong>ein</strong> Unterbaum, der zu <strong>ein</strong>em mehrfach vorkommenden Knoten<br />
gehört, jeweils an denjenigen Knoten angehängt wird, der im Laufe der Suche<br />
zuerst auftrat. Im Beispiel expandiert der Benutzer den doppelten Begriffsknoten e<br />
und erhält den Dokumentknoten E. Knoten E wird an den ersten Knoten e angehängt.<br />
4.1.4. Visualisierung von Bäumen<br />
Die zweidimensionale Darstellung von vernetzten Informationsstrukturen ist weit<br />
verbreitet und leicht erfaßbar. Beispielsweise ist uns die Visualisierung von geo<strong>graphische</strong>n<br />
Informationen in Form von Landkarten derart vertraut, daß wir sie intuitiv<br />
<strong>für</strong> <strong>ein</strong> Abbild der Landschaft halten. Tatsächlich sieht <strong>ein</strong>e Luftaufnahme der Landschaft<br />
völlig anders aus.<br />
Die Darstellung von hierarchisch vernetzten, baumartigen Informationsstrukturen,<br />
zu denen auch der Kontextbaum gehört, ist ebenfalls weit verbreitet. Dazu gehört<br />
zum Beispiel die Darstellung von betriebswirtschaftlichen oder politischen Hierarchiestrukturen.<br />
Im Bereich der Informatik ist die Darstellung von Dateisystemen<br />
oder Programmstrukturen in Folge des Einsatzes <strong>graphische</strong>r Benutzeroberflächen<br />
verbreitet. Im Kapitel 4.15. wird beispielsweise die Visualisierung des Kontextbaums<br />
durch <strong>ein</strong>en sogenannten Szenengraphen mit Hilfe dieser Darstellungsform<br />
verdeutlicht.<br />
Durch die Erweiterung dieser Darstellungsform um die dritte Dimension und durch<br />
Hinzunahme von Animation wird <strong>ein</strong>e neue Qualität dieser Darstellungsform erreicht.<br />
Information, die im Vordergrund des Benutzerinteresses steht, kann nun im<br />
wörtlichen Sinn des Wortes im räumlichen Vordergrund gezeigt werden. Durch interaktive<br />
Animation macht man sich die Veranlagung des menschlichen Wahrnehmungssystems<br />
zu Nutze.<br />
Im Rahmen des Information-Visualizer–Prototyps des Xerox Palo Alto Research<br />
Centers wurden verschiedene Visualisierungsformen entwickelt [PARC]. <strong>Eine</strong> animierte,<br />
dreidimensionale Visualisierungsform <strong>für</strong> Baumstrukturen, der sogenannte<br />
”Cone Tree”, gehört ebenfalls zum System. In [ROB91] werden diese Kegelbäume<br />
beschrieben.<br />
Die Knoten des Baumes werden karteikartenartig als Plättchen mit Beschriftung<br />
dargestellt. Die hierarchische Beziehung zwischen <strong>ein</strong>em Knoten und s<strong>ein</strong>en direkten<br />
Nachfolgern wird durch <strong>ein</strong>en Kegel symbolisiert. An der Spitze des Kegels steht<br />
das Plättchen des Vaterknotens, an der Grundfläche des Kegels sind die Plättchen<br />
der Sohnknoten angeordnet. Jeder Sohnknoten kann s<strong>ein</strong>erseits wieder der Vaterknoten<br />
<strong>ein</strong>es untergeordneten Kegels s<strong>ein</strong>. Die Konen werden transparent dargestellt,<br />
um nicht die Sicht auf Konen im Hintergrund zu blockieren.<br />
Ein Knoten kann selektiert werden, indem er mit der Maus angeklickt wird. Der<br />
Kegelbaum rotiert daraufhin so, daß der ausgewählte Knoten und alle Knoten auf<br />
62
dem Pfad zwischen ihm und der Wurzel nach vorne zeigen. Die animierte Rotation<br />
ermöglicht es dem Benutzer, die Transformation des Baumes zu verfolgen und damit<br />
die Orientierung zu behalten.<br />
Die dreidimensionale Darstellung macht <strong>ein</strong>e effektivere Ausnutzung des Bildschirmes<br />
möglich. Die Darstellung des gesamten Baums ist auf <strong>ein</strong>em Bildschirm bei<br />
größeren Verzweigungsfaktoren möglich, als bei <strong>ein</strong>er zweidimensionalen Darstellung.<br />
Die Notwendigkeit, die Knotenvisualisierung zu verkl<strong>ein</strong>ern oder auf <strong>ein</strong>e<br />
vollständige Darstellung zu verzichten, tritt erst bei größeren Strukturen auf.<br />
Läßt man die Größe der Knotenvisualisierungen außer Acht, so lassen sich die Größenverhältnisse<br />
analytisch vergleichen. Wir gehen von <strong>ein</strong>em Baum mit l Ebenen<br />
und <strong>ein</strong>em Verzweigungsfaktor b aus. Im zweidimensionalen Fall benötigt <strong>ein</strong> solcher<br />
Baum <strong>ein</strong>e Fläche der Größenordnung l b l–1 . Der Baum in Abbildung 3.3.<br />
hat vier Ebenen (l=4) und <strong>ein</strong>en Verzweigungsfaktor von (b=3).<br />
In Abbildung 3.4. ist <strong>ein</strong> Baum mit gleicher Ebenenzahl und gleichem Verzweigungsfaktor<br />
in dreidimensionaler Darstellung skizziert. Die Knotenvisualisierungen<br />
der Elemente <strong>ein</strong>er Geschwistergruppe sind nun nicht mehr neben<strong>ein</strong>ander angeordnet,<br />
sondern ringförmig. Ein Zylinder in der Abbildung stellt <strong>ein</strong>en solchen<br />
Ring mit jeweils drei Kantenvisualisierungen auf s<strong>ein</strong>er Außenfläche dar. Rechts im<br />
Bild ist die Sicht aus der Wurzelperspektive dargestellt.<br />
4<br />
3 41 9<br />
Abbildung: 3.3.<br />
Zweidimensionaler Baum<br />
63
( 3 1 2 )41 3<br />
Abbildung: 3.4.<br />
Dreidimensionaler Baum<br />
Der Umkreis der untersten Baumebene U läßt sich aus dem Radius des ersten Rings<br />
R 1 addiert mit dem maximalen Radius der Umkreise aller s<strong>ein</strong>er Unterbäume berechnen.<br />
Der Platzbedarf der Baumhöhe ist wie in der zweidimensionalen Darstellung von<br />
der Größenordnung l. Der Platzbedarf der untersten Blätterebene kann durch den<br />
Durchmesser s<strong>ein</strong>es Umkreises nach oben abgeschätzt werden, da mit zunehmendem<br />
Verzweigungsfaktor der Umkreis immer dichter ausgefüllt wird. Wir gehen dabei<br />
von der Voraussetzung aus, daß Ringe sich nicht überschneiden dürfen.<br />
Für die analytische Herleitung des Platzbedarfs beschreiben wir <strong>ein</strong>en Baum in Listennotation.<br />
Ein Baum ist <strong>ein</strong>e Liste. Ein Element der Liste ist <strong>ein</strong>em Knoten des<br />
Baums zugeordnet und besteht aus zwei Komponenten. Die erste Komponente ist<br />
die Beschreibung des Knotens, die zweite Komponente ist die Liste des Unterbaums<br />
des Knotens. Ist der Knoten <strong>ein</strong> Blatt, so ist die Unterbaumliste leer. Ein Baum, der<br />
nur aus <strong>ein</strong>em Knoten W besteht, hat folgende Beschreibung: . Ein etwas<br />
komplexerer Baum und s<strong>ein</strong>e Listennotation sind in Abbildung 3.5. zu sehen.<br />
64
a<br />
A B C<br />
b c d e f g<br />
größter Unterbaum<br />
Vaterkreis<br />
Umkreis<br />
Abbildung: 3.6.<br />
Umkreis <strong>ein</strong>es Teilbaums<br />
Bei der Berechnung des Platzbedarfs von zweidimensionalen Bäumen sind wir von<br />
<strong>ein</strong>em konstanten Verzweigungsfaktor b und <strong>ein</strong>er festen Baumtiefe von l ausgegangen.<br />
Die Berechnung des Platzbedarfes ver<strong>ein</strong>facht sich unter dieser Voraussetzung<br />
zu P(l)(b/ + 1/2) l–1 .<br />
P(1) 1<br />
b P(l 1) P(l 1)<br />
P(l) <br />
2<br />
P(l 1) ( b 1 2 )<br />
<strong>für</strong> l 1<br />
P(l) ( b 1 2 )l1<br />
<strong>für</strong> l <br />
Abbildung 3.7. zeigt <strong>ein</strong>en Vergleich des Platzbedarfs von zwei-- und dreidimensionalen<br />
Bäumen bei <strong>ein</strong>em Verzweigungsfaktor von 3. Der Platzbedarf wächst in beiden<br />
Darstellungsformen exponentiell. Der Vorteil der dreidimensionalen Darstellung<br />
liegt in <strong>ein</strong>em späteren Ansteigen der Kurve.<br />
66
P<br />
10<br />
2D<br />
3D<br />
1<br />
1 2 3 4 5 6<br />
l<br />
Abbildung: 3.7.<br />
Platzbedarfsvergleich<br />
Die Verringerung des Platzbedarfs wird dadurch erkauft, daß nur noch wenige Knoten<br />
frontal in Richtung Betrachter ausgerichtet sind. Die Mehrzahl der Knoten ist<br />
perspektivisch verkürzt und zum Teil sogar mit der Rückseite in Richtung Betrachter<br />
ausgerichtet. Vorteil der kompakten Darstellung ist die verbesserte Übersichtlichkeit<br />
der Gesamtstruktur. Die Orientierung wird <strong>für</strong> den Betrachter ver<strong>ein</strong>facht.<br />
Wesentliche Voraussetzung <strong>für</strong> die Effektivität der dreidimensionalen Darstellung<br />
ist die interaktive Animation. Der Benutzer muß in die Lage versetzt werden, die<br />
Darstellung so zu manipulieren, daß die <strong>für</strong> ihn momentan interessanten Teile des<br />
Baums in den Vordergrund treten. So lassen sich gute Orientierungsmöglichkeit innerhalb<br />
der gesamten Struktur und übersichtliche Darstellung des aktuellen Interesses<br />
kombinieren.<br />
4.1.5. Der Kontextbaum als Kegelbaum<br />
Der Kontextbaum ist <strong>ein</strong>e abstrakte Struktur, welche die Kontextmenge und Entwicklung<br />
des Suchdialogs b<strong>ein</strong>haltet. Anhand der Stellung <strong>ein</strong>es Knotens im Baum<br />
läßt sich jederzeit sagen, welcher andere Knoten <strong>für</strong> die Aufnahme verantwortlich<br />
war. Anhand der Geschwisterbeziehungen von Begriffsknoten läßt sich der Inhalt<br />
<strong>ein</strong>es Dokuments erfassen, anhand der Geschwisterbeziehungen von Dokumentknoten<br />
läßt sich <strong>ein</strong>e inhaltliche Verwandtschaft dieser Dokumente erfassen. Das<br />
Konzept ist <strong>ein</strong>fach nachvollziehbar und weitgehend systemunabhängig. Es verlangt<br />
vom <strong>Retrieval</strong>-System lediglich die Fähigkeit, zu <strong>ein</strong>em Begriff relevante Dokumente<br />
und zu <strong>ein</strong>em Dokument relevante Begriffe liefern zu können.<br />
67
Mit dem Präsentationsmodell des Kegelbaums läßt sich <strong>ein</strong>e räumliche Darstellung<br />
des Kontextbaums erreichen, die alle gewünschten Eigenschaften der Struktur erhält.<br />
Den Knoten des Baums werden visuelle Repräsentierungen zugeordnet, die<br />
Aufschluß über Typ und Eigenschaften und Inhalt des Knotens geben. Die hierarchische<br />
Beziehung zwischen <strong>ein</strong>em Knoten und s<strong>ein</strong>en Nachfolgerknoten wird<br />
durch <strong>ein</strong>en Kegel visualisiert. An der Spitze des Kegels steht die Visualisierung des<br />
Knotens, an der Grundfläche des Kegels sind die Visualisierungen der Nachfolgerknoten<br />
angeordnet. Jeder Nachfolgerknoten kann dabei wieder an der Spitze <strong>ein</strong>es<br />
weiteren, untergeordneten Kegels stehen.<br />
4.1.5.1. Informationskodierung der Knoten<br />
Die zu visualisierenden Merkmale der Knoten des Kontextbaumes sind:<br />
Dokumentknoten oder Begriffsknoten<br />
Original oder Verweis (bei mehrfachem Auftreten)<br />
Name des Begriffs oder Dokuments<br />
Der Knotenname muß textuell dargestellt werden. Handelt es sich um <strong>ein</strong>en Begriffsknoten,<br />
besteht die Visualisierung aus dem ausgeschriebenen Begriff. Handelt<br />
es sich um <strong>ein</strong>en Dokumentknoten, wird der Titel des Dokuments <strong>für</strong> die Namensvisualisierung<br />
herangezogen.<br />
Es ist auch denkbar, Begriffe und Dokumente durch Abbildungen zu visualisieren,<br />
zum Beispiel um Sprachunabhängigkeit zu erreichen. Dazu wäre jedoch <strong>ein</strong> Programm<br />
nötig, das jedem Begriff oder Dokument <strong>ein</strong>e passende Abbildung in Form<br />
<strong>ein</strong>es Fotos oder Piktogramms zuordnet. Bezeichnet <strong>ein</strong> Begriff <strong>ein</strong>en Gegenstand,<br />
läßt sich leicht <strong>ein</strong>e <strong>graphische</strong> Repräsentation finden. Bildliche Darstellung von abstrakten<br />
Begriffen oder ganzen Dokumenten ist jedoch sehr schwierig und führt<br />
schnell zu Mißverständnissen. Diese Ebene der Informationsvisualisierung ist <strong>ein</strong><br />
Beispiel da<strong>für</strong>, daß <strong>ein</strong> Wort mehr sagen kann als 1000 Bilder. Sinnvoll kann <strong>ein</strong>e<br />
<strong>graphische</strong> Repräsentation aber bei nichttextuellen Datenbanken oder gegenständlichen<br />
Informationen (Farben, Moleküle, Bilder, Warenhauskatalog, Pflanzen) s<strong>ein</strong>.<br />
Die Typeigenschaften ”Dokument” oder ”Begriff”, sowie ”Original” oder ”Kopie”<br />
können <strong>ein</strong>facher durch <strong>graphische</strong> Attribute visualisiert werden. Form und Farbe<br />
der Knotenvisualisierungen stehen zur Verfügung. Die Form muß die Geometrie des<br />
Kegelbaums und die Voraussetzung der Beschriftbarkeit berücksichtigen. Folgende<br />
Konventionen werden diesen Anforderungen auf <strong>ein</strong>fache Weise gerecht:<br />
Die Form ist rechteckig. Die Höhe des Rechtecks ergibt<br />
sich aus der Höhe der Beschriftung und oberem und unterem<br />
Rand. Die Länge der Rechtecke wird so bemessen, daß<br />
nur außergewöhnlich lange Begriffe oder Titel abgeschnitten<br />
werden müssen. Da die Länge der Begriffe im<br />
Durchschnitt kürzer ist als die der Dokumenttitel, sind die<br />
Dokumentrechtecke länger.<br />
68
Die Farbe der originalen Dokumentrechtecke ist Rot.<br />
Die Farbe der Verweisdokumentrechtecke ist Hellrot. Ihre<br />
Länge ist etwas verkürzt.<br />
Die Farbe der originalen Begriffsrechtecke ist Blau.<br />
Die Farbe der Verweisbegriffsrechtecke ist Hellblau. Ihre<br />
Länge ist etwas verkürzt.<br />
SOLAR ARCHITECTURE IN EUROPE<br />
SOLAR ARCHITECTURE IN EUROPE<br />
SOLAR<br />
SOLAR<br />
Abbildung: 3.8.<br />
Knotenvisualisierung<br />
4.1.5.2. Informationskodierung der Kegel<br />
Im Kontextbaum folgt auf <strong>ein</strong>en Knoten des <strong>ein</strong>en Typs <strong>ein</strong>e Gruppe von direkten<br />
Nachfolgern, die alle dem jeweils anderen Typ von Knoten angehören. Die direkten<br />
Nachfolger <strong>ein</strong>es Begriffsknotens sind alle vom Typ ”Dokument”. Die direkten<br />
Nachfolger <strong>ein</strong>es Dokumentknotens sind alle vom Typ Begriff. Diese Teilbäume<br />
heißen im folgenden Dokumentkegel, wenn der initiale Knoten vom Typ ”Dokument”<br />
ist und Begriffskegel, wenn der initiale Knoten vom Typ ”Begriff” ist.<br />
Ein Begriffskegel besteht aus dem initialen Begriff und <strong>ein</strong>er Gruppe von Dokumentknoten,<br />
die im folgenden Dokumentring heißt. Analog heißt die Begriffsgruppe<br />
im Dokumentkegel Begriffsring. Kegel und Ringe sind in folgender Abbildung<br />
anhand <strong>ein</strong>es Teils des Beispielkontextbaum aus Abbildung 3.2. skizziert. Die Benennung<br />
durch Kegel und Ring deutet bereits auf die Geometrie der Visualisierung<br />
hin.<br />
69
a<br />
A B C<br />
b c d e f g<br />
Dokumentring<br />
Begriffsring<br />
Begriffskegel<br />
Dokumentkegel<br />
Abbildung: 3.9.<br />
Kegel und Ringe<br />
Die Visualisierung der Kegel enthält folgende Bestandteile:<br />
Wurzelknoten<br />
Ring der direkten Nachfolger<br />
Hierarchiebeziehung zwischen Wurzel und Ring<br />
Relevanzbeziehungen innerhalb des Rings<br />
Die Visualisierung der Knoten wurde bereits festgelegt. Die Hierarchiebeziehung<br />
wird gemäß dem Modell des Kegelbaums durch <strong>ein</strong>en Konus dargestellt, an dessen<br />
Spitze die Visualisierung des initialen Elements steht und an dessen Grundfläche die<br />
Visualisierungen der Nachfolgerknoten angeordnet sind. Die Relevanzbeziehung<br />
der Ringelemente wird durch Reihenfolge und Positionierung visualisiert. Folgende<br />
Konventionen konkretisieren die Darstellung:<br />
Die Spitze des Konus zeigt nach links. Die Höhe ist konstant,<br />
der Umfang der Grundfläche ergibt sich aus dem<br />
Platzbedarf des Rings. Die Mindestgröße der Grundfläche<br />
entspricht <strong>ein</strong>em Ring mit drei Elementen.<br />
Die Farbe des Konus ist durchsichtiges Gelb. Objekte im<br />
Hintergrund bleiben dadurch sichtbar.<br />
Der Wurzelknoten steht direkt an der Kegelspitze.<br />
Das Ringelement mit dem höchsten Relevanzwert berührt<br />
mit s<strong>ein</strong>em linken Rand den Umkreis der Konusgrundfläche.<br />
Die folgenden Ringelemente schließen sich in<br />
70
Reihenfolge ihrer Relevanz an und werden jeweils etwas in<br />
Richtung Mitte der Grundfläche verschoben. Aus Sicht des<br />
Betrachters liegen weniger relevante Ringelemente weiter<br />
entfernt.<br />
dritte Relevanz<br />
zweite Relevanz<br />
erste Relevanz<br />
letzte Relevanz<br />
Abbildung: 3.10.<br />
Skizze <strong>ein</strong>es Begriffskegels<br />
Im linken Teil der Abbildung 3.10. wird die Geometrie <strong>ein</strong>es Begriffskegels skizziert.<br />
Im rechten Teil der Abbildung wird im Grundriß die relevanzabhängige Positionierung<br />
der Dokumenttitel dargestellt. Der Aufbau <strong>ein</strong>es Dokumentkegels ist<br />
analog.<br />
4.1.5.3. Spiralisierte Ringe<br />
In Abbildung 3.10. sind alle Knotenbeschriftungen von außen lesbar, denn der Umfang<br />
der Konus ist so gewählt, daß die Knoten neben<strong>ein</strong>ander Platz finden. Diese<br />
Darstellung kann unübersichtlich werden, wenn <strong>ein</strong> Ring <strong>ein</strong>e sehr große Anzahl<br />
von Elementen b<strong>ein</strong>haltet, zum Beispiel weil <strong>ein</strong> besonders umfangreiches Dokument<br />
der Datenbank in die Kontextmenge aufgenommen wurde. <strong>Eine</strong> mögliche<br />
Strategie dem zu begegnen ist, <strong>ein</strong>e maximale Anzahl von Ringelementen festzulegen.<br />
Liefert <strong>ein</strong>e Expansion mehr Elemente, so werden nur die relevantesten in den<br />
Ring aufgenommen. Diese Strategie widerspricht jedoch der Zielsetzung der Inhaltsorientierung<br />
und intuitiven Erfaßbarkeit des Suchdialogs, da organisatorische<br />
Randbedingungen den Inhalt der Kontextmenge verfälschen.<br />
Die spiralförmige Positionierung der Knoten auf der Konusgrundfläche erlaubt <strong>ein</strong>e<br />
Erweiterung der Kegelmetapher, die diese Problematik beseitigt. In zu großen Ringen<br />
wird die Positionierungsspirale weiter fortgesetzt und dem Benutzer wird die<br />
Möglichkeit gegeben, den Umfang <strong>ein</strong>es Konus interaktiv zu variieren. Der Benutzer<br />
kann so die Vordergrunddarstellung auf relevantere Information beschränken,<br />
wird aber durch die teilweise verdeckten Elemente an deren Vorhandens<strong>ein</strong> erinnert.<br />
Für die Modellierung bietet sich die Archimedische Spirale [BRON, S. 94] an, auf<br />
der alle benachbarten Schnittpunkte der Spirale mit <strong>ein</strong>er Geraden aus dem Mittel-<br />
71
punkt heraus den gleichen Abstand d von<strong>ein</strong>ander haben. Die Länge des Spiralbogens<br />
s vom Anfangspunkt A bis zum Mittelpunkt M berechnet sich durch:<br />
s a( 2 1 arc sinh )<br />
2<br />
a v <br />
Der Parameter a gibt das Verhältnis der Radiusveränderung v pro Winkelgeschwindigkeit<br />
an. Der Wert a=(1/3)/(2 definiert <strong>ein</strong>e Spirale, die sich nach <strong>ein</strong>er Umkreisung<br />
dem Mittelpunkt um 1/3 nähert. Der Winkel gibt an wieviele Umdrehungen<br />
der Startpunkt vom Mittelpunkt enfernt ist.<br />
Bei der Positionierung der Ringelemente auf <strong>ein</strong>er Spirale reicht <strong>ein</strong>e nährungsweise<br />
Berechnung der Spirallänge aus. Die Formel <strong>für</strong> die Längenberechnung kann zu folgender<br />
Nährungsformel ver<strong>ein</strong>facht werden.<br />
s a2<br />
2<br />
Die Spirale in Abbildung 3.11. erreicht nach etwa 2,5 Umdrehungen den Punkt E.<br />
Bei <strong>ein</strong>er Fortsetzung bis zum Mittelpunkt M benötigte sie insgesamt etwa 3 Umdrehungen.<br />
Die Gesamtlänge AM beträgt etwa 9 Radius<strong>ein</strong>heiten. Nach Subtraktion des<br />
Endstücks EM mit <strong>ein</strong>er Länge von etwa 0,5 Radius<strong>ein</strong>heiten ergibt sich <strong>ein</strong>e Kurvenlänge<br />
von etwa 8,5 Radius<strong>ein</strong>heiten.<br />
A<br />
d<br />
d<br />
d<br />
M<br />
E<br />
a v 1<br />
3<br />
2 0.05<br />
3 2 18.8<br />
AM : s 9<br />
Konusumkreis<br />
Abbildung: 3.11.<br />
Spiralisierung<br />
Der Benutzer soll die Länge der Außenwindung der Spirale interaktiv verändern<br />
können, indem er kontinuierlich den Konusradius regelt. Die Spiralisierung muß<br />
72
sich an den gewählten Konusradius anpassen. Die Bandbreite des Konusradius r<br />
reicht von r max über r s bis r min.<br />
<br />
<br />
r max : Der Umfang der Konusgrundfläche ist maximal.<br />
K<strong>ein</strong> Ringelement ist verdeckt.<br />
r s : Die Länge der Spirale ist gleich dem Platzbedarf des<br />
Rings. Punkt E erreicht Mittelpunkt M.<br />
r min : Der Umfang der Konusgrundfläche ist minimal. Als<br />
minimale Größe wurde bereits der Umfang <strong>ein</strong>es dreielementigen<br />
Rings definiert.<br />
Bei der r max- Darstellung ist der Innenbereich der Spirale frei. Bei abnehmendem r<br />
wandern Ringelemente in den Innenbereich. Den Positionen der Elemente liegt zunächst<br />
<strong>ein</strong> konstanter Spiralradiusveränderungswert v zugrunde. Wenn das innerste<br />
Element den Mittelpunkt der Spirale erreicht, liegt der r s -Zustand vor. Bei <strong>ein</strong>er weiteren<br />
Radiusverringerung wird v variabel. Er muß jeweils so berechnet werden, daß<br />
der Platzbedarf der Elemente und Spirallänge genau über<strong>ein</strong>stimmen.<br />
Die vier Spiralen in Abbildung 3.12. verdeutlichen diesen Zusammenhang. Alle<br />
Kurven sind gleich lang. Spirale A befindet sich im r max -Zustand. Für Spirale B wurde<br />
r etwas verringert. In ihrem Innenbereich liegen bereits verdeckte Elemente. Spirale<br />
C befindet sich im r s -Zustand. Die Kurve im Innenbereich hat den Mittelpunkt<br />
erreicht. Bis zu diesem Zustand hat der Zwischenraum d zwischen den Windungen<br />
konstante Breite. Bei <strong>ein</strong>er weiteren Abnahme von r muß der Zwischenraum verkl<strong>ein</strong>ert<br />
werden. In Spirale D ist r min erreicht.<br />
73
d<br />
d<br />
r max<br />
A<br />
B<br />
d<br />
r s<br />
r min<br />
C<br />
D<br />
Abbildung: 3.12.<br />
Spiralisierungsgrade<br />
Für <strong>ein</strong>en gegebenen Platzbedarf p <strong>ein</strong>es Rings muß der Konusradius r <strong>für</strong> die möglichen<br />
Werte innerhalb der Spiralisierungsbandbreite berechnet werden. Für den<br />
r max -Zustand muß die Gesamtspirale so bemessen werden, daß die äußerste Windung<br />
die Länge p hat, damit der Innenbereich frei bleibt. Ihre Gesamtdrehung bis<br />
zum Mittelpunkt ist damit um 2 größer als die Drehung im Innenbereich i . p ist<br />
gleich der Differenz aus der Länge der Gesamtspirale s und der Länge der freien Innenspirale<br />
s i .<br />
p s s i<br />
p a( i 2)2<br />
2<br />
a 2<br />
i<br />
2<br />
Auflösen nach i führt zum Drehwinkel der Innenspirale.<br />
74
i <br />
p<br />
a(2 1)<br />
Addition von 2 ergibt den Drehwinkel der Gesamtspirale. Division durch 2 liefert<br />
die Gesamtzahl der Windungen. Multiplikation mit der Radiusveränderung pro Umdrehung<br />
v führt zu r max, dem Maximalradius der Spirale und der Konusgrundfläche.<br />
r max v i 2<br />
2<br />
Der zweite wichtige Eckwert ist der Radius r s . Die Gesamtlänge der Spirale vom<br />
Anfangspunkt bis Mittelpunkt ist gleich dem Platzbedarf p des Rings. Nach s , dem<br />
Drehwinkel dieser Spirale, wird aufgelöst.<br />
p a s 2<br />
2<br />
s 2p<br />
a<br />
Division durch 2 liefert die Gesamtzahl der Windungen. Multiplikation mit der Radiusveränderung<br />
pro Umdrehung v führt zu r s .<br />
r s v s<br />
2<br />
<strong>Eine</strong> im Intervall [r max, r s ] liegende Benutzer<strong>ein</strong>gabe r kann iterativ zu Elementpositionen<br />
<strong>für</strong> <strong>ein</strong>en Ring mit n Elementen umgerechnet werden.<br />
Pos(1) (r, 1 )<br />
Pos(i) (r i1 v<br />
2 , p(i)<br />
i1 2 asin( ))<br />
2r i1<br />
1 i n<br />
75
Die Positionsangaben sind in Polarkoordinaten definiert: Pos(i) = (Radius i , Winkel<br />
i ). Die Position des ersten Elements kann durch den Startwinkel 1 gewählt werden.<br />
Pos(3)<br />
Pos(4)<br />
r 4<br />
r 5<br />
1<br />
5<br />
r 2<br />
Pos(2)<br />
r<br />
1<br />
Pos(1)<br />
Abbildung: 3.13.<br />
Elementpositionen in Polarkoordinaten<br />
Liegt der gewünschte Radius r im Intervall [r s, r min ], wird die volle Länge der Spirale<br />
benötigt. Mit p ist die Länge festgelegt und mit s die Umdrehungen. Für die Anpassung<br />
an r kann nur noch der Abstand der Windungen, der durch den Faktor a bestimmt<br />
wird, herangezogen werden. Faktor a setzt sich aus Radiusveränderung v pro<br />
Umdrehung 2 zusammen.<br />
P a r 2 s<br />
2<br />
a r v r<br />
2<br />
Ersetzen von a und auflösen nach v ergibt:<br />
76
v r 4p<br />
2 s<br />
<strong>Eine</strong> im Intervall [r s, r min ] liegende Benutzer<strong>ein</strong>gabe r kann iterativ zu Elementpositionen<br />
<strong>für</strong> <strong>ein</strong>en Ring mit n Elementen umgerechnet werden.<br />
Pos(1) (r, 1 )<br />
Pos(i) (r i1 v r<br />
2 , p(i)<br />
i1 2 asin( ))<br />
2r i1<br />
1 i n<br />
Die Variationsbreite der Radiuswahl muß <strong>ein</strong>geschränkt werden, wenn Elemente<br />
des Rings ihrerseits die Wurzel <strong>ein</strong>es Unterbaums sind. Um Überlappungen von Unterringen<br />
auszuschließen, darf der Radius nicht soweit verkl<strong>ein</strong>ert werden, daß diese<br />
Elemente in den Innenbereich der Spirale wandern.<br />
4.1.5.4. Animation und Interaktion mit dem Kontextbaum<br />
Das Ersch<strong>ein</strong>ungsbild des Kontextbaums ist durch die Visualisierungsfestlegung <strong>für</strong><br />
Knoten und Kegel gegeben. Da die <strong>ein</strong>zelnen Kegel von links nach rechts ausgerichtet<br />
sind, ist auch der gesamte Kegelbaum von links nach rechts ausgerichtet. An der<br />
Wurzel des Gesamtbaums befindet sich <strong>ein</strong> initialer Begriffs- oder Dokumentknoten.<br />
Daran schließt sich der erste Dokument- oder Begriffskegel an. Der weitere<br />
Aufbau des Kontextbaums ergibt sich aus dem Verlauf des Suchdialogs. In Abbildung<br />
3.14. ist die Orientierung des Kontextbaums anhand <strong>ein</strong>es Beispiels skizziert.<br />
77
y<br />
x<br />
z<br />
Abbildung: 3.14.<br />
Orientierung des Kontextbaums<br />
Zur Unterstützung des Benutzers bei der Entwicklung des Suchdialogs sind folgende<br />
Animations- und Interaktionsfähigkeiten wichtig:<br />
Gezielte Auswahl <strong>ein</strong>es Knotens<br />
Gezielte Auswahl <strong>ein</strong>es Kegels<br />
Vorwärts- und Rückwärtsbewegung innerhalb <strong>ein</strong>es Rings<br />
Vorwärts- und Rückwärtsbewegung innerhalb der Ebenen<br />
des Baums<br />
Transformation des Baums, so daß <strong>ein</strong> ausgewählter Knoten<br />
und s<strong>ein</strong> Kegel in den Vordergrund treten<br />
Expansion <strong>ein</strong>es ausgewählten Knotens<br />
Löschen <strong>ein</strong>es Teilbaums und s<strong>ein</strong>er Unterbäume<br />
Vergrößern und verkl<strong>ein</strong>ern des Bildausschnitts<br />
Für die Benutzerinteraktion stehen folgende Werkzeuge zur Verfügung:<br />
Tastatur<br />
Maus<br />
Spacemaus, Spaceball<br />
78
virtuelle Schiebe- und Drehregler (Slider und Wheels)<br />
virtuelle Knöpfe (Buttons)<br />
Menüs<br />
Die verschiedenen Werkzeuge zeichnen sich durch spezielle Interaktionsfähigkeiten<br />
aus, denen Rechnung zu tragen ist. So ist die Maus besonders gut <strong>für</strong> <strong>ein</strong>e absolute<br />
direkte Anwahl <strong>ein</strong>es Objektes durch Mausklick geeignet. Die Interaktion durch<br />
Spaceball oder Spacemaus kann intuitiv gut <strong>ein</strong>er relativen Bewegung <strong>ein</strong>es bereits<br />
selektierten Objekts zugeordnet werden. Slider, Wheels und Buttons sind auf dem<br />
Rahmen des Darstellungsfensters angebracht und werden vom Benutzer intuitiv als<br />
Werkzeuge zur Manipulation des gesamten Ersch<strong>ein</strong>ungsbildes begriffen. Die Tastatur<br />
hat ihre Stärke in der Text<strong>ein</strong>gabe und Menüs stellen Optionen bezüglich des<br />
Zustandes des Gesamtsystems zur Auswahl. Die Bedienungsgewohnheiten verschiedener<br />
Benutzer oder <strong>ein</strong>es Benutzers vor und nach <strong>ein</strong>er Lernphase mit dem System<br />
können sich stark unterscheiden. Indem den Interaktionswerkzeugen Überschneidungen<br />
in den zugeordneten Fähigkeiten erlaubt werden, ist es dem Benutzer<br />
möglich, s<strong>ein</strong>e bevorzugte Arbeitsweise zu verfolgen. Im folgenden wird <strong>ein</strong>e Zuordnung<br />
von Aktion zu Werkzeu festgelegt:<br />
Gezielte Auswahl <strong>ein</strong>es Knotens:<br />
– Auswahl durch Mausklick<br />
Gezielte Auswahl <strong>ein</strong>es Kegels:<br />
– Auswahl durch Mausklick<br />
Vorwärts– und Rückwärtsbewegung innerhalb <strong>ein</strong>es Rings:<br />
– Spaceball/Spacemaus Rotation um die x–Achse<br />
(entspricht <strong>ein</strong>er Drehung vorwärts oder rückwärts)<br />
– Cursor aufwärts und abwärts<br />
– Drehregler ’X–Rotation’<br />
Vorwärts– und Rückwärtsbewegung innerhalb der Ebenen<br />
des Baums:<br />
– Spaceball/Spacemaus Translation entlang der x–Achse<br />
(entspricht <strong>ein</strong>er Bewegung nach links oder rechts)<br />
– Cursortaste links und rechts<br />
Transformation des Baums, so daß <strong>ein</strong> ausgewählter Knoten<br />
und s<strong>ein</strong> Kegel in den Vordergrund treten<br />
– automatisch nach Wechsel des aktuellen Elements<br />
Expansion <strong>ein</strong>es ausgewählten Knotens:<br />
– Spaceball/Spacemaus Pickbutton<br />
– Cursortaste ’rechts’<br />
– Menü<strong>ein</strong>trag ’Expand’<br />
Löschen <strong>ein</strong>es Teilbaums und s<strong>ein</strong>er Unterbäume<br />
– Taste ’Delete’<br />
– Menüpunkt ’Delete’<br />
79
Vergrößern und verkl<strong>ein</strong>ern des Bildausschnitts<br />
– Schieberegler ’Distance’<br />
Zu jedem Zeitpunkt ist <strong>ein</strong> Kegel des Baums und <strong>ein</strong> Element auf dem zum Kegel<br />
gehörenden Ring aktuell ausgewählt. Der aktuelle Kegel und das aktuelle Element<br />
werden durch <strong>ein</strong>e auffällige, leuchtend grüne Farbgebung hervorgehoben. Alle Benutzerinteraktionen,<br />
die <strong>ein</strong>e Manipulation <strong>ein</strong>es Elements oder Kegels zur Folge<br />
haben, beziehen sich auf den aktuellen Kegel bzw. auf das aktuelle Element.<br />
Nach <strong>ein</strong>er Benutzerinteraktion, die <strong>ein</strong>en Wechsel des aktuellen Kegels oder des aktuellen<br />
Elements bewirkt, reagiert der gesamte Baum durch <strong>ein</strong>e Animation, die den<br />
aktuellen Kegel und das aktuelle Element in den Vordergrund bewegt.<br />
4.1.5.4.1. Translation entlang der x–Achse<br />
Die folgende Positionsangabe ’Bildmitte’ bezieht sich auf die Position des Wurzelknotens<br />
des Baums. Diese befindet sich zu Beginn des Suchdialogs in der Bildschirmmitte,<br />
kann aber durch den Benutzer verschoben werden. So ist sichergestellt,<br />
daß <strong>ein</strong>e Translation des gesamten Baums, zum Beispiel durch den Distanzregler,<br />
durch die Animation nicht unwirksam wird. Ziel ist es, daß <strong>ein</strong>e relative Bewegung<br />
innerhalb des Baums auch <strong>ein</strong>e gleichgroße Verschiebung des gesamten Baums zur<br />
Folge hat.<br />
Um die Ringelemente des aktuellen Kegels in die Bildmitte zu positionieren, muß<br />
der Baum um die Höhe des aktuellen Kegels bezüglich der Wurzel nach links verschoben<br />
werden. Zur Berechnung der Verschiebung dient wieder die Baumrepräsentation<br />
in Listennotation. Der gesamte Baum ist als Liste L gegeben und a ist der Name<br />
des aktuellen Knotens. Die Funktion XShift(L,a) berechnet den geforderten<br />
Verschiebewert.<br />
XShift(L, a) 0<br />
XShift(L, a) 0<br />
falls L <br />
falls GetList(L) <br />
Ein leerer Baum oder <strong>ein</strong> Baum, der nur aus <strong>ein</strong>em Blatt besteht, wird nicht verschoben.<br />
XShift(L, a) 0<br />
XShift(L, a) XShift(tail(L), a)<br />
falls GetName(head(L)) a<br />
falls not(IsNodeOf (GetList(head(L)), a))<br />
Ein Baum, an dessen Wurzel der gesuchte Knoten steht, muß ebenfalls nicht verschoben<br />
werden, genausowenig <strong>ein</strong> Baum, der den gesuchten Knoten nicht enthält.<br />
80
Das Prädikat IsNodeOf(B, k) untersucht, ob <strong>ein</strong> Knoten k im Baum B vorkommt. In<br />
allen anderen Fällen ergibt sich der Verschiebewert aus der Summe der Höhe der Konen<br />
zwischen Wurzel und gesuchtem Knoten.<br />
XShift(L, a) ConeHeight(GetName(head(L))) XShift(GetList(head(L), a))<br />
Da Dokument– und Begriffskonen unterschiedliche Höhen haben, ordnet die Funktion<br />
ConeHeight(GetName(k)) <strong>ein</strong>em Knoten k anhand s<strong>ein</strong>er Knotenbeschreibung<br />
GetName(k) <strong>ein</strong>e zum Typ passende Konushöhe zu.<br />
ConeHeight(b) DOCCONEHEIGHT<br />
ConeHeight(b) WORDCONEHEIGHT<br />
falls IsDocNode(b)<br />
sonst<br />
Das Prädikat IsDocNode(b) ist erfüllt, wenn es sich bei dem durch b beschriebenen<br />
Knoten um <strong>ein</strong>en Dokumentknoten handelt. Befindet sich b an der Wurzel <strong>ein</strong>es Kegels<br />
steht somit fest, daß es sich um <strong>ein</strong>en Dokumentkegel handeln muß. Da nur zwei<br />
unterschiedliche Knotentypen existieren, bedeutet die Nichterfüllung des Prädikats<br />
das Vorliegen <strong>ein</strong>es Begriffskegels. Die Höhe der beiden Kegeltypen ist konstant<br />
und wird durch die Werte DOCCONEHEIGHT und WORDCONEHEIGHT definiert.<br />
4.1.5.4.2. Translation entlang der z–Achse<br />
Nachdem der Baum um das Ergebnis von XShift nach links verschoben wurde, ist<br />
sichergestellt, daß sich der Ring, der das aktuelle Element b<strong>ein</strong>haltet, in der Bildschirmmitte<br />
befindet. Darüber hinaus soll aber auch gewährleistet s<strong>ein</strong>, daß die Entfernung<br />
des aktuellen Knotens vom Betrachter sich nicht verändert. Der gesamte<br />
Baum muß darum entsprechend nach vorne oder hinten geschoben werden, Bezugsgröße<br />
ist wieder die Entfernung der Wurzel vom Betrachter. Die Funktion<br />
ZShift(L,a) berechnet den geforderten Verschiebewert<br />
ZShift(L, a) 0<br />
ZShift(L, a) 0<br />
falls L <br />
falls GetList(L) <br />
Ein leerer Baum, oder <strong>ein</strong> Baum der nur aus <strong>ein</strong>em Blatt besteht, wird nicht verschoben.<br />
81
ZShift(L, a) 0<br />
falls GetName(head(L)) a<br />
ZShift(L, a) ZShift(tail(L), a) falls not(IsNodeOf (GetList(head(L)), a))<br />
Ein Baum, an dessen Wurzel der gesuchte Knoten steht, muß ebenfalls nicht verschoben<br />
werden, genausowenig <strong>ein</strong> Baum, der den gesuchten Knoten nicht enthält.<br />
In allen anderen Fällen ergibt sich der Verschiebewert aus der Summe der Radien<br />
der Konen zwischen Wurzel und gesuchtem Knoten.<br />
ZShift(L, a) ConeRadius(head(L)) ZShift(GetList(tail(L), a))<br />
Die Funktion ConeRadius(k) liefert zu <strong>ein</strong>em Knoten k den Radius der folgenden<br />
Konusgrundfläche. Auf die Berechnung des Konusradius wurde im Abschnitt<br />
4.1.5.3. ausführlich <strong>ein</strong>gegangen.<br />
4.1.5.4.3. Rotation der Kegel<br />
Nachdem die absolute Position des Baums bestimmt ist, bleibt nun noch zu definieren,<br />
wie die Kegel des Baums rotiert werden müssen, so daß das aktuelle Element<br />
mit Front zum Benutzer ausgerichtet ist.<br />
In der folgenden Spezifikation wird davon ausgegangen, daß <strong>ein</strong> um den Winkel i<br />
rotierter Kegel s<strong>ein</strong> i–tes Ringelement im Bildschirmvordergrund zeigt. Wir können<br />
darum auf die im Abschnitt 4.1.5.3. <strong>ein</strong>geführten Polarkoordinaten <strong>für</strong> die Elementpositionen<br />
zurückgreifen. Ein Kegel, gegeben durch s<strong>ein</strong>en Wurzelknoten k, muß<br />
nur dann rotiert werden, wenn das aktuelle Element a zu s<strong>ein</strong>en Nachfolgerknoten<br />
gehört. Die Definition des Funktionswerts NONE bedeutet, daß der Rotationswert<br />
des Kegels nicht geändert wird, damit der Benutzer nicht durch unnötige Baumtransformationen<br />
abgelenkt wird.<br />
Rotation(k, a) NONE<br />
Rotation(k, a) NONE<br />
falls GetList(k) <br />
falls not(IsNodeOf (GetList(k), a))<br />
Gehört a aber zu den Nachfolgern von k, muß der Index des Ringelements bestimmt<br />
werden, das mit a identisch ist oder a als Nachfolger hat. Die Hilfsfunktion Index(Liste,<br />
Knoten) liefert den gewünschten Wert.<br />
82
Index(L, a) 1 falls head(L) a IsNodeOf (GetList(L), a)<br />
Index(L, a) 1 Index(tail(L), a) sonst<br />
<strong>Eine</strong> weitere Hilfsfunktion Angle(L, i) liefere den Winkel des i–ten Listenelements.<br />
Rotation(k, a) Rotation(Angle(Index(GetList(k), a)))<br />
83
Blick<br />
richtung<br />
b<br />
r 2 a<br />
<br />
k<br />
2<br />
2<br />
3<br />
k 3 r 3<br />
1<br />
r 1<br />
w k 1<br />
Blick<br />
richtung<br />
r 3<br />
r 2<br />
r 1<br />
a k 3 k 2<br />
w k 1<br />
Abbildung: 3.15.<br />
Kegelrotation<br />
In Abbildung 3.15. ist <strong>ein</strong> Kegelbaum schematisch im Grundriß in zwei Zuständen<br />
skizziert. Im oberen Zustand ist Knoten b im Kegel unter dem Wurzelknoten w das<br />
aktuelle Element. Der Benutzer selektiert Knoten a als neues aktuelles Element. Auf<br />
dem Pfad von w nach a liegen die Knoten k 2 und k 3 . Die Kegel unter w 1 , k 2 und k 3<br />
werden um die Winkel , und rotiert. Der gesamte Baum wurde außerdem<br />
84
um r 2 +r 3 vom Betrachter wegbewegt, um a im gewohnten Abstand zu positionieren.<br />
Im unteren Teil der Abbildung hat der Kegelbaum s<strong>ein</strong>en Zielzustand erreicht.<br />
85
4.2. Präsentation der Ergebnismenge<br />
In diesem Kapitel wird das Modell des zweiten Interaktionswerkzeugs der <strong>Benutzerschnittstelle</strong><br />
vorgestellt.<br />
Durch den Suchpfad im ’Kontextbaum’ hat der Benutzer intuitiv <strong>ein</strong>e Anfrage an<br />
den automatischen <strong>Retrieval</strong>-Mechanismus formuliert, welche aus <strong>ein</strong>er Menge von<br />
Termen der Datenbank besteht. Die Terme werden in der Anfrage implizit ODERverknüpft.<br />
Mit der Metapher der ’Relevanzkugel’ leistet das System nun <strong>ein</strong>e Zusammenfassung<br />
und Darstellung der Ergebnismenge.<br />
4.2.1. Präsentation in traditionellen <strong>Retrieval</strong> Systemen<br />
In herkömmlichen, biblio<strong>graphische</strong>n <strong>Retrieval</strong>systemen wird dem Benutzer die Ergebnismenge<br />
in Form <strong>ein</strong>er sequentiellen Liste von Dokumententiteln präsentiert.<br />
Insbesondere bei sehr großen Datenbanken tritt schnell das Problem auf, daß nur<br />
noch <strong>ein</strong> kl<strong>ein</strong>er Teil der Dokumente der Ergebnismenge dargestellt werden kann.<br />
Um die gesamte Menge darstellen zu können, muß die Präsentation in mehrere<br />
(Bildschirm–)Seiten unterteilt werden. Der Benutzer verliert so schnell den Überblick<br />
über die Ergebnismenge.<br />
Um die Größe der Ergebnismenge zu beschränken, treffen viele <strong>Retrieval</strong>systeme<br />
<strong>ein</strong>e Auswahl von besonders relevanten Dokumenten, ohne daß die individuelle<br />
Suchsituation des Benutzers berücksichtigt wird.<br />
Die Entscheidung über den Relevanzwert <strong>ein</strong>es Dokuments trifft nur das System und<br />
nicht der Benutzer. Durch dieses Verfahren wird dem Benutzer Information vorenthalten.<br />
Er erfährt nichts über Dokumente, welche vom System als ungenügend relevant<br />
beurteilt wurden.<br />
<strong>Eine</strong> Darstellung der ausgewählten Dokumentenmenge als sequentielle Liste, wie<br />
man sie von herkömmlichen <strong>Retrieval</strong>systemen gewohnt ist, vermittelt dem Benutzer<br />
k<strong>ein</strong>e zusätzliche Information über die ausgewählten Dokumente. Die Auswahlkriterien<br />
des Systems bleiben dem Benutzer verborgen. Bestenfalls kann die Reihenfolge,<br />
in welcher die Dokumente in der Liste angeordnet sind, <strong>ein</strong>en schwachen<br />
Anhaltspunkt über das Relevanzmaß bestimmter Dokumente liefern.<br />
Desweiteren kann <strong>ein</strong>e Listendarstellung k<strong>ein</strong>e Information über semantische Beziehungen<br />
zwischen <strong>ein</strong>zelnen Dokumenten liefern. Der Benutzer erhält durch die<br />
Listendarstellung der Ergebnismenge auch k<strong>ein</strong>e weitere Hilfe zur Verbesserung der<br />
Anfrage.<br />
Ziel <strong>ein</strong>er besseren Repräsentation muß es s<strong>ein</strong>, die Auswahl bestimmter Dokumentengruppen<br />
aus der Ergebnismenge dem Benutzer zu überlassen. Das System sollte<br />
86
weniger die Auswahl bestimmter Dokumentengruppen, als vielmehr die Darstellung<br />
<strong>ein</strong>er möglichst vollständigen Ergebnismenge leisten. R.R. Korfhage formuliert<br />
dies in s<strong>ein</strong>er Forderung: ”The Viewpoint should shift from retrieval to display”<br />
[KORF91].<br />
Um dem Benutzer mehr Information über die von ihm gewünschte Dokumentenmenge<br />
zu vermitteln, muß die Listendarstellung durch <strong>ein</strong>e geeignete <strong>graphische</strong><br />
Darstellung ersetzt werden. Es kann ihm so Information durch <strong>graphische</strong> Gegebenheiten,<br />
die er intuitiv erfaßt, vermittelt werden.<br />
Verschiedene <strong>graphische</strong> Modelle zur Darstellung der Ergebnisse <strong>ein</strong>er <strong>Retrieval</strong>anforderung<br />
sind denkbar.<br />
4.2.2. Beispiele <strong>graphische</strong>r Präsentation<br />
Die zwei folgenden Beispiele <strong>ein</strong>er <strong>graphische</strong>n Ergebnisrepräsentation basieren<br />
auf dem unter Kapitel 3.6.1.1. vorgestellten Inhaltsnetz vektorbasierter Information<br />
<strong>Retrieval</strong> Systeme. Der Inhalt der Datenbasis wird durch <strong>ein</strong> spezielles Inferenznetz<br />
repräsentiert. Der Inhalt content <strong>ein</strong>es Textdokuments wird im Vektormodell durch<br />
den in Kapitel 3.6.1.1. beschriebenen Inhaltsvektor dargestellt:<br />
content(d) (w 1d , w 2d , w 3d , ... , w md )<br />
((content(w 1d ), g(w 1 , d)), ... , (content(w md ), g(w m , d)))<br />
D<br />
Mit den Begriffen der Anfrage an das <strong>Retrieval</strong> System werden sogenannte Referenzpunkte<br />
definiert. Das Vektormodell wird nun auf <strong>ein</strong> Abstandsmodell zur <strong>graphische</strong>n<br />
Repräsentation angewendet. Die Gewichtung der Referenzpunkte und somit<br />
der Begriffe bezüglich der verschiedenen Dokumente wird durch <strong>ein</strong>e Funktion<br />
transform auf Abstände in der <strong>graphische</strong>n Darstellung abgebildet:<br />
distance(w, d) transform(content(d), content(w))<br />
Beispiele <strong>für</strong> verschiedene Definitionen der Abstandsfunktion distance finden sich<br />
in Kapitel 4.2.3.1..<br />
Der semantische Abstand zwischen Dokument und Begriff wird zum Beispiel auf<br />
den geometrischen Abstand der jeweiligen Symbole in der Darstellung abgebildet.<br />
Der semantische Verwandtschaftsgrad von verschiedenen Dokumenten läßt sich am<br />
Abstand ihrer Symbole in der Darstellung ablesen.<br />
87
Abstand muß nicht in jedem Fall der geometrische Abstand s<strong>ein</strong>. Es sind viele Abbildungen<br />
auf die verschiedenen Parameter <strong>ein</strong>er <strong>graphische</strong>n Darstellung denkbar,<br />
wie zum Beispiel <strong>ein</strong>e Abbildung auf die Farbwerte der Darstellung und <strong>ein</strong>em damit<br />
definierten ’Farbabstand’ zwischen den Symbolen.<br />
4.2.2.1. Das GUIDO–System<br />
Das GUIDO–System (Graphical User Interface for Data Organisation) [KORF91]<br />
basiert auf dem oben beschriebenen Abstandsmodell.<br />
Durch n <strong>ein</strong>zelne Worte oder Wortgruppen werden Referenzpunkte definiert, welche<br />
<strong>ein</strong>en n–dimensionalen Raum aufspannen. Die Referenzpunkte werden nicht<br />
durch Punkte des Raumes, sondern durch die Koordinatenachsen dargestellt. Die<br />
Dokumentensymbole der Ergebnismenge werden als Punkte dieses Raumes repräsentiert,<br />
deren Koordinaten sich aus der Relevanz bezüglich der <strong>ein</strong>zelnen Referenzpunkte<br />
berechnet.<br />
B<br />
Für diese Dokument ist nur<br />
Referenzpunkt B relevant<br />
Für dieses Dokument sind beide Referenzpunkte<br />
sehr relevant<br />
Für diese Gruppe von Dokumenten ist Punkt A<br />
sehr relevant und Punkt B <strong>ein</strong> wenig<br />
A<br />
Darstellungen des GUIDO–Systems mit zwei Referenz-<br />
Abbildung: 3.16.<br />
punkten<br />
<strong>Eine</strong> solche Darstellung vermittelt dem Benutzer neue Informationen, ohne daß er<br />
sich zur näheren Auswahl <strong>ein</strong>er bestimmten Dokumentengruppe mit dem Inhalt der<br />
Dokumente vertraut machen muß. Er sieht anhand der Position <strong>ein</strong>es jeden Dokuments,<br />
welche Schlüsselworte verantwortlich <strong>für</strong> die Aufnahme in die Ergebnismenge<br />
waren. Auch Beziehungen, d.h. semantische Abstände zwischen verschiedenen<br />
Dokumenten lassen sich durch ihre Position erkennen.<br />
Dokumente, die räumlich <strong>ein</strong>e Gruppe bilden, bilden auch thematisch <strong>ein</strong>e Gruppe,<br />
da sie ähnliche Relevanzwerte bezüglich der verschiedenen Referenzpunkte haben.<br />
Für den Fall, daß der Benutzer nur drei oder weniger Referenzpunkte definiert, läßt<br />
sich die Darstellung mit gewöhnlichen <strong>graphische</strong>n Techniken handhaben. Weitere<br />
88
Referenzpunkte bzw. Dimensionen müssen durch andere <strong>graphische</strong> Attribute wie<br />
Farbe, Form, Größe oder Bewegung simuliert werden.<br />
Es ist fraglich, inwieweit der Benutzer in der Lage ist, bei <strong>ein</strong>er solchen mehrdimensionalen<br />
Darstellung die <strong>graphische</strong>n Gegebenheiten der Darstellung intuitiv zu erfassen,<br />
da zur Abbildung der Relevanzwerte <strong>ein</strong>e Abstandsfunktion <strong>für</strong> Attribute<br />
wie Form oder Bewegung der Symbole definiert werden muß.<br />
Das GUIDO–System eignet sich deshalb nur zur Darstellung von Ergebnismengen<br />
mit <strong>ein</strong>er kl<strong>ein</strong>en Menge von Referenzpunkten.<br />
4.2.2.2. Das VIBE–System<br />
Das VIBE–System (Visualisation By Example) [OLSEN91] ist <strong>ein</strong>e <strong>graphische</strong><br />
Darstellung der Ergebnismenge in der Ebene.<br />
Mit den Begriffen der <strong>Retrieval</strong>anfrage werden Referenzpunkte als geometrische<br />
Punkte in der Ebene definiert, die die Ecken <strong>ein</strong>es Polygons bilden. Die Dokumente<br />
der Ergebnismenge werden durch <strong>graphische</strong> Symbole im Inneren des Polygons<br />
dargestellt.<br />
Die Position der <strong>ein</strong>zelnen Dokumente berechnet sich anhand der Relevanzwerte bezüglich<br />
der <strong>ein</strong>zelnen Referenzpunkte. Je relevanter <strong>ein</strong> Referenzpunkt <strong>für</strong> <strong>ein</strong> bestimmtes<br />
Dokument ist, desto näher wird das Dokument positioniert. Der semantische<br />
Abstand zwischen zwei Dokumenten wird so direkt auf den geometrischen<br />
Abstand zwischen den betreffenden Symbolen abgebildet.<br />
Durch die Beschränkung auf <strong>ein</strong>e zweidimensionale Darstellung entsprechen die<br />
geometrischen Abstände der Dokumente von den Referenzpunkten nicht mehr absoluten<br />
Relevanzwerten, sondern vielmehr dem Verhältnis des Dokumentes zu allen<br />
Referenzpunkten der Darstellung. Es geht somit <strong>ein</strong> Teil der Information verloren,<br />
wie der Darstellung in Abbildung 3.17. zu entnehmen ist.<br />
Für das Dokumentensymbol, welches genau in der Mitte des von den Referenzpunkten<br />
A, B, C und E aufgespannten Vierecks liegt, ist hier nicht klar entscheidbar, welcher<br />
der vier Referenzpunkte besonders relevant <strong>für</strong> das betreffende Dokument ist.<br />
89
B<br />
C<br />
In der Mitte zwischen C und D<br />
bedeutet gleicher Einfluß der<br />
Punkte C und D<br />
Alle Dokumente im von A,B und C<br />
aufgespannten Dreieck werden<br />
auch von B be<strong>ein</strong>flußt<br />
D<br />
Dieses Dokument kann aus<br />
verschiedenen Gründen<br />
hier positioniert s<strong>ein</strong><br />
Starker Einfluß von A<br />
und schwacher Einfluß von E<br />
A<br />
E<br />
Abbildung: 3.17.<br />
Ergebnispräsentation mit dem VIBE-System [KORF91]<br />
Dem Verlust an Information steht <strong>ein</strong>e leichter handhabbare Darstellung gegenüber.<br />
Der Benutzer kann auch bei <strong>ein</strong>er größeren Anzahl von Referenzpunkten die <strong>graphische</strong>n<br />
Gegebenheiten intuitiv erfassen.<br />
4.2.3. Präsentation durch die Relevanzkugel<br />
Das Präsentationsmodell der ’Relevanzkugel’ ist <strong>ein</strong>e Erweiterung der zweidimensionalen<br />
Darstellung des VIBE–Systems auf <strong>ein</strong>e dreidimensionale Darstellung im<br />
Raum. An die Stelle des durch die Referenzpunkte aufgespannten Polygons tritt <strong>ein</strong>e<br />
transparente Kugel, auf deren Oberfläche die Symbole der Referenzpunkte gleichmäßig<br />
verteilt dargestellt werden.<br />
Die Referenzpunkte werden durch die <strong>ein</strong>zelnen Schlüsselworte des Suchpfades des<br />
in Kapitel 4.1. beschriebenen Kontextbaum definiert. Die Dokumente der Ergebnismenge<br />
werden im Inneren der Kugel dargestellt. Sie werden entsprechend ihrer Relevanzwerte<br />
von den Schlüsselworten aus dem Kugelzentrum herausgezogen.<br />
Wie bei der Polygondarstellung des VIBE–Systems entsprechen die Abstände der<br />
Dokumente von den <strong>ein</strong>zelnen Referenzpunkten nicht den absoluten Relevanzwer-<br />
90
ten, sondern dem Verhältnis des Dokumentes zu allen Referenzpunkten. Auch in der<br />
Kugeldarstellung können deshalb Dokumente aus verschiedenen Gründen an derselben<br />
Position im Raum liegen.<br />
Durch den zusätzlichen Freiheitsgrad der dreidimensionalen Darstellung ist jedoch<br />
die Wahrsch<strong>ein</strong>lichkeit <strong>ein</strong>es Informationsverlustes durch <strong>ein</strong>e solche Positionsüberlappung<br />
geringer als bei der Darstellung in der Ebene.<br />
Während bei der 2D–Darstellung vom Benutzer etwa 12 tortenstückartige Segmente<br />
unterschieden werden können, bietet die Kugel bei gleichem Radius und gleichem<br />
Öffnungswinkel der Segmente die etwa doppelte Anzahl (Abbildung 3.18.). Es ist<br />
bei der Kugeldarstellung also potentiell leichter, Dokumente zu verschiedenen Dokumentengruppen<br />
(Clustern) zuzuordnen.<br />
r<br />
a. Unterteilung in 12 Segmente (2D) b. Unterteilung in 20 Segmente (3D)<br />
Abbildung: 3.18.<br />
Intuitive Segmentierung durch den Benutzer<br />
Die dreidimensionale Kugeldarstellung bietet außerdem mehr Positionierungsmöglichkeiten<br />
<strong>für</strong> die Referenzpunkte. Ein konkreter Vergleich der möglichen Positionsanzahlen<br />
läßt sich anhand der folgenden Berechnungen durchführen:<br />
1. Bei <strong>ein</strong>er minimalen Distanz e zwischen zwei Referenzpunkten<br />
auf dem Rand des Kreises mit Radius r in der<br />
zweidimensionalen Darstellung läßt sich die Anzahl der<br />
möglichen Positionen auf dem Rand wie folgt berechnen:<br />
RefPosAnzahl2D(r, e) 2r<br />
e<br />
2. Bei <strong>ein</strong>er minimalen Distanz e zwischen zwei Referenzpunkten<br />
auf der Oberfläche der Kugel mit Radius r in der<br />
dreidimensionalen Darstellung läßt sich die Anzahl der<br />
möglichen Positionen auf der Oberfläche durch folgende<br />
Funktion berechnen:<br />
91
RefPosAnzahl3D(r, e) 4r2<br />
e 2 4r2<br />
e 2<br />
Das Verhältnis der Anzahlen der beiden Darstellungen erhält man somit als Quotient<br />
der beiden Funktionen:<br />
4r<br />
RefPosAnzahl3D(r, d)<br />
2<br />
RefPosAnzahl2D(r, d) e 2<br />
2r<br />
e<br />
2r<br />
e<br />
Folglich bietet die Kugeldarstellung bei gleichem Radius r um <strong>ein</strong>en Faktor 2r/e<br />
mehr Möglichkeiten die Referenzpunkte zu positionieren.<br />
4r 2 2r<br />
Kugeldarstellung (3D)<br />
Kreisdarstellung (2D)<br />
r<br />
Abbildung: 3.19. Anzahlen möglicher Referenzpunktpositionen (mit e = 1)<br />
Ähnlich lassen sich die Anzahlen der möglichen Positionen der Dokumentensymbole<br />
in Kreis- und Kugeldarstellung vergleichen:<br />
1. Bei <strong>ein</strong>er minimalen Ausdehnung d <strong>ein</strong>er Dokumentenpositionen<br />
im Inneren des Kreises mit Radius r läßt sich<br />
die Anzahl der möglichen Positionen in der zweidimensionalen<br />
Darstellung wie folgt berechnen:<br />
DocPosAnzahl2D(r, d) r2<br />
d 2 r2<br />
d 2<br />
2. In der dreidimensionalen Darstellung läßt sich die Anzahl<br />
der möglichen Dokumentpositionen bei <strong>ein</strong>er minimalen<br />
Positionsausdehnung d im Inneren <strong>ein</strong>er Kugel mit Radius<br />
r durch die folgende Funktion DocPosAnzahl3D(r,d)<br />
berechnen:<br />
92
DocPosAnzahl3D(r, d) <br />
4<br />
3 r3 r3<br />
<br />
4<br />
3<br />
d3 d 3<br />
Mit den beiden Funktionen läßt sich das Verhältnis zwischen den Anzahlen der möglichen<br />
Dokumentenpositionen berechnen:<br />
r 3<br />
DocPosAnzahl3D(r, d)<br />
DocPosAnzahl2D(r, d) d 3<br />
<br />
r r 2 d<br />
d 2<br />
Die Kugeldarstellung bietet bei gleichem Radius r um <strong>ein</strong>en Faktor r/d mehr Möglichkeiten,<br />
die Dokumentensymbole zu positionieren. Es ist somit unwahrsch<strong>ein</strong>licher,<br />
daß Dokumente, die thematisch nicht mit<strong>ein</strong>ander verwandt sind, räumlich nahe<br />
zu<strong>ein</strong>ander positioniert werden.<br />
Dieser Effekt wird in Abbildung 3.20. an <strong>ein</strong>em Präsentationsbeispiel mit vier Relevanzpunkten<br />
verdeutlicht.<br />
In der zweidimensionalen Darstellung des VIBE–Systems werden die Dokumente<br />
a, b und c, obwohl sie völlig unterschiedliche Relevanzwerte bezüglich der vier Referenzpunkte<br />
haben, an der gleichen Position dargestellt. In der dreidimensionalen<br />
Darstellung hingegen läßt sich die thematische Unabhängigkeit dieser drei Dokumente<br />
leicht ablesen.<br />
Um den verbleibenden Informationsverlust zu kompensieren, ist es sinnvoll dem<br />
Benutzer, Interaktionsmöglichkeiten zur Verfügung zu stellen. Er kann sich so durch<br />
Manipulation der Darstellung Klarheit darüber verschaffen, welche Referenzpunkte<br />
<strong>für</strong> die Position bestimmter Dokumente verantwortlich sind.<br />
93
A<br />
B<br />
d<br />
a<br />
c<br />
b<br />
D<br />
e<br />
C<br />
VIBE–System (2D)<br />
A<br />
d<br />
a<br />
D<br />
c<br />
b<br />
B<br />
Relevanzkugel (3D)<br />
Relevanzwerte der <strong>ein</strong>zelnen Dokumente der Darstellung:<br />
Für Dokument a sind nur die Referenzpunkte A und C etwa gleich relevant<br />
Für Dokument b sind alle Referenzpunkte in gleichem Maße relevant<br />
Für Dokument c sind nur die Referenzpunkte B und D etwa gleich relevant<br />
Für Dokument d sind nur die Referenzpunkte A und D etwa gleich relevant<br />
Für Dokument e ist Referenzpunkt C sehr und Punkt D <strong>ein</strong> wenig relevant<br />
e<br />
C<br />
Abbildung: 3.20.<br />
Darstellungen des VIBE–Systems und der Relevanzkugel<br />
94
4.2.3.1. Positionierung der Dokumente<br />
Entscheidend <strong>für</strong> den Wert <strong>ein</strong>er <strong>graphische</strong>n Darstellung der Ergebnismenge ist die<br />
Güte der Abbildung der Relevanzwerte auf die geometrischen Parameter der Darstellung,<br />
im Fall der Relevanzkugel, die Abbildung auf die Abstandswerte im Raum.<br />
Der Benutzer soll anhand der Position der Dokumentensymbole <strong>ein</strong>e möglichst genaue<br />
thematische Zuordnung des zugehörigen Dokuments durchführen können.<br />
Die Berechnung geeigneter Abstandswerte geschieht anhand der Topologie des in<br />
Kapitel 3.6.1.1. beschriebenen Inhaltsnetzes. Der Inhalt der Dokumente wird durch<br />
den Vektor content(d) beschrieben. Anhand der im Dokumentenvektor enthaltenen<br />
Begriffsgewichte läßt sich die absolute Häufigkeit der verschiedenen Begriffe in<br />
dem betreffenden Dokument ermitteln.<br />
<strong>Eine</strong> direkte Abbildung der jeweiligen absoluten Häufigkeiten auf die Abstandswerte<br />
ist jedoch wenig sinnvoll, da die Schlüsselworte <strong>ein</strong>es besonders kl<strong>ein</strong>en Dokuments<br />
<strong>für</strong> dieses bei gleicher Häufigkeit sehr viel relevanter sind als die <strong>ein</strong>es besonders<br />
großen. Außerdem liefert die Abstands<strong>ein</strong>teilung nach den absoluten<br />
Worthäufigkeiten nur <strong>ein</strong>e sehr grobe Positionsauflösung im Raum.<br />
Die Abstandswerte müssen relativ zum Inhalt der jeweiligen Dokumente berechnet<br />
werden. <strong>Eine</strong> Möglichkeit besteht darin, die Werte abhängig von der Gesamthäufigkeit<br />
der Begriffe der <strong>Retrieval</strong>anfrage (der Query) zu berechnen. Mit Hilfe der unter<br />
Kapitel 3.6.1.1. definierten Funktion count(w,d) zur Berechnung der absoluten Häufigkeit<br />
des Begriffs w im Dokument d, läßt sich so <strong>ein</strong>e Funktion zur Berechnung<br />
des Abstandes zwischen den Symbolen von d und w definieren (Auf die Skalierungsfunktion<br />
scaling wird im folgenden genauer <strong>ein</strong>gegangen):<br />
distance 1 (w, d) <br />
<br />
i: w i Query<br />
count(w, d)<br />
count(w i , d) scaling<br />
Insbesondere bei <strong>ein</strong>er kl<strong>ein</strong>en Anzahl von Begriffen in der <strong>Retrieval</strong>anfrage tritt bei<br />
<strong>ein</strong>er Abstandsberechnung mit der Funktion distance 1 das Problem <strong>ein</strong>er zu groben<br />
Positionsauflösung auf. Der Vorteil der großen Menge an Positionen im Raum wird<br />
nicht genutzt.<br />
<strong>Eine</strong> höhere Auflösung wird zum Beispiel durch <strong>ein</strong>e Berechnung des Abstandes relativ<br />
zur Summe der absoluten Häufigkeiten aller Schlüsselworte der Datenbank im<br />
Dokument d, erreicht.<br />
95
distance 2 (w, d) <br />
<br />
i: w i Database<br />
count(w, d)<br />
count(w i , d) scaling<br />
<strong>Eine</strong> noch höhere Positionsauflösung liefert die Berechnung der Abstandswerte relativ<br />
zur jeweiligen Dokumentenlänge. Die Dokumentenlänge kann mit Hilfe der<br />
unter Kapitel 3.6.1.1. definierten Funktion len(d) berechnet werden.<br />
distance 3 (w, d) <br />
count(w, d)<br />
len(d)<br />
scaling<br />
Das Skalieren der Werte erfolgt jeweils durch <strong>ein</strong>e geeignete scaling Funktion, <strong>für</strong><br />
distance 3 beispielsweise durch die im folgenden definierte Funktion. Mit scaling 3<br />
wird der größte Abstandswert der aktuellen Darstellung unter Berücksichtigung aller<br />
Begriffe der Anfrage und aller als Ergebnis erhaltenen Dokumente berechnet.<br />
scaling 3 <br />
max<br />
i,j: d i retrieved Docs w j Query<br />
len(d i )<br />
count(w j , d i )<br />
In der <strong>graphische</strong>n Darstellung entspricht der Wert der distance Funktion der Länge<br />
des Vektors, der das Dokumentensymbol in Richtung des betreffenden Referenzpunktes<br />
aus dem Kugelmittelpunkt herauszieht.<br />
Der Positionsvektor <strong>ein</strong>es Dokumentensymbols errechnet sich aus der Addition der<br />
<strong>ein</strong>zelnen Vektoren bezüglich aller Referenzpunkte der Darstellung. Abbildung<br />
3.21. zeigt die Positionsvektoren von vier Referenzpunkten (A, B, C und D) bezüglich<br />
<strong>ein</strong>es Dokuments. In Abbildung 3.22.werden die vier Vektoren zu <strong>ein</strong>em<br />
Positionsvektor, der die Dokumentposition beschreibt, addiert.<br />
96
B<br />
<br />
A<br />
<br />
C<br />
doc<br />
<br />
distance 3 (doc, A)<br />
distance 3 (doc, B)<br />
D<br />
distance 3 (doc, C)<br />
distance 3 (doc, D)<br />
Abbildung: 3.21.<br />
Vektoren der Referenzpunktanziehungskräfte<br />
B<br />
A<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
doc<br />
C<br />
D<br />
<br />
<br />
Abbildung: 3.22.<br />
Positionierung des Dokumentensymbols<br />
Welche der verschiedenen aufgeführten Funktionen die beste Dokumentenpositionierung<br />
zur Folge hat, hängt von den individuellen Gegebenheiten der verwendeten<br />
Datenbank ab. Aus diesem Grund sollte es dem Benutzer möglich s<strong>ein</strong>, die Wahl der<br />
verwendeten Abbildung interaktiv zu treffen.<br />
4.2.3.2. Positionierung der Wortsymbole<br />
Entscheidend <strong>für</strong> <strong>ein</strong>e aussagekräftige Positionierung der Dokumentensymbole im<br />
Inneren der Relevanzkugel ist auch die Anordnung der Referenzpunkte, d.h. der<br />
97
Wortsymbole der Worte aus der Query auf der Oberfläche der Kugel. Durch diese<br />
Anordnung wird das Innere der Kugel in Themensegmente aufgeteilt, deren Eckpunkte<br />
auf der Kugeloberfläche durch die Referenzpunkte definiert sind. Wie Abbildung<br />
3.23. zeigt, befinden sich in <strong>ein</strong>em Themensegment jeweils die Dokumente,<br />
<strong>für</strong> die die segmentbildenden Referenzpunkte relevant sind.<br />
E<br />
A<br />
D<br />
B<br />
Für die Dokumente deren Symbole<br />
sich im Inneren des dunkler dargestellten<br />
Segments befinden, sind die<br />
Referenzpunkte A,B und C relevant.<br />
C<br />
F<br />
Abbildung: 3.23.<br />
Darstellung <strong>ein</strong>es Themensegments in der Relevanzkugel<br />
Bei der initialen Positionierung durch das System sollten die Abstände zwischen den<br />
<strong>ein</strong>zelnen Referenzpunkten möglichst gleich s<strong>ein</strong>, um möglichst gleiche Volumen<br />
der Themensegmente im Inneren der Kugel zu erhalten.<br />
Denkbar ist es natürlich auch, <strong>ein</strong>e initiale Positionierung abhängig von Beziehungen<br />
zwischen <strong>ein</strong>zelnen Referenzpunkten durchzuführen. Dies bedeutet, daß das<br />
System Referenzpunkte, die es als ähnlich oder semantisch verwandt beurteilt, nahe<br />
zu<strong>ein</strong>ander positioniert.<br />
Das Problem <strong>ein</strong>er solchen Vorgehensweise ist, daß das System <strong>ein</strong>e Ähnlichkeitsbeurteilung<br />
durchführt, ohne die individuelle Suchsituation des Benutzers zu berücksichtigen.<br />
So können Worte und somit Referenzpunkte in verschiedenen Zusammenhängen<br />
auch unterschiedlich stark semantisch verwandt s<strong>ein</strong>.<br />
Ausgehend von <strong>ein</strong>er Gleichverteilung der Referenzpunkte auf der Kugeloberfläche<br />
sollte es dem Benutzer überlassen s<strong>ein</strong>, die Referenzpunkte nach s<strong>ein</strong>en individuellen<br />
Anforderungen umzusortieren.<br />
Bei <strong>ein</strong>er Gleichverteilung spannen die Referenzpunkte <strong>ein</strong>en regulären Polyeder<br />
auf (Abbildung 3.24. ). Reguläre Polyeder werden von kongruenten regulären Polygonen<br />
begrenzt. Die in <strong>ein</strong>er Ecke zusammenlaufenden Kanten bilden kongruente<br />
Eckenfiguren. Da <strong>ein</strong> n–Eck in (n–2) Dreiecke zerlegt werden kann, beträgt die Größe<br />
<strong>ein</strong>es Innenwinkels im regulären n–Eck ((n–2)·180/n). An jeder Ecke <strong>ein</strong>es Po-<br />
98
lyeders stoßen mindestens drei Flächen zusammen. Da die Summe der an <strong>ein</strong>er Ecke<br />
liegenden Winkel aber kl<strong>ein</strong>er als 360 <br />
<br />
<br />
Da es damit nur fünf reguläre, konvexe Polyeder gibt, ist <strong>ein</strong>e Gleichverteilung nur<br />
bei fünf verschiedenen Kardinalitäten der Referenzpunktmenge möglich.<br />
a. Tetraeder (4 Ecken)<br />
c. Würfel (8 Ecken)<br />
e. Dodekaeder (20 Ecken)<br />
b. Oktaeder (6 Ecken)<br />
d. Ikosaeder (12 Ecken)<br />
Abbildung: 3.24.<br />
Die platonischen Polyeder<br />
Für Referenzpunktmengen anderer Kardinalität muß <strong>ein</strong>e annähernde Gleichverteilung<br />
genügen.<br />
Realisiert werden kann die Verteilung der Referenzpunkte durch <strong>ein</strong>e Tabelle, in der<br />
<strong>für</strong> jede sinnvolle Anzahl von Referenzpunkten und <strong>für</strong> jeden <strong>ein</strong>zelnen Punkt die<br />
initiale Position <strong>ein</strong>getragen ist. Ein Eintrag beschreibt <strong>ein</strong>e Position auf der Kugel<br />
durch zwei Winkelangaben <strong>für</strong> Rotationen um zwei der drei Achsen. So kann ausgehend<br />
vom höchsten Punkt der Kugel jede Position auf der Kugeloberfläche beschrieben<br />
werden.<br />
4.2.3.3. Interaktionsmöglichkeiten des Benutzers<br />
Die Darstellung der Relevanzkugel soll dem Benutzer ermöglichen die Dokumente,<br />
die das <strong>Retrieval</strong>system als Ergebnis auf s<strong>ein</strong>e Anfrage geliefert hat und welche im<br />
Inneren der Kugel dargestellt werden, nach ihrer thematischen Zusammengehörigkeit<br />
zu ordnen. Wie bereits oben erwähnt, soll diese Ordnung nicht nach den allgem<strong>ein</strong>en<br />
Kriterien des Systems, sondern nach den speziellen Anforderungen des Benutzers<br />
erfolgen.<br />
Dem Benutzer müssen also verschiedene Interaktionsmöglichkeiten zur Verfügung<br />
gestellt werden, mit denen er die Darstellung der Relevanzkugel be<strong>ein</strong>flussen und<br />
die Dokumentensymbole gruppieren (clustern) kann.<br />
99
4.2.3.3.1. Positionierung der Referenzpunkte<br />
Als erstes muß es dem Benutzer möglich s<strong>ein</strong>, die Position der Referenzpunkte auf<br />
der Kugeloberfläche zu ändern. Er kann Referenzpunkte, die ihm <strong>für</strong> s<strong>ein</strong>e Suchsituation<br />
besonders relevant ersch<strong>ein</strong>en, so positionieren, daß sie <strong>ein</strong> Themensegment<br />
bilden. Für alle Dokumente deren Symbole sich im Inneren des so gebildeten Segmentes<br />
befinden, sind dann die vom Benutzer ausgewählten Referenzpunkte relevant.<br />
Abbildung 3.25. zeigt <strong>ein</strong> Themensegment, das durch die Schlüsselworte house,<br />
energy und solar gebildet wird. Alle im Inneren des Segments dargestellten Dokumentensymbole<br />
werden mindestens von <strong>ein</strong>em der drei Referenzpunkte angezogen.<br />
Die drei Schlüsselworte sind <strong>für</strong> die durch die Symbole repräsentierten Dokumente<br />
relevant.<br />
house<br />
h<br />
g<br />
f<br />
e<br />
d<br />
a<br />
b<br />
c<br />
energy<br />
solar<br />
Abbildung: 3.25.<br />
Themensegment in der Relevanzkugel<br />
Das Verständnis <strong>für</strong> die semantischen Zusammenhänge der <strong>ein</strong>zelnen Symbole kann<br />
durch <strong>ein</strong>e direkte Reaktion der Dokumentensymbole auf Positionsveränderungen<br />
der Referenzpunkte verstärkt werden. Wenn <strong>ein</strong> bestimmter Referenzpunkt bewegt<br />
wird, so folgen ihm alle Dokumentensymbole von Dokumenten, <strong>für</strong> die er relevant<br />
ist.<br />
Als Eingabemedium <strong>für</strong> die Rotationsbewegung der Symbole auf der Kugeloberfläche<br />
eignet sich besonders der Spaceball, da er dem Benutzer <strong>ein</strong> intuitives Verständnis<br />
<strong>für</strong> die Bewegung vermittelt [s. Kapitel 2.3.2.2.]. <strong>Eine</strong> Bewegung der Symbole<br />
auf der Kugeloberfläche läßt sich jedoch auch mit <strong>ein</strong>er ’normalen’ Maus als Eingabemedium<br />
realisieren[s. Kapitel 2.3.2.1.]. Da durch Rotationen um zwei der drei<br />
Achsen jede Position auf der Oberfläche der Kugel erreicht werden kann, reicht es<br />
aus, die vier Richtungen der Mausbewegung in der Ebene auf vier Rotationsrichtungen<br />
um die Kugel abzubilden.<br />
100
y<br />
y<br />
x<br />
z<br />
x<br />
Abbildung: 3.26.<br />
Abbildung der Mausbewegung<br />
4.2.3.3.2. Manipulation der Relevanzwerte<br />
Da die verschiedenen Referenzpunkte unterschiedlich relevant in der speziellen<br />
Suchsituation des Benutzers s<strong>ein</strong> können, muß es dem Benutzer möglich s<strong>ein</strong>, den<br />
Punkten verschiedene Interessengewichte zuzuordnen und diese interaktiv zu verändern.<br />
<strong>Eine</strong> solche Interessengewichtsveränderung und die damit verbundene Veränderung<br />
der Anziehungskraft der Symbole läßt sich durch <strong>ein</strong>e Modifikation der im Abschnitt<br />
4.2.3.1. definierten Funktion zur Berechnung des Abstandswerts zwischen<br />
<strong>ein</strong>em Dokument und <strong>ein</strong>em Referenzpunkt realisieren. Durch die Einführung der<br />
Variablen relevanz(w) läßt sich der Wert der durch count berechneten absoluten<br />
Häufigkeit <strong>ein</strong>es bestimmten Begriffs verändern.<br />
distance 3 (w, d) <br />
count(w, d) relevanz(w)<br />
len(d)<br />
scaling<br />
Es sind verschiedene Möglichkeiten denkbar, das Interessengewicht <strong>ein</strong>es Referenzpunktes<br />
zu visualisieren. So wird beispielsweise in der zweidimensionalen Darstellung<br />
des VIBE–Systems die Position der Referenzpunkte nach aussen gezogen, um<br />
<strong>ein</strong>e stärkere Gewichtung zu visualisieren. Dies hat zur Folge, daß die Referenzpunkte<br />
nicht mehr auf <strong>ein</strong>em Kreis liegen. In der dreidimensionalen Darstellung ist<br />
diese Vorgehensweise problematisch, da die Darstellung durch <strong>ein</strong> Überschreiten<br />
der Kugelgrenzen <strong>für</strong> den Benutzer schnell schwerer erfaßbar wird.<br />
101
In der Relevanzkugeldarstellung ist es besser, die Größe der Referenzpunktsymbole<br />
proportional zu dem jeweiligen Gewichtswert zu ändern. Diese Art der Visualisierung<br />
unterstützt gleichzeitig das Verständnis des Benutzers <strong>für</strong> die Metapher der Anziehungskraft,<br />
die die Referenzpunkte auf die Dokumentensymbole ausüben. Er<br />
kann die Anziehungskraft intuitiv als Gravitationskraft der Symbole verstehen.<br />
Abbildung 3.27. zeigt das Themensegment aus Abbildung 3.25. nach <strong>ein</strong>er Verstärkung<br />
des Relevanzwertes des Referenzpunktes, der durch das Schlüsselwort solar<br />
definiert wird. Man erkennt, daß der Begriff solar besonders <strong>für</strong> die Dokumente, deren<br />
Symbole mit c,d und g gekennzeichnet sind, relevant ist.<br />
house<br />
h<br />
f<br />
e<br />
a<br />
b<br />
g<br />
d<br />
c<br />
energy<br />
solar<br />
Abbildung: 3.27.<br />
Veränderung des Relevanzwertes <strong>ein</strong>es Referenzpunktes<br />
Der Nachteil <strong>ein</strong>er Abbildung der Interessengewichte auf die Symbolgröße ist, daß<br />
es bei <strong>ein</strong>er dreidimensionalen Darstellung auf <strong>ein</strong>em gewöhnlichen zweidimensionalen<br />
Ausgabegerät zu Mißverständnissen kommen kann, wenn <strong>für</strong> den Benutzer<br />
nicht klar ersichtlich ist, ob <strong>ein</strong>e bestimmte Symbolgröße auf das Interessengewicht<br />
oder auf die Position im Raum zurückzuführen ist. Bei <strong>ein</strong>er richtigen dreidimensionalen<br />
Darstellung, die zum Beispiel durch den Einsatz von 3D-Brillen erreicht werden<br />
kann, kann der Benutzer die <strong>graphische</strong>n Attribute Entfernung und Symbolgröße<br />
klar unterscheiden.<br />
Dieses Problem läßt sich umgehen, indem die Visualisierung der Interessengewichte<br />
durch <strong>ein</strong>e Farbhelligkeits- oder Farbartcodierung realisiert wird, d.h., wenn der<br />
Helligkeits- oder Farbartwert der Symbole proportional zum jeweiligen Interessengewicht<br />
gesetzt wird.<br />
4.2.3.3.3. Manipulation der Kugeldichte<br />
Bei <strong>ein</strong>er Skalierung der Abstandsberechnungsfunktion distance durch die unter<br />
4.2.3.1. definierte Funktion scaling richtet sich die Positionierung der Dokumenten-<br />
102
symbole jeweils nach dem am weitesten aussen in der Kugel positionierten Symbol.<br />
Bei <strong>ein</strong>er sehr ungleichen Verteilung der Dokumentensymbole kann dies dazu führen,<br />
daß sich in der Nähe des Kugelmittelpunkts Gruppen von Dokumentensymbolen<br />
bilden, deren Dokumente k<strong>ein</strong>en hohen semantischen Verwandtschaftsgrad haben.<br />
Die <strong>ein</strong>zelnen Dokumente solcher Gruppen lassen sich nur schwer thematisch<br />
<strong>ein</strong>ordnen.<br />
Aus diesem Grund muß es dem Benutzer ermöglicht werden, die Symbole weiter<br />
vom Kugelmittelpunkt zu entfernen. Dies kann durch <strong>ein</strong>e Manipulation der Kugeldichte,<br />
d.h. durch <strong>ein</strong>e Änderung der Anziehungskraft der gesamten Kugeloberfläche<br />
geschehen.<br />
In der unter 4.2.3.1. definierten Funktion distance zur Berechnung des Abstandswerts<br />
zwischen <strong>ein</strong>em Dokument und <strong>ein</strong>em Referenzpunkt muß die Variable density<br />
<strong>ein</strong>geführt werden.<br />
distance 3 (w, d) <br />
count(w, d) relevanz(w) density<br />
len(d)<br />
scaling<br />
Abbildung 3.28. verdeutlicht, wie <strong>ein</strong>e Veränderung der Kugeldichte <strong>ein</strong>e bessere<br />
Verteilung der Dokumentensymbole zur Folge haben kann. Durch die Veränderung<br />
der Situation aus Abbildung 3.25. hat sich die aus den Dokumenten d,e,f,g und h bestehende<br />
Gruppe aufgelöst und der Benutzer kann die Dokumente klarer thematisch<br />
<strong>ein</strong>ordnen.<br />
house<br />
a<br />
h<br />
d<br />
g<br />
f<br />
e<br />
b<br />
energy<br />
c<br />
solar<br />
Abbildung: 3.28.<br />
Veränderung der Kugeldichte<br />
103
4.2.3.3.4. Löschen von weniger relevanten Dokumenten<br />
Das System nimmt unabhängig von ihren Relevanzwerten alle Dokumente, in denen<br />
<strong>ein</strong>er der referenzpunktbildenden Begriffe vorkommt, in die Ergebnismenge auf. Es<br />
kann deshalb besonders bei sehr großen Datenbanken zu sehr großen und damit auch<br />
mit <strong>ein</strong>er <strong>graphische</strong>n Darstellung schwer überschaubaren Ergebnismengen kommen.<br />
Aus diesem Grund muß es dem Benutzer möglich s<strong>ein</strong>, die <strong>für</strong> s<strong>ein</strong>e Suchsituation<br />
weniger relevanten Dokumente aus der Ergebnismenge zu löschen und damit die<br />
Kardinalität der Ergebnismenge zu be<strong>ein</strong>flußen.<br />
Wenn der Benutzer durch Positionierung und Gewichtung der Referenzpunkte die<br />
ihm interessant ersch<strong>ein</strong>enden Themensegmente gebildet hat, so ist davon auszugehen,<br />
daß die weniger relevanten Dokumente innerhalb <strong>ein</strong>es Themensegmentes in<br />
der Nähe des Kugelmittelpunktes liegen (s. Abbildung 3.30.). Durch Löschen der<br />
Dokumente, deren Symbole im Inneren <strong>ein</strong>er kl<strong>ein</strong>eren Kugel um den Mittelpunkt<br />
des Relevanzpunktes liegen, kann der Benutzer die Symbole weniger relevanter Dokumente<br />
aus der Darstellung löschen.<br />
Visualisiert werden kann <strong>ein</strong> solcher Löschvorgang durch <strong>ein</strong>e im Radius veränderbare<br />
Kugel um den Mittelpunkt der Darstellung (s. Abbildung 3.29.). Der Benutzer<br />
kann dann interaktiv die Größe dieser ’Löschkugel’ bestimmen und durch <strong>ein</strong>e Aktion<br />
den Löschvorgang starten.<br />
a<br />
b<br />
c<br />
e<br />
d<br />
Der Benutzer kann die Größe der<br />
Löschkugel interaktiv verändern<br />
und durch Auslösen der Löschaktion<br />
die Dokumente löschen, welche<br />
sich im Inneren dieser Kugel befinden.<br />
Im Beispiel der Darstellung würden<br />
die Dokumente b,d und e aus der<br />
Relevanzkugel entfernt.<br />
f<br />
g<br />
Abbildung: 3.29.<br />
Die ’Löschkugel’<br />
104
min.<br />
e d b c a f g max.<br />
Relevanz<br />
Abbildung: 3.30.<br />
Relevanz der Dokumente<br />
4.2.3.3.5. Löschen und Hinzufügen <strong>ein</strong>es Referenzpunktes<br />
<strong>Eine</strong> zweite Möglichkeit zur Be<strong>ein</strong>flussung der Ergebnismengenkardinalität ist das<br />
Löschen <strong>ein</strong>zelner Referenzpunkte.<br />
Es muß dem Benutzer ermöglicht werden, <strong>ein</strong>zelne Referenzpunkte auszuwählen<br />
und aus der Referenzpunktmenge zu löschen. Nach dem Löschen <strong>ein</strong>es der Referenzpunkte,<br />
sollten alle Dokumente aus der Ergebnismenge entfernt werden, <strong>für</strong> die<br />
k<strong>ein</strong>er der in der Referenzpunktmenge verbleibenden Referenzpunkte relevant ist.<br />
Die Symbole von Dokumenten, <strong>für</strong> welche sowohl der entfernte Referenzpunkt als<br />
auch mindestens <strong>ein</strong>er der in der Menge verbleibenden relevant ist, verbleiben in der<br />
Darstellung und ändern lediglich ihre Position, da der durch den entfernten Referenzpunkt<br />
erzeugte Anziehungsvektor nicht mehr in die Positionsberechnung aufgenommen<br />
wird.<br />
Abbildung 3.31. verdeutlicht die Positionsberechnung <strong>ein</strong>es Dokumentensymbols<br />
nach Entfernung <strong>ein</strong>es <strong>für</strong> das betreffende Dokument relevanten Referenzpunktes.<br />
Mit doc * ist in der Darstellung das Dokumentensymbol an der neuen Position bezeichnet<br />
105
B<br />
A<br />
<br />
<br />
*<br />
<br />
<br />
<br />
doc *<br />
<br />
doc<br />
C<br />
D<br />
<br />
<br />
<br />
* <br />
<br />
Abbildung: 3.31.<br />
Entfernung des Referenzpunktes B<br />
Entsprechend sollte es dem Benutzer möglich s<strong>ein</strong>, zusätzliche Referenzpunkte der<br />
Darstellung hinzuzufügen. Wenn die Referenzpunkte durch <strong>ein</strong>zelne Begriffe der<br />
Datenbank definiert sind, kann <strong>ein</strong> solches Hinzufügen durch textuelle Eingabe des<br />
betreffenden Begriffs realisiert werden.<br />
Analog zur Entfernung <strong>ein</strong>es Referenzpunktes sollten beim Hinzufügen alle Dokumente<br />
der Datenbank zusätzlich in die Ergebnismenge aufgenommen werden, <strong>für</strong><br />
die der hinzugefügte Referenzpunkt relevant ist.<br />
A<br />
X<br />
<br />
<br />
**<br />
<br />
doc *<br />
<br />
<br />
doc<br />
D<br />
C<br />
<br />
* <br />
<br />
<br />
** <br />
<br />
* <br />
Abbildung: 3.32.<br />
Hinzufügen des Referenzpunktes X<br />
106
Abbildung 3.32. verdeutlicht die Positionsberechnung <strong>ein</strong>es Dokumentensymbols<br />
nach dem Hinzufügen <strong>ein</strong>es Referenzpunktes welcher <strong>für</strong> das betreffende Dokument<br />
relevanten ist. Mit doc * ist das Dokumentensymbol an der neu berechneten Position<br />
<br />
und mit ** der betreffende Positionsvektor.<br />
In Abbildung 3.33. ist das Themensegment aus Abbildung 3.27. dargestellt, nachdem<br />
der Referenzpunkt des Begriffes heat zur Referenzpunktmenge hinzugefügt<br />
wurde.<br />
Das Hinzufügen hatte im Beispielfall folgende Auswirkungen auf die Dokumente:<br />
<br />
<br />
<br />
<br />
Die Symbole der Dokumente a, c, d, e, f und h ändern ihre<br />
Position nicht. Der Begriff heat ist <strong>für</strong> diese Dokumente<br />
nicht relevant<br />
Die Symbole der Dokumente x, y, und z werden neu in die<br />
Darstellung aufgenommen. Aufgrund ihrer Position<br />
sch<strong>ein</strong>t nur der neue Referenzpunkt <strong>für</strong> die betreffenden<br />
Dokumente relevant zu s<strong>ein</strong>.<br />
v und w sind ebenfalls neu in die Ergebnismenge aufgenommen,<br />
werden aber auch von den anderen Referenzpunkten<br />
be<strong>ein</strong>flußt<br />
Die Dokumente b und g waren bereits in der Ergebnismenge<br />
enthalten, werden aber auch von dem neuen Referenzpunkt<br />
be<strong>ein</strong>flußt. Ihre Symbole ändern daher die Position.<br />
107
house<br />
h<br />
x<br />
y<br />
f<br />
e<br />
z<br />
w<br />
a<br />
v<br />
b<br />
g<br />
d<br />
c<br />
energy<br />
solar<br />
heat<br />
Abbildung: 3.33.<br />
Hinzufügen des neuen Referenzpunktes heat<br />
108
4.3. Präsentation des Dokumenteninhalts<br />
In traditionellen <strong>Retrieval</strong>systemen werden dem Benutzer die Dokumente der Datenbank<br />
nur als biblio<strong>graphische</strong> Einträge präsentiert. Das System liefert k<strong>ein</strong>e genauere<br />
Information über den Inhalt. Der Benutzer kann nicht im Rahmen s<strong>ein</strong>er Recherche<br />
mit dem <strong>Retrieval</strong>system <strong>ein</strong>e endgültige Dokumentenauswahl treffen.<br />
In <strong>ein</strong>er <strong>Volltext</strong>datenbank sind nicht nur biblio<strong>graphische</strong> Einträge, sondern komplette<br />
Dokumente abgelegt. Es sollte dem Benutzer möglich s<strong>ein</strong>, während der Erschließung<br />
der Datenbank im Dialog mit dem Kontextbaum den Inhalt <strong>ein</strong>zelner<br />
Dokumente zu lesen. Während der Segmentierung der erschlossenen Dokumentenmenge<br />
durch die Relevanzkugel sollte ebenfalls <strong>ein</strong>e Darstellung des Inhalts <strong>ein</strong>es<br />
Dokuments der Menge möglich s<strong>ein</strong>.<br />
Zur Realisierung <strong>ein</strong>er solchen Präsentation des Dokumenteninhalts wird im folgenden<br />
die dritte Metapher der in dieser Arbeit vorgestellten <strong>graphische</strong>n <strong>Benutzerschnittstelle</strong><br />
definiert.<br />
4.3.1. Der Dokumentenraum<br />
In <strong>ein</strong>er dreidimensionalen Darstellung bietet es sich an, die Metapher des ’Betretens’<br />
<strong>ein</strong>es Symbols zu wählen, wenn der Benutzer sich über Eigenschaften und Inhalt<br />
desselben informieren will. Das ’Betreten’ <strong>ein</strong>es Dokuments kann durch das Betreten<br />
<strong>ein</strong>es Raumes, auf dessen Wände das Dokument projeziert wird, realisiert<br />
werden.<br />
Auf der Definition <strong>ein</strong>es solchen Raums basiert das Modell des Dokumentenraums.<br />
Der Dokumentenraum bietet <strong>ein</strong>e Umgebung, in welcher der Benutzer mit Hilfe von<br />
Kontextbaum und Relevanzkugel den <strong>Retrieval</strong>dialog führen kann.<br />
Das Modell des Dokumentenraums arbeitet folglich komplementär zu den beiden<br />
Interaktionswerkzeugen, d.h. der Benutzer kann sich des Darstellungsraumes jederzeit<br />
während der Interaktion mit Kegelbaum oder Relevanzkugel bedienen.<br />
Da die beiden Werkzeuge aus Gründen der Übersichtlichkeit nicht gleichzeitig genutzt<br />
werden sollten, ist immer nur <strong>ein</strong>es der beiden aktiviert. Das nichtaktivierte<br />
Werkzeug steht dem Benutzer immer in Form <strong>ein</strong>es 3D-Icons im Dokumentenraum<br />
zur Aktivierung zur Verfügung.<br />
Abbildung 3.34. zeigt den aktivierten Dokumentenraum. Der Kontextbaum ist deaktiviert<br />
und wird als 3D-Icon in der linken oberen Ecke des Raumes dargestellt. Die<br />
Relevanzkugel ist im Beispiel der Abbildung aktiviert. Auf der Rückwand des Dokumentenraumes<br />
wird der Inhalt des aktuellen Dokumentes der Dokumentenmenge<br />
in der Relevanzkugel angezeigt.<br />
109
Inhalt des aktuellen Dokuments<br />
Wenn Kontextbaum oder Relevanzkugel aktiviert<br />
sind, so existiert jeweils <strong>ein</strong> aktuelles Dokument.<br />
Der Inhalt dieses Dokuments wird, so<br />
wie dieser Text auf die Rueckwand des Dokumentenraumes<br />
’projeziert’.<br />
Abbildung: 3.34. Der Dokumentenraum<br />
Die Raummetapher kann auch zur Präsentation von Elementen nichttextueller Datenbanken<br />
verwendet werden. Voraussetzung ist, daß die Elemente der Datenbank<br />
in <strong>ein</strong>em Raum visualisiert werden können.<br />
Bei <strong>ein</strong>er Anwendung der Metapher auf <strong>ein</strong>e Datenbank von bewegten oder statischen<br />
Bildern läßt sich <strong>ein</strong> Videoraum definieren. In der Metapher des Videoraumes<br />
kann die Rückwand, auf der im Dokumentenraum Texte präsentiert werden, zur<br />
Darstellung der Bilder der Datenbank genutzt werden.<br />
110
5. Realisierung <strong>ein</strong>es Prototyps<br />
Die Realisierung der drei oben beschriebenen Metaphern liegt in Form des Prototypen<br />
’LyberWorld’ vor. Der Umgang mit dem Prototypen aus Sicht des Benutzers<br />
wird im Kapitel 5.1. anhand <strong>ein</strong>es Beispiels <strong>für</strong> <strong>ein</strong>e Informationssuche vorgestellt.<br />
Im Anschluß wird im Kapitel 5.2. der interne Aufbau des Systems erläutert.<br />
Der Name ’Lyberworld’ entstand in Anlehnung an die Inhalte der Datenbank (liber<br />
= Buch) und die verwendeten Visualisierungstechnologien (Cyberspace = der errechnete<br />
Raum). Die Realisierungen der drei Metaphern heißen ’LyberTree’ (der<br />
Kontextbaum), ’LyberSphere’ (die Relevanzkugel) und ’LyberRoom’ (der Dokumentenraum).<br />
Als Datenbasis dient im folgenden Beispiel die CORDIS-Datenbank. Sie ist <strong>ein</strong>e<br />
<strong>Volltext</strong>datenbank, in der etwa 800 Dokumente enthalten sind, die EG-Projekte beschreiben.<br />
5.1. <strong>Eine</strong> Informationssuche mit LyberWorld<br />
Abbildung: 4.1.<br />
Startfenster von LyberWorld<br />
111
Im LyberWorld-System stehen dem Benutzer die drei <strong>graphische</strong>n Metaphern als Interaktionswerkzeuge<br />
zur Verfügung, mit denen er s<strong>ein</strong>e Datenbankanfrage formulieren<br />
und die von der Datenbank gelieferte Ergebnismenge explorieren kann.<br />
Nach dem Starten des Systems findet der Benutzer die in Abbildung 4.1. dargestellte<br />
Startsituation vor. Die drei Interaktionswerkzeuge werden durch drei 3D-Icons repräsentiert.<br />
In der linken oberen Ecke das Icon des LyberTrees, rechts oben das des<br />
LyberSpheres und in der linken unteren Ecke das des LyberRooms.<br />
Um die Informationssuche zu starten muß der Benutzer in das Eingabefenster in der<br />
linken oberen Ecke <strong>ein</strong>en Startbegriff <strong>ein</strong>geben mit dem er den Suchdialog im Kontextbaum<br />
starten will. Dieser Startbegriff wird vom System nur akzeptiert, wenn es<br />
sich um <strong>ein</strong>en Begriff der Datenbank handelt.<br />
5.1.1. LyberTree<br />
Als erstes der drei Werkzeuge aktiviert der Benutzer nun den LyberTree, die Realisierung<br />
des Kontextbaums.<br />
Abbildung: 4.2.<br />
Die Dokumentenebene des Begriffs energy.<br />
Die erste Dokumentenebene des Baumes wird aus der Datenbank gelesen und als<br />
Zylinder visualisiert, der aus Blättchen besteht, auf denen die Dokumententitel zu<br />
lesen sind (Abbildung 4.2.). In diese erste Dokumentenebene werden alle Dokumente<br />
der Datenbank aufgenommen, die den vom Benutzer <strong>ein</strong>gegebenen Startbegriff<br />
– im dargestellten Beispiel der Begriff energy – enthalten.<br />
112
Der Benutzer kann den Dokumentenzylinder drehen und so auch die Titel der Dokumente,<br />
deren Blättchen sich auf der Rückseite des Zylinders befinden, lesen. Er kann<br />
<strong>ein</strong> ihm interessant ersch<strong>ein</strong>endes Dokument anhand des Titels auswählen und ’expandieren’.<br />
Durch dieses Expandieren <strong>ein</strong>es Dokuments wird <strong>ein</strong>e Begriffsebene<br />
generiert, die alle <strong>für</strong> das Dokument relevanten Begriffe enthält. Die Begriffsebene<br />
wird in der Visualisierung an das betreffende Dokumentenblättchen angehängt.<br />
Abbildung 4.3. zeigt den Kontextbaum mit der ersten vom Benutzer expandierten<br />
Begriffsebene.<br />
Der Benutzer kann nun durch Expansion weiterer Begriffe oder Dokumente der Datenbank<br />
den Kontextbaum erweitern und so den Bereich der Datenbank, der s<strong>ein</strong>em<br />
Suchinteresse entspricht, explorieren.<br />
Abbildung: 4.3.<br />
Expandieren des Dokumentes<br />
Desweiteren hat er die Möglichkeit, neben dem Startbegriff weitere Schlüsselbegriffe<br />
<strong>ein</strong>zugeben. Falls der hinzugefügte Schlüsselbegriff bereits in <strong>ein</strong>er Begriffsebene<br />
des Baumes ersch<strong>ein</strong>t, so wird diese Ebene aktualisiert und das Blättchen des<br />
neuen Schlüsselbegriffs in den Vordergrund rotiert.<br />
Im Falle, daß der Schlüsselbegriff noch in k<strong>ein</strong>er Begriffsebene des Baumes auftaucht,<br />
wird an alle Dokumentenblättchen, deren Dokumente den Begriff enthalten,<br />
<strong>ein</strong> ’Auswahlkonus’ angehängt. Der Benutzer wird so in der Auswahl des zu expandierenden<br />
Dokuments unterstützt. Wenn er <strong>ein</strong> mit <strong>ein</strong>em Auswahlkonus gekennzeichnetes<br />
Dokumentenblättchen expandiert, so wird in der dadurch an den Baum<br />
angehängten Begriffsebene der <strong>ein</strong>gegebene Schlüsselbegriff automatisch aktualisiert<br />
und expandiert.<br />
113
Abbildung 4.4. zeigt den Kontextbaum nach Eingabe des Schlüsselbegriffs house.<br />
An die Dokumentenblättchen der Dokumente in welchen der Begriff house vorkommt,<br />
ist jeweils <strong>ein</strong> Auswahlkonus angehängt.<br />
Abbildung: 4.4.<br />
Auswahlkonen zur Dokumentenauswahl<br />
114
Abbildung: 4.5.<br />
Der Kontextbaum des kompletten Beispieldialogs<br />
Wenn Begriffe oder Dokumente, die bereits in Ebenen des aktuellen Baumes auftauchen,<br />
auch in <strong>ein</strong>e neu expandierte Ebene aufgenommen werden, so haben die betreffenden<br />
Blättchen der neuen Ebene <strong>ein</strong> etwas anderes Ersch<strong>ein</strong>ungsbild. Die<br />
Blättchen sind kl<strong>ein</strong>er und ihre Farbe ist heller als die der normalen Ebenen<strong>ein</strong>träge<br />
(s. Kapitel 4.1.5.1.).<br />
Wenn der Benutzer nun versucht <strong>ein</strong>e solche Wiederholung <strong>ein</strong>es Dokuments oder<br />
<strong>ein</strong>es Begriffs zu expandieren, so wird an der Stelle im Baum expandiert an der das<br />
Element zum erstenmal <strong>ein</strong>gehängt ist. Diese Vorgehensweise verhindert Orientierungsprobleme,<br />
da der Benutzer nicht ’im Kreis laufen’ kann. Zu jedem Dokument<br />
und zu jedem Begriff kann es im Baum nur <strong>ein</strong>e Folgeebene geben.<br />
Durch den Suchdialog im Kontextbaum hat der Benutzer <strong>ein</strong>e Menge von Begriffen<br />
definiert, die als Referenzpunkte in die Relevanzkugel übernommen werden können.<br />
In diese Begriffsmenge werden alle Begriffe übernommen, die im Baum expandiert<br />
wurden. In unserem Beispielfall sind dies die Begriffe energy, solar, house und<br />
humid.<br />
5.1.2. LyberSphere<br />
Durch Aktivierung des Icons des Interaktionswerkzeugs LyberSphere wird dieses<br />
gestartet. Der LyberTree wird deaktiviert und steht wieder in iconifizierter Form zur<br />
Verfügung.<br />
115
Abbildung: 4.6.<br />
Die aktivierte Relevanzkugel LyberSphere<br />
Abbildung 4.6. zeigt die Relevanzkugel nach der Aktivierung durch den Benutzer.<br />
Die Begriffe des Suchpfades im Kontextbaum definieren die vier Referenzpunkte,<br />
die als kl<strong>ein</strong>ere Kugeln auf der Oberfläche der Relevanzkugel visualisiert werden.<br />
Im Inneren der Kugel sind die Dokumentensymbole, die durch Bücher dargestellt<br />
werden, positioniert.<br />
Der Benutzer hat nun die Möglichkeit, die in Kapitel 4.2.3.3. beschriebenen Interaktionen<br />
auszuführen und so die dargestellten Dokumentensymbole in Themensegmente<br />
aufzuteilen.<br />
Um die Referenzpunkte auf der Kugeloberfläche zu positionieren, wird mit der<br />
Maus <strong>ein</strong>es der Symbole ausgewählt und aktualisiert. Das jeweils aktuelle Referenzpunktsymbol<br />
kann nun mit Hilfe des Spaceballs oder der Rotationsränder am unteren<br />
linken Fensterrand bewegt werden.<br />
Abbildung 4.7. zeigt die Referenzkugel aus Abbildung 4.6., nachdem die Referenzpunkte,<br />
die durch die Schlüsselbegriffe solar und house definiert sind, auf die rechte<br />
Seite der Kugel bewegt wurden. Man sieht, daß die betreffenden Dokumentensymbole<br />
der Referenzpunktbewegung folgen.<br />
116
Abbildung: 4.7.<br />
Positionierung der Referenzpunkte solar und house<br />
Auch die Veränderung der Anziehungskraft <strong>ein</strong>zelner Referenzpunkte, d.h. die Veränderung<br />
des in Kapitel 4.2.3.3.2. <strong>ein</strong>geführten Relevanzwertes relevanz(w) wirkt<br />
auf das jeweils aktuelle Referenzpunktsymbol. Mit dem ’Attraction’-Schieber am<br />
rechten unteren Fensterrand kann der Benutzer den Relevanzwert variieren.<br />
Mit dem neben dem ’Attraction’-Schieber positionierten ’Density’-Schieber kann<br />
der Wert der in Kapitel 4.2.3.3.3. <strong>ein</strong>geführten Variablen density manipuliert und damit<br />
die Anziehungskraft der gesamten Kugeloberfläche bestimmt werden. Durch <strong>ein</strong>e<br />
solche Manipulation der Kugeldichte ist es dem Benutzer möglich, die Dokumente<br />
weiter vom Kugelmittelpunkt zu entfernen.<br />
Wenn, wie in der Situation in Abbildung 4.8., k<strong>ein</strong>es der Referenzpunktsymbole aktualisiert<br />
ist, so kann der Benutzer mit Spaceball oder Rotationsrädern die gesamte<br />
Kugel frei rotieren. Er kann sich so besser mit den räumlichen Gegebenheiten der<br />
Darstellung vertraut machen.<br />
117
Abbildung: 4.8.<br />
Rotation der gesamten Kugel<br />
Wie bereits oben beschrieben, ist das Ziel der Interaktionen mit der Relevanzkugel<br />
<strong>ein</strong>e Aufteilung der Dokumentensymbole in verschiedene Themensegmente. In unserem<br />
Beispielfall interessiert sich der Benutzer besonders <strong>für</strong> die Dokumente, deren<br />
Symbole sich im von den Referenzpunkten solar und house gebildeten Themensegment<br />
befinden. In Abbildung 4.9. ist dieses Themensegment markiert.<br />
Im Idealfall enthält das so gebildete Themensegment alle Dokumente, die <strong>für</strong> das<br />
Suchinteresse des Benutzers relevant sind. Der Benutzer kann sich nun, um sich mit<br />
den Inhalten der Dokumente dieses Segments vertraut zu machen, des dritten Interaktionswerkzeugs,<br />
des Dokumentenraums, bedienen.<br />
118
Abbildung: 4.9.<br />
Themensegment der Referenzpunkte solar und house<br />
5.1.3. LyberRoom<br />
Die Realisierung des Interaktionswerkzeugs des Dokumentenraums im Lyber-<br />
World-System heißt ’LyberRoom’. Diese dritte Metapher arbeitet komplementär zu<br />
den beiden ersten Werkzeugen. Der LyberRoom kann zeitgleich mit LyberTree oder<br />
LyberSphere aktiviert s<strong>ein</strong>.<br />
Um die Inhalte der Dokumente des mit der Relevanzkugel erzeugten Themensegments<br />
zu untersuchen, startet der Benutzer den Dokumentenraum durch Anklicken<br />
des betreffenden Icons. Wie in Abbildungen 4.10. und 4.11. zu sehen ist, wird auf<br />
der Rückwand des Dokumentenraumes das jeweils aktuelle Dokument der Relevanzkugel<br />
oder Kontextbaumdarstellung angezeigt. Es ist so während Suchdialog<br />
und Segmentierung der Dokumente möglich, den Inhalt zu lesen.<br />
Abbildung 4.12. zeigt das System nach Abschluß der Informationssuche. Die beiden<br />
Interaktionswerkzeuge sind deaktiviert und stehen dem Benutzer als aktivierbare<br />
3D-Icons zur Verfügung. Auf der Rückwand des Dokumentenraums bleibt das zuletzt<br />
in <strong>ein</strong>em der Werkzeuge aktuelle Dokument stehen.<br />
119
Abbildung: 4.10.<br />
Dokumentenraum mit aktivierter Relevanzkugel<br />
Abbildung: 4.11.<br />
Dokumentenraum mit aktiviertem Kontextbaum.<br />
120
Abbildung: 4.12.<br />
Präsentation des gesuchten Dokuments.<br />
121
5.2. Aufbau von LyberWorld<br />
Der LyberWorld-Prototyp wurde als C++ Programm auf <strong>ein</strong>er Unix Plattform entwickelt.<br />
Als Entwicklungsumgebung standen Workstations der Firma Silicon Graphics,<br />
das Betriebssystem ’IRIX 4.0.5’ und der Compiler ’Silicon Graphics C++<br />
Compiler Version 3.0’ zur Verfügung. Als Hilfsmittel <strong>für</strong> die Visualisierung diente<br />
IRIS Inventor in Version 1.0.1. Das <strong>Retrieval</strong> System INQUERY wurde in Version<br />
1.5 vom Information <strong>Retrieval</strong> Laboratory des MIT auf Silicon Graphics Umgebung<br />
portiert und zur Verfügung gestellt.<br />
Der Prototyp besteht aus vier verschiedenen Modulgruppen. Drei dieser Gruppen<br />
enthalten die Realisierungen der drei verschiedenen Interaktionswerkzeuge des Systems.<br />
Die vierte Modulgruppe enthält Objekte <strong>für</strong> die Steuerung der Werkzeuge<br />
und zur Koordination des Gesamtsystems. Den Modulgruppen sind Namen und<br />
Kürzel zugeordnet, um <strong>ein</strong>e Zuordnung von Dateien, wichtigen Klassen und Funktionen<br />
zu ihrer Modulgruppe zu ermöglichen.<br />
Modulgruppe Präfix Aufgabe<br />
LyberWorld LW_ Steuerung und Koordination<br />
LyberTree LT_ Kontextbaum<br />
LyberSphere LS_ Relevanzkugel<br />
LyberRoom LR_ Dokumentenraum<br />
Abbildung 4.13. gibt <strong>ein</strong>en Überblick über das Zusammenwirken der Modulgruppen.<br />
Im anschließenden Abschnitt wird näher auf die Klassen der <strong>ein</strong>zelnen Modulgruppen<br />
<strong>ein</strong>gegangen. Im zweiten Abschnitt wird der Aufbau des Inventor Szenengraphen<br />
erläutert und im dritten Abschnitt werden Erweiterungsmöglichkeiten des<br />
Systems aufgezeigt.<br />
122
LyberWorld<br />
Input<br />
Steuerkommandos– und Daten<br />
interface<br />
LW_Main<br />
LW_Callbacks<br />
INQUERY<br />
client<br />
InquilList<br />
LyberTree<br />
LT_Main<br />
LT_Callbacks<br />
LT_Module<br />
LyberSphere<br />
LS_Main<br />
LS_Callbacks<br />
LS_Module<br />
LyberRoom<br />
LR_Main<br />
LR_Callbacks<br />
LR_Module<br />
Visualisierungsdaten– und Anweisungen<br />
Anfragen, Übergabedaten<br />
Ereignis<br />
Videodaten<br />
Inventor<br />
Szenengraph<br />
LW_Viewer<br />
Renderer<br />
Keyboard<br />
Mouse<br />
Space ball<br />
Space mouse<br />
Menus<br />
Sliders<br />
Wheels<br />
Buttons<br />
Output<br />
Bildschirm<br />
Stereo Display<br />
Abbildung: 4.13.<br />
Modulgruppen<br />
123
5.2.1. Die Klassenhierarchie<br />
In diesem Kapitel werden die wichtigsten Klassendefinitionen und ihre Hierarchie<br />
beschrieben. Zu Beginn jeden Abschnitts sind die wichtigsten Klassen der Modulgruppe<br />
in <strong>ein</strong>er Graphik dargestellt. In die tabellarischen Klassenbeschreibungen<br />
wurde jeweils nur <strong>ein</strong>e Auswahl der wichtigsten Methoden und Felder aufgenommen.<br />
5.2.1.1. Die Modulgruppe: ’LyberWorld’<br />
Interface<br />
Klasse zu Kontrolle des Systemzustandes und Vermittlung der Benutzerinteraktionen<br />
ROList<br />
DynamicList<br />
Basisklasse zur Beschreibung der Datenstruktur<br />
<strong>ein</strong>er Dynamischen Liste von<br />
Klasseninstanzen<br />
InquiElement<br />
InquiList<br />
Klassen zur Realisierung des Datenaustauschs zwischen den Interaktionswerkzeugen<br />
TransitRec<br />
Concept<br />
DictRec<br />
DocIX<br />
Klassen zur Anbindung an INQUERY<br />
ID2TitelDB<br />
ID_DB<br />
DocDB<br />
ConceptDB<br />
DocID_DB<br />
TermID_DB<br />
Die LyberWorld-Modulgruppe enthält Klassen zur Steuerung und Koordination des<br />
Gesamtsystems. Dazu gehören Klassen zur Speicherverwaltung, zum Datenaustauch<br />
zwischen den Interaktionswerkzeugen und zur Anbindung an INQUERY.<br />
5.2.1.1.1. Klasse Interface<br />
Klasse<br />
Basisklassen<br />
Interface<br />
k<strong>ein</strong>e<br />
124
Methoden<br />
static void InitModules()<br />
bool ChangeState(State newstate)<br />
char*<br />
State<br />
InquiList*<br />
SoXtViewer*<br />
GetText()<br />
GetState()<br />
GetInqui()<br />
GetViewer()<br />
SoEventCallback* GetEventCB()<br />
SoSelection* GetSelroot()<br />
SoSeparator* GetRoomSep()<br />
SoSeparator* GetSphereSep()<br />
SoSeparator* GetTreeSep()<br />
Typen<br />
void SetText(char *text);<br />
void SetInqui(InquiList* i inqui)<br />
enum State<br />
{ NothingActive<br />
RoomActive<br />
SphereActive<br />
TreeActive<br />
RoomTreeActive<br />
RoomSphereActive<br />
}<br />
enum Command<br />
{<br />
ACTIVATE<br />
DEACTIVATE<br />
}<br />
Felder<br />
(private)<br />
Die Klasse Interface koordiniert die verschiedenen Interaktionswerkzeuge. Dazu<br />
gehört der Datenaustausch zwischen den Modulen, die Verwaltung des Systemzustands<br />
und der Callbackfunktionen <strong>für</strong> die möglichen Benutzerinteraktionen.<br />
Der Datenaustauch ist durch die Set- und Get-Funktionen realisiert. Mittels der Set-<br />
Funktionen können Daten in die internen Felder der Interface–Klasse <strong>ein</strong>getragen<br />
werden und mittels der Get-Funktionen wieder abgerufen werden. Erhält zum Beispiel<br />
das Werkzeug LyberTree das Kommando DEACTIVATE, so stellt dieses mit<br />
der Methode SetInqui(inquilist) Daten über den Suchdialog <strong>ein</strong>, bevor es in den deaktivierten<br />
Zustand übergeht. Erhält im Anschluß das LyberSphere-Werkzeug das<br />
Kommando zur Aktivierung ACTIVATE, kann es mittels der Methode GetInqui()<br />
auf die Daten zugreifen.<br />
125
Der Szenengraph, der die gesamte Visualisierung definiert, ist in verschiedene Teile<br />
gruppiert. Jedem der Werkzeuge ist dabei <strong>ein</strong> Unterbaum des Graphen zugeordnet,<br />
innerhalb dessen das Werkzeug s<strong>ein</strong>e Visualisierung be<strong>ein</strong>flussen kann. Durch die<br />
Methoden GetTreeSep(), GetSphereSep() und GetRoomSep() erhalten die Werkzeuge<br />
Zugriff auf die Wurzel ihres Teilbaums. Der Aufbau des Szenengraphen ist in Kapitel<br />
5.2.2. genauer erläutert.<br />
Weitere Unterbäume betreffen die Verwaltung der Callback-Funktionen und der Selektierbarkeit<br />
von Visualisierungselementen. Ihre Wurzeln sind durch GetEventCB()<br />
und GetSelRoot() zugänglich.<br />
Das LyberWorld-System kann sich in sechs verschiedenen Systemzuständen befinden:<br />
1. NothingActive: K<strong>ein</strong>es der Interaktionswerkzeuge ist aktiviert.<br />
2. RoomActive: Der Dokumentenraum ist aktiviert.<br />
3. SphereActive: Die Relevanzkugel ist aktiviert.<br />
4. TreeActive: Der Kontextbaum ist aktiviert.<br />
5. RoomTreeActive: Der Dokumentenraum und der Kontextbaum<br />
sind aktiviert<br />
6. RoomSphereActive: Der Dokumentenraum und die Relevanzkugel<br />
sind aktiviert.<br />
Wenn der Benutzer <strong>ein</strong>es der Werkzeuge aktiviert oder deaktiviert, ändert das Benutzerinterface<br />
den aktuellen Systemzustand durch die Methode ChangeState(). Dazu<br />
hat ChangeState() Zugriff auf die ver<strong>ein</strong>heitlichten Steuerungsschnittstellen der<br />
Werkzeuge.<br />
Werkzeug Steuerschnittstelle Kommentar<br />
Kontextbaum<br />
Relevanzkugel<br />
Dokumentenraum<br />
LT_Main(int argc, char<br />
*argv[], interface *if)<br />
LT_Main(int cmd, interface<br />
*if)<br />
LS_Main(int argc, char<br />
*argv[], interface *if)<br />
LS_Main(int cmd, interface<br />
*if)<br />
LR_Main(int argc, char<br />
*argv[], interface *if)<br />
LR_Main(int cmd, interface<br />
*if)<br />
Einmalige Initialisierung bei<br />
Systemstart<br />
Kommandoschnittstelle<br />
Einmalige Initialisierung bei<br />
Systemstart<br />
Kommandoschnittstelle<br />
Einmalige Initialisierung bei<br />
Systemstart<br />
Kommandoschnittstelle<br />
Abhängig vom aktuellen Systemzustand leitet das Benutzerinterface die Benutzerinteraktionen<br />
an die verschiedenen Module weiter. Im Prototyp des Systems wirden<br />
126
<strong>ein</strong>e große Zahl verschiedener Benutzerinteraktionen verwaltet. Die wichtigsten Interaktionen<br />
und zugeordneten Ereignisse sind:<br />
1. KeyboardEvent: Ereignis <strong>ein</strong>er Tastatur<strong>ein</strong>gabe.<br />
2. SpaceBallMotionEvent: Ereignis <strong>ein</strong>er Bewegung des<br />
Spaceballs.<br />
3. SpaceBallButtonEvent: Ereignis <strong>ein</strong>er Eingabe über die<br />
Spaceballtasten.<br />
4. MousePickEvent: Mausauswahlereignis.<br />
5. LeftSliderEvent: Ereignis <strong>ein</strong>er Bewegung des linken<br />
Schiebers auf dem unteren Fensterrand.<br />
6. RightSliderEvent: Ereignis <strong>ein</strong>er Bewegung des rechten<br />
Schiebers.<br />
7. LeftWheelEvent: Ereignis <strong>ein</strong>er Bewegung des linken<br />
Rades auf dem linken Fensterrand.<br />
8. RightWheelEvent: Ereignis <strong>ein</strong>er Bewegung des rechten<br />
Rades auf dem unteren Fensterrand.<br />
9. MenuEntryEvent: Ereignis <strong>ein</strong>er Auswahl <strong>ein</strong>es Menü<strong>ein</strong>trags<br />
10. HelpEvent: Ereignis der Betätigung des Hilfeknopfs auf<br />
dem rechten Fensterrand.<br />
11. SetHomeEvent: Ereignis der Betätigung des Sethome-<br />
Knopfs auf dem rechten Fensterrand.<br />
12. BackHomeEvent: Ereignis der Betätigung des Backhome-<br />
Knopfs auf dem rechten Fensterrand.<br />
Beim Auftreten <strong>ein</strong>es der Ereignisse wird die entsprechende Callbackfunktion aufgerufen.<br />
In Abhängigkeit vom aktuellen Systemzustand und vom Typ des<br />
Ereignisses werden die Ereignisschnittstellen der betroffenen Module aufgerufen.<br />
Die Ereignisschnittstellen der Werkzeuge sind Funktionen, deren Namen mit dem<br />
Gruppenpräfix beginnen und mit dem restlichen Namen mit dem der Callbackfunktion<br />
über<strong>ein</strong>stimmen. Die Parameter der Schnittstellenfunktionen sind identisch mit<br />
denen der zugehörigen Callbackfunktionen. Die Ereignisschnittstelle des Kontextbaums<br />
zur Behandlung von Tastatur<strong>ein</strong>gaben heißt LT_KeyboardEvent().<br />
5.2.1.1.2. Klasse DynamicList<br />
Klasse<br />
Basisklassen<br />
DynamicList<br />
ROList<br />
127
Methoden<br />
Felder<br />
void DelCurItem()<br />
void DelAllItems()<br />
void DelLastItem()<br />
void AddItem(void *NewItem)<br />
void AddList(DynamicList *DList)<br />
void InsertBefore(void *OldItem, void *NewItem)<br />
Felder und Methoden zum Aufbau der Liste werden<br />
von der Basisklasse ROList geerbt<br />
Die Klasse DynamicList ist <strong>ein</strong>e Basisklasse zur Definition dynamischer Listen verschiedenster<br />
Elemente. Sie stellt Methoden zum Löschen und Hinzufügen <strong>ein</strong>zelner<br />
Elemente zur Verfügung.<br />
Mit dem Makro CASTDYNAMICLIST(a) wird in der Definition der Klasse<br />
DynamicList der Typ a der Listenelemente festgelegt und mit TYPE-<br />
DYNAMICLIST(a,b) kann <strong>ein</strong>e dynamische Liste b aus Elementen vom Typ a definiert<br />
werden.<br />
Diese Art der Listendefinition wird in der LyberTree-Modulgruppe verwendet, um<br />
die Begriffs- und Dokumentringklassen abzuleiten. In der LyberSphere-Modulgruppe<br />
werden die Referenzpunkt- und Dokumentenmengen als dynamische Listen<br />
definiert (s. Kapitel 5.2.1.2. und 5.2.1.3.).<br />
Auch das im folgenden definierte Datenaustauschformat zwischen den Interaktionswerkzeugen<br />
LyberTree und LyberSphere ist in Form <strong>ein</strong>er dynamischen Liste definiert.<br />
5.2.1.1.3. Klasse InquiElement<br />
Klasse<br />
Basisklassen<br />
InquiElement<br />
k<strong>ein</strong>e<br />
128
Methoden<br />
InquiEle();<br />
InquiEle(int TID, char *TN, int DID, char *DN,<br />
int REL);<br />
void<br />
int<br />
SetConceptID(int TID)<br />
GetConceptID()<br />
char * GetConceptName()<br />
void SetConceptName(char *name)<br />
void<br />
int<br />
char<br />
void<br />
void<br />
int<br />
SetDocID(int DID)<br />
GetDocID()<br />
*GetDocName()<br />
SetDocName(char *name)<br />
SetRelevanceConceptID(int REL)<br />
GetRelevance()<br />
Felder<br />
(private)<br />
Beim Austausch der Daten zwischen den beiden Werkzeugen müssen jeweils Paare<br />
von Begriffen und Dokumenten übergeben werden. Die Klasse InquiElement, die<br />
<strong>ein</strong> Element der Übergabeliste definiert, stellt darum Funktionen zur Verfügung, mit<br />
denen alle nötigen Informationen, Begriffs- und Dokumentnummer, Begriffs- und<br />
Dokumentname sowie Relevanzwert <strong>ein</strong>gegeben und wieder ausgelesen werden<br />
können.<br />
5.2.1.1.4. Klasse InquiList<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
InquiList<br />
ROList > DynamicList<br />
Funktionen zum Schreiben und Lesen der Felder<br />
Wortspezifische Festlegungen<br />
Die Klasse InquiList wird mit dem Definitionsmakro TYPEDYNAMICLIST(InquiElement,InquiList)<br />
festgelegt und ist <strong>ein</strong>e dynamische Liste von Instanzen der<br />
Klasse InquiElement.<br />
5.2.1.1.5. Klasse TransitRec<br />
Klasse<br />
Basisklassen<br />
TransitRec<br />
k<strong>ein</strong>e<br />
129
Methoden<br />
Felder<br />
TransitRec(char *Zeile_der_Transitionsdatei)<br />
int GetDocID()<br />
int GetConceptID()<br />
int GetFreq()<br />
private<br />
Das INQUERY-Inhaltsnetz ist in Form <strong>ein</strong>er Transitionsdatei (s. 3.6.2.7.) gespeichert,<br />
in der jede Kante des Inhaltsnetzes durch <strong>ein</strong>e Zeile vertreten ist. <strong>Eine</strong> solche<br />
Zeile b<strong>ein</strong>haltet die Nummern der durch die Kante verbundenen Begriffs- und Dokumentknoten,<br />
sowie die Vorkommenshäufigkeit des Begriffs im Dokument. Dem<br />
Konstruktor der Klasse TransitRec wird <strong>ein</strong>e Zeile der Datei übergeben. Mit den Lesemethoden<br />
kann auf die Werte zugegriffen werden.<br />
5.2.1.1.6. Klasse Concept<br />
Klasse<br />
Concept<br />
Basisklassen k<strong>ein</strong>e<br />
Methoden char *GetConcept()<br />
int GetConceptID()<br />
int GetFreq()<br />
int GetDocFreq()<br />
Felder<br />
protected<br />
Die Klasse Concept repräsentiert <strong>ein</strong>en Begriff. Er besteht aus textuellem Namen,<br />
Nummer, absoluter Vorkommenshäufigkeit und Anzahl der involvierten Dokumente.<br />
Die Felder der Klasse Concept werden von folgender Klasse gefüllt.<br />
5.2.1.1.7. Klasse DictRec<br />
Klasse<br />
DictRec<br />
Basisklassen Concept<br />
Methoden int NewDictRec(char *DictStr)<br />
Felder<br />
k<strong>ein</strong>e<br />
INQUERY speichert das Ergebnis s<strong>ein</strong>es Begriffsparsers in <strong>ein</strong>er Wörterbuchdatei<br />
(s. 3.6.2..). <strong>Eine</strong> Zeile der Datei b<strong>ein</strong>haltet die Begriffsinformation, die von der Methode<br />
NewDictRec(Wörterbuchzeile) in die Felder der Basisklasse Concept <strong>ein</strong>gestellt<br />
wird.<br />
Klasse<br />
Basisklassen<br />
ID2TitelDB<br />
k<strong>ein</strong>e<br />
130
Methoden<br />
Felder<br />
virtual char *ID2Titel(int ID)<br />
k<strong>ein</strong>e<br />
Innerhalb von INQUERY und LyberWorld werden Begriffe und Dokumente in<br />
Form von Nummern repräsentiert. Dies erlaubt platzsparende Speicherung und effiziente<br />
Bearbeitung. Zur Rückgewinnung der textuellen Repräsentation dient die<br />
Klasse ID2TitelDB.<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ConceptDB<br />
ID2TitelDB<br />
char* ID2Titel(int ConceptID);<br />
Concept *SearchConcept(char *conceptname);<br />
private<br />
Die Klasse ConceptDB erlaubt den Zugriff auf das Begriffswörterbuch. Mit der Methode<br />
ID2Titel(Begriffsnummer) erhält man den zur Begriffsnummer gehörenden<br />
Begriff in textueller Form. Mit der Methode SearchConcept(Begriffstext) kann man<br />
nach <strong>ein</strong>em bestimmten Begriff suchen, was bei <strong>ein</strong>er textuellen Suchwort<strong>ein</strong>gabe<br />
durch den Benutzer nötig ist.<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
DocDB<br />
ID2TitelDB<br />
char* ID2Titel(int DocID)<br />
char* ID2Text(int DicID)<br />
private<br />
Die Klasse DocDB erlaubt den Zugriff auf die Dokumentendatenbank. Sie stellt Methoden<br />
zur Verfügung, um anhand <strong>ein</strong>er Dokumentennummer den Titel oder den<br />
Text <strong>ein</strong>es Dokuments zu erhalten.<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
DocIX<br />
k<strong>ein</strong>e<br />
static long GetPos(int DocId)<br />
private<br />
Die Klasse DocIX erlaubt <strong>ein</strong>en schnelleren Zugriff auf die Dokumentendatenbank.<br />
Intern legt DocIX <strong>ein</strong>e Tabelle von Dateipositionen an, so daß anhand der Dokumentennummer<br />
direkt die Zielposition in der Dokumentendatenbank ermittelt werden<br />
kann. Innerhalb der Methoden der Klasse DocDB wird durch Aufrufen der Methode<br />
GetPos(Dokumentennummer) von dieser beschleunigten Zugriffsmöglichkeit Gebrauch<br />
gemacht.<br />
131
5.2.1.1.8. Klasse ID_DB<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ID_DB<br />
k<strong>ein</strong>e<br />
ID_DB(char *DBName)<br />
void StartBrowse()<br />
int Browse()<br />
void EndBrowse()<br />
virtual int FilterOK(char *line)<br />
int GetActID()<br />
int GetSearchID()<br />
int GetActFreq()<br />
(private)<br />
Die Klasse ID_DB ist die Basisklasse <strong>für</strong> den Zugriff auf Datenbankinformation auf<br />
der Basis von Dokument– oder Begriffsnummern. Durch die virtuelle Funktion FilterOK<br />
können erbende Klassen entscheiden, ob das jeweilige Element ausgegeben<br />
werden soll oder nicht. <strong>Eine</strong> Redefinition von FilterOK muß <strong>ein</strong>e Funktion s<strong>ein</strong>, die<br />
als Parameter <strong>ein</strong>e Zeile der Transitionsdatei erhält und als Rückgabewert TRUE liefert,<br />
falls die übergebene Zeile das jeweilige Suchkriterium erfüllt. In dieser Basisklasse<br />
wird jede nichtleere Eintragung in der Datenbank mit TRUE bewertet.<br />
5.2.1.1.9. Klasse DocID_DB<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
DocID_DB<br />
ID_DB<br />
DocID_DB();<br />
void StartBrowse(Document *doc);<br />
private: int FilterOK(char *line)<br />
k<strong>ein</strong>e<br />
Die Klasse DocID_DB erlaubt Zugriff auf Dokumentinformation anhand von Dokumentennummern.<br />
Hauptaufgabe der Klasse ist die Bestimmung aller Begriffe, die<br />
in <strong>ein</strong>em bestimmten Dokument vorkommen. Diese Funktionalität wird <strong>für</strong> den<br />
Aufbau der Begriffsringe benötigt. Mit der Methode StartBrowse(Dokument) wird<br />
dazu <strong>ein</strong> bestimmtes Dokument spezifiziert und die Browse-Funktion initialisiert.<br />
Im als Parameter übergebenen Dokument muß zumindest die Dokumentennummer<br />
<strong>ein</strong>getragen s<strong>ein</strong>. Durch wiederholtes Aufrufen der Methode Browse() werden alle<br />
Kanten des Inhaltsnetzes bestimmt, die vom angegebenen Dokument ausgehen. Die<br />
Begriffsnummer des Begriffs am anderen Ende der Kante wird als Rückgabewert<br />
von Browse() zurückgegeben. Der Rückgabewert von Browse() ist negativ, wenn alle<br />
Begriffsnummern abgearbeitet wurden.<br />
Browse() findet die zu <strong>ein</strong>em bestimmten Dokument gehörenden Eintragungen in<br />
der Datenbank durch Redefinition der Funktion FilterOK. Die Filterfunktion extra-<br />
132
hiert die Dokumentennummer aus der übergebenen Datenbankzeile und vergleicht<br />
sie mit dem Wert von GetSearchID(). Bei Gleichheit ist der Rückgabewert TRUE.<br />
5.2.1.1.10. Klasse ConceptID_DB<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ConceptID_DB<br />
ID_DB<br />
ConceptID_DB()<br />
void StartBrowse(Word *word)<br />
private: int FilterOK(char *line)<br />
k<strong>ein</strong>e<br />
Analog zur vorherigen Klasse erlaubt diese Klasse den Zugriff auf Begriffsinformationen<br />
anhand von Begriffsnummern. Mit StartBrowse(Wort) wird <strong>ein</strong> bestimmtes<br />
Suchwort spezifiziert. Die folgenden Aufrufe von Browse() liefern alle Dokumente<br />
des Inhaltsnetzes, die durch <strong>ein</strong>e Kante mit dem Suchwort verbunden sind. Die Sortierung<br />
ergibt sich aus der Reihenfolge der Eintragungen, welche in absteigender<br />
Relevanz vorliegt.<br />
Die Redefinierte Funktion FilterOK extrahiert die Begriffsnummer aus der übergebenen<br />
Datenbankzeile und vergleicht sie mit dem Wert von GetSearchID(). Bei<br />
Gleichheit ist der Rückgabewert TRUE.<br />
5.2.1.1.11. Klasse Query<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
Query<br />
k<strong>ein</strong>e<br />
Query(Word *word)<br />
void StartBrowse(Word *word);<br />
int Browse(Document &Doc)<br />
k<strong>ein</strong>e<br />
Mit Hilfe der Klasse Query können die in Kapitel 3.2. beschriebenen, elementaren<br />
Anfragen an das <strong>Retrieval</strong> System gestellt werden. Durch den Aufruf des Konstruktors<br />
Query(Suchwort) wird die Evaluierung <strong>ein</strong>er Anfrage mit dem Suchwort durch<br />
INQUERY ausgelöst und die Browse-Funktion initialisiert. Die generierte Liste der<br />
als relevant befundenen Dokumente wird von Query gespeichert. Durch wiederholtes<br />
Aufrufen von Browse(Dokument) werden die Dokumente in die Referenzvariable<br />
Dokument <strong>ein</strong>getragen, wobei das Dokument mit der höchsten Relevanzbewertung<br />
an erster Stelle steht und dann der Rest in absteigender Ordnung folgt. Der<br />
Rückgabewert von Browse ist die Nummer des aktuellen Dokuments oder <strong>ein</strong>e negative<br />
Zahl falls die Liste abgearbeitet ist. Nach <strong>ein</strong>em Aufruf des Konstruktors<br />
133
Query() mit <strong>ein</strong>em Suchwort, ist das Browsing initialisiert und <strong>ein</strong> Aufruf von Start-<br />
Browse() mit dem gleichen Wort wirkungslos. Ein Aufruf von StartBrowse() mit <strong>ein</strong>em<br />
anderen Suchwort löst <strong>ein</strong>e neue Anfrage aus und r<strong>ein</strong>itialisiert die Browse-<br />
Funktion. Die Klasse verhält sich dadurch konsistent zu den Klassen DocID_DB und<br />
ConceptID_DB.<br />
5.2.1.2. Die Modulgruppe: ’LyberTree’<br />
RingElement<br />
Ring<br />
Tree<br />
Document<br />
Word<br />
DocRing<br />
WordRing<br />
Klassen zur Beschreibung des logischen<br />
Kontextbaumes.<br />
VisualBase<br />
VisualElement<br />
VisualRing<br />
FaceRingShape<br />
VisualTree<br />
VisualTreeIcon<br />
VisualDoc<br />
VisualWord<br />
VisualWordRing<br />
VisualDocRing<br />
Klassen zur Beschreibung<br />
der <strong>graphische</strong>n<br />
Objekte des Kontextbaumes.<br />
Die LyberTree-Modulgruppe enthält die Klassendefinitionen zur Beschreibung <strong>ein</strong>er<br />
Kontextbaumrealisierung.<br />
Die Klassenhierarchie ist in zwei Klassengruppen unterteilt, die zum <strong>ein</strong>en Funktionen<br />
zur Beschreibung des logischen Kontextbaumes und zum anderen Funktionen<br />
zur Beschreibung s<strong>ein</strong>er <strong>graphische</strong>n Beschaffenheit enthalten.<br />
5.2.1.2.1. Klasse RingElement<br />
Klasse<br />
Basisklassen<br />
RingElement<br />
k<strong>ein</strong>e<br />
134
Methoden<br />
RingElement()<br />
RingElement(char *Name, int ID)<br />
char *GetName()<br />
void SetName(const char *const NewName)<br />
int GetID()<br />
void SetID(int NewID)<br />
REType GetType()<br />
void SetLink(RingElement *DestREle);<br />
void UnLink()<br />
RingElement *GetLink()<br />
int GetRef()<br />
Ring<br />
void<br />
Ring<br />
void<br />
float<br />
*GetHomeRing()<br />
SetHomeRing(Ring *ring)<br />
*GetChildRing()<br />
SetChildRing(Ring *ring)<br />
GetSize()<br />
Felder<br />
private<br />
Die Klasse RingElement ist die Basisklasse <strong>für</strong> die logischen Dokument- und Begriffsbeschreibungen.<br />
Sie enthält Festlegungen, welche <strong>für</strong> Dokumente und Worte<br />
des Kontextbaumes gleich sind.<br />
Neben den Informationen Typ, Name und Nummer stellt die Klasse Methoden zur<br />
Verfügung mit denen Verweise auf Kopien des Ringelements (s. Kapitel 4.1.3.) verwaltet<br />
werden (Link-Methoden). Get- und SetHomeRing() dienen der Zuordnung<br />
des Elements zu <strong>ein</strong>em Ring und Get- und SetChildRing() verwalten <strong>ein</strong>en eventuellen<br />
Unterring. Die Methode GetSize() berechnet den Platzbedarf des Elements unter<br />
berücksichtigung <strong>ein</strong>es eventuellen Unterbaums (s. Kapitel 4.1.4.).<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
Document<br />
RingElement<br />
Dokumentspezifische Methoden<br />
private<br />
Word<br />
RingElement<br />
Wortspezifische Methoden<br />
private<br />
Die Klassen Document und Word erben von der Basisklasse RingElement und ergänzen<br />
weitere dokument- und begriffsspezifische Methoden.<br />
135
5.2.1.2.2. Klasse Ring<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Ring<br />
ROList > DynamicList > REleList<br />
VisualConnect>VRConnect<br />
Ring()<br />
Felder<br />
RingElement* GetInitREle()<br />
float GetSize()<br />
void Remove()<br />
void RotForw()<br />
void RotBack()<br />
void RotOutside()<br />
private<br />
Die Basisklasse <strong>für</strong> die Beschreibung <strong>ein</strong>er kompletten logischen Dokumenten- oder<br />
Begriffsebene des Kontextbaumes heißt Ring. <strong>Eine</strong> Baumebene wird in Form <strong>ein</strong>er<br />
dynamischen Liste von Ringelementen festgelegt. Die Klasse Ring erbt folglich von<br />
<strong>ein</strong>er Klasse REleList, durch die <strong>ein</strong>e dynamische Liste von Ringelementen beschrieben<br />
wird. Durch die Erbschaft von der Klasse VRConnect wird die Verbindung<br />
der logischen Ringbeschreibung zur konkreten Visualisierungsklasse VisualRing<br />
hergestellt.<br />
Die Methoden der Klasse dienen unter anderem zur Animation der <strong>ein</strong>zelnen Baumebenen.<br />
Mit RotForw() und RotBack() kann <strong>ein</strong>e Rotation der Ebene realisiert werden,<br />
während die Funktion RotOutside() dazu dient das jeweils aktuelle Element der<br />
Ebene, nach vorne zu rotieren. Mit Remove() kann das jeweils aktuelle Element der<br />
Ebene entfernt werden.<br />
5.2.1.2.3. Klasse DocRing<br />
Klasse<br />
DocRing<br />
Basisklassen REleList > Ring<br />
Methoden void AddDoc(Document *NewDoc)<br />
Felder<br />
k<strong>ein</strong>e<br />
Die Klasse DocRing ist <strong>ein</strong>e Spezialisierung der Klasse Ring zur Beschreibung von<br />
Dokumentenebenen des Kontextbaumes. Sie fügt der Basisklasse Ring lediglich die<br />
Methode AddDocument() hinzu, mit der die Ringelementeliste um <strong>ein</strong> Dokument<br />
erweitert werden kann.<br />
5.2.1.2.4. Klasse WordRing<br />
Klasse<br />
Basisklassen<br />
WordRing<br />
REleList > Ring<br />
136
Methoden<br />
Felder<br />
void AddWord(Word *NewWord)<br />
k<strong>ein</strong>e<br />
Die Klasse WordRing ist das Pendant zur Klasse DocRing und dient zur Beschreibung<br />
von Begriffsebenen des Kontextbaums. Auch WordRing erweitert die Basisklasse<br />
Ring lediglich um <strong>ein</strong>e Methode AddWord() zur Erweiterung der dynamischen<br />
Begriffsliste.<br />
5.2.1.2.5. Klasse Tree<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Tree<br />
VisualConnect > VTConnect<br />
Tree()<br />
void<br />
void<br />
Expand()<br />
Remove()<br />
void GoForw()<br />
void GoBack()<br />
void GoTo(RingElement *ToREle)<br />
RingElement* GetRootREle()<br />
Ring* GetCuRing()<br />
void RotOutside()<br />
Felder<br />
InquiList* BuildInqui()<br />
void ChangeRootword(Concept *rootconcept)<br />
private<br />
Zur logischen Beschreibung des gesamten Kontextbaumes ist im LyberTree-Modul<br />
die Klasse Tree definiert. Tree enthält Methoden zur Manipulation des Baumes und<br />
erbt von der Klasse VTConnect <strong>ein</strong>e Verbindung zur Visualisierungsklasse Visual-<br />
Tree.<br />
Mit den Methoden GoForw() und GoBack() kann zwischen den Ebenen des Kontextbaumes<br />
gewechselt werden. Die Bewegung bezieht sich jeweils auf das aktuelle<br />
Element der aktuellen Ringebene. Expand() dient zum Expandieren des aktuellen<br />
Elements. Mit Remove() kann die aktuelle Ebene mit ihren Tochterebenen aus dem<br />
Baum entfernt werden. RotOutside() bewegt den gesamten Baum so, daß die aktuelle<br />
Ebene in der Bildmitte und das aktuelle Element der Ebene im Vordergrund liegt.<br />
Mit ChangeRootword() kann der Startbegriff des Kontextbaumes geändert werden.<br />
Zu jeder der oben beschriebenen Klassen zur Kontextbaumdefinition ist <strong>ein</strong>e Visualisierungsklasse<br />
definiert, mit welcher die <strong>graphische</strong> Beschaffenheit des Baumes<br />
137
und s<strong>ein</strong>er Komponenten beschrieben wird. Die Visualisierungsklassen dienen zum<br />
Aufbau des Inventor-Szenengraphen, mit dem die LyberWorld-Szene beschrieben<br />
wird.<br />
Die Visualisierungsklassen der LyberTree-Modulgruppe sind durch Klassennamen<br />
gekennzeichnet, die mit dem Präfix ’Visual’ beginnen.<br />
5.2.1.2.6. Klasse VisualElement<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
VisualElement<br />
VisualBase<br />
VisualElement();<br />
SoSeparator * GetGroup()<br />
RingElement *GetREle()<br />
void AddChildRing(SoGroup *grp)<br />
void RemoveChildRing()<br />
SoGroup * GetChildRing()<br />
void<br />
float<br />
void<br />
Refresh(float radius)<br />
GetRotAngle()<br />
SetRotAngle(float ang)<br />
Felder<br />
private<br />
Die Visualisierungsklasse der logischen Klasse RingElement heißt VisualElement.<br />
Jede Visualisierungsklasse dient zur Konstruktion <strong>ein</strong>es Teilgraphen des Lyber-<br />
World-Szenengraphen und enthält daher immer <strong>ein</strong> Methode GetGroup(), die den<br />
Wurzelknoten dieses Teilgraphen zurückgibt. Weitere Methoden dienen dazu, <strong>ein</strong>en<br />
weiteren Ring an das Element anzuhängen (AddChildRing), ihn wieder zu entfernen<br />
(RemoveChildRing) oder auf ihn zuzugreifen (GetChildRing). Mit der Methode Refresh(radius)<br />
kann die Repositionierung des Ringelements an <strong>ein</strong>en neuen Radius<br />
ausgelöst werden, was infolge <strong>ein</strong>er Spiralisierungsinteraktion durch den Benutzer<br />
nötig ist. Get- und SetRotAngle() betreffen den Rotationswinkel des Elements innerhalb<br />
s<strong>ein</strong>er Ringgruppe.<br />
5.2.1.2.7. Klasse VisualDoc<br />
Klasse<br />
Basisklassen<br />
VisualDoc<br />
VisualBase > VisualElement<br />
138
Methoden<br />
Felder<br />
VisualDoc(Document *OneDoc, float yDist=0,<br />
floatzDist=0)<br />
k<strong>ein</strong>e<br />
VisualDoc ist die Visualisierungsklasse der logischen Klasse Document. Der Konstruktor<br />
VisualDoc() bewirkt den Aufbau <strong>ein</strong>es Teilszenengraphen, der die Visualisierung<br />
<strong>ein</strong>es Dokumentenknoten beschreibt.<br />
5.2.1.2.8. Klasse VisualWord<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
VisualWord<br />
VisualBase > VisualElement<br />
VisualWord(Word *OneWord, float yDist=0,<br />
floatzDist=0<br />
k<strong>ein</strong>e<br />
Entsprechend zu VisualDoc visualisiert VisualWord <strong>ein</strong>en Begriffsknoten des Kontextbaumes.<br />
5.2.1.2.9. Klasse VisualRing<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
VisualRing<br />
VisualBase<br />
FaceRingShape<br />
VisualRing();<br />
SoGroup<br />
*GetGroup()<br />
Ring<br />
float<br />
void<br />
void<br />
void<br />
void<br />
*GetRing()<br />
GetRotAngle()<br />
SetRotAngle(float ang)<br />
Refresh();<br />
Highlight();<br />
UnHighlight()<br />
Felder<br />
private<br />
VisualRing ist die Basisklasse <strong>für</strong> die Visualisierungsklassen der Kontextbaumebenen.<br />
139
Die Methode GetGroup() liefert die Wurzel des Teilszenengraphen und GetRing()<br />
die logische Beschreibung des Rings. Get- und SetRotAngle() betreffen den Rotationswinkel<br />
um den der gesamte Kegel, alle Ringelemente auf s<strong>ein</strong>er Spirale und alle<br />
nachfolgenden Baumebenen gedreht sind.<br />
Die weiteren Methoden der Klasse erlauben An- und Abschalten der visuellen Hervorhebung<br />
des aktuellen Elements und des aktuellen Rings (HighLight(), UnHigh-<br />
Light()) und <strong>ein</strong>e Auffrischung (Refresh()) der Darstellung, welche die <strong>graphische</strong><br />
Beschaffenheit an die aktuelle logische Beschaffenheit des Ringes anpaßt.<br />
5.2.1.2.10. Klasse VisualDocRing<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
VisualDocRing<br />
VisualBase > VisualRing<br />
VisualDocRing(DocRing *OneDocRing)<br />
k<strong>ein</strong>e<br />
5.2.1.2.11. Klasse VisualWordRing<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
VisualWordRing<br />
VisualBase > VisualRing<br />
VisualWordRing(WordRing *OneWordRing)<br />
k<strong>ein</strong>e<br />
Die Klassen VisualDocRing und VisualWordRing erweitern ihre Basisklasse VisualRing<br />
jeweils um den Konstruktor zur Konstruktion <strong>ein</strong>er speziellen Dokumenten-<br />
oder Begriffsebene. Anhand der logischen Ebenenbeschreibung wird durch die<br />
Konstruktoren der Teilszenengraph des Ringes generiert.<br />
5.2.1.2.12. Klasse VisualTree<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
VisualTree<br />
VisualBase<br />
VisualTree(Tree *tree)<br />
SoGroup* GetGroup()<br />
void Refresh()<br />
private<br />
VisualTree ist die Visualisierungsklasse <strong>für</strong> die komplette <strong>graphische</strong> Kontextbaumbeschreibung.<br />
140
Dem Konstrukor von VisualTree wird die logische Repräsentation des Kontextbaums<br />
durch den Parameter tree übergeben. VisualTree stößt die Generierung des<br />
Kontextbaumszenengraphen an, indem der Konstruktor von VisualElement mit dem<br />
Wurzelknoten als Parameter aufgerufen wird. Findet dieser <strong>ein</strong>en anhängenden<br />
Ring, wird mit diesem der Konstruktor VisualRing aufgerufen, welcher wiederum<br />
<strong>für</strong> alle s<strong>ein</strong>e Ringelemente VisualElement anstößt. Der Prozeß setzt sich rekursiv<br />
fort, bis der Szenengraph des gesamten Baums aufgebaut ist. Mit der Methode Get-<br />
Group() kann auf den Wurzelknoten des Szenengraphen zugegriffen werden.<br />
5.2.1.2.13. Klasse VisualTreeIcon<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
VisualTreeIcon<br />
VisualBase<br />
VisualTreeIcon()<br />
SoSeparator* GetGroup()<br />
private<br />
Die Klasse VisualTreeIcon dient zur Beschreibung des Szenengraphen des Lyber-<br />
Tree-Icons, welches die Baumdarstellung bei deaktiviertem LyberTree-Werkzeug<br />
ersetzt.<br />
5.2.1.3. Die Modulgruppe: ’LyberSphere’<br />
SphereElement<br />
SphereSet<br />
Sphere<br />
SphereWord<br />
SphereDoc<br />
WordSet<br />
DocSet<br />
Klassen zur Beschreibung der logischen<br />
Relevanzkugel.<br />
ViewBase<br />
ViewElement<br />
ViewSet<br />
ViewSphere<br />
ViewSphereIcon<br />
ViewWord<br />
ViewDoc<br />
ViewWordSet<br />
ViewDocSet<br />
Klassen zur Beschreibung<br />
der <strong>graphische</strong>n Objekte<br />
der Relevanzkugel.<br />
141
Wie in der LyberTree-Modulgruppe sind auch die Klassen der LyberSphere-Modulgruppe<br />
in Klassen zur Beschreibung der logischen und der <strong>graphische</strong>n Beschaffenheit<br />
der Relevanzkugel unterteilt.<br />
5.2.1.3.1. Klasse SphereElement<br />
Klasse<br />
SphereElement<br />
Basisklassen k<strong>ein</strong>e<br />
Methoden SpherElement()<br />
void SetName(char *name)<br />
char * GetName()<br />
void<br />
int<br />
void<br />
int<br />
SetID(int NewID)<br />
GetActID()<br />
SetType(SpEleType TYPE)<br />
GetType()<br />
Felder<br />
private<br />
Die Basisklasse zur Beschreibung <strong>ein</strong>es Dokuments oder <strong>ein</strong>es Referenzpunktes<br />
heißt SphereElement. Die Methoden von SphereElement verwalten Informationen,<br />
welche bei <strong>ein</strong>er Dokument- und Referenzpunktbeschreibung gleich sind. Dies sind<br />
die Festlegungen des Namens, der Nummer und des Typs.<br />
5.2.1.3.2. Klasse SphereWord<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
SphereWord<br />
SphereElement<br />
SphereWord(int WordID, char *WName)<br />
Felder<br />
DocList *DocLink<br />
Die Klasse SphereWord dient zur Beschreibung der logischen Eigenschaften <strong>ein</strong>es<br />
Referenzpunktes. Sie erbt die Grundeigenschaften <strong>ein</strong>es Elements von SphereElement<br />
und enthält zusätzlich <strong>ein</strong>en Zeiger auf <strong>ein</strong>e dynamische Liste von Dokumenten<br />
(DocLink), in der alle Dokumente <strong>ein</strong>getragen sind, <strong>für</strong> die der betreffende Referenzpunkt<br />
relevant ist.<br />
5.2.1.3.3. Klasse SphereDoc<br />
Klasse<br />
SphereDoc<br />
Basisklassen SphereElement<br />
142
Methoden<br />
SphereDoc(int DocID, char *DName)<br />
long<br />
void<br />
float<br />
GetDocLength()<br />
SetDocMag(float mag)<br />
GetDocMag()<br />
Felder long DocLenght<br />
WordList * ConceptLink<br />
Wie SphereWord wird auch die Klasse SphereDoc von SphereElement abgeleitet.<br />
Sie enthält als zusätzliche Felder zur Dokumentenbeschreibung <strong>ein</strong>e dynamische<br />
Liste von allen <strong>für</strong> das betreffende Dokument relevanten Referenzpunkten (ConceptLink)<br />
und Methoden <strong>für</strong> den Zugriff auf die Dokumentenlänge (Get-<br />
DocLength()) und den Wert <strong>für</strong> die Anziehungskraft, mit der das Dokumentensymbol<br />
aus dem Mittelpunkt der Relevanzkugel herausgezogen wird (Get- und<br />
SetDocMag()).<br />
5.2.1.3.4. Klasse SphereSet<br />
Klasse<br />
Basisklassen<br />
Typen<br />
Methoden<br />
SphereSet<br />
k<strong>ein</strong>e<br />
enum SpEleType<br />
{ SPHEREvoid<br />
SPHEREword<br />
SPHEREdoc<br />
}<br />
SphereSet()<br />
SpEleType GetType()<br />
void SetType(SpEleType type)<br />
void SetInitEle(SphereElement)<br />
int<br />
GetEleNumber()<br />
Felder<br />
private<br />
Die Basisklasse zur Beschreibung der logischen Dokument- und Referenzpunktmengen<br />
heißt SphereSet. Sie enthält die Methoden Set- und GetType() zum Festlegen<br />
und Abfragen des Mengentyps SpEleType und die Methode SetInitEle() zur Zuordnung<br />
des initialen Elements der Menge. Die Methode GetEleNumber() liefert die<br />
Kardinalität der Menge. Diese Eigenschaften der Klasse werden an die zwei spezielleren<br />
Mengenbeschreibungsklassen vererbt.<br />
143
5.2.1.3.5. Klasse WordSet<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
WordSet<br />
SphereSet, ROList > DynamicList > WordList<br />
WordSet(InquiList *IList, int MaxWordAnz)<br />
SphereWord* GetWordWithIndex(int index)<br />
SphereWord* GetWordWithID(int ID)<br />
bool TestWordWithID(int ID)<br />
Felder<br />
private<br />
Die Klasse WordSet dient zur Beschreibung der logischen Referenzpunktmenge in<br />
der Relevanzkugel.<br />
Die Referenzpunktmenge wird als dynamische Liste von Worten festgelegt. Die Eigenschaften<br />
<strong>ein</strong>er dynamischen Liste erbt WordSet von der Klasse WordList. Desweiteren<br />
sind in WordSet Methoden definiert, mit denen <strong>ein</strong> Zugriff auf <strong>ein</strong>zelne<br />
Mengenelemente über ihre ID und ihren Listenindex möglich ist (GetWordWithIndex(),<br />
GetWordWithID()). Die Methode TestWordWithID() testet das Vorkommen<br />
<strong>ein</strong>es Mengenelements anhand der ID.<br />
5.2.1.3.6. Klasse DocSet<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
DocSet<br />
SphereSet, ROList > DynamicList >DocList<br />
DocSet(InquiList *IList)<br />
SphereDoc* GetDocWithID(int ID)<br />
void ChangeFreqs(int WordID, float Radius)<br />
Felder<br />
long MaxDocLenght<br />
SphereDoc *ActDoc<br />
Entsprechend wird auch die logische Dokumentenmenge, welche durch die Klasse<br />
DocSet definiert wird, als dynamische Liste von Dokumenten festgelegt.<br />
DocSet erbt von der Klasse DocList, die <strong>ein</strong>e solche dynamische Dokumentenliste<br />
definiert. Zusätzlich zu den von SphereSet geerbten Eigenschaften enthält DocSet<br />
Felder zur Festlegung des jeweils aktuellen Dokuments (ActDoc) und der Länge des<br />
umfangreichsten Dokuments (MaxDocLenght).<br />
Klasse<br />
Basisklassen<br />
Sphere<br />
k<strong>ein</strong>e<br />
144
Methoden<br />
Sphere(float radius)<br />
float<br />
GetRadius()<br />
Felder<br />
private<br />
Die Klasse Sphere ist zur Festlegung globaler Werte und Einstellungen der Relevanzkugel<br />
vorgesehen. In der Version des Prototypen b<strong>ein</strong>haltet sie lediglich den<br />
Wert des Radius der Relevanzkugel.<br />
Die Visualisierungsklassen der LyberSphere-Modulgruppe sind durch das Präfix<br />
’View’ im Klassennamen gekennzeichnet. Entsprechend der Klassen der Lyber-<br />
Tree-Modulgruppe ist auch hier zu jeder logischen Klasse <strong>ein</strong>e Visualisierungsklasse<br />
definiert.<br />
5.2.1.3.7. Klasse ViewElement<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
ViewElement<br />
ViewBase<br />
ViewElement()<br />
SoSeparator* GetGroup()<br />
Felder<br />
SoSeparator *Ele_Group<br />
int ActID<br />
Die Basisklasse der Visualisierungsklassen <strong>für</strong> <strong>ein</strong>zelne Elemente, d.h. <strong>für</strong> Dokumenten-<br />
und Referenzpunktsymbole, heißt ViewElement.<br />
ViewElement liefert durch GetGroup() <strong>ein</strong>en Zeiger auf den Wurzelknoten des<br />
Teilszenengraphen der <strong>graphische</strong>n Symbolbeschreibung.<br />
5.2.1.3.8. Klasse ViewWord<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ViewWord<br />
ViewBase > ViewElement<br />
ViewWord(SphereWord *OneWord, float x_deg,<br />
float y_deg<br />
void Add2DText(SphereWord *SW, SbVec3f TV)<br />
void HighLight()<br />
void UnHighLight()<br />
k<strong>ein</strong>e<br />
145
ViewWord ist die Klasse zur Beschreibung <strong>ein</strong>es Referenzpunktsymbols.<br />
Mit dem Konstruktor ViewWord() wird der Teilszenengraph angelegt, dessen Wurzelknotenzeiger<br />
ViewWord von der Basisklasse ViewElement erbt. Desweiteren sind<br />
in der Klasse Methoden zum Anhängen <strong>ein</strong>es Textes Add2DText() und zum An- und<br />
Abschalten der Hervorhebung des aktuellen Referenzpunktes HighLight(), Un-<br />
HighLight() enthalten.<br />
5.2.1.3.9. Klasse ViewDoc<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ViewDoc<br />
ViewBase > ViewElement<br />
ViewDoc(SphereDoc *OneDoc)<br />
void HighLight()<br />
void UnHighLight()<br />
static ClosedBookKit *CBK<br />
static OpenBookKit *OBK<br />
ViewDoc ist die entsprechende Klasse zur Visualisierung <strong>ein</strong>es Dokumentensymbols.<br />
Auch in der Dokumentenmenge existiert jeweils <strong>ein</strong> aktuelles Element, dessen Symbol<br />
als aufgeschlagenes Buch visualisiert wird. Die nicht aktuellen Dokumente werden<br />
als geschlossene Bücher dargestellt. Folglich müssen zwei verschiedene<br />
Teilszenengraphen definiert werden. Dies geschieht durch die Klassen ClosedBook-<br />
Kit und OpenBookKit. In ViewDoc sind Zeiger auf statische Instanzen dieser Klassen<br />
definiert (CBK, OBK).<br />
Mit den Methoden HighLight() und UnHighLight() kann zwischen den beiden Symbolen<br />
gewechselt werden.<br />
5.2.1.3.10. Klasse ViewSet<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
ViewSet<br />
ViewBase<br />
ViewSet()<br />
SoSeparator* GetGroup()<br />
Felder<br />
private<br />
ViewSet ist die Basisklasse zur Beschreibung der Visualisierung <strong>ein</strong>er gesamten Elementmenge,<br />
d.h. <strong>ein</strong>er Dokumenten- oder Referenzpunktmenge.<br />
146
Die Teilszenengraphen der <strong>ein</strong>zelnen Elementensymbole werden in der Menge zu<br />
<strong>ein</strong>em Szenengraphen zusammengefügt. Mit GetGroup() kann auf den Zeiger des<br />
Wurzelknotens zugegriffen werden.<br />
5.2.1.3.11. Klasse ViewWordSet<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
ViewWordSet<br />
ViewBase > ViewSet<br />
ViewWordSet(WordSet* wordset)<br />
Felder<br />
k<strong>ein</strong>e<br />
Mit dem Konstruktor ViewWordSet() der Klasse ViewWordSet wird der Szenengraph<br />
angelegt. Den Zeiger auf den Wurzelknoten erbt ViewWordSet von der Basisklasse<br />
ViewSet.<br />
5.2.1.3.12. Klasse ViewDocSet<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
ViewDocSet<br />
ViewBase > ViewSet<br />
ViewDocSet(DocSet *OneDocSet,<br />
WordSet *OneWordSet<br />
ViewWordSet *VWS)<br />
SbVec3f GetWordKoor(SoGroup *WordGrp,<br />
SoGroup *SetGrp)<br />
void<br />
float<br />
SetPercent(float wert)<br />
GetPercent()<br />
Felder<br />
private<br />
Entsprechend stellt die Klasse ViewDocSet Methoden zum Aufbau des Szenengraphen<br />
der Dokumentengruppe zur Verfügung.<br />
Der Szenengraphenaufbau durch ViewDocSet() benötigt Zeiger auf die logische und<br />
<strong>graphische</strong> Beschreibungsklasse der Referenzpunktmenge, da die Dokumentensymbole<br />
abhängig von den Positionen der Referenzpunkte und den jeweiligen Relevanzwerten<br />
positioniert werden. Mit der Methode GetWordKoor() können die aktuellen<br />
Koordinaten der Referenzpunktsymbole ermittelt werden, die zur<br />
Berechnung der Positionen der Dokumentensymbole benötigt werden.<br />
Der Rückgabewert der Methode GetPercent() ist der aktuelle Wert der <strong>ein</strong>gestellten<br />
Kugeldichte. Die Aktualisierung wird jeweils beim Aufruf der Callbackfunktion des<br />
147
RightSliderEvent() anhand des aktuellen Werts des density-Schiebers durchgeführt.<br />
SetPercent() legt damit die prozentuale Ausnutzung des Relevanzkugelinnenraumes<br />
fest.<br />
5.2.1.3.13. Klasse ViewSphere<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
ViewSphere<br />
ViewBase<br />
ViewSphere(Sphere *Ball)<br />
SoSwitch* GetGroup()<br />
void ToggleBall()<br />
void BallON()<br />
void BallOFF()<br />
Felder<br />
private<br />
Mit der Klasse ViewSphere wird die <strong>graphische</strong> Beschaffenheit der Relevanzkugeloberfläche<br />
festgelegt.<br />
Der Wurzelknoten des Teilszenengraphen den die Methode GetGroup() liefert, ist<br />
vom Typ SoSwitch. Mit den Methoden ToggleBall(), BallON() und BallOFF() kann<br />
die Darstellung der Kugeloberfläche <strong>ein</strong>- und ausgeschaltet werden.<br />
5.2.1.3.14. Klasse ViewSphereIcon<br />
Klasse<br />
Basisklassen<br />
Methoden<br />
Felder<br />
ViewSphereIcon<br />
ViewBase<br />
ViewSphereIcon()<br />
SoSeparator *VSI_Group<br />
Die Klasse VisualSphereIcon dient zur Beschreibung des Szenengraphen des LyberSphere-Icons,<br />
welches die Relevanzkugeldarstellung bei deaktiviertem Lyber-<br />
Sphere-Werkzeug ersetzt.<br />
5.2.2. Der Szenengraph<br />
Die <strong>graphische</strong>n Objekte des LyberWorld-Systems werden in Form <strong>ein</strong>es IRIS Inventor<br />
Szenengraphen gespeichert.<br />
148
Die Konstruktoren der Visualisierungsklassen der <strong>ein</strong>zelnen Objekte definieren jeweils<br />
<strong>ein</strong>en Teilszenengraphen und enthalten <strong>ein</strong>en Zeiger auf den Wurzelknoten.<br />
LyberWorld-Wurzel<br />
Ereignisknoten<br />
Baumwurzel Kugelwurzel Raumwurzel<br />
Szenengraph<br />
Szenengraph<br />
Szenengraph<br />
Szenengraph<br />
Szenengraph<br />
Szenengraph<br />
des LyberTree-<br />
des LyberTree-<br />
des LyberSphe-<br />
des LyberSphe-<br />
des<br />
des<br />
Lyber-<br />
Lyber-<br />
Moduls<br />
Icons<br />
re-Moduls<br />
re-Icons<br />
Room-Moduls<br />
Room-Icons<br />
Deaktivierter Teilszenengraph <strong>ein</strong>es der Interaktionswerkzeuge<br />
oder s<strong>ein</strong>es Icons<br />
Aktivierter Teilszenengraph <strong>ein</strong>es der Interaktionswerkzeuge<br />
oder s<strong>ein</strong>es Icons<br />
Abbildung: 4.14.<br />
Der Szenengraph des LyberWorld-Systems<br />
Abbildung 4.14. zeigt die Wurzelkonstruktion des gesamten LyberWorld-Szenengraphen.<br />
Der Gruppenknoten LyberWorld-Wurzel ist <strong>ein</strong> Selektionsknoten, d.h. bei<br />
der Auswahl <strong>ein</strong>es beliebigen Knotens des Szenengraphen, zum Beispiel interaktiv<br />
durch die Maus, wird der Callbackfunktion <strong>ein</strong> Pfad vom Selektionsknoten zum ausgewählten<br />
Knoten als Parameter geliefert. Wie in Kapitel 2.2.3.2. beschrieben, können<br />
so Teilobjekte der gesamten Szene bezeichnet werden.<br />
Der erste Sohnknoten der LyberWorld-Wurzel ist <strong>ein</strong> Ereignisknoten, mit dem die<br />
Zuordnung der Callbackfunktionen zu den verschiedenen Ereignissen realisiert<br />
werden kann. Die IRIS-Inventor-Klasse, welche den Typ des Ereignisknoten definiert,<br />
stellt Methoden zum Anmelden der Callbackfunktionen zur Verfügung.<br />
149
Um zum Beispiel die Callbackfunktion LW_KeyboardEventCallback() so anzumelden,<br />
daß sie bei <strong>ein</strong>em Tastaturereignis (KeyboardEvent) aufgerufen wird, muß die<br />
folgende Methode ausgeführt werden:<br />
addEventCallback( SoKeyboardEvent::getClassTypeId(),<br />
LW_KeyboardEventCallback, NULL )<br />
Die drei weiteren Sohnknoten Baumwurzel, Kugelwurzel und Raumwurzel sind die<br />
Wurzelknoten der <strong>ein</strong>zelnen Interaktionswerkzeuge. Für jeden der Wurzelknoten<br />
sind zwei Teilszenengraphen vorgesehen, die wahlweise in den Gesamtszenengraphen<br />
<strong>ein</strong>gehängt werden können. Die beiden Teilszenengraphen beschreiben jeweils<br />
das Interaktionswerkzeug und s<strong>ein</strong> 3D-Icon.<br />
Abhängig vom aktuellen Systemzustand kann zwischen Werkzeug und 3D-Icon gewechselt<br />
werden. Der in Abbildung 4.14. dargestellte Szenengraph beschreibt folglich<br />
die Visualisierung des Systems im Zustand TreeActive.<br />
5.2.2.1. Der Szenengraph des Kontextbaums<br />
Der Szenengraph des LyberTree-Werkzeuges setzt sich aus den Teilszenengraphen<br />
zusammen, die durch die Konstruktoren der Visualisierungsklassen angelegt werden.<br />
Abbildung 4.15. zeigt den Szenengraphen <strong>ein</strong>es Kontextbaums, der aus drei Ringebenen<br />
besteht.<br />
Der Knoten Baumwurzel hat als Kinder die jeweiligen Wurzelknoten der 3D-Iconbeschreibung<br />
(Icongruppe) und des aktivierten Kontextbaumwerkzeuges (Werkzeuggruppe).<br />
Direkt unterhalb des Werkzeug-Gruppenknotens liegt die Beschreibung<br />
der Visualisierung des Startbegriffs.<br />
An den Szenengraphen des Startbegriffs wird der Szenengraph des durch Expansion<br />
des Begriffs generierten Dokumentenring angehängt. Dieser besteht aus <strong>ein</strong>er Beschreibung<br />
des aktuellen Rotationswinkels durch <strong>ein</strong>en Rotationsknoten und des<br />
Begriffskonuses durch <strong>ein</strong>en weiteren Teilszenengraphen.<br />
Rechts neben der Konusbeschreibung liegen die Symbolbeschreibungen der Ebenenelemente,<br />
im Falle <strong>ein</strong>es Dokumentenrings sind dies Dokumentensymbolbeschreibungen.<br />
Wenn <strong>ein</strong>es der Dokumente des Rings expandiert wird, so wird im Szenengraphen<br />
an die entsprechende Symbolbeschreibung <strong>ein</strong>e neue Ringbeschreibung angehängt.<br />
In unserem Beispielszenengraphen sind zwei Dokumente der ersten Kegelbaumebene,<br />
d.h. des ersten Dokumentrings, expandiert. Folglich hängen an zwei der Dokumentsymbolbeschreibungen<br />
Beschreibungen <strong>ein</strong>es Begriffsringes. In diesen Begriffsringen<br />
der zweiten Kegelbaumebene ist wiederum jeweils <strong>ein</strong> Begriff<br />
expandiert. Die dritte Ebene des beschriebenen Kontextbaums besteht daher aus<br />
zwei Dokumentringen.<br />
150
Baumwurzel<br />
D<br />
B<br />
Teilszenengraph <strong>ein</strong>es Dokumentenblättchens<br />
Teilszenengraph <strong>ein</strong>es Begriffsblättchens<br />
Icongruppe<br />
Werkzeuggruppe<br />
Szenengraph<br />
des LyberTree-<br />
Icons<br />
material transformation<br />
B<br />
Startbegriff<br />
Dokumentenring 1.Ebene<br />
rotation<br />
cone<br />
D D D D D<br />
Begriffsring 2.Ebene<br />
Begriffsring 2.Ebene<br />
B B B B<br />
Dokumentenring 3.Ebene<br />
Dokumentenring 3.Ebene<br />
D D D D<br />
Abbildung: 4.15.<br />
Der Szenengraph des LyberTree-Werkzeuges<br />
5.2.2.2. Der Szenengraph der Relevanzkugel<br />
Die Teilszenengraphen der <strong>graphische</strong>n Objekte, aus welchen das LyberSphere-<br />
Werkzeug besteht, werden analog zum LyberTree-Werkzeug durch die Konstruktoren<br />
der Visualisierungsklassen angelegt. Der Gesamtszenengraph der Relevanzkugelvisualisierung<br />
setzt sich aus diesen Teilszenengraphen zusammen.<br />
In Abbildung 4.16. ist der Szenengraph <strong>ein</strong>er Relevanzkugel dargestellt.<br />
Unterhalb des Knotens Kugelwurzel liegen wiederum die Wurzelknoten der<br />
3D-Iconbeschreibung (Icongruppe) und des aktivierten Relevanzkugelwerkzeuges<br />
(Werkzeuggruppe).<br />
151
Kugelwurzel<br />
R<br />
Teilszenengraph <strong>ein</strong>es Referenzpunktsymbols<br />
Icongruppe<br />
Werkzeuggruppe<br />
Szenengraph<br />
Gruppe der<br />
Dokumentenmenge<br />
Gruppe der<br />
Referenzpunktmenge<br />
rotation<br />
Kugelgruppe<br />
des LyberSphere-Icons<br />
rotation<br />
R<br />
rotation<br />
R<br />
rotation<br />
R<br />
Szenengraph<br />
der Kugeloberflächenbe-<br />
schreibung<br />
transformation transformation transformation<br />
O<br />
Dokumentensymbol:<br />
offenes Buch<br />
G<br />
Dokumentensymbol:<br />
geschlossenes Buch<br />
Abbildung: 4.16.<br />
Der Szenengraph des LyberSphere-Werkzeuges<br />
Der erste Sohn des Werkzeuggruppenknotens ist der Wurzelknoten der Dokumentensymbolmenge,<br />
d.h. die Wurzel des Teilszenengraphen, welcher die Beschreibung<br />
der Dokumentensymbole enthält. Jedes Dokumentensymbol wird durch <strong>ein</strong>en<br />
Transformationsknoten, der die Position des Symbols bestimmt und <strong>ein</strong>en Gruppenknoten,<br />
der als Nachfolger entweder den Teilszenengraphen <strong>ein</strong>es offenen oder<br />
den <strong>ein</strong>es geschlossenen Buchs enthält, beschrieben.<br />
Da Knoten im Szenengraphen mehrere Vorgänger haben dürfen, müssen die Teilszenengraphen<br />
zur Beschreibung der zwei verschiedenen Buchsymbole jeweils nur <strong>ein</strong>mal<br />
angelegt werden.<br />
Neben dem Wurzelknoten der Dokumentenmenge liegt der Wurzelknoten der Referenzpunktsymbolmenge.<br />
Die Position der Referenzpunktsymbole wird durch <strong>ein</strong>e<br />
152
Rotation auf der Kugeloberfläche und somit durch <strong>ein</strong>en Rotationsknoten beschrieben.<br />
Da die Beschreibung der <strong>ein</strong>zelnen Referenzpunktsymbole durch Benutzeraktionen<br />
geändert werden kann und die Symbole folglich unterschiedliche <strong>graphische</strong> Attribute<br />
haben können, muß <strong>für</strong> jeden Referenzpunkt der symbolbeschreibende Teilszenengraph<br />
neu angelegt werden.<br />
Der letzte Teilszenengraph der Referenzkugelbeschreibung dient zur Festlegung der<br />
Oberflächenbeschaffenheit der Kugel. In Abbildung 4.16. ist der Wurzelknoten dieses<br />
Szenengraphen mit Kugelgruppe bezeichnet. Der Szenengraph wird vom Konstruktor<br />
der oben beschriebenen Klasse ViewSphere angelegt und soll hier nicht näher<br />
erläutert werden.<br />
5.3. Erweiterungsmöglichkeiten<br />
5.3.1. Praktischer Einsatz<br />
Mit INQUERY verfügt der Prototyp über <strong>ein</strong> <strong>Retrieval</strong> System, dessen Stärken in<br />
der Verarbeitung wenig strukturierter <strong>Volltext</strong>datenbanken liegen. Durch den automatischen<br />
Parser-Prozeß ist es möglich, das Inhaltsnetz ohne menschliches Zutun<br />
zu generieren.<br />
Ein möglicher praktischer Einsatz des LyberWorld-Prototypen sollte bei Datenbanken<br />
mit diesen Eigenschaften liegen. Als konkrete Beispiele lassen sich Zeitungsarchive<br />
oder die Newsgruppen des Usenets nennen. Die Information, die in den Ausgaben<br />
<strong>ein</strong>er Tageszeitung enthalten ist, ist nicht stark strukturiert. Artikel bestehen<br />
im allgem<strong>ein</strong>en aus Text und Titel. Zusätzliche Informationen wie Autor, Rubrik,<br />
Ersch<strong>ein</strong>ungsdatum haben <strong>für</strong> <strong>ein</strong>e Suche eher nachgeordnete oder <strong>ein</strong>grenzende<br />
Bedeutung. Verweise auf verwandte Artikel existieren nur in Ausnahmefällen. <strong>Eine</strong><br />
Recherche nach Artikeln, die <strong>ein</strong> bestimmtes Themengebiet betreffen, ist ohne <strong>Retrieval</strong>system<br />
undenkbar.<br />
Ähnliches trifft bei Veröffentlichungen in den Newsgruppen zu. Täglich ersch<strong>ein</strong>t<br />
<strong>ein</strong>e große Menge von Artikeln, deren jeweilige Diskussionsthemen und Inhalte sich<br />
dynamisch entwickeln. <strong>Eine</strong> manuelle Erfassung und Klassifizierung ist durch die<br />
große Informationsmenge und deren unberechenbare Entwicklung wirtschaftlich<br />
nicht vertretbar. Andererseits stellen sie Foren dar, in die die Kompetenz vieler<br />
Fachleute und große praktische Erfahrung <strong>ein</strong>fließen.<br />
<strong>Eine</strong> Anbindung des Prototypen erfordert lediglich <strong>ein</strong>e Anpassung der INQUERY-<br />
Parser an spezielle Gegebenheiten des Datenmaterials. Artikel der Newsgruppen,<br />
153
die Antworten auf vorhergehende Artikel geben, inkludieren diesen häufig. Diese<br />
Inklusionen sollten entfernt und durch Verweise ersetzt werden. Innerhalb von LyberWorld<br />
sind k<strong>ein</strong>e substantiellen Änderungen nötig.<br />
5.3.2. Weitere Datenbanken<br />
Im Laufe der weltweiten Vernetzung der Computer ist der Zugriff auf viele Datenbanken<br />
von <strong>ein</strong>em <strong>ein</strong>zelnen Arbeitsplatz aus möglich. Durch Integration verschiedener<br />
Datenbanken in <strong>ein</strong>e konsistente, fertig konfigurierte Arbeitsumgebung wird<br />
der Bedienungskomfort erhöht.<br />
Dem Benutzer kann der Zugriff auf verschiedene Datenbanken durch <strong>ein</strong>e Erweiterung<br />
der Dokumentenraummetapher ermöglicht werden. Mehrere Datenbanken<br />
können innerhalb der LyberWorld-Umgebung durch mehrere Dokumentenräume<br />
repräsentiert werden. Analog zum jeweils aktuellen Ring, Element und Suchwort<br />
kann <strong>ein</strong>e aktuelle Datenbank in Form <strong>ein</strong>es hervorgehobenen Dokumentenraumicons<br />
<strong>ein</strong>geführt werden.<br />
5.3.3. Weitere Ein- und Ausgabegeräte<br />
Beim Entwurf des Prototypen ist der Neu- und Weiterentwicklung von Ein- und<br />
Ausgabegeräten Rechnung getragen worden. Innerhalb des Prototypen werden logische<br />
Interaktionen verarbeitet, die durch Treibermodule <strong>für</strong> das jeweilige Eingabegerät<br />
ausgelöst werden. Für neue Eingabegeräte ist aus diesem Grund lediglich <strong>ein</strong><br />
Treiber zu implementieren, der <strong>ein</strong>er Eingabeaktion des Gerätes die gewünschte logische<br />
Aktion zuordnet.<br />
Bei <strong>ein</strong>er Anbindung des Datenhandschuhs müßte das zu implementierende Treibermodul<br />
Gesten definieren und erkennen, die den Aktionen Rotieren, Expandieren,<br />
Schieben usw. intuitiv entsprechen.<br />
Die Einbindung neuartiger Ausgabegeräte wie Crystal Eyes oder Eye Phones ist<br />
durch die Verwendung des Visualisierungswerkzeugs Inventor <strong>ein</strong>fach möglich.<br />
Ohne den Prototypen modifizieren zu müssen, kann durch Auswahl und Konfiguration<br />
des verwendeten Renderes <strong>ein</strong>e stereoskopische Darstellung genauso <strong>ein</strong>fach<br />
<strong>ein</strong>gestellt werden, wie <strong>ein</strong>e Druckausgabe des Szenengraphen.<br />
5.3.4. Konfigurierbarkeit<br />
Das Ersch<strong>ein</strong>ungsbild des Prototypen sollte so weit möglich individuell an die Bedürfnisse<br />
des Benutzers anpaßbar s<strong>ein</strong>. Der Prototyp sollte um <strong>ein</strong> Werkzeug erwei-<br />
154
tert werden, mit dem Systemparameter wie Fenstergröße, Farben, Zeichensätze, Beschriftungen,<br />
Tastaturbelegung, Animationsgeschwindigkeit und ähnliches<br />
interaktiv <strong>ein</strong>gestellt werden können.<br />
5.3.5. LyberInfostore<br />
Im Laufe der Arbeit mit den Werkzeugen Kontextbaum und Relevanzkugel tritt oftmals<br />
das Bedürfnis auf, <strong>ein</strong>en erreichten Dialogzustand abzuspeichern um später die<br />
Arbeit an <strong>ein</strong>em gewünschten Punkt fortzusetzen. Weiter kann dem Benutzer die<br />
Möglichkeit gegeben werden, <strong>ein</strong>zelne Dokumente oder auch ganze Gruppen von<br />
Dokumenten zu späteren Sichtung ’zur Seite zu legen’.<br />
Der Prototyp sollte um <strong>ein</strong>e Metapher erweitert werden, die das Speichern von Objekten<br />
ermöglicht. Denkbar ist <strong>ein</strong> Schrank mit verschiedenen Schubladen, in denen<br />
die verschiedenen Objekte aufbewahrt werden können.<br />
Folgende Objekte sollten speicherbar s<strong>ein</strong>:<br />
<br />
<br />
<br />
<br />
<br />
Datenbank<br />
Die Speicheraktion wird auf den Dokumentenraum angewendet.<br />
Suchdialog<br />
Die Speicheraktion wird auf den Kontextbaum angewendet.<br />
Themensegmentierung<br />
Die Speicheraktion wird auf die Relevanzkugel angewendet<br />
Dokumente<br />
Die Speicheraktion wird auf <strong>ein</strong> oder mehrere Dokumente<br />
angewendet.<br />
Konfiguration<br />
Die Speicheraktion wird auf das Konfigurationswerkzeug<br />
angewendet.<br />
5.3.6. Ein besserer LyberRoom<br />
Nach <strong>ein</strong>er erfolgreichen Anwendung der Werkzeuge des Prototypen sollte der Benutzer<br />
<strong>ein</strong>ige interessante Dokumente der Datenbank gefunden haben. Diese will<br />
der Benutzer möglicherweise nicht nur lesen oder sichten, sondern nach eigener<br />
Maßgabe weiterverarbeiten. Innerhalb des Dokumentenraums sollten Methoden zur<br />
Verfügung stehen, die Dokumente ausdrucken und sie als Textdatei abspeichern.<br />
155
Bei der Anzeige <strong>ein</strong>es Dokuments innerhalb des LyberRoom wäre es weiter wünschenswert,<br />
wenn die vom <strong>Retrieval</strong>system als relevant <strong>ein</strong>gestuften Begriffe hervorgehoben<br />
dargestellt wären. Der Benutzer könnte so eventuellen Fehl<strong>ein</strong>schätzungen<br />
auf die Spur kommen oder, falls Baum oder Kugel aktiviert sind, durch<br />
Selektion <strong>ein</strong>es Begriffs dessen Hinzufügung in das aktivierte Werkzeug auslösen.<br />
Da der Dokumentenraum als Metapher <strong>für</strong> die gesamte Datenbank steht, sollte er die<br />
Möglichkeit bieten, Statusinformationen der Datenbank abzurufen. Dazu könnten<br />
der Name der Datenbank, Zugriffskosten, technische Informationen, Umfang des<br />
Inhaltsraums, Umfang der Kontextmenge und ähnliches gehören.<br />
156
6. Bibliographie<br />
[AKEL89]<br />
The Silicon Graphics 4D/240GTX Superworkstation<br />
K. Akeley<br />
IEEE Computer Graphics and Applications 9(4) July 1989, 71–83<br />
[BELKIN92] Information filtering and information retrieval: Two sides of the same<br />
coin?<br />
Nicholas J. Belkin, W. Briuce Croft<br />
Communications of the ACM, December 1992, Vol 35, No. 12<br />
[BORD93]<br />
A dynamic Gesture Language and Graphical Feedback for Interaction<br />
in a<br />
3D User Interface<br />
M. Bordegoni, M. Hemmje<br />
EUROGRAPHICS ’93 Conference Issue, September 1993<br />
[BRON]<br />
Taschenbuch der Mathematik<br />
Bronst<strong>ein</strong>, Semendjajew<br />
Verlag Harri Deutsch<br />
Thun und Frankfurt/Main<br />
[CACM84]<br />
An Interview with Andries van Dam<br />
Communications of the ACM 27(7), August 1984<br />
[CHAR91]<br />
Baysian Networks without Tears<br />
Eugene Charniak<br />
AI Magazine, 14(4), Winter 1991<br />
[CROFT91]<br />
Evaluation of an Inference Network–Based <strong>Retrieval</strong> Model<br />
Howard Turtle, W. Bruce Croft<br />
ACM Transactions on Information Systems, Vol 9, No. 3, July 1991,<br />
Seite 187–222<br />
[CROFT92]<br />
The INQUERY <strong>Retrieval</strong> System<br />
James. P. Callan, W. Bruce Croft, Stephen M. Harding<br />
Proceedings of the Third International Conference on Database<br />
and Expert Systems, September 1992<br />
157
[ENC88]<br />
Computer Graphics<br />
J. Encarnaçao, W.Straßer<br />
3. Auflage, Oldenbourg, 1988<br />
[ENDN89]<br />
Endnutzer und Voltextdatenbanken<br />
U. Riehm, K. Böhle, B. Wingert, I. Gabel–Becker, M. Loeben<br />
Kernforschungszentrum Karlsruhe, 1989<br />
[FELGER92] How interaktive visualisation can benefit from multidimensional input<br />
devices<br />
W. Felger<br />
Visual Data Interpretation, Proc. SPIE 1668, 1992<br />
[FOLEY90]<br />
Computer Graphics – Principles and Practice<br />
Foley, van Dam, F<strong>ein</strong>er, Hughes<br />
Second Edition, Addison Wesley, 1990<br />
[HEMMJE]<br />
Expeditionen in Informationsräume: Zur Konzeption <strong>ein</strong>es <strong>graphische</strong>n<br />
Informationssystems auf der Basis dreidimensionaler Visualisierungen<br />
M. Hemmje, H.-D. Boecker, U. Thiel<br />
ISI ’92 Proc. of 3rd International Symposium for Information Science,<br />
Saarbrücken, November 1992<br />
[HEMMJE92] <strong>Eine</strong> inhaltsorientierte, intuitive 3D–<strong>Benutzerschnittstelle</strong> <strong>für</strong><br />
Information–<strong>Retrieval</strong>– Systeme<br />
Matthias Hemmje<br />
Gesellschaft <strong>für</strong> Mathematik und Datenverarbeitung, 1991<br />
[INVEN92]<br />
IRIS Inventor Programming Guide. Volume I: Using the Toolkit<br />
Silicon Graphics Computer Systems, SGI, 1992<br />
[KORF91]<br />
Too see or not to see: Is that the query?<br />
R.R. Korfhage<br />
Proceedings of SIGIR ’91, Chicago, pp. 134–141, ACM press, 1991<br />
[LARKIN87] Why a Diagram is (Sometimes) Worth Ten Thousend Words<br />
J.H. Larkin, H.A. Simon<br />
Cognitive Science 11, 1987<br />
158
[LEX79]<br />
[MACH78]<br />
[MAU89]<br />
[OLSEN91]<br />
[PARC]<br />
[ROB91]<br />
Lex, a lexikal analyzer generator<br />
M. E. Lesk und E. Schmitt<br />
In UNIX Programmers Manual, Bell Telephone Laboratories Inc.<br />
Murray Hill, New York, 1979<br />
A Brief Personal History of Computer Graphics<br />
C. Machover<br />
Computer 11(11), November 1978, 38–45<br />
M. L. Mauldin<br />
Information retrieval by text skimming<br />
PhD. theses, School of Computer Science<br />
Carnegie Mellon University, Pittsburg, PA, 1989<br />
Visualisation of a document collection: The VIBE System.<br />
K.A. Olsen, R.R. Korfhage<br />
Report LIS033/IS91001, School of Libary and Information Science,<br />
University of Pittsburgh, 1991<br />
The Information Visualizer, an Information Workspace<br />
Stuart K. Card, George G. Robertson, Jock D. Mackinlay<br />
Xerox Palo Alto Research Center<br />
In: SIGCHI ’91 Conference Proceedings, pp 181–198, ACM press,<br />
1991<br />
Cone Trees: Animated 3D Visualizations of Hierachical Information<br />
George G. Robinson, Jock D. Mackinlay, Stuart K. Card<br />
Xerox Palo Alto Research Center<br />
In: SIGCHI ’91 Conference Proceedings, pp 189–194, ACM press,<br />
1991<br />
[SILICON91] Graphics Libary Programming Guide<br />
Silicon Graphics Computer Systems, SGI, 1991<br />
[SPACE91]<br />
[STRAU92]<br />
Spaceball<br />
Spaceball Technologies Inc. 1991<br />
An Objekt–Oriented 3D Graphics Toolkit<br />
P.S. Strauss, R.Carey<br />
Computer Graphics (SIGGRAPH’92 Proceedings) 26(2) S.341–347,<br />
1992<br />
159
[SUTH63]<br />
Sketchpad: A Man–Machine Graphikal Communication System<br />
I.E. Sutherland<br />
Proceedings of the Spring Joint Computer Conference, Baltimore,<br />
1963<br />
160
161
162
163
164
165
166
167
168
169