I'm writing an interactive visualiser for CWL workflows, and so must be able to parse CWL files.
My question refers to v1.0.1 of the Workflow specification: http://www.commonwl.org/v1.0/Workflow.html
In the specification for WorkFlowStep, the grammar for the "run" field is defined as:
run: string | CommandLineTool | ExpressionTool | Workflow
The documentation describes this as "Specifies the process to run.", but I can't find any more information about the meaning of the options.
In particular I would like to know what is the purpose of the "string" option?
In many example workflows that I have seen, the run field is often set to the file path of another CWL file. The contents of that file would be either a CommandLineTool or Workflow (or maybe even Expression Tool).
Does the "string" option subsume the file path? What other uses could the string have?
I'm assuming that the references to CommandLineTool, ExpressionTool and Workflow specifically mean that you can define them inline, rather than having to link out to a file (and therefore do not include file paths to files which contain those types of documents)?
Apologies if I've missed something important in the documentation.