MAD: the Modular Action Description language

The Modular Action Description language MAD was introduced in [Lifschitz and Ren, 2006].  It is a descendant of the C+ action language described in [Giunchiglia et al., 2004] and of the Causal Calculator (CCalc).  MAD extends C+ by adding the capability to split action descriptions into modules, and allowing action/fluent constants to be redefined during the process of "importing" a module.  Its semantics is based on that of C+.


Team

MAD is a project of the the Texas Action Group at Austin, a research group led by Vladimir Lifschitz, and part of a larger community -- the Texas Action Group.  Members of our group working on MAD are:

Software

The current implementation of MAD processes a modular action description and transforms it into a single-module action description, but does not do any reasoning itself.  Instead, the single-module description may be output in the language of the Causal Calculator, which can then be used as a reasoning engine.  In the near future we intend to add the capability  to transform MAD action descriptions into an implemented language of answer set programming.

MAD version 0.4 was released on 10 July 2008.

(Revision 0.4r1 was released on 12 August 2008 and contains a few minor updates to example formalizations.
 Revision 0.4r2 was released on 19 March 2009 as a result of fixing some bugs in the implementation.)

Download

The program, the user's manual, and some example formalizations are available as a tarred, gzipped file:
mad-0.4r2.tar.gz

In order to run the Causal Calculator on the output of MAD, you will need to get a copy from the CCalc homepage.

System Requirements

The software is written in the C programming language. In order to build MAD from source, one needs a C compiler, a Lex-like lexical analyzer generator, and a Yacc-like parser generator.

We have tested our software on Unix/Linux-like systems and used the following programs to build MAD from source:

CCalc runs on Unix/Linux-like systems and requires a Prolog implementation.  More information may be found on the CCalc homepage.

Here are a couple of example combinations with which we have successfully tested MAD:


Papers

[Erdoğan, 2008] is a dissertation about how MAD was used to build a library of general-purpose action descriptions and how this library was used to formalize many domains from the knowledge representation literature.  In addition to the library modules and several domains, it contains a detailed treatment of the latest version of the MAD language and implementation.  (Note: The version of MAD software used in the dissertation was 0.4r1.  Please contact us separately if you would like a copy of this older version.)

MAD was first introduced in [Lifschitz and Ren, 2006].  It is a descendant of the C+ action language described in [Giunchiglia et al., 2004] and of the the Causal Calculator (CCalc). MAD extends C+ by adding the capability to have modules and to redefine action/fluent constants during the process of "importing" a module.  Its semantics is based on that of C+.

Some motivation and theoretical background for extending C+ with library modules can be found in [Erdoğan and Lifschitz, 2006] and an early example of MAD being used can be found in [Erdoğan et al., 2007].  Recent work in [Lifschitz and Ren, 2007] has begun to extend the semantics of C+, and these extensions will also be inherited by MAD.

Contacting Us

Please send any comments, questions, or bug reports to Selim T. Erdoğan: selim@cs.utexas.edu