/* * Zealous participant 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 : sent_cfp .-> sent_proposal ^ refused_task. sent_proposal .->. assigned_task ^ rejected_proposal. assigned_task .->. solved_task ^ failed.