From 40310950f66a0149ea7ac7b13ecbf4b3ed965f3f Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 15:58:49 +0100 Subject: [PATCH 01/18] Create schema.md --- schema.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 schema.md diff --git a/schema.md b/schema.md new file mode 100644 index 0000000..acd9d6e --- /dev/null +++ b/schema.md @@ -0,0 +1,103 @@ +## schema + +### base object +* **@context(static)**: + - **WES field**: N/A + - **type**: `string` | `[string]` + - **description**: URI pointing to the official context page of the version of Ro-Crate and any extensions being implemented. + - **default**: + ```json + [ + "https://w3id.org/ro/crate/1.1/context", + "https://w3id.org/ro/terms/workflow-run/context" + ] + ``` + +### metadata object +reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/metadata.html) + +* **@id**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: identifier for the metadata object and reference to the metadata file if one exists. + - **default**: + ```json + "ro-crate-metadata.json" + ``` + + * **conformsTo**(static): + - **WES field**: N/A + - **type**: `{"@id": string}` | `[{"@id": string}]` + - **description**: contains an `@id` field which is a URI pointing to the official specification page of the version of RoCrate and extensions implemented. + - **default**: + ```json + [ + {"@id": "https://w3id.org/ro/crate/1.1"}, + {"@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0"} + ] + ``` + +* **about**(static): + - **WES field**: N/A + - **type**: `{"@id": string}` + - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. + - **default**: + ```json + {"@id": "./"}, + ``` + + * **about**(static): + - **WES field**: N/A + - **type**: `{"@id": string}` + - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. + - **default**: + ```json + {"@id": "./"}, + ``` +### dataset object +reference: +1. [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) +2. https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/ + +* **@id**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: identifier for the dataset object. Must match the metadata.@id feild + - **default**: + ```json + "./" + ``` + +* **@type**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: a type for the dataset entity. + - **default**: + ```json + "Dataset" + ``` + + * **datePublished**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: The date the Ro-Crate was published. 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. + +* **name**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: Should identify the dataset to humans well enough to disambiguate it from other RO-Crates. + - **default**: + ```json + "A Ga4GH WES Ro-Crate" + ``` + +* **description**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: Should further elaborate on the name to provide a summary of the context in which the dataset is important.. + - **default**: + ```json + "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" + ``` + + From 40d2a099ba9ea1bd6c7014cf4466d2506b74bb6f Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:44:42 +0100 Subject: [PATCH 02/18] Update schema.md --- schema.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/schema.md b/schema.md index acd9d6e..22dca5c 100644 --- a/schema.md +++ b/schema.md @@ -94,10 +94,18 @@ reference: * **description**(static): - **WES field**: N/A - **type**: `string` - - **description**: Should further elaborate on the name to provide a summary of the context in which the dataset is important.. + - **description**: Should further elaborate on the name to provide a summary of the context in which the dataset is important. + - **default**: + ```json + "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" + ``` + +* **mainEntity**(required): + - **WES field**: N/A + - **type**: `{"@id": "string"}` + - **description**: Contains an `@id` field that points to a data entity, which contains the core data of the workflow log. - **default**: ```json "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" ``` - From 9ef98b959e2d9a5ea07e4a510a857163bb904dec Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:08:07 +0100 Subject: [PATCH 03/18] Update schema.md --- schema.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/schema.md b/schema.md index 22dca5c..bd95e82 100644 --- a/schema.md +++ b/schema.md @@ -108,4 +108,24 @@ reference: ```json "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" ``` - + +* **license**(recommended): + - **WES field**: N/A + - **type**: `{"@id": "string"}` + - **description**: Contains an `@id` field that points to a contextual entity, which contains relevant information on the license for the Ro-crate data. + 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. + +### license object +A contextual entity that contains relevant license information about the Ro-Crate. + +reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata.html]](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) + +* **@id**(static): + - **WES field**: N/A + - **type**: `string` + - **description**: + - **default**: + ```json + "./" + ``` + From bbabfb1595c279704954db31f7304bdf334d8bc6 Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:52:17 +0100 Subject: [PATCH 04/18] Update schema.md --- schema.md | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/schema.md b/schema.md index bd95e82..a2093d0 100644 --- a/schema.md +++ b/schema.md @@ -25,6 +25,12 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h "ro-crate-metadata.json" ``` +* **@type**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: The type of the content stored in the Ro-Crate. Should match the `license.@type` field if it exists. + + * **conformsTo**(static): - **WES field**: N/A - **type**: `{"@id": string}` | `[{"@id": string}]` @@ -120,12 +126,33 @@ A contextual entity that contains relevant license information about the Ro-Crat reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata.html]](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) -* **@id**(static): +* **@id**(required): - **WES field**: N/A - **type**: `string` - - **description**: - - **default**: - ```json - "./" - ``` + - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. + +* **@type**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: The type of the content stored in the Ro-Crate. Should match the `metadata.@type` field. + +* **name**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: The official name of the license. + +* **description**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: Some additional context. May just be some standard license text. For example: + ``` + "This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Australia License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/au/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA." + ``` + +* **identifier**(recommended): + - **WES field**: N/A + - **type**: `string` + - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. Should match the `license.@id` field. Should be added as some algorithms may look for this instead. + + From a70ef196ae4f467f920268fa672942f65c71b214 Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:15:51 +0100 Subject: [PATCH 05/18] Update schema.md --- schema.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/schema.md b/schema.md index a2093d0..df49e62 100644 --- a/schema.md +++ b/schema.md @@ -154,5 +154,28 @@ reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata. - **type**: `string` - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. Should match the `license.@id` field. Should be added as some algorithms may look for this instead. +### mainEntity object +This object will contain or point to all relevant data for the GA4GH WES Run Log. + +* **id**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: a File URI linking to the workflow entry-point. + +* **type**(static): + - **WES field**: N/A + - **type**: `string` | `[string]` + - **description**: The standard workflow type according to the Ro-Crate Version. + - **default**: + ```json + ["File", "SoftwareSourceCode", "ComputationalWorkflow"] + ``` + +* **name**(required): + - **WES field**: N/A + - **type**: `string` + - **description**: A human-readable name for the workflow. + + From 0f9d32d54888941e5fb82856d5c1c65d1b260412 Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Wed, 2 Oct 2024 23:04:50 +0100 Subject: [PATCH 06/18] Update schema.md --- schema.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/schema.md b/schema.md index df49e62..63a0e26 100644 --- a/schema.md +++ b/schema.md @@ -1,5 +1,7 @@ ## schema +### WORKFLOW RUN CRATE RO-CRATE FIELDS + ### base object * **@context(static)**: - **WES field**: N/A @@ -170,11 +172,35 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log ```json ["File", "SoftwareSourceCode", "ComputationalWorkflow"] ``` - + * **name**(required): - **WES field**: N/A - **type**: `string` - **description**: A human-readable name for the workflow. + +* **author**(recommended): + - **WES field**: N/A + - **type**: `{"@id": string}` + - **description**: contains an `@id` field that points to the workflow author. Should point to a contextual entity with the author's information. + +* **creator**(recommended): + - **WES field**: N/A + - **type**: `{"@id": string}` + - **description**: contains an `@id` field that points to the workflow creator. Should point to a contextual entity with the creator's information. + +* **programmingLanguage**(recommended): + - **WES field**: N/A + - **type**: `{"@id": string}` + - **description**: contains an `@id` field that points to the prrogramming language the workflow was written in. Should point to a contextual entity with the workflow's programming language. + +### GA4GH WES FIELDS + +* **indentifier**(required): + - **WES field**: run_id + - **type**: `string` + - **description**: The Workflow run_id. + + From fbc1e32471cda435b92172b6acc1a1da1533806a Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Thu, 3 Oct 2024 18:38:04 +0100 Subject: [PATCH 07/18] Update schema.md --- schema.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/schema.md b/schema.md index 63a0e26..c4628ae 100644 --- a/schema.md +++ b/schema.md @@ -200,6 +200,11 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `string` - **description**: The Workflow run_id. +* **indentifier**(required): + - **WES field**: run_id + - **type**: `string` + - **description**: The Workflow run_id. + From b6467d7ff9014bcd6355a9ed5a2e230725685d31 Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Thu, 3 Oct 2024 18:50:40 +0100 Subject: [PATCH 08/18] Update schema.md --- schema.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/schema.md b/schema.md index c4628ae..8410a91 100644 --- a/schema.md +++ b/schema.md @@ -31,6 +31,10 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h - **WES field**: N/A - **type**: `string` - **description**: The type of the content stored in the Ro-Crate. Should match the `license.@type` field if it exists. + - **default**: + ```json + "computationalWorkflow" + ``` * **conformsTo**(static): @@ -183,7 +187,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `{"@id": string}` - **description**: contains an `@id` field that points to the workflow author. Should point to a contextual entity with the author's information. -* **creator**(recommended): +* **creator**(required): - **WES field**: N/A - **type**: `{"@id": string}` - **description**: contains an `@id` field that points to the workflow creator. Should point to a contextual entity with the creator's information. From 81d365704539c35f26a76f21f2e3e59d78ced651 Mon Sep 17 00:00:00 2001 From: Salihu <91833785+SalihuDickson@users.noreply.github.com> Date: Fri, 4 Oct 2024 13:56:52 +0100 Subject: [PATCH 09/18] Update schema.md --- schema.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/schema.md b/schema.md index 8410a91..990e112 100644 --- a/schema.md +++ b/schema.md @@ -184,12 +184,12 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log * **author**(recommended): - **WES field**: N/A - - **type**: `{"@id": string}` + - **type**: `{"@id": string}` | `[{"@id": string}]` - **description**: contains an `@id` field that points to the workflow author. Should point to a contextual entity with the author's information. * **creator**(required): - **WES field**: N/A - - **type**: `{"@id": string}` + - **type**: `{"@id": string}` | `[{"@id": string}]` - **description**: contains an `@id` field that points to the workflow creator. Should point to a contextual entity with the creator's information. * **programmingLanguage**(recommended): From 25a10a068d19bbad538dd6020dddc418bd7870c3 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Fri, 4 Oct 2024 17:21:14 +0100 Subject: [PATCH 10/18] update schema.md --- schema.md | 194 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 129 insertions(+), 65 deletions(-) diff --git a/schema.md b/schema.md index 990e112..dcc2a77 100644 --- a/schema.md +++ b/schema.md @@ -3,7 +3,8 @@ ### WORKFLOW RUN CRATE RO-CRATE FIELDS ### base object -* **@context(static)**: + +- **@context(static)**: - **WES field**: N/A - **type**: `string` | `[string]` - **description**: URI pointing to the official context page of the version of Ro-Crate and any extensions being implemented. @@ -16,138 +17,165 @@ ``` ### metadata object + reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/metadata.html) -* **@id**(static): +- **@id**(static): + - **WES field**: N/A - **type**: `string` - **description**: identifier for the metadata object and reference to the metadata file if one exists. - **default**: + ```json "ro-crate-metadata.json" ``` -* **@type**(required): +- **@type**(required): + - **WES field**: N/A - **type**: `string` - **description**: The type of the content stored in the Ro-Crate. Should match the `license.@type` field if it exists. - **default**: + ```json - "computationalWorkflow" + "computationalWorkflow" ``` + - **conformsTo**(static): + + * **WES field**: N/A + * **type**: `{"@id": string}` | `[{"@id": string}]` + * **description**: contains an `@id` field which is a URI pointing to the official specification page of the version of RoCrate and extensions implemented. + * **default**: - * **conformsTo**(static): - - **WES field**: N/A - - **type**: `{"@id": string}` | `[{"@id": string}]` - - **description**: contains an `@id` field which is a URI pointing to the official specification page of the version of RoCrate and extensions implemented. - - **default**: ```json [ - {"@id": "https://w3id.org/ro/crate/1.1"}, - {"@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0"} + { "@id": "https://w3id.org/ro/crate/1.1" }, + { "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0" } ] ``` -* **about**(static): +- **about**(static): + - **WES field**: N/A - **type**: `{"@id": string}` - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. - **default**: + ```json {"@id": "./"}, ``` - * **about**(static): - - **WES field**: N/A - - **type**: `{"@id": string}` - - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. - - **default**: + - **about**(static): + + * **WES field**: N/A + * **type**: `{"@id": string}` + * **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. + * **default**: + ```json {"@id": "./"}, ``` + ### dataset object -reference: + +reference: + 1. [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) 2. https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/ -* **@id**(static): +- **@id**(static): + - **WES field**: N/A - **type**: `string` - **description**: identifier for the dataset object. Must match the metadata.@id feild - **default**: + ```json - "./" + "./" ``` -* **@type**(static): +- **@type**(static): + - **WES field**: N/A - **type**: `string` - - **description**: a type for the dataset entity. + - **description**: a type for the dataset entity. - **default**: + ```json - "Dataset" + "Dataset" ``` - * **datePublished**(static): +- **datePublished**(required): + - **WES field**: N/A - - **type**: `string` + - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: The date the Ro-Crate was published. 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. -* **name**(static): +- **name**(static): + - **WES field**: N/A - **type**: `string` - **description**: Should identify the dataset to humans well enough to disambiguate it from other RO-Crates. - **default**: + ```json - "A Ga4GH WES Ro-Crate" + "A Ga4GH WES Ro-Crate" ``` -* **description**(static): +- **description**(static): + - **WES field**: N/A - **type**: `string` - **description**: Should further elaborate on the name to provide a summary of the context in which the dataset is important. - **default**: ```json - "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" + "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" ``` -* **mainEntity**(required): +- **mainEntity**(required): + - **WES field**: N/A - **type**: `{"@id": "string"}` - - **description**: Contains an `@id` field that points to a data entity, which contains the core data of the workflow log. + - **description**: Contains an `@id` field that points to a data entity, which contains the core data of the workflow log. - **default**: ```json - "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" + "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" ``` -* **license**(recommended): +- **license**(recommended): - **WES field**: N/A - **type**: `{"@id": "string"}` - **description**: Contains an `@id` field that points to a contextual entity, which contains relevant information on the license for the Ro-crate data. 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. - + ### license object + A contextual entity that contains relevant license information about the Ro-Crate. reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata.html]](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) -* **@id**(required): +- **@id**(required): + - **WES field**: N/A - **type**: `string` - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. -* **@type**(required): +- **@type**(required): + - **WES field**: N/A - **type**: `string` - **description**: The type of the content stored in the Ro-Crate. Should match the `metadata.@type` field. - -* **name**(required): + +- **name**(required): + - **WES field**: N/A - **type**: `string` - **description**: The official name of the license. - -* **description**(required): + +- **description**(required): + - **WES field**: N/A - **type**: `string` - **description**: Some additional context. May just be some standard license text. For example: @@ -155,62 +183,98 @@ reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata. "This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Australia License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/au/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA." ``` -* **identifier**(recommended): +- **identifier**(recommended): - **WES field**: N/A - **type**: `string` - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. Should match the `license.@id` field. Should be added as some algorithms may look for this instead. ### mainEntity object + This object will contain or point to all relevant data for the GA4GH WES Run Log. -* **id**(required): +- **id**(required): + - **WES field**: N/A - **type**: `string` - **description**: a File URI linking to the workflow entry-point. -* **type**(static): +- **type**(static): - **WES field**: N/A - **type**: `string` | `[string]` - - **description**: The standard workflow type according to the Ro-Crate Version. + - **description**: The standard workflow type according to the Ro-Crate Version. - **default**: ```json - ["File", "SoftwareSourceCode", "ComputationalWorkflow"] + ["File", "SoftwareSourceCode", "ComputationalWorkflow"] ``` - -* **name**(required): +- **name**(required): + - **WES field**: N/A - **type**: `string` - - **description**: A human-readable name for the workflow. + - **description**: A human-readable name for the workflow. + +- **author**(recommended): -* **author**(recommended): - **WES field**: N/A - **type**: `{"@id": string}` | `[{"@id": string}]` - **description**: contains an `@id` field that points to the workflow author. Should point to a contextual entity with the author's information. - -* **creator**(required): + +- **creator**(required): + - **WES field**: N/A - **type**: `{"@id": string}` | `[{"@id": string}]` - **description**: contains an `@id` field that points to the workflow creator. Should point to a contextual entity with the creator's information. - -* **programmingLanguage**(recommended): - - **WES field**: N/A - - **type**: `{"@id": string}` - - **description**: contains an `@id` field that points to the prrogramming language the workflow was written in. Should point to a contextual entity with the workflow's programming language. ### GA4GH WES FIELDS -* **indentifier**(required): - - **WES field**: run_id - - **type**: `string` - - **description**: The Workflow run_id. - -* **indentifier**(required): - - **WES field**: run_id +- **identifier**(required): + + - **WES field**: `run_id` (one - one) - **type**: `string` - **description**: The Workflow run_id. - - +- **input**(required): + + - **WES field**: `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (many - many) + - **type**: `{"@id": string}` | `[{"@id": string}]` + - **description**: The Workflow inputs. Should contain an `@id` field that points to a data entity containing the relevant information for that input. + +- **output**(required): + + - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` (many - many) + - **type**: `{"@id": string}` | `[{"@id": string}]` + - **description**: The Workflow outputs. + +- **dateCreated**(required): + + - **WES field**: `run_log.start_time` (many - many) + - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) + - **description**: The date the workflow started executing. +- **programmingLanguage**(required): + - **WES field**: `request.workflow_type` + - **type**: `{"@id": string}` (one - one) + - **description**: contains an `@id` field, an IRI that points to official documentation for the prrogramming language the workflow was written in. Should match the `@id` field of a contextual entity with the workflow's programming language. +- **creativeWorkStatus**(required): + + - **WES field**: `state` + - **type**: `UNKNOWN` | `QUEUED` | `INITIALIZING` | `RUNNING` | `PAUSED` | `COMPLETE` | `EXECUTOR_ERROR` | `SYSTEM_ERROR` | `CANCELED` | `CANCELING` | `PREEMPTED` (one - one) + - **description**: The status of the workflow. + +- **url**(required): + + - **WES field**: `workflow_params.workflow_url` (one - one) + - **type**: `URL` + - **description**: The workflow url. + +- **keywords**(recommended): + + - **WES field**: `workflow_params.tags` (one - many) + - **type**: `string` + - **description**: The workflow keywords or tags. If there are multiple tags they should be delimited by commas. + +- **runtimePlatform**(recommended): + - **WES field**: `workflow_params.workflow_engine` (one - one) + - **type**: `{"@id": string}` + - **description**: The workflow engine. Contains an `@id`, an IRI that points to the official documentation of the workflow engine. Should match the `@id` field of a contextual entity the contains relevant information on the workflow engine. From 5c753153acafb60c36de61fa390c1572e5d3c06a Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Sun, 6 Oct 2024 22:37:52 +0100 Subject: [PATCH 11/18] update schema.md --- schema.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/schema.md b/schema.md index dcc2a77..734e9df 100644 --- a/schema.md +++ b/schema.md @@ -224,8 +224,6 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `{"@id": string}` | `[{"@id": string}]` - **description**: contains an `@id` field that points to the workflow creator. Should point to a contextual entity with the creator's information. -### GA4GH WES FIELDS - - **identifier**(required): - **WES field**: `run_id` (one - one) @@ -264,17 +262,60 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **url**(required): - - **WES field**: `workflow_params.workflow_url` (one - one) + - **WES field**: `request.workflow_url` (one - one) - **type**: `URL` - **description**: The workflow url. - **keywords**(recommended): - - **WES field**: `workflow_params.tags` (one - many) + - **WES field**: `request.tags` (one - many) - **type**: `string` - **description**: The workflow keywords or tags. If there are multiple tags they should be delimited by commas. - **runtimePlatform**(recommended): - - **WES field**: `workflow_params.workflow_engine` (one - one) - - **type**: `{"@id": string}` - - **description**: The workflow engine. Contains an `@id`, an IRI that points to the official documentation of the workflow engine. Should match the `@id` field of a contextual entity the contains relevant information on the workflow engine. + + - **WES field**: `request.workflow_engine` (one - one) + - **type**: `string` + - **description**: The workflow engine. + +### run_log entity + +- **@id**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES run_log object. + - **default**: + ```json + "#run_log" + ``` + +- **@type**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the run_log entitiy. + - **default**: + ```json + "CreativeWork" + ``` + +- **name**(static): + + - **WES field**: run_log.name + - **type**: `string` + - **description**: The task or workflow name. + +- **dateCreated**(static): + + - **WES field**: run_log.start_time + - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) + - **description**: When the command started executing. + +- **dateModified**(static): + + - **WES field**: run_log.end_time + - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) + - **description**: When the command stopped executing. + +url for stdin and stdout? From 6f746d2b1bee65edb3eb29f36e98373dfe95c2f2 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Mon, 7 Oct 2024 22:57:39 +0100 Subject: [PATCH 12/18] update schema.md --- schema.md | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 159 insertions(+), 7 deletions(-) diff --git a/schema.md b/schema.md index 734e9df..7a812dd 100644 --- a/schema.md +++ b/schema.md @@ -240,7 +240,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` (many - many) - **type**: `{"@id": string}` | `[{"@id": string}]` - - **description**: The Workflow outputs. + - **description**: The Workflow outputs. Should contain an `@id` field that points to a data entity containing the relevant information for that output. - **dateCreated**(required): @@ -278,7 +278,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `string` - **description**: The workflow engine. -### run_log entity +### run_log entity - one of the output objects - **@id**(static): @@ -297,25 +297,177 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **description**: The type the run_log entitiy. - **default**: ```json - "CreativeWork" + "FormalParameter" ``` -- **name**(static): +- **name**(optional): - **WES field**: run_log.name - **type**: `string` - **description**: The task or workflow name. -- **dateCreated**(static): +- **dateCreated**(optional): - **WES field**: run_log.start_time - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: When the command started executing. -- **dateModified**(static): +- **dateModified**(optional): - **WES field**: run_log.end_time - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: When the command stopped executing. -url for stdin and stdout? +### run_log.stdout entity - one of the output objects of the main entity + +- **@id**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES run_log.stdout string. + - **default**: + ```json + "#run_log_stdout" + ``` + +- **@type**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "FormalParameter" + ``` + +- **name**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the entity. + - - **default**: + ```json + "Runlog stdout" + ``` + +- **url**(required): + + - **WES field**: `run_log.stdout` (one - one) + - **type**: `URL` + - **description**: A URL to retrieve standard output logs of the workflow run or task. + +### run_log.stderr entity - one of the output objects of the main entity + +- **@id**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES run_log.stderr string. + - **default**: + ```json + "#run_log_stderr" + ``` + +- **@type**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "FormalParameter" + ``` + +- **name**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the entity. + - - **default**: + ```json + "Runlog stderr" + ``` + +- **url**(required): + + - **WES field**: `run_log.stderr` (one - one) + - **type**: `URL` + - **description**: A URL to retrieve standard error logs of the workflow run or task. + +- ### request.workflow_params.outputFile | request.workflow_params.outputDir | request.workflow_params.output entity - one of the output objects of the main entity + +- **@id**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES request.output string. + - **default**: + ```json + "#request_workflow_params_output" + ``` + +- **@type**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "FormalParameter" + ``` + +- **name**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the entity. + - - **default**: + ```json + "Request workflow_params output" + ``` + +- **url**(required): + + - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` (one - one) + - **type**: `URL` + - **description**: A URL to retrieve output data of the workflow run or task. + +- ### request.workflow_params.inputFile | request.workflow_params.inputDir | request.workflow_params.input entity - one of the input objects of the main entity + +- **@id**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES request.input string. + - **default**: + ```json + "#request_workflow_params_input" + ``` + +- **@type**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "FormalParameter" + ``` + +- **name**(static): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the entity. + - - **default**: + ```json + "Request workflow_params input" + ``` + +- **url**(required): + + - **WES field**: `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (one - one) + - **type**: `URL` + - **description**: A URL to retrieve input data of the workflow run or task. + +run_log.exit_code will be part of the output object. From bbd7e96411c5d508ad1442bfab4804673dd1bc19 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Wed, 9 Oct 2024 00:07:10 +0100 Subject: [PATCH 13/18] update schema --- schema.md | 180 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 123 insertions(+), 57 deletions(-) diff --git a/schema.md b/schema.md index 7a812dd..e93a291 100644 --- a/schema.md +++ b/schema.md @@ -1,10 +1,23 @@ -## schema +# WES - WRC RO-Crate -### WORKFLOW RUN CRATE RO-CRATE FIELDS +This document aims to detail a conversion between the [GA4GH WES profile](https://ga4gh.github.io/workflow-execution-service-schemas/docs/) to the [Workflow Run Crate](https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/) (WRC) extension of [Ro-Crates](https://www.researchobject.org/ro-crate/) -### base object +## WORKFLOW RUN CRATE RO-CRATE FIELDS -- **@context(static)**: +For a Json object to conform with the Ro-Crate specification there are certain minimal requirements. Further still the WRC estension has it's own requirements. Considering that, the following definitions aim to differentiate the diffrent types of fields and how they should be considered in each implementation. + +### Terminology + +1. constant: These fields are required and for our purposes the value of this field should always be the default value. In other words their values are constant. +2. required: These fields are required but their values are not constant. +3. recommended: These fields are not required but they are recommended to give a comprehensive definition for your RO-crate object. +4. optional: These fields are optional. + +### `base object` + +This is the base Ro-Crate object. + +- **@context**(constant): - **WES field**: N/A - **type**: `string` | `[string]` - **description**: URI pointing to the official context page of the version of Ro-Crate and any extensions being implemented. @@ -16,11 +29,13 @@ ] ``` -### metadata object +### `metadata entity` + +This entity is the metadata file descriptor. A Contextual Entity of type [CreativeWork](http://schema.org/CreativeWork), which describes the RO-Crate Metadata File and links it to the Root Data Entity. reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/metadata.html) -- **@id**(static): +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -35,14 +50,14 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h - **WES field**: N/A - **type**: `string` - - **description**: The type of the content stored in the Ro-Crate. Should match the `license.@type` field if it exists. + - **description**: The type of the content stored in the Ro-Crate. - **default**: ```json - "computationalWorkflow" + "CreativeWork" ``` - - **conformsTo**(static): + - **conformsTo**(constant): * **WES field**: N/A * **type**: `{"@id": string}` | `[{"@id": string}]` @@ -56,7 +71,7 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h ] ``` -- **about**(static): +- **about**(constant): - **WES field**: N/A - **type**: `{"@id": string}` @@ -64,28 +79,19 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h - **default**: ```json - {"@id": "./"}, + { "@id": "./" } ``` - - **about**(static): - - * **WES field**: N/A - * **type**: `{"@id": string}` - * **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. - * **default**: +### `Root data entity` - ```json - {"@id": "./"}, - ``` - -### dataset object +A Data Entity of type [Dataset](http://schema.org/Dataset), representing the Ro-Crate as a whole. reference: 1. [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) 2. https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/ -- **@id**(static): +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -96,7 +102,7 @@ reference: "./" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -113,7 +119,7 @@ reference: - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: The date the Ro-Crate was published. 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. -- **name**(static): +- **name**(required): - **WES field**: N/A - **type**: `string` @@ -124,7 +130,7 @@ reference: "A Ga4GH WES Ro-Crate" ``` -- **description**(static): +- **description**(required): - **WES field**: N/A - **type**: `string` @@ -144,17 +150,17 @@ reference: "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" ``` -- **license**(recommended): +- **license**(required): - **WES field**: N/A - **type**: `{"@id": "string"}` - **description**: Contains an `@id` field that points to a contextual entity, which contains relevant information on the license for the Ro-crate data. 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. -### license object +### `license object` A contextual entity that contains relevant license information about the Ro-Crate. -reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata.html]](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) +reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) - **@id**(required): @@ -188,9 +194,11 @@ reference: [[https://www.researchobject.org/ro-crate/specification/1.1/metadata. - **type**: `string` - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. Should match the `license.@id` field. Should be added as some algorithms may look for this instead. -### mainEntity object +### `mainEntity data Entity` -This object will contain or point to all relevant data for the GA4GH WES Run Log. +This object will contain or point to all relevant data for the GA4GH WES Run Log. This required by the WRC extension. + +reference: https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/ - **id**(required): @@ -198,7 +206,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `string` - **description**: a File URI linking to the workflow entry-point. -- **type**(static): +- **type**(constant): - **WES field**: N/A - **type**: `string` | `[string]` - **description**: The standard workflow type according to the Ro-Crate Version. @@ -244,7 +252,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **dateCreated**(required): - - **WES field**: `run_log.start_time` (many - many) + - **WES field**: `run_log.start_time` (one - one) - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: The date the workflow started executing. @@ -278,9 +286,17 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `string` - **description**: The workflow engine. -### run_log entity - one of the output objects +- **softwareRequirements**(recommended): + + - **WES field**: `request.workflow_engine_parameters` (many - many) + - **type**: `{"@id": string}` | `[{"@id": string}]` + - **description**: The workflow engine parameters. + +### `run_log entity` (optional) -- **@id**(static): +This is one of the output objects that the mainEntity will point to. It is a data entity of type FormalParameter. + +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -290,7 +306,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "#run_log" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -318,9 +334,11 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: When the command stopped executing. -### run_log.stdout entity - one of the output objects of the main entity +### `run_log.stdout entity` (optional) + +one of the output objects of the main entity -- **@id**(static): +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -330,7 +348,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "#run_log_stdout" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -340,7 +358,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "FormalParameter" ``` -- **name**(static): +- **name**(constant): - **WES field**: N/A - **type**: `string` @@ -356,9 +374,11 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `URL` - **description**: A URL to retrieve standard output logs of the workflow run or task. -### run_log.stderr entity - one of the output objects of the main entity +### `run_log.stderr entity` (optional) + +one of the output objects of the main entity -- **@id**(static): +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -368,7 +388,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "#run_log_stderr" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -378,7 +398,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "FormalParameter" ``` -- **name**(static): +- **name**(constant): - **WES field**: N/A - **type**: `string` @@ -394,9 +414,11 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `URL` - **description**: A URL to retrieve standard error logs of the workflow run or task. -- ### request.workflow_params.outputFile | request.workflow_params.outputDir | request.workflow_params.output entity - one of the output objects of the main entity +- ### `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output entity` (optional) -- **@id**(static): +one of the output objects of the main entity + +- **@id**(constant): - **WES field**: N/A - **type**: `string` @@ -406,7 +428,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "#request_workflow_params_output" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -416,7 +438,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "FormalParameter" ``` -- **name**(static): +- **name**(required): - **WES field**: N/A - **type**: `string` @@ -428,23 +450,28 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **url**(required): - - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` (one - one) - - **type**: `URL` - - **description**: A URL to retrieve output data of the workflow run or task. + - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` - (one - one) + +one of the output objects of the main entity -- ### request.workflow_params.inputFile | request.workflow_params.inputDir | request.workflow_params.input entity - one of the input objects of the main entity +- **type**: `URL` +- **description**: A URL to retrieve output data of the workflow run or task. -- **@id**(static): +- ### `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (optional) + +one of the input objects of the main entity. + +- **@id**(constant): - **WES field**: N/A - **type**: `string` - - **description**: The name of the WES request.input string. + - **description**: The id of the WES request.input string. - **default**: ```json "#request_workflow_params_input" ``` -- **@type**(static): +- **@type**(constant): - **WES field**: N/A - **type**: `string` @@ -454,7 +481,7 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log "FormalParameter" ``` -- **name**(static): +- **name**(required): - **WES field**: N/A - **type**: `string` @@ -470,4 +497,43 @@ This object will contain or point to all relevant data for the GA4GH WES Run Log - **type**: `URL` - **description**: A URL to retrieve input data of the workflow run or task. -run_log.exit_code will be part of the output object. +### `request.workflow_engine_parameters`(optional) + +A data entity representing the `request.workflow_engine_paramneters` field from the WES profile + +- **@id**(constant): + + - **WES field**: N/A + - **type**: `string` + - **description**: The name of the WES request.workflow_engine_parameter. + - **default**: + ```json + "#request_workflow_engine_parameters" + ``` + +- **@type**(constant): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "SoftwareApplication" + ``` + +- **name**(required): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the parameter. + +- **url**(required): + + - **WES field**: `request.workflow_engine_parameters` + - **type**: `URL` + - **description**: A URL to the parameter. + +run_log.cmd, run_log.exit_code will be part of the output object. +add programmingLanguage entity (computer language entity) + +request.workflow_type_version From 7376452592bdda72d2f8a21f47db58b5ac514c32 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Wed, 9 Oct 2024 16:32:39 +0100 Subject: [PATCH 14/18] update schema.md --- schema.md | 128 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 45 deletions(-) diff --git a/schema.md b/schema.md index e93a291..04ee4e4 100644 --- a/schema.md +++ b/schema.md @@ -238,18 +238,6 @@ reference: https://www.researchobject.org/workflow-run-crate/profiles/workflow_r - **type**: `string` - **description**: The Workflow run_id. -- **input**(required): - - - **WES field**: `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (many - many) - - **type**: `{"@id": string}` | `[{"@id": string}]` - - **description**: The Workflow inputs. Should contain an `@id` field that points to a data entity containing the relevant information for that input. - -- **output**(required): - - - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` (many - many) - - **type**: `{"@id": string}` | `[{"@id": string}]` - - **description**: The Workflow outputs. Should contain an `@id` field that points to a data entity containing the relevant information for that output. - - **dateCreated**(required): - **WES field**: `run_log.start_time` (one - one) @@ -414,18 +402,18 @@ one of the output objects of the main entity - **type**: `URL` - **description**: A URL to retrieve standard error logs of the workflow run or task. -- ### `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output entity` (optional) +- ### `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (optional) -one of the output objects of the main entity +one of the input objects of the main entity. - **@id**(constant): - **WES field**: N/A - **type**: `string` - - **description**: The name of the WES request.output string. + - **description**: The id of the WES request.input string. - **default**: ```json - "#request_workflow_params_output" + "#request_workflow_params_input" ``` - **@type**(constant): @@ -445,30 +433,27 @@ one of the output objects of the main entity - **description**: name of the entity. - - **default**: ```json - "Request workflow_params output" + "Request workflow_params input" ``` - **url**(required): - - **WES field**: `request.workflow_params.outputFile` | `request.workflow_params.outputDir` | `request.workflow_params.output` - (one - one) - -one of the output objects of the main entity - -- **type**: `URL` -- **description**: A URL to retrieve output data of the workflow run or task. + - **WES field**: `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (one - one) + - **type**: `URL` + - **description**: A URL to retrieve input data of the workflow run or task. -- ### `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (optional) +### `request.workflow_engine_parameters`(optional) -one of the input objects of the main entity. +A data entity representing the `request.workflow_engine_parameters` field from the WES profile - **@id**(constant): - **WES field**: N/A - **type**: `string` - - **description**: The id of the WES request.input string. + - **description**: The name of the WES request.workflow_engine_parameter. - **default**: ```json - "#request_workflow_params_input" + "#request_workflow_engine_parameters" ``` - **@type**(constant): @@ -478,37 +463,79 @@ one of the input objects of the main entity. - **description**: The type the entitiy. - **default**: ```json - "FormalParameter" + "SoftwareApplication" ``` - **name**(required): + - **WES field**: `request.workflow_engine_parameters[i]` + - **type**: `string` + - **description**: name of the parameter. + +- **url**(required): + + - **WES field**: N/A + - **type**: `URL` + - **description**: A URL to the parameter. + +### `request.workflow_type`(optional) + +This entity is pointed to by the programmingLanguage property in the mainEntity data entity. It is a data entity of type `[ComputerLanguage](https://schema.org/ComputerLanguage)`. + +- **@id**(required): + - **WES field**: N/A - **type**: `string` - - **description**: name of the entity. - - - **default**: + - **description**: The id of the progamming language field that points to this entity. Can be the URL of the official documentation of said programming language. + +- **@type**(constant): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: ```json - "Request workflow_params input" + "ComputerLanguage" ``` +- **@type**(constant): + + - **WES field**: N/A + - **type**: `string` + - **description**: The type the entitiy. + - **default**: + ```json + "ComputerLanguage" + ``` + +- **name**(required): + + - **WES field**: `request.workflow_type` + - **type**: `string` + - **description**: name of the workflow type. + +- **alternateName**(required): + + - **WES field**: `request.workflow_type`-`request.workflow_type_version` + - **type**: `string` + - **description**: name of the workflow type and the workflow type version, seperated by a hypen. + - **url**(required): - - **WES field**: `request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (one - one) + - **WES field**: `request.workflow_engine_parameters` - **type**: `URL` - - **description**: A URL to retrieve input data of the workflow run or task. - -### `request.workflow_engine_parameters`(optional) + - **description**: A URL to the workflow type. Usually the URL of the official documentation for the workflow type. -A data entity representing the `request.workflow_engine_paramneters` field from the WES profile +### `task_logs_url` - **@id**(constant): - **WES field**: N/A - **type**: `string` - - **description**: The name of the WES request.workflow_engine_parameter. + - **description**: The id of the WES task_logs_url. - **default**: ```json - "#request_workflow_engine_parameters" + "#task_logs_url" ``` - **@type**(constant): @@ -518,22 +545,33 @@ A data entity representing the `request.workflow_engine_paramneters` field from - **description**: The type the entitiy. - **default**: ```json - "SoftwareApplication" + "FormalParameter" ``` - **name**(required): - **WES field**: N/A - **type**: `string` - - **description**: name of the parameter. + - **description**: name of the entity. + - - **default**: + ```json + "The workflow Task Logs URL" + ``` - **url**(required): - - **WES field**: `request.workflow_engine_parameters` + - **WES field**: `task_logs_url` (one - one) - **type**: `URL` - - **description**: A URL to the parameter. + - **description**: A reference to the complete url which may be used to obtain a paginated list of task logs for this workflow. + +one of the input objects of the main entity. A data entity representing the WES `task_logs_url` -run_log.cmd, run_log.exit_code will be part of the output object. -add programmingLanguage entity (computer language entity) +### WES fields that have not been added: -request.workflow_type_version +1. outputs +2. run_log.cmd +3. run_log.exit_code +4. run_log.system_logs +5. request.workflow_params (partial support) +6. workflow_engine_version +7. task_logs (deprecated, may not be added) From e69b8200385614f6951f2e845e12340f15a5383e Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Wed, 9 Oct 2024 20:24:27 +0100 Subject: [PATCH 15/18] update schema.md --- schema.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/schema.md b/schema.md index 04ee4e4..abc077b 100644 --- a/schema.md +++ b/schema.md @@ -526,7 +526,9 @@ This entity is pointed to by the programmingLanguage property in the mainEntity - **type**: `URL` - **description**: A URL to the workflow type. Usually the URL of the official documentation for the workflow type. -### `task_logs_url` +### `task_logs_url` (optional) + +one of the input objects of the main entity. A data entity representing the WES `task_logs_url` - **@id**(constant): @@ -564,8 +566,6 @@ This entity is pointed to by the programmingLanguage property in the mainEntity - **type**: `URL` - **description**: A reference to the complete url which may be used to obtain a paginated list of task logs for this workflow. -one of the input objects of the main entity. A data entity representing the WES `task_logs_url` - ### WES fields that have not been added: 1. outputs From 6749091c99bfbc98579ee9ec3385bf72b422792e Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Sun, 13 Oct 2024 19:52:00 +0100 Subject: [PATCH 16/18] add summary table --- schema.md | 269 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 209 insertions(+), 60 deletions(-) diff --git a/schema.md b/schema.md index abc077b..cb9a6f1 100644 --- a/schema.md +++ b/schema.md @@ -1,14 +1,46 @@ # WES - WRC RO-Crate +## Table of Contents + +- [WES - WRC RO-Crate](#wes---wrc-ro-crate) + - [Table of Contents](#table-of-contents) + - [Description of WORKFLOW RUN CRATE RO-CRATE FIELDS](#description-of-workflow-run-crate-ro-crate-fields) + - [Terminology](#terminology) + - [`base object`](#base-object) + - [`metadata entity`](#metadata-entity) + - [`Root data entity`](#root-data-entity) + - [`license object`](#license-object) + - [`mainEntity data Entity`](#mainentity-data-entity) + - [`run_log entity` (optional)](#run_log-entity-optional) + - [`run_log.stdout entity` (optional)](#run_logstdout-entity-optional) + - [`run_log.stderr entity` (optional)](#run_logstderr-entity-optional) + - [`request.workflow_engine_parameters`(optional)](#requestworkflow_engine_parametersoptional) + - [`request.workflow_type`(optional)](#requestworkflow_typeoptional) + - [`task_logs_url` (optional)](#task_logs_url-optional) + - [WES fields that have not been added:](#wes-fields-that-have-not-been-added) + - [Summary Table](#summary-table) + - [`base object`](#base-object-1) + - [`metadata entity`](#metadata-entity-1) + - [`Root data entity`](#root-data-entity-1) + - [`license object`](#license-object-1) + - [`mainEntity data entity`](#mainentity-data-entity-1) + - [`run_log entity` (optional)](#run_log-entity-optional-1) + - [`run_log.stdout entity` (optional)](#run_logstdout-entity-optional-1) + - [`run_log.stderr entity` (optional)](#run_logstderr-entity-optional-1) + - [`request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input` (optional)](#requestworkflow_paramsinputfile--requestworkflow_paramsinputdir--requestworkflow_paramsinput-optional) + - [`request.workflow_engine_parameters`(optional)](#requestworkflow_engine_parametersoptional-1) + - [`request.workflow_type`(optional)](#requestworkflow_typeoptional-1) + - [`task_logs_url` (optional)](#task_logs_url-optional-1) + This document aims to detail a conversion between the [GA4GH WES profile](https://ga4gh.github.io/workflow-execution-service-schemas/docs/) to the [Workflow Run Crate](https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/) (WRC) extension of [Ro-Crates](https://www.researchobject.org/ro-crate/) -## WORKFLOW RUN CRATE RO-CRATE FIELDS +## Description of WORKFLOW RUN CRATE RO-CRATE FIELDS For a Json object to conform with the Ro-Crate specification there are certain minimal requirements. Further still the WRC estension has it's own requirements. Considering that, the following definitions aim to differentiate the diffrent types of fields and how they should be considered in each implementation. ### Terminology -1. constant: These fields are required and for our purposes the value of this field should always be the default value. In other words their values are constant. +1. constant: For our purposes the value of this field should always be the default value. In other words their values are constant 2. required: These fields are required but their values are not constant. 3. recommended: These fields are not required but they are recommended to give a comprehensive definition for your RO-crate object. 4. optional: These fields are optional. @@ -17,7 +49,7 @@ For a Json object to conform with the Ro-Crate specification there are certain m This is the base Ro-Crate object. -- **@context**(constant): +- **@context**(required, constant): - **WES field**: N/A - **type**: `string` | `[string]` - **description**: URI pointing to the official context page of the version of Ro-Crate and any extensions being implemented. @@ -35,7 +67,7 @@ This entity is the metadata file descriptor. A Contextual Entity of type [Creati reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/metadata.html) -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -46,7 +78,7 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h "ro-crate-metadata.json" ``` -- **@type**(required): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -57,12 +89,12 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h "CreativeWork" ``` - - **conformsTo**(constant): +- **conformsTo**(required, constant): - * **WES field**: N/A - * **type**: `{"@id": string}` | `[{"@id": string}]` - * **description**: contains an `@id` field which is a URI pointing to the official specification page of the version of RoCrate and extensions implemented. - * **default**: + - **WES field**: N/A + - **type**: `{"@id": string}` | `[{"@id": string}]` + - **description**: contains an `@id` field which is a URI pointing to the official specification page of the version of RoCrate and extensions implemented. The value of this field is specific to this version of RO-Crate and WRC. + - **default**: ```json [ @@ -71,17 +103,23 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h ] ``` -- **about**(constant): +- **about**(required, constant): - **WES field**: N/A - **type**: `{"@id": string}` - - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the dataset.@id field. + - **description**: contains an `@id` field pointing to the dataset entity of the RO-Crate. Must match the `@id` field of the root data entity. - **default**: ```json { "@id": "./" } ``` +- **license**(optional): + - **WES field**: N/A + - **type**: `{"@id": "string"}` + - **description**: Contains an `@id` field that points to a contextual entity, which contains relevant information on the license for the Ro-crate data. + 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. + ### `Root data entity` A Data Entity of type [Dataset](http://schema.org/Dataset), representing the Ro-Crate as a whole. @@ -91,7 +129,7 @@ reference: 1. [https://www.researchobject.org/ro-crate/specification/1.1/metadata.html](https://www.researchobject.org/ro-crate/specification/1.1/root-data-entity.html) 2. https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/ -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -102,7 +140,7 @@ reference: "./" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -124,21 +162,12 @@ reference: - **WES field**: N/A - **type**: `string` - **description**: Should identify the dataset to humans well enough to disambiguate it from other RO-Crates. - - **default**: - - ```json - "A Ga4GH WES Ro-Crate" - ``` - **description**(required): - **WES field**: N/A - **type**: `string` - **description**: Should further elaborate on the name to provide a summary of the context in which the dataset is important. - - **default**: - ```json - "A Wes Execution Service Ro-crate that conforms to the GA4GH WES specification" - ``` - **mainEntity**(required): @@ -168,11 +197,16 @@ reference: [https://www.researchobject.org/ro-crate/specification/1.1/metadata.h - **type**: `string` - **description**: A reference to a relevant and comprehensive description of the license. May be a URI to the official webpage describing the license. -- **@type**(required): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` - **description**: The type of the content stored in the Ro-Crate. Should match the `metadata.@type` field. + - **default**: + + ```json + "CreativeWork" + ``` - **name**(required): @@ -206,7 +240,7 @@ reference: https://www.researchobject.org/workflow-run-crate/profiles/workflow_r - **type**: `string` - **description**: a File URI linking to the workflow entry-point. -- **type**(constant): +- **type**(required, constant): - **WES field**: N/A - **type**: `string` | `[string]` - **description**: The standard workflow type according to the Ro-Crate Version. @@ -284,7 +318,7 @@ reference: https://www.researchobject.org/workflow-run-crate/profiles/workflow_r This is one of the output objects that the mainEntity will point to. It is a data entity of type FormalParameter. -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -294,7 +328,7 @@ This is one of the output objects that the mainEntity will point to. It is a dat "#run_log" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -306,19 +340,19 @@ This is one of the output objects that the mainEntity will point to. It is a dat - **name**(optional): - - **WES field**: run_log.name + - **WES field**: `run_log.name` (one - one) - **type**: `string` - **description**: The task or workflow name. - **dateCreated**(optional): - - **WES field**: run_log.start_time + - **WES field**: `run_log.start_time` (one - one) - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: When the command started executing. - **dateModified**(optional): - - **WES field**: run_log.end_time + - **WES field**: `run_log.end_time` (one - one) - **type**: [`Date`](https://schema.org/Date) | [`DateTime`](https://schema.org/DateTime) - **description**: When the command stopped executing. @@ -326,7 +360,7 @@ This is one of the output objects that the mainEntity will point to. It is a dat one of the output objects of the main entity -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -336,7 +370,7 @@ one of the output objects of the main entity "#run_log_stdout" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -346,7 +380,7 @@ one of the output objects of the main entity "FormalParameter" ``` -- **name**(constant): +- **name**(required, constant): - **WES field**: N/A - **type**: `string` @@ -366,7 +400,7 @@ one of the output objects of the main entity one of the output objects of the main entity -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -376,7 +410,7 @@ one of the output objects of the main entity "#run_log_stderr" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -386,7 +420,7 @@ one of the output objects of the main entity "FormalParameter" ``` -- **name**(constant): +- **name**(required, constant): - **WES field**: N/A - **type**: `string` @@ -406,7 +440,7 @@ one of the output objects of the main entity one of the input objects of the main entity. -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -416,7 +450,7 @@ one of the input objects of the main entity. "#request_workflow_params_input" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -446,7 +480,7 @@ one of the input objects of the main entity. A data entity representing the `request.workflow_engine_parameters` field from the WES profile -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -456,7 +490,7 @@ A data entity representing the `request.workflow_engine_parameters` field from t "#request_workflow_engine_parameters" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -468,15 +502,15 @@ A data entity representing the `request.workflow_engine_parameters` field from t - **name**(required): - - **WES field**: `request.workflow_engine_parameters[i]` + - **WES field**: `request.workflow_engine_parameters[i]` (one - one) - **type**: `string` - **description**: name of the parameter. -- **url**(required): +- **url**(recommended): - **WES field**: N/A - **type**: `URL` - - **description**: A URL to the parameter. + - **description**: A URL for the parameter. ### `request.workflow_type`(optional) @@ -488,17 +522,7 @@ This entity is pointed to by the programmingLanguage property in the mainEntity - **type**: `string` - **description**: The id of the progamming language field that points to this entity. Can be the URL of the official documentation of said programming language. -- **@type**(constant): - - - **WES field**: N/A - - **type**: `string` - - **description**: The type the entitiy. - - **default**: - ```json - "ComputerLanguage" - ``` - -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -510,19 +534,19 @@ This entity is pointed to by the programmingLanguage property in the mainEntity - **name**(required): - - **WES field**: `request.workflow_type` + - **WES field**: `request.workflow_type` (one-one) - **type**: `string` - **description**: name of the workflow type. - **alternateName**(required): - - **WES field**: `request.workflow_type`-`request.workflow_type_version` + - **WES field**: `request.workflow_type`-`request.workflow_type_version` (one-one) - **type**: `string` - **description**: name of the workflow type and the workflow type version, seperated by a hypen. -- **url**(required): +- **url**(recommended): - - **WES field**: `request.workflow_engine_parameters` + - **WES field**: N/A - **type**: `URL` - **description**: A URL to the workflow type. Usually the URL of the official documentation for the workflow type. @@ -530,7 +554,7 @@ This entity is pointed to by the programmingLanguage property in the mainEntity one of the input objects of the main entity. A data entity representing the WES `task_logs_url` -- **@id**(constant): +- **@id**(required, constant): - **WES field**: N/A - **type**: `string` @@ -540,7 +564,7 @@ one of the input objects of the main entity. A data entity representing the WES "#task_logs_url" ``` -- **@type**(constant): +- **@type**(required, constant): - **WES field**: N/A - **type**: `string` @@ -575,3 +599,128 @@ one of the input objects of the main entity. A data entity representing the WES 5. request.workflow_params (partial support) 6. workflow_engine_version 7. task_logs (deprecated, may not be added) + +## Summary Table + +### [`base object`](#base-object) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ------------------------------- | --------- | ---------------------- | -------------------------------------------------------------------------------------------- | +| `@context` (required, constant) | N/A | `string` \| `[string]` | `["https://w3id.org/ro/crate/1.1/context","https://w3id.org/ro/terms/workflow-run/context"]` | +| | + +### [`metadata entity`](#metadata-entity) + +| RO-Crate Field | WES Field | Type | defaultValue | +| --------------------------------- | --------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `@id` (required, constant) | N/A | `string` | `"ro-crate-metadata.json"` | +| `@type` (required, constant) | N/A | `string` | `"CreativeWork"` | +| `conformsTo` (required, constant) | N/A | `{"@id": string}` \| `[{"@id": string}]` | `[{ "@id": "https://w3id.org/ro/crate/1.1" },{ "@id": "https://w3id.org/workflowhub/workflow-ro-crate/1.0" }]` | +| `about` (required, constant) | N/A | `{"@id": string}` | `{ "@id": "./" }` | + +### [`Root data entity`](#root-data-entity) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | --------- | ------------------------------------------------------------------------------- | ------------ | +| `@id` (required, constant) | N/A | `string` | `"./"` | +| `@type` (required, constant) | N/A | `string` | `"Dataset"` | +| `datePublished` (required) | N/A | [`Date`](https://schema.org/Date) \| [`DateTime`](https://schema.org/DateTime)` | | +| `name` (required) | N/A | `string` | | +| `description` (required) | N/A | `string` | | +| `mainEntity` (required) | N/A | `{"@id": "string"}` | | +| `license` (required) | N/A | `{"@id": "string"}` | | + +### [`license object`](#license-object) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | --------- | -------- | ------------ | +| `@id` (required) | N/A | `string` | | +| `@type` (required, constant) | N/A | `string` | | +| `name` (required) | N/A | `string` | | +| `description` (required) | N/A | `string` | | +| `identifier` (recommended) | N/A | `string` | | + +### [`mainEntity data entity`](#mainentity-data-entity) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ------------------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| `@id` (required) | N/A | `string` | | +| `@type` (required, constant) | N/A | `string` | `["File", "SoftwareSourceCode", "ComputationalWorkflow"]` | +| `name` (required) | N/A | `string` | | +| `author` (recommended) | N/A | `{"@id": string}` \| `[{"@id": string}]` | | +| `creator` (required) | N/A | `{"@id": string}` \| `[{"@id": string}]` | | +| `identifier` (required) | `run_id` (one - one) | `string` | | +| `dateCreated` (required) | `run_log.start_time` (one - one) | [`Date`](https://schema.org/Date) \| [`DateTime`](https://schema.org/DateTime) | | +| `programmingLanguage` (required) | `request.workflow_type` (one - one) | `{"@id": string}` | | +| `creativeWorkStatus` (required) | `state` (one - one) | `UNKNOWN` \| `QUEUED` \| `INITIALIZING` \| `RUNNING` \| `PAUSED` \| `COMPLETE` \| `EXECUTOR_ERROR` \| `SYSTEM_ERROR` \| `CANCELED` \| `CANCELING` \| `PREEMPTED` | | +| `url` (required) | `request.workflow_url` (one - one) | `URL` | | +| `keywords` (required) | `request.tags` (one - many) | `string` | | +| `runtimePlatform` (recommended) | `request.workflow_engine` (one - one) | `string` | | +| `softwareRequirements` (recommended) | `request.workflow_engine_parameters` (many - many) | `{"@id": string}` \| `[{"@id": string}]` | | + +### [`run_log entity`](#run_log-entity-optional) (optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | -------------------------------- | ------------------------------------------------------------------------------ | ------------------- | +| `@id` (required, constant) | N/A | `string` | `"#run_log"` | +| `@type` (required, constant) | N/A | `string` | `"FormalParameter"` | +| `name` (required, constant) | `run_log.name` (one - one) | `string` | | +| `dateCreated` (optional) | `run_log.start_time` (one - one) | [`Date`](https://schema.org/Date) \| [`DateTime`](https://schema.org/DateTime) | +| `dateModified` (optional) | `run_log.end_time` (one - one) | [`Date`](https://schema.org/Date) \| [`DateTime`](https://schema.org/DateTime) | + +### [`run_log.stdout entity`](#run_logstdout-entity-optional) (optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | ---------------------------- | -------- | ------------------- | +| `@id` (required, constant) | N/A | `string` | `"#run_log_stdout"` | +| `@type` (required, constant) | N/A | `string` | `"FormalParameter"` | +| `name` (required, constant) | `run_log.name` (one - one) | `string` | `"Runlog stdout"` | +| `url` (required) | `run_log.stdout` (one - one) | `string` | | + +### [`run_log.stderr entity`](#run_logstderr-entity-optional) (optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | ---------------------------- | -------- | ------------------- | +| `@id` (required, constant) | N/A | `string` | `"#run_log_stderr"` | +| `@type` (required, constant) | N/A | `string` | `"FormalParameter"` | +| `name` (required, constant) | `run_log.name` (one - one) | `string` | `"Runlog stderr"` | +| `url` (required) | `run_log.stderr` (one - one) | `URL` | | + +### [`request.workflow_params.inputFile` | `request.workflow_params.inputDir` | `request.workflow_params.input`](#requestworkflow_paramsinputfile--requestworkflow_paramsinputdir--requestworkflow_paramsinput-optional) (optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | -------------------------- | -------- | ------------------- | +| `@id` (required, constant) | N/A | `string` | `"#run_log_stderr"` | +| `@type` (required, constant) | N/A | `string` | `"FormalParameter"` | +| `name` (required, constant) | `run_log.name` (one - one) | `string` | `"Runlog stderr"` | +| `url` (required) | | `URL` | | + +### [`request.workflow_engine_parameters`](#requestworkflow_engine_parametersoptional)(optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | --------------------------------------------------- | -------- | --------------------------------------- | +| `@id` (required, constant) | N/A | `string` | `"#request_workflow_engine_parameters"` | +| `@type` (required, constant) | N/A | `string` | `"SoftwareApplication"` | +| `name` (required) | `request.workflow_engine_parameters[i]` (one - one) | `string` | | +| `url` (recommended) | N/A | `URL` | | + +### [`request.workflow_type`](#requestworkflow_typeoptional)(optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | ------------------------------------------------------------------- | -------- | -------------------- | +| `@id` (required) | N/A | `string` | | +| `@type` (required, constant) | N/A | `string` | `"ComputerLanguage"` | +| `name` (required) | `request.workflow_type` (one - one) | `string` | | +| `alternamteName` (required) | `request.workflow_type`-`request.workflow_type_version` (one - one) | `string` | | +| `url` (recommended) | N/A | `URL` | | + +### `task_logs_url` (optional) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | --------------------------- | -------- | ------------------------------ | +| `@id` (required, constant) | N/A | `string` | `"#task_logs_url"` | +| `@type` (required, constant) | N/A | `string` | `"FormalParameter"` | +| `name` (required) | N/A | `string` | `"The workflow Task Logs URL"` | +| `url` (required) | `task_logs_url` (one - one) | `string` | | + +add author/creator entity From 9a438ce216f03b3fe534187fe274a2294b930676 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Sun, 13 Oct 2024 20:10:01 +0100 Subject: [PATCH 17/18] add author/creator entity --- schema.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/schema.md b/schema.md index cb9a6f1..3eb387f 100644 --- a/schema.md +++ b/schema.md @@ -17,6 +17,7 @@ - [`request.workflow_engine_parameters`(optional)](#requestworkflow_engine_parametersoptional) - [`request.workflow_type`(optional)](#requestworkflow_typeoptional) - [`task_logs_url` (optional)](#task_logs_url-optional) + - [`author/creator entity`](#authorcreator-entity) - [WES fields that have not been added:](#wes-fields-that-have-not-been-added) - [Summary Table](#summary-table) - [`base object`](#base-object-1) @@ -31,6 +32,7 @@ - [`request.workflow_engine_parameters`(optional)](#requestworkflow_engine_parametersoptional-1) - [`request.workflow_type`(optional)](#requestworkflow_typeoptional-1) - [`task_logs_url` (optional)](#task_logs_url-optional-1) + - [`author/creator entity`](#authorcreator-entity-1) This document aims to detail a conversion between the [GA4GH WES profile](https://ga4gh.github.io/workflow-execution-service-schemas/docs/) to the [Workflow Run Crate](https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate/) (WRC) extension of [Ro-Crates](https://www.researchobject.org/ro-crate/) @@ -590,6 +592,38 @@ one of the input objects of the main entity. A data entity representing the WES - **type**: `URL` - **description**: A reference to the complete url which may be used to obtain a paginated list of task logs for this workflow. +### `author/creator entity` + +- **@id**(required): + + - **WES field**: N/A + - **type**: `string` + - **description**: The id of the creator/author. Usually a url to their profile on a commonly used platform + +- **@type**(required): + + - **WES field**: N/A + - **type**: [`Person`](https://schema.org/Person) | [`Organization`](https://schema.org/Organization) + - **description**: The type the entitiy. + +- **name**(required): + + - **WES field**: N/A + - **type**: `string` + - **description**: name of the entity. + +- **affiliation**(optional): + + - **WES field**: N/A + - **type**: `string` | `{"@id": string}` + - **description**: The affiliation of the entity, if the type is person. Usually their organization. + +- **email**(optional): + + - **WES field**: N/A + - **type**: `string` + - **description**: The email of the person or organization. + ### WES fields that have not been added: 1. outputs @@ -714,7 +748,7 @@ one of the input objects of the main entity. A data entity representing the WES | `alternamteName` (required) | `request.workflow_type`-`request.workflow_type_version` (one - one) | `string` | | | `url` (recommended) | N/A | `URL` | | -### `task_logs_url` (optional) +### [`task_logs_url`](#task_logs_url-optional) (optional) | RO-Crate Field | WES Field | Type | defaultValue | | ---------------------------- | --------------------------- | -------- | ------------------------------ | @@ -723,4 +757,14 @@ one of the input objects of the main entity. A data entity representing the WES | `name` (required) | N/A | `string` | `"The workflow Task Logs URL"` | | `url` (required) | `task_logs_url` (one - one) | `string` | | -add author/creator entity +### [`author/creator entity`](#authorcreator-entity) + +| RO-Crate Field | WES Field | Type | defaultValue | +| ---------------------------- | --------- | ------------------------------------------------------------------------------------------ | ------------ | +| `@id` (required) | N/A | `string` | | +| `@type` (required, constant) | N/A | [`Person`](https://schema.org/Person) \| [`Organization`](https://schema.org/Organization) | | +| `name` (required) | N/A | `string` | | +| `affiliation` (optional) | N/A | `string` \| `{"@id": string}` | | +| `email` (optional) | N/A | `string` | | + +add type and reference for each entity From 36b8d5c283c510638a211330e1eadefb90b261e7 Mon Sep 17 00:00:00 2001 From: salihuDickson Date: Sun, 13 Oct 2024 21:56:23 +0100 Subject: [PATCH 18/18] detail unadded WES fields --- schema.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/schema.md b/schema.md index 3eb387f..e3ce170 100644 --- a/schema.md +++ b/schema.md @@ -626,12 +626,12 @@ one of the input objects of the main entity. A data entity representing the WES ### WES fields that have not been added: -1. outputs -2. run_log.cmd -3. run_log.exit_code -4. run_log.system_logs -5. request.workflow_params (partial support) -6. workflow_engine_version +1. outputs - The fields for the output objects are not standardized. +2. run_log.cmd - No suitable RO-Crate field found yet. +3. run_log.exit_code - No suitable RO-Crate field found yet. +4. run_log.system_logs - No suitable RO-Crate field found yet. +5. request.workflow_params (partial support) - The fields for the request.workflow_params object found yet. +6. request.workflow_engine_version - No suitable RO-Cratte field found yet 7. task_logs (deprecated, may not be added) ## Summary Table @@ -766,5 +766,3 @@ one of the input objects of the main entity. A data entity representing the WES | `name` (required) | N/A | `string` | | | `affiliation` (optional) | N/A | `string` \| `{"@id": string}` | | | `email` (optional) | N/A | `string` | | - -add type and reference for each entity