This repository was archived by the owner on Feb 12, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathautomotive-simulator.shacl.ttl
More file actions
149 lines (138 loc) · 5.44 KB
/
Copy pathautomotive-simulator.shacl.ttl
File metadata and controls
149 lines (138 loc) · 5.44 KB
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
@prefix automotive-simulator: <https://w3id.org/gaia-x4plcaad/ontologies/automotive-simulator/v2/> .
@prefix envited-x: <https://w3id.org/ascs-ev/envited-x/envited-x/v3/> .
@prefix manifest: <https://w3id.org/ascs-ev/envited-x/manifest/v5/> .
@prefix simulated-sensor: <https://w3id.org/gaia-x4plcaad/ontologies/simulated-sensor/v2/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# The Shapes Graph URI appends "/shapes" to the Ontology URI
<https://w3id.org/gaia-x4plcaad/ontologies/automotive-simulator/v2/shapes>
a owl:Ontology ;
# The Shapes Graph must import the Domain Ontology
owl:imports <https://w3id.org/gaia-x4plcaad/ontologies/automotive-simulator/v2> .
automotive-simulator:AutomotiveSimulatorShape a sh:NodeShape ;
sh:closed false ;
sh:targetClass automotive-simulator:AutomotiveSimulator ;
# 1) hasSoftwareResource
sh:property [
sh:path automotive-simulator:hasSoftwareResource ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:or (
[ sh:node envited-x:SoftwareResourceBaseShape ]
[ sh:and ( manifest:LinkShape envited-x:ExtendedLinkShape ) ]
) ;
sh:message "Each AutomotiveSimulator must have exactly one associated SoftwareResourceBase (either inline or a valid manifest:Link)."@en ;
] ;
# 2) hasDomainSpecification
sh:property [
sh:path automotive-simulator:hasDomainSpecification ;
sh:node automotive-simulator:DomainSpecificationShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Each AutomotiveSimulator must have one associated DomainSpecification with content and format."@en ;
] ;
# 3) hasManifest
sh:property [
sh:path automotive-simulator:hasManifest ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:or (
[ sh:and ( manifest:ManifestShape envited-x:ManifestShape ) ]
[ sh:node envited-x:ManifestLinkReferenceShape ]
) ;
sh:message "Each AutomotiveSimulator must have exactly one manifest."@en ;
] .
# DomainSpecification shape
automotive-simulator:DomainSpecificationShape a sh:NodeShape ;
sh:closed false ;
sh:property [
sh:path automotive-simulator:hasContent ;
sh:node automotive-simulator:ContentShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Each DomainSpecification must have one Content facet."@en ;
] ;
sh:property [
sh:path automotive-simulator:hasFormat ;
sh:node automotive-simulator:FormatShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Each DomainSpecification must have one Format facet."@en ;
] .
# Content shape — simulator-specific metadata
automotive-simulator:ContentShape a sh:NodeShape ;
sh:closed false ;
sh:property [
skos:example "CARLA" ;
sh:path automotive-simulator:simulatorMake ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:name "simulator make"@en ;
sh:order 0 ;
sh:description "Make/Type of automotive simulator."@en ;
] ;
sh:property [
skos:example "0.9.15" ;
sh:path automotive-simulator:softwareVersion ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:name "software version"@en ;
sh:order 1 ;
sh:description "Software version of the simulator."@en ;
] ;
sh:property [
skos:example "true" ;
sh:path automotive-simulator:sensorFailureFlag ;
sh:datatype xsd:boolean ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:name "sensor failure flag"@en ;
sh:order 2 ;
sh:description "If true, the simulator supports the simulation of sensor failures."@en ;
] ;
sh:property [
skos:example "true" ;
sh:path automotive-simulator:sensorAttackFlag ;
sh:datatype xsd:boolean ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:name "sensor attack flag"@en ;
sh:order 3 ;
sh:description "If true, the simulator supports the simulation of sensor attacks."@en ;
] ;
sh:property [
sh:node simulated-sensor:SimulatedSensorShape ;
skos:example "Radar" ;
sh:path simulated-sensor:simulatedSensor ;
sh:minCount 0 ;
sh:name "simulated sensor"@en ;
sh:order 4 ;
sh:description "Type and kinds of sensors that are natively included in the simulator."@en ;
] .
# Format shape — interface and scenario definitions
automotive-simulator:FormatShape a sh:NodeShape ;
sh:closed false ;
sh:property [
skos:example "ASAM OpenSCENARIO 1.x" ;
sh:path automotive-simulator:scenarioDefinition ;
sh:datatype xsd:string ;
sh:in ("ASAM OpenSCENARIO 1.x" "ASAM OpenSCENARIO 2.x" "proprietary" "scenic") ;
sh:minCount 0 ;
sh:name "scenario definition"@en ;
sh:order 0 ;
sh:description "Description language for defining driving scenarios supported by the simulator."@en ;
] ;
sh:property [
skos:example "TCP" ;
sh:path automotive-simulator:interface ;
sh:datatype xsd:string ;
sh:in ("PythonAPI" "TCP" "UDP" "ROS1" "ROS2") ;
sh:minCount 0 ;
sh:name "interface"@en ;
sh:order 1 ;
sh:description "Communication interface provided by the simulator."@en ;
] .