Beitragsseiten

 

7.4 Das temporale Modell

7.4.1 Übersicht

Die Klassen zur Repräsentation von Zeit bilden zwei Gruppen:

  • Die erste Gruppe umfaßt Klassen, mit deren Hilfe ein temporales Referenzsystem be­schrieben werden kann. Diese Funktion ist vergleichbar mit der eines Kalenders, in­dem hier ein Rahmenwerk gebildet wird, in dessen Kontext einzelne Zeitangaben zu interpretieren sind.

  • Die zweite Gruppe umfaßt Klassen, die aufbauend auf einem definierten Referenz­system konkrete Zeiteinheiten abbilden. Hier wird grundsätzlich zwischen Zeitpunkten der Länge 0 und Zeitintervallen, die kontinuierliche Zeitabschnitte abdecken, unter­schieden.

In beiden Gruppen werden Instanzen der Klasse TChronon verwendet, die die kleinsten unteilbaren Zeitabschnitte eines Referenzsystems darstellen.

Abbildung 57: Klassendiagramm zur Verwaltung von Zeitangaben



Quelle: Eigener Entwurf

7.4.2 Das temporale Referenzsystem

Jedes Objekt der Klasse TChronon enthält einen vorzeichenbehafteten Integerwert mit 32 Bit, der in Abhängigkeit des zeitlichen Referenzsystems interpretiert wird. Von dem dar­stellbaren Zahlenbereich werden die 3 niedrigsten Zahlen zur Darstellung dreier Konstan­ten verwendet:

  1. LOW_END (= Dezimalwert –2.147.483.648 ): ist ein Zeitpunkt in der Vergangenheit unbestimmt, dann wird diese Konstante eingesetzt.

  2. HIGH_END: diese Konstante steht für unbekannte Zeitpunkte in der Zukunft.

  3. NOW: diese Konstante steht für die Gegenwart und ist damit solange gleitend, bis ein anderer Wert festgelegt wird. Bei der Verwendung in einem Zeitintervall ist aber dar­auf zu achten, daß diese Konstante logisch korrekt verwendet wird. Ist beispielsweise als Startzeitpunkt NOW angegeben, muß das Ende des Intervalls in der Zukunft liegen.

Damit verbleiben für die Darstellung eines Zeitpunktes 4.294.967.292 (232 - 3) ver­schiedene Werte. Legt man eine Genauigkeit im Sekundenbereich zugrunde, wie dies bei GPS-Anwendungen der Fall ist, kann man damit eine Zeitspanne von 136 Jahren abdec­ken. Für andere Anwendungzwecke reicht dieser Zeitraum aber bei weitem nicht aus. Durch eine Erweiterung auf einen 64-Bit-Wert könnten zwar 584.942.417.355 Jahre in Sekundenauflösung dargestellt werden, andererseits ”verschenkt” man hier Speicherplatz, da die Sekundengenauigkeit für Zeitpunkte in geologischen Dimensionen nicht erforder­lich ist.

Hier bietet sich eine Lösung in Form von verschiedenen Zeitskalen an, in der jede Skala festlegt , wie der gespeicherte 32-Bit-Integer-Wert eines TChronon-Objektes zu inter­pretieren ist. Im vorgestellten Objektmodell übernehmen Instanzen der Klasse TAbsoluteReference diese Aufgabe. Um die unterschiedlichen Skalen zu synchronisieren und damit die Werte vergleichbar zu machen, sind für jede Skala die dazu notwendigen Parameter anzugeben:

  • Eine Zeitbasis definiert einen Zeitpunkt, der den Nullpunkt der eindimensionalen Zeit­achse markiert. Da der Integer-Wert von TChronon mit einem Vorzeichen versehen ist, sind damit Werte im Bereich von –2.147.483.645 bis 2.147.483.647 möglich. Die Angabe erfolgt in Universal Coordinated Time (UTC) im Format Tag – Monat - Jahr. Als Uhrzeit gilt 0 Uhr.

  • Mit einem Offset in Sekunden kann eine von Greenwich abweichende Zeitzone mar­kiert werden.

  • Die Granularität als Vielfaches einer Sekunde bestimmt das Auflösungsvermögen des Referenzsystems bzw. die Länge eines Chronoms und damit den durch einen 32-Bit-Wert beschreibbaren Zeitraum. Negative Werte werden zu Darstellung von Granu­laritäten unterhalb einer Sekunde verwendet.

Diese drei Parameter reichen aus, um die unterschiedlichsten Anwendungbereiche abzu­decken und um gegebenfalls TChronon-Objekte von verschiedenen Skalen miteinander zu vergleichen. Um beispielsweise eine für Windows-basierte Anwendungen kompatible Zeitskala zu entwickeln, verwendet man als Basis den 1. Januar 1970, 0.00 Uhr mit einer Granularität von einer Sekunde. Für historische Themen kann der Anwender die Granu­larität auf einen Tag festlegen, womit hier 11.767.033 Jahre darzustellen sind.

Anhand der gegebenen Parameter kann für je zwei TValidTime-Objekte ein Vergleich durchgeführt werden, um die in Kapitel 6.4.3 festgelegten temporalen Prädikate anzuwen­den. Dabei wird vereinbart, daß bei unterschiedlichen Granularitäten die gröbere Variante zu verwenden ist und die feinere Angabe entsprechend umgewandelt wird. Beispielsweise führt dabei der Vergleich einer Instanz mit dem Wert “Holozän” einer geologischen Skala mit dem Wert “07.Juni 1999, 20 h 1 min 43 sec bis 07.Juni 1999, 20 h 1 min 50 sec” einer GPS-Skala zu dem Ergebnis, daß sich die Zeitintervalle überdecken. Die Prädikate selbst sind als Methoden in TValidTime mit einem Ergebnis vom Typ “bool” zu implementieren. Damit ist indirekt auch eine Operandenfolge vorgegeben, die für das Ergebnis von “precedes” und “contains” von Bedeutung ist, da diese Prädikate nicht symmetrisch sind. Beispielsweise bewirkt der folgende Methodenaufruf, daß die STObject-Instanz “Geo_Object_1” der erste Operand ist.

bool value = Geo_Object_1->precedes(Geo_Object_2);/* (entspricht Geo_Object_1 precedes Geo_Object_2)*/

Objekte der Klasse TCyclicReference beschreiben temporale Zyklen. Dazu wird das Objekt mit einer Instanz von TAbsoluteReference verknüpft, in dessen Rahmen ein Zyklus definiert ist. Das Attribut ValidFromTo zeigt an, zu welchem Zeitpunkt der Zyklus zum ersten mal startet und wann er das letzte mal abläuft. Die Länge eines einzelnen Durch­laufs ist dem Attribut Duration zu entnehmen. TChronon-Werte, die durch solch ein Referenz­system beschrieben sind, müssen zwischen 0 und Duration liegen, d.h. be­schreibbare Zeitpunkte liegen innerhalb eines einzigen Zyklus. Durch das Referenzsystem wird er aber bis zum Ende der Gesamtlaufzeit des Zyklus im Abstand von Duration wie­derholt.

Zu jeder Instanz, die von TTemporalReference abgeleitet ist, können feste Zeitabschnitte mittels TRefPeriod-Objekten angelegt werden, die für das Referenzsystem eine geordnete Sequenz darstellen. Für ein absolutes Referenzsystem könnten diese beispielsweise in geologischen Applikationen Anwendung finden, um Formationen und Abteilungen als zeitliche Unterdimensionen abzubilden. Damit kann eine fachspezifische Begriffswelt mit zeitlichem Bezug in eine Applikation integriert werden und eine Alternative zu der in die­sem Fall nicht sinnvolle Benutzung des gregorianischen Kalenders anbieten. Für die zyklischen Referenzsysteme gilt, daß hiermit ein Zyklus in mehrere benannte Abschnitte unterteilt werden kann, die sich ständig in gleichem Abstand wiederholen. Ein An­wendungsbeispiel wäre hier die Modellierung von Vegetationszyklen im Jahresablauf, die hier mit zeitlich absolut referenzierten Geo-Objekten, wie beispielsweise dem Parzellenge­füge, kombiniert werden können.

7.4.3 Die Repräsentation von Zeitpunkten und Intervallen

Um Zeitpunkte und Zeitintervalle in einem System alternativ verwenden zu können, wird eine gemeinsame Oberklasse TValidTime eingeführt, die über Funktionen zum Ermitteln von Startzeitpunkt und Dauer bzw. Endzeitpunkt verfügt. Für ein TTimeStamp-Objekt wird vereinbart, daß dieses die Länge 1 besitzt, d.h. ein Chronom, während für Ableitungen von TTimeInterval eine Länge größer 1 anzugeben ist. Die Länge eines Inter­valls berechnet sich aus erstem und letztem Chronom sowie allen dazwischenliegenden. Um die Modellierung von Zeitintervallen zu flexibilisieren, sind hier drei Subklassen definiert, die sich für verschiede Situationen anbieten. Die einfachste Form bildet die Klasse TAbsInterval mit absoluten Angaben zu Start und Ende. Instanzen von TTimePeriod referenzieren einen für ihr Referenzsystem angelegten Zeitabschnitt, während in den Ableitungen von TRelInterval (“relatives Intervall”) Bezug genommen wird auf mindestens eine andere TValidTime-Instanz. Die vier Subklassen unterscheiden sich darin, ob zur Darstellung des Startzeitpunktes oder des Endzeitpunktes bzw. für beide eine externe Referenz notwendig ist. Dabei ist die Art der Interpretation dieser Referenz zu beachten: falls ein Intervall referenziert wird, ist der jeweils nächste Zeitpunkt zu wäh­len, d.h. ein TRelStart-Objekt, das seinen Startzeitpunkt anhand eines anderen Objektes bestimmt, verwendet bei einem Intervall dessen Endzeitpunkt. Analog hierzu erfolgt die Wahl bei Instanzen von TRelEnd und TRelStartEnd. Instanzen von TRelSpan beschreiben Zeitspannen, deren Länge anhand des Attributs Duration festzulegen ist. Der Startzeit­punkt wird wiederum relativ zu einem referenzierten TValidTime-Objekt bestimmt. Die in Kapitel 5.1.3 angesprochenen Zeitelemente, die mehrere nicht notwendigerweise ver­bundenen Zeitabschnitte zu einer Menge kombinieren, können hier nur indirekt abgebildet werden, indem eine Geometrie mit mehreren Instanzen der hier vorgestellten Klassen ver­knüpft wird.