Inter-Media-Beziehung
Zwischen Medienobjekten können (explizite) Beziehungen, die sogenannten
Inter-Media-Beziehungen, definiert werden.
Als Grundlage der Beziehungsdefinition dienen die Attribute der Objekte.
Inter-Media-Beziehungen sind gerichtet und verbinden immer
genau zwei Objekte miteinander.
Das Objekt, von dem eine Beziehung ausgeht, wird Bedingungsobjekt der
Beziehung,Bedingungsobjekt
und das, zu dem die Beziehung hinführt, Aktionsobjekt der
Beziehung genannt.Aktionsobjekt
Dabei ist es durchaus möglich, daß es sich
beim Bedingungsobjekt und Aktionsobjekt um dieselben Objekte handelt.
In diesem Fall kann auch von Intra-Media-Beziehungen gesprochen werden.Intra-Media-Beziehung
Beziehungen können als sogenannte Ereignis-Bedingung-Aktion-TriggerEreignis-Bedingung-Aktion-Trigger
angesehen
werden, bei denen aufgrund eines bestimmten Ereignisses die Bedingung
überprüft und bei ihrer Erfülltheit
die Aktion durchgeführt wird.
Daher wird im allgemeinen auch von Auslösung eines
BeziehungstriggersBeziehungstrigger
gesprochen, falls ein bestimmtes Ereignis die Bedingungsüberprüfung
anstößt. Eine BedingungBedingung
besteht dabei aus einer logischen Verknüpfung
von Vergleichsrelationen über Werte bzw. Eigenschaften von Attributen,
eine AktionAktion
aus einer Zuweisung eines Wertes an ein
Attribut, wobei der Wert unter Umständen durch die Auswertung eines Ausdrucks
ermittelt wird.
Im allgemeinen gehören die Attribute, die in einer Bedingung oder
einem Zuweisungsausdruck auftreten, zum Bedingungsobjekt.
Prinzipiell können jedoch auch Attribute anderer Objekte
in einer Bedingung oder einem Zuweisungsausdruck auftreten. In diesem
Fall spricht man auch von einer impliziten
Beziehung zwischen dem entsprechenden Objekt und dem Aktionsobjekt.Implizite Beziehung
Das manipulierte
Attribut einer Aktion muß ein öffentliches Attribut des Aktionsobjektes
sein.
Als Ereignis,Ereignis
das eine Bedingungsüberprüfung auslöst, gilt die Zuweisung
eines Wertes an ein Attribut, das in der Bedingung vorkommt. Dabei wird
das Ereignis auch dann propagiert, wenn sich durch die Zuweisung der
Wert des Attributs nicht ändert. Die Bedingung wird genau einmal
überprüft und bei ihrer Erfülltheit die Aktion genau einmal ausgeführt.
Da eine Aktion aus einer
Attributwertzuweisung besteht, können aufgrund ihrer
Ausführung andere Trigger ausgelöst werden. Auf die Reihenfolge der
Aktionsausführung im Falle der Erfülltheit mehrerer Bedingungen wird in
Abschnitt 6.2.3 eingegangen.
Eine Bedingung besteht im allgemeinen aus mehreren Relationen, die mittels boolscher Operatoren miteinander verknüpft werden. Als Notation wird eine C++-ähnliche Notation verwendet. Attribute werden durch ihre Bezeichner repräsentiert. Attributen, die in der Beziehung vorkommen, aber nicht zum Bedingungsobjekt gehören, muß der Objektname oder -- falls dieser nicht eindeutig ist -- der Medienobjektidentifkator ihres Objektes vorangestellt werden. Dasselbe gilt für Attribute, die in einem Zuweisungsausdruck einer Aktion vorkommen, aber nicht zum Aktionsobjekt gehören. Soll eine Bedingung immer dann überprüft werden, wenn sich der Wert eines Attributs ändert, unabhängig davon, welches der neue Wert ist, kann dies durch die Angabe eines Fragezeichens anstelle eines konkreten Wertes in einer Vergleichsrelation ausgedrückt werden.
Abbildung 6.2 enthält einige Beispiele für gültige Inter-Media-Beziehungen. In der ersten Beziehung wird, falls dem Aktivitätsattribut des Video-Objektes der Wert active zugewiesen wird, auch der Wert des Aktivitätsattributs des Text-Objektes auf active gesetzt. Die zweite Beziehung drückt aus, daß sich bei einer Änderung des colour-Attributs des Video-Objektes auch die x-Komponente des pos-Attributs des Text-Objektes ändern soll, und zwar soll ihr der um 10 verringerte Wert der x-Komponente des pos-Attributs des Video-Objektes (namens oma) zugewiesen werden. Die Bedingungskomponente der dritten Beziehung besteht aus einer logischen Und-Verknüpfung zweier Vergleichsrelationen.
Abbildung 6.2: Inter-Media-Beziehungen
Die Aktionen selbst haben -- außer daß sie unter Umständen andere Trigger auslösen -- keine Auswirkungen auf die Präsentation. Allerdings wird nach einer Attributwertzuweisung automatisch die zum manipulierten Attribut gehörende Systemfunktion -- falls vorhanden -- aufgerufen. Dieser Aufruf wird als interne Aktion bezeichnet.Interne Aktion Im allgemeinen ist mit einer internen Aktion ein wahrnehmbarer Effekt für den Benutzer verbunden, wie Abbildung 6.3 demonstriert.
Abbildung 6.3: Auswirkungen einer internen Aktion
Normalerweise werden den Systemfunktionen Attribute als Wert-Parameter übergeben. Werden Attribute jedoch als Referenz-Parameter übergeben, können ihnen während der Ausführung einer internen Aktion Werte zugewiesen werden. Eine Attributwertzuweisung im Rahmen einer internen Aktion bewirkt dabei ebenfalls die Auslösung betroffener Beziehungstrigger. Genutzt wird dies insbesondere bei den Interaktionsobjekten (siehe Abschnitt 6.3.1.1).
Als interne Aktion bei der Aktivierung eines Objektes kann das Starten seiner Aktivitätsfunktion angesehen werden. Demgegenüber stellt das Stoppen der Aktivitätsfunktion die interne Aktion dar, die bei der Passivierung eines Objektes ausgeführt wird. Konkrete Aktivitätsfunktionen elementarer Medienobjekte werden ausführlicher in Abschnitt 6.3.1 beschrieben. In Abschnitt 6.2.2 wird die Aktivitätsfunktion komplexer Medienobjekte vorgestellt.
Beziehungen werden zwar prinzipiell zwischen zwei Medienobjekten definiert, die eigentlichen Verbindungsinstanzen sind jedoch die Ports der Objekte. Der Port des Bedingungsobjekts, von dem die Beziehung ausgeht, wird auch Bedingungsport,Bedingungsport der Port, zu dem die Beziehung hinführt, Aktionsport genannt.Aktionsport Von einem Port können beliebig viele Beziehungen zu beliebigen anderen Ports -- auch unterschiedlichen Typs -- ausgehen. Genauso können zu einem Port beliebig viele Beziehungen von beliebigen anderen Ports hinführen. Das heißt, jeder Port kann sowohl als Bedingungsport als auch als Aktionsport fungieren. Es ist sogar erlaubt, daß derselbe Port bezüglich einer Beziehung sowohl den Bedingungsport als auch den Aktionsport darstellt (Intra-Media-Beziehung).
Die Existenz verschiedener Port-Typen (Start-, Ende- und Attribut-Ports) ermöglicht eine Unterscheidung der verschiedenen Beziehungstypen (siehe auch Kapitel 2.4.2). Während über Start- und Ende-Ports zeitliche Beziehungen definiert werden können, dienen Attribut-Ports zur Definition von gestalterischen, insbesondere also auch räumlichen Beziehungen. Durch die Verbindung von Ports unterschiedlichen Typs sind gemischte Beziehungen spezifizierbar. Die Bedeutung der Port-Typen ergibt sich aus den Einschränkungen der Bedingungen und Aktionen, die einem Port zugeordnet werden dürfen:
Je nach Typ des Bedingungs- und Aktionsports können damit neun verschiedene Beziehungstypen mit folgenden Bedeutungen unterschieden werden:
Objektes aus.
Abbildung 6.4 zeigt einige Beispiele für Inter-Media-Beziehungen mit
Hilfe von MR-Diagrammen.
(Explizite) BeziehungenExplizite Beziehung
werden dabei durch Kanten
dargestellt, die vom Bedingungsport ausgehen und zum Aktionsport
hinführen.
Bedingungen und
Aktionen werden -- sofern notwendig -- an die Kanten geschrieben.
Abbildung 6.4: Beziehungstypen
Anzumerken ist an dieser Stelle, daß in Attributwertabfragen nur auf Attribute aktiver Objekte zugegriffen werden sollte. Was anderenfalls passiert, ist systemabhängig und muß bei der Implementierung eines auf dem IMRA-Modell aufbauenden Autorenwerkzeugs festgelegt werden. Ein möglicher Lösungsansatz besteht darin, daß Bedingungen, die auf Attribute passiver Objekte zugreifen, als nicht erfüllt betrachtet werden, und Attribut-Aktionen, die zur Berechnung eines Zuweisungswertes Attribute passiver Objekte abfragen, nicht ausgeführt werden. Ein alternativer Lösungsansatz ist die Erzeugung eines Laufzeitfehlers.
Explizite Beziehungen können nur dann zwischen zwei Medienobjekten
definiert werden, wenn diese demselben Vaterobjekt zugeordnet sind. Das
bedeutet, daß Beziehungen (Kanten) nicht
direkt aus einem komplexen Medienobjekt
heraus- bzw. in ein komplexes Medienobjekt hineinführen dürfen. Eine
Kopplung von Komponentenobjekten verschiedener komplexer Objekte ist nur
indirekt über die Ports ihrer Vaterobjekte möglich.
Dazu können die Ports
eines komplexen Objektes intern mit beliebigen Ports der Komponentenobjekte
oder auch untereinander verbunden werden.
Ein komplexes Medienobjekt wird durch eine (externe) Start-Aktion über einen seiner Start-Ports aktiviert. Nach der Aktivierung werden nicht nur die Beziehungstrigger ausgelöst, die extern von diesem Start-Port ausgehen, sondern auch die, die intern von diesem Start-Port ausgehen. Im allgemeinen werden über die internen Beziehungen Start-Aktionen von Komponentenobjekten ausgeführt, d.h. die Aktivierung eines komplexen Objektes impliziert den Start eines oder mehrerer seiner Komponentenobjekte. Der Start-Port, über den ein (komplexes) Objekt aktiviert wird, wird Eintrittsport dieser Aktivierung genannt.Eintrittsport Beziehungen, die extern oder intern von anderen Start-Ports als dem Eintrittsport ausgehen, werden ignoriert. Abbildung 6.5 demonstriert die Aktivierung eines komplexen Medienobjektes. Anzumerken ist, daß zwar auch intern Beziehungen zu einem Start-Port eines komplexen Objektes hinführen können, diese aber keinen Sinn machen, da sie erst ausgeführt werden, wenn das Objekt bereits aktiv ist.
Abbildung 6.5: Aktivierung und Passivierung
eines komplexen Objektes
Während die Aktivierung eines komplexen Medienobjektes nur aufgrund einer externen Beziehung möglich ist, kann ein komplexes Objekt sowohl extern als auch intern durch eine Beziehung passiviert werden, die eine Ende-Aktion an einem seiner Ende-Ports auslöst. Der Port, an dem die Ende-Aktion ausgeführt wird, wird Austrittsport genannt.Austrittsport Bei der Passivierung eines komplexen Objektes werden alle seine noch aktiven Komponentenobjekte unmittelbar abgebrochen. Beziehungen, die vom Abbruch-Port der abgebrochenen Komponentenobjekte ausgehen und nicht zu einem Start-Port führen, werden getriggert. Genauso werden interne Ende-Beziehungen des Austrittsports des komplexen Objektes, die nicht zu einem Start-Port eines seiner Komponentenobjekte führen, sowie alle externen Ende-Beziehungen des Austrittsports getriggert. Beziehungen, die von anderen Ende-Ports des komplexen Objektes ausgehen, werden ignoriert.Interne Beziehung Externe Beziehung Abbildung 6.5 verdeutlicht auch die Passivierung eines komplexen Objekts. Die getriggerten Beziehungen sind gestrichelt eingezeichnet.
Anzumerken ist, daß sich ein komplexes Objekt nicht automatisch selbst passiviert, falls beispielsweise alle seine Komponentenobjekte passiviert worden sind. Über Intra-Media-Beziehungen vom Attribut-Port zu einem Ende-Port des komplexen Objektes kann dieses Verhalten jedoch durch einen Autor spezifiziert werden, wie das Beispiel in Abbildung 6.6 demonstriert. Abbildung 6.6 zeigt weiterhin, daß auch über den Attribut-Port eines komplexen Objektes interne Beziehungen zu den Ports der Komponentenobjekte oder zu eigenen Ports hergestellt werden können.
Abbildung 6.6: Interne Attribut-Beziehungen
Das Vorhandensein mehrerer Start-Ports bietet den Vorteil, ein komplexes Medienobjekt in Abhängigkeit unterschiedlicher externer Voraussetzungen mit unterschiedlichen Komponentenobjekten starten zu können. Ein Vorteil mehrerer Ende-Ports besteht in der einfachen Handhabung von Navigationsinteraktionen. Besteht beispielsweise ein komplexes Objekt aus einem Bild und einem gleichzeitig präsentierten Menü mit mehreren Items und sollen in Abhängigkeit von dem vom Benutzer ausgewählten Item das komplexe Objekt beendet und unterschiedliche Videos gezeigt werden, läßt sich dieser Sachverhalt auf die in Abbildung 6.7(a) demonstrierte Art und Weise spezifizieren.
Abbildung 6.7: Wiederverwendbarkeit komplexer Medienobjekte
Abbildung 6.7(a) zeigt aber auch noch einen weiteren Vorteil der Verwendung von Ports zur Definition von Inter-Media-Beziehungen, nämlich die Wiederverwendbarkeit von komplexen Medienobjekten. Dadurch daß das Menü nicht direkt mit den drei Videos gekoppelt ist, sondern nur indirekt über die Ende-Ports des komplexen Objektes, läßt sich das komplexe Objekt in einer anderen Umgebung wiederverwenden, bei der eventuell nicht drei Videos sondern drei andere Objekte als Folgeobjekte des komplexen Objektes eingesetzt werden sollen. Eine Alternative zur Verwendung mehrerer Start- bzw. Ende-Ports bietet die Verwendung spezieller Attribute eines komplexen Objektes, die in Abbildung 6.7(b) illustriert wird.