Review

In 1993 Jan Chomicki gave a tutorial on temporal databases at the 12th ACM PODS Symposium, and that material evolved into a survey paper titled "Temporal Query Languages: a Survey", which is published in the proceedings of the 1st International Conference of Temporal Logics in 1994. At that time I was approaching the database field coming from the area of temporal logics and temporal knowledge representation. I attended the conference and I was immediately impressed by the sharpness of the concepts illustrated in that paper, which were finally giving to me the logic's perspective of what a temporal database and a temporal query language were. I believe this paper was not exposed to the database community in the form of a publication till 1998, when it was updated, extended and integrated with new material to be published as this chapter.

The main contribution of this chapter is describing how time and temporal databases can be modeled in logic and why two-sorted first order logic and first-order temporal logic can be situated among query and integrity constraint languages for temporal databases. The logic formalization, and a survey of several results obtained using it, provide a general understanding of expressiveness and potential hazards in current temporal query languages.

A powerful concept is that of an `abstract' temporal database as opposed to a 'concrete' one. The first is representation-independent, while the second adopts a specific encoding for timestamps in order to achieve a compact representation, which is essential in practice. The same concept is applied to query languages, where temporal logic and SQL/Temporal are examples of abstract and concrete query languages, respectively. There is a potential danger in working with concrete temporal databases (e.g., when devising or using concrete query languages), since (a) the specific encoding may lead to misunderstanding of the original semantics, and (b) two different concrete databases may encode the same abstract one, but queries on them may give different results. Common examples with interval encodings are found in the paper.

What the authors are proposing in this chapter, is essentially to hide the encoding from the user when he is querying the database, using an abstract query language. Technically, these queries can be compiled into an 'internal' concrete query language which is suitable for efficient query processing on the concrete temporal database. Interesting results along this line appeared in [2], where temporal logic is compiled into ATSQL and [3], where the user can express queries referring to the abstract database using an intuitive variant of SQL, derived from two-sorted first order logic.

The chapter also illustrates the use of temporal logic in integrity constraint specification along the lines of [4]. Most of the formal results in the chapter appear elsewhere in full form, but here are nicely integrated and illustrated. It is pity that this work does not cover the use of multi-sorted first order logics (e.g., MQLF logic used in [5]), nor multi-layered temporal logics [6], as powerful abstract query languages for temporal databases supporting multiple granularities.