forked from i40-Tools/RAMIOntology
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReferenceElementShape.ttl
138 lines (130 loc) · 4.18 KB
/
ReferenceElementShape.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
@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
<#ReferenceElementShaoe>
a sh:PropertyShape ;
sh:path rami:property ;
sh:datatype xsd:string ;
sh:minCount 0 ;
sh:maxCount 1 ;
=======
<#ReferenceElementShape>
# a sh:PropertyShape ;
# sh:path rami:property ;
# sh:datatype xsd:string ;
# sh:minCount 0 ;
# sh:maxCount 1 ;
a sh:NodeShape ;
sh:targetClass rami:ReferenceElement ;
sh:property [
sh:path rdf:type ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
>>>>>>> details_of_the_AAS_1.1
sh:property [
sh:path rami:value ;
sh:class rami:Reference ;
sh:minCount 0 ; # optional
sh:maxCount 1 ;
sh:severity sh:Violation ;
sh:message "rami:value as property in form of rami:Reference necessary"@en ;
] ;
# ReferenceElement inherits from DataElement
<<<<<<< HEAD
#################################
# inherits from DataElement: #
# inherits from SubmodelElement #
# copied all lines below #
#################################
sh:property [
sh:path rami:idShort ;
sh:valueDatatype xsd:string ;
=======
########################################################
# inherits from DataElement: #
# inherits from SubmodelElement #
# copied all lines below from PropertyShape.ttl #
########################################################
sh:property [
sh:path rami:idShort ;
sh:valueDatatype xsd:string ;
>>>>>>> details_of_the_AAS_1.1
sh:minCount 1 ;
sh:severity sh:Violation ;
sh:message "Each submodel element must have at least one short ID with datatype xsd:string."@en ;
] ;
<<<<<<< HEAD
sh:property [
sh:path rami:semanticId ;
sh:nodeKind sh:IRI ;
sh:minCount 1 ;
sh:severity sh:Violation ;
sh:message "Each SubmodelElement must have at least one semanticId attribute."@en ;
]
=======
# sh:property [
# sh:path rami:semanticId ;
# sh:nodeKind sh:IRI ;
# sh:minCount 1 ;
# sh:severity sh:Violation ;
# sh:message "Each SubmodelElement must have at least one semanticId attribute."@en ;
# ]
#### specified by RDF itself
>>>>>>> details_of_the_AAS_1.1
# SubmodelElement inherits from HasSemantics
# hasSemantics requirements are fulfilled by RDF itself
# SubmodelElement inherits from Qualifiable
sh:property [
sh:path rami:qualifier ;
sh:minCount 0 ;
sh:constraint [
sh:nodeKind sh:URI ; # Contraints are not part of the ontology => Do I have to implement constraints?
] ;
sh:severity sh:Violation ;
sh:message "rami:qualifier must be point to a proper URI."@en ;
] ;
# SubmodelElement inherits from Referable
sh:property [
sh:path rami:administration ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:class rami:AdministrativeInformation ;
sh:severity sh:Violation ;
sh:message ""@en ;
] ;
# Submodel inherits from DataSpecification
sh:property [
sh:path rami:hasDataSpecification ;
sh:minCount 0 ;
sh:nodeKind sh:IRI ; # class Reference is not part of the ontology
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 ;
] ;
# Submodel inherits from 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 ;
] .