@nahisaho/musubix-sdd-ontology 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/index.d.ts +14 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +21 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/loader/index.d.ts +6 -0
  6. package/dist/loader/index.d.ts.map +1 -0
  7. package/dist/loader/index.js +6 -0
  8. package/dist/loader/index.js.map +1 -0
  9. package/dist/loader/ontology-loader.d.ts +38 -0
  10. package/dist/loader/ontology-loader.d.ts.map +1 -0
  11. package/dist/loader/ontology-loader.js +87 -0
  12. package/dist/loader/ontology-loader.js.map +1 -0
  13. package/dist/modules/c4.d.ts +32 -0
  14. package/dist/modules/c4.d.ts.map +1 -0
  15. package/dist/modules/c4.js +52 -0
  16. package/dist/modules/c4.js.map +1 -0
  17. package/dist/modules/core.d.ts +24 -0
  18. package/dist/modules/core.d.ts.map +1 -0
  19. package/dist/modules/core.js +33 -0
  20. package/dist/modules/core.js.map +1 -0
  21. package/dist/modules/ears.d.ts +28 -0
  22. package/dist/modules/ears.d.ts.map +1 -0
  23. package/dist/modules/ears.js +93 -0
  24. package/dist/modules/ears.js.map +1 -0
  25. package/dist/modules/traceability.d.ts +32 -0
  26. package/dist/modules/traceability.d.ts.map +1 -0
  27. package/dist/modules/traceability.js +58 -0
  28. package/dist/modules/traceability.js.map +1 -0
  29. package/dist/types.d.ts +106 -0
  30. package/dist/types.d.ts.map +1 -0
  31. package/dist/types.js +6 -0
  32. package/dist/types.js.map +1 -0
  33. package/dist/validator/index.d.ts +6 -0
  34. package/dist/validator/index.d.ts.map +1 -0
  35. package/dist/validator/index.js +6 -0
  36. package/dist/validator/index.js.map +1 -0
  37. package/dist/validator/ontology-validator.d.ts +23 -0
  38. package/dist/validator/ontology-validator.d.ts.map +1 -0
  39. package/dist/validator/ontology-validator.js +120 -0
  40. package/dist/validator/ontology-validator.js.map +1 -0
  41. package/package.json +50 -0
  42. package/ttl/sdd-core.ttl +493 -0
@@ -0,0 +1,493 @@
1
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
2
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
3
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
4
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
5
+ @prefix sdd: <https://musubix.dev/ontology/sdd#> .
6
+ @prefix ears: <https://musubix.dev/ontology/ears#> .
7
+ @prefix c4: <https://musubix.dev/ontology/c4#> .
8
+ @prefix trace: <https://musubix.dev/ontology/trace#> .
9
+ @prefix pattern: <https://musubix.dev/ontology/pattern#> .
10
+
11
+ # =============================================================================
12
+ # MUSUBIX SDD Core Ontology
13
+ # Version: 1.0.0
14
+ # Traceability: TSK-SDD-ONTO-001, REQ-SDD-ONTO-001
15
+ # =============================================================================
16
+
17
+ # -----------------------------------------------------------------------------
18
+ # Ontology Declaration
19
+ # -----------------------------------------------------------------------------
20
+
21
+ sdd: a owl:Ontology ;
22
+ rdfs:label "MUSUBIX SDD Core Ontology"@en ;
23
+ rdfs:comment "Core ontology for Specification-Driven Development methodology"@en ;
24
+ owl:versionInfo "1.0.0" ;
25
+ rdfs:seeAlso <https://github.com/nahisaho/MUSUBIX> .
26
+
27
+ # =============================================================================
28
+ # Core Classes
29
+ # =============================================================================
30
+
31
+ # -----------------------------------------------------------------------------
32
+ # Artifact - Base class for all SDD artifacts
33
+ # -----------------------------------------------------------------------------
34
+
35
+ sdd:Artifact a owl:Class ;
36
+ rdfs:label "Artifact"@en ;
37
+ rdfs:comment "Base class for all SDD development artifacts"@en .
38
+
39
+ sdd:Requirement a owl:Class ;
40
+ rdfs:subClassOf sdd:Artifact ;
41
+ rdfs:label "Requirement"@en ;
42
+ rdfs:comment "A formal requirement in EARS format"@en .
43
+
44
+ sdd:Design a owl:Class ;
45
+ rdfs:subClassOf sdd:Artifact ;
46
+ rdfs:label "Design"@en ;
47
+ rdfs:comment "A C4 model design document"@en .
48
+
49
+ sdd:Task a owl:Class ;
50
+ rdfs:subClassOf sdd:Artifact ;
51
+ rdfs:label "Task"@en ;
52
+ rdfs:comment "An implementation task derived from design"@en .
53
+
54
+ sdd:Code a owl:Class ;
55
+ rdfs:subClassOf sdd:Artifact ;
56
+ rdfs:label "Code"@en ;
57
+ rdfs:comment "Source code implementing a design"@en .
58
+
59
+ sdd:Test a owl:Class ;
60
+ rdfs:subClassOf sdd:Artifact ;
61
+ rdfs:label "Test"@en ;
62
+ rdfs:comment "Test code verifying requirements"@en .
63
+
64
+ # -----------------------------------------------------------------------------
65
+ # Constitution - 9 Constitutional Articles
66
+ # -----------------------------------------------------------------------------
67
+
68
+ sdd:ConstitutionalArticle a owl:Class ;
69
+ rdfs:label "Constitutional Article"@en ;
70
+ rdfs:comment "One of the 9 constitutional articles governing MUSUBIX development"@en .
71
+
72
+ sdd:article1_LibraryFirst a sdd:ConstitutionalArticle ;
73
+ rdfs:label "Article I: Library-First"@en ;
74
+ rdfs:comment "All functionality starts as independent libraries"@en ;
75
+ sdd:articleNumber "1"^^xsd:integer .
76
+
77
+ sdd:article2_CLIInterface a sdd:ConstitutionalArticle ;
78
+ rdfs:label "Article II: CLI Interface"@en ;
79
+ rdfs:comment "All libraries must expose CLI interfaces"@en ;
80
+ sdd:articleNumber "2"^^xsd:integer .
81
+
82
+ sdd:article3_TestFirst a sdd:ConstitutionalArticle ;
83
+ rdfs:label "Article III: Test-First"@en ;
84
+ rdfs:comment "Red-Green-Blue test cycle mandatory"@en ;
85
+ sdd:articleNumber "3"^^xsd:integer .
86
+
87
+ sdd:article4_EARSFormat a sdd:ConstitutionalArticle ;
88
+ rdfs:label "Article IV: EARS Format"@en ;
89
+ rdfs:comment "Requirements must use EARS format"@en ;
90
+ sdd:articleNumber "4"^^xsd:integer .
91
+
92
+ sdd:article5_Traceability a sdd:ConstitutionalArticle ;
93
+ rdfs:label "Article V: Traceability"@en ;
94
+ rdfs:comment "100% traceability from requirements to tests"@en ;
95
+ sdd:articleNumber "5"^^xsd:integer .
96
+
97
+ sdd:article6_ProjectMemory a sdd:ConstitutionalArticle ;
98
+ rdfs:label "Article VI: Project Memory"@en ;
99
+ rdfs:comment "Consult steering/ before decisions"@en ;
100
+ sdd:articleNumber "6"^^xsd:integer .
101
+
102
+ sdd:article7_DesignPatterns a sdd:ConstitutionalArticle ;
103
+ rdfs:label "Article VII: Design Patterns"@en ;
104
+ rdfs:comment "Document all design pattern applications"@en ;
105
+ sdd:articleNumber "7"^^xsd:integer .
106
+
107
+ sdd:article8_DecisionRecords a sdd:ConstitutionalArticle ;
108
+ rdfs:label "Article VIII: Decision Records"@en ;
109
+ rdfs:comment "All decisions documented in ADRs"@en ;
110
+ sdd:articleNumber "8"^^xsd:integer .
111
+
112
+ sdd:article9_QualityGates a sdd:ConstitutionalArticle ;
113
+ rdfs:label "Article IX: Quality Gates"@en ;
114
+ rdfs:comment "Quality verification before phase transitions"@en ;
115
+ sdd:articleNumber "9"^^xsd:integer .
116
+
117
+ # =============================================================================
118
+ # EARS Pattern Classes (ears:)
119
+ # =============================================================================
120
+
121
+ ears:EARSRequirement a owl:Class ;
122
+ rdfs:subClassOf sdd:Requirement ;
123
+ rdfs:label "EARS Requirement"@en ;
124
+ rdfs:comment "A requirement following EARS pattern"@en .
125
+
126
+ ears:UbiquitousRequirement a owl:Class ;
127
+ rdfs:subClassOf ears:EARSRequirement ;
128
+ rdfs:label "Ubiquitous Requirement"@en ;
129
+ rdfs:comment "THE [system] SHALL [requirement]"@en ;
130
+ ears:pattern "THE [system] SHALL [requirement]" .
131
+
132
+ ears:EventDrivenRequirement a owl:Class ;
133
+ rdfs:subClassOf ears:EARSRequirement ;
134
+ rdfs:label "Event-Driven Requirement"@en ;
135
+ rdfs:comment "WHEN [event], THE [system] SHALL [response]"@en ;
136
+ ears:pattern "WHEN [event], THE [system] SHALL [response]" .
137
+
138
+ ears:StateDrivenRequirement a owl:Class ;
139
+ rdfs:subClassOf ears:EARSRequirement ;
140
+ rdfs:label "State-Driven Requirement"@en ;
141
+ rdfs:comment "WHILE [state], THE [system] SHALL [response]"@en ;
142
+ ears:pattern "WHILE [state], THE [system] SHALL [response]" .
143
+
144
+ ears:UnwantedRequirement a owl:Class ;
145
+ rdfs:subClassOf ears:EARSRequirement ;
146
+ rdfs:label "Unwanted Requirement"@en ;
147
+ rdfs:comment "THE [system] SHALL NOT [behavior]"@en ;
148
+ ears:pattern "THE [system] SHALL NOT [behavior]" .
149
+
150
+ ears:OptionalRequirement a owl:Class ;
151
+ rdfs:subClassOf ears:EARSRequirement ;
152
+ rdfs:label "Optional Requirement"@en ;
153
+ rdfs:comment "IF [condition], THEN THE [system] SHALL [response]"@en ;
154
+ ears:pattern "IF [condition], THEN THE [system] SHALL [response]" .
155
+
156
+ # =============================================================================
157
+ # C4 Model Classes (c4:)
158
+ # =============================================================================
159
+
160
+ c4:C4Element a owl:Class ;
161
+ rdfs:subClassOf sdd:Design ;
162
+ rdfs:label "C4 Element"@en ;
163
+ rdfs:comment "Base class for C4 model elements"@en .
164
+
165
+ c4:Context a owl:Class ;
166
+ rdfs:subClassOf c4:C4Element ;
167
+ rdfs:label "Context"@en ;
168
+ rdfs:comment "C4 Level 1: System Context diagram element"@en ;
169
+ c4:level "1"^^xsd:integer .
170
+
171
+ c4:Container a owl:Class ;
172
+ rdfs:subClassOf c4:C4Element ;
173
+ rdfs:label "Container"@en ;
174
+ rdfs:comment "C4 Level 2: Container diagram element"@en ;
175
+ c4:level "2"^^xsd:integer .
176
+
177
+ c4:Component a owl:Class ;
178
+ rdfs:subClassOf c4:C4Element ;
179
+ rdfs:label "Component"@en ;
180
+ rdfs:comment "C4 Level 3: Component diagram element"@en ;
181
+ c4:level "3"^^xsd:integer .
182
+
183
+ c4:Code a owl:Class ;
184
+ rdfs:subClassOf c4:C4Element ;
185
+ rdfs:label "Code"@en ;
186
+ rdfs:comment "C4 Level 4: Code diagram element"@en ;
187
+ c4:level "4"^^xsd:integer .
188
+
189
+ c4:Person a owl:Class ;
190
+ rdfs:subClassOf c4:C4Element ;
191
+ rdfs:label "Person"@en ;
192
+ rdfs:comment "A human user or actor"@en .
193
+
194
+ c4:ExternalSystem a owl:Class ;
195
+ rdfs:subClassOf c4:C4Element ;
196
+ rdfs:label "External System"@en ;
197
+ rdfs:comment "An external system outside the boundary"@en .
198
+
199
+ c4:Relationship a owl:Class ;
200
+ rdfs:label "Relationship"@en ;
201
+ rdfs:comment "A relationship between C4 elements"@en .
202
+
203
+ # =============================================================================
204
+ # Traceability Classes (trace:)
205
+ # =============================================================================
206
+
207
+ trace:TraceLink a owl:Class ;
208
+ rdfs:label "Trace Link"@en ;
209
+ rdfs:comment "A traceability link between artifacts"@en .
210
+
211
+ trace:DerivedFrom a owl:Class ;
212
+ rdfs:subClassOf trace:TraceLink ;
213
+ rdfs:label "Derived From"@en ;
214
+ rdfs:comment "Target is derived from source"@en .
215
+
216
+ trace:Implements a owl:Class ;
217
+ rdfs:subClassOf trace:TraceLink ;
218
+ rdfs:label "Implements"@en ;
219
+ rdfs:comment "Target implements source requirement"@en .
220
+
221
+ trace:Verifies a owl:Class ;
222
+ rdfs:subClassOf trace:TraceLink ;
223
+ rdfs:label "Verifies"@en ;
224
+ rdfs:comment "Target test verifies source requirement"@en .
225
+
226
+ trace:RefinesTo a owl:Class ;
227
+ rdfs:subClassOf trace:TraceLink ;
228
+ rdfs:label "Refines To"@en ;
229
+ rdfs:comment "Source is refined into target"@en .
230
+
231
+ # =============================================================================
232
+ # Pattern Classes (pattern:)
233
+ # =============================================================================
234
+
235
+ pattern:Pattern a owl:Class ;
236
+ rdfs:label "Pattern"@en ;
237
+ rdfs:comment "A learned or defined code pattern"@en .
238
+
239
+ pattern:DesignPattern a owl:Class ;
240
+ rdfs:subClassOf pattern:Pattern ;
241
+ rdfs:label "Design Pattern"@en ;
242
+ rdfs:comment "A software design pattern"@en .
243
+
244
+ pattern:CodePattern a owl:Class ;
245
+ rdfs:subClassOf pattern:Pattern ;
246
+ rdfs:label "Code Pattern"@en ;
247
+ rdfs:comment "A learned code pattern from AST analysis"@en .
248
+
249
+ pattern:RequirementPattern a owl:Class ;
250
+ rdfs:subClassOf pattern:Pattern ;
251
+ rdfs:label "Requirement Pattern"@en ;
252
+ rdfs:comment "A pattern in requirement structure"@en .
253
+
254
+ # Common Design Patterns
255
+ pattern:RepositoryPattern a pattern:DesignPattern ;
256
+ rdfs:label "Repository Pattern"@en ;
257
+ rdfs:comment "Data access abstraction pattern"@en ;
258
+ pattern:category "Structural" .
259
+
260
+ pattern:FactoryPattern a pattern:DesignPattern ;
261
+ rdfs:label "Factory Pattern"@en ;
262
+ rdfs:comment "Object creation abstraction pattern"@en ;
263
+ pattern:category "Creational" .
264
+
265
+ pattern:ServiceLayer a pattern:DesignPattern ;
266
+ rdfs:label "Service Layer"@en ;
267
+ rdfs:comment "Business logic layer pattern"@en ;
268
+ pattern:category "Structural" .
269
+
270
+ pattern:ValueObject a pattern:DesignPattern ;
271
+ rdfs:label "Value Object"@en ;
272
+ rdfs:comment "Immutable value pattern"@en ;
273
+ pattern:category "Domain" .
274
+
275
+ pattern:ResultType a pattern:DesignPattern ;
276
+ rdfs:label "Result Type"@en ;
277
+ rdfs:comment "Error handling with Result<T,E>"@en ;
278
+ pattern:category "Functional" .
279
+
280
+ # =============================================================================
281
+ # Properties
282
+ # =============================================================================
283
+
284
+ # -----------------------------------------------------------------------------
285
+ # SDD Properties
286
+ # -----------------------------------------------------------------------------
287
+
288
+ sdd:id a owl:DatatypeProperty ;
289
+ rdfs:domain sdd:Artifact ;
290
+ rdfs:range xsd:string ;
291
+ rdfs:label "id"@en ;
292
+ rdfs:comment "Unique identifier for artifact"@en .
293
+
294
+ sdd:name a owl:DatatypeProperty ;
295
+ rdfs:domain sdd:Artifact ;
296
+ rdfs:range xsd:string ;
297
+ rdfs:label "name"@en .
298
+
299
+ sdd:description a owl:DatatypeProperty ;
300
+ rdfs:domain sdd:Artifact ;
301
+ rdfs:range xsd:string ;
302
+ rdfs:label "description"@en .
303
+
304
+ sdd:createdAt a owl:DatatypeProperty ;
305
+ rdfs:domain sdd:Artifact ;
306
+ rdfs:range xsd:dateTime ;
307
+ rdfs:label "created at"@en .
308
+
309
+ sdd:updatedAt a owl:DatatypeProperty ;
310
+ rdfs:domain sdd:Artifact ;
311
+ rdfs:range xsd:dateTime ;
312
+ rdfs:label "updated at"@en .
313
+
314
+ sdd:priority a owl:DatatypeProperty ;
315
+ rdfs:domain sdd:Requirement ;
316
+ rdfs:range xsd:string ;
317
+ rdfs:label "priority"@en ;
318
+ rdfs:comment "P0 (must), P1 (important), P2 (optional)"@en .
319
+
320
+ sdd:status a owl:DatatypeProperty ;
321
+ rdfs:domain sdd:Artifact ;
322
+ rdfs:range xsd:string ;
323
+ rdfs:label "status"@en .
324
+
325
+ sdd:articleNumber a owl:DatatypeProperty ;
326
+ rdfs:domain sdd:ConstitutionalArticle ;
327
+ rdfs:range xsd:integer ;
328
+ rdfs:label "article number"@en .
329
+
330
+ sdd:compliesWith a owl:ObjectProperty ;
331
+ rdfs:domain sdd:Artifact ;
332
+ rdfs:range sdd:ConstitutionalArticle ;
333
+ rdfs:label "complies with"@en ;
334
+ rdfs:comment "Artifact complies with constitutional article"@en .
335
+
336
+ # -----------------------------------------------------------------------------
337
+ # EARS Properties
338
+ # -----------------------------------------------------------------------------
339
+
340
+ ears:pattern a owl:DatatypeProperty ;
341
+ rdfs:domain ears:EARSRequirement ;
342
+ rdfs:range xsd:string ;
343
+ rdfs:label "pattern"@en .
344
+
345
+ ears:system a owl:DatatypeProperty ;
346
+ rdfs:domain ears:EARSRequirement ;
347
+ rdfs:range xsd:string ;
348
+ rdfs:label "system"@en ;
349
+ rdfs:comment "The system subject of the requirement"@en .
350
+
351
+ ears:trigger a owl:DatatypeProperty ;
352
+ rdfs:domain ears:EventDrivenRequirement ;
353
+ rdfs:range xsd:string ;
354
+ rdfs:label "trigger"@en ;
355
+ rdfs:comment "Event that triggers the requirement"@en .
356
+
357
+ ears:state a owl:DatatypeProperty ;
358
+ rdfs:domain ears:StateDrivenRequirement ;
359
+ rdfs:range xsd:string ;
360
+ rdfs:label "state"@en ;
361
+ rdfs:comment "State condition for the requirement"@en .
362
+
363
+ ears:condition a owl:DatatypeProperty ;
364
+ rdfs:domain ears:OptionalRequirement ;
365
+ rdfs:range xsd:string ;
366
+ rdfs:label "condition"@en ;
367
+ rdfs:comment "Optional condition"@en .
368
+
369
+ ears:response a owl:DatatypeProperty ;
370
+ rdfs:domain ears:EARSRequirement ;
371
+ rdfs:range xsd:string ;
372
+ rdfs:label "response"@en ;
373
+ rdfs:comment "System response or behavior"@en .
374
+
375
+ # -----------------------------------------------------------------------------
376
+ # C4 Properties
377
+ # -----------------------------------------------------------------------------
378
+
379
+ c4:level a owl:DatatypeProperty ;
380
+ rdfs:domain c4:C4Element ;
381
+ rdfs:range xsd:integer ;
382
+ rdfs:label "level"@en ;
383
+ rdfs:comment "C4 diagram level (1-4)"@en .
384
+
385
+ c4:technology a owl:DatatypeProperty ;
386
+ rdfs:domain c4:C4Element ;
387
+ rdfs:range xsd:string ;
388
+ rdfs:label "technology"@en .
389
+
390
+ c4:contains a owl:ObjectProperty ;
391
+ rdfs:domain c4:C4Element ;
392
+ rdfs:range c4:C4Element ;
393
+ rdfs:label "contains"@en .
394
+
395
+ c4:uses a owl:ObjectProperty ;
396
+ rdfs:domain c4:C4Element ;
397
+ rdfs:range c4:C4Element ;
398
+ rdfs:label "uses"@en .
399
+
400
+ c4:source a owl:ObjectProperty ;
401
+ rdfs:domain c4:Relationship ;
402
+ rdfs:range c4:C4Element ;
403
+ rdfs:label "source"@en .
404
+
405
+ c4:target a owl:ObjectProperty ;
406
+ rdfs:domain c4:Relationship ;
407
+ rdfs:range c4:C4Element ;
408
+ rdfs:label "target"@en .
409
+
410
+ c4:description a owl:DatatypeProperty ;
411
+ rdfs:domain c4:Relationship ;
412
+ rdfs:range xsd:string ;
413
+ rdfs:label "description"@en .
414
+
415
+ # -----------------------------------------------------------------------------
416
+ # Trace Properties
417
+ # -----------------------------------------------------------------------------
418
+
419
+ trace:source a owl:ObjectProperty ;
420
+ rdfs:domain trace:TraceLink ;
421
+ rdfs:range sdd:Artifact ;
422
+ rdfs:label "source"@en .
423
+
424
+ trace:target a owl:ObjectProperty ;
425
+ rdfs:domain trace:TraceLink ;
426
+ rdfs:range sdd:Artifact ;
427
+ rdfs:label "target"@en .
428
+
429
+ trace:createdAt a owl:DatatypeProperty ;
430
+ rdfs:domain trace:TraceLink ;
431
+ rdfs:range xsd:dateTime ;
432
+ rdfs:label "created at"@en .
433
+
434
+ trace:confidence a owl:DatatypeProperty ;
435
+ rdfs:domain trace:TraceLink ;
436
+ rdfs:range xsd:decimal ;
437
+ rdfs:label "confidence"@en ;
438
+ rdfs:comment "Confidence score 0.0-1.0"@en .
439
+
440
+ trace:derivedFrom a owl:ObjectProperty ;
441
+ rdfs:domain sdd:Artifact ;
442
+ rdfs:range sdd:Artifact ;
443
+ rdfs:label "derived from"@en .
444
+
445
+ trace:implements a owl:ObjectProperty ;
446
+ rdfs:domain sdd:Artifact ;
447
+ rdfs:range sdd:Requirement ;
448
+ rdfs:label "implements"@en .
449
+
450
+ trace:verifies a owl:ObjectProperty ;
451
+ rdfs:domain sdd:Test ;
452
+ rdfs:range sdd:Requirement ;
453
+ rdfs:label "verifies"@en .
454
+
455
+ # -----------------------------------------------------------------------------
456
+ # Pattern Properties
457
+ # -----------------------------------------------------------------------------
458
+
459
+ pattern:confidence a owl:DatatypeProperty ;
460
+ rdfs:domain pattern:Pattern ;
461
+ rdfs:range xsd:decimal ;
462
+ rdfs:label "confidence"@en ;
463
+ rdfs:comment "Pattern confidence score 0.0-1.0"@en .
464
+
465
+ pattern:occurrences a owl:DatatypeProperty ;
466
+ rdfs:domain pattern:Pattern ;
467
+ rdfs:range xsd:integer ;
468
+ rdfs:label "occurrences"@en .
469
+
470
+ pattern:category a owl:DatatypeProperty ;
471
+ rdfs:domain pattern:Pattern ;
472
+ rdfs:range xsd:string ;
473
+ rdfs:label "category"@en .
474
+
475
+ pattern:structure a owl:DatatypeProperty ;
476
+ rdfs:domain pattern:Pattern ;
477
+ rdfs:range xsd:string ;
478
+ rdfs:label "structure"@en ;
479
+ rdfs:comment "JSON representation of pattern structure"@en .
480
+
481
+ pattern:learnedFrom a owl:ObjectProperty ;
482
+ rdfs:domain pattern:CodePattern ;
483
+ rdfs:range sdd:Code ;
484
+ rdfs:label "learned from"@en .
485
+
486
+ pattern:appliedIn a owl:ObjectProperty ;
487
+ rdfs:domain pattern:Pattern ;
488
+ rdfs:range sdd:Artifact ;
489
+ rdfs:label "applied in"@en .
490
+
491
+ # =============================================================================
492
+ # End of SDD Core Ontology
493
+ # =============================================================================