/* * Anticipated failure variant of CNP * (See Baldoni, Baroglio, and Marengo. * Constraints Among Commitments: Regulative Specification of Interaction Protocols. Agent communication 2010) */ constitutive : send_cfp means create(c(initiator,participant,assigned_task)), sent_cfp if !sent_cfp. send_proposal means create(c(participant,initiator,solved_task)), sent_proposal if !sent_proposal. send_refusal means release(c(initiator,participant,assigned_task)), refused_task if created(c(initiator,participant,assigned_task)) & !refused_task. send_accept means assigned_task if !assigned_task & !failed. send_reject means cancel(c(initiator,participant,assigned_task)), release(c(participant,initiator,solved_task)), rejected_proposal if created(c(participant,initiator,solved_task)) & !rejected_proposal. send_done means solved_task if !solved_task. send_failure means cancel(c(participant,initiator,solved_task)), release(c(initiator,participant,assigned_task)), failed if !failed. regulative : created(c(initiator,participant,assigned_task)) ->. created(c(participant,initiator,solved_task)) | refused_task. created(c(participant,initiator,solved_task)) .->. rejected_proposal | assigned_task. assigned_task .-> solved_task | failed. assigned_task ->. solved_task. created(c(participant,initiator,solved_task)) ./. refused_task. rejected_proposal ./. assigned_task. solved_task ./. failed.