2424@prefix validator: <https://github.com/crs4/rocrate-validator/> .
2525@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
2626
27-
27+ isa-ro-crate:FindISAPerson a sh:NodeShape, validator:HiddenShape;
28+ sh:name " Identify ISA persons within the RO-Crate" ;
29+ sh:description " A Person has type Person and is attached to an Investigation, Study, Assay, Process, or Article." ;
30+ sh:targetClass schema:Person ;
31+ sh:order 3 ;
32+ # Expand data graph with triples from the file data entity
33+ sh:rule [
34+ a sh:TripleRule ;
35+ sh:subject sh:this ;
36+ sh:predicate rdf:type ;
37+ sh:object isa-ro-crate:Person ;
38+ # The condition: need to be attached to a Study or Assay
39+ sh:condition [
40+ a sh:NodeShape;
41+ sh:name: " Person is attached to an Investigation, Study, Assay, Process, or Article" ;
42+ sh:or (
43+ [
44+ sh:property [
45+ sh:name " Person is creator of a Study, Assay, or RootDataEntity" ;
46+ sh:path [ sh:inversePath schema:creator ] ;
47+ sh:qualifiedValueShape [
48+ sh:or(
49+ [sh:class isa-ro-crate:Assay]
50+ [sh:class isa-ro-crate:Study]
51+ [sh:class ro-crate:RootDataEntity]
52+ )
53+ ] ;
54+ sh:qualifiedMinCount 1 ;
55+ ]
56+ ]
57+ [
58+ sh:property [
59+ sh:name " Person is author of an Article" ;
60+ sh:path [ sh:inversePath schema:author ] ;
61+ sh:qualifiedValueShape [
62+ sh:class isa-ro-crate:Article
63+ ] ;
64+ sh:qualifiedMinCount 1 ;
65+ ]
66+ ]
67+ [
68+ sh:property [
69+ sh:name " Person is agent of a Process" ;
70+ sh:path [ sh:inversePath schema:agent ] ;
71+ sh:qualifiedValueShape [
72+ sh:class isa-ro-crate:Process
73+ ] ;
74+ sh:qualifiedMinCount 1 ;
75+ ]
76+ ]
77+ ) ;
78+ ] ;
79+ ] ;
80+ .
2881
2982# check Person attributes must have correct types
3083
3184isa-ro-crate:PersonMustHaveGivenName a sh:NodeShape ;
3285 sh:name " Person MUST have a given name" ;
3386 sh:description " A Person MUST have a given name" ;
34- sh:targetClass schema :Person ;
87+ sh:targetClass isa-ro-crate :Person ;
3588 sh:property [
3689 a sh:PropertyShape ;
3790 sh:path schema:givenName ;
@@ -50,7 +103,7 @@ isa-ro-crate:PersonMustHaveGivenName a sh:NodeShape ;
50103isa-ro-crate:PersonShouldHaveAffiliationOfCorrectType a sh:NodeShape ;
51104 sh:name " Person SHOULD have affiliation" ;
52105 sh:description " A Person SHOULD have at least one affiliation" ;
53- sh:targetClass schema :Person ;
106+ sh:targetClass isa-ro-crate :Person ;
54107 sh:property [
55108 a sh:PropertyShape ;
56109 sh:path schema:affiliation ;
@@ -72,7 +125,7 @@ isa-ro-crate:PersonShouldHaveAffiliationOfCorrectType a sh:NodeShape ;
72125isa-ro-crate:PersonShouldHaveJobTitleOfCorrectType a sh:NodeShape ;
73126 sh:name " Person SHOULD have job title" ;
74127 sh:description " A Person SHOULD have at least one job title" ;
75- sh:targetClass schema :Person ;
128+ sh:targetClass isa-ro-crate :Person ;
76129 sh:property [
77130 a sh:PropertyShape ;
78131 sh:path schema:jobTitle ;
@@ -94,7 +147,7 @@ isa-ro-crate:PersonShouldHaveJobTitleOfCorrectType a sh:NodeShape ;
94147isa-ro-crate:PersonShouldHaveEmailOfCorrectType a sh:NodeShape ;
95148 sh:name " Person SHOULD have email" ;
96149 sh:description " A Person SHOULD have at least one email" ;
97- sh:targetClass schema :Person ;
150+ sh:targetClass isa-ro-crate :Person ;
98151 sh:property [
99152 a sh:PropertyShape ;
100153 sh:path schema:email ;
@@ -119,7 +172,7 @@ isa-ro-crate:PersonShouldHaveEmailOfCorrectType a sh:NodeShape ;
119172isa-ro-crate:PersonShouldHaveFamilyNameOfCorrectType a sh:NodeShape ;
120173 sh:name " Person SHOULD have family name" ;
121174 sh:description " A Person SHOULD have at least one family name" ;
122- sh:targetClass schema :Person ;
175+ sh:targetClass isa-ro-crate :Person ;
123176 sh:property [
124177 a sh:PropertyShape ;
125178 sh:path schema:familyName ;
@@ -144,7 +197,7 @@ isa-ro-crate:PersonShouldHaveFamilyNameOfCorrectType a sh:NodeShape ;
144197isa-ro-crate:PersonShouldHaveIdentifierOfCorrectType a sh:NodeShape ;
145198 sh:name " Person SHOULD have identifier" ;
146199 sh:description " A Person SHOULD have at least one identifier" ;
147- sh:targetClass schema :Person ;
200+ sh:targetClass isa-ro-crate :Person ;
148201 sh:property [
149202 a sh:PropertyShape ;
150203 sh:path schema:identifier ;
0 commit comments