-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathobject-oriented.owl
360 lines (305 loc) · 15.8 KB
/
object-oriented.owl
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix hydra: <https://www.w3.org/ns/hydra/core#>.
@prefix void: <http://rdfs.org/ns/void#>.
@prefix vann: <http://purl.org/vocab/vann/>.
@prefix dct: <http://purl.org/dc/terms/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix sd: <http://www.w3.org/TR/sparql11-service-description/#>.
@prefix doap: <http://usefulinc.com/ns/doap#>.
@prefix oo: <https://w3id.org/lsd/vocabularies/object-oriented#>.
@prefix om: <https://w3id.org/lsd/vocabularies/object-mapping#>.
# ---------------------------------------- Metadata ----------------------------------------------
<https://w3id.org/lsd/vocabularies/object-oriented#>
a owl:Ontology;
vann:preferredNamespacePrefix "oo";
vann:preferredNamespaceUri "https://w3id.org/lsd/vocabularies/object-oriented#";
rdfs:label "Object-Oriented Components."@en;
rdfs:comment "RDF vocabulary for describing Object-Oriented Components."@en;
dct:title "Object-Oriented Components"@en;
dct:issued "2017-04-08"^^xsd:date;
dct:modified "2022-02-10"^^xsd:date;
dct:creator <https://rubensworks.net/#me>.
<https://rubensworks.net/#me> foaf:name "Ruben Taelman".
# ------------------------------------------ Classes --------------------------------------------
oo:Module a rdfs:Class;
rdfs:label "Module"@en;
owl:sameAs doap:Version;
rdfs:comment "A module can have several components"@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:Component a rdfs:Class;
rdfs:label "Component"@en;
rdfs:comment "A component is an instance or a class that can be instantiated based on parameters."@en;
rdfs:subClassOf rdfs:Class;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:Class a rdfs:Class;
rdfs:label "Class"@en;
rdfs:comment "A class that can be instantiated based on parameters. All subtypes of classes are Instances."@en;
rdfs:subClassOf oo:Component;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:AbstractClass a rdfs:Class;
rdfs:label "Abstract Class"@en;
rdfs:comment "An abstract class that can have subclasses that can be instantiated based on parameters."@en;
rdfs:subClassOf oo:Class;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:Instance a rdfs:Class;
rdfs:label "Instance"@en;
rdfs:comment "An instance is an instantiation of a class."@en;
rdfs:subClassOf oo:Component;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:Parameter a rdfs:Class;
rdfs:label "Parameter"@en;
rdfs:comment "Parameters are used to instantiate components."@en;
rdfs:subClassOf rdfs:Property, om:ObjectMapping;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:MemberField a rdfs:Class;
rdfs:label "Member Field"@en;
rdfs:comment "Field that is a member of a component."@en;
rdfs:subClassOf rdfs:Property;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:GenericTypeParameter a rdfs:Class;
rdfs:label "Generic Type Parameter"@en;
rdfs:comment "Generic type parameter on a component."@en;
rdfs:subClassOf rdfs:Property;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:DefaultScoped a rdfs:Class;
rdfs:label "Scoped defult value"@en;
rdfs:comment "A default value that only applies in a certain scope."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRange a rdfs:Class;
rdfs:label "Parameter Range"@en;
rdfs:comment "Represents the allowed value range of a parameter."@en;
rdfs:subClassOf rdfs:Class;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeUndefined a rdfs:Class;
rdfs:label "Undefined Parameter Range"@en;
rdfs:comment "A parameter range that accepts undefined values."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeWildcard a rdfs:Class;
rdfs:label "Wildcard Parameter Range"@en;
rdfs:comment "A parameter range that accepts all values."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeArray a rdfs:Class;
rdfs:label "Array Parameter Range"@en;
rdfs:comment "A parameter range that accepts an array of values."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeRest a rdfs:Class;
rdfs:label "Rest Parameter Range"@en;
rdfs:comment "A parameter range that represents the rest operation within a tuple range."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeKeyof a rdfs:Class;
rdfs:label "Key Of Parameter Range"@en;
rdfs:comment "A parameter range that accepts a key of a component."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeLiteral a rdfs:Class;
rdfs:label "Literal Parameter Range"@en;
rdfs:comment "A parameter range that accepts a literal value."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeUnion a rdfs:Class;
rdfs:label "Union Parameter Range"@en;
rdfs:comment "A parameter range that accepts the union of parameter ranges."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeIntersection a rdfs:Class;
rdfs:label "Intersection Parameter Range"@en;
rdfs:comment "A parameter range that accepts the intersection of parameter ranges."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeTuple a rdfs:Class;
rdfs:label "Tuple Parameter Range"@en;
rdfs:comment "A parameter range that accepts a tuple of parameter ranges."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeCollectEntries a rdfs:Class;
rdfs:label "Collect Entries Parameter Range"@en;
rdfs:comment "A parameter range that represents entry collection."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeGenericComponent a rdfs:Class;
rdfs:label "Generic Component Parameter Range"@en;
rdfs:comment "A parameter range that refers to a component with generic instantiation."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeGenericTypeReference a rdfs:Class;
rdfs:label "Generic Type Parameter Range"@en;
rdfs:comment "A parameter range that refers to a generic type."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:ParameterRangeIndexed a rdfs:Class;
rdfs:label "Indexed Parameter Range"@en;
rdfs:comment "A parameter range that refers to an indexed type."@en;
rdfs:subClassOf oo:ParameterRange;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:GenericComponentExtension a rdfs:Class;
rdfs:label "Generic Component Extension"@en;
rdfs:comment "An extension range for a component that refers to a generic component with generic type instantiations."@en;
rdfs:subClassOf rdfs:Class;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
# ---------------------------------------- Properties --------------------------------------------
oo:component a rdf:Property;
rdfs:label "has component"@en;
rdfs:comment "Indicates that the subject module contains the object component that can be instantiated."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Module;
rdfs:range oo:Component.
oo:parameter a rdf:Property;
rdfs:label "has parameter"@en;
rdfs:comment "The subject component has the object parameter that can be used in its configuration."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:subPropertyOf rdf:predicate;
rdfs:domain oo:Class;
rdfs:range oo:Parameter.
oo:memberField a rdf:Property;
rdfs:label "has member"@en;
rdfs:comment "The subject component has the object field as member."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:subPropertyOf rdf:predicate;
rdfs:domain oo:Class;
rdfs:range oo:MemberField.
oo:memberFieldName a rdf:Property;
rdfs:label "member field name"@en;
rdfs:comment "The name of the member field."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:MemberField;
rdfs:range xsd:string.
oo:genericTypeParameter a rdf:Property;
rdfs:label "has generic type parameter"@en;
rdfs:comment "The subject component has the object generic type parameter that can be used in its configuration."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:subPropertyOf rdf:predicate;
rdfs:domain oo:Class;
rdfs:range oo:GenericTypeParameter.
oo:arguments a rdf:Property;
rdfs:label "has arguments"@en;
rdfs:comment "The given function arguments must be mapped according to the given array mapping."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Class;
rdfs:range om:ArrayMapping.
oo:constructorArguments a rdf:Property;
rdfs:subPropertyOf oo:arguments;
rdfs:label "has constructor arguments"@en;
rdfs:comment "The parameter values of the given component's constructor must be mapped according to the given object mapper."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:required a rdf:Property;
rdfs:label "required"@en;
rdfs:comment "Indicates that this parameter must have a value, default is false."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter;
rdfs:range xsd:boolean.
oo:defaultValue a rdf:Property;
rdfs:label "default value"@en;
rdfs:comment "The default value of the parameter."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter.
oo:defaultScoped a rdf:Property;
rdfs:label "default scoped"@en;
rdfs:comment "A default scope of the parameter, which provides a default value in the given scope."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter;
rdfs:range oo:DefaultScoped.
oo:defaultScope a rdf:Property;
rdfs:label "default scope"@en;
rdfs:comment "The component scope of a default scope."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:DefaultScoped;
rdfs:range oo:Component.
oo:defaultScopedValue a rdf:Property;
rdfs:label "default scoped value"@en;
rdfs:comment "The default value of a parameter in this scope."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:DefaultScoped.
oo:uniqueValue a rdf:Property;
rdfs:label "default value"@en;
rdfs:comment "Indicate that the parameter can have at most one value."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter;
rdfs:range xsd:boolean.
oo:lazyValue a rdf:Property;
rdfs:label "lazy value"@en;
rdfs:comment "Indicate that the parameter values must be produced lazily."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter;
rdfs:range xsd:boolean.
oo:hasFixedValue a rdf:Property;
rdfs:label "has fixed value"@en;
rdfs:comment "The fixed value of the parameter."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Parameter.
oo:isUndefined a rdf:Property;
rdfs:label "is undefined"@en;
rdfs:comment "The fixed value of the parameter."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>.
oo:componentPath a rdf:Property;
rdfs:label "class path"@en;
rdfs:comment "The path to a component within a module."@en;
rdfs:comment "Example value: 'my.package.name.Class'"@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Component;
rdfs:range xsd:string.
oo:componentNoConstructor a rdf:Property;
rdfs:label "no constructor"@en;
rdfs:comment "The component indicated by the current path requires no constructor call."@en;
rdfs:comment "Defaults to false"@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:Component;
rdfs:range xsd:boolean.
oo:parameterRangeValue a rdf:Property;
rdfs:label "parameter range value"@en;
rdfs:comment "The value of a parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeArray, oo:ParameterRangeRest, oo:ParameterRangeKeyof, oo:ParameterRangeLiteral.
oo:parameterRangeElement a rdf:Property;
rdfs:label "parameter range element"@en;
rdfs:comment "An element of a parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeUnion, oo:ParameterRangeIntersection;
rdfs:range oo:ParameterRange.
oo:parameterRangeCollectEntriesParameter a rdf:Property;
rdfs:label "collect entries parameter"@en;
rdfs:comment "A parameter a collect entries parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeCollectEntries.
oo:genericTypeInstancesComponentScope a rdf:Property;
rdfs:label "generic component"@en;
rdfs:comment "A generic component of a generic component parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeGenericComponent;
rdfs:range oo:Component.
oo:genericTypeInstance a rdf:Property;
rdfs:label "generic type instance"@en;
rdfs:comment "Instantiation of a generic type."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeGenericComponent, oo:GenericComponentExtension;
rdfs:range oo:ParameterRange.
oo:parameterRangeGenericType a rdf:Property;
rdfs:label "generic type"@en;
rdfs:comment "Reference to a generic type parameter."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeGenericTypeReference;
rdfs:range oo:GenericTypeParameter.
oo:parameterRangeGenericBinding a rdf:Property;
rdfs:label "generic type binding"@en;
rdfs:comment "The binding of a generic type."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeGenericTypeReference;
rdfs:range oo:ParameterRange.
oo:parameterRangeIndexedObject a rdf:Property;
rdfs:label "indexed object"@en;
rdfs:comment "The object of an indexed parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeIndexed;
rdfs:range oo:ParameterRange.
oo:parameterRangeIndexedIndex a rdf:Property;
rdfs:label "indexed index"@en;
rdfs:comment "The index of an indexed parameter range."@en;
rdfs:isDefinedBy <https://w3id.org/lsd/vocabularies/object-oriented#>;
rdfs:domain oo:ParameterRangeIndexed;
rdfs:range oo:ParameterRange.