Skip to content

Commit d03b190

Browse files
author
Peter Amstutz
committed
Introducing refScope and typeDSL into CWL schema
1 parent 5e1e438 commit d03b190

File tree

2 files changed

+45
-40
lines changed

2 files changed

+45
-40
lines changed

draft-4/Process.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ $graph:
1010
type: documentation
1111
doc: {$include: concepts.md}
1212

13-
- $import: "salad/schema_salad/metaschema/metaschema.yml"
13+
- $import: "salad/schema_salad/metaschema/metaschema_base.yml"
1414

1515
- name: BaseTypesDoc
1616
type: documentation
@@ -226,6 +226,8 @@ $graph:
226226
jsonldPredicate:
227227
"_id": "sld:type"
228228
"_type": "@vocab"
229+
refScope: 2
230+
typeDSL: True
229231
doc: |
230232
Specify valid types of data that may be assigned to this parameter.
231233

draft-4/Workflow.yml

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ $graph:
5353

5454
- type: record
5555
name: ExpressionTool
56-
extends: "#Process"
56+
extends: Process
5757
documentRoot: true
5858
doc: |
5959
Execute an expression as a process step.
@@ -64,7 +64,7 @@ $graph:
6464
"_type": "@vocab"
6565
type: string
6666
- name: expression
67-
type: [string, "#Expression"]
67+
type: [string, Expression]
6868
doc: |
6969
The expression to execute. The expression must return a JSON object which
7070
matches the output parameters of the ExpressionTool.
@@ -80,12 +80,30 @@ $graph:
8080

8181
- name: WorkflowOutputParameter
8282
type: record
83-
extends: ["#OutputParameter", "#Sink"]
83+
extends: OutputParameter
8484
docParent: "#Workflow"
8585
doc: |
8686
Describe an output parameter of a workflow. The parameter must be
8787
connected to one or more parameters defined in the workflow that will
8888
provide the value of the output parameter.
89+
fields:
90+
- name: outputSource
91+
doc: |
92+
Specifies one or more workflow parameters that supply the value of to
93+
the output parameter.
94+
jsonldPredicate:
95+
"_id": "cwl:outputSource"
96+
"_type": "@id"
97+
refScope: 0
98+
type:
99+
- string?
100+
- string[]?
101+
- name: linkMerge
102+
type: ["null", "#LinkMergeMethod"]
103+
jsonldPredicate: "cwl:linkMerge"
104+
doc: |
105+
The method to use to merge multiple sources into a single array.
106+
If not specified, the default method is "merge_nested".
89107
90108
91109
- name: Sink
@@ -99,21 +117,21 @@ $graph:
99117
jsonldPredicate:
100118
"_id": "cwl:source"
101119
"_type": "@id"
120+
refScope: 2
102121
type:
103-
- "null"
104-
- string
105-
- type: array
106-
items: string
122+
- string?
123+
- string[]?
107124
- name: linkMerge
108-
type: ["null", "#LinkMergeMethod"]
125+
type: LinkMergeMethod?
126+
jsonldPredicate: "cwl:linkMerge"
109127
doc: |
110128
The method to use to merge multiple inbound links into a single array.
111129
If not specified, the default method is "merge_nested".
112130
113131
114132
- type: record
115133
name: WorkflowStepInput
116-
extends: "#Sink"
134+
extends: Sink
117135
docParent: "#WorkflowStep"
118136
doc: |
119137
The input of a workflow step connects an upstream parameter (from the
@@ -278,9 +296,7 @@ $graph:
278296
jsonldPredicate: "@id"
279297
doc: "The unique identifier for this workflow step."
280298
- name: in
281-
type:
282-
type: array
283-
items: "#WorkflowStepInput"
299+
type: WorkflowStepInput[]
284300
jsonldPredicate:
285301
_id: "cwl:in"
286302
mapSubject: id
@@ -294,7 +310,7 @@ $graph:
294310
- name: out
295311
type:
296312
- type: array
297-
items: [string, "#WorkflowStepOutput"]
313+
items: [string, WorkflowStepOutput]
298314
jsonldPredicate:
299315
_id: "cwl:out"
300316
_type: "@id"
@@ -303,10 +319,7 @@ $graph:
303319
Defines the parameters representing the output of the process. May be
304320
used to generate and/or validate the output object.
305321
- name: requirements
306-
type:
307-
- "null"
308-
- type: array
309-
items: "#ProcessRequirement"
322+
type: ProcessRequirement[]?
310323
jsonldPredicate:
311324
_id: "cwl:requirements"
312325
mapSubject: class
@@ -318,10 +331,7 @@ $graph:
318331
error and the implementation must not attempt to run the process,
319332
unless overridden at user option.
320333
- name: hints
321-
type:
322-
- "null"
323-
- type: array
324-
items: "Any"
334+
type: Any[]?
325335
jsonldPredicate:
326336
_id: "cwl:hints"
327337
noLinkCheck: true
@@ -332,40 +342,33 @@ $graph:
332342
not an error if an implementation cannot satisfy all hints, however
333343
the implementation may report a warning.
334344
- name: label
335-
type:
336-
- "null"
337-
- string
345+
type: string?
338346
jsonldPredicate: "rdfs:label"
339347
doc: "A short, human-readable label of this process object."
340348
- name: description
341-
type:
342-
- "null"
343-
- string
349+
type: string?
344350
jsonldPredicate: "rdfs:comment"
345351
doc: "A long, human-readable description of this process object."
346352
- name: run
347-
type: [string, "#Process"]
353+
type: [string, Process]
348354
jsonldPredicate:
349355
"_id": "cwl:run"
350356
"_type": "@id"
351357
doc: |
352358
Specifies the process to run.
353359
- name: scatter
354360
type:
355-
- "null"
356-
- string
357-
- type: array
358-
items: string
361+
- string?
362+
- string[]?
359363
jsonldPredicate:
360364
"_id": "cwl:scatter"
361365
"_type": "@id"
362366
"_container": "@list"
367+
refScope: 0
363368
- name: scatterMethod
364369
doc: |
365370
Required if `scatter` is an array of more than one element.
366-
type:
367-
- "null"
368-
- "#ScatterMethod"
371+
type: ScatterMethod?
369372
jsonldPredicate:
370373
"_id": "cwl:scatterMethod"
371374
"_type": "@vocab"
@@ -445,28 +448,28 @@ $graph:
445448

446449
- type: record
447450
name: SubworkflowFeatureRequirement
448-
extends: "#ProcessRequirement"
451+
extends: ProcessRequirement
449452
doc: |
450453
Indicates that the workflow platform must support nested workflows in
451454
the `run` field of (WorkflowStep)(#WorkflowStep).
452455
453456
- name: ScatterFeatureRequirement
454457
type: record
455-
extends: "#ProcessRequirement"
458+
extends: ProcessRequirement
456459
doc: |
457460
Indicates that the workflow platform must support the `scatter` and
458461
`scatterMethod` fields of [WorkflowStep](#WorkflowStep).
459462
460463
- name: MultipleInputFeatureRequirement
461464
type: record
462-
extends: "#ProcessRequirement"
465+
extends: ProcessRequirement
463466
doc: |
464467
Indicates that the workflow platform must support multiple inbound data links
465468
listed in the `source` field of [WorkflowStepInput](#WorkflowStepInput).
466469
467470
- type: record
468471
name: StepInputExpressionRequirement
469-
extends: "#ProcessRequirement"
472+
extends: ProcessRequirement
470473
doc: |
471474
Indicate that the workflow platform must support the `valueFrom` field
472475
of [WorkflowStepInput](#WorkflowStepInput).

0 commit comments

Comments
 (0)