Incomputer science, anaction language is a language for specifyingstate transition systems, and is commonly used to createformal models of the effects of actions on the world.[1] Action languages are commonly used in theartificial intelligence androbotics domains, where they describe how actions affect the states of systems over time, and may be used forautomated planning.
Action languages fall into two classes:action description languages and action query languages. Examples of the former includeSTRIPS,PDDL, Language A (a generalization of STRIPS; the propositional part of Pednault'sADL), Language B (an extension of A addingindirect effects, distinguishing static and dynamic laws) and Language C (which adds indirect effects also, and does not assume that every fluent is automatically "inertial"). There are also the Action Query Languages P, Q and R. Several different algorithms exist for converting action languages, and in particular, action language C, toanswer set programs.[2][3] Since modern answer-set solvers make use ofBoolean SAT algorithms to very rapidly ascertainsatisfiability, this implies that action languages can also enjoy the progress being made in the domain of Boolean SAT solving.
All action languages supplement the definition of astate transition system with a setF offluents, a setV of values that fluents may take, and a function mappingS ×F toV, whereS is the set of states of a state transition system.