# Concise Common Workflow Language (ccwl)

**URL:** <https://cwl.discourse.group/t/concise-common-workflow-language-ccwl/880>\
**Category:** CWLCon 2024\
**Created:** [April 25, 2024, 1:28pm UTC](https://cwl.discourse.group/t/concise-common-workflow-language-ccwl/880 "2024-04-25T13:28:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![manabuishii](https://yyz2.discourse-cdn.com/free1/user_avatar/cwl.discourse.group/manabuishii/32/513_2.png) [@manabuishii](https://cwl.discourse.group/u/manabuishii)\
**Post date:** [April 25, 2024, 1:28pm UTC](https://cwl.discourse.group/t/concise-common-workflow-language-ccwl/880/1 "2024-04-25T13:28:46Z")

</div>

Presenter: [Arun Isaac](https://orcid.org/0000-0002-6810-8195)

Schedule: [Session 3 (Amsterdam / Online hybrid)  
Wednesday 15 May  
APAC-EMEA Friendly time](https://www.commonwl.org/conferences/2024/#session3)

Summary: The Common Workflow Language (CWL) is a standardized workflow language that is portable to a wide variety of software and hardware environments. Yet, CWL workflow specifications are verbose, span multiple files, and are challenging to hold within one’s working memory.

A workflow language is essentially a means to string together commands in a specific order, and should aspire to the simplicity of a shell script or a Makefile. Higher level workflow languages that compile to CWL can enhance human readability/writability while keeping the hard-won gains of CWL and its standards. Thus CWL would become a kind of assembly language that many different workflow languages compile  
to.

In this talk, I will present the Concise Common Workflow Language (ccwl). ccwl is a workflow language that compiles to CWL. It strives for minimalism, concision of syntax and high-quality compiler error messages. It is currently being used in real-world pangenomics workflows on HPC using toil. I will demonstrate the expressive power of ccwl with illustrative examples.

[https://ccwl.systemreboot.net/](https://ccwl.systemreboot.net/)  
[https://github.com/arunisaac/ccwl](https://github.com/arunisaac/ccwl)

**Please leave your questions for the presenter below!**

[![](https://global.discourse-cdn.com/free1/uploads/cwl1/original/1X/5754b31b2d2eb34b55c5de4b7062a7d839d1841d.jpeg "Concise Common Workflow Language (ccwl)") ](https://www.youtube.com/watch?v=Um2l2NdBiac)

As an alternative to YouTube, this presentations is also available on ConfTube

https://conf.tube/videos/embed/5cb3b7c9-6b7b-485a-a053-964924592920

---

<div class="post-metadata">

**Author:** ![Ryan\_G](https://yyz2.discourse-cdn.com/free1/user_avatar/cwl.discourse.group/ryan_g/32/534_2.png) [@Ryan\_G](https://cwl.discourse.group/u/Ryan_G)\
**Post date:** [May 8, 2024, 3:18pm UTC](https://cwl.discourse.group/t/concise-common-workflow-language-ccwl/880/2 "2024-05-08T15:18:18Z")

</div>

This is interesting. Back in the day I would write pipelines in shell scripts. I always wondered about converting/transcompiling a shell script into a cwl workflow. I wonder if this can be adopted to support this instead of introducing another language…

e.g.

```auto
#!/bin/bash

# This is step 1
# inputs are...
bwa ...
# outputs are...

# This is step 2
# inputs are ...
samtools sort ...
# outputs are ....

```

Here, each step in the shell script would be a step of the workflow.
