Das Konzept einer Zeitlinie soll anhand von einigen Beispielen für alltägliche Daten vorgestellt werden, die im Lauf der Zeit variieren können:
- Das Gesamteinkommen einer Person kann im Lauf der Zeit schwanken, wenn die Person Gehaltserhöhungen erhält oder den Arbeitgeber wechselt. Da das Einkommen einer Person zu einem bestimmten Zeitpunkt als Zahl dargestellt werden kann, können die Einkommensschwankungen einer Person, die im Lauf der Zeit auftreten können, als Zeitlinie von Zahlen (Typ "Number") dargestellt werden, die hier aus Gründen der Einfachheit mit Timeline<Number> bezeichnet wird.1
- Ungeachtet des Gesamteinkommens ändert sich möglicherweise auch der Beschäftigungsdatensatz einer Person, wenn sie den Arbeitgeber wechselt oder falls Zeiten ohne Beschäftigung vorliegen. Falls eine Person zu einem bestimmten Zeitpunkt höchstens eine primäre Beschäftigung besitzt, kann der Verlauf für die primäre Beschäftigung der Person als Timeline<Employment> dargestellt werden (hierbei steht "Employment" für eine Regelklasse oder einen Java-Typ mit Beschäftigungsdetails). In Zeiten ohne primäre Beschäftigung besteht der Wert der Zeitlinie aus einem speziellen Markierungswert wie beispielsweise null (als Darstellung für "ohne Beschäftigung").
- Eine Person besitzt möglicherweise einen Gegenstand, der später dann nicht mehr vorhanden ist (jemand hat z. B. ein Fahrzeug erworben und anschließend verkauft). Für jedes beliebige Datum kann bestimmt werden, ob die Person Besitzer des Fahrzeugs ist oder nicht. Dies kann als boolescher Wert modelliert werden. Für den Zeitverlauf kann die Bedingung, ob die Person zu einem bestimmten Zeitpunkt Besitzer des Fahrzeugs war, als Timeline;Boolean> modelliert werden. Der Wert der Zeitlinie lautet vor dem Kaufdatum des Fahrzeugs false. Ab dem Kaufdatum lautet der Wert true, der bis einschließlich zum Verkaufsdatum gültig ist (oder "bis zu einer anderslautenden Mitteilung", falls ein Verkauf des Fahrzeugs nicht bekannt ist).
- Ähnlich gibt es für jede Person ein Geburtsdatum und eines Tages ein Sterbedatum. Für Personen, die noch am Leben sind, wird als Sterbedatum ein leerer Wert eingetragen. An jedem beliebigen Datum ist die Person entweder am Leben oder verstorben, weshalb der abgeleitete Wert für die Frage "Lebt die Person?" als boolescher Wert modelliert werden kann. Für den Zeitverlauf kann die Bedingung, ob die Person am Leben ist, als Timeline<Boolean> modelliert werden. Der Wert der Zeitlinie lautet vor dem Geburtsdatum der Person false. Ab dem Geburtsdatum lautet der Wert true, der bis einschließlich zum Sterbedatum gültig ist (oder "bis zu einer anderslautenden Mitteilung", falls für die Person kein Sterbedatum bekannt ist).
- Elternteile können viele Kinder haben, die an unterschiedlichen Tagen geboren wurden. Für jedes bestimmte Datum gibt es für das Elternteil eine Liste der Kinder, die zu diesem Zeitpunkt am Leben sind. Dies kann als List<Person> modelliert werden. Im Lauf der Zeit ändert sich die Liste der Kinder dadurch, dass weitere Kinder geboren werden oder Kinder die Volljährigkeit erreichen (bzw. im traurigeren Fall vor dem Erreichen der Volljährigkeit versterben). Dies kann als Timeline<List<Person>> modelliert werden.
Die obigen Beispiele sind in der folgenden Abbildung als Grafik dargestellt.
Abbildung 1. Beispiele für Zeitliniendaten