forked from mthh/covikoa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvoc-derivation.ttl
388 lines (300 loc) · 19.3 KB
/
voc-derivation.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
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
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
@prefix : <http://lig-tdcge.imag.fr/steamer/covikoa/derivation#> .
@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 skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix term: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix gviz: <http://lig-tdcge.imag.fr/steamer/covikoa/geoviz#> .
@prefix symb: <https://gis.lu.se/ont/data_portrayal/symbol#> .
@prefix symblzr: <https://gis.lu.se/ont/data_portrayal/symbolizer#> .
@prefix scale: <https://gis.lu.se/ont/visualisation_scale#> .
@prefix ion: <http://lig-tdcge.imag.fr/steamer/covikoa/interaction#> .
@base <http://lig-tdcge.imag.fr/steamer/covikoa/derivation#> .
<http://lig-tdcge.imag.fr/steamer/covikoa/derivation> a owl:Ontology ;
term:creator "Matthieu Viry" ;
term:license "http://creativecommons.org/licenses/by-nc-sa/4.0/"^^term:URI ;
term:issued "2020-09-30"^^xsd:date ;
owl:versionInfo "0.2.0" ;
vann:preferredNamespacePrefix "cvkd" ;
vann:preferredNamespaceUri "http://lig-tdcge.imag.fr/steamer/covikoa/derivation#"^^xsd:string ;
rdfs:comment """ The CoViKoa-derivation ontology is used to describe how a geovisualisation should be constructed from an existing model (in a specification document, called the Derivation Model, written in RDF)."""@en .
#################################################################
# Annotation properties
#################################################################
### http://purl.org/dc/terms/creator
<http://purl.org/dc/terms/creator> rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/issued
<http://purl.org/dc/terms/issued> rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/license
<http://purl.org/dc/terms/license> rdf:type owl:AnnotationProperty .
### http://purl.org/vocab/vann/preferredNamespacePrefix
<http://purl.org/vocab/vann/preferredNamespacePrefix> rdf:type owl:AnnotationProperty .
### http://purl.org/vocab/vann/preferredNamespaceUri
<http://purl.org/vocab/vann/preferredNamespaceUri> rdf:type owl:AnnotationProperty .
:pathFromGVA a owl:AnnotationProperty ;
rdfs:comment """
This property is intended to be used when writing the derivation model
(on new classes that subclass gviz:GeoVisualIntermediateRepresentation).
It describes, using a SHACL PredicatePath, SequencePath or AlternativePath (see https://www.w3.org/TR/shacl/#property-paths)
the path between the individuals represented by the class on which its used
and the entrypoint concept/individual given when defining the GeoVisualApplication."""@en .
:represents a owl:AnnotationProperty ;
rdfs:label "Represents"@en , "Représente"@fr ;
rdfs:comment """
This annotation property is used, when writing the derivation model,
to specify that a subclass of gviz:GeoVisualIntermediateRepresentation
or a subclass of gviz:GeoVisualApplication represents a given concept
of the targeted Semantic Data Model."""@en .
#################################################################
# Classes
#################################################################
:EnrichmentRule a owl:Class ;
rdfs:subClassOf sh:NodeShape , prov:SoftwareAgent ;
rdfs:label "Enrichment Rule"@en, "Regle d'enrichissement"@fr ;
rdfs:comment """
Describes a SHACL-AF rule for generating new triplets that can be executed for each change made to the Intermediate Representations
of the Semantic Data Model.
This kind of rule is not written by the user but instances of its subclasses (DefaultEnrichmentRule and ProblemSpecificEnrichmentRule)
are generated by the system, from the Derivation Model."""@en .
:DefaultEnrichmentRule a owl:Class ;
rdfs:subClassOf :EnrichmentRule ;
rdfs:label "Default Enrichment Rule"@en, "Regle d'enrichissement par defaut"@fr .
:ProblemSpecificEnrichmentRule a owl:Class ;
rdfs:subClassOf :EnrichmentRule ;
rdfs:label "Problem Specific Enrichment Rule"@en, "Regle d'enrichissement relative e une problematique particuliere"@fr .
:DerivationRule a owl:Class ;
rdfs:subClassOf sh:NodeShape , prov:SoftwareAgent ;
rdfs:label "Derivation Rule"@en, "Regle de derivation"@fr ;
rdfs:comment """
Describes a SHACL-AF rule allowing to derive, from the Semantic Data Model and its Derivation Model,
the Intermediate Representations of the concepts mobilized in the Semantic Data Model.
This rule is not written by the user but generated by the system, from the Derivation Model."""@en .
:DataIntegrationRule a owl:Class ;
rdfs:subClassOf sh:NodeShape , prov:SoftwareAgent ;
rdfs:label "Data Integration Rule"@en, "Regle d'integration de donnees"@fr ;
rdfs:comment """
Describe a sh:NodeShape containing a sh:Rule (from SHACL-AF) allowing to
integrate new individuals, for example upon a federated SPARQL query."""@en .
:SymbolizerCreationRule a owl:Class ;
rdfs:subClassOf sh:NodeShape , prov:SoftwareAgent ;
rdfs:label "Symbolizer Creation Rule"@en, "Regle de création de symboliseur"@fr ;
rdfs:comment """
Describe a sh:NodeShape containing a sh:Rule (from SHACL-AF) allowing to
create Symbolizers derived from TemplateSymbolizers and customised according to a value
read from the individuals and possibly a formula
(useful for making PointSymbolizer proportional to a value or for creating TextSymbolizer for labels)."""@en .
:RuleExecution a owl:Class ;
rdfs:subClassOf prov:Activity ;
rdfs:label "RuleExecution"@en ;
rdfs:comment """The activity, conducted by the DerivationRules and by the EnrichmentRules leading
respectively to the derivation of intermediate representations and to the suggestion of portrayals."""@en .
:SPARQLFilter a owl:Class ;
rdfs:label "SPARQL Filter"@en, "Filtre SPARQL"@fr ;
rdfs:comment """
Describe a SPARQL filter, which has a name (rdfs:label) and a value (rdf:value),
whose value is a SPARQL query used to pull some interesting individuals from the targeted semantic data model.
This property is intended to be used when writing the Derivation Model (on new classes that subclass gviz:GeoVisualIntermediateRepresentation).
The query contained in the value (rdf:value) of this SPARQLFilter is expected to be a SELECT query returning distinct individuals,
bound to the '?somethingRepresentable' variable name.
Additional prefixes used in the query can be defined when defining the Derivation Model so they will be injected each time a SPARQLFilter
is used during the rule generation.
"""@en .
:PropertyConstraint a owl:Class ;
rdfs:label "Property Constraint"@en, "Contrainte sur une propriété"@fr ;
rdfs:comment """Describes a Property Constraint, qualified by some ..."""@en .
:SpecialMatchingValue a owl:Class ;
rdfs:label "Special Matching Value"@en , "Valeur de correspondance spéciale"@fr ;
rdfs:comment """Special value to be used as the target of a PropertyConstraint."""@en .
:absentProperty a :SpecialMatchingValue ;
rdfs:label "Absent Property"@en , "Propriété Absente"@fr ;
rdfs:comment """Special value to be used as the target of a PropertyConstraint, meaning that the target property is not used (ie absent) on the individuals to be selected."""@en .
:presentProperty a :SpecialMatchingValue ;
rdfs:label "Present Property"@en , "Propriété présente"@fr ;
rdfs:comment """Special value to be used as the target of a PropertyConstraint, meaning that the target property is used (ie present) on the individuals to be selected"""@en .
:SpatialConstraint a owl:Class ;
rdfs:label "Spatial Constraint"@en , "Contrainte spatiale"@fr ;
rdfs:comment """TODO"""@en .
:CustomisableGraphicValue a owl:Class ;
rdfs:label "Customisable Graphic Value"@en , "Valeur Graphique Personnalisable"@fr ;
rdfs:comment """Allows the description of how to customise one or more value of a TemplateSymbolizer."""@en .
:TransformOperation a owl:Class ;
rdfs:label "Transform Operation"@en , "Opération de transformation"@fr ;
rdfs:comment """TODO"""@en .
:CoViKoaGeneration a owl:Class ;
rdfs:subClassOf prov:Generation ;
rdfs:label "CoViKoaGeneration"@en ;
rdfs:comment """
This class is only used internally by CoViKoa (see org/me/CoViKoa/CoViKoaHandler.java)
and should not be used directly when writing the Derivation Model."""@en .
:PrefixToInject a owl:Class ;
rdfs:comment """
This class is only used internally by CoViKoa (individual of this type is created in the file org/me/CoViKoa/RulesGenerator.java)
to store the prefix to inject in the rule containing a SPARQLFilter.
It should not be used directly when writing the Derivation Model."""@en .
:RuleExecutionMarker a owl:Class ;
rdfs:comment """
This class is only used internally by CoViKoa (see org/me/CoViKoa/CoViKoaHandler.java)
and should not be used directly when writing the Derivation Model."""@en .
### http://www.w3.org/ns/prov#Activity
<http://www.w3.org/ns/prov#Activity> rdf:type owl:Class .
### http://www.w3.org/ns/prov#Generation
<http://www.w3.org/ns/prov#Generation> rdf:type owl:Class .
### http://www.w3.org/ns/prov#SoftwareAgent
<http://www.w3.org/ns/prov#SoftwareAgent> rdf:type owl:Class .
### https://gis.lu.se/ont/data_portrayal/symbol#Symbol
<https://gis.lu.se/ont/data_portrayal/symbol#Symbol> rdf:type owl:Class .
### https://gis.lu.se/ont/data_portrayal/symbolizer#Symbolizer
<https://gis.lu.se/ont/data_portrayal/symbolizer#Symbolizer> rdf:type owl:Class .
### https://gis.lu.se/ont/visualisation_scale#Scale
<https://gis.lu.se/ont/visualisation_scale#Scale> rdf:type owl:Class .
#################################################################
# Object Properties
#################################################################
:hasEnrichmentRule a owl:ObjectProperty ;
rdfs:label "has Enrichment Rule"@en, "a Regle d'Enrichissement"@fr ;
rdfs:range :EnrichmentRule .
:hasDerivationRule a owl:ObjectProperty ;
rdfs:label "has Derivation Rule"@en, "a Regle de Derivation"@fr ;
rdfs:range :DerivationRule .
:hasDataIntegrationRule a owl:ObjectProperty ;
rdfs:label "has Data Integration Rule"@en, "a Regle d'integration de donnees"@fr ;
rdfs:range :DataIntegrationRule ;
rdfs:comment """
This is how we define a DataIntegrationRule on a subclass of gviz:GeoVisualIntermediateRepresentation in the Derivation Model."""@en .
:propertyPath a owl:ObjectProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ;
rdfs:comment """
Describes the property or the list of properties allowing access to the object to be compared for the PropertyConstraint in question.
"""@en .
:hasSPARQLFilter a owl:ObjectProperty , owl:FunctionalProperty ;
rdfs:domain gviz:Portrayal ;
rdfs:range :SPARQLFilter ;
rdfs:comment """
Describes a SPARQLFilter on a gviz:Portrayal in the Derivation Model."""@en .
:hasDefaultExtent a owl:ObjectProperty , owl:FunctionalProperty ;
rdfs:domain gviz:GeoVisualComponent ;
rdfs:comment """
Allows to describe the default extent of a gviz:GeoVisualComponent by referencing the concept from the SDM from
which it must use the geometry (if many individuals are encountered it will use the total extent of all the individuals).
This property is intended to be used when writing the derivation model."""@en .
:hasTransformOperation a owl:ObjectProperty , owl:FunctionalProperty ;
rdfs:domain gviz:Portrayal ;
rdfs:range :TransformOperation ;
rdfs:comment """
Describes an operation that have to be applied to the geometry of the Feature
to which a PortrayalRule will be applied in order to produce a new geometry
(so that it is this new geometry that is used in the portrayal in question).
The literal representation of the geometry in question is already bound to the variable `?thisGeometry`.
This property is intended to be used when writing the Derivation Model
(on individuals of type gviz:Portrayal or of type gviz:PortrayalRule).
"""@en .
:hasPropertyConstraint a owl:ObjectProperty ;
rdfs:domain gviz:PortrayalRule ;
rdfs:range :PropertyConstraint .
:hasSpatialConstraint a owl:ObjectProperty ;
rdfs:domain gviz:PortrayalRule ;
rdfs:range :SpatialConstraint .
:hasPredicate a owl:ObjectProperty ;
rdfs:domain :SpatialConstraint .
:denotesGVR a owl:ObjectProperty ;
rdfs:domain gviz:Portrayal .
#################################################################
# Data Properties
#################################################################
:valueIsLessThan a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ;
rdfs:range [ a rdfs:Datatype ;
owl:unionOf (xsd:integer xsd:float xsd:decimal) ;
] .
:valueIsLessThanOrEqualTo a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ;
rdfs:range [ a rdfs:Datatype ;
owl:unionOf (xsd:integer xsd:float xsd:decimal) ;
] .
:valueIsGreaterThanOrEqualTo a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ;
rdfs:range [ a rdfs:Datatype ;
owl:unionOf (xsd:integer xsd:float xsd:decimal) ;
] .
:valueIsGreaterThan a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ;
rdfs:range [ a rdfs:Datatype ;
owl:unionOf (xsd:integer xsd:float xsd:decimal) ;
] .
:valueOrObjectIsNotEqualTo a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint ; .
# <https://schema.org/rangeIncludes> [ a rdfs:Class ; # To keep the information without making inference based on this
# owl:unionOf (rdfs:Literal owl:Thing rdfs:Resource) ;
# ] .
:valueOrObjectIsEqualTo a rdf:Property , owl:FunctionalProperty ;
rdfs:comment """
Describes the target value or object (either by the IRI of a resource, by a literal value or by using absentProperty)
to be tester on a propertyPath defined in a PropertyConstraint."""@en ;
rdfs:domain :PropertyConstraint ; .
# <https://schema.org/rangeIncludes> [ a rdfs:Class ; # To keep the information without making inference based on this
# owl:unionOf (:SpecialMatchingValue rdfs:Literal owl:Thing rdfs:Resource) ;
# ] .
:valueIsLike a owl:DatatypeProperty . # TODO
:objectOfType a rdf:Property , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint .
:objectNotOfType a rdf:Property , owl:FunctionalProperty ;
rdfs:domain :PropertyConstraint .
:multipleGeometryType a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:label "multiple geometry type" ;
rdfs:domain gviz:Portrayal ;
rdfs:range xsd:boolean ;
rdfs:comment """
Used to state that the PortrayalRule of a Portrayal
is used to depict features for which the type of geometry is not known (they can be point, line or polygon)
and that the default symbolizer for the geometry type have to be used
(so a (Multi)Point will get the PointSymbolizer, a (Multi)Line the LineSymbolizer, etc.).
This is useful when the data of a concept can be of several geometric types and we don't want to write several PortrayalRules
but only provide the appropriate (Point|Line|Polygon)Symbolizers."""@en .
:preludeBinding a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain [ a owl:Class ; owl:unionOf (:SpatialConstraint :TransformOperation )] ;
rdfs:range xsd:string ;
rdfs:comment """
Allows to bind a value of interest to a variable to be used later in the :SpatialConstraint,
likely to select the literal value of the geometry of a specific individual to be used in the transformation.
This property is intended to be used when writing the Derivation Model (on individuals of type gviz:Portrayal).
"""@en .
:value a owl:DatatypeProperty ;
rdfs:comment """
Allows to describe a literal value to be used :
- when using the function expressions syntax expected to define transformOperations.
- when declaring the second argument of a SpatialConstraint.
Typically this allow to pass a constant value as parameter to the function
such as `"POLYGON ((...))"^^geo:wktLiteral`.
This property is intended to be used when writing the derivation model."""@en .
:variable a owl:DatatypeProperty ;
rdfs:range xsd:string ;
rdfs:comment """
Allows to define a variable name to be used :
- when using the function expressions syntax expected to define transformOperations.
- when declaring the second argument of a SpatialConstraint.
Typically this allow to pass either `"?thisGeometry" (because it is bound to the
geometry of the individual we speak about) or another variable name
previously bound using `cvkd:preludeBindings`.
This property is intended to be used when writing the derivation model."""@en .
:valueOnProperty a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :CustomisableGraphicValue ;
# rdfs:range rdf:Property ; # <- TODO create an union to describe property paths and reuse it in due place
rdfs:comment """This is the property on which to read the value to be used."""@en .
:formula a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain :CustomisableGraphicValue ;
rdfs:range xsd:string ;
rdfs:comment """This is a formula that can be used to transform the value read."""@en . # TODO: say more about the syntax of the said formula
:or a rdf:Property . # TODO : comment + range & domain ?
:and a rdf:Property . # TODO : comment + range & domain ?
:TableRule a owl:Class .
:columnName a owl:DatatypeProperty .
:cellPropertyPath a rdf:Property .
:hasTableRule a owl:ObjectProperty ;
rdfs:domain gviz:Portrayal ;
rdfs:range :TableRule .