The majority of components within a workflow are computer based, data sources, analysis algorithms and the like. In many analyses, however, there is a requirement to interact with people as part of the analysis process. This raises an issue - how can we define a human interaction within a workflow? The solution adopted here is the Interaction Service, an extensible mediation layer inbetween the automated workflow system and a user or users.

Once you have an interaction service (or access to someone else's) you can add it to the Taverna services panel like any other resource. This will expose all available interaction patterns as processors to add to the workflow. The interaction pattern defines the input data for the interaction, the method by which the interaction takes place and the result data. We have two default patterns available, a simple 'accept or reject' pattern and a more complex one based on a modified form of the Artemis sequence editor.
The patterns will, when invoked, send an email to the target user. This email consists of various HTTP links which the user selects to either reject the interaction or proceed. In the case of the trivial 'accept / reject' pattern the data to be reviewed is sent in the email (so text only) and links below the data allow the user to accept or reject the data, the decision is sent back to the workflow engine and appears as the output of the interaction processor. The sequence review processor is significantly more complex; the link causes a modified version of Artemis to load on the user's desktop - the modification allows us to populate the sequence editor pane with the input data from the interaction processor. The user edits the annotation as per usual and commits it back along with a textual comment describing the changes and, as before, the workflow continues.
