-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren zum
Navigieren durch, zum Präsentieren
von und zum Interagieren mit Informationen in Online-Computersystemen.
-
Bestehende
Verfahren für
verteilte, Multibenutzer-Informationssysteme
(d. h. das World Wide Web WWW) haben primär eine textliche Beschaffenheit
und bleiben zu großen
Teilen erfahrenen Computerbenutzern vorbehalten. Während Text
eine gute Methode zum Beschreiben von Informationen ist, stellt
er nicht den besten Weg zum Zugriff auf, zum Präsentieren von oder zum Navigieren
durch Informationen dar. Beispielsweise bestehen heutzutage Webseiten
im Internet hauptsächlich
aus zweidimensionalem Text und Bildern. Ein Beispiel für eine 2D-Webseite
ist die Homepage des United States Patent Office, auffindbar unter "http://www.uspto.gov".
-
Zum
Navigieren durch die Informationen wird dem Benutzer eine "Webseite" präsentiert,
die eine Anzahl von Textelementen enthält, die die Benutzer lesen
müssen
und zwischen denen sie sich entscheiden müssen. Nachdem der Benutzer
durch Anklicken eines "Hotlinks" (beispielsweise
hervorgehobener Text) eine Auswahl trifft, erscheint eine neue Webseite,
die einen anderen Auswahlsatz enthält und der Prozess wird wiederholt.
Ein Problem dieser Methode ist, dass es für den Benutzer sehr schwierig
ist, die Gesamtorganisation oder Struktur der Informationen zu erkennen.
Falls die Informationen eine hierarchische Struktur aufweisen, sind
die praktischen Grenzen für
diese Navigationsmethode nur ein paar Tausend Elemente. Daneben
wird entweder die Anzahl der Auswahlmöglichkeiten auf dem Bildschirm
exzessiv oder die Suchtiefe wird so tief, dass die Benutzer frustriert
werden und sich verlieren.
-
In
diesen Systemen sind sich einzelne Benutzer oft nicht klar über die
Präsenz
Anderer im Informationsraum. Das Modell für Online-Dienste ist primär das Mehrbenutzermodell
einer virtuellen Maschine (time-sharing virtual machine model),
bei dem jeder Benutzer dazu gebracht wird, zu denken, dass er die
einzige Person ist, welche die Maschine verwendet. Die resultierende
Wahrnehmung einer Isolierung steht im Kontrast zur täglichen
Erfahrung der Menschen, Informationen als eine öffentliche, soziale Erfahrung
wahrzunehmen und aufzunehmen.
-
Gemäß der Erfindung
ist ein Verfahren zum Befähigen
eines Benutzers zum Navigieren durch und zum Zugriff auf Informationsobjekte
in einem strukturierten Präsentationsraum,
wobei die Informationsobjekte in einem hierarchisch strukturierten
Format gespeichert sind und wobei ein Basisinformationsobjekt ein
Elterninformationsobjekt und zumindest ein Kindinformationsobjekt
aufweisen kann, gekennzeichnet durch
- (i) Modellieren
der Informationsobjekte, so dass sie innerhalb des strukturierten
Präsentationsraums
sind, wobei das Basisinformationsobjekt innerhalb des Elterninformationsobjekts
angeordnet ist und das Kindinformationsobjekt innerhalb des Basisinformationsobjekts
angeordnet ist;
- (ii) Bestimmen eines Betrachtungspunktes innerhalb des Präsentationsraumes,
- (iii) Bewegen des Betrachtungspunktes innerhalb des strukturierten
Präsentationsraumes
als Reaktion auf eine Eingabe des Benutzers, wobei der Betrachtungspunkt
zwi schen dem Basisinformationsobjekt, dem Elterninformationsobjekt
und dem Kindinformationsobjekt bewegt werden kann und wobei die
Skalierung des Betrachtungsvolumens des Betrachtungspunktes relativ
zur Skalierung des Informationsobjekts basiert ist, das den Betrachtungspunkt
umfasst, und
- (iv) Anzeigen der Informationsobjekte in einer multidimensionalen
perspektivischen Ansicht entsprechend dem Betrachtungspunkt, wobei
jedes Kindinformationsobjekt als innerhalb des Basisinformationsobjekts liegend
angezeigt wird und das Basisinformationsobjekt als innerhalb des
Elterninformationsobjekts liegend angezeigt wird.
-
Ebenso
umfasst gemäß der Erfindung
ein System zum Befähigen
eines Benutzers zum Navigieren durch und zum Zugreifen auf Informationsobjekte
in einem strukturierten Präsentationsraum:
- (a) ein Speichermittel zum Speichern von Informationen,
wobei die Informationsobjekte in einem hierarchisch strukturierten
Format gespeichert sind, wobei ein Basisinformationsobjekt ein Elterninformationsobjekt
und zumindest ein Kindinformationsobjekt aufweisen kann,
- (b) eine Anzeige zum Anzeigen visueller Informationen für den Benutzer,
- (c) ein Eingabemittel zur Aufnahme einer Eingabe vom Benutzer,
und
- (d) ein Verarbeitungsmittel, dadurch charakterisiert, dass das
Verarbeitungsmittel aufgebaut ist zum:
- (i) Modellieren der Informationsobjekte, so dass sie innerhalb
des strukturierten Präsentationsraumes
sind, wobei das Basisinformationsobjekt innerhalb des Elterninformationsobjekts
angeordnet ist und das Kindinformationsobjekt innerhalb des Basisinformationsobjekts
angeordnet ist,
- (ii) Bestimmen eines Betrachtungspunktes innerhalb des Präsentationsraumes,
- (iii) Reaktion auf das Eingabemittel, Bewegen des Betrachtungspunktes
innerhalb des strukturierten Präsentationsraumes,
wobei der Betrachtungspunkt zwischen dem Basisinformationsobjekt,
dem Elterninformationsobjekt und dem Kindinformationsobjekt bewegt
werden kann und wobei die Skalierung des Betrachtungsvolumens des
Betrachtungspunktes relativ zur Skalierung des Informationsobjektes
basiert ist, das den Betrachtungspunkt enthält, und
- (iv) Anzeigen der Informationsobjekte auf der Anzeige in einer
multidimensionalen perspektivischen Ansicht entsprechend dem Betrachtungspunkt,
wobei jedes Kindinformationsobjekt als innerhalb des Basisinformationsobjekts
liegend angezeigt wird und wobei das Basisinformationsobjekt als
innerhalb des Elterninformationsobjekts liegend angezeigt wird.
-
Die
Erfindung besteht aus einem System und einem Verfahren zum Präsentieren
und zum Navigieren durch hierarchisch strukturierte Informationen.
Die Erfindung bezieht die hierarchische Struktur der Informationen
auf die räumlichen
Attribute der grafischen Elemente, welche die Informationen repräsentieren.
Das Ergebnis ist eine grafische "Multiauflösungs"- Präsentation,
bei der die Größe eines
grafischen Objekts eine Funktion des Hierarchielevels des entsprechenden
Informationselements ist und bei der die Position eines grafischen
Objektes eine Funktion der Beziehungen zwischen Informationselementen
ist. Das Ergebnis ist eine "Schachtelung" von grafischen Objekten,
die der hierarchischen Struktur der Informationen entspricht. Diese Schachtelung
erlaubt es, die Beziehungen zwischen Informationselementen besser
darzustellen und sie dem Benutzer besser zugänglich zu machen.
-
Die
Anmeldung dieser Erfindung verwendet eine "virtuelle Welt"-Metapher, bei welcher der Benutzer als
Betrachtungspunkt oder als virtuelle Figur in einer dreidimensionalen
Welt repräsentiert
wird und bei der die Objekte in der Welt Aspekte von Informationen
repräsentieren.
Die Präsenz
des Benutzers in dem Informationsraum kann als grafisches Objekt
repräsentiert
werden. Diese grafische Repräsentation
des Benutzers wird als "virtuelle
Figur" ("Avatar") bezeichnet. Der
Benutzer navigiert durch die Informationen, indem er seinen Betrachtungspunkt
oder seine virtuelle Figur durch die Szenerie bewegt. Die Position
der virtuellen Figur in dem Präsentationsraum
spezifiziert die momentan interessierende Information.
-
Die
Erfindung wird nun beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben, wobei:
-
1 ist
eine Übersicht
des Systems.
-
2 ist
ein schematisches Diagramm eines Knotens, wie er in der Datenbasis
abgespeichert ist.
-
3 ist
ein Flussdiagramm einer Funktion zum Zugriff auf die Datenbasis.
-
4 ist
ein Flussdiagramm einer anderen Funktion zum Zugriff auf die Datenbasis.
-
5 ist
ein Flussdiagramm einer anderen Funktion zum Zugriff auf die Datenbasis.
-
6 ist
eine schematische Darstellung des Präsentationsraumes.
-
7 ist eine schematische Darstellung von
perspektivischen und orthografischen Transformationen.
-
8 ist
ein Flussdiagramm eines Ereignisbehandlers.
-
9 ist
ein Beziehungsdiagramm des Ereignisbehandlers.
-
10 ist
ein Flussdiagramm, das angibt, wie ein Ereignis behandelt wird.
-
11 ist
ein Flussdiagramm, das angibt, wie ein Regions-/Grenzereignis behandelt wird.
-
12 ist
ein Flussdiagramm, das angibt, wie ein Rendering-Ereignis behandelt
wird.
-
13 ist
ein Flussdiagramm des Erstellens des Präsentationsraumes.
-
14 ist
ein Flussdiagramm eines Erweiterns des Präsentationsraumes.
-
15 ist
ein Flussdiagramm, das angibt, wie jedes Visualisierungselement
erweitert wird.
-
16A ist eine zweidimensionale Darstellung der
Eltern-Kind-Hierarchie.
-
16B ist eine zweidimensionale Darstellung von
Visualisierungselementen.
-
17A–17D sind zweidimensionale Darstellungen des Betrachtungsvolumens.
-
18 ist
ein schematisches Diagramm einer bevorzugten Hardwarekonfiguration.
-
19A ist ein Knoten- und Beziehungsdiagramm.
-
19B ist ein hierarchisches Modell von Knoten mit
einer Beziehung A.
-
19C ist ein hierarchisches Modell von Knoten mit
einer Beziehung B.
-
Eine
bevorzugte Ausführungsform
der Erfindung wird nun im Detail beschrieben. Unter Bezugnahme auf
die Zeichnungen bezeichnen in den Ansichten gleiche Nummern gleiche
Teile.
-
Die
Hierarchie der vom Benutzer zu erkundenden Informationen wird als
Hintergrund für
die Beschreibung der Erfindung in Hinblick auf Knoten und Beziehungen,
wie in 19A gezeigt, diskutiert. Ein
Knoten ist eine Struktur, die eine Informationseinheit enthält und die
durch eine oder mehrere Beziehungen zu anderen Knoten in Beziehung
steht. Die 19A zeigt ein Informationssystem,
das die Knoten 1, 2, 3, 4, 5, 6 und 7 umfasst, die zueinander über die
Beziehungen A, B und C verknüpft
sind oder in Beziehung stehen. Aus einem einzigen Informationssystem
können
eine oder mehrere Hierarchien modelliert werden. Beispielsweise
zeigt die 19B das Hierarchiemodell der
Knoten in 19A mit der Beziehung A. Entsprechend
zeigt die 19C das Hierarchiemodell der
Knoten in 19A mit der Beziehung B.
-
Die 1 zeigt
eine Gesamtstruktur für
das System. Der Benutzer gibt Parameter über ein Eingabemittel ein, 110.
Die Parameter können
Informationen wie den Namen des zu erkundenden Informationssystems
und die Art der interessierenden Informationen und vielleicht einen
Startpunkt für
die Erkundung enthalten. Die Parameter werden von dem System verwendet,
um ein Speichermittel oder eine Datenbasis auszuwählen, 120.
Nachdem eine Datenbasis ausgesucht wurde, wird auf die Datenbasis
zugegriffen, 130, wie weiter unten und in der 3 weitergehend
beschrieben wird. Von dem Datenbankzugriff hat das System eine Liste
von Knoten, die verwendet werden, um einen Eingangsinformationsraum
zu erstellen, 140, der weiter unten und in der 4 beschrieben
wird. Das System erstellt dann einen Betrachtungspunkt in dem Präsentationsraum,
der als virtuelle Figur bezeichnet wird, 150, und weiter
unten und in der 5 beschrieben wird. Die virtuelle
Figur wird der Visualisierungsstruktur hinzugefügt, 160, und der Benutzer
wird dann ermächtigt,
in dem Präsentationsraum
durch die Verwendung des Eingabemittels und eines Bildausgabemittels
zu interagieren, 170.
-
Das
Eingabemittel ist ein Gerät
wie eine Tastatur, eine Maus oder ein Spaceball, das Signale basierend
auf Aktionen des Benutzers bereitstellen kann. Ein Spaceball ist
ein von Spatial Data Systems, Inc. erhältliches Eingabegerät, das eine
Bewegung in jede der drei Dimensionen x, y und z erlaubt. Es erlaubt
auch Orientierungsänderungen
um jede der drei Achsen: Rollen, Neigen und Gieren.
-
Ein
Bildausgabemittel ist ein Gerät,
das Bilder als Ausgabe ausgeben kann. Beispielsweise ist eine Anzeige
ein Bildausgabegerät,
das Informationen in sichtbarer Form bereitstellt, wie auf einem
Bildschirm einer Kathodenstrahlröhre
oder einem Flachbildschirm. Das von der Anzeige gezeigte sichtbare
Muster ist ein "Bild".
-
Ein
Systemaufbau zum Ausgestalten der Erfindung ist in 18 dargelegt.
Es ist ein Computer 1801 gezeigt, der enthält: eine
Videoanzeige 1820, eine Tastatur 1830, eine Maus 1840,
ein Spaceball 1841, eine zentrale Verarbeitungseinheit 1810,
die ein Intel 486-, ein Pentium- oder ein Pentium-Pro-Prozessor etc. sein kann
und die in Verbindung mit einem Speicher 1811 verwendet
werden kann und eine Festplatte 1812. Der Computer 1801 kann
an ein Netzwerk angeschlossen sein. Das Netzwerk kann einen Speicher
für eine
Datenbasis 1850 enthalten und kann auch eine Datenbasis-Verarbeitungseinheit 1860 enthalten.
Obwohl diese Konfiguration als die bevorzugte Ausführungsform
offenbart ist, kann sie auch durch äquivalente Hardwaresysteme
oder Konfigurationen ersetzt werden.
-
1. Speichermittel
-
Das
Speichermittel ist ein Informationsspeicher für den Informationsraum und
Mittel zum Zugriff auf eine solche Information. Es gibt eine Anzahl
von Möglichkeiten,
wie die Information in dem Speicher erstellt und aktualisiert wird.
In der bevorzugten Ausführungsform
ist der Speicher eine Standarddatenbasis, bei der ein Datensatz
der Datenbasis Daten enthält,
die den Knoten und seine Beziehung zu anderen Datensätzen in der
Datenbasis beschreibt. Die Information in dem Speichermittel kann
statisch sein oder sie kann sich verändern, während das System verwendet
wird. Beispielsweise kann das Spei chermittel Daten entsprechend
Sensorwerten enthalten. Veränderungen
der Sensorwerte über
die Zeit können
durch Verändern
der Inhalte eines Knotens in dem Speichermittel nachvollzogen werden
oder sie können
durch eine Addition oder ein Löschen von
Knoten über
der Zeit nachvollzogen werden. Eine schematische Darstellung eines
Knotens in der Datenbasis ist in der 2 gezeigt.
Ein Knoten hat eine einheitliche Kennung 210. Die Information über den
Knoten kann auch seine Elternkennung 220, seine Kinderkennung 230 und
Daten umfassen, die den Knoten charakterisieren 240, 250, 260 und 270.
-
In
der bevorzugten Ausführungsform
existieren Funktionen, um auf die Information im Speichermittel zuzugreifen.
Diese Funktionen können
durch ein Datenbasisverarbeitungsmittel oder alternativ durch das
Verarbeitungsmittel ausgeführt
werden, das weiter unten im Abschnitt 2 beschrieben wird. Eine Funktion,
die zu erläuternden
Zwecken findNodes() genannt wird, empfängt Eingabemerkmale in der
Form von Parametern zur Auswahl eines oder mehrerer Knoten vom Speichermittel.
Beispielsweise können
die Merkmale Knoten spezifizieren, für die die Elternkennung "0", Null oder leer (Toplevel-Knoten) ist.
Das Speichermittel gibt einen Satz von Knoten zurück, die
durch grafische Elemente innerhalb des Präsentationsraumes zu präsentieren
sind. Die 3 ist ein Flussdiagramm, das
zeigt, wie diese Funktion implementiert werden kann. Zuerst bekommt das
System Parameter, die den Bereich der gewünschten Knoten bestimmt, 310.
Dann generiert das System eine Anfrage, wie einen SQL-Aufruf, 320.
Die Funktion erhält
die Ergebnisse, 330, und generiert eine Liste von Knoten, 340,
die an den Benutzer zurückgegeben
werden, 350. Das Interface für findNodes() ist im Folgenden angegeben:
NodeIDhist*findNodes(selectionCriteriaList)
-
Eine
andere Funktion empfängt
als Eingabe einen der Knoten, die von findNodes() zurückgegeben werden
und Parameter, die bestimmen, ob ein Elternteil oder ein Kind angefordert
wird und die die zu verwendende Beziehung bestimmt. Diese Funktion,
zu erläuternden
Zwecken followRelation() genannt, gibt das Elternteil oder das Kind
des empfangenen Knotens zusammen mit einigen Beziehungen zurück. Der
die Art der Beziehung bestimmende Parameter wird verwendet, da mehr
als eine hierarchische Organisation des Informationsraumes vorhanden
sein kann. Das Elternteil eines Knotens können zwei verschiedene Knoten
sein, falls der Informationsraum mehr als eine Organisation enthält.
-
Beispielsweise
würde in
einer "Familienbaum"-Datenbasis jeder
Datensatz den Namen einer Person, den Namen ihres biologischen Vaters
und den Namen ihrer biologischen Mutter enthalten. Eine hierarchische Ansicht
der Datenbasis ist die "Vater-Kind"-Ansicht der Datenbasis,
während
eine andere hierarchische Ansieht der gleichen Datenbasis die "Mutter-Kind"-Ansicht ist. In diesem Beispiel kann
der Parameter festlegen, welches biologische Elternteil von Interesse
ist. Die zweite Funktion gibt entweder den Elternknoten, die Kinderknoten
oder keine Knoten zurück.
Falls keine Knoten zurückgegeben
werden, hat der an die zweite Funktion gelieferte Knoten keine Knoten,
die der angefragten Anforderung entsprechen (d. h. kein Elternteil
oder kein Kind existiert).
-
Die 4 ist
ein Flussdiagramm, das zeigt, wie followRelation() implementiert
sein kann. Die Funktion empfängt
den Knoten und die Parameter, 410. Die Funktion generiert
dann eine Anfrage, 420 und greift auf die Ergebnisse zu, 430.
Von den Ergebnissen erhält
die Funktion die Elternteile oder die Kinder des Knotens zurück, 440 und
diese Information wird an den Benutzer zurückgegeben, 450. Ein
Beispiel des Interfaces für followRelation()
ist im Folgenden angegeben:
NodeIDList*followRelation(relationName,
parentOrChildFlag, startNodeID)
-
Eine
andere Funktion liefert mehr Information über einen spezifischen Knoten.
Zu erläuternden
Zwecken wird diese Funktion getNodeAttributes() genannt. Die Information,
die zurückgegeben
wird, ist eine Datenstruktur, die Attribute oder Werte für den spezifizierten
Knoten enthält.
Die Attribute oder Werte können auch
eine Ansammlung von Informationen des Kindes des Knotens enthalten.
-
Die 5 ist
ein Beispiel, das zeigt, wie diese Funktion implementiert werden
kann. Die Parameter, die den Knoten bezeichnen und die von dem Knoten
angefragte Information werden an die Funktion geliefert 510.
Die Funktion bestimmt dann, ob eine Anfrage benötigt wird 520. Der
Grund, warum keine Anfrage benötigt werden
könnte,
ist, dass auf die gewünschte
Information bereits durch einen vorherigen Aufruf zugegriffen wurde.
Falls eine Anfrage benötigt
wird, wird eine Anfrage generiert, 530, auf die Ergebnisse
zugegriffen, 540 und eine Liste von Attributen für den Knoten
erstellt, 550. Falls keine Anfrage benötigt wird, wird eine Liste
von Attributen generiert 550. Aus der Liste der generierten
Attribute bestimmt die Funktion, ob eine weitere Information über den
Knoten benötigt
wird, 560. Falls mehr Information benötigt wird, springt die Funktion
wieder zurück
und startet mit der Auswahl von Parametern. Falls keine zusätzliche
Information benötigt
wird, kehrt die Funktion zu dem Benutzer mit den angefragten Informationen
zurück, 570.
Das Interface für
getNodeAttributes() wird im Folgenden angegeben:
NodeStructure*getNodeAttributes
(attributeSpecifiers, nodeID)
-
Bemerkenswert
ist, dass es möglich
ist, die Funktionen followRelation() und getNodeAttriebutes() in einer
einzelnen Funktion zu kombinieren, die eine Liste von Knotenbeschreibungen
zurückgibt,
wobei die Knotenbeschreibung die Eltern/Kind-Information und die
Knotenattributeinformation enthält.
-
2. Verarbeitungsmittel
-
Das
Verarbeitungsmittel führt
drei Aufgaben aus: (1) Erstellen und Aktualisieren des Präsentationsraumes,
(2) Erstellen des Betrachtungspunktes oder der virtuellen Figur
und (3) eine Verarbeitung, die es dem Benutzer erlaubt, in dem Präsentationsraum
durch die Verwendung der virtuellen Figur oder des Betrachtungspunktes
zu interagieren.
-
A. Erstellen und Aktualisieren
des Präsentationsraumes
-
Der
Präsentationsraum
ist konzeptionell ein Baum mit Visualisierungselementen an jedem
Knoten der Baumdarstellung. Der Anfangspräsentationsraum wird durch das
Verarbeitungsmittel erstellt. Bei der bevorzugten Ausführungsform
ist der Präsentationsraum
ein dreidimensionaler Grafikraum mit einem "Szenenursprungsknoten", der den Ursprung
des Raumes definiert. Um den Präsentationsraum
mit Visualisierungselementen zu Füllen, beginnt das Verarbeitungsmittel
mit dem Durchführen
eines Aufrufs an das Speichermittel, das die Funktion findNodes()
verwendet, die in der 3 gezeigt ist. Eine Liste von
Knoten wird durch die erste Funktion zurückgegeben.
-
Wie
weiter unten und in der 13 gezeigt
ist, erstellt das Verarbeitungsmittel ein Visualisierungselement
für jeden
der durch die Funktion 1320 zurückgegebenen Knoten und hängt die
Visualisierungselemente an eine Visualisierungselementenliste an, 1330.
Das Visualisierungselement wird auch als Kind des Szenenursprungs
hinzugefügt, 1340.
Das infoNode-Attribut des Visualisierungselements wird auf die Knotenidentifikation
gesetzt, so dass auf den mit dem Visualisierungselement geknüpften Knoten
einfach zugegriffen werden kann und so dass er einfach identifiziert
werden kann, 1350. Bemerkenswert ist, dass auch die Visualisierungselemente
statisch oder in Echtzeit aktualisiert werden können, so wie die Informationsobjekte
statisch oder in Echtzeit aktualisiert werden können. Beispielsweise kann ein
Visualisierungselement, das datenabhängig ist, sich nicht Verändern, während ein
animiertes Visualisierungselement in Echtzeit aktualisiert wird.
-
-
Um
den Baum oder den Szenenursprung für jeden der von der ersten
Funktion zurück
empfangenen Knoten zu füllen,
erstellt das Verarbeitungsmittel einen hierarchischen Baum für diese Visualisierungselemente,
wie in 6 gezeigt, durch Durchführen von Aufrufen der followRelation(),
die in der 4 gezeigt ist. Wie weiter unten
und in der 14 gezeigt ist, korrespondiert
jedes Visualisierungselement mit einem Knoten in dem Speichermittel
und die Hierarchie der Visualisierungselemente korrespondiert mit
der Hierarchie der Informationsknoten.
-
Eine
Funktion expandVisTree() empfängt
als Eingabe ein Visualisierungselement und den Beziehungstyp der
zu bildenden Information. Auf den Knotentyp wird von dem Visualisierungselement
zugegriffen und er wird in der Knotenkennung 1410 abgespeichert.
Die Funktion followRelation() wird aufgerufen, um eine Liste der
Kinder des Knotens zu erhalten 1420, die in einer Knotenkennungsliste
(nodeIDList) gespeichert ist. Jetzt wird eine kursive Schleife gestartet:
(1) Für
jeden Knoten in der Knotenliste nodeIDList erstellt das Verarbeitungsmittel
ein Visualisierungselement für
den Knoten 1440, (2) von den Toplevel-Visualisierungselementen
wird eine Liste erstellt 1440, 1450, (3) das Knotenkennungsfeld
des Visualisierungselements wird auf die Knotenkennung für einen
Zugriff in der Zukunft gesetzt 1440, (4) die Position und
der Umfang des Kind-Visualisierungselementes wird relativ zu seinem
Eltern-Koordinatensystem
gesetzt, um seine Beziehung mit seinen Geschwister-Visualisierungselementen
zu übertragen,
(5) das Kind wird "skaliert" (d. h. die Größe des Kindes
und all seiner rekursiven Kinder wird um einen Skalierungsfaktor
reduziert), so dass es und alle seine Geschwister in die Region
hineinpassen, die durch das Elternvisualisierungselement definiert
wird 1470, und (6) die Funktion ruft sich selbst auf, um
rekursiv die Kinder des aktuellen Knotens zu erweitern, 1480.
In der bevorzugten Implementierung werden alle der direkten Kinder
des Visualisierungselements um den gleichen Be trag skaliert. Dieser
Betrag wird als "Regionsskalierung" bezeichnet.
-
-
Um
die Konstruktion des Visualisierungsbaumes zu starten, wird jedes
der Ursprungsvisualisierungselemente erweitert, wie durch das folgende
Pseudo-Code-Segment gezeigt:
[1510] for each visElem in rootVisElementList
do
[1520] expandVisTree(visElem, relationName);
end for;
-
Jedes
Visualisierungselement 610, 620, 630, 640, 650, 660 und 670 repräsentiert
eine Region in dem Präsentationsraum.
Die durch ein Visualisierungselement definierte Raumregion enthält Regionen
von Räumen
für alle
Kinder des Visualisierungselements und rekursiv für alle Kinder
der Kinder. Jedes der Visualisierungselemente in dem Präsentationsraum
weist eine affine räumliche
Transformation auf. In der bevorzugten Implementierung ist die affine
räumliche
Transformation eine mathematische Funktion, die durch eine 4 × 4 Transformationsmatrix
abgebildet wird, die zum Standardwerkzeug auf dem Gebiet der Computergrafik
gehört.
-
Die
in der Computergrafik verwendete affine räumliche Transformation ist
detaillierter in Textbüchern wie "Fundamentals of Interactive
Computer Graphics" von
J. D. Foley und A. van Dam, Addison Wesley Publishing Company, Inc.,
1982 beschrieben. Sie ermöglichen
die Verwendung von "hierarchischen
Koordinatensystemen",
bei denen eine Transformation eines Elternkoordinatensytstems alle
Kinderkoordinatensysteme beeinflusst. Eine affine Transformation
ist eine lineare Transformation, die eine parallele Geometrie erhält. Transformationen
wie Skalierung, Translation (Bewegung) und Rotation sind Beispiele
für affine
Transformationen, während
eine perspektivische Ansichtstransformation dies nicht ist. Die
Hierarchie der Visualisierungselemente definiert wiederum eine Hierarchie
von Koordinatensystemen. Wenn ein Visualisierungselement skaliert,
rotiert oder bewegt wird, wird die Transformation alle Kinder des
Knotens und die Kinder der Kinder rekursiv beeinflussen.
-
Aus
den Attributen eines Informationsknotens bestimmten die Verarbeitungsmittel,
wie das Visualisierungselement auf dem Anzeigemittel gerendert werden
wird. Die Visualisierungselemente können Attribute wie Form und
Farbe aufweisen, die ihr Erscheinungsbild definieren. Das Erscheinungsbild
des Visualisierungselements kann auch durch seine vom Betrachtungspunkt
aus gesehen Größe bestimmt
werden. Beispielsweise kann die Größe eines Visualisierungselements
auf dem Anzeigegerät
klein sein, falls es aus einer großen Entfernung gesehen wird,
während
das gleiche Objekt recht klein erscheinen kann, falls es aus der
Nähe gesehen wird.
Falls das Erscheinungsbild eines Visualisierungselements klein ist,
wird eine einfache Wiedergabe gerendert. Falls ein Visualisierungselement
groß erscheint,
kann eine detailliertere Wiedergabe gerendert werden. Außerdem ist
es nicht nötig,
dass ein Visualisierungselement ein sichtbares Erscheinungsbild
hat. Falls es keine mit sich verknüpfte Form hat, wird es mit
nicht wahrnehmbaren Rändern
unsichtbar sein, seine Kinder werden jedoch innerhalb der unsichtbaren
Grenzen ihres Elternteils sichtbar sein.
-
Da
viele Visualisierungselemente innerhalb eines Präsentationsraumes existieren
können,
ist es nicht möglich
oder realistisch, jedes Visualisierungselement in dem Präsentationsraum
zu rendern. Um zu bestimmen, welche Visualisierungselemente gerendert
werden, kann ein "Abpflücken" und ein "Beschneiden" des Präsentationsraumbaumes
durchgeführt
werden. Abpflücken
bedeutet, dass Visualisierungselemente, die außer halb des Betrachtungsvolumens
liegen, nicht gerendert werden. Das Beschneiden von Zweigen des
Baumes ist möglich,
da ein Visualisierungselement seine Kinder komplett eingrenzt. Falls
ein Visualisierungselement außerhalb
des Betrachtungsvolumens liegt, wird der durch das Visualisierungselement
bezeichnete Zweig des Baumes "beschnitten" und nicht gerendert.
-
Die
Bestimmung der Sichtbarkeit von einem Betrachtungspunkt aus ist
wohl bekannt auf dem Gebiet der Grafik. In der bevorzugten Implementierung
hat jedes Visualisierungselement ein definiertes "Hüllvolumen", welches das Visualisierungselement
komplett einschließt.
Das Hüllvolumen
wird dann mit dem Betrachtungsvolumen geschnitten, um die Sichtbarkeit
zu bestimmen. Falls das Hüllvolumen
sich nicht mit dem Betrachtungsvolumen schneidet, wird das Sichtelement
abgepflückt
und der Zweig des Präsentationsraumes
neben dem Visualisierungselement wird beschnitten.
-
B. Erstellen des Betrachtungspunktes
oder der virtuellen Figur
-
Um
den Betrachtungsraum auf dem Anzeigemittel zu rendern, wird ein
Betrachtungspunkt benötigt. Ein
Betrachtungspunkt ist definiert durch (1) einen Ort im Betrachtungsraum,
(2) eine Orientierung, die die Blickrichtung und die Orientierung
des Betrachtungspunktes relativ zu dem Präsentationsraum festlegt (d.
h. einen Sichtachsen-Vektor und einen Vektor, der anzeigt, in welche
Richtung "oben" ist), und (3) das
Betrachtungsvolumen. Das Betrachtungsvolumen ist die Region des
Präsentationsraumes,
die für
das Anzeigemittel gerendert wird. Das Betrachtungsvolumen wird typischerweise
durch ein Betrachtungsfeldattribut und zwei Attribute spezifiziert,
die als "nahe Aufspannebene" und "ferne Aufspannebene" bekannt sind. Das
Betrachtungsvolumen ist als der Bereich definiert, der innerhalb
des Sichtfeldes und zwischen der nahen Aufspannebene und der fernen
Aufspannebene liegt. Wenn der Präsentationsraum
ein dreidimensionaler Raum ist und eine perspektivische Ansichtsprojektion
verwendet wird, ist das Betrachtungsvolumen eine abgeschnittene
Pyramide oder ein Kegelstumpf. Falls eine orthografische Ansichtsprojektion
verwendet wird, wird der Sichtfeldwinkel durch eine Sichtfeldbreite
ersetzt und das resultierende Betrachtungsvolumen ist ein rechteckiges
Parallelepiped.
-
Die 7A und 7B zeigen
einen Präsentationsraum 700,
der eine Anzahl von Visualisierungselementen 710, 720, 730 und 740 enthält. Eine
virtuelle Figur oder ein Betrachtungspunkt ist an der Position 701 angeordnet.
Eine perspektivische Ansichtsprojektion ist in der 7A gezeigt.
Der Winkel bei 702 ist als der Sichtfeldwinkel bekannt.
Die Linie 703, die den Sichtfeldwinkel halbiert, ist als
die Sichtachse bekannt. Die nahe Aufspannebene 770 und
die ferne Aufspannebene 780 (oder Linien in dieser Figur)
stehen senkrecht auf der Sichtachse. Die Position der nahen und
fernen Aufspannebenen sind durch den Abstand von dem Brennpunkt
entlang der Sichtachse spezifiziert. Beispielsweise ist in der 7A bei
einer perspektivischen Transformation das Betrachtungsvolumen der
Bereich, der durch die nahe Aufspannebene 770, die ferne
Aufspannebene 780 und den durch Linien 790 und 775 definierten
Sichtfeldwinkel 702 begrenzt. Wie in 7B bei einer
orthografischen Transformation gezeigt, ist das Betrachtungsvolumen
als der Bereich definiert, der durch die nahe Aufspannebene 770,
die ferne Aufspannebene 780 und die Linien 790 und 775 begrenzt
ist. Während kompliziertere
Betrachtungsvolumen definiert werden können, verwendet die bevorzugte
Implementierung diese Formen von orthografischen und perspektivischen
Ansichtsvolumen.
-
Der
Prozess des Projizierens der Inhalte des dreidimensionalen Betrachtungsvolumens
auf ein ebenes Bild ist auf dem Gebiet der Computergrafik wohl bekannt
und ist in Textbüchern
wie "Fundamentals
of Interactive Computer Graphics" von
J. D. Foley und A, van Dam, Addison Wesley Publishing Company, Inc., 1982
detaillierter beschrieben.
-
Bei
der Erfindung hat der Betrachtungspunkt oder die virtuelle Figur
ein zusätzliches
Attribut "viewScale", welches das Betrachtungsvolumen
skaliert. In der bevorzugten Implementierung wird das viewScale-Attribut
durch eine positive reale Zahl mit einem Startwert von 1,0 dargestellt.
Der Effekt des Kleinermachens der viewScale ist es, zu ermöglichen,
dass kleinere Visualisierungselemente gesehen werden. Wie dies vollzogen wird,
hängt von
dem Typ der verwendeten Ansichtstransformation ab. Bei einer perspektivischen
Ansichtstransformation wird der Abstand von dem Betrachtungspunkt
zu der nahen Aufspannebene durch eine Funktion skaliert: viewScale
(d. h. viewScale*near). In der bevorzugten Implementierung wird
das Verhältnis
der Abstände
der nahen und der fernen Aufspannebene durch Skalieren der beiden
Abstände
der nahen und der fernen Aufspannebene mit der selben viewScale
konstant gehalten. Bei einer orthografischen Ansichtsprojektion wird
die Sichtfeldbreite mit viewScale skaliert. Bei der bevorzugten
Implementierung werden die nahe und die ferne Aufspannebene für die orthografische
Ansichtstransformation in der gleichen Weise skaliert wie bei der perspektivischen
Ansichtstransformation.
-
Ein
Beispiel dafür,
wie die viewScale arbeitet, ist in den
16 und
17 gezeigt. Die
16A zeigt
eine schematische Darstellung eines Elternknotens
1601 und
seiner Kinder
1602,
1603,
1604 und
1605.
Für jeden Knoten
wird wie in
16B dargestellt ein Visualisierungselement
erstellt. Mit je dem Visualisierungselement ist ein Regionsskalenattribut
verknüpft.
Beispielsweise ist die Regionsskalierung für ein Visualisierungselement
1600 1,0,
da dies der komplette Präsentationsraum
ist. Die Ansichtsskalierung für
die anderen Visualisierungselemente sind folgt:
Visualisierungselement | Regionsskalierung |
1600 | 1,0 |
1601 | 0,2 |
1602 | 0,1 |
1603 | 0,2 |
1604 | 0,2 |
1605 | 0,33 |
-
Die 17A zeigt den Betrachtungspunkt und das Betrachtungsvolumen
für den
Fall, dass die Ansichtsskalierung 5,0 ist und die virtuelle Figur
oder der Betrachtungspunkt außerhalb
der Region des Visualisierungselements 1601 liegt. Wenn
die virtuelle Figur in die Region des Visualisierungselements 1601 gelangt, wird
die Ansichtsskalierung mit der mit 1601 verknüpften Regionsskalierung
multipliziert. Mit einer kleineren Ansichtsskalierung erscheinen
nahe Objekte größer und
mit mehr Details, 17B. Wenn die virtuelle Figur als
nächstes
in die Region des Visualisierungselements 1602 gerät, wird
die Ansichtsskalierung weiter reduziert um einen Faktor von 0,1,
so dass weniger Objekte gerendert werden; die Objekte, die gerendert
werden, werden jedoch mit mehr Details gezeigt. Wie in 17D gezeigt, wird die Ansichtsskalierung der virtuellen
Figur durch 0,1 geteilt, wenn die virtuelle Figur 1602 verlässt, wobei
die Ansichtsskalierung zu 1,0 zurückkehrt. Die Ansichtsskalierung
wird auf 0,33 geändert,
wenn es in 1605 hinein gelangt.
-
Eine
virtuelle Figur ist ein Betrachtungspunkt, der auch eine mit ihm
verknüpfte
Darstellung aufweist. In der bevorzugten Implementierung ist eine
virtuelle Figur definiert, die Eigenschaften des Visualisierungselements
und des Betrachtungspunktes kombiniert. Die virtuelle Figur ist
eine animierte Figur oder ein animiertes Icon, das den Benutzer
in dem Präsentationsraum
darstellt. Der Benutzer erkundet das Informationssystem durch Bewegen
der virtuellen Figur durch den Präsentationsraum. Verschiedene
Visualisierungselemente werden in das Betrachtungsvolumen fallen,
wenn die virtuelle Figur sich bewegt. Nur die Visualisierungselemente, die
sich mit dem Betrachtungsvolumen überschneiden, werden auf dem
Anzeigemittel sichtbar werden.
-
Die
virtuelle Figur ist als eine Datenstruktur implementiert, die das
Visualisierungselement durch Hinzufügen einer Ansichtstransformation
oder einer Ansichtsprojektion erweitert. Diese Projektion kann eine
orthografische Projektion sein, die affin ist oder es kann eine
perspektivische Ansichtstransformation sein, die nicht affin ist.
Die Lokalisierung und die Orientierung der virtuellen Figur sind
Eigenschaften die daher rühren, dass
die virtuelle Figur ein Visualisierungselement ist. Da es ein Visualisierungselement
ist, kann es an andere Visualisierungselemente innerhalb des Präsentationsraumes
angefügt
werden. Daher ist die Bewegung der virtuellen Figur relativ zu dem
Koordinatensystem, das durch das Visualisierungselement definiert
ist, an dem die virtuelle Figur angefügt ist. Es ist möglich, dass
mehrere virtuelle Figuren innerhalb eines Präsentationsraumes sind. Die
virtuellen Figuren können
zu einem einzigen Benutzer gehören,
wobei der Benutzer in diesem Fall zwischen virtuellen Figuren hin-
und herschalten kann. Die virtuellen Figuren können auch zu verschiedenen
Benutzern gehören,
für den
Fall, dass mehrere Menschen denselben Informationsraum erkunden. Da
die vir tuelle Figur selbst ein Visualisierungselement ist, können die
virtuellen Figuren für
die anderen virtuellen Figuren sichtbar sein.
-
C. Benutzerinteraktion
in den Präsentationsräumen
-
Der
Benutzer interagiert mit dem System über das Eingabemittel, das
eine Tastatur, eine Maus oder einen Spaceball umfassen kann, jedoch
auf diese nicht beschränkt
ist. Jede Interaktion des Benutzers unter Verwendung des Eingabemittels
generiert ein Ereignis mit einem oder mehreren Attributen, welche
die Eingabe charakterisieren. Ein Ereignis wird durch eine Datenstruktur
repräsentiert,
die zumindest den Typ des Ereignisses anzeigt. Die Datenstruktur
kann erweitert werden, um zusätzliche
Ereignisparameter zu enthalten. Beispielsweise erzeugt ein Tastenanschlag
des Benutzers ein Ereignis mit einem Attribut, das anzeigt, dass eine
Taste gedrückt
wurde und mit einem Attribut, das die bestimmte Taste, die gedrückt wurde
anzeigt. Im Allgemeinen übermitteln
Ereignisse ein bestimmtes Auftreten oder eine bestimmte Situation.
-
Innerhalb
des Verarbeitungsmittels werden Ereignisse von einem "Ereignismanager" behandelt. Ein Ereignismanager
nimmt Ereignisse entgegen und reagiert auf sie unter Verwendung
der in der Ereignisdatenstruktur enthaltenen Information. Wenn ein
Ereignismanager ein Ereignis empfängt, kann er (1) dessen innere Beschaffenheit ändern, (2)
einen Datensatz des aufgetretenen Ereignisses anlegen, (3) eine
Aktion als eine Reaktion generieren oder (4) eine Kombination der
obengenannten Möglichkeiten
ausführen.
-
Die 8 zeigt
ein Flussdiagramm für
einen Ereignismanager. Der Ereignismanager überprüft zuerst, ob Systemereignisse
vorhanden sind, 810. Dies wird typischerweise durch Pollen oder
durch Einreihen von Systemanfragen in einer Warteschlange durchgeführt. Ereignisse
können
in drei Klassen unterteilt werden. Es gibt Benutzerereignisse, die
eine Mausbewegung und ein Drücken
von Tasten einschließen.
Die zweite Klasse sind Regions- oder Grenzereignisse, bei denen
die virtuelle Figur von einem Visualisierungselement oder einer Region
des Präsentationsraumes
sich zu einer anderen bewegt. Der dritte Ereignistyp sind Sichtbarkeitsereignisse,
die auftreten, wenn die Visualisierungselemente entweder mit mehr
oder weniger Details gerendert werden. Beispielsweise wird ein Objekt
größer und
mit mehr Details gerendert, wenn eine virtuelle Figur sich in Richtung
des Objekts bewegt. Umgekehrt wird ein Objekt kleiner und die Details
des Objekts werden reduziert, wenn die virtuelle Figur sich von
dem Objekt wegbewegt. Ein Ereignis kann generiert werden, um anzuzeigen, dass
sich die Detailtiefe ändert
oder geändert
werden muss.
-
Falls
ein Systemereignis empfangen wird, erstellt der Ereignismanager
ein Ereignisobjekt für
das empfangene Ereignis 840. Ein Ereignisobjekt enthält Attribute,
welche die Art des Ereignisses und die Charakteristiken des Ereignisses,
wie einer Mausbewegung oder einen Tastendrucks beschreiben. Der
Ereignismanager bearbeitet dann das Ereignis 850, wie weiter
unten und in den 9 und 10 beschrieben
ist.
-
Falls
kein Ereignis empfangen wird, ruft der Ereignismanager die Prozeduren
auf, um den Bildschirm zu aktualisieren 830. Der Prozess
des Aktualisierens des Bildschirms verwendet Standardrendertechniken
aus dem Gebiet der Computergrafik. Die Strukturen innerhalb des
Präsentationsraumes
einschließlich
der virtuellen Figur werden durchlaufen; an jedem Knoten der Präsentationsgrafik
werden die Koordinatentransformationen angewendet und Zeichenoperationen
werden basierend auf Attributen der Visualisierungselemente (beispielsweise
Form, Farbe, etc.) durchgeführt.
-
Die 9 ist
ein Beziehungsdiagramm von Ereignissen. Ein Ereignismanager 910 greift
auf ein Speichermittel 920, einen aktuellen Präsentationsraum 930 und
eine virtuelle Figur 940 zu. Ein Flussdiagramm des Ereignismanagers
ist in der 10 gezeigt. Der Ereignismanager
kann als Weichenbefehl für
die Ereignisklassen implementiert sein, 1010. Falls das
Ereignis ein Benutzerereignis ist, bestimmt der Ereignismanager
zuerst den aktuellen Status des Systems, 1020, bestimmt
den neuen Status des Systems, 1030, und veranlasst Aktionen,
die dem Statusübergang
entsprechen, 1040. Diese Aktionen können das Erstellen und Löschen von Objekten,
das Ändern
von Objektattributen, das Wechseln von Beziehungen zwischen Objekten
und das Wechseln von lokalen Statusvariablen beinhalten. Der Effekt
dieser Aktionen kann sein, einige Aspekte des Präsentationsraumes zu ändern oder
es kann einige Änderungen
in dem präsentierten
Informationssystem verursachen.
-
Falls
das Ereignis ein Regions- oder Grenzereignis ist, bestimmt das System
wie in der 11 gezeigt zuerst die neue Region, 1110,
und bestimmt die Beziehung zwischen neuen und alten Regionen, 1120.
Dies umfasst die Tiefe des untersten gemeinsamen Visualisierungselements.
Wenn die virtuelle Figur eine Region betritt oder verlässt, muss
das viewScale-Attribut der virtuellen Figur angepasst werden, um
der angesammelten Skalierung (vom Ursprung bis zur aktuellen Region)
der betretenen Region zu entsprechen. Diese Skalierung ermöglicht die
Wahrnehmung der Multiauflösungspräsentation.
Das wird von einer Funktion 1130 ausgeführt, die als Argumente (1)
die neue Region, (2) die Beziehung zwischen den alten und neuen
Regionen und (3) das unterste gemeinsame Visualisierungselement
entgegennimmt. Zusätzlich
zum Anpassen des viewScale- Attributs
der virtuellen Figur kann die Funktion 1130 das Ausführen zusätzlicher
Aktionen veranlassen, wie das Erweitern des Teils der Visualisierungsstruktur,
der innerhalb der neuen Region liegt oder ein Löschen von Visualisierungselementen,
die innerhalb der alten Region liegen.
-
Falls
das Ereignis ein Renderereignis ist, kann das System, wie in 12 gezeigt,
einen Fallunterscheidungsbefehl abhängig von der Art des Renderereignisses 1210 enthalten.
Falls das Ereignis eines ist, das die virtuelle Figur so bewegt,
dass Objekte das Sichtfeld betreten oder verlassen, ruft das System
Funktionen auf, um die Attribute der Objekte von sichtbar zu nicht
sichtbar oder umgekehrt zu verändern.
Das System kann auch Visualisierungselemente hinzufügen oder
löschen 1220,
abhängig
davon, ob sie in dem Sichtfeld sind und es kann auch nach Notwendigkeit
Beziehungen von Visualisierungselementen verändern 1220. Die andere
Art von Ereignis zum Rendern eines Objektes ist das Ändern der
Detailtiefe eines sichtbaren Objekts. Für diese Art von Ereignis bestimmt
das System eine neue Detailtiefe 1230 und ändert dann
die Attribute des Objekts, es erstellt oder löscht Objekte und ändert Beziehungen
zwischen Objekten nach Notwendigkeit. Eine Verwendung dieses Merkmals
ist, dass beim ersten Ausweiten des Visualisierungselementbaumes
eine fixierte Tiefe festgelegt wird, so dass nur die Toplevels erstellt
werden. Wenn der Benutzer die virtuelle Figur durch den Präsentationsraum
bewegt und die Detailtiefe sich verändert, kann das System auf
die Ereignisse durch Ausweiten der Detailtiefe für spezifische Zweige des Präsentationsraumes
oder durch Streichen von gering detaillierten Visualisierungselementen
reagieren, wenn diese außerhalb
der Grenzen der Sichtbarkeit gelangen.
-
Während die
Erfindung detailliert unter spezifischer Bezugnahme auf ihre bevorzugten
Ausführungsformen
beschrieben wur de, ist offensichtlich, dass Variationen und Modifikationen
von ihr ausgeführt
werden können,
ohne dass der beanspruchte Bereich der Erfindung verlassen wird.