21.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!