-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathtypes.ttl
434 lines (400 loc) · 11.3 KB
/
types.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
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
# imports: https://ontology.unifiedcyberontology.org/co/1.2.0
# imports: https://ontology.unifiedcyberontology.org/uco/core/1.2.0
# imports: https://ontology.unifiedcyberontology.org/uco/vocabulary/1.2.0
@prefix co: <http://purl.org/co/> .
@prefix core: <https://ontology.unifiedcyberontology.org/uco/core/> .
@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 types: <https://ontology.unifiedcyberontology.org/uco/types/> .
@prefix uco-co: <https://ontology.unifiedcyberontology.org/co/> .
@prefix vocabulary: <https://ontology.unifiedcyberontology.org/uco/vocabulary/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<https://ontology.unifiedcyberontology.org/uco/types>
a owl:Ontology ;
rdfs:label "uco-types"@en ;
owl:backwardCompatibleWith types:1.1.0 ;
owl:imports
uco-co:1.2.0 ,
core:1.2.0 ,
vocabulary:1.2.0
;
owl:priorVersion types:1.1.0 ;
owl:versionIRI types:1.2.0 ;
.
types:ControlledDictionary
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf types:Dictionary ;
rdfs:label "ControlledDictionary"@en ;
rdfs:comment "A controlled dictionary is a list of (term/key, value) pairs where each term/key exists no more than once and is constrained to an explicitly defined set of values."@en ;
sh:property [
sh:class types:ControlledDictionaryEntry ;
sh:path types:entry ;
] ;
sh:targetClass types:ControlledDictionary ;
.
types:ControlledDictionaryEntry
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf types:DictionaryEntry ;
rdfs:label "ControlledDictionaryEntry"@en ;
rdfs:comment "A controlled dictionary entry is a single (term/key, value) pair where the term/key is constrained to an explicitly defined set of values."@en ;
sh:targetClass types:ControlledDictionaryEntry ;
.
types:Dictionary
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf core:UcoInherentCharacterizationThing ;
rdfs:label "Dictionary"@en ;
rdfs:comment "A dictionary is list of (term/key, value) pairs with each term/key existing no more than once."@en ;
sh:property [
sh:class types:DictionaryEntry ;
sh:minCount "1"^^xsd:integer ;
sh:nodeKind sh:IRI ;
sh:path types:entry ;
] ;
sh:targetClass types:Dictionary ;
.
types:DictionaryEntry
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf core:UcoInherentCharacterizationThing ;
rdfs:label "DictionaryEntry"@en ;
rdfs:comment "A dictionary entry is a single (term/key, value) pair."@en ;
sh:property
[
sh:datatype xsd:string ;
sh:maxCount "1"^^xsd:integer ;
sh:minCount "1"^^xsd:integer ;
sh:nodeKind sh:Literal ;
sh:path types:key ;
] ,
[
sh:datatype xsd:string ;
sh:maxCount "1"^^xsd:integer ;
sh:minCount "1"^^xsd:integer ;
sh:nodeKind sh:Literal ;
sh:path types:value ;
]
;
sh:targetClass types:DictionaryEntry ;
.
types:Hash
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf core:UcoInherentCharacterizationThing ;
rdfs:label "Hash"@en ;
rdfs:comment "A hash is a grouping of characteristics unique to the result of applying a mathematical algorithm that maps data of arbitrary size to a bit string (the 'hash') and is a one-way function, that is, a function which is practically infeasible to invert. This is commonly used for integrity checking of data. [based on https://en.wikipedia.org/wiki/Cryptographic_hash_function]"@en ;
sh:property
[
sh:datatype xsd:hexBinary ;
sh:maxCount "1"^^xsd:integer ;
sh:minCount "1"^^xsd:integer ;
sh:nodeKind sh:Literal ;
sh:path types:hashValue ;
] ,
[
sh:datatype vocabulary:HashNameVocab ;
sh:message "Value is outside the default vocabulary HashNameVocab." ;
sh:path types:hashMethod ;
sh:severity sh:Info ;
] ,
[
sh:maxCount "1"^^xsd:integer ;
sh:minCount "1"^^xsd:integer ;
sh:nodeKind sh:Literal ;
sh:or (
[
sh:datatype vocabulary:HashNameVocab ;
]
[
sh:datatype xsd:string ;
]
) ;
sh:path types:hashMethod ;
] ,
[
sh:message "Value is not member of the vocabulary HashNameVocab." ;
sh:or (
[
sh:datatype vocabulary:HashNameVocab ;
sh:in (
"MD5"^^vocabulary:HashNameVocab
"MD6"^^vocabulary:HashNameVocab
"SHA1"^^vocabulary:HashNameVocab
"SHA224"^^vocabulary:HashNameVocab
"SHA256"^^vocabulary:HashNameVocab
"SHA3-224"^^vocabulary:HashNameVocab
"SHA3-256"^^vocabulary:HashNameVocab
"SHA3-384"^^vocabulary:HashNameVocab
"SHA3-512"^^vocabulary:HashNameVocab
"SHA384"^^vocabulary:HashNameVocab
"SHA512"^^vocabulary:HashNameVocab
"SSDEEP"^^vocabulary:HashNameVocab
) ;
]
[
sh:datatype xsd:string ;
]
) ;
sh:path types:hashMethod ;
]
;
sh:targetClass types:Hash ;
.
types:Identifier
a rdfs:Datatype ;
rdfs:comment "An identifier is a string conformant to the specified UUID-based format for UCO object identifiers."@en ;
.
types:NativeFormatString
a rdfs:Datatype ;
rdfs:comment "Specifies data in its native format of some external language. The data may be encoded in Base64 per [RFC4648]. Data encoded in Base64 must be denoted as such using the encoded property."@en ;
.
types:StructuredText
a rdfs:Datatype ;
rdfs:comment "Expresses string-based data in some information structuring format (e.g., HTML5)."@en ;
.
types:Thread
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf
co:Bag ,
core:UcoThing
;
rdfs:label "Thread"@en ;
rdfs:comment "A semi-ordered array of items, that can be present in multiple copies. Implemetation of a UCO Thread is similar to a Collections Ontology List, except a Thread may fork and merge - that is, one of its members may have two or more direct successors, and two or more direct predecessors."@en ;
owl:disjointWith co:List ;
sh:property [
sh:class types:ThreadItem ;
sh:path co:item ;
] ;
.
types:ThreadItem
a
owl:Class ,
sh:NodeShape
;
rdfs:subClassOf
co:Item ,
core:UcoThing
;
rdfs:label "ThreadItem"@en ;
rdfs:comment "A ThreadItem is a member of a thread."@en ;
owl:disjointWith co:ListItem ;
sh:property [
sh:class core:UcoObject ;
sh:path co:itemContent ;
] ;
.
types:entry
a owl:ObjectProperty ;
rdfs:label "entry"@en ;
rdfs:comment "A dictionary entry."@en ;
rdfs:range types:DictionaryEntry ;
.
types:hashMethod
a owl:DatatypeProperty ;
rdfs:label "hashMethod"@en ;
rdfs:comment "A particular cryptographic hashing method (e.g., MD5)."@en ;
rdfs:range [
a rdfs:Datatype ;
owl:unionOf (
vocabulary:HashNameVocab
xsd:string
) ;
] ;
.
types:hashValue
a owl:DatatypeProperty ;
rdfs:label "hashValue"@en ;
rdfs:comment "A cryptographic hash value."@en ;
rdfs:range xsd:hexBinary ;
.
types:key
a owl:DatatypeProperty ;
rdfs:label "key"@en ;
rdfs:comment "A key property of a single dictionary entry."@en ;
rdfs:range xsd:string ;
.
types:threadNextItem
a owl:ObjectProperty ;
rdfs:subPropertyOf types:threadSuccessor ;
rdfs:label "threadNextItem"@en ;
rdfs:comment "The link to a next item in a thread."@en ;
rdfs:seeAlso co:nextItem ;
.
types:threadNextItem-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadNextItem ;
sh:targetSubjectsOf types:threadNextItem ;
.
types:threadOriginItem
a owl:ObjectProperty ;
rdfs:subPropertyOf co:item ;
rdfs:label "threadOriginItem"@en ;
rdfs:comment "A link to an item of the thread known to have no predecessor."@en ;
rdfs:domain types:Thread ;
rdfs:range [
a owl:Class ;
owl:intersectionOf (
types:ThreadItem
[
a owl:Restriction ;
owl:onProperty types:threadPreviousItem ;
owl:cardinality "0"^^xsd:nonNegativeInteger ;
]
) ;
] ;
rdfs:seeAlso co:firstItem ;
.
types:threadOriginItem-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadOriginItem ;
sh:targetSubjectsOf types:threadOriginItem ;
.
types:threadOriginItem-subjects-threadPredecessor-shape
a sh:PropertyShape ;
sh:description "An origin item in a thread must not have a predecessor."@en ;
sh:maxCount "0"^^xsd:integer ;
sh:nodeKind sh:IRI ;
sh:path (
types:threadOriginItem
types:threadPredecessor
) ;
sh:targetSubjectsOf types:threadOriginItem ;
.
types:threadOriginItem-subjects-threadPreviousItem-shape
a sh:PropertyShape ;
sh:description "An origin item in a thread must not have a previous item."@en ;
sh:maxCount "0"^^xsd:integer ;
sh:nodeKind sh:IRI ;
sh:path (
types:threadOriginItem
types:threadPreviousItem
) ;
sh:targetSubjectsOf types:threadOriginItem ;
.
types:threadPredecessor
a
owl:ObjectProperty ,
owl:TransitiveProperty
;
rdfs:label "threadPredecessor"@en ;
rdfs:comment "The link to the preceding item in a thread."@en ;
rdfs:domain types:ThreadItem ;
rdfs:range types:ThreadItem ;
rdfs:seeAlso co:precededBy ;
owl:inverseOf types:threadSuccessor ;
.
types:threadPredecessor-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadPredecessor ;
sh:targetSubjectsOf types:threadPredecessor ;
.
types:threadPreviousItem
a owl:ObjectProperty ;
rdfs:subPropertyOf types:threadPredecessor ;
rdfs:label "threadPreviousItem"@en ;
rdfs:comment "A direct link to a previous item in a thread."@en ;
rdfs:seeAlso co:previousItem ;
owl:inverseOf types:threadNextItem ;
.
types:threadPreviousItem-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadPreviousItem ;
sh:targetSubjectsOf types:threadPreviousItem ;
.
types:threadSuccessor
a
owl:ObjectProperty ,
owl:TransitiveProperty
;
rdfs:label "threadSuccessor"@en ;
rdfs:comment "A link to a following item in a thread."@en ;
rdfs:domain types:ThreadItem ;
rdfs:range types:ThreadItem ;
rdfs:seeAlso co:followedBy ;
.
types:threadSuccessor-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadSuccessor ;
sh:targetSubjectsOf types:threadSuccessor ;
.
types:threadTerminalItem
a owl:ObjectProperty ;
rdfs:subPropertyOf co:item ;
rdfs:label "threadTerminalItem"@en ;
rdfs:comment "A link to an item of the thread known to have no successor."@en ;
rdfs:domain types:Thread ;
rdfs:range [
a owl:Class ;
owl:intersectionOf (
types:ThreadItem
[
a owl:Restriction ;
owl:onProperty types:threadNextItem ;
owl:cardinality "0"^^xsd:nonNegativeInteger ;
]
) ;
] ;
rdfs:seeAlso co:lastItem ;
.
types:threadTerminalItem-subjects-shape
a sh:PropertyShape ;
sh:class types:ThreadItem ;
sh:nodeKind sh:IRI ;
sh:path types:threadTerminalItem ;
sh:targetSubjectsOf types:threadTerminalItem ;
.
types:threadTerminalItem-subjects-threadNextItem-shape
a sh:PropertyShape ;
sh:description "A terminal item in a thread must not have a next item."@en ;
sh:maxCount "0"^^xsd:integer ;
sh:nodeKind sh:IRI ;
sh:path (
types:threadTerminalItem
types:threadNextItem
) ;
sh:targetSubjectsOf types:threadTerminalItem ;
.
types:threadTerminalItem-subjects-threadSuccessor-shape
a sh:PropertyShape ;
sh:description "A terminal item in a thread must not have a successor."@en ;
sh:maxCount "0"^^xsd:integer ;
sh:nodeKind sh:IRI ;
sh:path (
types:threadTerminalItem
types:threadSuccessor
) ;
sh:targetSubjectsOf types:threadTerminalItem ;
.
types:value
a owl:DatatypeProperty ;
rdfs:label "value"@en ;
rdfs:comment "A specific property value."@en ;
rdfs:range xsd:string ;
.