Taverna has now moved to the Apache Software Foundation. For updated information, see Apache Taverna (incubating).

6 Feb /12

SCUFL2: Taverna’s new workflow format


The myGrid team are pleased to announce the release of the first public beta version of the SCUFL2 API, Version 0.9.2.

SCUFL2 is the proposed new mechanism for specifying Taverna workflows, and forms the basis for our current development work on Taverna 3. SCUFL2 adopts Linked Data technology and preservation methodologies to create a platform-independent workflow language that can be inspected, modified, created and executed.

SCUFL2 comes with a Java API that can be used for programmatic access to read and write SCUFL2 workflow bundles. A workflow bundle is a structured ZIP file with the workflow definitions included as RDF/XML documents.

The workflow structure is defined using an OWL ontology and annotated with URIs so that third parties can form semantic statements about any component of a SCUFL2 workflow, for example to state that a particular service produces outputs of a certain type, or that a data link was added by a specific researcher.

Version 0.9.2 of the SCUFL2 is the first public beta release of the Java API for working with SCUFL2 workflow bundles. The main features are:

  • Standalone Java library, no external dependencies (optional dependency on JAXB)
  • Import Taverna 2 workflows (.t2flow)
  • Import/export SCUFL2 workflow bundles (.wfbundle)
  • API for inspecting, creating and modifying workflow structures (JavaDoc)

The API has also experimental support for importing Taverna 1 workflows (SCUFL 1) and performing structural validation of a workflow. Note that the API does not provide a way to execute the workflow (Taverna 3 platform will do this) and does not currently implement export to t2flow.

The team have provided a set of example SCUFL2 programs to show how the API can be used. Here is an extract from ServiceTypes.java, which shows which service types (WSDL, Beanshell, etc) have been used in a workflow:

Set types = new LinkedHashSet();
WorkflowBundleIO io = new WorkflowBundleIO();
File file = new File(filepath);
WorkflowBundle wfBundle = io.readBundle(file, null);
for (Profile profile : wfBundle.getProfiles()) {
  for (Activity activity : profile.getActivities()) {
    types.add(activity.getConfigurableType().toASCIIString());
  }
}

Note that this is a beta release of the API. Based on your feedback, we might be have to do minor changes to some methods or the Workflow Bundle file format for the 1.0 release, but will try to keep such changes to a minimum.

The myGrid team welcome developers to try SCUFL2 and contact us on the taverna-hackers mailing list with feedback, suggestions, bug reports, and most importantly, how they use or would like to use SCUFL2.

Quick links: