For an agent to intelligently use specifications of executable protocols, it is necessary that the agent can quickly and correctly assess the outcomes of that protocol if it is executed. In some cases, this information may be attached to the specification; however, this is not always the case. In this paper, we present an algorithm for deriving characterisations of protocols. These characterisations specify the preconditions under which the protocol can be executed, and the outcomes of this execution. The algorithm is applicable to definitions with infinite iteration, and recursive definitions that terminate. We prove how a restricted subset of non-terminating recursive protocols can be characterised by rewriting them into equivalent non-recursive definitions before characterisation. We then define a method for matching protocols from their characterisations. We prove that the complexity of the matching method is less than for methods such as a depth-first search algorithm. Our experi...