IEEE.org     |     IEEE Xplore Digital Library     |     IEEE Standards     |     IEEE Spectrum     |     More Sites

Commit e9e14efd authored by Joshua Gay's avatar Joshua Gay 💾
Browse files

Merge branch 'ballot-crg-r1' into 'master'

Ballot crg r1

See merge request IEEE-SA/BioCompute/bco-schema!2
parents 8dd78d25 65eb9260
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/biocomputeobject.json", "$id": "https://w3id.org/2791/2791object.json",
"type": "object", "type": "object",
"title": "Base type for all BioCompute Objects", "title": "Base type for all IEEE-2791 Objects",
"description": "All BioCompute object types must adhear to this type in order to be compliant with BioCompute framework", "description": "All IEEE-2791 object types must adhear to this type in order to be compliant with IEEE-2791 standard",
"required": [ "required": [
"bco_id", "object_id",
"bco_spec_version", "spec_version",
"checksum", "etag",
"provenance_domain", "provenance_domain",
"usability_domain", "usability_domain",
"description_domain", "description_domain",
"execution_domain", "execution_domain",
"io_domain", "io_domain"
"error_domain"
], ],
"definitions": { "definitions": {
"bco_id": { "object_id": {
"type": "string", "type": "string",
"description": "A unique identifier that should be applied to each BCO instance, generated and assigned by a BCO database engine. IDs should never be reused", "description": "A unique identifier that should be applied to each IEEE-2791 Object instance, generated and assigned by a IEEE-2791 database engine. IDs should never be reused"
"examples": [
"https://w3id.org/biocompute/examples/HCV1a.json"
]
}, },
"uri": { "uri": {
"type": "object", "type": "object",
"description": "A Uniform Resource Identifer", "description": "Any of the four Resource Identifers defined at https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7.3.5",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"uri" "uri"
...@@ -40,11 +36,12 @@ ...@@ -40,11 +36,12 @@
}, },
"access_time": { "access_time": {
"type": "string", "type": "string",
"description": "Time stamp of when the request for this data was submitted",
"format": "date-time" "format": "date-time"
}, },
"sha1_chksum": { "sha1_checksum": {
"type": "string", "type": "string",
"description": "hash function that produces a message digest", "description": "output of hash function that produces a message digest",
"pattern": "[A-Za-z0-9]+" "pattern": "[A-Za-z0-9]+"
} }
} }
...@@ -62,21 +59,21 @@ ...@@ -62,21 +59,21 @@
"type": "string", "type": "string",
"description": "Name of contributor", "description": "Name of contributor",
"examples": [ "examples": [
"Charles Hadley King" "Charles Darwin"
] ]
}, },
"affiliation": { "affiliation": {
"type": "string", "type": "string",
"description": "Organization the particular contributor is affiliated with", "description": "Organization the particular contributor is affiliated with",
"examples": [ "examples": [
"George Washington University" "HMS Beagle"
] ]
}, },
"email": { "email": {
"type": "string", "type": "string",
"description": "electronic means for identification and communication purposes", "description": "electronic means for identification and communication purposes",
"examples": [ "examples": [
"hadley_king@gwu.edu" "name@example.edu"
], ],
"format": "email" "format": "email"
}, },
...@@ -107,7 +104,7 @@ ...@@ -107,7 +104,7 @@
"type": "string", "type": "string",
"description": "Field to record author information. ORCID identifiers allow for the author to curate their information after submission. ORCID identifiers must be valid and must have the prefix ‘https://orcid.org/’", "description": "Field to record author information. ORCID identifiers allow for the author to curate their information after submission. ORCID identifiers must be valid and must have the prefix ‘https://orcid.org/’",
"examples": [ "examples": [
"https://orcid.org/0000-0003-1409-4549" "http://orcid.org/0000-0002-1825-0097"
], ],
"format": "uri" "format": "uri"
} }
...@@ -116,22 +113,22 @@ ...@@ -116,22 +113,22 @@
}, },
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"bco_id": { "object_id": {
"$ref": "#/definitions/bco_id", "$ref": "#/definitions/object_id",
"readOnly": true "readOnly": true
}, },
"bco_spec_version": { "spec_version": {
"type": "string", "type": "string",
"description": "Version of the BCO specification used to define this document", "description": "Version of the IEEE-2791 specification used to define this document",
"examples": [ "examples": [
"https://w3id.org/biocompute/spec/v1.2" "https://w3id.org/2791/"
], ],
"readOnly": true, "readOnly": true,
"format": "uri" "format": "uri"
}, },
"checksum": { "etag": {
"type": "string", "type": "string",
"description": "A string-type, read-only value, protecting the object from internal or external alterations without proper validation generated with a SHA-256 hash function.", "description": "See https://tools.ietf.org/html/rfc7232#section-2.1 for full description. It is recommended that the ETag be deleted or updated if the object file is changed (except in cases using weak ETags in which the entirety of the change comprises a simple re-writing of the JSON).",
"examples": [ "examples": [
"5986B05969341343E77A95B4023600FC8FEF48B7E79F355E58B0B404A4F50995" "5986B05969341343E77A95B4023600FC8FEF48B7E79F355E58B0B404A4F50995"
], ],
...@@ -145,15 +142,20 @@ ...@@ -145,15 +142,20 @@
"$ref": "usability_domain.json" "$ref": "usability_domain.json"
}, },
"extension_domain": { "extension_domain": {
"properties": {
"fhir_extension": {
"type": "array", "type": "array",
"items": { "description": "An optional domain that contains user-defined fields.",
"$ref": "extension_domain/fhir_extension.json" "items":{
"required":[
"extension_schema"
],
"additionalProperties": true,
"properties": {
"extension_schema":{
"title": "Extension Schema",
"description": "resolving this URI should provide this extension's JSON Schema",
"type": "string",
"format": "uri"
} }
},
"scm_extension": {
"$ref": "extension_domain/scm_extension.json"
} }
} }
}, },
......
# This is the list of BioCompute Object Schema authors for copyright purposes. # This is the list of IEEE-2791 Object Schema authors for copyright purposes.
# #
# This does not necessarily list everyone who has contributed code, # This does not necessarily list everyone who has contributed code,
# since in some cases, their employer may be the copyright holder. # since in some cases, their employer may be the copyright holder.
......
# This is the list of BioCompute Object Schema contributors # This is the list of IEEE-2791 Object Schema contributors
# #
# This does not necessarily list the copyright holders, since in some # This does not necessarily list the copyright holders, since in some
# cases, an employer may be the copyright holder. To see the full # cases, an employer may be the copyright holder. To see the full
......
Copyright 2019 The BioCompute Object Schema Authors Copyright 2019 The IEEE-2791 Object Schema Authors
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are modification, are permitted provided that the following conditions are
......
# BioCompute Object Schema # IEEE-2791 Object Schema
BioCompute Object Schema is a project of the IEEE P2791 BioCompute IEEE-2791 (previously known as "BioCompute") Object Schema is a project of the
Working Group intended for use as part of IEEE P2791 (Standard for IEEE P2791 BioCompute Working Group intended for use as part of IEEE P2791
Bioinformatics Computations and Analyses Generated by High-Throughput (Standard for Bioinformatics Computations and Analyses Generated by
Sequencing (HTS) to Facilitate Communication). High-Throughput Sequencing (HTS) to Facilitate Communication).
## License ## License
All source files (.json files) in this repository are subject to the All source files (.json files) in this repository are subject to the
following copyright and licensing terms. following copyright and licensing terms.
Copyright 2019 The BioCompute Object Schema Authors. Copyright 2019 The IEEE-2791 Schema Authors.
See the LICENSE file distributed with this work for copyright and See the LICENSE file distributed with this work for copyright and
licensing information, the AUTHORS file for a list of copyright licensing information, the AUTHORS file for a list of copyright
......
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/description_domain.json", "$id": "https://w3id.org/2791/description_domain.json",
"type": "object", "type": "object",
"title": "Description Domain", "title": "Description Domain",
"description": "Structured field for description of external references, the pipeline steps, and the relationship of I/O objects.", "description": "Structured field for description of external references, the pipeline steps, and the relationship of I/O objects.",
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
}, },
"xref": { "xref": {
"type": "array", "type": "array",
"description": "List of the databases or ontology IDs that are cross-referenced in the BCO.", "description": "List of the databases or ontology IDs that are cross-referenced in the IEEE-2791 Object.",
"items": { "items": {
"type": "object", "type": "object",
"description": "External references are stored in the form of prefixed identifiers (CURIEs). These CURIEs map directly to the URIs maintained by Identifiers.org.", "description": "External references are stored in the form of prefixed identifiers (CURIEs). These CURIEs map directly to the URIs maintained by Identifiers.org.",
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
}, },
"platform": { "platform": {
"type": "array", "type": "array",
"description": "reference to a particular deployment of an existing platform where this BCO can be reproduced.", "description": "reference to a particular deployment of an existing platform where this IEEE-2791 Object can be reproduced.",
"items": { "items": {
"type": "string", "type": "string",
"examples": [ "examples": [
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
] ]
}, },
"uri": { "uri": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
...@@ -148,14 +148,14 @@ ...@@ -148,14 +148,14 @@
"type": "array", "type": "array",
"description": "URIs (expressed as a URN or URL) of the input files for each tool.", "description": "URIs (expressed as a URN or URL) of the input files for each tool.",
"items": { "items": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
}, },
"output_list": { "output_list": {
"type": "array", "type": "array",
"description": "URIs (expressed as a URN or URL) of the output files for each tool.", "description": "URIs (expressed as a URN or URL) of the output files for each tool.",
"items": { "items": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
......
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/error_domain.json", "$id": "https://w3id.org/2791/error_domain.json",
"type": "object", "type": "object",
"title": "Error Domain", "title": "Error Domain",
"description": "", "description": "Fields in the Error Domain are open-ended and not restricted nor defined by the IEEE-2791 standard. It is RECOMMENDED that the keys directly under empirical_error and algorithmic_error use a full URI. Resolving the URI SHOULD give a JSON Schema or textual definition of the field. Other keys are not allowed error_domain",
"additionalProperties": false,
"required": [ "required": [
"empirical_error", "empirical_error",
"algorithmic_error" "algorithmic_error"
...@@ -20,5 +21,4 @@ ...@@ -20,5 +21,4 @@
"description": "descriptive of errors that originate by fuzziness of the algorithms, driven by stochastic processes, in dynamically parallelized multi-threaded executions, or in machine learning methodologies where the state of the machine can affect the outcome." "description": "descriptive of errors that originate by fuzziness of the algorithms, driven by stochastic processes, in dynamically parallelized multi-threaded executions, or in machine learning methodologies where the state of the machine can affect the outcome."
} }
} }
} }
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/execution_domain.json", "$id": "https://w3id.org/2791/execution_domain.json",
"type": "object", "type": "object",
"title": "Execution Domain", "title": "Execution Domain",
"description": "The fields required for execution of the BCO are herein encapsulated together in order to clearly separate information needed for deployment, software configuration, and running applications in a dependent environment", "description": "The fields required for execution of the IEEE-2791 Object are herein encapsulated together in order to clearly separate information needed for deployment, software configuration, and running applications in a dependent environment",
"required": [ "required": [
"script", "script",
"script_driver", "script_driver",
...@@ -15,19 +15,19 @@ ...@@ -15,19 +15,19 @@
"properties": { "properties": {
"script": { "script": {
"type": "array", "type": "array",
"description": "points to internal or external references to a script object that was used to perform computations for this BCO instance.", "description": "points to a script object or objects that was used to perform computations for this IEEE-2791 Object instance.",
"items": { "items": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"uri": { "uri": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
}, },
"script_driver": { "script_driver": {
"type": "string", "type": "string",
"description": "Specification of the kind of executable that can be launched in order to perform a sequence of commands described in the script in order to run the pipelin", "description": "Indication of the kind of executable that can be launched in order to perform a sequence of commands described in the script in order to run the pipelin",
"examples": [ "examples": [
"hive", "hive",
"cwl-runner", "cwl-runner",
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
}, },
"software_prerequisites": { "software_prerequisites": {
"type": "array", "type": "array",
"description": "Minimal necessary prerequisites, library, tool versions needed to successfully run the script to produce BCO.", "description": "Minimal necessary prerequisites, library, tool versions needed to successfully run the script to produce this IEEE-2791 Object.",
"items": { "items": {
"type": "object", "type": "object",
"description": "A necessary prerequisite, library, or tool version.", "description": "A necessary prerequisite, library, or tool version.",
...@@ -62,14 +62,14 @@ ...@@ -62,14 +62,14 @@
] ]
}, },
"uri": { "uri": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
}, },
"external_data_endpoints": { "external_data_endpoints": {
"type": "array", "type": "array",
"description": "Minimal necessary domain-specific external data source access in order to successfully run the script to produce BCO.", "description": "Minimal necessary domain-specific external data source access in order to successfully run the script to produce this IEEE-2791 Object.",
"items": { "items": {
"type": "object", "type": "object",
"description": "Requirement for network protocol endpoints used by a pipeline’s scripts, or other software.", "description": "Requirement for network protocol endpoints used by a pipeline’s scripts, or other software.",
......
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/extension_domain/fhir_extension.json",
"type": "object",
"required": [
"fhir_endpoint",
"fhir_version",
"fhir_resources"
],
"properties": {
"fhir_endpoint": {
"type": "string",
"description": "Base URI of FHIR server where the resources are stored",
"examples": [
"http://fhirtest.uhn.ca/baseDstu3"
],
"format": "uri"
},
"fhir_version": {
"type": "string",
"description": "FHIR version of the server endpoint"
},
"fhir_resources": {
"type": "array",
"items": {
"type": "object",
"required": [
"fhir_resource",
"fhir_id"
],
"properties": {
"fhir_resource": {
"type": "string",
"description": "Type of FHIR resource used"
},
"fhir_id": {
"type": "string",
"description": "Server-specific identifier string"
}
}
}
}
}
}
\ No newline at end of file
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/extension_domain/scm_extension.json",
"type": "object",
"required": [
"scm_repository",
"scm_type",
"scm_commit",
"scm_path"
],
"properties": {
"scm_repository": {
"type": "string",
"examples": [
"https://github.com/example/repo1"
],
"format": "uri"
},
"scm_type": {
"type": "string",
"enum": [
"git",
"svn",
"hg",
"other"
]
},
"scm_commit": {
"type": "string",
"examples": [
"c9ffea0b60fa3bcf8e138af7c99ca141a6b8fb21"
]
},
"scm_path": {
"type": "string",
"examples": [
"workflow/hive-viral-mutation-detection.cwl"
],
"format": "string"
},
"scm_preview": {
"type": "string",
"examples": [
"https://github.com/example/repo1/blob/c9ffea0b60fa3bcf8e138af7c99ca141a6b8fb21/workflow/hive-viral-mutation-detection.cwl"
],
"format": "uri"
}
}
}
\ No newline at end of file
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/io_domain.json", "$id": "https://w3id.org/2791/io_domain.json",
"type": "object", "type": "object",
"title": "Input and Output Domain", "title": "Input and Output Domain",
"description": "The list of global input and output files created by the computational workflow, excluding the intermediate files. Custom to every specific BCO implementation, these fields are pointers to objects that can reside in the system performing the computation or any other accessible system.", "description": "The list of global input and output files created by the computational workflow, excluding the intermediate files. Custom to every specific IEEE-2791 Object implementation, these fields are pointers to objects that can reside in the system performing the computation or any other accessible system.",
"required": [ "required": [
"input_subdomain", "input_subdomain",
"output_subdomain" "output_subdomain"
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
], ],
"properties": { "properties": {
"uri": { "uri": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
...@@ -42,13 +42,14 @@ ...@@ -42,13 +42,14 @@
"type": "string", "type": "string",
"title": "mediatype", "title": "mediatype",
"description": "https://www.iana.org/assignments/media-types/", "description": "https://www.iana.org/assignments/media-types/",
"default": "application/octet-stream",
"examples": [ "examples": [
"text/csv" "text/csv"
], ],
"pattern": "^(.*)$" "pattern": "^(.*)$"
}, },
"uri": { "uri": {
"$ref": "biocomputeobject.json#/definitions/uri" "$ref": "2791object.json#/definitions/uri"
} }
} }
} }
......
{ {
"$schema": "http://json-schema.org/draft-07/schema#", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://biocomputeobject.org/schemas/parametric_domain", "$id": "https://w3id.org/parametric_domain",
"type": "array", "type": "array",
"title": "Parametric Domain", "title": "Parametric Domain",
"description": "This represents the list of NON-default parameters customizing the computational flow which can affect the output of the calculations. These fields can be custom to each kind of analysis and are tied to a particular pipeline implementation", "description": "This represents the list of NON-default parameters customizing the computational flow which can affect the output of the calculations. These fields can be custom to each kind of analysis and are tied to a particular pipeline implementation",
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
"description": "Specific variables for the computational workflow",