TY - JOUR
T1 - Combining transactions and automatic repairs
AU - Gomes, Ana Sofia
AU - Alferes, José Júlio
N1 - info:eu-repo/grantAgreement/FCT/SFRH/SFRH%2FBD%2F64038%2F2009/PT#
info:eu-repo/grantAgreement/FCT/3599-PPCDT/121823/PT#
PY - 2018/4/20
Y1 - 2018/4/20
N2 - 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.
AB - 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.
KW - automatic compensations
KW - External transaction logic
KW - repair plans
UR - http://www.scopus.com/inward/record.url?scp=85062185886&partnerID=8YFLogxK
U2 - 10.1093/logcom/exv006
DO - 10.1093/logcom/exv006
M3 - Article
AN - SCOPUS:85062185886
SN - 0955-792X
VL - 28
SP - 525
EP - 550
JO - Journal Of Logic And Computation
JF - Journal Of Logic And Computation
IS - 3
ER -