-
Notifications
You must be signed in to change notification settings - Fork 18
Workflow RO Crate
Please note this is a draft spec and subject to change. 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.
The Workflow Hub uses Workflow RO Crates as an exchange format for users to upload a packaged workflow.
This section uses terminology from the RO Crate 1.0 specification.
The Crate MUST contain a data entity of type ["File", "SoftwareSourceCode", "Workflow"]
as the Main Workflow.
The Crate MUST refer to the Main Workflow via mainEntity
.
The Main Workflow MUST refer to its type via programmingLanguage
.
The Crate COULD contain a data entity of type ["File", "SoftwareSourceCode", "Workflow"]
as the Main Workflow CWL Description.
If present the Main Workflow MUST refer to the Main Workflow CWL Description via subjectOf
.
The Crate COULD contain a Main Workflow Diagram, indicated as a data entity of type ["File", "ImageObject", "WorkflowSketch"]
.
If Main Workflow Diagram is present, the Main Workflow MUST refer to it via image
.
The Crate MUST specify a license
.
The Crate SHOULD contain README.md at the root level.
The Crate COULD contain a Dataset (directory) data entity of type ["Dataset"]
named "test" to hold tests.
The Crate COULD contain a Dataset (directory) data entity of type ["Dataset"]
named "examples" to hold examples.
The Workflow RO Crate must be zipped, and have the file extension .crate.zip
to be recognized by the Workflow Hub.
The Workflow Hub will extract and expose the following properties from the Crate entity (./
) in ro-crate-metadata.jsonld
:
-
name
- This will be shown as the title of the workflow. -
description
- This will be shown as the description of the workflow. If it is not present, but aREADME.md
file is available in the root of the crate, that will be rendered instead. -
author
- These will be shown as "creators" of the workflow. -
license
- See below. -
keywords
- These will be shown as "tags", and can be filtered over.
If the Main Workflow CWL Description is present it will be parsed and the inputs, outputs and steps will be listed on the workflow's page in the Hub.
If the Main Workflow Diagram is present, it will also be rendered on the page.
The Workflow Hub currently supports CWL, Galaxy, KNIME and Nextflow workflow types.
To ensure compatibility, please include one of the following in the RO Crate metadata, and refer to it from the Main Workflow's programmingLanguage
.
{
"@id": "#cwl",
"@type": "ComputerLanguage",
"name": "Common Workflow Language",
"alternateName": "CWL",
"identifier": {
"@id": "https://w3id.org/cwl/v1.0/"
},
"url": {
"@id": "https://www.commonwl.org/"
}
}
{
"@id": "#galaxy",
"@type": "ComputerLanguage",
"name": "Galaxy",
"identifier": {
"@id": "https://galaxyproject.org/"
},
"url": {
"@id": "https://galaxyproject.org/"
}
}
{
"@id": "#knime",
"@type": "ComputerLanguage",
"name": "KNIME",
"identifier": {
"@id": "https://www.knime.com/"
},
"url": {
"@id": "https://www.knime.com/"
}
}
{
"@id": "#nextflow",
"@type": "ComputerLanguage",
"name": "Nextflow",
"identifier": {
"@id": "https://www.nextflow.io/"
},
"url": {
"@id": "https://www.nextflow.io/"
}
}
Although the Crate's license
field should be a URL, the Workflow Hub currently accepts a string of one of the following values (on the left):
-
AFL-3.0
- Academic Free License 3.0 -
APL-1.0
- Adaptive Public License 1.0 -
Apache-1.1
- Apache Software License 1.1 -
Apache-2.0
- Apache Software License 2.0 -
APSL-2.0
- Apple Public Source License 2.0 -
Artistic-2.0
- Artistic License 2.0 -
AAL
- Attribution Assurance Licenses -
BSD-2-Clause
- BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause) -
BSD-3-Clause
- BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) -
BitTorrent-1.1
- BitTorrent Open Source License 1.1 -
BSL-1.0
- Boost Software License 1.0 -
CC0-1.0
- CC0 1.0 -
CNRI-Python
- CNRI Python License -
CUA-OPL-1.0
- CUA Office Public License 1.0 -
CECILL-2.1
- CeCILL License 2.1 -
CDDL-1.0
- Common Development and Distribution License 1.0 -
CPAL-1.0
- Common Public Attribution License 1.0 -
CATOSL-1.1
- Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1) -
EUDatagrid
- EU DataGrid Software License -
EPL-1.0
- Eclipse Public License 1.0 -
ECL-2.0
- Educational Community License 2.0 -
EFL-2.0
- Eiffel Forum License 2.0 -
Entessa
- Entessa Public License -
EUPL-1.1
- European Union Public License 1.1 -
Fair
- Fair License -
Frameworx-1.0
- Frameworx License 1.0 -
AGPL-3.0
- GNU Affero General Public License v3 -
GPL-2.0
- GNU General Public License 2.0 -
GPL-3.0
- GNU General Public License 3.0 -
LGPL-2.1
- GNU Lesser General Public License 2.1 -
LGPL-3.0
- GNU Lesser General Public License 3.0 -
HPND
- Historical Permission Notice and Disclaimer -
IPL-1.0
- IBM Public License 1.0 -
IPA
- IPA Font License -
ISC
- ISC License -
Intel
- Intel Open Source License -
LPPL-1.3c
- LaTeX Project Public License 1.3c -
LPL-1.0
- Lucent Public License ("Plan9") 1.0 -
LPL-1.02
- Lucent Public License 1.02 -
MIT
- MIT License -
mitre
- MITRE Collaborative Virtual Workspace License (CVW License) -
MS-PL
- Microsoft Public License -
MS-RL
- Microsoft Reciprocal License -
MirOS
- MirOS Licence -
Motosoto
- Motosoto License -
MPL-1.0
- Mozilla Public License 1.0 -
MPL-1.1
- Mozilla Public License 1.1 -
MPL-2.0
- Mozilla Public License 2.0 -
Multics
- Multics License -
NASA-1.3
- NASA Open Source Agreement 1.3 -
NTP
- NTP License -
Naumen
- Naumen Public License -
NGPL
- Nethack General Public License -
Nokia
- Nokia Open Source License -
NPOSL-3.0
- Non-Profit Open Software License 3.0 -
OCLC-2.0
- OCLC Research Public License 2.0 -
OFL-1.1
- Open Font License 1.1 -
OGL-UK-1.0
- Open Government Licence 1.0 (United Kingdom) -
OGL-UK-2.0
- Open Government Licence 2.0 (United Kingdom) -
OGL-UK-3.0
- Open Government Licence 3.0 (United Kingdom) -
OGTSL
- Open Group Test Suite License -
OSL-3.0
- Open Software License 3.0 -
PHP-3.0
- PHP License 3.0 -
PostgreSQL
- PostgreSQL License -
Python-2.0
- Python License 2.0 -
QPL-1.0
- Q Public License 1.0 -
RPSL-1.0
- RealNetworks Public Source License 1.0 -
RPL-1.5
- Reciprocal Public License 1.5 -
RSCPL
- Ricoh Source Code Public License -
SimPL-2.0
- Simple Public License 2.0 -
Sleepycat
- Sleepycat License -
SISSL
- Sun Industry Standards Source License 1.1 -
SPL-1.0
- Sun Public License 1.0 -
Watcom-1.0
- Sybase Open Watcom Public License 1.0 -
NCSA
- University of Illinois/NCSA Open Source License -
Unlicense
- Unlicense -
VSL-1.0
- Vovida Software License 1.0 -
W3C
- W3C License -
Xnet
- X.Net License -
ZPL-2.0
- Zope Public License 2.0 -
WXwindows
- wxWindows Library License -
Zlib
- zlib/libpng license -
notspecified
- No license - no permission to use unless the owner grants a licence
A minimal example of Workflow RO Crate metadata, containing a CWL workflow, an SVG diagram of that workflow and a README file.
{
"@context": "https://w3id.org/ro/crate/1.0/context",
"@graph": [
{
"@id": "ro-crate-metadata.jsonld",
"@type": "CreativeWork",
"about": {
"@id": "./"
}
},
{
"@id": "ro-crate-preview.html",
"@type": "CreativeWork",
"about": {
"@id": "./"
}
},
{
"@id": "./",
"@type": "Dataset",
"name": "Example Workflow",
"description": "An example workflow RO Crate",
"license": "Apache-2.0",
"mainEntity": {
"@id": "example_workflow.cwl"
},
"hasPart": [
{
"@id": "example_workflow.cwl"
},
{
"@id": "diagram.svg"
},
{
"@id": "README.md"
}
]
},
{
"@id": "example_workflow.cwl",
"@type": [
"File",
"SoftwareSourceCode",
"Workflow"
],
"programmingLanguage": {
"@id": "#cwl"
},
"name": "Example Workflow",
"image": {
"@id": "diagram.svg"
}
},
{
"@id": "diagram.svg",
"name": "Example Workflow Diagram",
"@type": [
"File",
"ImageObject",
"WorkflowSketch"
]
},
{
"@id": "README.md",
"@type": "File"
},
{
"@id": "#cwl",
"@type": "ComputerLanguage",
"name": "Common Workflow Language",
"alternateName": "CWL",
"identifier": {
"@id": "https://w3id.org/cwl/v1.0/"
},
"url": {
"@id": "https://www.commonwl.org/"
}
}
]
}
workflowhub.eu wiki content is distributed under BSD 3-Clause "New" or "Revised" License, developed as part of EOSC-Life, funded by European Union’s Horizon 2020 programme under grant agreement number 824087.