@@ -86,7 +86,10 @@ $graph:
86
86
87
87
Post v1.0 release changes to the spec.
88
88
89
- * 13 July 2016: Mark `baseCommand` as optional and update descriptive text.
89
+ * 13 July 2016: Mark `baseCommand` as optional and update descriptive
90
+ text.
91
+ * 14 November 2016: Clarify [SoftwareRequirement](#SoftwareRequirement)
92
+ `spec` fields.
90
93
91
94
## Purpose
92
95
@@ -746,27 +749,60 @@ $graph:
746
749
fields :
747
750
- name : package
748
751
type : string
749
- doc : " The common name of the software to be configured."
750
- jsonldPredicate : " @id"
752
+ doc : |
753
+ The name of the software to be made available. If the name is
754
+ common, inconsistent, or otherwise ambiguous it should be combined with
755
+ one or more identifiers in the `specs` field.
751
756
- name : version
752
757
type : string[]?
753
- doc : " The (optional) version of the software to configured."
758
+ doc : |
759
+ The (optional) versions of the software that are known to be
760
+ compatible.
754
761
- name : specs
755
762
type : string[]?
763
+ jsonldPredicate : {_type: "@id", noLinkCheck: true}
756
764
doc : |
757
- Must be one or more IRIs identifying resources for installing or
758
- enabling the software. Implementations may provide resolvers which map
759
- well-known software spec IRIs to some configuration action.
760
-
761
- For example, an IRI `https://packages.debian.org/jessie/bowtie` could
762
- be resolved with `apt-get install bowtie`. An IRI
763
- `https://anaconda.org/bioconda/bowtie` could be resolved with `conda
765
+ One or more [IRI](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier)s
766
+ identifying resources for installing or enabling the software named in
767
+ the `package` field. Implementations may provide resolvers which map
768
+ these software identifer IRIs to some configuration action; or they can
769
+ use only the name from the `package` field on a best effort basis.
770
+
771
+ For example, the IRI https://packages.debian.org/bowtie could
772
+ be resolved with `apt-get install bowtie`. The IRI
773
+ https://anaconda.org/bioconda/bowtie could be resolved with `conda
764
774
install -c bioconda bowtie`.
765
775
766
- Tools may also provide IRIs to index entries such as
767
- [RRID](http://www.identifiers.org/rrid/), such as
768
- `http://identifiers.org/rrid/RRID:SCR_005476`
769
-
776
+ IRIs can also be system independent and used to map to a specific
777
+ software installation or selection mechanism.
778
+ Using [RRID](https://www.identifiers.org/rrid/) as an example:
779
+ https://identifiers.org/rrid/RRID:SCR_005476
780
+ could be fulfilled using the above mentioned Debian or bioconda
781
+ package, a local installation managed by [Environement Modules](http://modules.sourceforge.net/),
782
+ or any other mechanism the platform chooses. IRIs can also be from
783
+ identifer sources that are discipline specific yet still system
784
+ independent. As an example, the equivalent [ELIXIR Tools and Data
785
+ Service Registry](https://bio.tools) IRI to the previous RRID example is
786
+ https://bio.tools/tool/bowtie2/version/2.2.8.
787
+ If supported by a given registry, implementations are encouraged to
788
+ query these system independent sofware identifier IRIs directly for
789
+ links to packaging systems.
790
+
791
+ A site specific IRI can be listed as well. For example, an academic
792
+ computing cluster using Environement Modules could list the IRI
793
+ `https://hpc.example.edu/modules/bowtie-tbb/1.22` to indicate that
794
+ `module load bowtie-tbb/1.1.2` should be executed to make available
795
+ `bowtie` version 1.1.2 compiled with the TBB library prior to running
796
+ the accompanying Workflow or CommandLineTool. Note that the example IRI
797
+ is specific to a particular institution and computing environment as
798
+ the Environment Modules system does not have a common namespace or
799
+ standardized naming convention.
800
+
801
+ This last example is the least portable and should only be used if
802
+ mechanisms based off of the `package` field or more generic IRIs are
803
+ unavailable or unsuitable. While harmless to other sites, site specific
804
+ software IRIs should be left out of shared CWL descriptions to avoid
805
+ clutter.
770
806
771
807
- name : Dirent
772
808
type : record
0 commit comments