The Event Calculus (EC) uses reification to represent knowledge of transient facts in first-order logic (FOL).
Note
Reification is the process of taking predicates in a first-order logic language to be functions in another language .
The EC uses three types of FOL terms:
- Events represent real-world actions or events,
- Fluents represent properties varying over time,
- Timepoints represent instants in time.
We can require every timepoint to be a natural number , which permits us to write terms such as .
Simplified Event Calculus
The simplified event calculus (SEC) relies on the following predicates:
- - The observation that fluent is true at timepoint ,
- - The occurrence of event at timepoint ,
- - If event occurs at timepoint , then fluent is true after ,
- - If event occurs at timepoint , then fluent is false after ,
- - The fluent becomes false between timepoints and .
A narrative is a collection of observations and occurrence SEC formulae.
Fluent Preconditions
A change to a fluent effected by an event often depends on some context surrounding the event. To describe this we can introduce the notion of a precondition :
Event triggers
We can use the same concept of preconditions to describe a trigger axiom, where the occurrence of an event depends on some observation of fluents :
Domain descriptions
An EC domain description is a collection of different kinds of formulae:
- represents situational and temporal observations such as
- represents occurrences such as
- represents trigger axioms such as
- represents event constraints such as
- represents event effects such as
- represents event axioms such as
We define some logical tasks that should be possible: Deduction - Determining what situation follows a given situation and narrative . Postdiction - Determining what situation may have preceded a narrative and resulted in the given situation . Abduction - Determining a plan of possible occurrences mediating between the initial and goal situations and .
We define these tasks to compose common-sense reasoning (CSR)
FOL entailment follows an open world assumption (OWA) which permits anything not known to be either true or false. This can be undesirable, so we allow the use of closed world assumption (CWA) semantics, which state that anything not known to be true must be taken to be false.
Planning Domain Definition Language
We can define an action by a list of pre-conditions, as well as its effects, which are lists of initiated and terminated fluents. Such a definition can be formally stated using Planning Domain Definition Language (PPDL):
action-type(
move(item, Room1, Room2),
pre-conds([in(item, Room1),
adjacent(Room1, Room2)]),
add-list([in(item, Room2)])
del-list([in(item, Room1)])
)