Skip to content

Common Workflow Language

Common Workflow Language (CWL) is an open standard for describing computational tools, workflows, and their data dependencies independently of a particular execution platform. CWL documents are commonly written in YAML.

CWL wraps existing applications rather than replacing their implementation. Your Python script or compiled program performs the processing; CWL describes how to invoke it, which data it needs, and how to collect its outputs.

Tools and workflows

A CommandLineTool describes an application command, its arguments, inputs, outputs, and runtime requirements. A Workflow connects tools or subworkflows through a dependency graph. An ExpressionTool produces outputs by evaluating CWL expressions rather than invoking an application command.

The execution engine runs a step when its required inputs are available. Independent invocations can run concurrently when the engine and resources allow it. Dependencies describe more than a fixed sequence of shell commands; workflows can also use conditional execution and scatter operations.

Requirements and hints

Runtime declarations describe matters such as container images, CPU, memory, and expression support. Requirements and hints are not interchangeable: an engine must satisfy supported mandatory requirements to execute correctly, while hints can be ignored if they are not supported.

AntFlow also uses metadata to build process descriptions and input forms. The CWL reference explains supported form annotations, secret inputs, resource declarations, and launcher flavors.

Portability and reproducibility

Explicit interfaces and dependencies make workflows easier to share and repeat, but CWL alone does not guarantee identical results everywhere. Container versions, input data, external services, supported extensions, and execution configuration still matter.

Validate the definition and test the workflow on each target environment. Passing validation is not proof that an image, command, or data source works. A direct local runner test is also separate from an AntFlow job.

Learn CWL

Start with the CWL user guide for tool descriptions and workflow composition. Use the CWL v1.2 specification for authoritative language details, including CommandLineTool and Workflow.

Create your first workflow demonstrates a complete AntFlow example. Application packages explains how the definition fits into a reusable application.