Fausto Giunchiglia, Luca Spalazzi, and Paolo Traverso
Many real world applications require systems with both reasoning and sensing/acting capabilities. However, most often, these systems do not work properly, i.e. they fall to execute actions and rarely perceive the external world correctly. No action, even if apparently simple, is guaranteed to succeed and, therefore, no planning can be sound (with respect to the real world) without taking into account failure. In this paper, we present a theory of planning that provides (1) a language that allows us to express failure; (2) a declarative formal semantics for this language; (3) a logic for reasoning about (possibly failing) plans.