@@ -78,7 +78,10 @@ $graph:
7878
7979 Post v1.0 release changes to the spec.
8080
81- * 13 July 2016: Mark `baseCommand` as optional and update descriptive text.
81+ * 13 July 2016: Mark `baseCommand` as optional and update descriptive
82+ text.
83+ * 14 November 2016: Clarify [SoftwareRequirement](#SoftwareRequirement)
84+ `spec` fields.
8285
8386 ## Purpose
8487
@@ -693,26 +696,51 @@ $graph:
693696 fields :
694697 - name : package
695698 type : string
696- doc : " The common name of the software to be configured."
699+ doc : |
700+ The name of the software to be made available. If the name is
701+ common, inconsistent, or otherwise ambiguous it should be combined with
702+ one or more identifiers in the `specs` field.
697703 - name : version
698704 type : string[]?
699- doc : " The (optional) version of the software to configured."
705+ doc : |
706+ The (optional) versions of the software that are known to be
707+ compatible.
700708 - name : specs
701709 type : string[]?
702710 doc : |
703- Must be one or more IRIs identifying resources for installing or
704- enabling the software. Implementations may provide resolvers which map
705- well-known software spec IRIs to some configuration action.
706-
707- For example, an IRI `https://packages.debian.org/jessie/bowtie` could
708- be resolved with `apt-get install bowtie`. An IRI
711+ One or more IRIs identifying resources for installing or
712+ enabling the software named in the `package` field. Implementations may
713+ provide resolvers which map these software identifer IRIs to some
714+ configuration action; or they can use only the name from the `package`
715+ field on a best effort basis.
716+
717+ For example, the IRI `https://packages.debian.org/bowtie` could
718+ be resolved with `apt-get install bowtie`. The IRI
709719 `https://anaconda.org/bioconda/bowtie` could be resolved with `conda
710720 install -c bioconda bowtie`.
711721
712- Tools may also provide IRIs to index entries such as
713- [RRID](http://www.identifiers.org/rrid/), such as
714- `http://identifiers.org/rrid/RRID:SCR_005476`
715-
722+ IRIs can also be system independent and used to map to a specific
723+ software installation or selection mechanism.
724+ Using [RRID](https://www.identifiers.org/rrid/) as an example:
725+ `https://identifiers.org/rrid/RRID:SCR_005476` could be fulfilled using
726+ the above mentioned Debian or bioconda package, a local installation
727+ managed by [Environement Modules](http://modules.sourceforge.net/), or
728+ any other mechanism the platform chooses.
729+
730+ A site specific IRI can be listed as well. For example, an academic
731+ computing cluster using Environement Modules could list the IRI
732+ `https://hpc.university.edu/modules/bowtie-tbb/1.22` to indicate that
733+ `module load bowtie-tbb/1.1.2` should be executed to make available
734+ `bowtie` version 1.1.2 with the TBB library prior to running the
735+ accompanying Workflow or CommandLineTool. Note that the example IRI is
736+ specific to a particular institution and computing environment as the
737+ Environment Modules system does not have a common namespace.
738+
739+ This last example is the least portable and should only be used if
740+ mechanisms based off of the `package` field or more generic IRIs are
741+ unavailable or unsuitable. While harmless to other sites, site specific
742+ software IRIs should be left out of shared CWL descriptions to avoid
743+ clutter.
716744
717745 - name : Dirent
718746 type : record
0 commit comments