Objekte sind Informationsstrukturen, die einen real existierenden Gegenstand darstellen (z.B. eine Oper: Verdis "`La Traviata"'). Objekte werden in Objektklassen eingeteilt, in der ähnliche Objekte liegen (z.B. viele Opern unterschiedlicher Komponisten, die alle zur Objektklasse Opern gehören). Objekte sind die kleinste autonome Einheit der Anwendung. Autonom heißt, daß die Existenz eines Objektes nicht von anderen Objekten abhängig ist. Somit können Objekte in die Anwendung eingefügt oder herausgenommen werden.
HDM-Objekte sind eine Zusammenfassung von Komponenten, die in einer
Baumstruktur angeordnet sind (z.B. die Ouvertüre der Oper "`La Traviata"' von Verdi ist eine Komponente der Oper). Komponenten erben ihren Typ von dem Objekt, zu dem sie gehören. Sie können nur als Teil dieses Objekts bestehen, da sie im Gegensatz zu den Objekten nicht autonom sind. Eine Komponente besteht aus einer
Menge von Einheiten, über diese erhält eine Komponente ihren Inhalt.
Die Hierarchie der Komponenten im Baum ist folgende:
Ein Knoten hat (außer der Wurzel) einen darüberliegenden Knoten - den Vater. Die Knoten auf der gleichen Ebene sind Geschwister. Ein Knoten hat Söhne, wenn Knoten darunterliegen, sonst ist er ein Blatt.
Die Einheiten einer Komponente spiegeln die verschiedenen Perspektiven einer Komponente wider. Mit der Perspektive einer Einheit wird die Darstellung der Information bezeichnet. Über diese Perspektive wird die Multimedialität der Anwendung sichergestellt. Das gleiche Thema, bzw. die gleiche Information wird auf unterschiedliche Art und Weise präsentiert.
Für das Opernbeispiel sieht es folgendermaßen aus:
Das Prinzip der Perspektive gilt ebenso für Objekte. Hat ein Objekt verschiedene Perspektiven, so haben alle seine Komponenten verschiedene Perspektiven.
Einheiten bestehen aus ihrem Namen und dem Rumpf (body). Der Rumpf enthält den Inhalt, also z.B. die Partitur.
Den Rumpf zu implementieren, entspricht dem authoring-in-the-small und ist nicht Bestandteil von HDM.
Ein Rumpf kann an verschiedenen Stellen in unterschiedlichen Zusammenhängen aufgerufen werden (z.B. die Ouvertüre von "`La Traviata"' einmal als Beispiel einer Komposition von Verdi und ein anderes Mal als Beispiel einer Ouvertüre). Diese Möglichkeit vereinfacht die Verweisstruktur nicht, erleichtert aber die Spezifikation der Anwendung.
Verweise haben eine zweifache Bedeutung. Sie dienen zum einen der Präsentation, d.h., sie legen die Beziehungen innerhalb eines Bereiches fest und zum anderen der Navigation, d.h., sie schaffen ein Vorbild oder Muster zur Navigation. Manchmal entsprechen sich diese Verweise, wenn die Bereichsbeziehungen den Navigationen gleichen. Machmal gibt es aber auch Bereichsbeziehungen, die für eine Navigation nicht sinnvoll wären.
HDM unterscheidet 3 Arten von Verweisen:
Mit den perspektivischen Verweisen werden die Einheiten einer Komponente verbunden, die Verweise bleiben inhaltlich innerhalb eines Themas. Im Beispiel eines Erste Hilfe Kurses hieße dies: zum Thema stabile Seitenlage wären die Einheiten Text (Beschreibung des Vorgangs), Graphik (Bildfolge) und Animation durch perspektivische Verweise miteinander verbunden.
Strukturelle Verweise verbinden die Komponenten eines Objekts, auch hier bleiben die Verweise inhaltlich bei einem Thema. Es gibt verschiedene strukturelle Verweise, die den Beziehungen aus der Baumstruktur entsprechen.
Zu den Basis-Verweisen gehören z.B. "`down1"' ( vom Vater zum 1-ten Sohn) oder "`next sibling"' (von Bruder zu Bruder). Die strukturellen Verweise werden gebraucht, um innerhalb eines Objekts verschiedene Informationsblöcke aufzurufen.
Sie repräsentieren die bereichsabhängigen Beziehungen zwischen Objekten oder deren Komponenten, welch vom Autor definiert werden.
Die Anwendungsverweise werden in verschiedene Arten unterteilt, wie z.B. "` ist-Komponist-von"' oder "`malte"'. Sie werden spezifiziert durch einen Namen, eine Menge von Quelltypen und eine Menge von Zieltypen.
Ist ein Verweis einmal zwischen einer Objektklasse A als Quelle und einer Objektklasse B als Ziel definiert, so ist dieser Verweis nur zwischen Objekten von A und Objekten von B zulässig. Enthält die Klasse A zum Beispiel Komponisten, die Klasse B Opern und heißt der Verweis "`ist-Komponist-von"', dann ist ein Verweis wie "`ist-Komponist-von"' zwischen Goethe und Mona Lisa nicht erlaubt.
Objekte der gleichen Klasse haben demnach drei gemeinsame Merkmale:
Ein grosser Vorteil von HDM ist, daß die perspektivischen und die meisten strukturellen Verweise nicht explizit vom Autor definiert werden müssen, sondern entweder in der Struktur enthalten sind oder von der Objektstruktur abgeleitet werden können. Diese Verweise könnten über einen Interpreter automatisch generiert werden, wenn ein Interpreter vorhanden wäre. Der Autor müß also viel weniger Verweise spezifizieren, als später in der Anwendung auftreten werden. Neben den Basis-Verweisen gibt es logische wie z.B. "`up"' (Sohn zu Vater), "`down"' (Vater zu Söhnen), "`down(N)"' (Vater zu N-ten Sohn) und "`to-top"' (Verbindung zur Wurzel) und abgeleitete Verweise wie z.B. "`inverse"' (die Inverse eines bestehenden Verweises) oder "`composition"' (Hintereinanderschachtelung von Verweisen).
Eine HDM Spezifikation für Hypertext-Anwendungen besteht aus einem Schema und einer Menge von Instanzen. Das Schema definiert die zulässige Menge von Objektklassen und Verweisklassen. Die später entwickelten Instanzen (mit den konkreten Inhalten) werden in die Anwendung eingefügt, wenn sie den Bedingungen des Schemas genügen.
Eine HDM-Anwendung besteht aus einer Datenbank und einer Menge von Verweisen. Die Datenbank bildet den Kern der Anwendung und besteht aus den zuvor vorgestellten Elementen, wie Objekten, Komponenten, Einheiten und den unterschiedlichen Verweistypen. Der Benutzer kann die Datenbank erforschen, indem er die Verweise durchstreift. Outlines sind Eintrittspunkte in das System, die dem Benutzer einen Überblick über die angebotenen Inhalte verschaffen und ihm die Möglichkeit bieten, einen geeigneten Anfangspunkt für seine Informationssuche zu finden.
Outlines sind den Objekten von der Struktur her ähnlich. Sie sind baumartig angeordnet mit Kindern, Eltern und Brüdern. Unterschiedlich zu Objekten ist, daß die Knoten innerhalb des Baumes nur einlaufende und auslaufende Kanten haben und keine Verweise auf die Datenbank selbst. Die Verweise zu den Objekten in der Datenbank sind erst in den Blättern enthalten, wenn der Benutzer über seine Navigationen bei der Information angelangt ist, die er sehen möchte.