We provide here a collection of examples of interaction models taken from our test cases, based on areas such as bioinformatics, business and emergency response.

An LCC model only defines the abstract exchange of messages between peers, and the preconditions and postconditions on those message. The messages and the constraints are first order predicates, and the arguments are variables.

However, constraints need to be matched against methods in OKCs. The OKC methods are described by the Java Annotation @MethodSemantic:

@MethodSemantic(
language="tag";
args={"title"}
)

public boolean askTitle(Argument t){...}

The arguments can be complex objects:

@MethodSemantic(
language="tag";
args={"email(subject,priority,body)"}
)

public boolean writeEmail(Argument email){...}

In this case, the argument email will contain a structure composed of three elements:

 email
    |- subject
    |- priority
    |- body  

Interaction Models can be annotated as well. The annotations mechanism is general and can be used for different purposes. In particular, the LCC annotations are used to semantically annotate the variables in roles and to annotate messages and constraints for enabling their logging during an interaction run.