Examples
Worked examples
- Is an instance
A genomics pipeline distributed as CWL and run unchanged on AWS Batch, on Slurm, and on a local cwltool installation.
- Is an instance
A WDL workflow executed on Cromwell at the Broad Institute and on Terra in the cloud.
Counter-examples
Looks similar, but isn't
- Not an instance
A bash script that calls tools in sequence (no portable specification).
- Not an instance
A Python script that pipes stages internally without an external workflow descriptor.
Editorial commentary
Common Workflow Language (CWL) and Workflow Description Language (WDL) are the two most widely adopted standards in genomics and large-scale computational biology, with execution engines including cwltool, Toil, Cromwell, miniWDL, and Arvados. Workflow languages support computational reproducibility by separating 'what to compute' from 'where to run it'.
References
- Crusoe et al., 'Methods Included: Standardizing Computational Reuse and Portability with the Common Workflow Language' (Communications of the ACM, 2022).
CWL and WDL compared
Common Workflow Language (CWL) is a YAML/JSON-based specification maintained by an open, multi-institution community (commonwl.org) under the umbrella of the Global Alliance for Genomics and Health (GA4GH). CWL expresses each analysis step as a typed CommandLineTool or nested Workflow with explicit input/output ports, which makes it verbose but highly portable: the same CWL document can run on cwltool, Toil, Arvados, or a cloud batch engine without modification. Workflow Description Language (WDL) originated at the Broad Institute for GATK-based genomics pipelines and favors a more scripting-like syntax that is faster to write for small-to-medium pipelines. WDL is most closely associated with the Cromwell execution engine (and the lighter-weight miniWDL) and underpins the GATK best-practices and Terra cloud ecosystems.
Relationship to Nextflow and Snakemake
Nextflow and Snakemake are also widely used for computational pipelines, but they differ structurally from CWL/WDL. Nextflow is a Groovy-based domain-specific language with a dataflow programming model: processes communicate through channels, which makes parallelization across HPC clusters and cloud infrastructure natural, and it has a large community around the nf-core project. Snakemake is Python-based and file-oriented, with rules written in a clean, Makefile-inspired syntax under Python logic — it tends to feel most natural to researchers already comfortable scripting in Python. CWL and WDL were designed primarily as portable interchange formats decoupled from any single engine; Nextflow and Snakemake are workflow languages that are more tightly coupled to their own execution engines, though CWL runners exist for several of them. See the Snakemake vs Nextflow comparison for a fuller breakdown of the two most common choices in practice.
Why workflow languages matter for computational reproducibility
A declarative workflow specification separates what to compute from where and how it runs, so a pipeline described in CWL or WDL can, in principle, be re-executed years later on different infrastructure and still produce the same logical steps. Combined with containerized software environments (Docker, Singularity/Apptainer) referenced per step, a workflow language turns an ad hoc sequence of scripts into an auditable, versionable, and shareable computational method. This is a core piece of what CASRAI’s reproducibility infrastructure entry describes, and it directly supports computational reproducibility claims made in a paper’s methods section.
References
- Crusoe et al., ‘Methods Included: Standardizing Computational Reuse and Portability with the Common Workflow Language’ (Communications of the ACM, 2022).
- commonwl.org — Common Workflow Language project documentation.
- openwdl.org — Workflow Description Language specification and documentation.
Also known as
CWL · WDL · workflow specification language
Machine-readable encodings
Use in your systems
<role vocab="credit"
vocab-identifier="https://casrai.org/dictionary/"
vocab-term="Workflow Language (CWL/WDL)"
vocab-term-identifier="https://casrai.org/dictionary/term/workflow-language-cwl-wdl" />{
"@context": "https://schema.org",
"@type": "DefinedTerm",
"@id": "https://casrai.org/dictionary/term/workflow-language-cwl-wdl",
"name": "Workflow Language (CWL/WDL)",
"identifier": "https://casrai.org/dictionary/term/workflow-language-cwl-wdl",
"description": "A declarative specification language for describing multi-step computational analyses such that the steps, their inputs and outputs, and their software dependencies are portable across compatible workflow execution engines.",
"inDefinedTermSet": "https://casrai.org/dictionary/domain/reproducibility#set",
"url": "https://casrai.org/dictionary/term/workflow-language-cwl-wdl",
"sameAs": [
"CWL",
"WDL",
"workflow specification language"
],
"license": "https://creativecommons.org/licenses/by/4.0/",
"publisher": {
"@id": "https://casrai.org/#organization"
},
"author": {
"@id": "https://casrai.org/#editorial-team"
},
"datePublished": "2026-05-21T02:22:49",
"dateModified": "2026-08-23T06:25:21",
"inLanguage": "en-GB",
"isAccessibleForFree": true
}







