diff --git a/rocrate_validator/profiles/workflow-ro-crate/must/0_main-workflow.ttl b/rocrate_validator/profiles/workflow-ro-crate/0_main-workflow.ttl
similarity index 58%
rename from rocrate_validator/profiles/workflow-ro-crate/must/0_main-workflow.ttl
rename to rocrate_validator/profiles/workflow-ro-crate/0_main-workflow.ttl
index aefb42e7..6dfd73c6 100644
--- a/rocrate_validator/profiles/workflow-ro-crate/must/0_main-workflow.ttl
+++ b/rocrate_validator/profiles/workflow-ro-crate/0_main-workflow.ttl
@@ -20,6 +20,8 @@
@prefix schema: .
@prefix sh: .
@prefix validator: .
+@prefix wroc: .
+
workflow-ro-crate:MainEntityPropertyMustExist a sh:NodeShape ;
sh:name "Main Workflow entity existence" ;
@@ -31,6 +33,7 @@ workflow-ro-crate:MainEntityPropertyMustExist a sh:NodeShape ;
sh:minCount 1 ;
sh:description "Check if the Main Workflow is specified through a `mainEntity` property in the root data entity" ;
sh:message "The Main Workflow must be specified through a `mainEntity` property in the root data entity" ;
+ sh:severity sh:Violation;
] .
workflow-ro-crate:FindMainWorkflow a sh:NodeShape, validator:HiddenShape ;
@@ -70,6 +73,7 @@ workflow-ro-crate:MainWorkflowRequiredProperties a sh:NodeShape ;
bioschemas:ComputationalWorkflow ;
sh:minCount 1 ;
sh:message "The Main Workflow must have types File, SoftwareSourceCode, ComputationalWorkflow" ;
+ sh:severity sh:Violation;
] ;
sh:property [
a sh:PropertyShape ;
@@ -79,4 +83,54 @@ workflow-ro-crate:MainWorkflowRequiredProperties a sh:NodeShape ;
sh:class schema:ComputerLanguage ;
sh:minCount 1 ;
sh:message "The Main Workflow must refer to its language via programmingLanguage" ;
+ sh:severity sh:Violation;
+ ] .
+
+
+workflow-ro-crate:MainWorkflowOptionalProperties a sh:NodeShape ;
+ sh:name "Main Workflow optional properties" ;
+ sh:description """Main Workflow properties defined as MAY""";
+ sh:targetClass workflow-ro-crate:MainWorkflow ;
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "Main Workflow image" ;
+ sh:description "The Crate MAY contain a Main Workflow Diagram; if present it MUST be referred to via 'image'" ;
+ sh:path schema:image ;
+ sh:class schema:MediaObject, schema:ImageObject ;
+ sh:minCount 1 ;
+ sh:message "The Crate MAY contain a Main Workflow Diagram; if present it MUST be referred to via 'image'" ;
+ sh:severity sh:Info ;
+ ] ;
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "Main Workflow subjectOf" ;
+ sh:description "The Crate MAY contain a Main Workflow CWL Description; if present it MUST be referred to via 'subjectOf'" ;
+ sh:path schema:subjectOf ;
+ sh:node workflow-ro-crate:CWLDescriptionProperties ;
+ sh:minCount 1 ;
+ sh:message "The Crate MAY contain a Main Workflow CWL Description; if present it MUST be referred to via 'subjectOf'" ;
+ sh:severity sh:Info ;
+ ] .
+
+workflow-ro-crate:CWLDescriptionProperties a sh:NodeShape ;
+ sh:name "CWL Description properties" ;
+ sh:description "Main Workflow CWL Description properties" ;
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "CWL Description type" ;
+ sh:description "The CWL Description type must be File, SoftwareSourceCode, HowTo" ;
+ sh:path rdf:type ;
+ sh:hasValue schema:MediaObject, schema:SoftwareSourceCode, schema:HowTo ;
+ sh:message "The CWL Description type must be File, SoftwareSourceCode, HowTo" ;
+ sh:severity sh:Info ;
+ ] ;
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "CWL Description language" ;
+ sh:description "The CWL Description SHOULD have a language of https://w3id.org/workflowhub/workflow-ro-crate#cwl" ;
+ sh:path schema:programmingLanguage ;
+ sh:hasValue wroc:cwl ;
+ sh:class schema:ComputerLanguage ;
+ sh:message "The CWL Description SHOULD have a language of https://w3id.org/workflowhub/workflow-ro-crate#cwl" ;
+ sh:severity sh:Info ;
] .
diff --git a/rocrate_validator/profiles/workflow-ro-crate/should/1_wroc_crate.ttl b/rocrate_validator/profiles/workflow-ro-crate/1_wroc_crate.ttl
similarity index 96%
rename from rocrate_validator/profiles/workflow-ro-crate/should/1_wroc_crate.ttl
rename to rocrate_validator/profiles/workflow-ro-crate/1_wroc_crate.ttl
index 6c32731a..377b813f 100644
--- a/rocrate_validator/profiles/workflow-ro-crate/should/1_wroc_crate.ttl
+++ b/rocrate_validator/profiles/workflow-ro-crate/1_wroc_crate.ttl
@@ -33,6 +33,7 @@ workflow-ro-crate:DescriptorProperties a sh:NodeShape ;
;
sh:minCount 1 ;
sh:message "The Metadata File Descriptor conformsTo SHOULD contain https://w3id.org/ro/crate/1.1 and https://w3id.org/workflowhub/workflow-ro-crate/1.0" ;
+ sh:severity sh:Warning;
] .
workflow-ro-crate:FindReadme a sh:NodeShape ;
@@ -47,6 +48,7 @@ workflow-ro-crate:FindReadme a sh:NodeShape ;
sh:class ro-crate:RootDataEntity ;
sh:minCount 1 ;
sh:message "The README.md SHOULD be about the crate" ;
+ sh:severity sh:Warning;
] ;
sh:property [
a sh:PropertyShape ;
@@ -56,4 +58,5 @@ workflow-ro-crate:FindReadme a sh:NodeShape ;
sh:hasValue "text/markdown" ;
sh:minCount 1 ;
sh:message "The README.md SHOULD have text/markdown as its encodingFormat" ;
+ sh:severity sh:Warning;
] .
diff --git a/rocrate_validator/profiles/workflow-ro-crate/must/1_wroc_root_data_entity.ttl b/rocrate_validator/profiles/workflow-ro-crate/1_wroc_root_data_entity.ttl
similarity index 98%
rename from rocrate_validator/profiles/workflow-ro-crate/must/1_wroc_root_data_entity.ttl
rename to rocrate_validator/profiles/workflow-ro-crate/1_wroc_root_data_entity.ttl
index 47005164..9758532d 100644
--- a/rocrate_validator/profiles/workflow-ro-crate/must/1_wroc_root_data_entity.ttl
+++ b/rocrate_validator/profiles/workflow-ro-crate/1_wroc_root_data_entity.ttl
@@ -36,4 +36,5 @@ workflow-ro-crate:WROCRootDataEntityRequiredProperties a sh:NodeShape ;
) ;
sh:minCount 1 ;
sh:message "The Crate (Root Data Entity) must specify a license, which should be a URL but can also be a string" ;
+ sh:severity sh:Violation;
] .
diff --git a/rocrate_validator/profiles/workflow-ro-crate/should/2_main-workflow.ttl b/rocrate_validator/profiles/workflow-ro-crate/2_main-workflow.ttl
similarity index 100%
rename from rocrate_validator/profiles/workflow-ro-crate/should/2_main-workflow.ttl
rename to rocrate_validator/profiles/workflow-ro-crate/2_main-workflow.ttl
diff --git a/rocrate_validator/profiles/workflow-ro-crate/may/2_wrroc_crate.ttl b/rocrate_validator/profiles/workflow-ro-crate/2_wrroc_crate.ttl
similarity index 98%
rename from rocrate_validator/profiles/workflow-ro-crate/may/2_wrroc_crate.ttl
rename to rocrate_validator/profiles/workflow-ro-crate/2_wrroc_crate.ttl
index 13017a84..455c6bbf 100644
--- a/rocrate_validator/profiles/workflow-ro-crate/may/2_wrroc_crate.ttl
+++ b/rocrate_validator/profiles/workflow-ro-crate/2_wrroc_crate.ttl
@@ -46,4 +46,5 @@ workflow-ro-crate:FindExamplesDir a sh:NodeShape ;
sh:hasValue schema:Dataset ;
sh:minCount 1 ;
sh:message "The examples/ dir should be a Dataset" ;
+ sh:severity sh:Info;
] .
diff --git a/rocrate_validator/profiles/workflow-ro-crate/may/0_main-workflow.ttl b/rocrate_validator/profiles/workflow-ro-crate/may/0_main-workflow.ttl
deleted file mode 100644
index 8ee8ccb7..00000000
--- a/rocrate_validator/profiles/workflow-ro-crate/may/0_main-workflow.ttl
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2024-2026 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.
-
-@prefix ro: <./> .
-@prefix ro-crate: .
-@prefix workflow-ro-crate: .
-@prefix rdf: .
-@prefix schema: .
-@prefix bioschemas: .
-@prefix sh: .
-@prefix wroc: .
-
-workflow-ro-crate:MainWorkflowOptionalProperties a sh:NodeShape ;
- sh:name "Main Workflow optional properties" ;
- sh:description """Main Workflow properties defined as MAY""";
- sh:targetClass workflow-ro-crate:MainWorkflow ;
- sh:property [
- a sh:PropertyShape ;
- sh:name "Main Workflow image" ;
- sh:description "The Crate MAY contain a Main Workflow Diagram; if present it MUST be referred to via 'image'" ;
- sh:path schema:image ;
- sh:class schema:MediaObject, schema:ImageObject ;
- sh:minCount 1 ;
- sh:message "The Crate MAY contain a Main Workflow Diagram; if present it MUST be referred to via 'image'" ;
- # sh:severity sh:Info ;
- ] ;
- sh:property [
- a sh:PropertyShape ;
- sh:name "Main Workflow subjectOf" ;
- sh:description "The Crate MAY contain a Main Workflow CWL Description; if present it MUST be referred to via 'subjectOf'" ;
- sh:path schema:subjectOf ;
- sh:node workflow-ro-crate:CWLDescriptionProperties ;
- sh:minCount 1 ;
- sh:message "The Crate MAY contain a Main Workflow CWL Description; if present it MUST be referred to via 'subjectOf'" ;
- # sh:severity sh:Info ;
- ] .
-
-workflow-ro-crate:CWLDescriptionProperties a sh:NodeShape ;
- sh:name "CWL Description properties" ;
- sh:description "Main Workflow CWL Description properties" ;
- sh:property [
- a sh:PropertyShape ;
- sh:name "CWL Description type" ;
- sh:description "The CWL Description type must be File, SoftwareSourceCode, HowTo" ;
- sh:path rdf:type ;
- sh:hasValue schema:MediaObject, schema:SoftwareSourceCode, schema:HowTo ;
- sh:message "The CWL Description type must be File, SoftwareSourceCode, HowTo" ;
- # sh:severity sh:Info ;
- ] ;
- sh:property [
- a sh:PropertyShape ;
- sh:name "CWL Description language" ;
- sh:description "The CWL Description SHOULD have a language of https://w3id.org/workflowhub/workflow-ro-crate#cwl" ;
- sh:path schema:programmingLanguage ;
- sh:hasValue wroc:cwl ;
- sh:class schema:ComputerLanguage ;
- sh:message "The CWL Description SHOULD have a language of https://w3id.org/workflowhub/workflow-ro-crate#cwl" ;
- # sh:severity sh:Info ;
- ] .