Fundamental to all discussions of causality and reasoning is knowing what happened before what. Therefore, time is crucial to all reasoning. This lesson will cover the basics of representing time and dates in Cyc.
What the functions on this slide denote seems obvious. For example, (#$YearFn 2000) denotes the year 2000.
You can combine the functions together to form a composite functional expression like the example on the slide. This expression denotes the last second of the year 2000. A more literal translation would be “the fifty-ninth second of the twenty-third hour of the thirty-first day of the month of December of the year 2000.”
There are also functions that denote intervals of time, like years, which have a place on the timeline.
The example on the slide says that the duration of the year 2000 is a one year duration. If instead the example said (#$duration (#$YearFn 2000) (#$YearsDuration 3)), it would correctly assert the false idea that the duration of the year 2000 is three years.
These quantities are simply abstract objects that measure the length of an interval of time.
Most reasoning is more concerned with duration, or chunks of time, than specific points in time. Therefore, Cyc has many predicates for describing relationships between chunks of time.
The predicates listed on the slide are only a sample of what is available in Cyc. Most mean just what they say, so #$startsAfterStartingOf could be applied to this hour and last hour to say that this hour starts after the starting of last hour.
The last four predicates in the column on the right are the least commonly used because they are restricted to relating points in time.
Now we will consider a couple of the relationships that are so important for reasoning.
The first collection listed on the slide, #$TemporalStuffType, is a collection of events such that any proper time slice of any one of its members (events) is itself a member (event) in that collection. In this sense, the #$TemporalStuffType collection is similar to the #$ExistingStuffType collection; however, #$TemporalStuffType applies to proper time slices of events as opposed to portions of objects. For an example of #$TemporalStuffType, think of walking. Disregarding issues of granularity, a time slice of walking would represent what happens at any point in the walking event.
#$TemporalObjectType is a collection of events such that any proper time slice of any one of those events is not itself in that collection. This corresponds to #$ExistingObjectType. For example, consider a marathon run. Any proper time slice of the run would be a shorter run, and therefore would not be a marathon run. Another example would be the event of making a cake. Any proper time slice of the process would be beating eggs or stirring or preheating the oven, and would not represent everything that happens in making a cake.
There are also predicates which allow us to make assertions about the inter-relatedness of time intervals. The predicates listed on the slide allow us to make assertions like the following:
Every February 29th is subsumed by a February: (#$includedInIntervalType (#$DayFn 29 #$February) #$February).
Every February subsumes a Wednesday.
Every February intersects some winter season (in a theory applying to the Northern Hemisphere).
The day Jim was born occurred in a February.
Every Tuesday is followed by a Wednesday.
This concludes the lesson on representing time and dates in Cyc.