Skip to content

Commit 23c1151

Browse files
author
Peter Amstutz
committed
Update SoftwareRequirement spec based on codefest discussion.
1 parent 3c40bd3 commit 23c1151

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

v1.0/CommandLineTool.yml

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -647,46 +647,50 @@ $graph:
647647
name: SoftwareRequirement
648648
extends: "#ProcessRequirement"
649649
doc: |
650-
Software that should be configured in the environment of the defined
651-
process.
652-
653-
While absolute portability between platforms can be achieved with container
654-
technologies like Docker, this mechanism provides an inexact and imprecise
655-
fallback. The inexact nature is due to this standard not specifying the
656-
base operating environment of the process or how the that environment is to
657-
be configured as a result of these hints. The imprecise nature of these
658-
hints is due to the `name` and `version` fields being unstructured and not
659-
namespaced. The optional `identifier` field is recommended so that users
660-
and platforms can distinguish between software that has the same name.
650+
A list of software packages that should be configured in the environment of
651+
the defined process.
661652
fields:
662653
- name: "class"
663654
type: "string"
664655
doc: "Always 'SoftwareRequirement'"
665656
jsonldPredicate:
666657
"_id": "@type"
667658
"_type": "@vocab"
668-
- name: spec
659+
- name: packages
669660
type:
670661
type: array
671-
items: SoftwareSpec
662+
items: SoftwarePackage
672663
doc: "The list of software to be configured."
664+
jsonldPredicate:
665+
mapSubject: name
666+
mapPredicate: specs
673667

674-
- name: SoftwareSpec
668+
- name: SoftwarePackage
675669
type: record
676670
fields:
677671
- name: name
678672
type: string
679-
doc: "The name of the software to be configured."
673+
doc: "The common name of the software to be configured."
680674
jsonldPredicate: "@id"
681675
- name: "version"
682-
type: string?
676+
type: string[]?
683677
doc: "The (optional) version of the software to configured."
684-
- name: "identifier"
685-
type: string?
678+
- name: specs
679+
type: string[]?
686680
doc: |
687-
The (optional) identifier of the software to be configured. Should be a
688-
IRI such as an [RRID](http://www.identifiers.org/rrid/SCR_001156).
689-
Example: `http://identifiers.org/rrid/RRID:SCR_001156`
681+
Must be one or more IRIs identifying resources for installing or
682+
enabling the software. Implementations may provide resolvers which map
683+
well-known software spec IRIs to some configuration action.
684+
685+
For example, an IRI `https://packages.debian.org/jessie/bowtie` could
686+
be resolved with `apt-get install bowtie`. An IRI
687+
`https://anaconda.org/bioconda/bowtie` could be resolved with `conda
688+
install -c bioconda bowtie`.
689+
690+
Tools may also provide IRIs to index entries such as
691+
[RRID](http://www.identifiers.org/rrid/), such as
692+
`http://identifiers.org/rrid/RRID:SCR_005476`
693+
690694
691695
- name: Dirent
692696
type: record

0 commit comments

Comments
 (0)