-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathQoSontology.kif
2439 lines (1878 loc) · 83.5 KB
/
QoSontology.kif
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
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;; Access to and use of these products is governed by the GNU General Public
;; License <http://www.gnu.org/copyleft/gpl.html>.
;; By using these products, you agree to be bound by the terms
;; of the GPL.
;; We ask that people using or referencing this work cite our primary paper:
;; Niles, I., and Pease, A. 2001. Towards a Standard Upper Ontology. In
;; Proceedings of the 2nd International Conference on Formal Ontology in
;; Information Systems (FOIS-2001), Chris Welty and Barry Smith, eds,
;; Ogunquit, Maine, October 17-19, 2001.
;; definition of productModel
(instance productModel AsymmetricRelation)
(subrelation productModel represents)
(domain productModel 1 SymbolicString)
(domainSubclass productModel 2 Product)
(documentation productModel "(productModel ?Model ?Product) means that
?Model represents the type of the Product ?Product")
;; definition of ComputationalSystem
(subclass ComputationalSystem Product)
(documentation ComputationalSystem "Instances of &%ComputationalSystems
include instances of &%SoftwareSystems, &%HardwareSystems, and
&%ComputerNetworks.")
;; definition of Computer
(subclass Computer Device)
(documentation Computer "A general-purpose machine that processes
data according to a set of instructions that are stored internally
either temporarily or permanently.")
;; definition of ComputerNetwork
(subclass ComputerNetwork ComputationalSystem)
(documentation ComputerNetwork "The network includes the network
operating system in the client and server machines, the cables
connecting them and all supporting hardware in between such as
bridges, routers and switches.")
;; definition of LAN
(subclass LAN ComputerNetwork)
(disjointDecomposition LAN BusNetwork StarNetwork RingNetwork)
(documentation LAN "A computer network that spans a relatively small
area. Most LANs are confined to a single building or group of buildings.
However, one LAN can be connected to other LANs over any distance via
telephone lines and radio waves.")
;; definition of BusNetwork
(subclass BusNetwork LAN)
(documentation BusNetwork "A network in which all nodes are connected
to a single wire (the bus) that has two endpoints. Ethernet 10Base-2
and 10Base-5 networks, for example, are bus networks. Other common
network types include &%StarNetworks and &%RingNetworks.")
;; definition of StarNetwork
(subclass StarNetwork LAN)
(documentation StarNetwork "A local-area network (LAN) that uses a star
topology in which all nodes are connected to a central computer.")
;; definition of RingNetwork
(subclass RingNetwork LAN)
(documentation LAN "A local-area network (LAN) whose topology is a ring.
That is, all of the nodes are connected in a closed loop. Messages
travel around the ring, with each node reading those messages addressed
to it.")
;; definition of ComputerHardware
(subclass ComputerHardware EngineeringComponent)
(documentation ComputerHardware "The hardware is the physical part of
a computer system; the machinery and equipment.")
(<=>
(instance ?Hardware ComputerHardware)
(exists (?Computer)
(and
(instance ?Computer Computer)
(component ?Hardware ?Computer))))
;; definition of ComputerMemory
(subclass ComputerMemory ComputerHardware)
(documentation ComputerMemory "The computer's workspace (physically,
a collection of RAM chips). It is an important resource, since it
determines the size and number of programs that can be run at the
same time, as well as the amount of data that can be processed
instantly.")
;; definition of HardDiskDrive
(subclass HardDiskDrive ComputerHardware)
(documentation HardDiskDrive "The primary computer storage medium, which
is made of one or more aluminum or glass platters, coated with a
ferromagnetic material. Most hard disks are fixed disks, which are
permanently sealed in the drive.")
;; definition of CPU
(subclass CPU ComputerHardware)
(documentation CPU "CPU (Central Processing Unit) is the computing part
of the computer.")
;; definition of DataTransfer
(subclass DataTransfer ComputerProcess)
(documentation DataTransfer "A subclass of &%ComputerProcesses which
send data over a computer channel or bus.")
(=>
(instance ?Transfer DataTransfer)
(exists (?Origin ?Destination ?System ?Data)
(and
(origin ?Transfer ?Origin)
(destination ?Transfer ?Destination)
(instrument ?Transfer ?System)
(patient ?Transfer ?Data)
(instance ?Data ComputerData)
(instance ?System HardwareSystem)
(instance ?Origin HardwareSystem)
(instance ?Destination ComputationalSystem))))
;;definition of ComputerProcess
(subclass ComputerProcess InternalChange)
(documentation ComputerProcess "An instance of &%ComputerProcess is a
process which manipulates data in the computer.")
(=>
(instance ?Process ComputerProcess)
(exists (?Computer ?Program)
(and
(instance ?Computer Computer)
(computerRunning ?Process ?Computer)
(instance ?Program ComputerProgram)
(programRunning ?Process ?Program))))
(=>
(programRunning ?Process ?Program)
(exists (?Computer)
(runningOn ?Program ?Computer)))
;; definition of ComputerFile
(subclass ComputerFile ComputerData)
(documentation ComputerFile "A collection of bytes stored as an
individual entity. All data on disk is stored as a file with an
assigned file name that is unique within the folder (directory)
it resides in.")
;; definition of ComputerDirectory
(subclass ComputerDirectory ComputerFile)
(documentation ComputerDirectory "This is the class of catalogs that
identify and locate instances of &%ComputerFiles. The catalog's entries
consist of at least &%ComputerFile names and a physical address on a memory
device of the &%ComputerFile or an index (e.g., file descriptor) into a
table of &%ComputerFile physical addresses. &%ComputerDirectories are thus
collections of data elements and must be named and stored on memory devices;
hence, &%ComputerDirectory is a subset of &%ComputerFile.")
;; definition of runningOn
(instance runningOn BinaryRelation)
(domain runningOn 1 ComputerProgram)
(domain runningOn 2 Computer)
(documentation runningOn "(runningOn ?Program ?Computer) holds if the
&%ComputerProgram ?Program is being executed on ?Computer.")
(=>
(runningOn ?Program ?Computer)
(exists (?Process)
(and
(programRunning ?Process ?Program)
(computerRunning ?Process ?Computer))))
;; definition of computerRunning
(subrelation computerRunning instrument)
(domain computerRunning 1 ComputerProcess)
(domain computerRunning 2 Computer)
(documentation computerRunning "(&%computerRunning ?Process ?Computer)
means that the ComputerProcess ?Process is running on ?Computer.")
;; definition of programRunning
(instance programRunning BinaryPredicate)
(domain programRunning 1 ComputerProcess)
(domain programRunning 2 ComputerProgram)
(documentation programRunning "(&%programRunning ?Process ?Program)
means that the &%ComputerProcess ?Process is executing the
&%ComputerProgram ?Program.")
;; definition of directoryOf
(instance directoryOf BinaryPredicate)
(domain directoryOf 1 ComputerFile)
(domain directoryOf 2 ComputerDirectory)
(documentation directoryOf "(&%directoryOf ?FILE ?DIRECTORY) means that
the &%ComputerFile ?FILE is in the &%ComputerDirectory ?DIRECTORY.")
;; definition of PhysicalAddress.
(subclass PhysicalAddress SymbolicString)
(documentation PhysicalAddress "The collection of all addresses which
identify a location of a &%ComputerFile.")
;; definition of AddressFn .
(instance AddressFn UnaryFunction)
(domain AddressFn 1 ComputerFile)
(range AddressFn PhysicalAddress)
(documentation AddressFn "(&%AddressFn ?FILE) returns as its value the
physical address of the &%ComputerFile ?FILE.")
; "ComputerDirectories contain information about the physical addresses
; of ComputerFiles which are listed in these directories" .
(=>
(and
(instance ?Directory ComputerDirectory)
(instance ?File ComputerFile)
(directoryOf ?File ?Directory))
(refers (AddressFn ?File) ?Directory))
;; definition of BitsPerSecond
(subclass BitsPerSecond TimeDependentQuantity)
(instance BitsPerSecond UnitOfMeasure)
(documentation BitsPerSecond "The measurement of the speed of data
transfer in a communications system.")
;; definition of PacketsPerSecond
(subclass PacketsPerSecond TimeDependentQuantity)
(instance PacketsPerSecond UnitOfMeasure)
(documentation PacketsPerSecond "The rate or speed of &%Packet-Networks
transferred in a second.")
;; definition of Packet
(subclass Packet ComputerData)
(documentation Packet "A block of data used for transmission in packet
switched systems.")
;; The following constants are specific to the Quite project
;; definition of SoftwareSystem
(subclass SoftwareSystem ComputationalSystem)
(documentation SoftwareSystem "This is the class of mutually supportive
groups of instances of &%ComputerProgram for a single general purpose.
For example, a database management system is a collection of many instances
of &%ComputerProgram that work together to store, retrieve, modify, and
delete data.")
; "A software system is a group of computer programs for a single
; general purpose" .
(=>
(instance ?System SoftwareSystem)
(forall (?Program ?Process)
(=>
(and
(part ?Program ?System)
(programRunning ?Process ?Program))
(exists (?Purpose)
(hasPurpose ?Process ?Purpose)))))
;; definition of HardwareSystem
(subclass HardwareSystem ComputerHardware)
(subclass HardwareSystem ComputationalSystem)
(documentation HardwareSystem "The class of hardware systems is the
connection of three types of physical modules: instances of
&%ComputerProcessor(s), &%ComputerMemory, and &%ComputerNetwork.
&%ComputerProcessors execute instructions from &%ComputerPrograms,
which usually include instructions to read and write data from
memory, and send data via instances of &%ComputerNetworks.")
; "A software system requires a hardware system to execute" .
(=>
(and
(instance ?Software SoftwareSystem)
(instance ?Process ComputerProcess)
(programRunning ?Process ?Software))
(exists (?Hardware)
(and
(instance ?Hardware HardwareSystem)
(computerRunning ?Process ?Hardware))))
; "A hardware system consists of three physical modules: processors,
; memory, and networks" .
(=>
(instance ?System HardwareSystem)
(exists (?Processor ?Memory ?Network)
(and
(instance ?Processor CPU)
(component ?System ?Processor)
(instance ?Memory ComputerMemory)
(component ?System ?Memory)
(instance ?Network ComputerNetwork)
(component ?System ?Network))))
; "When the data is sent from HardwareSystems, it is send via
; ComputerNetworks" .
(=>
(and
(instance ?System ?HardwareSystem)
(component ?Network ?System)
(instance ?Event DataTransfer)
(origin ?Event ?System))
(exists (?Network)
(and
(instance ?Network ComputerNetwork)
(instrument ?Event ?Network))))
;; definition of runsOn
(instance runsOn BinaryPredicate)
(instance runsOn AsymmetricRelation)
(domain runsOn 1 ComputerProgram)
(domain runsOn 2 Computer)
(documentation runsOn "(runsOn ?Program ?Computer) means that ?Program
is capable of running on ?Computer.")
(=>
(exists (?Process)
(and
(programRunning ?Process ?Program)
(computerRunning ?Process ?Computer)))
(runsOn ?Program ?Computer))
;; definition of StartupBlock .
(subclass StartupBlock ComputerProgram)
(documentation StartupBlock "A typically small instance of &%ComputerProgram
(a sequence of instructions that will run on a computer) whose function is
to load and initialize a typically larger instance of &%ComputerProgram
and start it running.")
;; definition of startupOf
(instance startupOf BinaryPredicate)
(domain startupOf 1 StartupBlock)
(domain startupOf 2 ComputerProgram)
(documentation startupOf "(&%startupOf ?STARTUP ?PROGRAM) holds just in
case an instance of &%StartupBlock ?STARTUP specifies a set of instructions
to start the ?PROGRAM.")
; "Each StartupBlock is a startup of some program" .
(=>
(instance ?Startup StartupBlock)
(exists (?Application)
(startupOf ?Startup ?Application)))
; "The startupBlock of an application starts the application" .
(=>
(and
(startupOf ?Startup ?Application)
(instance ?Process1 ComputerProcess)
(programRunning ?Process1 ?Startup)
(equal (WhenFn ?Process1) ?Time1))
(exists (?Process2 ?Time2)
(and
(instance ?Process2 ComputerProcess)
(programRunning ?Process2 ?Application)
(equal (WhenFn ?Process2) ?Time2)
(meetsTemporally ?Time1 ?Time2))))
;; definition of StartupFn
(instance StartupFn UnaryFunction)
(domain StartupFn 1 ComputerProgram)
(range StartupFn StartupBlock)
(documentation StartupFn "(&%StartupFn ?Program) returns an instance of
&%StartupBlock which contains the instructions to start the ?Program.")
;; definition of ShutdownBlock .
(subclass ShutdownBlock ComputerProgram)
(documentation ShutdownBlock "A typically small instance of
&%ComputerProgram whose function is to end a typically larger
instance of &%ComputerProgram.")
;; definition of shutdownOf .
(instance shutdownOf BinaryPredicate)
(domain shutdownOf 1 ShutdownBlock)
(domain shutdownOf 2 ComputerProgram)
(documentation shutdownOf "(&%shutdownOf ?SHUTDOWN ?PROGRAM) holds just
in case an instance of &%ShutdownBlock ?SHUTDOWN specifies a set of
instructions to end ?PROGRAM.")
; "ShutdownBlock is a shutdown of an application"
(=>
(instance ?Shutdown ShutdownBlock)
(exists (?Application)
(shutdownOf ?Shutdown ?Application)))
; "ShutdownBlock of an application ends the running version of the application"
(=>
(and
(shutdownOf ?Shutdown ?Application)
(instance ?Process1 ComputerProcess)
(programRunning ?Process1 ?Shutdown)
(equal (WhenFn ?Process1) ?Time1))
(exists (?Process2 ?Time2)
(and
(instance ?Process2 ComputerProcess)
(programRunning ?Process2 ?Application)
(equal (WhenFn ?Process2) ?Time2)
(meetsTemporally ?Time2 ?Time1))))
;; definition of ShutdownFn
(instance ShutdownFn UnaryFunction)
(domain ShutdownFn 1 ComputerProgram)
(range ShutdownFn ShutdownBlock)
(documentation ShutdownFn "(&%ShutdownFn ?Program) returns an instance of
&%ShutdownBlock which contains the instructions to end ?PROGRAM.")
;; definition of EnvironmentSoftwareAttribute .
(subclass EnvironmentSoftwareAttribute Attribute)
(documentation EnvironmentSoftwareAttribute "The class of attributes which
correspond to environment variables. Environment variables are defined
outside of a &%ComputerProgram, unlike ordinary variables that are
defined in the source code of the &%ComputerProgram. Typically, the
environment variable stores some value that many if not all
&%ComputerProgams will need when they execute. An example is the
environment variable PATH under Unix-like operating systems that stores
the &%ComputerDirectories where executable &%ComputerPrograms can be found.
Another example is the environment variable CLASSPATH for Java programs,
which stores the directory where Java class files can be found that will be
needed by any &%ComputerProgram written in Java.")
(subrelation environmentAttributes property)
(domain environmentAttributes 1 ComputerProgram)
(domain environmentAttributes 2 EnvironmentSoftwareAttribute)
(documentation environmentAttributes "(&%environmentAttributes ?Program
?Attribute) holds if ?Attribute is an &%EnvironmentSoftwareAttribute
which describes the &%ComputerProgram ?Program.")
(subclass ComputerInputDevice ComputerHardware)
(documentation ComputerInputDevice "A peripheral device that generates
input for the computer such as a keyboard, scanner, or mouse.")
(subclass ComputerOutputDevice ComputerHardware)
(documentation ComputerOutputDevice "Any peripheral that presents
output from the computer, such as a screen or printer.")
(subclass ComputerTerminal ComputerOutputDevice)
(documentation ComputerTerminal "A &%ComputerOutputDevice for displaying
information on some sort of screen or other reusable output surface. This
is contrasted with a &%Printer, which places a substance on a surface
that is for practical purposes, permanent.")
(subrelation standardInputDevice instrument)
(domain standardInputDevice 1 ComputerProcess)
(domain standardInputDevice 2 ComputerInputDevice)
(documentation standardInputDevice "(&%standardInputDevice ?PROCESS
?DEVICE) holds just in case the DEVICE is the predefined input channel
with which the running version of the program PROCESS is initialised.")
(=>
(programRunning ?Process ?Program)
(exists (?Device)
(standardInputDevice ?Process ?Device)))
(subrelation standardOutputDevice instrument)
(domain standardOutputDevice 1 ComputerProcess)
(domain standardOutputDevice 2 ComputerOutputDevice)
(documentation standardOutputDevice "(&%standardOutputDevice ?PROGRAM
?DEVICE) holds just in case the DEVICE is the predefined output channel
with which the running version of this program is initialised.")
; "The program of the process contains information about the standard
; output device of the process"
(=>
(programRunning ?Process ?Program)
(exists (?Device)
(standardOutputDevice ?Process ?Device)))
;; definition of standardErrorDevice .
(subrelation standardErrorDevice instrument)
(domain standardErrorDevice 1 ComputerProcess)
(domain standardErrorDevice 2 ComputerOutputDevice)
(documentation standardErrorDevice "(&%standardErrorDevice ?PROGRAM
?DEVICE) holds just in case the DEVICE is the predefined error channel
with which the running version of this program is initialised.")
; "The program of the process contains information about the standard
; error device of the process"
(=>
(programRunning ?Process ?Program)
(exists (?Device)
(standardErrorDevice ?Process ?Device)))
;; definition of hostOf
(instance hostOf BinaryPredicate)
(domain hostOf 1 ComputationalSystem)
(domain hostOf 2 Computer)
(documentation hostOf "(hostOf ?SYSTEM ?COMPUTER) means that ?COMPUTER
is the host of the computational system ?SYSTEM.")
;; definition of ProcessState
(subclass ProcessState ContentBearingObject)
(documentation ProcessState "The class of all the information required
for a &%ComputerProgram to run on a processor. It is a vector that
contains a pointer to the next program instruction to be executed as well
as the values of all intermediate and defined variables, the state of the
processor executing the program, and the allocated address space among
other data.")
(=>
(instance ?State ProcessState)
(exists (?Program)
(and
(instance ?Program ComputerProgram)
(forall (?Process)
(=>
(programRunning ?Process ?Program)
(represents ?State ?Process))))))
;; definition of stateOfProcess
(instance stateOfProcess BinaryRelation)
(domain stateOfProcess 1 ComputerProcess)
(domain stateOfProcess 2 ProcessState)
(documentation stateOfProcess "(&%stateOfProcess ?PROCESS ?STATE) says
that ?STATE is a state of the &%ComputerProcess ?PROCESS.")
;; definition of AutomaticApplication .
(subclass AutomaticApplication ComputerProgram)
(documentation AutomaticApplication "A program which is started
automatically, as opposed to an application started in response to
some condition becoming true.")
; "If an application is an automatic application, it is started when
; the software system is started".
(=>
(and
(instance ?Application AutomaticApplication)
(instance ?System SoftwareSystem)
(part ?Application ?System))
(part (StartupFn ?Application) (StartupFn ?System)))
;; definition of RM_StartApplication
(subclass RM_StartApplication ComputerProgram)
(documentation RM_StartApplication "A program started by a Resource
Management program, which determines if and where to start the
application.")
(=>
(instance ?RM RM_StartApplication)
(exists (?Application ?Process ?RMCopy)
(and
(instance ?Application ComputerProgram)
(programCopy ?RMCopy ?RM)
(programRunning ?Process (StartupFn ?Application))
(agent ?Process ?RMCopy))))
;; definition of ConsoleApplication .
(instance ConsoleApplication ComputerProgram)
(documentation ConsoleApplication "A Program which is started inside
an Xterm or other console.")
;; definition of RMProgram .
(subclass ResourceManagementProgram ComputerProgram)
(documentation ResourceManagementProgram "The class of resource
management programs.")
;; definition of rMProgram-of .
(instance rMProgram-of BinaryPredicate)
(domain rMProgram-of 1 ResourceManagementProgram)
(domain rMProgram-of 2 SoftwareSystem)
(documentation rMProgram-of "(&%rMProgram-of ?RM ?SYSTEM) means that
?RM is the resource management program of &%the SoftwareSystem ?SYSTEM.")
; "The resource management program of a software system controls
; applications in this system" .
(=>
(rMProgram-of ?RM ?System)
(exists (?Application ?Process ?RMCopy)
(and
(part ?Application ?System)
(programCopy ?RMCopy ?RM)
(programRunning ?Process ?Application)
(agent ?Process ?RMCopy))))
;; definition of programCopy
(instance programCopy AsymmetricRelation)
(subrelation programCopy containsInformation)
(domain programCopy 1 ComputerFile)
(domain programCopy 2 ComputerProgram)
(documentation programCopy "(&%programCopy ?File ?Program) means that
the &%ComputerFile ?File is one of the copies of the &%ComputerProgram
?Program.")
;; definition of criticalityLevel.
(instance criticalityLevel BinaryPredicate)
(domain criticalityLevel 1 ComputerProgram)
(domain criticalityLevel 2 Integer)
(documentation criticalityLevel "(&%criticalityLevel ?PROGRAM ?INTEGER)
holds just in case ?INTEGER indicates the relative priority of ?PROGRAM
with respect to other applications within the &%SoftwareSystem.")
;; definition of startupTimeDelay
(instance startupTimeDelay BinaryRelation)
(domain startupTimeDelay 1 ComputerProgram)
(domain startupTimeDelay 2 TimeDuration)
(documentation startupTimeDelay "(&%startupTimeDelay ?PROGRAM ?TIME)
says that ?TIME is the time to delay after the previous application
was started before starting the application ?PROGRAM.")
; "If an application has a startupTimeDelay of n seconds, then
; any process which runs after this application has a starting point
; n seconds later than the startup of this application."
(=>
(exists (?Time1 ?Time2 ?Time)
(and
(startupTimeDelay ?Application ?Delay)
(instance ?Process1 ComputerProcess)
(programRunning ?Process1 ?Application)
(equal (WhenFn ?Process1) ?Time1)
(instance ?Process2 ComputerProcess)
(equal (WhenFn ?Process2) ?Time2)
(meetsTemporally ?Time1 ?Time)
(meetsTemporally ?Time ?Time2)))
(measure ?Time ?Delay))
;; definition of Feedback
(subclass Feedback ContentBearingObject)
(documentation Feedback "The class of all messages to a resource
management program from one of its processes.")
(<=>
(instance ?Feedback Feedback)
(exists (?RM ?Process ?Program)
(and
(rMProgram-of ?RM ?Program)
(programRunning ?Process ?Program)
(instance ?Send DataTransfer)
(patient ?Send ?Feedback)
(destination ?Send ?RM))))
;; definition of processList
(instance processList Predicate)
(instance processList VariableArityRelation)
(documentation processList "The arguments of this relation are data
structures, each of which contains the information necessary for the
process already loaded by the operating system to execute on a processor.")
; "The processes in the list are ordered by the start time" .
(=>
(and
(processList @ROW)
(inList ?Process1 (ListFn @ROW))
(inList ?Process2 (ListFn @ROW))
(equal (ListOrderFn (ListFn @ROW) ?Number1) ?Process1)
(equal (ListOrderFn (ListFn @ROW) ?Number2) ?Process2)
(lessThan ?Number1 ?Number2))
(earlier (WhenFn ?Process1) (WhenFn ?Process2)))
;; definition of settlingTime
(instance settlingTime BinaryPredicate)
(domain settlingTime 1 ComputerProgram)
(domain settlingTime 2 TimeDuration)
(documentation settlingTime "(&%settlingTime ?PROGRAM ?TIME) says that
?TIME represents seconds to delay after an action was taken with respect
to QoS.")
;; definition of minimumReplications
(instance minimumReplications BinaryPredicate)
(domain minimumReplications 1 ComputerProgram)
(domain minimumReplications 2 PositiveInteger)
(documentation minimumReplications "(&%minimumReplications ?PROGRAM
?INTEGER) means that ?INTEGER represents the minimum copies of the
application ?PROGRAM required to be survivable, where a program is
survivable if the failure of one or more resources does not result
in the failure of the program. Either long MTTF for the system as a
whole or short MTTR when failure occurs would improve the survivability
of a program.")
; "MinimumReplications is the mininum number of copies of the application
; involved in a running process".
(=>
(minimumReplications ?Application ?MinCopies)
(greaterThanOrEqualTo
(CardinalityFn
(KappaFn ?Copy
(programRunning ?Copy ?Application))) ?MinCopies))
;; definition of maximumReplications
(instance maximumReplications BinaryPredicate)
(domain maximumReplications 1 ComputerProgram)
(domain maximumReplications 2 PositiveInteger)
(documentation maximumReplications "(&%maximumReplications ?PROGRAM ?INTEGER) means that
?INTEGER represents the maximum number of copies of this application which can be run
during a process.")
; "MaximumReplications is the maximum number of copies of the application
; allowed to run during a process".
(=>
(maximumReplications ?Application ?MaxCopies)
(greaterThanOrEqualTo ?MaxCopies
(CardinalityFn
(KappaFn ?Copy
(programRunning ?Copy ?Application)))))
;; definition of IPAddress
(subclass IPAddress PhysicalAddress)
(documentation IPAddress "The Internet Protocol address; a numeric address such as 123.231.32.2 that
the domain name server translates into a domain name.")
;; definition of ipAddressOf
(instance ipAddressOf BinaryPredicate)
(domain ipAddressOf 1 Computer)
(domain ipAddressOf 2 IPAddress)
(documentation ipAddressOf "(&%ipAddressOf ?HOST ?ADDRESS) holds if ?ADDRESS is the &%IPAddress of
the computer ?HOST.")
;; definition of portNumber
(instance portNumber BinaryPredicate)
(domain portNumber 1 ComputerProgram)
(domain portNumber 2 PositiveInteger)
(documentation portNumber "(&%portNumber ?PROGRAM ?NUMBER) holds if ?NUMBER identifies a protocol
port, i.e. a TCP-IP software abstraction used to distinguish different applications providing
services within a single destination computer. The different ports on a host are identified by a
positive 16-bit number.")
;; definition of processID .
(instance processID BinaryPredicate)
(domain processID 1 ComputerProcess)
(domain processID 2 PositiveInteger)
(documentation processID "(&%processID ?PROCESS ?NUMBER) holds if ?NUMBER is a unique number
generated by the operating system and used to refer to the &%ComputerProcess ?PROCESS. There
is usually no significance to the numbers as they are reused as old processes die and new processes
are created.")
;; definition of ProcessStatus .
(subclass ProcessStatus Attribute)
(documentation ProcessStatus "A class of attributes. Each instance of &%ProcessStatus describes a
status of a &%Process, such as &%ProcessFailure, &%ProcessSuccess, etc.")
;; definition of ProcessFailure .
(instance ProcessFailure ProcessStatus)
(documentation ProcessFailure "An attribute that denotes the failure of the &%Process to achieve
its goal.")
;; definition of ProcessSuccess .
(instance ProcessSuccess ProcessStatus)
(contraryAttribute ProcessSuccess ProcessFailure)
(documentation ProcessSuccess "An attribute that denotes the success of the &%Process to achieve
its goal.")
;; definition of status .
(subrelation status property)
(domain status 1 ComputerProcess)
(domain status 2 ProcessStatus)
(documentation status "(&%status ?PROCESS ?STATUS) holds if ?STATUS is the current status of ?PROCESS.")
(=>
(and
(status ?Process ProcessFailure)
(hasPurpose ?Process ?Purpose))
(not (holdsDuring (ImmediatePastFn (WhenFn ?Process)) ?Purpose)))
;; definition of ComputerComponent
(subclass ComputerComponent ComputerHardware)
(documentation ComputerComponent "An instance of &%ComputerComponent is a
piece of computer hardware that has measurable performance characteristics
in terms of different units. Components include hard drives, the performance
of which can be measured in terms of BitsPerSecond required to transfer data
to and from the drive, network adapters, the performance of which can be
measured by &%PacketsPerSecond units of data transfered to and from the adapter,
and other common components like &%ComputerMemory and &%CentralProcessingUnit.")
(subclass ComputerMemory ComputerComponent)
(subclass HardDiskDrive ComputerComponent)
(subclass CentralProcessingUnit ComputerComponent)
(=>
(instance ?Component ComputerComponent)
(exists (?Unit)
(unitMeasuringPerformance ?Component ?Unit)))
;; definition of NetworkAdapter
(subclass NetworkAdapter ComputerComponent)
(documentation NetworkAdapter "A network adapter, also known as a Network
Interface Card or NIC, is a physical device installed in a computer on its
system bus. Its purpose is to connect to a specific type of network,
usually an ethernet or a token ring network.")
(=>
(instance ?NA NetworkAdapter)
(exists (?Net)
(and
(instance ?Net ComputerNetwork)
(connected ?NA ?Net))))
;; definition of unitMeasuringPerformance .
(instance unitMeasuringPerformance BinaryPredicate)
(domain unitMeasuringPerformance 1 ComputerComponent)
(domain unitMeasuringPerformance 2 UnitOfMeasure)
(documentation unitMeasuringPerformance "(&%unitMeasuringPerformance ?COMPONENT
?UNIT) holds in case ?UNIT is an instance of &%UnitOfMeasure which is used to
measure the performance of ?COMPONENT.")
; "The performance of Hard Drives is measured in BitsPerSecond" .
(=>
(instance ?HardDrive HardDiskDrive)
(unitMeasuringPerformance ?HardDrive BitsPerSecond))
; "The performance of network adapters is measured by packets/second" .
(=>
(instance ?NA NetworkAdapter)
(unitMeasuringPerformance ?NA PacketsPerSecond))
;; definition of MonitoringProgram .
(subclass MonitoringProgram ComputerProgram)
(documentation MonitoringProgram "A program which monitors performance
of an application, a component, etc.")
(=>
(instance ?Monitor MonitoringProgram)
(exists (?System ?Event ?MonitorCopy)
(and
(systemMeasured ?Event ?System)
(programCopy ?MonitorCopy ?Monitor)
(agent ?Event ?MonitorCopy))))
;; definition of systemMeasured
(instance systemMeasured BinaryPredicate)
(instance systemMeasured AsymmetricRelation)
(domain systemMeasured 1 MeasuringPerformance)
(domain systemMeasured 2 ComputationalSystem)
(documentation systemMeasured "(&%systemMeasured ?Event ?System) means that
?Event is an event of measuring the performance of the &%ComputationalSystem
?System.")
;; definition of dataID .
(instance dataID BinaryPredicate)
(domain dataID 1 MonitoringProgram)
(domain dataID 2 SymbolicString)
(documentation dataID "(&%dataID ?PROGRAM ?NUMBER) holds if ?NUMBER is a small
number associated with an instance of &%MonitoringProgram.")
;; definition of MeasuringPerformance .
(subclass MeasuringPerformance ComputerProcess)
(documentation MeasuringPerformance "Each element of &%MeasuringPerformance
is an event of measuring the performance of an instance of &%ComputerComponent,
performed by a &%MonitoringProgram.")
(=>
(instance ?Event MeasuringPerformance)
(exists (?Program ?Copy)
(and
(instance ?Program MonitoringProgram)
(programCopy ?Copy ?Program)
(agent ?Event ?Copy))))
;; definition of componentDataID .
(instance componentDataID QuintaryPredicate)
(domain componentDataID 1 TimePosition)
(domainSubclass componentDataID 2 ComputerComponent)
(domain componentDataID 3 ComputerComponent)
(domain componentDataID 4 UnitOfMeasure)
(domain componentDataID 5 SymbolicString)
(documentation componentDataID "(&%componentDataID ?TIME ?COMPONENT ?INSTANCE
?UNIT ?NUMBER) holds if ?INSTANCE is an instance of ?COMPONENT, identified by
&%IDNumber ?NUMBER, and whose performance is measured by a &%UnitOfMeasure-ComputerPerformance ?UNIT. The timestamp ?TIME identifies the time when this
information was created.")
(=>
(componentDataID ?Time ?Component ?Instance ?Unit ?Number)
(instance ?Instance ?Component))
(=>
(componentDataID ?Time ?Component ?Instance ?Unit ?Number)
(unitMeasuringPerformance ?Instance ?Unit))
(=>
(componentDataID ?Time ?Component ?Instance ?Unit ?Number)
(refers ?Number ?Instance))
;; definition of heartBeatRate .
(subrelation heartBeatRate frequency)
(domain heartBeatRate 1 ComputerProgram)
(domain heartBeatRate 2 TimeDuration)
(documentation heartBeatRate "(&%heartBeatRate ?Program ?Period) holds if
?Period is the period at which the ComputerProgram ?Program sends its heartbeat
to a monitoring process.")
;; definition of MonitorConnectivityCmd .
(subclass MonitorConnectivityCmd MonitoringProgram)
(documentation MonitorConnectivityCmd "This is the command to get a list
of applications periodically.")
;; definition of MonitorApplicationCmd
(subclass MonitorApplicationCmd MonitoringProgram)
(documentation MonitorApplicationCmd "This command is to change the monitoring
for any component for which a &%componentDataID was sent on initial connection.")
;; definition of MonitorComponentCmd
(subclass MonitorComponentCmd MonitoringProgram)
(documentation MonitorComponentCmd "This is the command to monitor any of the
generic components - hard drive, network, cpu, memory, etc." )
;; definition of performanceResult.
(instance performanceResult TernaryPredicate)
(domain performanceResult 1 MeasuringPerformance)
(domain performanceResult 2 ComputerComponent)
(domain performanceResult 3 RealNumber)
(documentation performanceResult "(&%performanceResult ?EVENT ?COMPONENT
?NUMBER) holds if the performance of ?COMPONENT has a value ?NUMBER,
measured by ?EVENT, an instance of &%MeasuringPerformance.")
;; definition of monitorComponentData .
(instance monitorComponentData TernaryPredicate)
(domain monitorComponentData 1 TimePosition)
(domain monitorComponentData 2 SymbolicString)
(domain monitorComponentData 3 RealNumber)
(documentation monitorComponentData "(&%monitorComponentData ?TIME ?ID
?NUMBER) holds if at time ?TIME, a component with the &%IDNumber ?ID
has a performance of a value ?NUMBER.")
(=>
(and
(monitorComponentData ?Time1 ?ID ?Number)
(componentDataID ?Time2 ?Component ?Instance ?Unit ?ID))