From 5245c350520dc0314f7c6732e2ae96b99a31a8af Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:07:12 +0100 Subject: [PATCH 01/15] docs(readthedocs): :sparkles: add an initial "How it works" section --- docs/3_how_it_works.rst | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/3_how_it_works.rst diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst new file mode 100644 index 0000000..0bc31b5 --- /dev/null +++ b/docs/3_how_it_works.rst @@ -0,0 +1,31 @@ +How It Works +============ + +The `ro-crate-validator` package is designed to validate RO-Crate metadata files against +predefined profiles. The validation process ensures that the metadata conforms to the +expected structure and content as defined by the selected profile. + +Validation Process +------------------ + +1. **Profile Detection**: The system attempts to detect the most appropriate profile based + on the `conformsTo` property of the RO-Crate. This property indicates which profile the + RO-Crate claims to conform to. + +2. **Profile Matching**: + - If a precise match is found for the `conformsTo` property, that profile is selected + for validation. + - If no precise match is found, the system will: + - **Interactive Mode**: If interactive mode is enabled, the system will prompt the + user to select a profile from the list of candidate profiles. + - **Non-Interactive Mode**: If interactive mode is not enabled, the system will use + all candidate profiles for validation. + +3. **Profile Versioning**: + - If the user does not specify a version of the profile, the system will use the latest + available version of the profile for validation. + +By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is +validated against the most suitable profile, providing flexibility and robustness in +handling different versions and profiles. + From b9d3a04c9693e72443f4752650d5f450ab4edba6 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:22:10 +0100 Subject: [PATCH 02/15] docs(readthedocs): :sparkles: more details on profile detection and versioning --- docs/3_how_it_works.rst | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst index 0bc31b5..3972220 100644 --- a/docs/3_how_it_works.rst +++ b/docs/3_how_it_works.rst @@ -8,22 +8,28 @@ expected structure and content as defined by the selected profile. Validation Process ------------------ -1. **Profile Detection**: The system attempts to detect the most appropriate profile based - on the `conformsTo` property of the RO-Crate. This property indicates which profile the - RO-Crate claims to conform to. +1. **Profile Selection**: The user can always specify (via CLI or API) which profile to use + for validation. If the user does not specify a profile, the system will attempt to detect + the most appropriate profile based on the `conformsTo` property of the RO-Crate. This + property indicates which profile the RO-Crate claims to conform to. 2. **Profile Matching**: - If a precise match is found for the `conformsTo` property, that profile is selected for validation. - If no precise match is found, the system will: - - **Interactive Mode**: If interactive mode is enabled, the system will prompt the + - **Interactive Mode**: If interactive mode is enabled (available only via CLI), the system will prompt the user to select a profile from the list of candidate profiles. - **Non-Interactive Mode**: If interactive mode is not enabled, the system will use all candidate profiles for validation. 3. **Profile Versioning**: - - If the user does not specify a version of the profile, the system will use the latest - available version of the profile for validation. + - If the user does not specify a version of the profile, the validator will default to + using the latest available version of the profile for validation. + + .. note:: + The version of a profile is encoded in the profile identifier. For example, for the + `ro-crate` profile version **1.0**, the identifier is `ro-crate-1.0`. The profile name + without the version identifier is simply `ro-crate`. By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is validated against the most suitable profile, providing flexibility and robustness in From 2536e97a8b24e76a047cfb8c3f811290cd5c7df2 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:25:15 +0100 Subject: [PATCH 03/15] docs(readthedocs): :truck: rename api docs file --- docs/{3_usage_api.rst => 4_usage_api.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{3_usage_api.rst => 4_usage_api.rst} (100%) diff --git a/docs/3_usage_api.rst b/docs/4_usage_api.rst similarity index 100% rename from docs/3_usage_api.rst rename to docs/4_usage_api.rst From 66d97d7940354b45309304a3c54e3f6df95f64be Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:26:07 +0100 Subject: [PATCH 04/15] docs(readthedocs): :sparkles: update toc --- docs/0_toc.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/0_toc.rst b/docs/0_toc.rst index 7318079..05b0321 100644 --- a/docs/0_toc.rst +++ b/docs/0_toc.rst @@ -19,7 +19,8 @@ 1_installation 2_usage_cli - 3_usage_api + 3_how_it_works + 4_usage_api .. toctree:: :maxdepth: 5 From 847a8e9cf0c57eafccfb172f5f81435bdb80cddc Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:33:33 +0100 Subject: [PATCH 05/15] docs(readthedocs): :lipstick: reformat --- docs/3_how_it_works.rst | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst index 3972220..de055f9 100644 --- a/docs/3_how_it_works.rst +++ b/docs/3_how_it_works.rst @@ -8,7 +8,8 @@ expected structure and content as defined by the selected profile. Validation Process ------------------ -1. **Profile Selection**: The user can always specify (via CLI or API) which profile to use +1. **Profile Selection**: + The user can always specify (via CLI or API) which profile to use for validation. If the user does not specify a profile, the system will attempt to detect the most appropriate profile based on the `conformsTo` property of the RO-Crate. This property indicates which profile the RO-Crate claims to conform to. @@ -16,20 +17,21 @@ Validation Process 2. **Profile Matching**: - If a precise match is found for the `conformsTo` property, that profile is selected for validation. + - If no precise match is found, the system will: - - **Interactive Mode**: If interactive mode is enabled (available only via CLI), the system will prompt the - user to select a profile from the list of candidate profiles. - - **Non-Interactive Mode**: If interactive mode is not enabled, the system will use - all candidate profiles for validation. + + - **(Interactive Mode)** The system will prompt the user to select a profile from the list of candidate profiles if interactive mode is enabled (available only through the CLI) + + - **(Non-Interactive Mode)** the system will use all candidate profiles for validation if interactive mode is not enabled. 3. **Profile Versioning**: - If the user does not specify a version of the profile, the validator will default to using the latest available version of the profile for validation. - .. note:: - The version of a profile is encoded in the profile identifier. For example, for the - `ro-crate` profile version **1.0**, the identifier is `ro-crate-1.0`. The profile name - without the version identifier is simply `ro-crate`. +.. note:: + The version of a profile is encoded in the profile identifier. For example, for the + `ro-crate` profile version **1.0**, the identifier is `ro-crate-1.0`. The profile name + without the version identifier is simply `ro-crate`. By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is validated against the most suitable profile, providing flexibility and robustness in From 57e20e29e3a9f8f3b73dc00d6f08024d8c3ea40d Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:39:53 +0100 Subject: [PATCH 06/15] docs(readthedocs): :recycle: rewrite note --- docs/3_how_it_works.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst index de055f9..75c2a92 100644 --- a/docs/3_how_it_works.rst +++ b/docs/3_how_it_works.rst @@ -29,9 +29,10 @@ Validation Process using the latest available version of the profile for validation. .. note:: - The version of a profile is encoded in the profile identifier. For example, for the - `ro-crate` profile version **1.0**, the identifier is `ro-crate-1.0`. The profile name - without the version identifier is simply `ro-crate`. + The profile version is included in its identifier, allowing the validator to + accurately distinguish profiles and their versions. For instance, the identifier + for the ro-crate profile version 1.0 is `ro-crate-1.0`, while the profile name + without a version is simply `ro-crate`. By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is validated against the most suitable profile, providing flexibility and robustness in From a147b37b893f31aea6fd5b072d4bee1157989a61 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:41:11 +0100 Subject: [PATCH 07/15] docs(readthedocs): :pencil2: minor changes --- docs/3_how_it_works.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst index 75c2a92..456d5a1 100644 --- a/docs/3_how_it_works.rst +++ b/docs/3_how_it_works.rst @@ -15,14 +15,15 @@ Validation Process property indicates which profile the RO-Crate claims to conform to. 2. **Profile Matching**: + - If a precise match is found for the `conformsTo` property, that profile is selected for validation. - If no precise match is found, the system will: - - **(Interactive Mode)** The system will prompt the user to select a profile from the list of candidate profiles if interactive mode is enabled (available only through the CLI) + - **Interactive Mode:** the system will prompt the user to select a profile from the list of candidate profiles if interactive mode is enabled (available only through the CLI) - - **(Non-Interactive Mode)** the system will use all candidate profiles for validation if interactive mode is not enabled. + - **Non-Interactive Mode:** the system will use all candidate profiles for validation if interactive mode is not enabled. 3. **Profile Versioning**: - If the user does not specify a version of the profile, the validator will default to @@ -35,6 +36,6 @@ Validation Process without a version is simply `ro-crate`. By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is -validated against the most suitable profile, providing flexibility and robustness in +validated against the most suitable profile, providing flexibility in handling different versions and profiles. From 3ad3d1393d6eb4f430f0e256f19f8b0447ce4499 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:51:06 +0100 Subject: [PATCH 08/15] docs(readthedocs): :pencil2: fix typos --- docs/3_how_it_works.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/3_how_it_works.rst b/docs/3_how_it_works.rst index 456d5a1..95e80d2 100644 --- a/docs/3_how_it_works.rst +++ b/docs/3_how_it_works.rst @@ -1,7 +1,7 @@ How It Works ============ -The `ro-crate-validator` package is designed to validate RO-Crate metadata files against +The `rocrate-validator` package is designed to validate RO-Crate metadata files against predefined profiles. The validation process ensures that the metadata conforms to the expected structure and content as defined by the selected profile. @@ -32,10 +32,10 @@ Validation Process .. note:: The profile version is included in its identifier, allowing the validator to accurately distinguish profiles and their versions. For instance, the identifier - for the ro-crate profile version 1.0 is `ro-crate-1.0`, while the profile name + for the `ro-crate` profile version **1.0** is `ro-crate-1.0`, while the profile name without a version is simply `ro-crate`. -By following this process, the `ro-crate-validator` ensures that the RO-Crate metadata is +By following this process, the `rocrate-validator` ensures that the RO-Crate metadata is validated against the most suitable profile, providing flexibility in handling different versions and profiles. From aa8512f769b19d47f986d763f41b93fd9c703edc Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 17:53:18 +0100 Subject: [PATCH 09/15] docs(readthedocs): :truck: restructure toc --- docs/0_toc.rst | 4 ++-- docs/{4_usage_api.rst => 3_usage_api.rst} | 0 docs/{3_how_it_works.rst => 4_how_it_works.rst} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename docs/{4_usage_api.rst => 3_usage_api.rst} (100%) rename docs/{3_how_it_works.rst => 4_how_it_works.rst} (100%) diff --git a/docs/0_toc.rst b/docs/0_toc.rst index 05b0321..f812190 100644 --- a/docs/0_toc.rst +++ b/docs/0_toc.rst @@ -19,8 +19,8 @@ 1_installation 2_usage_cli - 3_how_it_works - 4_usage_api + 3_usage_api + 4_how_it_works .. toctree:: :maxdepth: 5 diff --git a/docs/4_usage_api.rst b/docs/3_usage_api.rst similarity index 100% rename from docs/4_usage_api.rst rename to docs/3_usage_api.rst diff --git a/docs/3_how_it_works.rst b/docs/4_how_it_works.rst similarity index 100% rename from docs/3_how_it_works.rst rename to docs/4_how_it_works.rst From f57599cb825f21bda01988035efa0d2c9f3017ad Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 18:05:49 +0100 Subject: [PATCH 10/15] docs(readthedocs): :sparkles: mention the fallback profile --- docs/4_how_it_works.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index 95e80d2..8685b37 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -23,7 +23,7 @@ Validation Process - **Interactive Mode:** the system will prompt the user to select a profile from the list of candidate profiles if interactive mode is enabled (available only through the CLI) - - **Non-Interactive Mode:** the system will use all candidate profiles for validation if interactive mode is not enabled. + - **Non-Interactive Mode:** the system will use all candidate profiles for validation if interactive mode is not enabled. If no suitable profile is found, the system will use the base `ro-crate` profile as a fallback. 3. **Profile Versioning**: - If the user does not specify a version of the profile, the validator will default to From 932813591abed08b4bfc5410690ec16a0a03ef62 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 18:11:42 +0100 Subject: [PATCH 11/15] docs(readthedocs): :lipstick: indent note --- docs/4_how_it_works.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index 8685b37..af35258 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -29,11 +29,11 @@ Validation Process - If the user does not specify a version of the profile, the validator will default to using the latest available version of the profile for validation. -.. note:: - The profile version is included in its identifier, allowing the validator to - accurately distinguish profiles and their versions. For instance, the identifier - for the `ro-crate` profile version **1.0** is `ro-crate-1.0`, while the profile name - without a version is simply `ro-crate`. + .. note:: + The profile version is included in its identifier, allowing the validator to + accurately distinguish profiles and their versions. For instance, the identifier + for the `ro-crate` profile version **1.0** is `ro-crate-1.0`, while the profile name + without a version is simply `ro-crate`. By following this process, the `rocrate-validator` ensures that the RO-Crate metadata is validated against the most suitable profile, providing flexibility in From 828a116734755744581805244b9a288aa3d62e11 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Thu, 12 Dec 2024 18:20:58 +0100 Subject: [PATCH 12/15] docs(readthedocs): :sparkles: add copyright --- docs/4_how_it_works.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index af35258..c7d1b23 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -1,3 +1,18 @@ +.. + Copyright (c) 2024 CRS4 + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + How It Works ============ From 9bef63055ddeebeb41f83db87cc343ac2c7485ee Mon Sep 17 00:00:00 2001 From: Luca Pireddu Date: Thu, 12 Dec 2024 19:35:14 +0100 Subject: [PATCH 13/15] Edits to "How it works" documentation --- docs/4_how_it_works.rst | 73 +++++++++++++++++++++++++++-------------- 1 file changed, 48 insertions(+), 25 deletions(-) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index c7d1b23..e8a9aeb 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -16,41 +16,64 @@ How It Works ============ -The `rocrate-validator` package is designed to validate RO-Crate metadata files against -predefined profiles. The validation process ensures that the metadata conforms to the -expected structure and content as defined by the selected profile. +The `rocrate-validator` is designed to validate RO-Crates against predefined +*validation profiles*. A validation profile is a set of validation rules, or +*checks*, which are applied to the RO-Crate. If the RO-Crate conforms to all +the rules, then it is deemed *valid*; otherwise, errors will be generated for +each rule that failed to validate. -Validation Process ------------------- +Non-conformance to a rule will result in an *issue*. On the CLI, issues will +be presented as error messages, with references to the specific rule which +triggered the error. Note that multiple rules may have the same error message, +which can result in output with apparently duplicate errors. -1. **Profile Selection**: - The user can always specify (via CLI or API) which profile to use - for validation. If the user does not specify a profile, the system will attempt to detect - the most appropriate profile based on the `conformsTo` property of the RO-Crate. This - property indicates which profile the RO-Crate claims to conform to. +Naturally, `rocrate-validator` is limited to validating conformance to RO-Crate +profiles for which validation rules have been implemented. In the absence of +any matching validation profiles, `rocrate-validator` may return an error or +request the user to manually select a validation profile to apply. -2. **Profile Matching**: +Validation profiles can be related by inheritance -- i.e., where one validation +profile extends another one. Normally this happens with profiles that validate +conformance to RO-Crate profiles that themselves extend a base profile, such as +Workflow Testing RO-Crate, which extends Workflow RO-Crate. + + + +Validation profile selection +---------------------------- + +* **Automatic Profile Matching** (default): + By default, `rocrate-validator` will attempt to select the correct validation + profiles for the input RO-Crate based on the `conformsTo` property. - If a precise match is found for the `conformsTo` property, that profile is selected for validation. - If no precise match is found, the system will: - - **Interactive Mode:** the system will prompt the user to select a profile from the list of candidate profiles if interactive mode is enabled (available only through the CLI) + - in **Interactive Mode:** (available only through the CLI) the system + will prompt the user to select a profile from the list of candidate + profiles; - - **Non-Interactive Mode:** the system will use all candidate profiles for validation if interactive mode is not enabled. If no suitable profile is found, the system will use the base `ro-crate` profile as a fallback. + - **Non-Interactive Mode:** the system will use all candidate profiles + for validation. If no suitable profile is found, the system will use + the base `ro-crate` profile as a fallback. -3. **Profile Versioning**: - - If the user does not specify a version of the profile, the validator will default to - using the latest available version of the profile for validation. +* **Profile Versions**: + - It may happen that the RO-Crate profile version to which the input + RO-Crate `conformsTo` does not match the version of the implemented + validation profile. In this case, the validator will validate against the + *highest available version* of the profile that is lower than the one + requested. Thus, the validator will avoid applying a validation profile + that is newer than the `conformsTo` profile. This behaviour can be + overridden by manually selecting the desired validation profile (see below). .. note:: - The profile version is included in its identifier, allowing the validator to - accurately distinguish profiles and their versions. For instance, the identifier - for the `ro-crate` profile version **1.0** is `ro-crate-1.0`, while the profile name - without a version is simply `ro-crate`. - -By following this process, the `rocrate-validator` ensures that the RO-Crate metadata is -validated against the most suitable profile, providing flexibility in -handling different versions and profiles. - + Profile versions are identified by matching the trailing version number + in the profile identifier, if present. For instance, the identifier for + the `ro-crate` profile version **1.0** is `ro-crate-1.0`, while the + profile name without a version is simply `ro-crate`. + +* **Manual Profile Selection**: + The user can always override the automatic selection of validation profiles + by specifying (via CLI or API) which profile to use. From ec6efe2d8e6b07704f6e600e833d8c3e2e0c7f95 Mon Sep 17 00:00:00 2001 From: Marco Enrico Piras Date: Mon, 16 Dec 2024 17:33:21 +0100 Subject: [PATCH 14/15] fix(readthedocs): :bug: minor changes --- docs/4_how_it_works.rst | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index e8a9aeb..3cc53f6 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -27,16 +27,13 @@ be presented as error messages, with references to the specific rule which triggered the error. Note that multiple rules may have the same error message, which can result in output with apparently duplicate errors. -Naturally, `rocrate-validator` is limited to validating conformance to RO-Crate +`rocrate-validator` is limited to validating conformance to RO-Crate profiles for which validation rules have been implemented. In the absence of any matching validation profiles, `rocrate-validator` may return an error or request the user to manually select a validation profile to apply. Validation profiles can be related by inheritance -- i.e., where one validation -profile extends another one. Normally this happens with profiles that validate -conformance to RO-Crate profiles that themselves extend a base profile, such as -Workflow Testing RO-Crate, which extends Workflow RO-Crate. - +profile extends another one. For instance, Workflow Testing RO-Crate extends Workflow RO-Crate. Validation profile selection @@ -44,18 +41,18 @@ Validation profile selection * **Automatic Profile Matching** (default): By default, `rocrate-validator` will attempt to select the correct validation - profiles for the input RO-Crate based on the `conformsTo` property. + profiles for the input RO-Crate based on the `conformsTo` property of the Root Data Entity. - If a precise match is found for the `conformsTo` property, that profile is selected for validation. - - If no precise match is found, the system will: + - If no precise match is found: - in **Interactive Mode:** (available only through the CLI) the system will prompt the user to select a profile from the list of candidate profiles; - - **Non-Interactive Mode:** the system will use all candidate profiles + - in **Non-Interactive Mode:** the system will use all candidate profiles for validation. If no suitable profile is found, the system will use the base `ro-crate` profile as a fallback. From 062aae5699f7746abcde45905361a0530d60ff50 Mon Sep 17 00:00:00 2001 From: Luca Pireddu Date: Tue, 17 Dec 2024 15:59:01 +0100 Subject: [PATCH 15/15] Reword explanation of selection of validation profiles --- docs/4_how_it_works.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/4_how_it_works.rst b/docs/4_how_it_works.rst index 3cc53f6..51bd7e9 100644 --- a/docs/4_how_it_works.rst +++ b/docs/4_how_it_works.rst @@ -49,12 +49,12 @@ Validation profile selection - If no precise match is found: - in **Interactive Mode:** (available only through the CLI) the system - will prompt the user to select a profile from the list of candidate - profiles; + will prompt the user to select a profile from the list of + profiles to which the RO-Crate conforms; - - in **Non-Interactive Mode:** the system will use all candidate profiles - for validation. If no suitable profile is found, the system will use - the base `ro-crate` profile as a fallback. + - in **Non-Interactive Mode:** the system will validate against all profiles + to which the RO-Crate conforms, and for which validation rules are available. + In all cases, input RO-Crates are validated against the base `ro-crate` profile. * **Profile Versions**: - It may happen that the RO-Crate profile version to which the input