⬇️ Download profile metadata (JSON-LD)  |  ⬇️ Download profile metadata (Excel)


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

9 classes · 19 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_datePublished_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. 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 #prop_license_Dataset
  • mainEntity #Property_mainEntity_Workflow
  • name — SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates
  • name #prop_name_classProfile
  • programmingLanguage #Property_programmingLanguage_Workflow
  • programmingLanguage #Property_programmingLanguage_WorkflowDescription
  • subjectOf #Property_MainWorkflow_subjectOf
  • version #prop_version_classProfile

Types of entities (specializations of Classes) and expected Properties

Class: RO-Crate Metadadata 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 Specialization Of Required Description Range Value
@type Yes CreativeWork
@id Yes The RO-Crate Metadata RO-Crate Metadadata Descriptor Identifier Constraint
about http://schema.org/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

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 Specialization Of Required Description Range Value
@type Yes Dataset
conformsTo Yes The RO-Crate conforms to this profile. This is a link to to the profile entity Required Workflow Profile Value, Profile
datePublished http://schema.org/datePubished 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 http://schema.org/description 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 http://schema.org/license 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 http://schema.org/mainEntity Yes Links the Root Data Entity to the Main Workflow. The RO-Crate MUST contain exactly one Main Workflow. Main Workflow
name http://schema.org/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

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 Specialization Of Required Description Range Value
@type Yes MediaObject, SoftwareSourceCode, ComputationalWorkflow
programmingLanguage http://schema.org/programmingLanguage 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 http://schema.org/image No If Main Workflow Diagram is present, the Main Workflow MUST refer to it via image. Main Workflow Diagram
subjectOf http://schema.org/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

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 Specialization Of Required Description Range Value
@type Yes MediaObject, SoftwareSourceCode, HowTo
programmingLanguage http://schema.org/programmingLanguage 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

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 Specialization Of Required Description Range Value
@type Yes CreativeWork, MediaObject
@id Yes README file must have an @id matching /^readme.md$/i. README ID Pattern
about http://schema.org/about Yes The README.md file SHOULD have an about property referencing the Root Data Entity. Root Data Entity
encodingFormat http://schema.org/encodingFormat Yes Readme file must have an encodingFormat of text/markdown. README File encodingFormat Constraint

Class: 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 Specialization Of Required Description Range Value
@type Yes Dataset
@id Yes The RO-Crate Metadata Test Directory Identifier Constraint

Examples of Type

Examples

Class: 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 Specialization Of Required Description Range Value
@type Yes Dataset
@id Yes The RO-Crate Metadata Examples Directory Identifier Constraint

Examples of Type

Examples

Class: Main Workflow Diagram

Instances of this type MAY be present in the crate.

Min Count Max Count
N/A N/A
Property Specialization Of Required Description Range Value
@type Yes ImageObject, MediaObject
No properties defined for this class

Examples of Type

Examples

Class: Profile

A generic profile entity.

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 Specialization Of Required Description Range Value
@type Yes CreativeWork, Profile
name Yes Text
version Yes Text

All Properties

Property: @id

Property Description Range Occurs in Domain(s)
@id The RO-Crate Metadata RO-Crate Metadadata Descriptor Identifier Constraint RO-Crate Metadadata Descriptor

Property: @id

Property Description Range Occurs in Domain(s)
@id README file must have an @id matching /^readme.md$/i. README ID Pattern README File

Property: @id

Property Description Range Occurs in Domain(s)
@id The RO-Crate Metadata Test Directory Identifier Constraint Test Directory

Property: @id

Property Description Range Occurs in Domain(s)
@id The RO-Crate Metadata Examples Directory Identifier Constraint Examples Directory

Property: about

Property Specialization Of Description Range Occurs in Domain(s)
about http://schema.org/about This property on the RO-Crate Metadata Descriptor references the Root Data Entity. Root Data Entity RO-Crate Metadadata Descriptor

Property: about

Property Specialization Of Description Range Occurs in Domain(s)
about http://schema.org/about The README.md file SHOULD have an about property referencing the Root Data Entity. Root Data Entity README File

Property: conformsTo

Property Description Range Occurs in Domain(s)
conformsTo The RO-Crate conforms to this profile. This is a link to to the profile entity Required Workflow Profile Value, Profile Root Data Entity

Property: datePublished

Property Specialization Of Description Range Occurs in Domain(s)
datePublished http://schema.org/datePubished 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

Property Specialization Of Description Range Occurs in Domain(s)
description http://schema.org/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. Text Root Data Entity

Property: encodingFormat

Property Specialization Of Description Range Occurs in Domain(s)
encodingFormat http://schema.org/encodingFormat Readme file must have an encodingFormat of text/markdown. README File encodingFormat Constraint README File

Property: image

Property Specialization Of Description Range Occurs in Domain(s)
image http://schema.org/image If Main Workflow Diagram is present, the Main Workflow MUST refer to it via image. Main Workflow Diagram Main Workflow

Property: license

Property Specialization Of Description Range Occurs in Domain(s)
license http://schema.org/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. 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 Specialization Of Description Range Occurs in Domain(s)
mainEntity http://schema.org/mainEntity 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 (http://schema.org/name)

Property Specialization Of Description Range Occurs in Domain(s)
name http://schema.org/name SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates Text Root Data Entity

Property: name

Property Description Range Occurs in Domain(s)
name Text Profile

Property: programmingLanguage

Property Specialization Of Description Range Occurs in Domain(s)
programmingLanguage http://schema.org/programmingLanguage 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 Specialization Of Description Range Occurs in Domain(s)
programmingLanguage http://schema.org/programmingLanguage 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 Specialization Of Description Range Occurs in Domain(s)
subjectOf http://schema.org/subjectOf Main Workflow to a workflow description. The RO-Crate MUST contain exactly one Main Workflow Description. Main Workflow Description Main Workflow

Property: version

Property Description Range Occurs in Domain(s)
version Text Profile

Property Values

Property Value: Examples Directory Identifier Constraint

ID: #propertyValue_property_Dataset_Examples_Directory.id

Property ValueDescriptionValueMin CountMax Count
Examples Directory Identifier ConstraintAllowed identifier value constraint for Examples Directory.
Literal String
examples/
11

Property Value: README File encodingFormat Constraint

ID: #propertyValue_property_CreativeWork_README.encodingFormat

Property ValueDescriptionValueMin CountMax Count
README File encodingFormat ConstraintAllowed value constraint for README File property encodingFormat.
Literal String
text/markdown
11

Property Value: README ID Pattern

ID: #propertyValue_property_CreativeWork_README.id

Property ValueDescriptionValueMin CountMax Count
README ID PatternREADME file must have an @id of README.md (case-insensitive).
Regex Pattern
/^readme\.md$/i
11

Property Value: Required Workflow Profile Value

ID: #Root_Data_Entity_conformsTo_value

Property ValueDescriptionValueMin CountMax Count
Required Workflow Profile ValueA constrained conformsTo value that must appear exactly once.
{
  "@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"
}
11

Property Value: RO-Crate Metadadata Descriptor Identifier Constraint

ID: #propertyValue_RO-Crate_Metadata_Descriptor.id

Property ValueDescriptionValueMin CountMax Count
RO-Crate Metadadata Descriptor Identifier ConstraintAllowed identifier value constraint for RO-Crate Metadadata Descriptor.
Literal String
ro-crate-metadata.json
11

Property Value: Test Directory Identifier Constraint

ID: #propertyValue_property_Dataset_Test_Directory.id

Property ValueDescriptionValueMin CountMax Count
Test Directory Identifier ConstraintAllowed identifier value constraint for Test Directory.
Literal String
test/
11

Item Lists

Item List: Profile Item List

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

Name@idEntity
Workflow RO-Crate Profile (experimental)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"
}

Item List: Programming Languages

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

Name@idEntity
Common Workflow Languagehttps://w3id.org/workflowhub/workflow-ro-crate#cwl
{
  "@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/"
  }
}
Galaxyhttps://w3id.org/workflowhub/workflow-ro-crate#galaxy
{
  "@id": "https://w3id.org/workflowhub/workflow-ro-crate#galaxy",
  "@type": "ComputerLanguage",
  "name": "Galaxy",
  "identifier": {
    "@id": "https://galaxyproject.org/"
  },
  "url": {
    "@id": "https://galaxyproject.org/"
  }
}
KNIMEhttps://w3id.org/workflowhub/workflow-ro-crate#knime
{
  "@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/"
  }
}
Nextflowhttps://w3id.org/workflowhub/workflow-ro-crate#nextflow
{
  "@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/"
  }
}
Snakemakehttps://w3id.org/workflowhub/workflow-ro-crate#snakemake
{
  "@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"
  }
}

Item List: Supported conformsTo identifiers

Canonical identifiers that indicate conformance to this profile.

Name@idEntity
Workflow Profilehttps://w3id.org/ro/workflow-crate/1.0
{
  "@id": "https://w3id.org/ro/workflow-crate/1.0",
  "@type": [
    "CreativeWork",
    "Profile"
  ],
  "name": "Workflow Profile",
  "url": "https://w3id.org/ro/workflow-crate/1.0"
}

Item List: Common Workflow Language

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

Name@idEntity
Common Workflow Languagehttps://w3id.org/workflowhub/workflow-ro-crate#cwl
{
  "@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/"
  }
}

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://language-research-technology.github.io/ro-crate-masp/profiles/ro-crate-masp/profile-crate/#profile"
    },
    {
      "@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": "crate-o-mode.json"
    },
    {
      "@id": "index.html"
    }
  ]
}

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.