Temporal modeling is a hot topic in data warehouse and BI environments. The data vault approach or anchor modeling are an attempt to make those environments more manageable. From the information modeling perspective however, these are technical in nature. Though the information model could capture those technical requirements, it would be an information model with an implementation in mind, and not simply capture the business communication. We would be modeling the data warehouse implementation itself and not the way the business communicates about their data.
(A follow up article may be found here.)
Illustration
In the attached screenprint a piece of an example model is depicted. That information model is based upon a series of articles by Lars Rönnbäck where he illustrates the need for transitional modeling with persons, their moods, their personal relationships and the status of those relationships. In this article the example model is annotated with both temporal and transitional metadata. By adding both indicators as metadata in the information model, models remain simple to understand. They remain verbalized and technical artifacts can be generated.
Moods
In the articles by Lars, persons are identified by "J42", "B43".. These identifications are used in the example below.
Let's address that persons have a mood. The underlying fact in this model is: "J42's mood is good.". But as we all know, moods may change. To capture that knowledge we simply annotate the fact type 'Person Mood' so that IT artifacts should provide storage for the temporal aspects of these mood changes. This temporal indicator is depicted in the diagram by CaseTalk using a clock icon.
Human Relationships and Opinions
Relationships begin, relationships end, their status may change over time. And It is even possible that the opinion about the status of their relationship may vary amongst the people involved in the relationship. Modeling the human relationship is simply done by stating a fact such as "J42 is in a relationship with B32." The opinion of the status of the relationship is then captured in Relationship Status Opinion by stating: "According to J42, the relationship of J42 and B43 is official." This opinion can be contradicted by stating a new fact: "According to B43, the relationship of J42 and B32 is not official.". By acknowledging these opinions, we simply model those within the information model itself.
TRUTH and Conflicts
In the real world people usually don't differ in their opinions about their relationship status. We would model Relationship Status by stating "The relationship of J42 and B43 is official.". But life is crazy. And often, while integrating different source systems into a data warehouse solution, data conflicts. To provide a solution for IT artifacts, we need to be able to indicate the possibility of conflict. This is where transitional modeling by Lars Rönnbäck comes in. As an example Lars uses the conflicting point of view on the human relationship. Even though a simple fact was modelled, real life can present a conflicting fact: "The relationship of J42 and B43 is not official." As with the temporal indicators, CaseTalk allows a fact type to be indicated as transitional. In the diagram it is shown with an Gaussian icon indicating the statistical uncertainty of the data.
Conclusion
Seemingly complicated issues, such as temporal, bitemporal and conflicting facts, stir up many long discussions. But addressing these issues, is easy by simply annotating the information model. Annotating the relevant fact types with temporal and transitional indicators keep the information models simple. It allows the model to describe a single point in time to isolate a single version of the truth, independant of bitemporal and transitional implementations.