-
Notifications
You must be signed in to change notification settings - Fork 0
/
shacl_codelists.ttl
207 lines (184 loc) · 5.68 KB
/
shacl_codelists.ttl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
@prefix : <http://skohub.io/skohub-shacl> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix sdo: <https://schema.org> .
@prefix vann: <http://purl.org/vocab/vann/> .
# ConceptScheme
:ConceptSchemeShape
a sh:NodeShape ;
sh:targetClass skos:ConceptScheme ;
sh:property [
sh:path skos:prefLabel ;
sh:minCount 1 ;
sh:datatype xsd:string ;
sh:message "Each skos:ConceptScheme has to provide a skos:prefLabel" ;
sh:severity: sh:Violation ;
] ;
sh:property [
sh:path skos:definition ;
sh:minCount 1 ;
sh:datatype xsd:string ;
sh:message "Each skos:ConceptScheme has to provide a skos:definition" ;
sh:severity: sh:Violation ;
] ;
.
# Concept
:ConceptShape
a sh:NodeShape ;
sh:targetClass skos:Concept ;
sh:property [
sh:path skos:prefLabel ;
sh:minCount 1 ;
sh:datatype rdf:langString ;
sh:uniqueLang true ;
sh:message "Each skos:Concept has to provide a skos:prefLabel in a unique language" ;
sh:severity: sh:Violation ;
] ;
sh:property [
sh:path skos:prefLabel ;
sh:qualifiedValueShape [
sh:datatype rdf:langString ;
sh:languageIn ("nl") ;
] ;
sh:qualifiedMinCount 1 ;
sh:message "Each skos:Concept has to provide a skos:prefLabel in at least @nl language" ;
] ;
sh:property [
sh:path skos:definition ;
sh:qualifiedValueShape [
sh:datatype rdf:langString ;
sh:languageIn ("nl") ;
] ;
sh:qualifiedMinCount 1 ;
sh:message "Each skos:Concept has to provide a skos:definition in at least @nl language" ;
] ;
sh:property [
sh:path skos:altLabel ;
sh:severity sh:Violation ;
sh:datatype rdf:langString ;
sh:message "Alternative label should be provided with a language tag." ;
] ;
sh:property [
sh:path skos:hiddenLabel ;
sh:severity sh:Violation ;
sh:datatype rdf:langString ;
sh:message "Hidden label should be provided with a language tag." ;
] ;
sh:property [
sh:path skos:definition ;
sh:severity sh:Violation ;
sh:minCount 1 ;
sh:uniqueLang true ;
sh:datatype rdf:langString ;
sh:message "At least one definition should be provided with a unique language tag." ;
] ;
sh:property [
sh:path skos:scopeNote ;
sh:severity sh:Violation ;
sh:datatype rdf:langString ;
sh:message "Scope Note should be provided with a language tag." ;
] ;
sh:property [
sh:path skos:note ;
sh:severity sh:Violation ;
sh:datatype rdf:langString ;
sh:message "Note should be provided with a language tag." ;
] ;
sh:property [
sh:path skos:notation ;
sh:severity sh:Violation ;
sh:datatype xsd:string ;
sh:message "Notation should be provided as a string." ;
] ;
sh:property [
sh:path skos:example ;
sh:severity sh:Violation ;
sh:datatype rdf:langString ;
sh:message "Example should be provided with a language tag." ;
] ;
sh:property [
sh:path skos:narrower ;
sh:class skos:Concept ;
sh:severity sh:Violation ;
sh:message "Target class of skos:narrower should be a skos:Concept" ;
] ;
sh:property [
sh:class skos:Concept ;
sh:path skos:narrowerTransitive ;
sh:severity sh:Violation ;
sh:message "Target class of skos:narrowerTransitive should be a skos:Concept" ;
] ;
sh:property [
sh:path skos:narrowMatch ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:narrowMatch should be a URI" ;
] ;
sh:property [
sh:path skos:broader ;
sh:class skos:Concept ;
sh:severity sh:Violation ;
sh:message "Target class of skos:broader should be a skos:Concept" ;
] ;
sh:property [
sh:path skos:broaderTransitive ;
sh:class skos:Concept ;
sh:severity sh:Violation ;
sh:message "Target class of skos:broaderTransitive should be a skos:Concept" ;
] ;
sh:property [
sh:path skos:broadMatch ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:broadMatch should be a URI" ;
] ;
sh:property [
sh:path skos:related ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:related should be a skos:Concept" ;
] ;
sh:property [
sh:path skos:relatedMatch ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:relatedMatch should be a URI" ;
] ;
sh:property [
sh:path skos:closeMatch ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:closeMatch should be a URI" ;
] ;
sh:property [
sh:path skos:exactMatch ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of skos:exactMatch should be a URI" ;
] ;
sh:property [
sh:path skos:inScheme ;
sh:class skos:ConceptScheme ;
sh:minCount 1 ;
sh:severity sh:Violation ;
sh:message "Each skos:inScheme should have at least one skos:inScheme of type skos:ConceptScheme" ;
] ;
sh:property [
sh:path skos:topConceptOf ;
sh:class skos:ConceptScheme ;
sh:severity sh:Violation ;
sh:message "Target class of skos:topConceptOf should be a skos:ConceptScheme" ;
] ;
sh:property [
sh:path owl:sameAs ;
sh:nodeKind sh:IRI ;
sh:severity sh:Violation ;
sh:message "Target class of owl:sameAs should be a URI" ;
] ;
.