⬇️ Download profile metadata (JSON-LD)  |  πŸ“ View whole crate on GitHub


title: Workflow RO-Crate profile 1.0 -- EXPERIMENTAL RO-Crate Schema Profile

NOTE: This document is an attempt by Peter (PT) Sefton to see if this profile can be expressed in Schema.org Style Schema terms using RO-Crate Schema (AKA SoSS+) ![Workflow RO-Crate]({{ '/assets/img/ro-crate-workflow.svg' | relative_url }}){: height="300px" width="300px"}

Please leave any suggestions and comments here: https://github.com/seek4science/seek/issues/183

Workflow RO-Crates are a specialization of RO-Crate for packaging an executable workflow with all necessary documentation. It extends the more general Bioschemas ComputationalWorkflow profile.

WorkflowHub uses Workflow RO-Crates as an exchange format for users to upload a packaged workflow.

Extension profiles

Several extensions of Workflow RO-Crate exists:

Concepts

This section uses terminology from the RO-Crate 1.1 specification.

Context

The Crate JSON-LD MUST be valid according to RO-Crate 1.1 and SHOULD use the RO-Crate 1.1 @context https://w3id.org/ro/crate/1.1/context

8 classes · 17 properties

Classes

Properties

  • @id #RO-Crate_Metadata_Descriptor.id
  • @id #property_CreativeWork_README.id
  • @id #property_Dataset_Test_Directory.id
  • @id #property_Dataset_Examples_Directory.id
  • about #RO-Crate_Metadata_Descriptor.about
  • about #property_CreativeWork_README.about
  • conformsTo #prop_conformsTo_Root_Data_Entity
  • datePublished β€” MUST be a string in ISO 8601 date format and SHOULD be specified to at least the precision of a day, MAY be a timestamp down to the millisecond #prop_datePublised_Dataset
  • description β€” (In addition to the name) SHOULD further elaborate on the name to provide a summary of the context in which the dataset is important #prop_description_Dataset
  • encodingFormat #property_CreativeWork_README.encodingFormat
  • image #Property_MainWorkflow_image
  • license β€” TODO: Deal with the supplied list of licenses (string values) SHOULD link to a Contextual Entity in the RO-Crate Metadata File with a name and description #prop_license_Dataset
  • mainEntity #Property_mainEntity_Workflow
  • name β€” SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates
  • programmingLanguage #Property_programmingLanguage_Workflow
  • programmingLanguage #Property_programmingLanguage_WorkflowDescription
  • subjectOf #Property_MainWorkflow_subjectOf

Types of entities (specializations of Classes) and expected Properties

Class: RO-Crate Metadadata Descriptor #RO-Crate_Metadata_Descriptor

At least 1 instances of this type MUST be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
1 1
Property Required Description Range Value
@type Yes http://schema.org/CreativeWork
@id #RO-Crate_Metadata_Descriptor.id Yes The RO-Crate Metadata ro-crate-metadata.json
about β“˜ #RO-Crate_Metadata_Descriptor.about Yes This property on the RO-Crate Metadata Descriptor references the Root Data Entity. Root Data Entity

Examples of Type

Examples

Class: Root Data Entity #Root_Data_Entity

The Root Data Entity for an RO-Crate. This is the main entity of the RO-Crate and is the one that is referenced by the RO-Crate Metadata Descriptor.

At least 1 instances of this type MUST be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
1 1
Property Required Description Range Value
@type Yes http://schema.org/Dataset
conformsTo #prop_conformsTo_Root_Data_Entity Yes The RO-Crate conforms to this profile. This is a link to to the profile entity Profile Item List
datePublished β“˜ #prop_datePublised_Dataset Yes MUST be a string in ISO 8601 date format and SHOULD be specified to at least the precision of a day, MAY be a timestamp down to the millisecond. schema:Date
description β“˜ #prop_description_Dataset Yes (In addition to the name) SHOULD further elaborate on the name to provide a summary of the context in which the dataset is important. Text
license β“˜ #prop_license_Dataset Yes TODO: Deal with the supplied list of licenses (string values) SHOULD link to a Contextual Entity in the RO-Crate Metadata File with a name and description. MAY have a URI (eg for Creative Commons or Open Source licenses). MAY if necessary be a textual description of how the RO-Crate may be used #class_CreativeWork, schema:URL, schema:Text
mainEntity β“˜ #Property_mainEntity_Workflow Yes Links the Root Data Entity to the Main Workflow. The RO-Crate MUST contain exactly one Main Workflow. Main Workflow
name β“˜ Yes SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates Text

Examples of Type

Examples

Class: Main Workflow #Class_MainWorkflow

The Main Workflow is the primary workflow of the RO-Crate. It represents the computational process that is described by the RO-Crate.

At least 1 instances of this type MUST be present in the crate.

Min Count Max Count
1 N/A
Property Required Description Range Value
@type Yes http://schema.org/MediaObject, http://schema.org/SoftwareSourceCode, https://bioschemas.org/ComputationalWorkflow
programmingLanguage β“˜ #Property_programmingLanguage_Workflow Yes The programming language used to implement the Main Workflow. This is a string that should be a valid programming language name. Programming Languages
image β“˜ #Property_MainWorkflow_image No If Main Workflow Diagram is present, the Main Workflow MUST refer to it via image. Main Workflow Diagram
subjectOf β“˜ #Property_MainWorkflow_subjectOf No Main Workflow to a workflow description. The RO-Crate MUST contain exactly one Main Workflow Description. Main Workflow Description

Examples of Type

Examples

Class: Main Workflow Description #Class_MainWorkflow_Description

The Crate COULD contain a data entity of type [File, SoftwareSourceCode, HowTo] as the Main Workflow CWL Description.

Instances of this type MAY be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
N/A 1
Property Required Description Range Value
@type Yes http://schema.org/MediaObject, http://schema.org/SoftwareSourceCode, http://schema.org/HowTo
programmingLanguage β“˜ #Property_programmingLanguage_WorkflowDescription Yes The programming language used to implement the Main Workflow. This is a string that should be a valid programming language name. Common Workflow Language

Class: README File #class_CreativeWork_README

Instances of this type SHOULD be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
0 1
Property Required Description Range Value
@type Yes http://schema.org/CreativeWork, http://schema.org/MediaObject
@id #property_CreativeWork_README.id Yes README file must have @id of README.md. README.md
about β“˜ #property_CreativeWork_README.about Yes The README.md file SHOULD have an about property referencing the Root Data Entity. Root Data Entity
encodingFormat β“˜ #property_CreativeWork_README.encodingFormat Yes Readme file must have an encodingFormat of text/markdown. text/markdown

Class: Test Directory #class_Dataset_Test_Directory

Instances of this type SHOULD be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
0 1
Property Required Description Range Value
@type Yes http://schema.org/Dataset
@id #property_Dataset_Test_Directory.id Yes The RO-Crate Metadata test/

Examples of Type

Examples

Class: Examples Directory #class_Dataset_Examples_Directory

Instances of this type SHOULD be present in the crate.

A maximum of 1 instances of this type MAY be present in the crate.

Min Count Max Count
0 1
Property Required Description Range Value
@type Yes http://schema.org/Dataset
@id #property_Dataset_Examples_Directory.id Yes The RO-Crate Metadata examples/

Examples of Type

Examples

Class: Main Workflow Diagram #Class_ImageObject_Diagram

Instances of this type MAY be present in the crate.

Min Count Max Count
N/A N/A
Property Required Description Range Value
@type Yes http://schema.org/ImageObject, http://schema.org/MediaObject
No properties defined for this class

Examples of Type

Examples

All Properties

Property: @id #RO-Crate_Metadata_Descriptor.id

Description Range Occurs in Domain(s)
The RO-Crate Metadata RO-Crate Metadadata Descriptor

Property: @id #property_CreativeWork_README.id

Description Range Occurs in Domain(s)
README file must have @id of README.md. README File

Property: @id #property_Dataset_Test_Directory.id

Description Range Occurs in Domain(s)
The RO-Crate Metadata Test Directory

Property: @id #property_Dataset_Examples_Directory.id

Description Range Occurs in Domain(s)
The RO-Crate Metadata Examples Directory

Property: about β“˜ #RO-Crate_Metadata_Descriptor.about

Description Range Occurs in Domain(s)
This property on the RO-Crate Metadata Descriptor references the Root Data Entity. Root Data Entity RO-Crate Metadadata Descriptor

Property: about β“˜ #property_CreativeWork_README.about

Description Range Occurs in Domain(s)
The README.md file SHOULD have an about property referencing the Root Data Entity. Root Data Entity README File

Property: conformsTo #prop_conformsTo_Root_Data_Entity

Description Range Occurs in Domain(s)
The RO-Crate conforms to this profile. This is a link to to the profile entity Profile Item List Root Data Entity

Property: datePublished β“˜ #prop_datePublised_Dataset

Description Range Occurs in Domain(s)
MUST be a string in ISO 8601 date format and SHOULD be specified to at least the precision of a day, MAY be a timestamp down to the millisecond. schema:Date Root Data Entity

Property: description β“˜ #prop_description_Dataset

Description Range Occurs in Domain(s)
(In addition to the name) SHOULD further elaborate on the name to provide a summary of the context in which the dataset is important. Text Root Data Entity

Property: encodingFormat β“˜ #property_CreativeWork_README.encodingFormat

Description Range Occurs in Domain(s)
Readme file must have an encodingFormat of text/markdown. README File

Property: image β“˜ #Property_MainWorkflow_image

Description Range Occurs in Domain(s)
If Main Workflow Diagram is present, the Main Workflow MUST refer to it via image. Main Workflow Diagram Main Workflow

Property: license β“˜ #prop_license_Dataset

Description Range Occurs in Domain(s)
TODO: Deal with the supplied list of licenses (string values) SHOULD link to a Contextual Entity in the RO-Crate Metadata File with a name and description. MAY have a URI (eg for Creative Commons or Open Source licenses). MAY if necessary be a textual description of how the RO-Crate may be used #class_CreativeWork, schema:URL, schema:Text Root Data Entity

Property: mainEntity β“˜ #Property_mainEntity_Workflow

Description Range Occurs in Domain(s)
Links the Root Data Entity to the Main Workflow. The RO-Crate MUST contain exactly one Main Workflow. Main Workflow Root Data Entity

Property: name β“˜

Description Range Occurs in Domain(s)
SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates Text Root Data Entity

Property: programmingLanguage β“˜ #Property_programmingLanguage_Workflow

Description Range Occurs in Domain(s)
The programming language used to implement the Main Workflow. This is a string that should be a valid programming language name. Programming Languages Main Workflow

Property: programmingLanguage β“˜ #Property_programmingLanguage_WorkflowDescription

Description Range Occurs in Domain(s)
The programming language used to implement the Main Workflow. This is a string that should be a valid programming language name. Common Workflow Language Main Workflow Description

Property: subjectOf β“˜ #Property_MainWorkflow_subjectOf

Description Range Occurs in Domain(s)
Main Workflow to a workflow description. The RO-Crate MUST contain exactly one Main Workflow Description. Main Workflow Description Main Workflow

Item Lists

Item List: Profile Item List

A list of valid profile values for this RO-Crate Profile


{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0", "@type": [ "CreativeWork", "Profile" ], "name": "Workflow RO-Crate Profile (experimental)", "version": "0.4.0", "description": "This is a profile for RO-Crates that are used to describe workflows -- NOTE have moved the conformsTo to the ROOT Data Entity as per RO-Crate 1.2" }

ID: https://w3id.org/workflowhub/workflow-ro-crate/1.0

Item List: Programming Languages

A list of programming languages that can be used to implement the Main Workflow


{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#cwl", "@type": "ComputerLanguage", "name": "Common Workflow Language", "alternateName": "CWL", "identifier": { "@id": "https://w3id.org/cwl/v1.2/" }, "url": { "@id": "https://www.commonwl.org/" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#cwl

{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#galaxy", "@type": "ComputerLanguage", "name": "Galaxy", "identifier": { "@id": "https://galaxyproject.org/" }, "url": { "@id": "https://galaxyproject.org/" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#galaxy

{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#knime", "@type": "ComputerLanguage", "name": "KNIME", "identifier": { "@id": "https://www.knime.com/" }, "url": { "@id": "https://www.knime.com/" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#knime

{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow", "@type": "ComputerLanguage", "name": "Nextflow", "identifier": { "@id": "https://www.nextflow.io/" }, "url": { "@id": "https://www.nextflow.io/" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#nextflow

{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#snakemake", "@type": "ComputerLanguage", "name": "Snakemake", "identifier": { "@id": "https://doi.org/10.1093/bioinformatics/bts480" }, "url": { "@id": "https://snakemake.readthedocs.io" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#snakemake

Item List: Common Workflow Language

A list containing only the Common Workflow Language (CWL) as a programming language for the WWorkflow Description.


{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate#cwl", "@type": "ComputerLanguage", "name": "Common Workflow Language", "alternateName": "CWL", "identifier": { "@id": "https://w3id.org/cwl/v1.2/" }, "url": { "@id": "https://www.commonwl.org/" } }

ID: https://w3id.org/workflowhub/workflow-ro-crate#cwl

Example-1: Example: Workflow

Artifact: An example workflow RO-Crate

 {
  "@id": "#WorkflowExample",
  "@type": "LearningResource",
  "name": "An example workflow RO-Crate",
  "mainEntity": {
    "@id": "./"
  },
  "hasPart": [
    {
      "@id": "./"
    },
    {
      "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0"
    },
    {
      "@id": "example_workflow.cwl"
    },
    {
      "@id": "diagram.svg"
    },
    {
      "@id": "README.md"
    }
  ]
}

Example-1: ./

 {
  "@id": "./",
  "@type": "Dataset",
  "name": "Example Workflow",
  "conformsTo": {
    "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0"
  },
  "description": "An example workflow RO-Crate",
  "license": "Apache-2.0",
  "datePublished": "2025-10-15",
  "mainEntity": {
    "@id": "example_workflow.cwl"
  },
  "hasPart": [
    {
      "@id": "example_workflow.cwl"
    },
    {
      "@id": "diagram.svg"
    },
    {
      "@id": "README.md"
    },
    {
      "@id": "profile-documentation.md"
    }
  ]
}

Example-1: https://w3id.org/workflowhub/workflow-ro-crate/1.0

 {
  "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0",
  "@type": [
    "CreativeWork",
    "Profile"
  ],
  "name": "Workflow RO-Crate Profile (experimental)",
  "version": "0.4.0",
  "description": "This is a profile for RO-Crates that are used to describe workflows -- NOTE have moved the conformsTo to the ROOT Data Entity  as per RO-Crate 1.2"
}

Example-1: example_workflow.cwl

 {
  "@id": "example_workflow.cwl",
  "@type": [
    "File",
    "SoftwareSourceCode",
    "ComputationalWorkflow"
  ],
  "programmingLanguage": {
    "@id": "https://w3id.org/workflowhub/workflow-ro-crate#cwl"
  },
  "name": "Example Workflow",
  "image": {
    "@id": "diagram.svg"
  }
}

Example-1: diagram.svg

 {
  "@id": "diagram.svg",
  "name": "Example Workflow Diagram",
  "@type": [
    "File",
    "ImageObject"
  ]
}

Example-1: README.md

 {
  "@id": "README.md",
  "@type": "File",
  "about": "./",
  "encodingFormat": "text/markdown"
}

Provenance

This document was compiled using generate-masp-docs.js, based on profiles/workflow/profile-text.md using a MASP Schema defined in profiles/workflow/profile-crate/ro-crate-metadata.json.