language-icon Old Web
English
Sign In

Event calculus

The event calculus is a logical language for representing and reasoning about events and their effects first presented by Robert Kowalski and Marek Sergot in 1986.It was extended by Murray Shanahan and Rob Miller in the 1990s. Similar to other languages for reasoning about change, the event calculus represents the effects of actions on fluents. However, events can also be external to the system. In the event calculus, one can specify the value of fluents at some given time points, the events that take place at given time points, and their effects. The event calculus is a logical language for representing and reasoning about events and their effects first presented by Robert Kowalski and Marek Sergot in 1986.It was extended by Murray Shanahan and Rob Miller in the 1990s. Similar to other languages for reasoning about change, the event calculus represents the effects of actions on fluents. However, events can also be external to the system. In the event calculus, one can specify the value of fluents at some given time points, the events that take place at given time points, and their effects. In the event calculus, fluents are reified. This means that they are not formalized by means of predicates but by means of functions. A separate predicate HoldsAt is used to tell which fluents hold at a given time point. For example, H o l d s A t ( o n ( b o x , t a b l e ) , t ) {displaystyle {mathit {HoldsAt}}(on(box,table),t)} means that the box is on the table at time t; in this formula, HoldsAt is a predicate while on is a function. Events are also represented as terms. The effects of events are given using the predicates Initiates and Terminates. In particular, I n i t i a t e s ( e , f , t ) {displaystyle {mathit {Initiates}}(e,f,t)} means that,if the event represented by the term e is executed at time t,then the fluent f will be true after t.The Terminates predicate has a similar meaning, with the only difference being that f will be false and not true after t. Like other languages for representing actions, the event calculus formalizes the correct evolution of the fluent via formulae telling the value of each fluent after an arbitrary action has been performed. The event calculus solves the frame problem in a way that is similar to the successor state axioms of the situation calculus: a fluent is true at time t if and only if it has been made true in the past and has not been made false in the meantime. This formula means that the fluent represented by the term f is true at time t if: A similar formula is used to formalize the opposite case in which a fluent is false at a given time. Other formulae are also needed for correctly formalizing fluents before they have been effects of an event. These formulae are similar to the above, but H a p p e n s ( e , t 1 ) ∧ I n i t i a t e s ( e , f , t 1 ) {displaystyle {mathit {Happens}}(e,t_{1})wedge {mathit {Initiates}}(e,f,t_{1})} is replaced by H o l d s A t ( f , t 1 ) {displaystyle {mathit {HoldsAt}}(f,t_{1})} . The Clipped predicate, stating that a fluent has been made false during an interval, can be axiomatized, or simply taken as a shorthand, as follows: The axioms above relate the value of the predicates HoldsAt, Initiates and Terminates, but do not specify which fluents are known to be true and which events actually make fluents true or false. This is done by using a set of domain-dependent axioms. The known values of fluents are stated as simple literals H o l d s A t ( f , t ) {displaystyle {mathit {HoldsAt}}(f,t)} . The effects of events are stated by formulae relating the effects of events with their preconditions. For example, if the event open makes the fluent isopen true, but only if haskey is currently true, the corresponding formula in the event calculus is: The right-hand expression of this equivalence is composed of a disjunction: for each event and fluent that can be made true by the event, there is a disjunct saying that e is actually that event, that f is actually that fluent, and that the precondition of the event is met.

[ "Algorithm", "Artificial intelligence", "Programming language" ]
Parent Topic
Child Topic
    No Parent Topic