Scufl2 has moved to Apache (incubator) 

Information in this section is out of date!


The definition of a workflow, its processors, inputs/outputs and links.

Each nested workflow (and nested nested workflows etc.) exists in a separate file within the /workflow/ folder in the bundle. The bundle's research object defines what is the top level workflow.


Each workflow must have a unique name within the bundle's workflow files. The base part of the file name (excluding extension) must match the scufl2:name of the workflow.

Workflows used in a particular research object are globally identified as <$uuid/workflow/$workflowName/> - for instance <>.

As it can be useful to identify nested workflows included in several workflow bundles, each workflow must also have a scufl2:workflowIdentifier property, which URI must be on the form <$uuid>, for example <>. It is responsibility of the software creating or modifying the workflow to generate a new workflowIdentifier as soon as the workflow has changed. (The randomly generated UUID of the workflow must not match the UUID of a research object or any other workflow.) The owning research object should then also be assigned a new UUID. (Note that editing metadata and bindings in other files don't update the workflow, but still update the research object.)

The workflow file should set the @base to the form <workflow/$name>} so that nested resources can be referenced relatively, like {{<processor/$processorName>.


@base <workflow/Helloworld/>
@prefix scufl2: <> .

    a scufl2:Workflow ;
    scufl2:name "Helloworld" ;
    scufl2:inputWorkflowPort <in/yourName> ;
    scufl2:outputWorkflowPort <out/results> ;
    scufl2:datalink <datalink/1>, <datalink/2> ;
    scufl2:processor <processor/Hello> .

This example defines the workflow "HelloWorld". It contains one workflow input port and one workflow output port, in addition to a single processor and two datalinks.

The nested resources for this workflow, such as InputWorkflowPort , OutputWorkflowPort, DataLink, Processor and their children should be described in the same file as the workflow itself. Additional metadata should be added to an /annotations/ file.


Bundle links

All nested workflow resources should also be defined in the same archive file as this workflow. Their URIs must be relative to this workflow, their type and scufl2:name. So for instance <workflow/Helloworld/processor/Hello> is a scufl2:Processor in <workflow/Helloworld>, and has a scufl2:name "Hello".