Skip to content

Commit 95e5ed7

Browse files
committed
Re-working the basic-concepts chapter
1 parent 052b217 commit 95e5ed7

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

src/basic-concepts.md

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,42 @@ requirements are supported in `cwltool`, but it is not part of the
4646
detail in another section.
4747
```
4848

49-
## CWL objects model
49+
## Processing units
5050

51-
TODO: reading this topic now in the browser, I wonder if perhaps it is not
52-
too advanced for users? Maybe we can explain inputs, steps, outputs,
53-
without going in detail about the CWL objects model?
51+
A CWL document can also be called a CWL workflow. The CWL document is a
52+
JSON or YAML file — or a combination of both JSON and YAML. One of the
53+
required attributes of the CWL document is the `class`. The `class`
54+
defines the type of processing unit defined in the CWL document.
5455

55-
The diagram below shows terms used in the CWL specification {{ cwl_version }}
56-
modeled as objects. You do not need to learn all these objects and their
57-
concepts to get started with CWL. We will focus on only a few objects for now.
56+
There are four types of processing units defined in the CWL specification
57+
{{ cwl_version }}:
5858

59-
```{image} https://www.commonwl.org/v1.2/cwl.svg
60-
:alt: CWL Objects model
61-
:align: center
59+
- Command-line tool;
60+
- Expression tool;
61+
- Workflow;
62+
- Operation.
63+
64+
### Command-line tool
65+
66+
### Expression tool
67+
68+
### Workflow
69+
70+
Besides having `class: Workflow`, the CWL document of a workflow processing
71+
unit must also have the `cwlVersion`, `inputs`, `outputs`, and `steps`. The
72+
steps of a workflow.
73+
74+
```cwl
75+
cwlVersion: {{ cwl_version_text }}
76+
class: Workflow
77+
78+
inputs: []
79+
steps: []
80+
outputs: []
6281
```
6382

83+
A workflow step can call a command-line tool or expression tool.
84+
6485
First we have the `Process` object used for the processing units available
6586
in CWL. There are four types in CWL that extend the `Process` type:
6687

@@ -92,7 +113,7 @@ digraph "CWL Inputs, Steps, and Outputs" {
92113
}
93114
```
94115

95-
### Inputs and Outputs
116+
## Inputs and Outputs
96117

97118
CWL has roots in "make" and many similar tools that determine order of
98119
execution based on dependencies between tasks. However, unlike "make", CWL
@@ -103,7 +124,7 @@ scalability: tools and workflows described with CWL can transparently leverage
103124
technologies such as Docker and be used with CWL implementations from different
104125
vendors.
105126

106-
### Steps
127+
## Steps
107128

108129
TODO: add info about steps (there must be some info in the old user guide?)
109130

0 commit comments

Comments
 (0)