-
Notifications
You must be signed in to change notification settings - Fork 0
/
ontology.ttl
220 lines (190 loc) · 10.2 KB
/
ontology.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
208
209
210
211
212
213
214
215
216
217
218
219
220
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix opp: <https://w3id.org/openplannerteam/profile#> .
# About
<https://w3id.org/openplannerteam/profile>
a foaf:Document ;
foaf:primaryTopic opp: .
opp: a owl:Ontology ;
dct:description """This ontology describes the OpenPlanner profile data model.
It currently supports:
i) setting a default maximum speed,
ii) whether or not to use public transportation,
iii) describing which roads are accessible,
iv) describing which nodes are obstacles,
v) describing which roads are oneway streets,
vi) describing which roads should be given priority, and
vii) describing the maximum speed for a road."""@en ;
cc:license <https://creativecommons.org/licenses/by/4.0/> ;
rdfs:label "OpenPlanner Profile Vocabulary"@en ;
vann:preferredNamespacePrefix "opp" ;
vann:preferredNamespaceUri "https://w3id.org/openplannerteam/profile#" ;
dct:creator <https://biblio.ugent.be/person/802002413821> ;
dct:creator <https://pietercolpaert.be/#me> ;
dct:issued "2019-06-14"^^xsd:date ;
dct:modified "2019-06-18"^^xsd:date .
<https://biblio.ugent.be/person/802002413821>
a foaf:Person ;
foaf:name "Harm Delva" ;
foaf:mbox "harm.delva@ugent.be" .
# Element Classes
opp:Profile
a rdfs:Class , owl:Class ;
rdfs:label "Profile"@en ;
rdfs:comment """Combines sets of rules and some default values.""" ;
owl:disjointWith opp:Condition , opp:Rule , opp:Conclusion;
rdfs:isDefinedBy opp: .
opp:Rule
a rdfs:Class , owl:Class ;
rdfs:label "Rule"@en ;
rdfs:comment """The core element of a profile, it defines a condition that must be met to make a conclusion.
The condition may be empty, which means that the rule always applies.""" ;
owl:disjointWith opp:Condition , opp:Profile , opp:Conclusion ;
rdfs:isDefinedBy opp: .
opp:Condition
a rdfs:Class , owl:Class ;
rdfs:label "Condition"@en ;
rdfs:comment "Defines a condition that must be must for a rule to apply." ;
owl:disjointWith opp:Rule , opp:Profile , opp:Conclusion ;
rdfs:isDefinedBy opp: .
opp:Conclusion
a rdfs:Class , owl:Class ;
rdfs:label "Conclusion"@en ;
rdfs:comment "Defines what can be concluded if a rule matches." ;
owl:disjointWith opp:Rule , opp:Profile , opp:Condition ;
rdfs:isDefinedBy opp: .
# Object Properties
opp:match
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "Describes a condition to match."@en ;
rdfs:label "match"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Rule ;
rdfs:range opp:Condition .
opp:concludes
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "Defines what can be concluded if a rule matches."@en ;
rdfs:label "concludes"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Rule ;
rdfs:range opp:Conclusion .
opp:hasPredicate
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "Match things with this specific predicate (key)."@en ;
rdfs:label "hasPredicate"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Condition .
opp:hasObject
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "Match things with this specific object (value)."@en ;
rdfs:label "hasObject"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Condition .
opp:hasAccessRules
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "An ordered list of rules that determines whether or not a way is accessible. Only the first rule that matches will be used."@en ;
rdfs:label "hasAccessRules"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range opp:Rule .
opp:hasOnewayRules
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "An ordered list of rules that determines whether or not something is a oneway street. Only the first rule that matches will be used."@en ;
rdfs:label "hasOnewayRules"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range opp:Rule .
opp:hasSpeedRules
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "An ordered list of rules that determines the maximum speed on a street. Only the first rule that matches will be used."@en ;
rdfs:label "hasSpeedRules"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range opp:Rule .
opp:hasPriorityRules
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "An ordered list of rules that determines an additional multiplier that will be used to demote/promote certain roads. Only the first rule that matches will be used."@en ;
rdfs:label "hasPriorityRules"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range opp:Rule .
opp:hasObstacleRules
a owl:ObjectProperty , rdf:Property ;
rdfs:comment "An ordered list of rules that determines whether or not a node can be traversed. Only the first rule that matches will be used."@en ;
rdfs:label "hasObstacleRules"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range opp:Rule .
# Data properties
opp:hasOrder
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "When should this rule get tried? If multiple rules match, the one with the lowest order wins. A random one will get picked in case of ties."@en ;
rdfs:label "hasOrder"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Rule ;
rdfs:range xsd:double .
opp:hasMaxSpeed
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "How fast can you phyisically go, in km/h."@en ;
rdfs:label "hasMaxSpeed"@en ;
rdfs:isDefinedBy opp: ;
qudt:hasUnit unit:KM-PER-HR ;
rdfs:domain opp:Profile ;
rdfs:range xsd:double .
opp:usePublicTransport
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "Should public transportation be used."@en ;
rdfs:label "usePublicTransport"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Profile ;
rdfs:range xsd:boolean .
opp:hasAccess
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "Is a street accessible?"@en ;
rdfs:label "hasAccess"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:boolean .
opp:isOneway
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "Is it a oneway street?"@en ;
rdfs:label "isOneway"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:boolean .
opp:isReversed
a owl:DatatypeProperty , rdf:Property ;
rdfs:comment "If it is a oneway street, should the direction of the nodes be reversed?"@en ;
rdfs:label "isReversed"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:boolean .
opp:hasSpeed
a owl:DatatypeProperty , rdf:Property ;
rdfs:label "hasSpeed"@en ;
rdfs:comment "The legal speed limit on a road, in km/h."@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:double .
opp:hasPriority
a owl:DatatypeProperty , rdf:Property ;
rdfs:label "hasPriority"@en ;
rdfs:comment "A multiplier that is used to promote/demote roads. A value larger than 1 will promote a road."@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:double .
opp:isObstacle
a owl:DatatypeProperty , rdf:Property ;
rdfs:label "isObstacle"@en ;
rdfs:comment "Is a node an obstacle?"@en ;
rdfs:isDefinedBy opp: ;
rdfs:domain opp:Conclusion ;
rdfs:range xsd:boolean .