Pour introduire la notion de chronologie, voici quelques exemples quotidiens de données qui peuvent varier au fil du temps :
- Les revenus totaux d'une personne ont tendance à varier au fil du temps, lorsqu'elle obtient une augmentation ou change d'emploi. Étant donné que les revenus d'une personne à un moment donné peuvent être représentés sous forme de nombre, la variation des revenus de cette personne au fil du temps peut être représentée sous forme de chronologie numérique, que nous nommerons Timeline<Number> pour plus de simplicité 1;
- Quels que soient les revenus totaux, l'enregistrement d'emploi d'une personne a tendance à varier au fil du temps lorsque cette personne change d'emploi (ou lorsqu'elle ne travaille pas pendant certaines périodes). Si, à un moment donné, une personne possède au moins un emploi primary, l'historique des emplois principaux de cette personne peut être représenté sous forme de Timeline<Employment>, où l'emploi est une classe de règles ou un type Java qui contient les détails de l'emploi et, au cours des périodes sans emploi principal, la valeur de la chronologie est une valeur marqueur spéciale telle que null (pour représenter Pas d'emploi) ;
- Une personne peut détenir un actif dont elle finit par se séparer, par exemple une personne peut acheter puis vendre une voiture. A n'importe quelle date, la personne est ou n'est pas propriétaire de la voiture, ce qui peut être modélisé sous forme de valeur booléenne. Au fil du temps, la situation selon laquelle la voiture a un propriétaire à une date particulière peut être modélisée sous forme de Timeline<Boolean>. La valeur de la chronologie est false avant la date d'achat du véhicule, et true à partir de la date d'achat et jusqu'à la date de vente incluse (ou "jusqu'à nouvel ordre" si la vente de la voiture n'est pas connue).
- De même, une personne a une date de naissance et finalement une date de décès. Les personnes encore vivantes sont associées à un enregistrement de date de décès vide. A n'importe quelle date, la personne est vivante ou décédée, et donc la valeur dérivée de la question "la personne est-elle vivante ?" peut être modélisée sous la forme d'une valeur booléenne. Au fil du temps, la condition selon laquelle la personne est vivante peut être modélisée comme Timeline<Boolean>. La valeur de la chronologie est false avant la date de naissance de la personne, et true à partir de la date de naissance de la personne et jusqu'à sa date de décès incluse (ou "jusqu'à nouvel ordre" si la personne n'est associée à aucune date de décès).
- Un parent peut avoir plusieurs enfants, nés à des dates différentes. A n'importe quelle date particulière, le parent est associé à une liste d'enfants qui sont vivants à cette date, ce qui peut être modélisé sous forme de List<Person>. Au fil du temps, la liste d'enfants change lorsque d'autres enfants naissent ou atteignent l'âge de la maturité (ou, malheureusement, meurent dans l'enfance), ce qui peut être modélisé sous forme de List<Person>< >
Les exemples ci-dessus sont présentés sous forme de graphique dans la figure ci-dessous.
Figure 1. Exemples de données chronologiques