Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
This page gives a brief introduction to the valid-time temporal model. An introduction to some of the standard terms used when modeling time can be found here.
The valid-time temporal model provides an approach for consistently representing temporal information. In this model, a piece of information - which is often referred to as a fact or a proposition - can be associated with instants or intervals denoting the time or times that the fact is held to be true. Such facts have a value and one or more valid times. In other words, every temporal fact holds information denoting the facts's valid-time. Conceptually, this representation means that every temporal fact is held to be true or valid during the time or times associated with this fact. No conclusions can be made about the fact for time periods outside of its valid-time.
The valid-time model can be used to standardize the representation of time-stamped data. One of the primary problems of reasoning with temporal information is that time is typically not represented consistently. For example, if a row in a relational database contains some temporal information, there is no indication as to the relationship between the timestamp and the non-temporal data in the row. Does the timestamp refer to the point at which the information was recorded, or to the point at which it was known? The consistent representation of temporal information allows standard temporal operators top be applied consistently and greatly simplifies the temporal reasoning task.
Some valid-time models may be extended with a transaction time, which is used to model the point at which a piece of information is recorded. A temporal model that supports both valid-time and transaction time is termed bitemporal. In addition to valid-times, a bitemporal fact may optionally have transaction times associated with it. Each transaction time records operations on the associated fact. Three typical types of operations are: creation, modification, and deletion.
Bitemporal facts are append-only. Information is never deleted: if the fact is modified, the data preceding the modification is superceded by the new information but is not deleted. We can use the transaction times associated with a fact to identify the currently valid data. By default, unless explicit transaction time operations are used, only currently valid data will be visible.
An example, of a query using transaction time would be: List all employee details incorrectly recorded on January 1, 1992.
This query requires the use of both valid-time and transaction time and illustrates that the two time components cannot be considered separately. The specification of transaction time and valid-time periods must occur in the same query.
The addition of transaction time to a valid-time system does not alter the semantics of any existing operations, temporal or otherwise. Valid and transaction time have identical ontologies and identical baseline clocks. However, irrespective of how easily the transaction model fits, providing transaction time support in an efficient way is non-trivial.