Extension-domain: Difference between revisions

From BCOeditor Wiki
Jump to navigation Jump to search
mNo edit summary
Line 18: Line 18:
|OPTIONAL
|OPTIONAL
|}
|}


A valid JSON schema for each extension used in this domain is expected to be specified. The schema should be namespaced, and it is recommended that resolving the namespaced URI will provide the extension’s JSON Schema. The URL should be provided in the required extension_schema field.  
A valid JSON schema for each extension used in this domain is expected to be specified. The schema should be namespaced, and it is recommended that resolving the namespaced URI will provide the extension’s JSON Schema. The URL should be provided in the required extension_schema field.  

Revision as of 21:43, 3 March 2026

Go back to BCO domains.

Extension Domain (extension_domain)

The extension_domain is a space for a user to add additional structured information that is not defined in the BioCompute schema. It is optional. While the extension domain is not defined by IEEE-2791-2020, each extension in this domain must provide a reference to the schema that defines it in order to validate. The extension domain allows a user to define additional fields and is the place to add any additional structured information.

Condensed example:

"extension_domain":{
},
Components of the Extension Domain
Field Required
extension OPTIONAL

A valid JSON schema for each extension used in this domain is expected to be specified. The schema should be namespaced, and it is recommended that resolving the namespaced URI will provide the extension’s JSON Schema. The URL should be provided in the required extension_schema field.

We provide an example here that is neither exclusive nor exhaustive. The following example is taken from Extension to External References: Software Configuration Management (SCM) v1.1.0

   "extension_domain":[
       {
           "extension_schema": "https://w3id.org/biocompute/extension_domain/1.1.0/scm/scm_extension.json",
           "scm_extension": {
               "scm_repository": "https://github.com/example/repo1",
               "scm_type": "git",
               "scm_commit": "c9ffea0b60fa3bcf8e138af7c99ca141a6b8fb21",
               "scm_path": "workflow/hive-viral-mutation-detection.cwl",
               "scm_preview": "https://github.com/example/repo1/blob/c9ffea0b60fa3bcf8e138af7c99ca141a6b8fb21/workflow/hive-viral-mutation-detection.cwl"
           }
       }
   ]

SCM Repository “scm_repository”

The base url for the SCM repository.

SCM Type “scm_type”

A classifier for the type of SCM database. This field is a list of predefined values. Third-party scm types can be used, and if so the other value MUST be used. The options for this field include git (Git, including GitHub/GitLab), svn (Subversion), hg (mercurial) and others.

SCM Commit “scm_commit”

This field is a reference to a revision within the scm repository. This SHOULD be a repository-wide commit identifier (e.g. afba51a222e199f5b58f9d19450f189055e93c44 or name of a tag (e.g. v1.0.0), but MAY be a name of a branch (e.g. master).

SCM Path “scm_path”

This is the path from the repository to the source code referenced. scm_path should NOT start with /

SCM Preview “scm_preview”

The full uri for the source code is referenced by the BioCompute.