Combining transactions and automatic repairs

Research output: Contribution to journalArticlepeer-review


External Transaction Logic (ETR) is an extension of logic programming useful to reason about the behaviour of agents that have to operate in a transactional way, in a two-fold environment: an internal knowledge base defining the agent's internal knowledge and rules of behaviour, and an external world where it executes actions and interacts with other entities. Actions performed by the agent in the external world may fail, e.g. because their preconditions are not met, or because they violate some norm of the external environment. The failure to execute some action should lead, in the internal knowledge base, to its complete rollback, following the standard ACID transaction model used e.g. in databases. Since it is impossible to rollback external actions performed in the outside world, external consistency must be achieved by executing compensating operations (or repairs) that revert the effects of the initial executed actions. In ETR, repairs are stated explicitly in the program. With it, every performed external action is explicitly associated with its corresponding compensation or repair. Such user-defined repairs provide no guarantee to revert the effects of the original action. In this article, we define how ETR can be extended to automatically calculate compensations in case of failure. For this, we start by explaining how the semantics of Action Languages can be used to model the external domain of ETR, and how we can use it to reason about the reversals of actions.

Original languageEnglish
Pages (from-to)525-550
Number of pages26
JournalJournal Of Logic And Computation
Issue number3
Publication statusPublished - 20 Apr 2018


  • automatic compensations
  • External transaction logic
  • repair plans


Dive into the research topics of 'Combining transactions and automatic repairs'. Together they form a unique fingerprint.

Cite this