Three temporal logic systems are compared; all are non-modal (that is, time is explicit) and assume linear time. Kowalski and Sergot’s calculus (to be implemented in Prolog?) defines events as discrete points on a time line. Intervals are defined by their endpoints; negation by failure introduces default reasoning (it is assumed that nothing changes unless so indicated). Lee et al.’s logic of time and events (implemented in Prolog) is more restrictive than Kowalski’s (e.g., the past and future are asymmetric). However, it includes coercion of an event from being a point (e.g., 1 year) at one level to an interval (e.g., 365 days) at another. Allen’s temporal logic (implemented in Lisp) defines events as intervals such that a given relation holds for that interval but not for any proper subinterval. Properties hold over intervals if they hold all proper subintervals. This approach gives a topological flavor to the time domain.
A simple example is carried through, based on assigning people to projects and moving them from one project to another. The purpose of the chapter is to show the underlying similarity of the three approaches by describing a solution to the example for each in terms of Prolog-like definitions and by comparing those definitions. It does this clearly and well and so is recommended to those seeking a quick overview of ways in which Prolog can be extended to cope with temporal databases.
For technically aware readers or those not used to the Prolog style, however, there are a few areas in which improvement is possible. The use of pseudo-Prolog adds clutter in that it is necessary to define several virtually identical relations and functions. Polymorphism might be a help. There is insufficient discussion of problems and omissions in the models. It seems desirable to have both points and intervals of time as first-class objects that can be converted one to the other. None of the approaches have all this, and none seems to cope with sets of intervals. The apparent formality is misleading at times. It can be difficult to tell whether intervals are open or closed or can have zero or infinite length. Skolem functions are used but not defined. Finally, recursive definitions are introduced (p. 160, A10 and also p. 164, AE14 and AE15) whose termination conditions are not obvious.