Towards a modular action description language

This is a preliminary report on the design of a modular language for describing actions. In the new language, an action description consists of several modules; each module describes a set of interrelated fluents and actions. “Import statements” allow the user to provide references to other modules and thus characterize new fluents and actions by relating them to others, introduced earlier. This capability is essential for designing a repository of background knowledge involving actions, because descriptions of specific action domains will need to “import” parts of the repository. Introduction This is a preliminary report on the design of a new language for describing actions. This Modular Action Description language, or MAD, is based on the action language C+ (Giunchiglia et al. 2004) but differs from it in that a MAD action description generally consists of several modules M1, . . . ,Mn that may contain references to other modules. A module Mi can use, or “import,” any of the modules M1, . . . ,Mi−1, possibly in several ways. Each module describes a set of interrelated fluents and actions. Import statements allow the user to characterize new fluents and actions by relating them to others, introduced earlier. When a module Mi imports a module Mj , it “inherits” the knowledge encoded in Mj , possibly restricted to a specialized context and expressed in different notation. The new expressive capabilities of MAD are essential for designing a repository of background knowledge involving actions, because descriptions of specific action domains will need to import parts of the repository. MAD will also help us organize a repository of background knowledge in a hierarchical way, with modules of a more general nature imported by more specialized modules. Erdogan and Lifschitz (2005) argue that ability to define more specific kinds of actions in terms of more general kinds is important because this is what human often do when they describe actions informally. For instance, the dictionary explains walk as “move by foot,” Copyright c © 2006, American Association for Artificial Intelligence (www.aaai.org). All rights reserved. and climb as “go up or down.” These explanations of the words walk and climb do not list the effects of these actions; rather, they present these actions as special cases of some other actions that are supposed to be already familiar to us. The most fundamental actions still need to be described directly in terms of the changes that they cause. The word move, for instance, means “cause to change position,” according to the dictionary. But in many cases the best way to describe an action is to relate it to something more general. The language MAD will allow us to do this on the basis of a precisely defined semantics. Besides actions, some authors introduce “strategies,” or “programs” (McCarthy and Hayes 1969; Levesque et al. 1998), which are formed from actions using operations similar to the programming constructs found in procedural programming languages (sequential and parallel composition, loop, etc.) Actions are characterized in terms of their behavior; strategies, in terms of their structure. In this note we limit attention to actions and do not discuss strategies. Reusable modules in the context of declarative programming and knowledge representation have been discussed by many authors; see, for instance, (Bugliesi et al. 1994), (Amir 1999), (Barker et al. 2001), (Gustafsson and Kvarnstrom 2004), (Ianni et al. 2004). This paper is different from the earlier work in that its goal is to define a language for describing transition systems— directed graphs whose vertices are states, and whose edges are labeled by events. Assuming that the reader has some familiarity with action language C+, we discuss here a series of examples illustrating the main elements of the syntax and semantics of MAD and the applicability of the new language to the problem of compiling a general-purpose database of knowledge about fluents and actions. The last part of the paper outlines the syntax and semantics of a fragment of MAD. Single-module action descriptions MAD as a superset of C+ MAD is a superset of C+ in the sense that any action description in C+ can be easily rewritten as a MAD