{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Bioschemas ComputationalWorkflow",
  "description": "An orchestrated and repeatable pattern of activity, executed by a computational process, per the Bioschemas [ComputationalWorkflow](https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE) profile.",
  "type": "object",
  "required": [
    "input",
    "output",
    "programmingLanguage",
    "name",
    "url",
    "creator",
    "dateCreated",
    "license",
    "sdPublisher",
    "version"
  ],
  "properties": {
    "input": {
      "description": "An input required to use the computational workflow (e.g. an Excel spreadsheet, a BAM file).",
      "oneOf": [
        {
          "$ref": "https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.json"
        },
        {
          "type": "array",
          "items": {
            "$ref": "https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.json"
          }
        }
      ],
      "x-jsonld-id": "https://bioschemas.org/terms/input"
    },
    "output": {
      "description": "An output produced by the workflow.",
      "oneOf": [
        {
          "$ref": "https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.json"
        },
        {
          "type": "array",
          "items": {
            "$ref": "https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.json"
          }
        }
      ],
      "x-jsonld-id": "https://bioschemas.org/terms/output"
    },
    "creativeWorkStatus": {
      "description": "The status of the workflow in terms of its stage in a lifecycle, e.g. Incomplete, Draft, Published, Obsolete.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "$ref": "#/$defs/definedTerm"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/definedTerm"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/creativeWorkStatus"
    },
    "documentation": {
      "description": "Documentation describing the ComputationalWorkflow and its use.",
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "$ref": "#/$defs/creativeWork"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/creativeWork"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/documentation"
    },
    "funding": {
      "description": "The funding for the workflow.",
      "oneOf": [
        {
          "$ref": "#/$defs/grant"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/grant"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/funding"
    },
    "maintainer": {
      "description": "The Person or Organization that manages contributions to, and/or publication of, the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/maintainer"
    },
    "softwareRequirements": {
      "description": "Component dependency requirements for the workflow (runtime environments, shared libraries not bundled with it).",
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/softwareRequirements"
    },
    "conditionsOfAccess": {
      "description": "Conditions that affect the availability of, or method(s) of access to, the workflow.",
      "type": "string",
      "x-jsonld-id": "http://schema.org/conditionsOfAccess"
    },
    "targetProduct": {
      "description": "Target operating system(s) / product(s) to which the workflow applies.",
      "oneOf": [
        {
          "$ref": "#/$defs/softwareApplication"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/softwareApplication"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/targetProduct"
    },
    "programmingLanguage": {
      "description": "The computer programming (or workflow) language.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "$ref": "#/$defs/computerLanguage"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/computerLanguage"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/programmingLanguage"
    },
    "runtimePlatform": {
      "description": "Runtime platform or script interpreter dependencies (e.g. Java 1, Python 2.3).",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/runtimePlatform"
    },
    "alternateName": {
      "description": "An alias for the workflow.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/alternateName"
    },
    "description": {
      "description": "A description of the workflow.",
      "type": "string",
      "x-jsonld-id": "http://schema.org/description"
    },
    "identifier": {
      "description": "Any kind of identifier for the workflow (e.g. an ISBN, GTIN, or UUID).",
      "anyOf": [
        {
          "$ref": "#/$defs/propertyValue"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/propertyValue"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/identifier"
    },
    "image": {
      "description": "An image of the workflow.",
      "oneOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "$ref": "#/$defs/imageObject"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/imageObject"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/image"
    },
    "name": {
      "description": "The name of the workflow.",
      "type": "string",
      "x-jsonld-id": "http://schema.org/name"
    },
    "url": {
      "description": "URL of the workflow.",
      "type": "string",
      "format": "uri",
      "x-jsonld-id": "http://schema.org/url"
    },
    "citation": {
      "description": "A citation or reference to another creative work related to the workflow.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "$ref": "#/$defs/creativeWork"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/creativeWork"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/citation"
    },
    "contributor": {
      "description": "A secondary contributor to the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/contributor"
    },
    "creator": {
      "description": "The creator/author of the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/creator"
    },
    "dateCreated": {
      "description": "The date on which the workflow was created.",
      "type": "string",
      "format": "date",
      "x-jsonld-id": "http://schema.org/dateCreated"
    },
    "dateModified": {
      "description": "The date on which the workflow was most recently modified.",
      "type": "string",
      "format": "date",
      "x-jsonld-id": "http://schema.org/dateModified"
    },
    "datePublished": {
      "description": "Date of first publication of the workflow.",
      "type": "string",
      "format": "date",
      "x-jsonld-id": "http://schema.org/datePublished"
    },
    "encodingFormat": {
      "description": "Media type of the workflow, typically expressed as a MIME type (e.g. `application/zip`).",
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/encodingFormat"
    },
    "hasPart": {
      "description": "A resource that is part of the workflow.",
      "oneOf": [
        {
          "$ref": "#/$defs/creativeWork"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/creativeWork"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/hasPart"
    },
    "isBasedOn": {
      "description": "A resource from which the workflow is derived, or of which it is a modification.",
      "oneOf": [
        {
          "$ref": "#/$defs/product"
        },
        {
          "$ref": "#/$defs/creativeWork"
        },
        {
          "type": "string",
          "format": "uri"
        }
      ],
      "x-jsonld-id": "http://schema.org/isBasedOn"
    },
    "keywords": {
      "description": "Keywords or tags describing the workflow.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/keywords"
    },
    "license": {
      "description": "A license document that applies to the workflow, typically indicated by URL.",
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        },
        {
          "$ref": "#/$defs/creativeWork"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/creativeWork"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/license"
    },
    "producer": {
      "description": "The person or organization who produced the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/producer"
    },
    "publisher": {
      "description": "The publisher of the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/publisher"
    },
    "sdPublisher": {
      "description": "The party responsible for generating and publishing the current structured data markup for the workflow.",
      "anyOf": [
        {
          "$ref": "#/$defs/person"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/person"
          }
        },
        {
          "$ref": "#/$defs/organization"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/organization"
          }
        }
      ],
      "x-jsonld-id": "http://schema.org/sdPublisher"
    },
    "version": {
      "description": "The version of the workflow.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        }
      ],
      "x-jsonld-id": "http://schema.org/version"
    }
  },
  "$defs": {
    "grant": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        },
        "sponsor": {
          "oneOf": [
            {
              "$ref": "#/$defs/organization"
            },
            {
              "$ref": "#/$defs/person"
            }
          ],
          "x-jsonld-id": "http://schema.org/sponsor"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        }
      }
    },
    "person": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        },
        "affiliation": {
          "$ref": "#/$defs/organization",
          "x-jsonld-id": "http://schema.org/affiliation"
        }
      }
    },
    "organization": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "alternateName": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/alternateName"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    },
    "softwareApplication": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    },
    "propertyValue": {
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "boolean"
            },
            {
              "type": "number"
            }
          ],
          "x-jsonld-id": "http://schema.org/value"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        },
        "valueReference": {
          "oneOf": [
            {
              "$ref": "#/$defs/categoryCode"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/$defs/categoryCode"
              }
            }
          ],
          "x-jsonld-id": "http://schema.org/valueReference"
        },
        "unitCode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "uri"
            }
          ],
          "x-jsonld-id": "http://schema.org/unitCode"
        },
        "unitText": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/unitText"
        }
      }
    },
    "categoryCode": {
      "type": "object",
      "required": [
        "name",
        "codeValue",
        "url"
      ],
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "codeValue": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/codeValue"
        },
        "url": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    },
    "creativeWork": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    },
    "product": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    },
    "definedTerm": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "identifier": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/identifier"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        },
        "termCode": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/termCode"
        }
      }
    },
    "computerLanguage": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        }
      }
    },
    "imageObject": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "x-jsonld-id": "http://schema.org/name"
        },
        "url": {
          "type": "string",
          "format": "uri",
          "x-jsonld-id": "http://schema.org/url"
        }
      }
    }
  },
  "x-jsonld-extra-terms": {
    "ComputationalWorkflow": "https://bioschemas.org/terms/ComputationalWorkflow",
    "codeValue": "http://schema.org/codeValue"
  },
  "x-jsonld-prefixes": {
    "bioschemas": "https://bioschemas.org/terms/",
    "schema": "http://schema.org/"
  }
}