-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFileShape.ttl
147 lines (132 loc) · 3.76 KB
/
FileShape.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
@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
=======
@prefix u4u: <https://uri4uri.net/vocab#> .
>>>>>>> details_of_the_AAS_1.1
<#FileShape>
a sh:NodeShape ;
sh:targetClass rami:File ;
sh:property [
sh:path rdf:type ;
sh:minCount 1 ;
] ;
<<<<<<< HEAD
sh:property [
sh:path rami:mimeType ;
sh:class rami:mimeType ;
=======
# sh:constraint [
# sh:nodeKind rami:IRDI ;
# sh:message "Each asset object must be an IRDI."@en ;
# ] ;
sh:property [
sh:path rami:mimeType ;
sh:class u4u:MimetypeDatatype ;
#TODO: implement RegEx "[a-z]+/[a-z]+"
>>>>>>> details_of_the_AAS_1.1
sh:minCount 1 ;
sh:maxCount 1 ;
sh:severity sh:Violation ;
sh:message "Each File must refer to the mime-type, that is the content of the file"@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: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 ;
] ;
# Referable:
sh:property [
sh:path rami:idShort ;
sh:valueDatatype xsd:string ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "..."@en ;
] ;
sh:property [
sh:path rami:category ;
sh:valueDatatype xsd:string ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:severity sh:violation ;
sh:message "..."@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:IRI ;
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:nodeKind sh:URI ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:severity sh:Violation ;
sh:message "Every submodel element needs exactly one semantic definition (semanticId in HasSemantics)"@en ;
] ;
# 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