-
Notifications
You must be signed in to change notification settings - Fork 73
/
ComputerInput.kif
3018 lines (2503 loc) · 121 KB
/
ComputerInput.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 and book:
;; 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. See also http://www.ontologyportal.org
;; Pease, A., (2011). Ontology: A Practical Guide. Articulate Software Press,
;; Angwin, CA. ISBN 978-1-889455-10-5.
(instance contraryAttributeWRT TernaryPredicate)
(domain contraryAttributeWRT 1 Attribute)
(domain contraryAttributeWRT 2 Attribute)
(domain contraryAttributeWRT 3 BinaryPredicate)
(documentation contraryAttributeWRT EnglishLanguage "(contraryAttributeWRT ?ATT1 ?ATT2 ?ATTPRED) means that nothing can
have both attributes at the same time using the attribute predicate ?ATTPRED.")
; can we express this?:
; only subrelations of &%attribute may be the third argument to &%contraryAttributeWRT:
; (condition
; (contraryAttributeWRT ?ATT1 ?ATT2 ?PRED)
; (subrelation ?PRED attribute))
; can we express this?:
; only instances of the domain of the third argument to &%contraryAttributeWRT
; are allowed as the first and second argument:
; (condition
; (and
; (contraryAttributeWRT ?ATT1 ?ATT2 ?PRED)
; (domain ?PRED 2 ?ATT_TYPE))
; (and
; (instance ?ATT1 ?ATT_TYPE)
; (instance ?ATT2 ?ATT_TYPE)))
; nothing can have two attributes using the same predicate simultaneously
; if they are disjoint with respect to that predicate
(=>
(and
(instance ?ATT1 Attribute)
(instance ?ATT2 Attribute)
(subrelation ?PRED attribute))
(not
(and
(contraryAttributeWRT ?ATT1 ?ATT2 ?PRED)
(?PRED ?ENTITY ?ATT1)
(?PRED ?ENTITY ?ATT2))))
; would it be more efficient to further restrict the attributes?:
; (=>
; (and
; (subrelation ?PRED attribute)
; (domain ?PRED 2 ?ATT_TYPE)
; (instance ?ATT1 ?ATT_TYPE)
; (instance ?ATT2 ?ATT_TYPE))
; (not
; (and
; (contraryAttributeWRT ?ATT1 ?ATT2 ?PRED)
; (?PRED ?ENTITY ?ATT1)
; (?PRED ?ENTITY ?ATT2))))
; ===============
(subclass GuidingMotion Guiding)
(documentation GuidingMotion EnglishLanguage "Controlling the motion (direction, trajectory, and/or speed) of an &%Object.")
(=>
(instance ?GUIDE GuidingMotion)
(exists (?MOTION)
(and
(subProcess ?MOTION ?GUIDE)
(instance ?MOTION Motion))))
(=>
(instance ?GUIDE GuidingMotion)
(exists (?MOVED)
(and
(patient ?GUIDE ?MOVED)
(instance ?MOVED Object))))
(=>
(and
(instance ?GUIDE GuidingMotion)
(patient ?GUIDE ?MOVED)
(subProcess ?MOTION ?GUIDE)
(instance ?MOTION Motion))
(patient ?MOTION ?MOVED))
(=>
(and
(instance ?GUIDE GuidingMotion)
(subProcess ?MOTION ?GUIDE)
(instance ?MOTION Motion)
(patient ?MOTION ?MOVED))
(patient ?GUIDE ?MOVED))
(subclass PhysicalGuiding Guiding)
(documentation PhysicalGuiding EnglishLanguage "Controlling the motion (direction,
trajectory, and/or speed) of a &%CorpuscularObject.")
(=>
(instance ?PGUIDE PhysicalGuiding)
(exists (?MOVED)
(and
(patient ?PGUIDE ?MOVED)
(instance ?MOVED CorpuscularObject))))
(subclass Keyboard Device)
(documentation Keyboard EnglishLanguage "A &%Keyboard has a set of keys for typing on to
transmit data corresponding to those keys or to cause physical action such as striking or
plucking a string, opening a valve, or marking of the selected keys on paper or some other
surface.")
(subclass ComputerIODevice ComputerOutputDevice)
(subclass ComputerIODevice ComputerInputDevice)
(documentation ComputerIODevice EnglishLanguage "A &%ComputerIODevice is both a
&%ComputerInputDevice and a &%ComputerOutputDevice.")
(subclass ComputerTerminal ComputerIODevice)
;; It is already defined as a ComputerOutputDevice.
(documentation ComputerTerminal EnglishLanguage "An interactive combination &%ComputerInputDevice
and &%ComputerOutputDevice that does not have an internal computer. The input device sends
(normally) characters input by the user and the output device relays output to the user. Early
computer terminals output text to paper; terminals for sight disadvantaged people may provide
audio or tactile output to the user, but most terminals around the turn of the 21st Century
display text and/or images on a display device. Traditional computer terminals have given way
to personal computers with separate keyboards and screens or to laptop and tablet computers
which operate with an internal computer.
A &%ComputerTerminal is contrasted with a &%Printer, which is an output only device which does
not output directly in view of the user and which only makes hardcopies of computer output by
altering the surface of the hard copy in a way that is for practical purposes, permanent.")
(subclass ComputerDisplay ComputerOutputDevice)
(subclass ComputerDisplay DataDisplayDevice)
(documentation ComputerDisplay EnglishLanguage "A &%ComputerOutputDevice for displaying
information on some sort of screen or other reusable visible output surface. This is contrasted
with a &%Printer, which places a substance on a surface that is for practical purposes,
permanent. A display may be part of a computer, a computer terminal, or a separate device.
A single computer may be connected to multiple displays, either all remote, or one physically
part of the computer and the other(s) remote.")
(disjoint ComputerDisplay Printer)
(instance displayedUpon BinaryPredicate)
(domain displayedUpon 1 Image)
(domain displayedUpon 2 ComputerDisplay)
(documentation displayedUpon EnglishLanguage "(displayedUpon ?IMAGE ?DISPLAY) means that the
image, ?IMAGE is displayed upon the &%ComputerDisplay, ?DISPLAY. A computer connected to
multiple &%ComputerDisplays can have the same images displayed upon more than one display, or
have them restricted to a single display.")
(subclass ComputerScreen ComputerDisplay)
(documentation ComputerScreen EnglishLanguage "A &%ComputerDisplay for displaying information
on some sort of screen.")
(=>
(instance ?SCREEN ComputerScreen)
(shape ?SCREEN Rectangle))
(subclass ComputerKeyboard_Generic ComputerInputDevice)
(documentation ComputerKeyboard_Generic EnglishLanguage "A &%ComputerInputDevice for accepting typed
input. This could be a keyboard with a typewriter layout, a cell phone keypad or any other
similar device. It could be a keyboard displayed upon a &%ComputerScreen or be a physical
&%Keyboard.")
(subclass ComputerInputButton ComputerInputDevice)
(documentation ComputerInputButton EnglishLanguage "A physical &%ComputerInputDevice such
that pushing the button down, pushing it down twice quickly, and/or holding it down causes
a signal to be sent to a computer (if everything necessary is turned on and connected). This
could be a key on a keyboard, mouse, telephone, ATM, or other piece of equipment.")
(subclass MouseButton ComputerInputButton)
(documentation MouseButton EnglishLanguage "A &%ComputerInputButton on a &%ComputerMouse.")
(subclass PhysicalRightCIButton ComputerInputButton)
(documentation PhysicalRightCIButton EnglishLanguage "A &%ComputerInputButton physically on
the right side of a set of &%ComputerInputButtons. A computer system may be told to logically
switch the right and left buttons (e.g., for a person who uses a mouse in the left hand -- in
such a case, the &%LeftCIButton is the &%PhysicalRightCIButton).")
(subclass PhysicalLeftCIButton ComputerInputButton)
(documentation PhysicalLeftCIButton EnglishLanguage "A &%ComputerInputButton physically on the
left side of a set of &%ComputerInputButtons. A computer system may be told to logically switch
the right and left buttons (e.g., for a person who uses a mouse in the left hand -- in such a
case, the &%RightCIButton is the &%PhysicalLeftCIButton).")
(subclass RightCIButton ComputerInputButton)
(documentation RightCIButton EnglishLanguage "A &%ComputerInputButton logically on the right
side of a set of &%ComputerInputButtons. Normally, the &%PhysicalRightCIButton. A computer
system may be told to logically switch the right and left buttons (e.g., for a person who uses
a mouse in the left hand -- in such a case, the &%RightCIButton is the leftmost physical button.")
(subclass LeftCIButton ComputerInputButton)
(documentation LeftCIButton EnglishLanguage "A &%ComputerInputButton logically on the left side
of a set of &%ComputerInputButtons. Normally, the &%PhysicalLeftCIButton. A computer system may
be told to logically switch the right and left buttons (e.g., for a person who uses a mouse in the
left hand -- in such a case, the &%LeftCIButton is the rightmost physical button.")
(disjoint RightCIButton LeftCIButton)
(=>
(and
(instance ?RIGHT PhysicalRightCIButton)
(component ?RIGHT ?DEV)
(instance ?DEV ComputerInputDevice))
(exists (?LEFT)
(and
(instance ?LEFT PhysicalLeftCIButton)
(component ?LEFT ?DEV)
(orientation ?RIGHT ?LEFT Left))))
(subclass MiddleCIButton ComputerInputButton)
(documentation RightCIButton EnglishLanguage "A &%ComputerInputButton in the middle of a row
of three &%ComputerInputButtons.")
(disjoint RightCIButton MiddleCIButton)
(disjoint MiddleCIButton LeftCIButton)
; If a device has a &%MiddleCIButton, then it has a &%RightCIButton oriented to its
; right and a &%LeftCIButton oriented to its left:
(=>
(and
(instance ?MID MiddleCIButton)
(component ?MID ?DEV)
(instance ?DEV ComputerInputDevice))
(exists (?LEFT ?RIGHT)
(and
(instance ?RIGHT RightCIButton)
(instance ?LEFT LeftCIButton)
(component ?RIGHT ?DEV)
(component ?LEFT ?DEV)
(between ?LEFT ?MID ?RIGHT)
(orientation ?MID ?LEFT Left)
(orientation ?MID ?RIGHT Right))))
(subclass ComputerKeyboardKey ComputerInputButton)
(documentation ComputerKeyboardKey EnglishLanguage "A &%ComputerInputButton on a &%ComputerKeyboard.")
(disjoint ComputerKeyboardKey RightCIButton)
(disjoint ComputerKeyboardKey MiddleCIButton)
(disjoint ComputerKeyboardKey LeftCIButton)
(disjoint ComputerKeyboardKey MouseButton)
; every Computer Keyboard Key is typically part of a Computer Keyboard
(typicalPart ComputerKeyboardKey ComputerKeyboard_Generic)
; every Computer Keyboard Key is part of no more than one Computer Keyboard
(=>
(and
(instance ?KEY ComputerKeyboardKey)
(instance ?KEYBOARD1 ComputerKeyboard_Generic)
(component ?KEY ?KEYBOARD1)
(instance ?KEYBOARD2 ComputerKeyboard_Generic)
(component ?KEY ?KEYBOARD2))
(equal ?KEYBOARD1 ?KEYBOARD2))
; every Computer Keyboard has a Computer Keyboard Key as a component
(=>
(instance ?KEYBOARD ComputerKeyboard_Generic)
(exists (?KEY)
(and
(instance ?KEY ComputerKeyboardKey)
(component ?KEY ?KEYBOARD))))
(subclass CharacterKey ComputerKeyboardKey)
(documentation CharacterKey EnglishLanguage "A &%CharacterKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeyboard that sends a single (printable or whitespace) character to a computer to which it is attached.")
(subclass SpecialComputerKeyboardKey ComputerKeyboardKey)
(documentation SpecialComputerKeyboardKey EnglishLanguage "A &%SpecialComputerKeyboardKey is a type of
&%ComputerKeyboardKey on a &%ComputerKeyboard that does not simply send a single visible character to a computer to which
it is attached. This includes the Enter/Return key, backspace, delete, function, control, shift, and
other non-character keys.")
(disjoint SpecialComputerKeyboardKey CharacterKey)
(subclass TabKey SpecialComputerKeyboardKey)
(documentation TabKey EnglishLanguage "An &%TabKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeyboard ^T (tab) to a computer to which it is attached. A tab character instructs
a display algorithm to move to the next tab stop, which is at fixed horizontal points. Some
text editors, especially programming editors, may insert several space characters, rather
than a tab character, to align the subsequent text at a tab stop." )
(subclass EnterKey SpecialComputerKeyboardKey)
(documentation EnterKey EnglishLanguage "An &%EnterKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeyboard often labeled Enter or Return which sends a ^L (newline) and/or ^M (return) to a
computer to which it is attached." )
(subclass ArrowKey SpecialComputerKeyboardKey)
(documentation ArrowKey EnglishLanguage "An &%ArrowKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeypad with a right, left, up, or down graphic.")
(disjoint ArrowKey EnterKey)
(subclass RightArrowKey ArrowKey)
(documentation RightArrowKey EnglishLanguage "A &%RightArrowKey is a type of &%ArrowKey on a
&%ComputerKeypad with a right pointing graphic.")
(subclass LeftArrowKey ArrowKey)
(documentation LeftArrowKey EnglishLanguage "A &%LeftArrowKey is a type of &%ArrowKey on a
&%ComputerKeypad with a left pointing graphic.")
(disjoint LeftArrowKey RightArrowKey)
(subclass UpArrowKey ArrowKey)
(documentation UpArrowKey EnglishLanguage "A &%UpArrowKey is a type of &%ArrowKey on a
&%ComputerKeypad with a upward pointing graphic." )
(disjoint UpArrowKey LeftArrowKey)
(disjoint UpArrowKey RightArrowKey)
(subclass DownArrowKey ArrowKey)
(documentation DownArrowKey EnglishLanguage "A &%DownArrowKey is a type of &%ArrowKey on a
&%ComputerKeypad with a downward pointing graphic.")
(disjoint DownArrowKey RightArrowKey)
(disjoint DownArrowKey LeftArrowKey)
(disjoint UpArrowKey DownArrowKey)
(subclass NumberedFunctionKey SpecialComputerKeyboardKey)
(documentation NumberedFunctionKey EnglishLanguage "A &%NumberedFunctionKey is a type of
&%ComputerKeyboardKey on a &%ComputerKeyboard that does not send a single character to a
computer to which it is attached. A &%ComputerKeyboard either has no &%NumberedFunctionKey
or more than one &%NumberedFunctionKey.")
(disjoint NumberedFunctionKey EnterKey)
(disjoint NumberedFunctionKey ArrowKey)
(subclass MultiKeypressKey SpecialComputerKeyboardKey)
(documentation MultiKeypressKey EnglishLanguage "A &%MultiKeypressKey is a type of
&%ComputerKeyboardKey (including &%ShiftKey, &%ControlKey, and &%AltKey) which is not
intended to send a character from the keyboard when it is pressed, but to cause a
different character (or set of characters) to be sent from a keyboard when another
key is pressed while it is being held down.")
(disjoint MultiKeypressKey NumberedFunctionKey)
(disjoint MultiKeypressKey EnterKey)
(disjoint MultiKeypressKey ArrowKey)
(subclass FunctionKey MultiKeypressKey)
(documentation FunctionKey EnglishLanguage "A &%FunctionKey is a type of &%ComputerKeyboardKey
on a &%ComputerKeyboard may be labeled ``Fn''. It acts similar to a &%ShiftKey, &%ControlKey,
or &%AltKey to cause a different character (or set of characters) to be sent from a keyboard
when another key is pressed.")
(subclass ShiftKey MultiKeypressKey)
(documentation ShiftKey EnglishLanguage "A &%ShiftKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeyboard often labeled ``Shift'' which affects the output of other keys if typed
while it is being held down.")
(disjoint ShiftKey FunctionKey)
(subclass ControlKey MultiKeypressKey)
(documentation ControlKey EnglishLanguage "A &%ControlKey is a type of &%ComputerKeyboardKey on
a &%ComputerKeyboard often labeled ``Ctrl'' which affects the output of other keys if typed
while it is being held down.")
(disjoint ControlKey ShiftKey)
(disjoint ControlKey FunctionKey)
(subclass AltKey MultiKeypressKey)
(documentation AltKey EnglishLanguage "An &%AltKey is a type of &%ComputerKeyboardKey on a
&%ComputerKeyboard often labeled ``Shift'' which affects the output of other keys if typed
while it is being held down.")
(disjoint AltKey ControlKey)
(disjoint AltKey ShiftKey)
(disjoint AltKey FunctionKey)
(subclass TouchpadKey ComputerInputButton)
(documentation TouchpadKey EnglishLanguage "A &%ComputerInputButton on a &%ComputerTouchpad.
A touchpad key may be a &%RightCIButton, &%LeftCIButton, or &%MiddleCIButton.")
(disjoint ComputerKeyboardKey TouchpadKey)
(subclass ComputerKeyboard ComputerKeyboard_Generic)
(subclass ComputerKeyboard Keyboard)
(documentation ComputerKeyboard EnglishLanguage "A physical (as opposed to displayed)
&%ComputerInputDevice for accepting typed input with a typewriter layout. A
&%ComputerKeyboard may have additional keys and arrays of keys that are not on a
typewriter keyboard.")
(partTypes ComputerKeyboard ComputerKeyboardKey)
(subclass ComputerKeypad ComputerKeyboard_Generic)
(documentation ComputerKeypad EnglishLanguage "A &%ComputerKeyboard_Generic that does
not have a typewriter layout.")
; ===========
(subclass ComputerMouse ComputerInputDevice)
(documentation ComputerMouse EnglishLanguage "A &%ComputerInputDevice that fits
in a person's hand for accepting point and click input on a flat 2D surface. A computer
mouse has one or more buttons and may have a &%ScrollWheel as well. A mouse may be
connected to a computer by a power and signalling cable or may have a wireless connection.")
(=>
(instance ?PROCESS
(OperatingFn ComputerMouse))
(exists (?SURFACE)
(and
(instance ?SURFACE Object)
(attribute ?SURFACE Flat)
(eventLocated ?PROCESS ?SURFACE))))
(disjoint ComputerMouse ComputerKeyboard)
(partTypes ComputerMouse MouseButton)
(typicalPart MouseButton ComputerMouse)
(subclass ScrollWheel ComputerInputDevice)
(documentation ScrollWheel EnglishLanguage "A &%ComputerInputDevice
that consists of a wheel that projects perpendicularly out of a
surface. A &%ComputerUser may rotate it in either direction with a
finger. &%ScrollWheels are often part of &%ComputerMouses.")
(disjoint ScrollWheel ComputerKeyboard_Generic)
(disjoint ScrollWheel ComputerMouse)
(subclass TouchSensitiveComputerInputDevice ComputerInputDevice)
(documentation TouchSensitiveComputerInputDevice EnglishLanguage "A
touch-sensitive &%ComputerInputDevice for accepting point and click
input on a 2D surface. The device is operated by moving (normally) a
finger across the surface of the device. Clicking may be achieved by
clicking on an adjacent button or by tapping the surface. Two basic
types of &%TouchSensitiveComputerInputDevices are &%ComputerTouchpad
and &%TouchScreen.")
(disjoint TouchSensitiveComputerInputDevice ComputerMouse)
(disjoint TouchSensitiveComputerInputDevice ComputerKeyboard)
(disjoint TouchSensitiveComputerInputDevice ScrollWheel)
(subclass ComputerTouchpad TouchSensitiveComputerInputDevice)
(documentation ComputerTouchpad EnglishLanguage "A touch-sensitive
&%ComputerInputDevice for accepting point and click input on a 2D
surface. The device is operated by moving (normally) a finger across
the surface of the device. Clicking may be achieved by clicking on an
adjacent button or by tapping the surface.")
(disjoint ComputerScreen ComputerTouchpad)
(subclass ComputerTouchscreen TouchSensitiveComputerInputDevice)
(subclass ComputerTouchscreen ComputerScreen)
(documentation ComputerTouchscreen EnglishLanguage "A touch-sensitive
&%ComputerScreen for accepting point and click input on its display
surface. The device is operated by moving (normally) a finger across
the surface of the device. Clicking is achieved by tapping the
surface. Multi-finger gestures may have other effects.")
(subclass ComputerTouchscreenKeyboard ComputerTouchscreen)
(subclass ComputerTouchscreenKeyboard Icon)
(subclass ComputerTouchscreenKeyboard Image)
(subclass ComputerTouchscreenKeyboard ComputerKeyboard_Generic)
(subclass ComputerTouchscreenKeyboard TouchSensitiveComputerInputDevice)
(documentation ComputerTouchscreenKeyboard EnglishLanguage "A portion
of a &%ComputerTouchscreen which displays a keyboard and acts as a
keyboard, accepting taps on the key images as if the keys were
typed.")
(=>
(instance ?KEYBOARD ComputerTouchscreenKeyboard )
(exists (?SCREEN)
(and
(instance ?SCREEN ComputerTouchscreen )
(displayedUpon ?KEYBOARD ?SCREEN))))
(subclass ComputerTouchscreenKeypad ComputerTouchscreenKeyboard)
(subclass ComputerTouchscreenKeypad ComputerKeypad)
(subclass ComputerTouchscreenKeypad ComputerTouchscreen)
(documentation ComputerTouchscreenKeypad EnglishLanguage "A portion of
a &%ComputerTouchscreen which displays a keyboard and acts as a
keyboard, accepting taps on the key images as if the keys were
typed.")
; ===
(subclass SpeakerDevice Device)
(documentation SpeakerDevice EnglishLanguage "A &%Device for
projecting sound into a medium.")
(=>
(instance ?SPEAKER SpeakerDevice)
(capability RadiatingSound instrument ?SPEAKER))
(subclass ElectricSpeakerDevice SpeakerDevice)
(subclass ElectricSpeakerDevice ElectricDevice)
(documentation ElectricSpeakerDevice EnglishLanguage "A combination
&%SpeakerDevice and &%ElectricDevice.")
(=>
(and
(instance ?DEV SpeakerDevice)
(instance ?DEV ElectricDevice))
(instance ?DEV ElectricSpeakerDevice))
(subclass Loudspeaker ElectricSpeakerDevice)
(documentation Loudspeaker EnglishLanguage "A &%SpeakerDevice for
projecting sound through the air. A loudspeaker produces louder sound
than earphones or a hearing aid.")
(subclass Earphone ElectricSpeakerDevice)
(subclass Earphone WearableItem)
(documentation Earphone EnglishLanguage "A &%WearableItem worn on the
head with an &%ElectricSpeaker device located near one or both ears.")
(disjoint Earphone Loudspeaker)
(=>
(and
(instance ?EARPHONE Earphone)
(wears ?PERSON ?EARPHONE)
(instance ?HEAD Head)
(part ?HEAD ?PERSON))
(located ?EARPHONE ?HEAD))
(subclass ComputerLoudspeaker ComputerOutputDevice)
(subclass ComputerLoudspeaker Loudspeaker)
(documentation ComputerLoudspeaker EnglishLanguage "A &%Loudspeaker
which is also a &%ComputerOutputDevice, whether or not it is currently
connected to a computer. This includes loudspeakers that are integral
to a computer component as well as ones designed to be plugged into a
standard computer I/O connection.")
(=>
(and
(instance ?DEV Loudspeaker)
(instance ?DEV ComputerOutputDevice))
(instance ?DEV ComputerLoudspeaker))
(subclass InternalComputerLoudspeaker ComputerLoudspeaker)
(documentation InternalComputerLoudspeaker EnglishLanguage "A
&%ComputerLoudspeaker which is internal to a computer, computer
keyboard, or computer screen.")
(partTypes InternalComputerLoudspeaker ComputerHardware)
(subclass ComputerMicrophone ComputerInputDevice)
(subclass ComputerMicrophone Microphone)
(documentation ComputerLoudspeaker EnglishLanguage "A &%Microphone
which is also a &%ComputerInputDevice, whether or not it is currently
connected to a computer. This includes microphones that are integral
to a computer component as well as ones designed to be plugged into a
standard computer I/O connection.")
(=>
(and
(instance ?DEV Microphone)
(instance ?DEV ComputerOutputDevice))
(instance ?DEV ComputerMicrophone))
(subclass VideoCamera Camera)
(subclass VideoCamera ElectricDevice)
(documentation VideoCamera EnglishLanguage "A &%Camera for taking
video images.")
(subclass Modem ComputerIODevice)
(documentation Modem EnglishLanguage "A type of ComputerIODevice and
ComputerPeripheralDevice. Each Modem is a device designed to
facilitate communication between computers by modulating analog
signals to encode digital information, and demodulating analog signals
to decode information back into digital format.")
(subclass CableModem Modem)
(documentation CableModem EnglishLanguage "A type of Modem that
provides bi-directional data communication via radio frequency
channels on a fiberoptic cable. Cable modems are primarily used to
deliver broadband Internet access in the form of cable Internet.")
(=>
(and
(instance ?MODEM CableModem)
(instance ?COMM Communication)
(instrument ?COMM ?MODEM))
(exists (?CABLE)
(and
(instance ?CABLE Cable)
(instrument ?COMM ?CABLE)
(connectedEngineeringComponents ?CABLE ?MODEM))))
(subclass RadioModem Modem)
(documentation RadioModem EnglishLanguage "A type of Modem that
provides bi-directional data communication via radio connection with a
network or computer.")
(disjoint RadioModem CableModem)
(subclass ComputerHardware EngineeringComponent)
;; assertion missing from QoSontology.kif
(subclass Joystick ComputerInputDevice)
(documentation Joystick EnglishLanguage "A type of
&%ComputerInputDevice with a stick that can be activated to control a
cursor in the X and Y directions. A &%Joystick may or may not have an
attached button for clicking.")
(subclass Trackball ComputerInputDevice)
(documentation Trackball EnglishLanguage "A type of
&%ComputerInputDevice with a ball that can be rolled to control a
cursor in the X and Y directions. A &%Trackball may or may not have an
attached button for clicking.")
(disjoint Joystick Trackball)
(subclass GameIODevice ComputerIODevice)
(documentation GameIODevice EnglishLanguage "A type of
&%ComputerIODevice designed for playing video games.")
(subclass GamePad GameIODevice)
(documentation GamePad EnglishLanguage "A type of &%GameIODevice
designed being held in two hands with the fingers, including thumbs
being used to control multiple buttons and possibly other input
devices such as &%Joysticks.")
(subclass Accelerometer Sensor)
(subclass Accelerometer ElectricDevice)
(documentation Accelerometer EnglishLanguage "A type of
&%ElectricDevice used to measure acceleration.")
(subclass GameIODeviceWithAccelerometer GameIODevice)
(documentation GameIODeviceWithAccelerometer EnglishLanguage "A type
of &%GameIODevice designed to be moved in three dimensions to detect
sorts of motion used in sports and other physical activities.")
(partTypes GameIODeviceWithAccelerometer Accelerometer)
(=>
(and
(instance ?DEVICE GameIODevice)
(instance ?ACCELEROMETER Accelerometer)
(component ?ACCELEROMETER ?DEVICE))
(instance ?DEVICE GameIODeviceWithAccelerometer))
(subclass InternalDigitalDataStorageDevice DigitalDataStorageDevice)
(documentation InternalDigitalDataStorageDevice EnglishLanguage "A type of &%DigitalDataStorageDevice
that is installed in a &%Computer and not readily removable.")
(subclass RemovableDigitalDataStorageDevice DigitalDataStorageDevice)
(documentation RemovableDigitalDataStorageDevice EnglishLanguage "A type of &%DigitalDataStorageDevice
that can be temporarily installed in a computer and is readily removable.")
(disjoint InternalDigitalDataStorageDevice RemovableDigitalDataStorageDevice)
(subclass ComputerDisk DigitalDataStorageDevice)
(documentation ComputerDisk EnglishLanguage "A type of &%DigitalDataStorageDevice that is disk-shaped
and is read while being spun in a &%DiskDrive.")
(=>
(instance ?DISK ComputerDisk)
(shape ?DISK DiskShaped))
(subclass HardDisk ComputerDisk)
(documentation HardDisk EnglishLanguage "A type of &%ComputerDisk that is hard, rather than floppy.
The 3 1/2'' floppy disk is considered a type of &%Floppy disk even though it is hard. Hard disks can
be internal to the computer, internal to an external drive, or removable.")
(subclass InternalHardDisk HardDisk)
(subclass InternalHardDisk InternalDigitalDataStorageDevice)
(documentation InternalHardDisk EnglishLanguage "A type of &%HardDisk that is installed in a &%Computer
(in its &%HardDiskDrive) and is not readily removable.")
(=>
(instance ?DISK InternalHardDisk)
(exists (?DRIVE)
(and
(instance ?DRIVE HardDiskDrive)
(component ?DISK ?DRIVE))))
(subclass RemovableDisk ComputerDisk)
(subclass RemovableDisk RemovableDigitalDataStorageDevice )
(documentation RemovableDisk EnglishLanguage "A type of &%ComputerDisk that can be temporarily installed
in a computer (in a &%DiskDrive) and is readily removable.")
(disjoint RemovableDisk InternalHardDisk)
(subclass CartridgeHardDisk HardDisk)
(subclass CartridgeHardDisk RemovableDisk)
(documentation CartridgeHardDisk EnglishLanguage "A type of &%HardDisk that can be temporarily installed
in a computer (in its &%HardDiskDrive) and is readily removable.")
(subclass FloppyDisk RemovableDisk)
(documentation FloppyDisk EnglishLanguage "A type of &%ComputerDisk that can be temporarily installed in
a &%DiskDrive and is readily removable.")
(disjoint FloppyDisk HardDisk)
(subclass CompactDisc RemovableDigitalDataStorageDevice)
; CompactDisc is defined in Media.kif
;;MSv: Different types of &%OpticalDiscs moved to Media.kif
;;(subclass CD-ROM CompactDisc)
;;(subclass CD-ROM ReadOnlyMemoryDataStorage)
;;(subclass CD-ROM ComputerDisc)
;;(subclass CD-ROM ComputerInputDevice)
;;(documentation CD-ROM EnglishLanguage "A type of &%CompactDisc that can be read but not written on.")
;;(disjoint CD-ROM ComputerOutputDevice)
;;(subclass CD-R CompactDisc)
;;(subclass CD-R WriteOnceDataStorage)
;;(subclass CD-WriteOnce ComputerDisk)
;;(subclass CD-WriteOnce ComputerIODevice)
;;(documentation CD-R EnglishLanguage "A type of &%CompactDisc that can be written on once and read
;;from multiple times.")
;;(subclass CD-RW CompactDisc)
;;(subclass CD-RW RewritableDataStorage)
;;(subclass CD-RW ComputerDisk)
;;(subclass CD-RW ComputerIODevice)
;;(documentation CD-RW EnglishLanguage "A type of &%CompactDisc that can be written on and read from multiple times.")
;;(disjoint CD-R CD-ROM)
;;(subclass BluRayDisc OpticalDisc)
;;(documentation BluRayDisc EnglishLanguage "A type of &%CompactDisc that has significantly more storage
;;than a &%DVD.")
;;(disjoint BluRayDisc CompactDisc)
;;(disjoint BluRayDisc DVD)
(subclass DiskDrive ComputerComponent)
(subclass DiskDrive ComputerIODevice)
;;(subclass DiskDrive DigitalDataStorageDevice )
(documentation DiskDrive EnglishLanguage "A device that can read and (often) write &%ComputerDisks.")
(instance diskTypeForDrive BinaryPredicate)
(domainSubclass diskTypeForDrive 1 ComputerDisk)
(domainSubclass diskTypeForDrive 2 DiskDrive)
(documentation diskTypeForDrive EnglishLanguage "(diskTypeForDrive ?DISK_TYPE ?DRIVE_TYPE) means that
disks of type ?DISK_TYPE are designed to be used by drives of type ?DRIVE_TYPE and such drives are
designed to read (and possibly write) disks of type ?DISK_TYPE.")
(subclass ExternalDiskDrive DiskDrive)
(documentation ExternalDiskDrive EnglishLanguage "A type of &%DiskDrive that can be attached to a
&%Computer by a cable.")
(disjoint ExternalDiskDrive InternalHardDisk)
(subclass ExternalHardDiskDrive HardDiskDrive)
(subclass ExternalHardDiskDrive ExternalDiskDrive)
(documentation ExternalHardDiskDrive EnglishLanguage "A type of &%HardDiskDrive that can be attached
to a &%Computer by a cable.")
(subclass DiskDriveWithRemovableDisks DiskDrive)
(documentation DiskDriveWithRemovableDisks EnglishLanguage "A type of &%DiskDrive that can have different
&%ComputerDisks installed at different times. Insertion and removal of a disk are simple processes.")
(subclass CartridgeHardDiskDrive HardDiskDrive)
(subclass CartridgeHardDiskDrive DiskDriveWithRemovableDisks)
(documentation CartridgeHardDiskDrive EnglishLanguage "A type of &%HardDiskDrive that can have different
&%CartridgeHardDisks at different times. Insertion and removal of a disk are simple processes.")
(diskTypeForDrive CartridgeHardDisk CartridgeHardDiskDrive)
(subclass HardDiskDrive DiskDrive)
; defined in QoSontology.kif
; (documentation HardDiskDrive EnglishLanguage "A device that can read and write &%ComputerHardDisks.")
(subclass FloppyDiskDrive DiskDriveWithRemovableDisks)
(documentation FloppyDiskDrive EnglishLanguage "A device that can read and write &%FloppyDisks.")
(diskTypeForDrive FloppyDisk FloppyDiskDrive)
(subclass OpticalDiscDrive DiskDrive)
(documentation OpticalDiscDrive EnglishLanguage "A device that can read and (in some cases) write certain
kinds of &%OpticalDisc.")
(diskTypeForDrive OpticalDisc OpticalDiscDrive)
(subclass CDDrive OpticalDiscDrive)
(documentation CDDrive EnglishLanguage "A device that can read and (in some cases) write &%CompactDiscs.")
(diskTypeForDrive CompactDisc CDDrive)
(subclass DVDDrive OpticalDiscDrive)
(documentation DVDDrive EnglishLanguage "A device that can read and (in some cases) write &%DVDs.")
(diskTypeForDrive DVD DVDDrive)
(subclass BluRayDrive OpticalDiscDrive)
(documentation BluRayDrive EnglishLanguage "A device that can read and (in some cases) write &%BluRayDiscs.")
(diskTypeForDrive BluRayDisc BluRayDrive)
; =============================
(subclass SolidStateDataStorageDevice DigitalDataStorageDevice)
(documentation SolidStateDataStorageDevice EnglishLanguage "A type of &%DigitalDataStorageDevice which
can be read with no moving parts.")
(subclass FlashDrive SolidStateDataStorageDevice)
(subclass FlashDrive ComputerIODevice)
(subclass FlashDrive RemovableDigitalDataStorageDevice)
(documentation SolidStateDataStorageDevice EnglishLanguage "A &%FlashDrive is removable
&%SolidStateDataStorageDevice that connects to a USB port. A &%FlashDrive is alternatively called
a ``USB drive'', ``USB flash drive'', ``thumb drive'', ``jump drive'', and ``pen drive''.")
(subclass MemoryCard SolidStateDataStorageDevice)
(subclass MemoryCard RemovableDigitalDataStorageDevice)
(subclass MemoryCard ComputerIODevice)
(documentation MemoryCard EnglishLanguage "A type of &%RemovableDigitalDataStorageDevice with no moving
parts, that can be inserted into a camera, cell phone, computer, or similar device; written on that
device; and switched to another device to be read.")
(disjoint FlashDrive MemoryCard)
(subclass Software Procedure)
(documentation Software EnglishLanguage "A set of instructions in a computer programming language that
can be executed by a computer, possibly after compilation into another programming language. The term
&%Software includes &%ComputerPrograms (free-standing software), object methods, subroutines and
software packages.")
(subclass ComputerProgram Software)
(subclass SoftwarePackage Software)
(documentation SoftwarePackage EnglishLanguage "A &%SoftwarePackage is a set of &%ComputerPrograms and
&%DataFiles that operate together to enable various &%ComputerUser activities.")
(=>
(instance ?PACK SoftwarePackage)
(exists (?PROGRAM)
(and
(instance ?PROGRAM ComputerProgram)
(part ?PROGRAM ?PACK))))
(=>
(instance ?PACK SoftwarePackage)
(exists (?FILE)
(and
(instance ?FILE ComputerFile)
(part ?FILE ?PACK))))
(subclass UserInterface Software)
(documentation UserInterface EnglishLanguage "A &%UserInterface is a piece or collection of &%Software
that allows a user to interact with a computer system or program.")
(subclass GraphicalUserInterface UserInterface)
(documentation GraphicalUserInterface EnglishLanguage "A &%GraphicalUserInterface is a &%UserInterface
that allows users to interact with electronic devices with images rather than text commands.")
(abbreviation "GUI" GraphicalUserInterface)
(subclass UIElement Icon)
(documentation UIElement EnglishLanguage "A &%UIElement is a feature that a user uses to interact with a
&%UserInterface. The type of interaction depends upon the type of element and type of screen.")
(subclass ComputerMenu UIElement)
(documentation ComputerMenu EnglishLanguage "A &%ComputerMenu is an image generated by a computer program
of a set of choices tha a user has for interacting with that program in conjunction with a method for the
user to input a selection to the program.")
(instance accessibleFromMenu BinaryPredicate)
(domain accessibleFromMenu 1 Entity) ; !!! Narrow this down
(domain accessibleFromMenu 2 ComputerMenu)
(documentation accessibleFromMenu EnglishLanguage "The property &%accessibleFromMenu relates a file,
computer process, or submenu to a &%ComputerMenu from which the object can be accessed.")
(subclass TextualComputerMenu ComputerMenu)
(documentation TextualComputerMenu EnglishLanguage "A &%TextualComputerMenu is a &%ComputerMenu that
textually describes a user's options and permits the user to select one of the options by typing the
appropriate thing into the computer.")
; =====================================
(subclass GUIElement Image)
(subclass GUIElement UIElement)
(documentation GUIElement EnglishLanguage "A &%GUIElement is an image on a &%ComputerScreen that a user
uses to interact with a &%GraphicalUserInterface. The type of interaction depends upon the type of
element and type of screen.")
(disjoint TextualComputerMenu GUIElement)
(termFormat EnglishLanguage GUIElement "GUI element")
(instance screenOfGUIE BinaryPredicate)
(domain screenOfGUIE 1 GUIElement)
(domain screenOfGUIE 2 ComputerScreen)
(documentation screenOfGUIE EnglishLanguage "(screenOfGUIE ?GUIE ?SCREEN) means that the GUIElement,
?GUIE, is displayed on, or at least logically assigned to be displayed on the &%ComputerScreen, ?SCREEN.")
(subclass GUIActiveArea GUIElement)
(documentation GUIActiveArea EnglishLanguage "A &%GUIActiveArea is a (normally rectangular) &%GUIElement
which a user can make active (change its state to GUI_ActiveState), select, and interact with.")
(subclass ComputerTouchscreenKeypad GUIActiveArea) ; defined above
(subclass ComputerTouchscreenKeyboard GUIActiveArea) ; defined above
(subclass GraphicalComputerMenu ComputerMenu)
(subclass GraphicalComputerMenu GUIActiveArea)
(subclass GraphicalComputerMenu UIElement)
(documentation GraphicalComputerMenu EnglishLanguage "A &%GraphicalComputerMenu is a &%ComputerMenu
that displays a user's options and permits the user to select one or more of the options in a graphical
manner and usually using a keyboard as well.")
(disjoint GraphicalComputerMenu ComputerTouchscreenKeypad)
(disjoint GraphicalComputerMenu ComputerTouchscreenKeyboard)
; A GraphicalComputerMenu is typically accessed by a mouse icon
; A GraphicalComputerMenu can be accessed by arrow keys.
(subclass ListBox GraphicalComputerMenu)
(documentation ListBox EnglishLanguage "A &%ListBox is a &%GraphicalComputerMenu which appears as a
static list of visible values whether active or not. The whole list may or may not be visible at one time.")
(subclass DropDownList GraphicalComputerMenu)
(documentation DropDownList EnglishLanguage "A &%DropDownList is a &%GraphicalComputerMenu which appears
as a single choice when inactive, but expands to a list of visible values (see &%ListBox) when made
active. The whole list may or may not be visible at one time.")
(disjoint ListBox DropDownList)
(subclass ComboListTextBox GraphicalComputerMenu)
(documentation ComboListTextBox EnglishLanguage "A &%ComboListTextBox is a &%GraphicalComputerMenu
which appears as a &%ListBox or a &%DropDownList, but also has a single line &%TextInputBox into
which a user can type a text value not in the menu.")
; (partTypes ComboList TextInputBox)
(subclass GraphicalSubMenu GraphicalComputerMenu)
(documentation GraphicalSubMenu EnglishLanguage "A &%GraphicalSubMenu is a &%GraphicalComputerMenu
that appears when a user either makes a &%GraphicalMenuItem the active area or selects an appropriate
menu item.")
(=>
(instance ?SUB GraphicalSubMenu)
(exists (?MENU)
(and
(instance ?MENU GraphicalComputerMenu)
(accessibleFromMenu ?SUB ?MENU))))
; Note that this is not unique, since the same submenu conceptually be accessed
; from multiple menus.
(subclass GUIButton GUIActiveArea)
(subclass GUIButton ComputerInputButton)
(documentation GUIButton EnglishLanguage "A &%GUIButton is an image of a button on a &%GUIElement that
a user may click on or ''hold down'' to indicate a &%UserSignifiedAction. The button's graphical
appearance changes once it is selected. An icon of a &%ComputerKeyboardKey is not considered to be a
&%GUIButton. A &%GUIButton may have labeling text or symbol displayed on or adjacent it. The active
area for selecting a GUI button may be the area of the button itself or may include the area of text
labeling the box.")
(disjoint GUIButton ComputerKeyboardKey)
(disjoint GUIButton ComputerTouchscreenKeypad)
(disjoint GUIButton ComputerTouchscreenKeyboard)
(subclass GUIRadioButton GUIButton)
(documentation GUIRadioButton EnglishLanguage "A &%GUIRadioButton is a &%GUIButton in a set of buttons
that stays selected when a user clicks on it. Any other button that was depressed is released when the
GUI radio button is pushed.")
(subclass ScrollBar GUIActiveArea)
(documentation ScrollBar EnglishLanguage "A &%ScrollBar is an image of a slider on an &%InterfaceWindow
with an indicator (&%ScrollBarBar) that a user may move to shift the image in the window up and down or
right and left in cases in which the logical image is larger than the portion displayed in the window.
The image may be pure text or may be graphics.")
(disjoint ComputerMenu ScrollBar)
(disjoint ScrollBar GUIButton)
; A ScrollBar can be used to move an image in a window
; A ScrollBar is typically moved by a mouse icon
; A ScrollBar can be moved by a roller
; A ScrollBar can be moved by arrow keys
(subclass HorizontalScrollBar ScrollBar)
(documentation HorizontalScrollBar EnglishLanguage "A &%HorizontalScrollBar is a horizontal image of a
slider on an &%InterfaceWindow with an indicator (&%ScrollBarBar) that a user may move to shift the image
in the window to the right and left in cases in which the logical image is wider than the portion displayed
in the window. The image may be pure text or may be graphics.")
(subclass VerticalScrollBar ScrollBar)
(documentation VerticalScrollBar EnglishLanguage "A &%VerticalScrollBar is a vertical image of a slider on
an &%InterfaceWindow with an indicator (&%ScrollBarBar) that a user may move to shift the image in the
window up or down in cases in which the logical image is taller than the portion displayed in the window.
The image may be pure text or may be graphics.")
(disjoint VerticalScrollBar HorizontalScrollBar)
(subclass ScrollBarBar GUIActiveArea)
(documentation ScrollBarBar EnglishLanguage "A &%ScrollBarBar is an image of an indicator on an &%ScrollBar
that a user may move to shift the logical image in the window up and down or right and left in cases in which
the logical image is larger than the portion displayed in the window. The image may be pure text or may be graphics.")
(partTypes ScrollBarBar ScrollBar)
(disjoint ScrollBarBar ScrollBar)
(disjoint ScrollBarBar ComputerMenu)
(disjoint ScrollBarBar ComputerTouchscreenKeypad)
(disjoint ScrollBarBar ComputerTouchscreenKeyboard)
(subclass ScrollBarArrowButton GUIButton)
(documentation ScrollBarArrowButton EnglishLanguage "A &%ScrollBarArrowButton is an image of an arrow on an
&%ScrollBar that a user may click on or hold down to shift the logical image in the window up and down or
right and left in cases in which the logical image is larger than the portion displayed in the window. The
logical image may be pure text or may be graphics.")
(partTypes ScrollBarArrowButton ScrollBar)
(disjoint ScrollBarArrowButton ScrollBarBar)
(disjoint ScrollBarArrowButton ComputerMenu)
(subclass ScrollBarRightArrowButton ScrollBarArrowButton)
(documentation ScrollBarRightArrowButton EnglishLanguage "A &%ScrollBarRightArrowButton is an image of an
arrow on an &%ScrollBar that a user may click on or hold down to shift the image in the window to the right
in cases in which the logical image is wider than the portion displayed in the window. The image may be
pure text or may be graphics.")
(partTypes ScrollBarRightArrowButton HorizontalScrollBar)
(subclass ScrollBarLeftArrowButton ScrollBarArrowButton)
(documentation ScrollBarLeftArrowButton EnglishLanguage "A &%ScrollBarLeftArrowButton is an image of an arrow
on an &%ScrollBar that a user may click on or hold down to shift the image in the window to the left in cases
in which the logical image is wider than the portion displayed in the window. The image may be pure text or