Skip to content

Commit af98a22

Browse files
author
Curoverse build bot
committed
Build bot
1 parent f69e5f8 commit af98a22

File tree

1 file changed

+45
-29
lines changed

1 file changed

+45
-29
lines changed

draft-2/index.html

Lines changed: 45 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
</ol><li><a href="#syntax">2.2 Syntax</a><ol class="nav nav-pills nav-stacked nav-secondary">
8484
</ol><li><a href="#identifiers">2.3 Identifiers</a><ol class="nav nav-pills nav-stacked nav-secondary">
8585
</ol><li><a href="#document_preprocessing">2.4 Document preprocessing</a><ol class="nav nav-pills nav-stacked nav-secondary">
86+
</ol><li><a href="#extensions_and_metadata">2.5 Extensions and Metadata</a><ol class="nav nav-pills nav-stacked nav-secondary">
8687
</ol></li></ol><li><a href="#execution_model">3. Execution model</a><ol class="nav nav-pills nav-stacked nav-secondary">
8788
<li><a href="#execution_concepts">3.1 Execution concepts</a><ol class="nav nav-pills nav-stacked nav-secondary">
8889
</ol><li><a href="#generic_execution_process">3.2 Generic execution process</a><ol class="nav nav-pills nav-stacked nav-secondary">
@@ -99,6 +100,7 @@
99100
<li><a href="#workflowstepinput">5.1.2.1 WorkflowStepInput</a><ol class="nav nav-pills nav-stacked nav-secondary">
100101
<li><a href="#linkmergemethod">5.1.2.1.1 LinkMergeMethod</a><ol class="nav nav-pills nav-stacked nav-secondary">
101102
</ol></li></ol><li><a href="#workflowstepoutput">5.1.2.2 WorkflowStepOutput</a><ol class="nav nav-pills nav-stacked nav-secondary">
103+
</ol><li><a href="#scattermethod">5.1.2.3 ScatterMethod</a><ol class="nav nav-pills nav-stacked nav-secondary">
102104
</ol></li></ol></li></ol><li><a href="#commandlinetool">5.2 CommandLineTool</a><ol class="nav nav-pills nav-stacked nav-secondary">
103105
<li><a href="#commandinputparameter">5.2.1 CommandInputParameter</a><ol class="nav nav-pills nav-stacked nav-secondary">
104106
<li><a href="#commandlinebinding">5.2.1.1 CommandLineBinding</a><ol class="nav nav-pills nav-stacked nav-secondary">
@@ -146,7 +148,7 @@
146148
<li>Michael R. Crusoe <a href="mailto:mcrusoe@msu.edu">mcrusoe@msu.edu</a>, Michigan State University</li>
147149
<li>Hervé Ménager <a href="mailto:herve.menager@gmail.com">herve.menager@gmail.com</a>, Institut Pasteur</li>
148150
<li>Maxim Mikheev <a href="mailto:mikhmv@biodatomics.com">mikhmv@biodatomics.com</a>, BioDatomics</li>
149-
<li>Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>, University of Manchester</li>
151+
<li>Stian Soiland-Reyes <a href="mailto:soiland-reyes@cs.manchester.ac.uk">soiland-reyes@cs.manchester.ac.uk</a>, University of Manchester</li>
150152
</ul>
151153
<h1 id="abstract">Abstract</h1><p>A Workflow is an analysis task represented by a directed graph describing a
152154
sequence of operations that transform an input data set to output. This
@@ -221,6 +223,8 @@ <h1 id="data_model">2. Data model</h1><h1 id="data_concepts">2.1 Data concepts</
221223
<p>A <strong>input schema</strong> describes the valid format (required fields, data types)
222224
for an input object.</p>
223225
<p>A <strong>output schema</strong> describes the valid format for a output object.</p>
226+
<p><strong>metadata</strong> is information about workflows, tools or input items that is
227+
not used directly in the computation.</p>
224228
<h1 id="syntax">2.2 Syntax</h1><p>Documents containing CWL objects are serialized and loaded using YAML
225229
syntax and UTF-8 text encoding. A conforming implementation must accept
226230
all valid YAML documents.</p>
@@ -261,6 +265,16 @@ <h1 id="document_preprocessing">2.4 Document preprocessing</h1><p>An implementat
261265
document and the <code>include</code> directive implicitly replaced by a string with
262266
the contents of the document. Because the loaded resource is unparsed,
263267
URIs used with <code>include</code> must not include fragments.</p>
268+
<h1 id="extensions_and_metadata">2.5 Extensions and Metadata</h1><p>Implementation extensions not required for correct
269+
execution (for example, fields related to GUI rendering) may
270+
be stored in <a href="#requirements_and_hints">process hints</a>.</p>
271+
<p>Input metadata (for example, a lab sample identifier) may be explicitly
272+
represented within a workflow using input parameters which are propagated
273+
to output. Future versions of this specification may define additional
274+
facilities for working with input/output metadata.</p>
275+
<p>Fields for tool and workflow metadata (for example, authorship for use in
276+
citations) are not defined in this specification. Future versions of this
277+
specification may define such fields.</p>
264278
<h1 id="execution_model">3. Execution model</h1><h1 id="execution_concepts">3.1 Execution concepts</h1><p>A <strong>parameter</strong> is a named symbolic input or output of process, with an
265279
associated datatype or schema. During execution, values are assigned to
266280
parameters to make the input object or output object used for concrete
@@ -584,16 +598,17 @@ <h1 id="workflow">5.1 Workflow</h1><p>Extends <a href="#process">Process</a></p>
584598
<p>A workflow is a process consisting of one or more <code>steps</code>. Each
585599
step has input and output parameters defined by the <code>inputs</code> and <code>outputs</code>
586600
fields. A workflow executes as described in <a href="#workflow_graph">execution model</a>.</p>
587-
<h1 id="dependencies">Dependencies</h1><p>Dependencies between parameters are expressed by <a href="#datalink">data links</a>
588-
on <a href="#workflowstepinput">workflow step input parameters</a>
589-
and <a href="#workflowoutputparameter">workflow output parameters</a>.</p>
590-
<p>A data link expresses the dependency of one parameter on another such that
591-
when a value is associated with the parameter specified by
592-
<a href="#datalink"><code>DataLink.source</code></a>, that value is propagated to the destination
593-
parameter. When all data links inbound to a given step are fufilled, the
594-
step is ready to execute.</p>
595-
<h1 id="extensions">Extensions</h1><p><a href="#scatter">Scatter</a> and <a href="#Subworkflows">Subworkflows</a> are available
596-
as standard extensions to core workflow semantics.</p>
601+
<h1 id="dependencies">Dependencies</h1><p>Dependencies between parameters are expressed using the <code>source</code> field on
602+
<a href="#workflowstepinput">workflow step input parameters</a> and <a href="#workflowoutputparameter">workflow output
603+
parameters</a>.</p>
604+
<p>The <code>source</code> field expresses the dependency of one parameter on another
605+
such that when a value is associated with the parameter specified by
606+
<code>source</code>, that value is propagated to the destination parameter. When all
607+
data links inbound to a given step are fufilled, the step is ready to
608+
execute.</p>
609+
<h1 id="extensions">Extensions</h1><p><a href="#scatterfeaturerequirement">ScatterFeatureRequirement</a> and
610+
<a href="#subworkflowfeaturerequirement">SubworkflowFeatureRequirement</a> are
611+
available as standard extensions to core workflow semantics.</p>
597612
<h3>Fields</h3><table class="table table-striped"><tr><th>field</th><th>type</th><th>required</th><th>description</th></tr><tr><td><code>id</code></td><td><a href="#datatype">string</a></td><td>False</td><td><p>The unique identifier for this process object. <em>Inherited from <a href="#process">Process</a></em></p>
598613
</td></tr><tr><td><code>inputs</code></td><td>array&lt;<a href="#inputparameter">InputParameter</a>&gt;</td><td>True</td><td><p>Defines the input parameters of the process. The process is ready to
599614
run when all required input parameters are associated with concrete
@@ -656,7 +671,7 @@ <h1 id="scatter/gather">Scatter/gather</h1><p>To use scatter/gather,
656671
which are connected to scattered parameters may be arrays.</p>
657672
<p>All output parameters types are also implicitly wrapped in arrays; each job
658673
in the scatter results in an entry in the output array.</p>
659-
<p>If <code>scatter</code> declares more than one input parameter, he <code>scatterMethod</code>
674+
<p>If <code>scatter</code> declares more than one input parameter, <code>scatterMethod</code>
660675
describes how to decompose the input into a discrete set of jobs.</p>
661676
<ul>
662677
<li><p><strong>dotproduct</strong> specifies that each the input arrays are aligned and one
@@ -675,7 +690,7 @@ <h1 id="scatter/gather">Scatter/gather</h1><p>To use scatter/gather,
675690
</li>
676691
</ul>
677692
<h1 id="subworkflows">Subworkflows</h1><p>To specify a nested workflow as part of a workflow step,
678-
(SubworkflowFeatureRequirement)(#SubworkflowFeatureRequirement) must be
693+
<a href="#subworkflowfeaturerequirement">SubworkflowFeatureRequirement</a> must be
679694
specified in the workflow or workflow step requirements.</p>
680695
<h3>Fields</h3><table class="table table-striped"><tr><th>field</th><th>type</th><th>required</th><th>description</th></tr><tr><td><code>id</code></td><td><a href="#datatype">string</a></td><td>False</td><td><p>The unique identifier for this workflow step.</p>
681696
</td></tr><tr><td><code>inputs</code></td><td>array&lt;<a href="#workflowstepinput">WorkflowStepInput</a>&gt;</td><td>True</td><td><p>Defines the input parameters of the workflow step. The process is ready to
@@ -695,7 +710,7 @@ <h3>Fields</h3><table class="table table-striped"><tr><th>field</th><th>type</th
695710
<p>The input of a workflow step connects an upstream parameter (from the
696711
workflow inputs, or the outputs of other workflows steps) with the input
697712
parameters of the underlying process.</p>
698-
<p>If the sink parameter is an array, or named in a <a href="#scatter">workflow
713+
<p>If the sink parameter is an array, or named in a <a href="#workflowstep">workflow
699714
scatter</a> operation, there may be multiple inbound data links
700715
listed in the <code>connect</code> field. The values from the input links are merged
701716
depending on the method specified in the <code>linkMerge</code> field. If not
@@ -732,23 +747,25 @@ <h1 id="workflowstepoutput">5.1.2.2 WorkflowStepOutput</h1><p>Referenced by <a h
732747
as a <code>source</code> to connect with input parameters of other workflow steps, or
733748
with an output parameter of the process.</p>
734749
<h3>Fields</h3><table class="table table-striped"><tr><th>field</th><th>type</th><th>required</th><th>description</th></tr><tr><td><code>id</code></td><td><a href="#datatype">string</a></td><td>True</td><td><p>A unique identifier for this workflow output parameter. This is the
735-
identifier to use in the <code>source</code> field of <code>DataLink</code> to connect the
736-
output value to downstream parameters.</p>
737-
</td></tr></table><h1 id="commandlinetool">5.2 CommandLineTool</h1><p>Extends <a href="#process">Process</a></p>
750+
identifier to use in the <code>source</code> field of <code>WorkflowStepInput</code> to
751+
connect the output value to downstream parameters.</p>
752+
</td></tr></table><h1 id="scattermethod">5.1.2.3 ScatterMethod</h1><p>Referenced by <a href="#workflowstep">WorkflowStep.scatterMethod</a></p>
753+
<p>The scatter method, as described in <a href="#workflowstep">workflow step scatter</a>.</p>
754+
<h1 id="commandlinetool">5.2 CommandLineTool</h1><p>Extends <a href="#process">Process</a></p>
738755
<p>A CommandLineTool process is a process implementation for executing a
739-
standalone, non-interactive command line application in a POSIX
740-
environment. To help accomodate of the enormous variety in syntax and
741-
semantics for input, runtime environment, invocation, and output of
742-
arbitrary programs, CommandLineTool provides the concept of "input binding"
743-
to describe how to translate input parameters to an actual program
744-
invocation, and "output binding" to describe how generate output parameters
745-
from program output.</p>
756+
non-interactive application in a POSIX environment. To help accomodate of
757+
the enormous variety in syntax and semantics for input, runtime
758+
environment, invocation, and output of arbitrary programs, CommandLineTool
759+
provides the concept of "input binding" to describe how to translate input
760+
parameters to an actual program invocation, and "output binding" to
761+
describe how generate output parameters from program output.</p>
746762
<h1 id="input_binding">Input binding</h1><p>The tool command line is built by applying command line bindings to the
747-
input object. Bindings are listed either as part of an <a href="#commandlineinputparameter">input
763+
input object. Bindings are listed either as part of an <a href="#commandinputparameter">input
748764
parameter</a> using the <code>inputBinding</code> field, or
749765
separately using the <code>arguments</code> field of the CommandLineTool.</p>
750766
<p>The algorithm to build the command line is as follows. In this algorithm,
751-
the sort key is a list consisting of one or more numeric and string elements.</p>
767+
the sort key is a list consisting of one or more numeric and string
768+
elements. Strings are sorted lexicographically based on UTF-8 encoding.</p>
752769
<ol>
753770
<li><p>Collect <code>CommandLineBinding</code> objects from <code>arguments</code>. Assign a sorting
754771
key <code>[position, i]</code> where <code>position</code> is
@@ -767,9 +784,8 @@ <h1 id="input_binding">Input binding</h1><p>The tool command line is built by ap
767784
must be broken using the lexographic ordering of the field or parameter
768785
name immediately containing the binding.</p>
769786
</li>
770-
<li><p>Sort elements lexicographically using the assigned sorting keys.
771-
Numeric entries sort before strings. Strings are sorted based on UTF-8
772-
encoding.</p>
787+
<li><p>Sort elements using the assigned sorting keys. Numeric entries sort
788+
before strings.</p>
773789
</li>
774790
<li><p>In the sorted order, apply the rules defined in
775791
<a href="#commandlinebinding"><code>CommandLineBinding</code></a> to convert bindings to actual

0 commit comments

Comments
 (0)