0.2. Describing Actions

Describing transition systems is one of the main uses of the input language of CCalc. The CCalc approach to this task is based on action language C+ from the paper "Nonmonotonic Causal Theories" (NMCT) by Enrico Giunchiglia, Joohyung Lee, Vladimir Lifschitz, Norman McCain and Hudson Turner (Artificial Intelligence, Vol. 153, 2004).

C+ is an enhancement of action language A proposed by Michael Gelfond and Vladimir Lifschitz in 1993 (Journal of Logic Programming, Vol. 17). Both languages describe effects of actions by sets of propositions, such as

a causes p.

Language C+ is more expressive than A: it allows us to describe transition systems with concurrently executed actions, and also transition systems with non-Boolean fluents. Here are some other differences.

A precise description of the syntax and semantics of C+ can be found in NMCT. This tutorial provides informal explanations and examples that will help you describe transition systems in the language of CCalc even if you are not familiar with that paper.

The fragment of the input language of CCalc that deals with describing actions is intended to be an elaboration tolerant formalism. This idea is characterized by John McCarthy in the paper Elaboration Tolerance (in progress) in these words:

A formalism is elaboration tolerant to the extent that it is convenient to modify a set of facts expressed in the formalism to take into account new phenomena or changed circumstances. Representations of information in natural language have good elaboration tolerance when used with human background knowledge. Human-level AI will require representations with much more elaboration tolerance than those used by present AI programs, because human-level AI needs to be able to take new phenomena into account.

The simplest kind of elaboration is the addition of new formulas. We'll call these additive elaborations. Next comes changing the values of parameters. Adding new arguments to functions and predicates represents more of a change.


Forward to Section 0.3: Queries
Back to Section 0.1: Transition Systems
Up to the Table of Contents