Abstract
Interactions between agents are usually designed from a global viewpoint. However, the implementation of a multi-agent interaction is distributed. It is well known that this difference between the specification and the implementation levels can introduce problems, allowing designers to specify protocols from a global viewpoint that cannot be implemented as a collection of individual agents. This leads naturally to the question of whether a given (global) protocol is enactable, namely, whether it can be implemented in a distributed way. We consider this question in the powerful setting of trace expressions, considering a range of message ordering interpretations (specifying what it means to say that an interaction step occurs before another), and a range of possible constraints on the semantics of message delivery, corresponding to different properties of the underlying communication middleware. We provide a definition of enactability, along with an implementation of the definition that is applied to a number of example protocols.