One of the most crucial problems in any computer system that involves representing the world is the representation of time. This includes applications such as databases, simulation, expert systems, and applications of Artificial Intelligence in general. In this brief article, 1 will give a survey of the basic techniques available for representing time, and then talk about temporal reasoning in a general setting as needed in A1 applications. Quite different representations of time are usable depending on the assumptions that can be made about the temporal information to be represented. The most crucial issue is the degree of certainty one can assume. Can one assume that a timestamp can be assigned to each event, or barring that, that the events are fully ordered? Or can we only assume that a partial ordering of events is known? Can events be simultaneous? Can they overlap in time and yet not be simultaneous? If they are not instaneous, do we know the durations of events? Different answers to each of these questions allow very different representations of time.
I. REPRESENTATIONS BASED ON DATING SCHEMESA good representation of time for instantaneous events, if it is possible, is using an absolute dating system. This involves timestamping each event with an absolute real-time, say taken off the system clock on the machine, or some other coarser-grained system such as we use for dating in everyday life. For instance, a convenient dating scheme could be a tuple consisting of the year, day in the year, hour in the day, minutes and seconds, say. For example, (1990, 110 10 4 50) would be the 110th day of 1990, at 10:04 ( A . M . ) and 50 seconds. The big advantage of dating schemes is that they provide for constant time algorithms for comparing times and use only linear space in the number of items represented. Time comparisons are reduced to simple numeric comparisons. Date-based representations are only usable, however, in applications where such information is always known, that is, applications where every