-
Notifications
You must be signed in to change notification settings - Fork 6
/
BlobShape.ttl
183 lines (162 loc) · 4.75 KB
/
BlobShape.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
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rami: <https://w3id.org/i40/rami#> .
<<<<<<< HEAD
<#BlobShape>
=======
@prefix u4u: <http://uri4uri.net/vocab.html/#> .
<#BlobShape>
>>>>>>> details_of_the_AAS_1.1
a sh:NodeShape ;
sh:targetClass rami:Blob ;
sh:property [
sh:path rdf:type ;
sh:minCount 1 ;
] ;
<<<<<<< HEAD
=======
# sh:constraint [
# sh:nodeKind rami:IRDI ;
# sh:message "Each asset object must be an IRDI."@en ;
# ] ;
>>>>>>> details_of_the_AAS_1.1
sh:property [
sh:path rami:value ;
sh:class rami:value ;
sh:minCount 0 ;
sh:severity sh:Violation ;
sh:message "Each Blob needs a value-attribute, which is a BLOB data element"@en ;
] ;
sh:property [
sh:path rami:mimeType ;
<<<<<<< HEAD
sh:class rami:mimeType ;
=======
sh:class u4u:MimetypeDatatype ;
#TODO: RegEx-implemetation "[a-z]+/[a-z]+"
>>>>>>> details_of_the_AAS_1.1
sh:minCount 1 ;
sh:maxCount 1 ;
sh:severity sh:Violation ;
sh:message "Each Blob must refer to the mime-type, that is the content of the BLOB"@en
] ;
# Blob inherits from DataElement (> SubmodelElelement):
sh:property [
sh:path rami:dataElement ;
sh:minCount 1 ;
sh:constraint [
sh:nodeKind sh:URI ;
] ;
sh:severity sh:Violation ;
sh:message "rami:dataElement must be point to a proper URI."@en ;
<<<<<<< HEAD
] ;
=======
] ;
##################################
# inherits from DataElement (and DataElement inherits from SubmodelElement
# (SubmodelElements inherits from:
# HasDataSpecification; Referable; Qualifiable; HasSemantics; HasKind))
##################################
# DataSpecification:
sh:property [
sh:path rami:hasDataSpecification ;
sh:class rami:Reference ;
sh:minCount 0 ;
sh:nodeKind sh:URI ;
sh:severity sh:Violation ;
sh:message "rami:hasDataSpecification must point to a proper URI."@en ;
] ;
sh:property [
sh:path rami:hasSubmodel ;
sh:class rami:Submodel ;
sh:minCount 0 ;
sh:message "A DataSpecification entity can have a rami:hasSubmodel relation to a rami:Submodel."@en ;
] ;
# Identifiable:
sh:property [
sh:path rami:administration ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:class rami:AdministrativeInformation ;
sh:severity sh:Violation ;
sh:message ""@en ;
] ;
#Identifiable inherits from Referable
sh:property [
sh:path rami:idShort ;
sh:valueDatatype xsd:string ;
sh:minCount 0 ; # WHY NOT MANDATORY (sh:minCount 1) ?
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "The idShort-property from Referable needs to be xsd:string."@en ;
] ;
sh:property [
sh:path rami:category ;
sh:valueDatatype xsd:string ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "rami:category is a property that is inherited from Referable and needs to be of type xsd:string."@en ;
] ;
sh:property [
sh:path rami:description ;
sh:valueDatatype xsd:langString ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "..."@en ;
] ;
sh:property [
sh:path rami:parent ;
sh:class rami:Referable ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "..."@en ;
] ;
# Qualifiable:
sh:constraint [
sh:nodeKind sh:URI ;
sh:message "Each rami object must be a URI."@en ;
] ;
sh:property [
sh:path rami:qualifier ;
sh:minCount 0 ;
sh:constraint [
sh:nodeKind sh:URI ;
] ;
sh:severity sh:Violation ;
sh:message "rami:qualifier must be point to a proper URI."@en ;
] ;
# HasSemantics:
# sh:property [
# sh:path rami:semanticId ;
# sh:someOf [
# sh:constraint [
# sh:nodeKind sh:IRI ;
# ] ;
########################################
# the semanticID is part of RDF itself #
########################################
# HasKind:
sh:property [
sh:path rami:hasKind ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:someOf [
sh:constraint [
sh:nodeKind sh:Type ;
] ;
sh:constraint [
sh:nodeKind rami:Instance ;
] ;
] ;
sh:severity sh:Violation ;
sh:message "rami:hasKind must be either a rami:Instance or a rami:Type ."@en ;
] .
>>>>>>> details_of_the_AAS_1.1