-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMALFO.ttl
More file actions
732 lines (619 loc) · 61.9 KB
/
MALFO.ttl
File metadata and controls
732 lines (619 loc) · 61.9 KB
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
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
@prefix : <https://www.w3id.org/malfo/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix swrl: <http://www.w3.org/2003/11/swrl#> .
@prefix malfo: <https://www.w3id.org/malfo/> .
@prefix swrla: <http://swrl.stanford.edu/ontologies/3.3/swrla.owl#> .
@prefix swrlb: <http://www.w3.org/2003/11/swrlb#> .
@prefix iof-av: <https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <https://www.w3id.org/malfo/> .
<https://www.w3id.org/malfo> rdf:type owl:Ontology ;
owl:versionIRI <https://www.w3id.org/malfo/1.3> ;
dcterms:abstract """This ontology uses spatial relations, high-levels ontological categories, and causal relations to supply a formal taxonomies of occurrences that are not, from the point of view of some engineer, as they should be.
In particular, the terms fault, failure, failure mechanism, malfunction, and others are given precise interpretations.
See https://github.com/kataph/MALFO for more info""" ;
dcterms:contributor "Francesco Compagno" ;
dcterms:license "https://creativecommons.org/licenses/by/4.0/"^^xsd:anyURI ;
dcterms:title "MALFO: Malfunction Ontology" ;
rdfs:label "MALFunction Ontology (MALFO): an ontology about malfunction-related happenings" ;
owl:versionInfo """1.1:
- changed the definition of failure condition so that now there is a single equivalence axioms
- added functionalIncompatibleWith object property, to harmonize with clif version
- changed definition of MereSymptom and removed FunctionCompatible class, to harmonize with clif version
- added comments to all entities
- added annotations to the ontology
- added (the only) two cases of sufficient conditions for FailureCondition
- changed the name \"FailureRelatedHappening\" to \"MalfunctionRelatedHappening\" as it is more coherent with the definitions of Failure and Malfunction in the ontology
- added subclass axiom to MalfunctionRelatedHappening for MereSymptom, FailureCondition, and FailureMechanism
- removed some redundant subclass axioms""" ,
"""1.3:
- corrected the annotation of non performance events (replaced 'failures' with 'faults')
- restructured, expanded, and corrected the annotations. Now the ontology is (almost) compliant with IOF's annotation guideline
- changed \"down state\" into \"abnormal external disabled state\" for better compatibility with EN-13306
- unified the namespace of malfunction related happening to 'https://www.w3id.org/malfo/'
- changed the last separator in the root IRI from \"#\" to \"/\"
- *important*: w3id.org now asks for lowercase IRIs. Therefore the ontology prefix was changed to https://www.w3id.org/malfo/ from https://www.w3id.org/MALFO/. The ontology is now exposed for get requests at that address""" .
#################################################################
# Annotation properties
#################################################################
### http://purl.org/dc/terms/abstract
dcterms:abstract rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/contributor
dcterms:contributor rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/description
dcterms:description rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/license
dcterms:license rdf:type owl:AnnotationProperty .
### http://purl.org/dc/terms/title
dcterms:title rdf:type owl:AnnotationProperty .
### http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled
swrla:isRuleEnabled rdf:type owl:AnnotationProperty .
### http://www.w3.org/2000/01/rdf-schema#comment
rdfs:comment rdf:type owl:AnnotationProperty .
### http://www.w3.org/2004/02/skos/core#example
skos:example rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/firstOrderLogicAxiom
iof-av:firstOrderLogicAxiom rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/firstOrderLogicDefinition
iof-av:firstOrderLogicDefinition rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/isPrimitive
iof-av:isPrimitive rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/naturalLanguageDefinition
iof-av:naturalLanguageDefinition rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/primitiveRationale
iof-av:primitiveRationale rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/semiFormalNaturalLanguageAxiom
iof-av:semiFormalNaturalLanguageAxiom rdf:type owl:AnnotationProperty .
### https://spec.industrialontologies.org/ontology/core/meta/AnnotationVocabulary/semiFormalNaturalLanguageDefinition
iof-av:semiFormalNaturalLanguageDefinition rdf:type owl:AnnotationProperty .
#################################################################
# Object Properties
#################################################################
### https://www.w3id.org/malfo/achieves
<https://www.w3id.org/malfo/achieves> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/causeOf> ,
<https://www.w3id.org/malfo/posCauseOf> ;
rdfs:domain [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/achieves>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ,
( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/achieves>
) ;
rdfs:comment "Direct and positive causatio, requires tight coupling between the arguments, in particular the juxtaposition or overlapping of their time extension." ;
rdfs:isDefinedBy "https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf"^^xsd:anyURI ;
rdfs:label "achieves" .
### https://www.w3id.org/malfo/allows
<https://www.w3id.org/malfo/allows> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/causeOf> ,
<https://www.w3id.org/malfo/posCauseOf> ;
rdfs:domain [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
)
] ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/achieves>
<https://www.w3id.org/malfo/facilPreconditionFor>
) ,
( <https://www.w3id.org/malfo/allows>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ,
( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/allows>
) ,
( <https://www.w3id.org/malfo/maintains>
<https://www.w3id.org/malfo/facilPreconditionFor>
) ,
_:genid28 ;
rdfs:comment "(i) achieving or maintaining a facilitative precondition, or (ii) preventing a preventive precondition (and assuming that, at the same time, no additional preventive precondition was achieved)." ;
rdfs:isDefinedBy "https://doi.org/10.3233/AO-190206" ;
rdfs:label "allows" .
_:genid28 rdf:type rdf:List ;
rdf:first <https://www.w3id.org/malfo/prevents> ;
rdf:rest ( <https://www.w3id.org/malfo/prevPreconditionFor>
) .
[ rdf:type owl:Axiom ;
owl:annotatedSource <https://www.w3id.org/malfo/allows> ;
owl:annotatedProperty owl:propertyChainAxiom ;
owl:annotatedTarget _:genid28 ;
rdfs:comment """Technically not compatible with the first-order version, instead it is slightly stronger. However, it is kept because otherwise, due to the open world assumption, the corresponding inference would never be applied.
Consider removing if necessary."""
] .
### https://www.w3id.org/malfo/causeOf
<https://www.w3id.org/malfo/causeOf> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment "Cause of is an umbrella for all the direct causation relations of MALFO: either achievs, allows, disallows, or prevents causation-types (we also include physical consequences)" ;
rdfs:label "cause of" ;
iof-av:firstOrderLogicDefinition """causeOf(x, y) ↔ achieves(x, y) ∨ prevents(x, y) ∨ allows(x, y)
∨ disallows(x, y)""" ;
iof-av:semiFormalNaturalLanguageDefinition "“x causes y if and only if it either achieves or allows or prevents or disallows y.”" .
### https://www.w3id.org/malfo/disallows
<https://www.w3id.org/malfo/disallows> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/causeOf> ;
rdfs:domain [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
)
] ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/achieves>
<https://www.w3id.org/malfo/prevPreconditionFor>
) ,
( <https://www.w3id.org/malfo/disallows>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ,
( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/disallows>
) ,
( <https://www.w3id.org/malfo/maintains>
<https://www.w3id.org/malfo/prevPreconditionFor>
) ,
( <https://www.w3id.org/malfo/prevents>
<https://www.w3id.org/malfo/facilPreconditionFor>
) ;
rdfs:comment "(i) achieving or maintaining a preventive precondition, or (ii) preventing a facilitative precondition." ;
rdfs:isDefinedBy "https://doi.org/10.3233/AO-190206" ;
rdfs:label "disallows" .
### https://www.w3id.org/malfo/facilPreconditionFor
<https://www.w3id.org/malfo/facilPreconditionFor> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/posCauseOf> ;
rdfs:domain <https://www.w3id.org/malfo/State> ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/facilPreconditionFor>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ,
( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/facilPreconditionFor>
) ;
rdfs:comment """\"A precondition for an occurrent is a condition whose truth value influences the activation of the associated occurrent.\" -- Riichiro Mizoguchi, Causing is Achieving: A solution to the problem of causation, p.6 https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf, last accessed in May 2024
A facilitative precondition helps (or even is a necessary precondition for) bringinng about an occurrence.""" ;
rdfs:isDefinedBy "https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf" ;
rdfs:label "facilitative precondition for" .
### https://www.w3id.org/malfo/functionalIncompatibleWith
<https://www.w3id.org/malfo/functionalIncompatibleWith> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment "By saying that an occurrence is functional-incompatible with a function, we mean synchronous logical-incompatibility of the occurrence with the execution of the function (the function must be related to some object participating in the occurrence). For example, if the function of an electric wire is to carry electricity, and a logically-necessary requirement for the wire to do that is being physically connected, then `the wire being cut in two' is function-incompatible with the wire's function." ,
"Clearly, the range of this property is intended to be a class of functions. We do not write it explicitly in the ontology what kind of class to leave users with the freedom of chosing themselves." ;
rdfs:label "functional Incompatible with" .
### https://www.w3id.org/malfo/hasPhysicalConseq
<https://www.w3id.org/malfo/hasPhysicalConseq> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/causeOf> ,
<https://www.w3id.org/malfo/posCauseOf> ;
rdf:type owl:TransitiveProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment """if z is `yesterday I ate less than three apples', and x is `yesterday I ate exactly two apples' and y is the occurrence that `yesterday I ate exactly one apple', then is clear that x and y both `imply' z, meaning that if x or y happened, also z happened.
We call `physical consequence' this kind of implication.
For example `peak vibration is 1.13 times over nominal limit' causes the `fatigue imposed on the axis to be 1.13 times than normal' (Matthews, A Practical Guide to Engineering Failure Investigation, 1998).
Note that physical-consequenc is a different type than other causal-consequences (e.g., achieves). For instance, a key difference is that causal-consequence requires a (possibly extended) spatial and temporal contiguity or overlapping, while physical-consequence is `immediate'/`synchronous' and does not take place somewhere nor during some time. Another difference is that causal-consequence is antisymmetric and not (generally speaking) transitive, while physical-consequence is transitive and could be bidirectional.""" ;
rdfs:label "has physical consequence" .
### https://www.w3id.org/malfo/incompatibleWith
<https://www.w3id.org/malfo/incompatibleWith> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/incompatibleWith>
<https://www.w3id.org/malfo/prevPreconditionFor>
) ,
( <https://www.w3id.org/malfo/prevPreconditionFor>
<https://www.w3id.org/malfo/incompatibleWith>
) ;
rdfs:comment "we interpret internalTo as physical incompatibility between two occurrences. For example, if we call x the occurrence that `yesterday I ate exactly two apples' and call y the occurrence that `yesterday I ate exactly one apple', then we say that x is incompatible with y" ;
rdfs:label "incompatible with" .
### https://www.w3id.org/malfo/internalTo
<https://www.w3id.org/malfo/internalTo> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment "For example, consider the case of the right headlight of a car that is not working because the filaments of its light bulb are burned. The occurrence ‘the filaments are burned’ (in other words, `the filaments are disconnected') is internal to the occurrence ‘the right headlight is not working'." ;
rdfs:label "internal to" .
### https://www.w3id.org/malfo/maintains
<https://www.w3id.org/malfo/maintains> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment """\"The function Maintain which originally refers to the function of outputting the incoming operand without changing it. The prototypical example is a conduit that outputs
exactly what is fed into it: a water pipe has an output flow rate that is equal to the input flow rate. The general Maintain function performs similarly by keeping the current state unchanged. In terms of Maintain, “John did not lock the door” is paraphrased as he Maintained the lock in the unlocked state. In other words,
the omission of an event that should have occurred Maintains the current state (by doing nothing). The introduction of Maintain thus overcomes the theoretical difficulty of mentioning an occurrent which does not happen\".
-- Riichiro Mizoguchi, Causing is Achieving: A solution to the problem of causation, p.6-7 https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf, last accessed in May 2024""" ;
rdfs:isDefinedBy "https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf" ;
rdfs:label "maintains" .
### https://www.w3id.org/malfo/posCauseOf
<https://www.w3id.org/malfo/posCauseOf> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/transitivePosCauseOf> ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment "positive causation: achieves, allows, and physical causation" ;
rdfs:label "positive cause of" .
### https://www.w3id.org/malfo/prevPreconditionFor
<https://www.w3id.org/malfo/prevPreconditionFor> rdf:type owl:ObjectProperty ;
rdfs:domain <https://www.w3id.org/malfo/State> ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/prevPreconditionFor>
) ,
( <https://www.w3id.org/malfo/prevPreconditionFor>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ;
rdfs:comment """\"A precondition for an occurrent is a condition whose truth value influences the activation of the associated occurrent.\" -- Riichiro Mizoguchi, Causing is Achieving: A solution to the problem of causation, p.6 https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf, last accessed in May 2024
A preventive precondition helps (or even is a necessary precondition for) bringinng about an occurrence.""" ;
rdfs:isDefinedBy "https://arxiv.org/ftp/arxiv/papers/2307/2307.07517.pdf" ;
rdfs:label "preventive precondition for" .
### https://www.w3id.org/malfo/prevents
<https://www.w3id.org/malfo/prevents> rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf <https://www.w3id.org/malfo/causeOf> ;
rdfs:domain [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
rdfs:range [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] ;
owl:propertyChainAxiom ( <https://www.w3id.org/malfo/achieves>
<https://www.w3id.org/malfo/incompatibleWith>
) ,
( <https://www.w3id.org/malfo/hasPhysicalConseq>
<https://www.w3id.org/malfo/prevents>
) ,
( <https://www.w3id.org/malfo/prevents>
<https://www.w3id.org/malfo/hasPhysicalConseq>
) ;
rdfs:comment "achieving a state that is incompatible with the caused occurrence" ;
rdfs:isDefinedBy "https://doi.org/10.3233/AO-190206" ;
rdfs:label "prevents" .
### https://www.w3id.org/malfo/systemicFunctionOf
<https://www.w3id.org/malfo/systemicFunctionOf> rdf:type owl:ObjectProperty ;
rdfs:comment "Similarly to functionIncompatibleWith, the domain of this property is intended to be a class of functions, while its range a class of devices. We do not write them explicitly in the ontology and leave users with the freedom of chosing themselves and using this relation for eventual mappings." ,
"""“x is a systemic function of y if and only if x is a role and there exist a system z
and a goal g for z such that x classifies only behaviours which have y as doer and
part of z, and that causally contribute to achieve g.”""" ;
rdfs:label "systemic function of" .
### https://www.w3id.org/malfo/transitivePosCauseOf
<https://www.w3id.org/malfo/transitivePosCauseOf> rdf:type owl:ObjectProperty ,
owl:TransitiveProperty ;
rdfs:domain <https://www.w3id.org/malfo/Occurrent> ;
rdfs:range <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment "Transitive closure of positive cause" ;
rdfs:label "transitive positive cause of" .
#################################################################
# Classes
#################################################################
### https://www.w3id.org/malfo/AbnormalExternalDisabledState
<https://www.w3id.org/malfo/AbnormalExternalDisabledState> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( <https://www.w3id.org/malfo/Malfunction>
<https://www.w3id.org/malfo/State>
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/Fault>
]
) ;
rdf:type owl:Class
] ;
rdfs:comment """Abnormal external disabled states are introduced to separate the malfunction states that need corrective actions from those that do not, because the
malfunction to be corrected resides somewhere else. For example, when the right
headlight of a car is not lit when it should, there are at least two scenarios to
consider. The headlight itself may be faulty, say there is a blown lightbulb inside
the headlight; in this case the headlight not being lit is a fault that requires repairing the headlight. In the second scenario, another component is faulty, say
there is a severed wire, external to the battery, connecting the headlight to the
car’s battery. Here, the wire must be replaced, and not being lit is an abnormal
external disabled state. Note also that the term ‘abnormal external disabled state’
is very similar to EN 13306-‘external disabled states’. The difference is that the
latter correspond to the union of the two cases: either there is a lack of required external resources, or a planned action other than maintenance is being carried out; while
MALFO-‘abnormal external disabled states’ are more specific and correspond to
just the ‘lacks required external resources’ case. This is because we have declared
that malfunction-related happenings are unwanted occurrences, while planned occurrences are not unwanted.""" ;
rdfs:label "Abnormal External Disabled State" ;
skos:example "The computer cannot be turned on because the wall socket its plug is plugged in is broken" ;
iof-av:firstOrderLogicDefinition "AbExtDisabledSt(x) ↔ Malfunction(x) ∧ State(x) ∧ ¬Fault(x)" ;
iof-av:naturalLanguageDefinition "A state that is abnormal, but is not due to any internal cause" ;
iof-av:semiFormalNaturalLanguageDefinition """x is an abnormal external disabled state means that x is a malfunction and state
but not a fault.""" .
### https://www.w3id.org/malfo/Event
<https://www.w3id.org/malfo/Event> rdf:type owl:Class ;
rdfs:subClassOf <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment """In engineering, an important class of occurrences, which in this work we consider as archetypical examples of events are those occurrences that, being very brief, are considered instantaneous, such as impacts or ruptures.
More precise definitions are left open to interpretation (e.g. through alignment with an upper ontology)""" ;
rdfs:label "Event" ;
iof-av:isPrimitive "true"^^xsd:boolean ;
iof-av:primitiveRationale "This is a notion of higher generality than those considered in this ontology, its definition is delegated to e.g. alignment with an upper ontology" .
### https://www.w3id.org/malfo/Failure
<https://www.w3id.org/malfo/Failure> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Malfunction>
[ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/achieves> ;
owl:someValuesFrom <https://www.w3id.org/malfo/Fault>
]
) ;
rdf:type owl:Class
] ;
owl:disjointWith <https://www.w3id.org/malfo/NonPerformanceEvent> ;
rdfs:comment "With this definition we try to capture the common concept of failure present in the literature: the loss of the ability to perform a function. We also stipulate, by definition, that failures cause faults. For example, if a wire, whose function is to carry electricity, is gnawed by a rat, the wire fails when it breaks and ceases to be able to conduct electricity." ;
rdfs:label "Failure" ;
skos:example "the rupture of an electric wire" ;
iof-av:firstOrderLogicDefinition "Failure(x) ↔ Malfunction(x) ∧ Event(x) ∧ ∃y(Fault(y) ∧ achieves(x, y))" ;
iof-av:naturalLanguageDefinition "the loss of the ability to perform a function, which leads to a fault" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a failure means that x is a malfunction and an event that achieves some fault." .
### https://www.w3id.org/malfo/FailureCondition
<https://www.w3id.org/malfo/FailureCondition> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( <https://www.w3id.org/malfo/State>
[ rdf:type owl:Class ;
owl:unionOf ( [ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/prevPreconditionFor> ;
owl:someValuesFrom [ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/disallows> ;
owl:someValuesFrom <https://www.w3id.org/malfo/Failure>
]
]
[ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/transitivePosCauseOf> ;
owl:someValuesFrom <https://www.w3id.org/malfo/Failure>
]
)
]
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/Malfunction>
]
) ;
rdf:type owl:Class
] ;
rdfs:subClassOf <https://www.w3id.org/malfo/MalfunctionRelatedHappening> ;
rdfs:comment "Failure conditions have the same causal role as failure mechanisms, but are states in place of processes (e.g. `being corroded' in place of `corrosion'). We also add explicitly the case of negative causation, that is, e.g. the case that the state of being corroded inhibits a safety function and such inhibition then causes a failure." ;
rdfs:label "Failure Condition" ;
iof-av:firstOrderLogicDefinition """FailureCondition(x) ↔ (State(x) ∧ (¬Malfunction(x)) ∧
∃y(Failure(y) ∧ (transPosCausalCon(x, y) ∨
∃z(prevPrecondFor(x, z) ∧ disallows(z, y)))))""" ;
iof-av:naturalLanguageDefinition "A state that, while not entailing per se the loss of functionality, will eventually determine such a loss." ;
iof-av:semiFormalNaturalLanguageDefinition "x is a failure condition means that x is not a malfunction, is a state, and is either the facilitative precondition for a failure or the positive cause, eventually, of that failure, or it is the preventive precondition for some occurrence that disallows the failure." .
### https://www.w3id.org/malfo/FailureMechanism
<https://www.w3id.org/malfo/FailureMechanism> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Class ;
owl:unionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
)
]
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/Malfunction>
]
[ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/transitivePosCauseOf> ;
owl:someValuesFrom <https://www.w3id.org/malfo/Failure>
]
) ;
rdf:type owl:Class
] ;
rdfs:subClassOf <https://www.w3id.org/malfo/MalfunctionRelatedHappening> ;
rdfs:comment """FailureMechanism tries to convey the meaning behind common occurrence-types such as corrosion, wear, cracking, etc., which are not
typically classified as failures themselves but do cause failures in some sense, which
is made precise here.""" ;
rdfs:label "Failure Mechanism" ;
skos:example "corrosion, wear, cracking" ;
iof-av:firstOrderLogicDefinition """FailureMechanism(x) ↔ ((Process(x) ∨ Event(x)) ∧
(¬Malfunction(x)) ∧ ∃y(Failure(y) ∧ transPosCausalCon(x, y)))""" ;
iof-av:semiFormalNaturalLanguageDefinition """x is a failure mechanism means that x is not a malfunction, is either a process or an
event, and is the positive causal contributor, eventually, of some failure.""" .
### https://www.w3id.org/malfo/Fault
<https://www.w3id.org/malfo/Fault> rdf:type owl:Class ;
rdfs:subClassOf <https://www.w3id.org/malfo/Malfunction> ,
<https://www.w3id.org/malfo/State> ,
[ rdf:type owl:Restriction ;
owl:onProperty [ owl:inverseOf <https://www.w3id.org/malfo/achieves>
] ;
owl:someValuesFrom <https://www.w3id.org/malfo/MalfunctionRelatedHappening>
] ,
[ rdf:type owl:Restriction ;
owl:onProperty [ owl:inverseOf <https://www.w3id.org/malfo/internalTo>
] ;
owl:someValuesFrom <https://www.w3id.org/malfo/MalfunctionRelatedHappening>
] ;
rdfs:comment "Note that sufficient conditions for the classifications are expressed as a SWRL rule" ,
"""Notice that we somewhat weakened the classic definition of fault ``inability to function due to an internal state'', otherwise the z in the definient should be classified as a state. We consider that such classification is not necessary, and the z may belogn to other occurrent-types: for example, if `catastrophic fracture of the main axis' (z) causes the an industrial fan to `be completely non-operational' (x), the first occurrence (the fracture) is an event internal to the second occurrence (being non operational), a state, which is non function-compatible, and, therefore, a fault by definition.
Another example, this time in which the z is a state, is the `being cut into two parts'-state (z) of an electrical wire, which is an internal state that causes the state of `being unable to transmit electricity' (x), which is then a fault by definition""" ;
rdfs:label "Fault" ;
iof-av:firstOrderLogicDefinition """Fault(x) ↔ Malfunction(x) ∧ State(x) ∧ ∃z(internalTo(z, x) ∧
achieves(z, x))""" ;
iof-av:naturalLanguageDefinition "inability to function due to the happening of some internal occurrence" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a fault means that x is malfunction and a state and is achieved by some occurrence internal to itself" .
### https://www.w3id.org/malfo/Malfunction
<https://www.w3id.org/malfo/Malfunction> rdf:type owl:Class ;
owl:equivalentClass [ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/functionalIncompatibleWith> ;
owl:someValuesFrom owl:Thing
] ;
rdfs:subClassOf <https://www.w3id.org/malfo/MalfunctionRelatedHappening> ;
rdfs:comment "This definition of malfunction is almost a literal interpretation of the term malfunction, Of course, the compatibility could be complete or partial. This is ignored for the sake of simplicity." ;
rdfs:label "Malfunction" ;
skos:example """For example, the fracture of an axis is a malfunction because it is function-incompatible with the axis' function of transmitting torque, the occurrence
that a headlight of a car does not turn on when it should (incompatible with the
headlight function of lighting the environment in front of the car when requested).""" ;
iof-av:firstOrderLogicDefinition "Malfunction(x) ↔ ∃f functionIncompatible(x, f)" ;
iof-av:naturalLanguageDefinition "Any occurrence that cannot co-occurr or temporally overlap with some function" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a malfunction means that there is some function x is function-incompatible with" .
### https://www.w3id.org/malfo/MalfunctionProcess
<https://www.w3id.org/malfo/MalfunctionProcess> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( <https://www.w3id.org/malfo/Malfunction>
<https://www.w3id.org/malfo/Process>
) ;
rdf:type owl:Class
] ;
rdfs:comment "We introduce malfunction processes to partition completely the malfunction category. For example in Avizienis' ``Basic concepts and taxonomy of dependable and secure computing'' (2004). An example of a failure in an integrated circuit is described: a faulty IC is invoked, and this causes, at different time and locations, the presence of wrong values in the calculation process. In our taxonomy, we classify this `erroneus calculation process' as a malfunction process." ;
rdfs:label "Malfunction Process" ;
iof-av:firstOrderLogicDefinition "MalfunctionProcess(x) ↔ (Malfunction(x) ∧ Process(x))" ;
iof-av:naturalLanguageDefinition "A malfunction that is a process" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a malfunction process means that x is a malfunction and a process" .
### https://www.w3id.org/malfo/MalfunctionRelatedHappening
<https://www.w3id.org/malfo/MalfunctionRelatedHappening> rdf:type owl:Class ;
rdfs:subClassOf <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment """The umbrella for all the malfunction-related classes.
As a heuristic definition, one can consider \"the class of all occurrents who are related to a malfunction through the symmetric, transitive closure of all the cusal relations of MALFO (achieves, allows, disallows, prevents, facilitative, preventive, maintains)\"""" ;
rdfs:label "Malfunction Related Happening" ;
iof-av:isPrimitive "true"^^xsd:boolean ;
iof-av:naturalLanguageDefinition "a catch-all term for any occurrence considered unwanted by domain experts (i.e. there is a mismatch between what is occurring and the ideal mental model of a domain expert)" ;
iof-av:primitiveRationale "This class collects all the occurrents that are the subjects of our analysis and it is the very start of our analysis." .
### https://www.w3id.org/malfo/MereSymptom
<https://www.w3id.org/malfo/MereSymptom> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/FailureCondition>
]
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/FailureMechanism>
]
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/Malfunction>
]
[ rdf:type owl:Restriction ;
owl:onProperty [ owl:inverseOf <https://www.w3id.org/malfo/causeOf>
] ;
owl:someValuesFrom <https://www.w3id.org/malfo/Malfunction>
]
) ;
rdf:type owl:Class
] ;
rdfs:subClassOf <https://www.w3id.org/malfo/MalfunctionRelatedHappening> ;
rdfs:comment "A mere symptom has no causal effect on a system (at least not in the sense of failure mechanisms and conditions) and is therefore differentiated from other occurrence types. For example, if the right headlight of a car is not lit up when it should, the fact that `there is no light beam shined by the headlight' is a mere symptom because the absence of light, by itself, will not cause the failure of other components. The negative causation in causeOf is considered because the symptom could be the absence of some occurrence that, say, the malfunction prevents (e.g., the missing light in the previous example)." ;
rdfs:label "Mere Symptom" ;
skos:example "there is no light beam shined by the headlight" ;
iof-av:firstOrderLogicDefinition """MereSymptom(x) ↔ ¬Malfunction(x) ∧ ¬FailureMechanism(x) ∧
¬FailureCondition(x) ∧ ∃z(Malfunction(z) ∧ causeOf(z, x))""" ;
iof-av:naturalLanguageDefinition "A symptom that per se does not impede a function, nor will cause a failure" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a mere symptom means that x not a malfunction, nor a failure condition, nor a failure mechnaism, and is caused by a malfunction." .
### https://www.w3id.org/malfo/NonPerformanceEvent
<https://www.w3id.org/malfo/NonPerformanceEvent> rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Malfunction>
[ rdf:type owl:Class ;
owl:complementOf <https://www.w3id.org/malfo/Failure>
]
) ;
rdf:type owl:Class
] ;
rdfs:comment "An example of non-performance event occurs when attempting to turn on the right headlight of a car if its lightbulb is broken: `the right headlight did not turn on' is a non-performance event, since it is a malfunction but, by itself, does not cause failures." ;
rdfs:label "Non-Performance Event" ;
skos:example "the right headlight of the car did not turn on" ;
iof-av:firstOrderLogicDefinition "NonPerformanceEvent(x) ↔ Malfunction(x) ∧ Event(x) ∧ ¬Failure(x)" ;
iof-av:naturalLanguageDefinition "Those events that entail that a function was not performed as it should have been, but by themself do no cause faults" ;
iof-av:semiFormalNaturalLanguageDefinition "x is a non-performance event means that x is a malfunction and an event, but not a failure." .
### https://www.w3id.org/malfo/Occurrent
<https://www.w3id.org/malfo/Occurrent> rdf:type owl:Class ;
rdfs:comment """An occurrent is something that happens in time
More precise definitions are left open to interpretation (e.g. through alignment with an upper ontology)""" ;
rdfs:label "Occurrent" ;
iof-av:isPrimitive "true"^^xsd:boolean ;
iof-av:naturalLanguageDefinition "An occurrent is something that happens in time" ;
iof-av:primitiveRationale "This is a notion of higher generality than those considered in this ontology, its definition is delegated to e.g. alignment with an upper ontology" .
### https://www.w3id.org/malfo/Process
<https://www.w3id.org/malfo/Process> rdf:type owl:Class ;
rdfs:subClassOf <https://www.w3id.org/malfo/Occurrent> ;
rdfs:comment """In engineering, a typical example of process is a sequence of states (or, equivalently, of state transitions) related to some physical phenomena. For instance corrosion is a sequence of many single chemical reactions that change the arrangement of the relevant atoms.
More precise definitions are left open to interpretation (e.g. through alignment with an upper ontology)""" ;
rdfs:label "Process" ;
iof-av:isPrimitive "true"^^xsd:boolean ;
iof-av:primitiveRationale "This is a notion of higher generality than those considered in this ontology, its definition is delegated to e.g. alignment with an upper ontology" .
### https://www.w3id.org/malfo/State
<https://www.w3id.org/malfo/State> rdf:type owl:Class ;
rdfs:subClassOf <https://www.w3id.org/malfo/Occurrent> ,
[ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/achieves> ;
owl:allValuesFrom <https://www.w3id.org/malfo/State>
] ,
[ rdf:type owl:Restriction ;
owl:onProperty <https://www.w3id.org/malfo/prevents> ;
owl:allValuesFrom <https://www.w3id.org/malfo/State>
] ;
rdfs:comment """In engineering states are often described by specifying some characteristics (form, value of a process variable, ...) of the entities participating in the state (e.g. `the shaft is broken', `high oven temperature', or `the oven temperature is increasing').
More precise definitions are left open to interpretation (e.g. through alignment with an upper ontology)""" ;
rdfs:label "State" ;
iof-av:isPrimitive "true"^^xsd:boolean ;
iof-av:primitiveRationale "This is a notion of higher generality than those considered in this ontology, its definition is delegated to e.g. alignment with an upper ontology" .
#################################################################
# General axioms
#################################################################
[ rdf:type owl:AllDisjointClasses ;
owl:members ( <https://www.w3id.org/malfo/Event>
<https://www.w3id.org/malfo/Process>
<https://www.w3id.org/malfo/State>
)
] .
#################################################################
# Rules
#################################################################
<https://www.w3id.org/malfo/z> rdf:type swrl:Variable .
<https://www.w3id.org/malfo/x> rdf:type swrl:Variable .
[ swrla:isRuleEnabled "true"^^xsd:boolean ;
rdfs:comment "" ;
rdfs:label "fault-sufficient-implication" ;
rdf:type swrl:Imp ;
swrl:body [ rdf:type swrl:AtomList ;
rdf:first [ rdf:type swrl:IndividualPropertyAtom ;
swrl:propertyPredicate <https://www.w3id.org/malfo/achieves> ;
swrl:argument1 <https://www.w3id.org/malfo/z> ;
swrl:argument2 <https://www.w3id.org/malfo/x>
] ;
rdf:rest [ rdf:type swrl:AtomList ;
rdf:first [ rdf:type swrl:ClassAtom ;
swrl:classPredicate <https://www.w3id.org/malfo/Malfunction> ;
swrl:argument1 <https://www.w3id.org/malfo/x>
] ;
rdf:rest [ rdf:type swrl:AtomList ;
rdf:first [ rdf:type swrl:IndividualPropertyAtom ;
swrl:propertyPredicate <https://www.w3id.org/malfo/internalTo> ;
swrl:argument1 <https://www.w3id.org/malfo/z> ;
swrl:argument2 <https://www.w3id.org/malfo/x>
] ;
rdf:rest [ rdf:type swrl:AtomList ;
rdf:first [ rdf:type swrl:ClassAtom ;
swrl:classPredicate <https://www.w3id.org/malfo/State> ;
swrl:argument1 <https://www.w3id.org/malfo/x>
] ;
rdf:rest rdf:nil
]
]
]
] ;
swrl:head [ rdf:type swrl:AtomList ;
rdf:first [ rdf:type swrl:ClassAtom ;
swrl:classPredicate <https://www.w3id.org/malfo/Fault> ;
swrl:argument1 <https://www.w3id.org/malfo/x>
] ;
rdf:rest rdf:nil
]
] .
### Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi