Event Calculus Article Index for
Event
Website Links For
Event
 

Information About

Event Calculus





FLUENTS AND ACTIONS


In the event calculus, fluents are reified. This means that statements are not formalized as Predicate s but as Function s. A separate predicate HoldsAt is used to tell which fluents holds at a given time point. For example, 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.

Actions are also represented as terms. The effects of actions are given using the predicates Initiates and Terminates. In particular, Initiates(a,f,t) means that the action represented by the term a has been executed at time t, and that resulted in making the fluent f true. The Terminates predicate has a similar meaning, with the only difference is that f is made false and not true.


DOMAIN-INDEPENDENT AXIOMS


Like other languages for representing actions, the event calculus formalizes the correct evolution of the fluent via formulae telling the value of the 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 Axiom s 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.

:HoldsAt(f,t) \leftarrow
[Happens(a,t_1) \wedge Initiated(a,f,t_1)
\wedge (t_1 eg Clipped(t_1,f,t)]

This formula means that the fluent represented by the term f is true at time t if:

# an action a has taken place: Happens(a,t_1);
# this took place in the past: t_1;
# this action has the fluent as an effect: Initiated(a,f,t_1);
# the fluent has not been made false in the meantime: Clipped(t_1,f,t)

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 formalize fluents before they have been effects of an action. These formula e are similar to the above, but Happens(a,t_1) \wedge Initiated(a,f,t_1) is replaced by 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:

:Clipped(t_1,f,t) \equiv
\exists a,t
\wedge (t_1 \leq t_2 < t) \wedge Terminates(a,f,t_2)


DOMAIN-DEPENDENT AXIOMS


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 actions actually make fluents true or false. This is done by using a set of domain-dependent axioms. The known values of fluents are states as simple literals HoldsAt(f,t). The effects of actions are states by formulae relating the effects of actions with their preconditions. For example, if the action open makes the fluent isopen true, but only if haskey is currently true, the corresponding formula in the event calculus is:

:Initiates(a,f,t) \equiv
a=open \wedge f=isopen \wedge HoldsAt(haskey, t) ee ...


The right-hand expression of this equivalence is composed of a disjunction: for each action and fluent that can be made true by the action, there is a disjunct saying that a is actually that action, that f is actually that fluent, and that the precondition of the action is met.

The formula above specifies the truth value of Initiates(a,f,t) for every possible action and fluent. As a result, all effects of all actions have to be combined in a single formulae. This is a problem, because the addition of a new action requires modifying an existing formula rather than adding new ones. This problem can be solved by the application of Circumscription to a set of formulae each specifying one effect of one action:

: Initiates(open, isopen, t) \leftarrow HoldsAt(haskey, t)
: Initiates(break, isopen, t) \leftarrow HoldsAt(hashammer, t)
: Initiates(break, broken, t) \leftarrow HoldsAt(hashammer, t)

These formulae are simpler than the formula above, because each effect of each action can be specified separately. The single formula telling which actions a and fleunts f make Initiates(a,f,t) true has been replaced by a set of smaller formulae, each one telling the effect of an action to a fluent.

However, these formulae are not equivalent to the formula above. Indeed, they only specify sufficient conditions for Initiates(a,f,t) to be true, which should be completed by the fact that Initiates is false in all other cases. This fact can be formalized by simply circumscribing the predicate Initiates in the formula above. It is important to note that this circumscription is done only on the formulae specifying Initiates and not on the domain-independent axioms. The predicate Terminates can be specified in the same way Initiates is.

A similar approach can be taken for the Happens predicate. The evaluation of this predicate can be enforced by formulae specifying not only when it is true and when it is false:

:Happens(a,t) \equiv
(a=open \wedge t=0) ee (a=exit \wedge t=1) ee \cdots

Circumscription can simplify this specification, as only necessary conditions can be specified:

:Happens(open, 0)
:Happens(exit, 1)

Circumscribing the predicate Happens, this predicate will be false in all points in which it is not explicitly specified to be true. This circumscription has to be done separately from the circumscription of the other formulae. In other words, if F is the set of formulae of the kind Initiates(a,f,t) \leftarrow ..., G is the set of formulae Happens(a, t), and H are the domain independent axioms, the correct formulation of the domain is:

:Circ(F; Initiates, Terminates) \wedge
Circ(G; Happens) \wedge H


EXTENSIONS


Extensions of the event calculus can formalize narratives, non-deterministic actions, concurrent actions, actions with delayed effects, gradual changes, actions with duration, continuous change, and non-inertial fluents.


SEE ALSO




REFERENCE