β¬οΈ Download profile metadata (JSON-LD) | π View whole crate on GitHub
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+) {: height="300px" width="300px"}
ro-crate-metadata.json
ro-crate-metadata.json
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.
Several extensions of Workflow RO-Crate exists:
This section uses terminology from the RO-Crate 1.1 specification.
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
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 |
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 |
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 |
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 |
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 |
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/ |
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/ |
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 |
| Description | Range | Occurs in Domain(s) |
|---|---|---|
| The RO-Crate Metadata | RO-Crate Metadadata Descriptor |
| Description | Range | Occurs in Domain(s) |
|---|---|---|
README file must have @id of README.md. |
README File |
| Description | Range | Occurs in Domain(s) |
|---|---|---|
| The RO-Crate Metadata | Test Directory |
| Description | Range | Occurs in Domain(s) |
|---|---|---|
| The RO-Crate Metadata | Examples Directory |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Description | Range | Occurs in Domain(s) |
|---|---|---|
Readme file must have an encodingFormat of text/markdown. |
README File |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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
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
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
{
"@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"
}
]
}
{
"@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"
}
]
}
{
"@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": "example_workflow.cwl",
"@type": [
"File",
"SoftwareSourceCode",
"ComputationalWorkflow"
],
"programmingLanguage": {
"@id": "https://w3id.org/workflowhub/workflow-ro-crate#cwl"
},
"name": "Example Workflow",
"image": {
"@id": "diagram.svg"
}
}
{
"@id": "diagram.svg",
"name": "Example Workflow Diagram",
"@type": [
"File",
"ImageObject"
]
}
{
"@id": "README.md",
"@type": "File",
"about": "./",
"encodingFormat": "text/markdown"
}
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.