$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.yaml
    - type: array
      items:
        $ref: https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.yaml
    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.yaml
    - type: array
      items:
        $ref: https://ogcincubator.github.io/bblocks-ro-crate/build/annotated/researchobject/ro-crate/bioschemas/formal-parameter/schema.yaml
    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/
