Reduced keyboard disambiguating system6011554Abstract A reduced keyboard disambiguating system (50) having a keyboard (54) with a reduced number of keys. A plurality of letters and symbols are assigned to a set of data keys (56) so that keystrokes entered by a user are ambiguous. Due to the ambiguity in each keystroke, an entered keystroke sequence could match a number of words with the same number of letters. The disambiguating system includes a memory (104) having a number of vocabulary modules (110). The vocabulary modules contain a library of objects that are each associated with a keystroke sequence. Each object is also associated with a frequency of use. Objects within the vocabulary modules that match the entered keystroke sequence are identified by the disambiguating system. Objects associated with a keystroke sequence that match the entered keystroke sequence are displayed to the user in a selection list (76). The objects are listed in the selection list according to their frequency of use. An unambiguous select key (60) is pressed by a user to delimit the end of a keystroke sequence. The first entry in the selection list is automatically selected by the disambiguating system as the default interpretation of the ambiguous keystroke sequence. The user accepts the selected interpretation by starting to enter another ambiguous keystroke sequence. Alternatively, the user may press the select key a number of times to select other entries in the selection list. For words that are not in the vocabulary modules, a two-stroke or multiple-stroke method are used to unambiguously specify each letter. The disambiguating system simultaneously interprets all entered keystroke sequences as a word, as a two-stroke sequence, and as a multiple-stroke sequence. The multiple interpretations are automatically and simultaneously provided to the user in the selection list. Claims The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows: Description FIELD OF THE INVENTION
______________________________________
Object Corresponding data
______________________________________
Numbers A number, each digit of which corresponds
to a single
keystroke, e.g., the four-digit
sequence "8495".
Letters A letter or sequence of letters corresponding
to sequences of keystrokes,
e.g., the two
letter sequence "ab". Each sequence of
keystrokes is disambiguated using the two-
stroke specification method of
inputting
individual letters and using
the multiple-
stroke specification method.
Word A word corresponding to single or multiple
keystrokes,
e.g., the four letter word "done".
Stem A sequence of letters representing a valid
portion
of a longer sequence of letters
forming a word,
e.g., "albe" as a stem of the
word "albeit."
Phrase A user-defined or system-defined phrase corres-
ponding to single or multiple
keystrokes, e.g.,
"To Whom it May Concern:".
System Macro
A word and associated code describing a system or
user-defined function, e.g.,
"<clear>"
to perform the function of
clearing the current
text region. In addition to the
descriptive word,
in the vocabulary module the
system macro object
is associated with the
executable code necessary
for performing the specified
function.
______________________________________
While the preferred vocabulary objects are discussed above, it will be appreciated that other objects may be contemplated. For example, a graphic object may be associated with a stored graphic image, or a speech object may be associated with a stored segment of speech. A spelling object may also be envisioned that would link the keystroke sequence of commonly misspelled words and typing errors with the correct spelling of the word. For example, words that include the letter sequence "ie" or "ei" will appear in the list of words even if the keystrokes for these letters are reversed from their proper sequence. To simplify processing, each vocabulary module preferably contains similar objects. It will be appreciated, however, that various objects may be mixed within a vocabulary module. A representative diagram of a vocabulary module 110 is depicted in FIG. 4A. A tree data structure is used to organize the objects in a vocabulary module based on a corresponding keystroke sequence. As shown in FIG. 4A, each node N.sub.1, N.sub.2, . . . N.sub.9 in the vocabulary module tree represents a particular keystroke sequence. The nodes in the tree are connected by paths P.sub.1, P.sub.2, . . . P.sub.9. Since there are nine ambiguous data keys in the preferred embodiment of the disambiguating system, each parent node in the vocabulary module tree may be connected with nine children nodes. Nodes connected by paths indicate valid keystroke sequences, while the lack of a path from a node indicates an invalid keystroke sequence. The vocabulary module tree is traversed based on a received keystroke sequence. For example, pressing the first data key from the start block traverses path P.sub.1 to node N.sub.1. Pressing the ninth data key after pressing the first data key traverses path P.sub.9 to node N.sub.9. As will be described in greater detail below, each node is associated with a number of objects corresponding to the keystroke sequence. As each node is reached, an object list is generated of the objects corresponding to the keystroke sequence. The object list from each vocabulary module is used by the main routine of the disambiguating system to generate a selection list 76. FIG. 4B is a block diagram of a preferred data structure 400 associated with each node. The data structure contains information that links each parent node to children nodes in the vocabulary module tree. The data structure also contains information to identify the objects associated with the particular keystroke sequence represented by the node. The first field in the node data structure 400 is a pointer bits field 402 that indicates the number and identity of children nodes that are connected to the parent node. Since there are nine data keys, only nine children nodes may be connected to any parent node. In the preferred embodiment, nine pointer bits are therefore provided in the pointer bits field to indicate the presence of a child node. Each pointer bit is associated with a pointer field 404a, 404b, . . . 404n that contains a pointer to the respective child node data structure in the vocabulary module. Since a child node is only present if the keystroke associated with the child node forms part of a valid keystroke sequence with the keystroke sequence associated with the parent node, the number of pointer fields varies for each node. For example, pointer bits field 402 may indicate that only six of the possible nine keystrokes lead to a valid child node. Because there are only six valid paths, only six pointer fields 404a, 404b, . . . 404f are included in the data structure for the parent node. The pointer bits field 402 is used to ascertain the identity of the pointer fields contained within the node data structure. If a keystroke does not lead to a valid child node, the associated pointer field may be omitted from the node data structure in order to conserve the amount of memory space required to store the vocabulary module. Associated with each node are a number of objects that correspond to the keystroke sequence represented by the node. For each node, a number of objects field 406 is provided to indicate the number of objects (NUMOBJ) associated with the node. Since each node is associated with one and only one keystroke sequence, the number of objects associated with any given node is a constant. Each of the objects is associated by an object packet 408 contained in the node data structure. The number of objects field 406 specifies the number of object packets 408 that are present in the node data structure. Each object packet 408 describes one object corresponding to the keystroke sequence represented by each node. Describing an object requires maintaining two object lists. FIG. 4C depicts representative object lists created for a parent and a child in a vocabulary module tree. Object list 430 is an object list containing objects OL(1)-OL(8) associated with a node representing two keystrokes. Object list 440 is an object list containing objects NOL(1)-NOL(8) associated with a node representing three keystrokes. Each object list contains a list of all objects that are associated with each node. Object list 430 is associated with a parent node representing the keystroke sequence ADF OLX. Object list 440 is associated with a child node representing the keystroke sequence ADF OLX EWV. Although a maximum of eight entries are depicted as capable of being stored in each object list, it will be appreciated that the size of the object list may be varied to account for the maximum number of objects associated with each node. Each object associated with a child node is constructed by adding a character sequence onto an object that was constructed for the parent node. The object packet 408 therefore contains a previous object identifier field 410 that identifies from a parent node object list an object that is used to construct the child node object. For example, with reference to FIG. 4C, the third object "fo" in the old object list 430 is used to construct the first object "foe" in the new object list 440. The previous object identifier field 410 therefore provides a link to the entries in the old object list to identify the old object used to construct the new object. The object packet 408 contains a two-bit symbol field 412 to indicate the symbol to add to the identified object in order to construct the new object. In the preferred embodiment, each ambiguous key contains a maximum of three letters. The symbol field bits therefore specify the letter from each key that is used to construct the new object using the following binary code: "00" corresponds to the first letter on the key, "01" corresponds to the second letter on the key, and "10" corresponds to the third letter on the key. For example, with reference to FIG. 4C, the first object "FOE" in the new object list 440 is constructed by using the third object "FO" in the old object list 430 and adding an additional keystroke to specify the E. In the preferred keyboard arrangement, "E" is the first letter on the EWV key, therefore the symbol field corresponding to the object "FOE" is set to "00" to indicate the first letter on the key. Encoding the objects in this manner greatly reduces the amount of storage space required for each vocabulary module. The encoding technique also allows direct access to vocabulary module entries without searching. Rather than having to store every object in the vocabulary module, a new object is defined using the two-bit code to add onto an old interpretation. The disclosed storage method requires, however, maintaining an object list from a parent in the vocabulary module tree in order to construct an object list of the child. Symbol field 412 may also be set to the value "11". When set to the value "11", the symbol field indicates the presence of an ASCII sequence field 414 immediately following the symbol field. The ASCII sequence field is used to store strings of characters that are to be appended to the identified object. For example, the ASCII sequence field may store the string "rward" to be added to the third object "fo" from the old object list to form the word "forward". In this manner, the length of an entered keystroke sequence does not necessarily directly correspond to the length of an associated object. The ASCII sequence field allows a vocabulary object to be identified by an arbitrary key sequence, i.e., stored at an arbitrary location within the vocabulary module tree. The capability of storing objects with an arbitrary keystroke sequence is used to speed system processing of abbreviations and contractions. Abbreviations and contractions are typically identified by a keystroke sequence that corresponds to their pure alphabetic content, ignoring punctuation. The result is that abbreviations and contractions are easily accessed by the user without entering punctuation, resulting in a significant savings in keystrokes. For example, the user can enter the keystroke sequence for "didnt" without adding an apostrophe between the "n" and the "t". The word in the vocabulary module that corresponds to the keystroke sequence "didnt" contains an ASCII sequence field with an apostrophe between the "n" and the "t". The disambiguating system will therefore automatically display to the user the correct word "didn't", without requiring the user to enter the punctuation mark. The disambiguating system uses the same technique to properly display foreign words having unique characters (such as "U", which may be entered as a "U"). Capitalization may be handled in a similar manner. Words that should always be used in all capital letters, with an initial capital letter, or with a capital letter in the middle are identified by keystroke sequences without keystrokes indicating capitals, eliminating the need for the user to enter such capitalization. An object type field 416 may also be included in each object packet 408 to specify additional information about the object being constructed. The object type field may contain a code to specify whether the generated object is a word, a word stem, or any other object. The object type field therefore allows different types of objects to be mixed within a given vocabulary module. Moreover, the object type field may also include information regarding the part of speech of the word, information about how the object is capitalized, or information needed to construct various inflections and endings. A reduced keyboard disambiguating system using a vocabulary module having the part of speech information may use the additional information to implement syntactical analysis to improve the disambiguation process. The object type field may also contain a unique code to allow transmission of text in a compressed form. The unique code would be transmitted to a remote terminal instead of transmitting the entered keystroke sequence or the associated disambiguated characters. One of the key features of the preferred vocabulary module tree data structure is that the objects associated with each node are stored in the node data structure 400 according to their frequency of use. That is, the first object packet 408 has a higher frequency of use than the second object packet in the node data structure, which has a higher frequency of use than the third object packet. In this manner, the objects are automatically placed in the object list so that they are sorted according to decreasing frequency of use. For purposes of this description, frequency of use refers to the likelihood of using a given word within a representative corpus of use, which is proportional to the number of times that each word occurs in the corpus. While preferably the objects are stored within the node data structure 400 in order according to their frequency of use, it will be appreciated that a frequency of use field could also be associated with each object packet. The frequency of use field would contain a representative number that corresponds with the frequency of use of the associated object. The frequency of use between different objects would be determined by comparing the frequency of use field of each object. The advantage of using the latter construction that associates a frequency of use field with each object packet is that the frequency of use field could be changed by the disambiguating system. For example, the system could change a frequency of use field to reflect the frequency with which a user used certain objects within the vocabulary module during representative text entry. Returning to FIG. 3, at block 156 those objects that correspond to the received keystroke sequence are identified in each vocabulary module. FIG. 5 is a flow chart of a subroutine 500 for analyzing the received keystroke sequence to identify corresponding objects in a particular vocabulary module. The subroutine 500 constructs an object list for a node representing a particular keystroke sequence. As noted above, to construct a new object list the disambiguating system starts with a copy of the old object list. At a block 502, the object list from the prior node is therefore stored so that it may be used to construct the new object list. In the main routine shown in FIG. 3, a keystroke was detected by the system at block 150. The receipt of a new keystroke causes a downward traversal in the vocabulary module tree, if a valid path exists to a child corresponding to the keystroke. At a block 504 in FIG. 5, the pointer bits field of the parent node data structure is therefore examined to determine if a pointer corresponds to the received keystroke. At a decision block 506, a test is made of the pointer bits field to determine if a pointer field 404a, 404b, . . . 404n exists that corresponds to the entered keystroke. If no pointer field corresponds to the keystroke, at a block 508 the old object list is copied to the new object list. At a block 510, the object list is returned to the main routine to generate the selection list. Since the received keystroke is part of an invalid keystroke sequence that does not correspond to any object within the vocabulary module, the keystroke is ignored and the current object list is returned to the main routine as being the object list from the vocabulary module. The branch of the subroutine 500 that comprises blocks 508 and 510 therefore ignores any invalid keystroke sequences and returns the object list generated at the parent node for possible inclusion in the selection list generated by the disambiguating system. If a pointer exists corresponding to the received keystroke at decision block 506, the subroutine proceeds to a block 512 where the pointer is followed to the child node representing the keystroke. When the child node is identified, a new object list corresponding to the node must be constructed. At a block 514, on identifying the child node, the number of objects associated with the node are determined from the number of objects field 406 in the child node data structure. After determining the number of objects to be generated at the child node, the subroutine enters the loop comprised of blocks 516 through 526 to reconstruct the object list associated with the child node. At a block 516, a counter is initially set to one. At a block 518, a test is made to determine if the counter has exceeded the number of objects associated with the node. If the counter has not exceeded the number of objects associated with the node, at a block 520 the previous object identifier field 410 is examined and the corresponding object loaded from the old object list. At a block 522, the symbol field 412 is examined and the appropriate symbol associated with the received keystroke appended to the end of the identified object. It will be appreciated that an additional ASCII sequence may also be appended to the identified object at block 522 if the symbol field indicates the presence of an ASCII sequence field 414 in the node data structure. At a block 524, the combined object and symbol are stored as a new object in the new object list. After storing the new object in the object list, at a block 526 the counter is incremented by one. The subroutine then loops to decision block 518 to determine whether all of the objects associated with the node have been constructed. If the test at decision block 518 indicates that all of the objects have been constructed for the node, the subroutine proceeds to a block 528 where the new object list is returned to the main routine in order to generate the selection list. It will be appreciated that the subroutine 500 for generating the object list associated with each node is performed for each keystroke received from the user. No "searching" of the vocabulary modules is performed as the user enters a new keystroke sequence, since each keystroke merely advances the subroutine one additional level within the vocabulary module tree. Since a search is not performed for each keystroke, the vocabulary module returns the list of objects associated with each node in a minimal period of time. It will be appreciated that the relationship between vocabulary module objects and keystroke sequences is an implementation detail of the vocabulary module. If only a limited number of objects (i.e., fewer than a predetermined number) are associated with a particular node, additional nodes may be traversed to identify objects having a keystroke sequence starting with the entered keystroke sequence. The objects are identified by traversing downward in the vocabulary module tree along valid paths until the objects are identified. The objects are then placed in the selection list before all the keystrokes corresponding to the objects are entered. The objects are included in addition to the objects that are directly associated with the input keystroke sequence. Displaying objects associated with longer keystroke sequences in the selection list (hereinafter referred to as the "look-ahead" feature) allows the user to optionally select the objects immediately, without having to complete the remaining keystrokes to specify the object. The look-ahead feature is enabled when the number of objects identified in the vocabulary modules fails to fill the selection list region 70 on the display. Returning to FIG. 3, at blocks 158-162 the objects returned from the search of the vocabulary modules are prioritized and displayed to the user in the selection list 76. To determine the sequence of objects displayed in the selection list, priorities are established between each vocabulary module and also between the returned objects from each vocabulary module. To prioritize the object lists identified from the various vocabulary modules, at block 158 the mode of operation of the reduced keyboard disambiguating system is examined. As discussed above, in a normal mode of operation the word interpretations are displayed first in the selection list. The object list from a word vocabulary module would therefore be assigned a higher priority than the object list from the other vocabulary modules. Conversely, if the disambiguating system is in the numeric mode of operation, the numeric interpretations would be assigned a higher priority than the other vocabulary modules. The mode of the disambiguating system therefore dictates the priority between vocabulary module object lists. It will be appreciated that in certain modes, the object lists from vocabulary modules may be omitted from the selection list entirely. Object lists generated from vocabulary modules may contain only a single entry, or they may contain multiple entries. At block 160, the priority between the objects from the same vocabulary module is therefore resolved if the object list contains multiple entries. Within the search results from each vocabulary module, the objects that match a particular keystroke sequence are also given a priority that determines their relative presentation with respect to each other. As noted above, preferably the default presentation order is by decreasing frequency of use in a representative corpus of usage. The priority data associated with each object is therefore used to order the objects located in the search in the selection list. Since the selection list region 70 is limited in the number of entries that may be displayed, objects located by the search that fall below a predetermined minimum frequency of use may be omitted from the initial display of the selection list. The omitted objects may be later added to the selection list when the user scrolls beyond the end of the displayed list. Many of the properties associated with the presentation of the vocabulary module search results are user-programmable by accessing appropriate system menus. For example, the user can specify the order of individual objects or classes of objects in the selection list region. The user may also set the priority level that determines the priority between vocabulary modules and between the objects identified from each vocabulary module. In this manner, the number of entries presented to the user in the selection list region may be kept to a minimum. Additional entries in the selection list region may always be scrolled into view by repeated presses of the select key. After the priorities between the objects have been resolved, at a block 162 a selection list is constructed from the identified objects and presented to the user. As a default interpretation of the ambiguous keystroke sequence entered by the user, the first entry in the selection list is provisionally posted and highlighted at the insertion point 88 in the text region 66. The disambiguating software routine then returns to block 150 to wait for the next keystroke. If the detected keystroke is a select key, the "yes" branch is taken from decision block 152 to a block 164. At a block 164, a box is placed around the first entry in the selection list, and at the insertion point where it has been provisionally posted. At a block 165, the system then waits to detect the next keystroke entered by the user. At a decision block 166, a test is made to determine if the next keystroke is the select key. If the next keystroke is the select key, at a block 168 a box is placed around the next entry in the selection list and the entry is provisionally displayed at the insertion point with a box around the entry. The routine then returns to block 164 to detect the next keystroke entered by the user. It will be appreciated that the loop formed by blocks 164-168 allows the user to select various interpretations of the entered ambiguous keystroke sequence having a lesser frequency of use by depressing the select key multiple times. If the next keystroke is not the select key, from decision block 166 the routine continues to a block 170 where the provisionally displayed entry is selected as the keystroke sequence interpretation and is converted to normal text formatting in the text region. At a block 172, a space is added following the selected interpretation, since the receipt of an ambiguous keystroke following the select key indicates to the system the start of a new ambiguous sequence. At a block 174, the old keystroke sequence is cleared from the system memory. The newly received keystroke is then used to start the new keystroke sequence at block 154. Because the word interpretation having the highest frequency of use is always presented as the default choice, the main routine of the disambiguation software allows a user to continuously enter text with a minimum number of instances where additional activations of the select key are required. Ambiguities are further reduced in the reduced keyboard disambiguating system by assigning the letters on the keys to minimize the number of ambiguities that occur during text entry. For example, with the keyboard letter arrangement depicted in FIG. 1, the desired word appears at the top of the selection list more than 99% of the time. For simple text, the reduced keyboard disambiguating system therefore typically requires less than one additional keystroke per hundred words typed. Such results are a great improvement over prior art methods of resolving reduced keyboard ambiguity, and make the reduced keyboard disambiguating system suitable for use in many text-entry applications. II. Advanced System Features 1. Visual and Auditory Feedback In FIG. 1A, information about the state of the reduced keyboard disambiguating system 50 is provided to the user using various types of visual and auditory feedback. Entries in the selection list 76 are presented in different colors depending on the interpretation of the keystroke sequence. For example, the word interpretation may be one color, the two-stroke interpretation another color, and the numeric interpretation a third color. A user may therefore easily scan the selection list for the desired interpretation. During system use, the disambiguating system also indicates to the user which data keys 56 in the keyboard may constitute the next key in a valid word interpretation. As the number of keystrokes entered in a given keystroke sequence increases, the number of data keys that may be entered as the next key to form a word contained in the system vocabularies begins to decrease. Two techniques can be used to show the user which data keys may validly be used as the next keystroke when forming a word. First, a visual indication may be provided on the data keys themselves. If the data keys are typewriter-style keys, light-emitting diodes (LEDs) may be incorporated on the tops of each data key. The LEDs are lit when the data key is available for entry as the next keystroke to form a viable word interpretation. Multiple LEDs may also be incorporated on each key to indicate the specific letters that are valid on each key. Second, a separate display may be provided to the user that corresponds to the shape of the keyboard. For example, a three-by-three grid of LEDs may be presented to the user adjacent to the keyboard, each LED corresponding to one of the data keys. Alternatively, a 3.times.3 grid may be displayed in the text region 66, with elements in the grid turned on or off to indicate valid data keys to form a word interpretation. It will be appreciated that providing a visual indication to the user of which data keys may be entered to form a valid word does not prevent the user from using the other data keys on the keyboard. Especially when entering words or special punctuation that are not contained within the disambiguating system vocabularies, the user must be able to use all possible keys in order to enter a word using the two-stroke method. Audible tones indicate the state of selection list 76 and provide feedback about keystrokes to allow system information to be conveyed independently of any visual feedback provided in the selection list. Distinct tones indicate when the selection list is empty, when it contains a single unique word, and when it contains multiple ambiguous words. Another tone indicates when the second or third entry in the selection list has a frequency of use above a preset threshold, or when the difference in frequency between the first and second word falls below a selected threshold. Still other tones distinguish the type of item being selected in the selection list as the select key is pressed. Separate tones are therefore used to distinguish words, numbers, proper nouns, phrases, system macros, etc. Distinct tones can also be assigned to each key to allow identification of mistakes in keystrokes. Finally, a unique tone is heard when the user presses a key that is unavailable for a word as described above. Additional auditory feedback may be provided to the user by including a voice synthesizer as an application program 112, 114 in the disambiguating system. As a user enters keystrokes, the voice synthesizer announces the first entry in the selection list. To allow typing to proceed unimpeded, the first entry is announced after a slight delay. The user may also cause the first entry to be spoken immediately by pressing the select key. The auditory feedback provided by a voice synthesizer allows visually-impaired users to use the system without having to view the selection list. 2. Keying Techniques The reduced keyboard disambiguating system 50 supports four keying techniques to perform system commands, access system menus, or enter special symbols including punctuation and diacritics. First, the disambiguating system supports latching keystrokes, performed by pressing and holding a key in the depressed position for a specified minimum time. The minimum time a key must be held before being latched is set by the user in a system menu. When the minimum time has elapsed, audible or visual feedback is provided to the user. For example, a clicking noise may be made when a key is depressed for a sufficient time for the key to latch. The latching of a key may be combined with a second keystroke and mapped to any disambiguating system command, menu, or symbol. For example, a short press of the delete key 64 causes the last keystroke to be deleted, while latching the delete key causes the disambiguating system to remap the data keys 56 so that the next data key keystroke implements a system delete command. One data key may be remapped to act as a "delete line," another data key as a "delete paragraph," and a third data key as a "delete document," and so on. After performing the system command, the data keys return to their unmapped states. Second, the disambiguating system supports overlapping keystrokes, performed by pressing and holding a first key while a second key is pressed. For example, the user could press and hold the delete key 64 before pressing the ADF key in the data keys 56. A minimum delay is required between depressing and holding the first key and depressing and holding the second key to distinguish the overlapping keystroke from a chorded keystroke discussed below. The various overlapping keystroke combinations may be mapped to any disambiguating system command, menu, or symbol. Third, the disambiguating system supports chorded keystrokes, performed by pressing two or more keys at approximately the same time and holding them for at least a minimum delay time. For example, the user could simultaneously press and hold the delete key 64 and the CYK key in the data keys 56. The two keys are considered to have been pressed simultaneously if the interval between the two key presses is shorter than a maximum delay time. Both the minimum delay time and the maximum delay time of the chorded keystrokes may be set by a user in a system menu. The various chorded keystroke combinations may be mapped to any disambiguating system command, menu, or symbol. It will be appreciated that certain overlapping keystrokes or chorded keystrokes are physiologically easier to implement than others. For example, it is easier to enter chorded keystrokes using two keys in the same row. Overlapping and chorded keystrokes that are easier to implement are therefore assigned to more frequently used commands, menus, or symbols. It will also be appreciated that the unambiguous row of system keys 54 may also be used in latching, overlapped, or chorded combinations. Fourth, the disambiguating system supports the mapping of single keys to any disambiguating system command, menu, or symbol. The English language only contains two one-letter words ("A" and "I") that must be presented as the first choice in the selection list when the respective single keys are pressed. Pressing any of the other data keys 56 that do not contain "A" or "I" can therefore be used to list a system command, a menu, or a symbol as the first item in the selection list. It will be appreciated that while the four keying techniques discussed above are preferably implemented in the reduced keyboard disambiguating system, depending on the keyboard construction some of the keying techniques may not be available. For example, the use of certain types of keyboards to implement keyboard 54, such as touch screens or thin-film keyboards, may make it impossible to detect chorded, latching, or overlapped keystrokes. 3. Punctuating, Capitalizing, Spacing, and Executing When entering text, the reduced keyboard disambiguating system 54 allows punctuation to be entered using several techniques. As shown in FIG. 1B, common punctuation marks are provided on the tops of the data keys 56. A user may therefore use the two-stroke method to specify when a punctuation mark is to be included in the text. Alternatively, a user may use the latching, overlapped, or mapping of single key methods discussed above to enter a punctuation mark. Other punctuation marks and symbols that are used less often are assigned a chorded keystroke sequence or are accessible from a system menu. When entering a letter having a diacritic, an appropriate keystroke indicating the type of diacritic mark is entered in the keystroke sequence either immediately before the letter containing the diacritic. Many common words contain a punctuation mark, however, such as a hyphen, apostrophe, or diacritic. As discussed above in the description of the vocabulary modules, the user may enter the keystroke sequence that corresponds only to the letters of the word without regard to a punctuation mark during entry of common words containing a punctuation mark. All techniques for entering punctuation are simultaneously enabled during system operation. The shift key 62 preferably operates in the following manner. Pressing the shift key causes the next data keystroke to be capitalized. Pressing the shift key multiple times cycles through various functions. A second shift keystroke acts as a "ctrl" key, a third shift keystroke operates as an "alt" key, and a fourth keystroke operates as a "caps lock" key. A fifth shift keystroke cancels the operation of the shift key, returning to an unshifted state. When the first letter of the word is capitalized, the words in the selection list 76 are optionally ordered to show proper nouns listed first in the list of interpretations. The words are sorted according to frequency of use, with the most commonly used proper nouns listed first. The frequency of occurrence of the proper nouns may be prestored in a vocabulary module, programmed by the user via a system menu, or adaptively calculated as the user continues to use the system as discussed below. The display of proper nouns first in the selection list is disabled or a warning is sounded when the capitalized word is the first word in a sentence. 4. Editing A user of the reduced keyboard disambiguating system 50 may enter an editing mode via an overlapped keystroke sequence. FIG. 6 depicts the display 53 of the computer while in editing mode. On entering the editing mode, a key map 800 indicating the remapped data key functions is displayed to the user in the text region 66. Each box in the key map indicates the editing command that will result if the corresponding data key is pressed. Editing is performed on a word-by-word basis. Once in the edit mode, the user selects a word to edit by moving a cursor 802 to highlight the word. The user selects a word to edit by using the data keys corresponding to the commands ".rarw.word" and "word.fwdarw." to move through the text displayed in the text region. Selecting a word in the text region recreates the same selection list 76 that was presented to the user at the time the edited word was added to the text region 66. To recreate the original selection list, the most efficient key sequence that would produce a given word is reconstructed from the word itself The keystroke sequence is then interpreted using the vocabulary modules to reconstruct the environment (i.e., the contents of the selection list) from which the original word was selected. Once a word is selected and the selection list redisplayed, the user has several different options for editing the word. One option allows the user to select a different word from the displayed selection list by appropriately pressing the select key. Multiple presses of the select key move down the selection list, in the same manner in which the edited word was originally selected. Pressing the delete key moves up the interpretation list. The boxed word from the selection list is automatically added to the text region when the user leaves the editing mode. After any word is selected in editing mode, additional text typed is inserted after the word at the point being edited in the text region. Editing of a particular word is completed by selection of an appropriate word from the selection list. When the editing of a word is complete, the user can use the ".rarw.word" and "word.fwdarw." keys to move through the text string displayed in the text region and select a different word for editing. When editing of the text is complete, the user exits the editing mode using the "exit" key. 5. "Respell" Mode A second editing option is a "respell" mode, which allows the user to disambiguate an ambiguous keystroke sequence on a letter by letter basis. The respell mode is used when a user types a word that is not in the system vocabulary using only a single keystroke for each letter. Finding no words in the vocabulary module matching the keystrokes, the user may then enter the respell mode using an overlapped keystroke, and disambiguate each letter. The respell method of entering an unknown word in this manner is similar to the two-stroke method except the disambiguating process follows entry of the entire word, rather than after each letter of the word. On receipt of the overlapped keystroke that designates respell mode, the preceding sequence of ambiguous keystrokes is displayed as a series of key icons, each key icon depicting the originally entered keystroke. A representative display is shown in FIG. 7, with four key icons 810 appearing for the original key sequence ADF, OLX, NBZ, EWV. The first key icon in the word is highlighted in the text region 66. For each key icon, the user presses a disambiguating key whose position in the middle row of data keys 56 corresponds to the position of the desired letter in the highlighted icon. The key used to disambiguate the keystroke is the same key that is used as the second key when entering letters using the two-stroke method. On receipt of each disambiguating keystroke, the highlighted icon is replaced by the selected letter, and the next icon in the sequence is highlighted. The disambiguated character sequence also appears in the selection list. Respell mode is terminated when the last keystroke icon is disambiguated, when the select key is pressed, or by the same overlapped keystroke that initiates respell mode. 6. Shortcuts The reduced keyboard disambiguating system 50 incorporates several shortcuts that speed entry of text into the system. One shortcut causes the entry of an unambiguous symbol or an unambiguous function to delimit a current ambiguous sequence, if there is one, and automatically select and accept the first entry in the selection list 76. For example, a user that enters the ambiguous sequence CYK ADF NBZ, followed by an explicit (e.g., by overlapped keystroke) apostrophe ('), will have the system automatically select and post to the text region the word "can'", since "can" is the first (i.e. most likely) interpretation of the key sequence CYK ADF NBZ. When a keystroke sequence is automatically interpreted in this manner, no space is generated following the selected interpretation. The user may therefore continue to enter the word by adding additional characters. This shortcut is typically used when punctuation marks are used in a keystroke sequence. In addition to operating in different modes of operation wherein the selection list 76 is ordered to present a selected type of keystroke interpretation as the first entry in the list, the reduced keyboard disambiguating system 50 also may enter via a system menu a number of dedicated modes wherein only one interpretation is made for each key and only one or no entries are displayed in the selection list. For example, in a dedicated numeric mode, each keystroke corresponds to the entry of a number. In a dedicated cursor movement mode, each of the outside circle of data keys corresponds to a cursor movement direction to allow a user to manipulate a cursor in an application program. Those skilled in the art will recognize that other dedicated operating modes may also be envisioned, such as a mouse emulation or Touch-Tone phone emulation. When operating in the dedicated modes, text or commands are directly implemented since there is no ambiguity in the entered keystrokes. Another shortcut provided by the disambiguating system allows unambiguous keystroke to immediately select certain interpretations in the selection list 76. Preferably, if more than one entry of a particular interpretation is present, the entry in the selection list having the highest frequency of use is selected. The use of an unambiguous keystroke to select a desired interpretation eliminates having to step through an unpredictable number of other interpretations. 7. System Output The disambiguated output from the reduced keyboard disambiguating system 50 system is generally provided to other application programs 112, 114 running on and sharing the resources of the disambiguating system. Text is therefore directly entered into the application program using the aid of a selection list, such as shown in the system of FIG. 1A. In other instances, the target for output is an application program running on a separate platform. For example, a user may desire to transfer entered text to a remote terminal. Those skilled in the art will recognize that a PCMCIA card or modem card may be added to computer 52 to allow data transfer with other devices. Disambiguated text may be transferred after the entry of each word, or after an explicit "send" function accessed by the user via a system menu. 8. Custom Vocabularies Among the vocabulary modules 110 contained in the reduced keyboard disambiguating system 50 is a custom vocabulary module. Words entered using the two-stroke or multiple-stroke methods are automatically stored by the disambiguating system in the custom vocabulary module. The words stored in the custom vocabulary module will thereafter be automatically displayed in the selection list when the user enters the shorter sequence of single (ambiguous) keys for these words. In addition to adding words to the custom vocabulary module during normal text entry, words may also be added to a user's custom vocabulary module from a variety of other sources. For example, documents may be downloaded into the disambiguating system and parsed to identify proper nouns or other words that are not contained in the vocabulary modules present in the disambiguating system. After parsing, the newly identified proper nouns and words are added to the user's custom vocabulary module. Custom vocabulary modules may also be uploaded or downloaded to other disambiguating systems or to a mass storage medium. A user may therefore merge their present custom vocabularies with other vocabularies created by another user. The words in the selection list 76 identified from the standard vocabulary modules are preferably always presented to the user in the same order, according to decreasing frequency of use, so that the user can commit to memory the keystrokes necessary to enter a desired word. III. Representative System Operation FIGS. 8A through 8J depict the display 53 of the portable computer 52 during a representative use of the reduced keyboard disambiguating system. After turning on the power of the portable computer, the text region 66 and selection list region 70 are empty. In FIG. 8A the user has pressed the ADF key. The word vocabulary module has interpreted the ADF key as the word "A" 902 and placed the interpretation, capitalized, in the selection list 76. The stem vocabulary module has interpreted the ADF as the stems "D" and "F" 903, and placed the interpretation in the selection list. The numeric vocabulary module has interpreted the keystroke as the number "8" 904. The system command vocabulary module has matched the keystroke sequence with three system commands, "<Setup>" 906, "<Edit>" 908, and "<Cancel>" 910, and added the system commands to the selection list. The first entry in the selection list has also been provisionally posted and highlighted in the text region at insertion point 88. In FIG. 8B the user has pressed the select key 60, selecting and boxing the word "A" 902 in the selection list. The copy of the word that had been provisionally posted at the insertion point 88 becomes boxed, rather than highlighted, to indicate that the interpretation will be the selected interpretation if the user continues to enter text with an ambiguous keystroke. In FIG. 8C the user has pressed the select key 60 four additional times, boxing the system command "<Setup>" 906 in the selection list. When the <Setup> command is boxed, a 3.times.3 key map 920 is displayed in the upper right corner of the text region 66. Each square in the 3.times.3 key map directly corresponds with one of the data keys 56 in the keyboard. Pressing the center data key, for example, causes the reduced keyboard disambiguating system to perform the system command "Default Setup." A help dialog box 922 is also displayed in the text region to provide further instructions to a user. In FIG. 8D, the user has executed the "Load Vocab" command by depressing the upper left corner data key. Executing the command causes a system menu of vocabulary modules that can be loaded to be displayed in the selection list. The first entry in the selection list, the standard system vocabulary module 924, has been boxed and selected by default. It will be appreciated that the disambiguating system allows nesting of menus as depicted in FIGS. 8C and 8D That is, an entry in the selection list may remap the data keys to a number of system commands, while executing a system command may lead to further choices presented as a system menu in the selection list. Nesting the menus in this manner allows multiple system functions and commands to be implemented with a minimum number of keys. FIG. 8E results if the user presses the OLX key after FIG. 8A. The word vocabulary module has interpreted the ADF and OLX keys as the words "Do" 930 and "Ax" 931, and placed these words in the selection list 76. The stem vocabulary module has interpreted the keystrokes as the stems "Fo" 932, "Fl" 933, "Ao" 934 and "Al" 935. The two-stroke vocabulary module has interpreted the entered key sequence as the letter "A" 936. The numeric vocabulary module has interpreted the key sequence as the number "84" 937. The system command vocabulary module has matched the keystroke sequence with the system command "<cancel>" 938, and added the command to the selection list 76. The first entry from the selection list is provisionally posted at the insertion point 88 of the text region. In FIG. 8F, the user has subsequently pressed the NBZ key followed by the EWV key. The word vocabulary module has matched the keystroke sequence to two words, "Done" 940, and "Doze" 941. By default, multiple words are ordered in the selection list 76 so that the most frequently occurring word appears first. "Done" is therefore listed before "Doze" in the selection list. The interpretations from the other vocabulary modules, namely, "Albe" 942, "Ab" 944, "8495" 945, and "<cancel>" 946 are provided in the selection list 76 after the word interpretation. In FIG. 8G, the user has pressed the IMG key. The word vocabulary module has found no words that exactly match the keystroke sequence ADF OLX NBZ EWV IMG. However, by "looking ahead" the word vocabulary module has located a longer word, "Albeit" 952, and listed the word in the selection list as a possible interpretation. The two-stroke interpretation of the five keys results in the string "Ab?" 954 (the question mark indicating that the third letter is awaiting the sixth keystroke which will disambiguate the fifth), the numeric interpretation results in the number "84956" 956, and the system command interpretation still corresponds to "<cancel>" 958. FIG. 8H results from FIG. 8F if the user presses the select key three times. The word stem "Albe" 942 is eliminated from the selection list on receipt of the first press of the select key. The two-stroke vocabulary module had added the string "Ab" 944 to the selection list. By pressing the select key three times, the user has highlighted the two-stroke interpretation, "Ab", causing a copy to be provisionally posted at the insertion point 88 in the text region 66. When the user presses a data key to start the following word, the word "Ab" is selected as the keystroke interpretation. The disambiguating system also automatically adds the word "Ab" to the user's custom vocabulary module, allowing the user to subsequently spell "Ab" with the two keystroke sequence ADF NBZ. FIG. 81 results if the user presses and releases the select key after FIG. 8G, selecting the word "Albeit" 952. Pressing the select key causes the first entry in the selection list and the word at the insertion point to be boxed. The incomplete two-stroke specification "Ab?" 954, which resulted from an odd number of keystrokes, is eliminated from the selection list when the select key is pressed. If the user presses and holds the select key 60 after FIG. 8G, instead of pressing and releasing the select key, then the display depicts the overlapped key meanings as shown in FIG. 8J. The overlapped key meanings are displayed in a 3.times.3 key map 954. Each box in the key map indicates the command that will result if the corresponding data key is pressed while the select key is being held down. A dialog box 956 is also provided to indicate that the overlapped keystroke combinations use the select key 60. It will be appreciated that other system keys 58 could similarly be used to implement an overlapped keystroke. Chorded key combinations are accessible at any time and can be entered without disturbing other input processes. IV. Alternate Applications and Embodiments While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention. For example, those skilled in the art will appreciate that the keyboard 54 of the reduced keyboard disambiguating system may have as few as three or as many as twenty data keys. The disambiguation technique disclosed herein is equally applicable to keyboards of different sizes. An embodiment of the reduced keyboard disambiguating system having eight keys is particularly suited for use by people with hand control disabilities. A suitable eight-key layout is shown in FIG. 9. Seven keys are used to enter letters or numbers, and one key is used as the "select" key. The eight keys are organized in a circle with each key corresponding to one of eight directions. When organized in a circle, each key may be easily selected by movement of a joystick, head-pointing, or by movement of the eye as detected by an eye-tracking device. Having eight keys allows each key to be represented numerically by three bits. For individuals with disabilities who work best with a Morse-like code, each ambiguous keystroke can be encoded as Morse-like sequences with an average code length of two (i.e., the average number of "dots" and "dashes" per letter is only two). For individuals with disabilities who work best with scanning, the eight-key system requires scanning across only eight keys rather than 26 or more. With eight keys in the reduced keyboard disambiguating system, more than 97% of all words require no additional keystrokes. Even higher efficiencies can be achieved using the "look-ahead" feature of the vocabulary modules discussed above. It will also be appreciated that the reduced keyboard disambiguating system of the present invention may be used in conjunction with any computer input device. For example, a disambiguating system of the present invention is depicted in FIG. 10 as incorporated in a mouse 1100. The mouse is connected to a computer 1102 having a monitor 1104. Text entry is performed in the manner described above using a reduced set of data keys 1106 located on the upper surface of the mouse. A button 1108 located on the side of the mouse operates as an unambiguous system key to delimit entered keystroke sequences and select different interpretations from the displayed selection list. Incorporating a keyboard directly on the mouse is particularly advantageous in that a user does not have to switch between a mouse and a keyboard when operating in a graphical computer interface. The reduced keyboard disambiguating system may also be incorporated in any portable electronic device requiring accurate text entry using only a single hand. For example, in FIG. 11 a reduced keyboard disambiguating system of the present invention is depicted as being incorporated in a two-way pager 1200. The two-way pager is provided with a touch-sensitive screen 1202 to display messages to a user and to allow the user to enter messages into the pager. Rather than having a separate typewriter-style keyboard, a keyboard 1204 is displayed on the touch-sensitive screen. Contact by a user with the touchscreen at a location above a depicted key is interpreted by the system as a keystroke. To aid the user in locating the keys on the touchscreen, a transparent or semitransparent grid or raised area may be formed on the surface of the keypad above each key. The user would therefore receive a visual or tactile indication of the location of their fingers on the touchscreen with respect to the keyboard. It will be appreciated that the keyboard 1204 may also be overlaid over the area of the touchscreen that displays messages to the user. In this embodiment, the user would periodically move their hand to review the entered text on the display. Text would be entered into the pager 1200 in a similar manner to the applications discussed above. Rather than displaying the selection list in a selection list region, however, a selection list 1206 in the pager application is displayed at the insertion point 88 in the text window. The first entry in the selection list is highlighted, and the user may select the first entry or other entries using the select key in the manner described above. Once the disambiguation of the keystroke sequence is complete, the selection list 1206 is removed and the selected entry left as the last word in the entered line of text. Displaying the selection list at the insertion point in the text speeds the text entry since the user's point of gaze does not have to be removed from the text being entered. An alternate embodiment of a portable reduced keyboard disambiguating system 1300 is shown in FIG. 12. The front panel of the system is a touch-sensitive, color liquid crystal display (LCD) 1302 that displays information to a user and also accepts user input. The entire front panel of the system is touch sensitive, so that contact with the surface of the reduced keyboard generates input signals to the system corresponding to the location of contact. The reduced keyboard contains twelve keys 1304 arranged in the preferred layout described above. Rather than defining regions on a single display to display information to a user, several windows are provided in the disambiguating system 1300. A text window 1306 displays several lines of text entered by the user to allow text input and editing. A keystroke window 1308 displays symbols corresponding to the individual keystrokes entered by the user in the order of entry. The keystroke window provides visual feedback to the user and also allows editing of the keystroke sequence. Instead of a selection list, a set of selection list keys 1310 are provided to display a selection list corresponding to an ambiguous keystroke sequence entered by a user. Each selection list entry appears directly on the face of a key. A user selects the desired entry from the selection list by pressing the associated key. Since sequential access to the selection list is no longer required, the select key of the preferred disambiguating system is assigned the function of a space key 1312. In this embodiment it is useful, for ergonomic reasons, to associate a region 1314 of the touch-sensitive LCD with the first entry of the selection list. Designating region 1314 as a key corresponding to the first entry in the selection list allows the user to rapidly select the first entry using the thumb without moving his or her hands from the data keys. A status window 1316 is also provided in the disambiguating system to display to the user the current state of the system. Indicator fields 1318, 1320 in the status window show whether the next keystroke will be the first or second keystroke of a keystroke pair. In FIG. 12, indicator field 1318 is "on" to indicate that the next keystroke is the first keystroke of a keystroke pair. An indicator field 1322 is also provided to indicate when the shift key has been depressed and that the next letter entered will be capitalized. The embodiment of the reduced keyboard disambiguating system depicted in FIG. 12 operates in a similar manner to the preferred embodiment, but the touchscreen expands the flexibility of the system. Because each of the windows are touch sensitive, a user may select words or other symbols displayed in the windows by touching the LCD at the appropriate location. For example, a user can directly enter the editing mode by touching a word to edit in the text window 1306. The faces of the keys in the keyboard 1304 may also be changed by the system to reflect different key interpretations. It therefore is not necessary to provide a key map in the text window to reflect different key meanings, since the faces of the keys can be directly changed to reflect the different meanings. Variations can also be made in the construction and operation of each of the above embodiments. Those skilled in the art will appreciated that alternate arrangements exist for the keyboard 54 of the reduced keyboard disambiguating system. A 3.times.3 array of data keys 56 is preferred because the arrangement is easy to manipulate with the middle three fingers of a user's hand. All keystrokes are either on a center home row, or one row up or down. The system keys 58, however, may be arrayed in different locations in order to speed text entry by the user. For example, as shown in a reduced keyboard disambiguating system 1400 in FIG. 13, a select key 1402 may be located on the left-hand side of data keys 56, and a delete key 1404 may be located on the right-hand side of the data keys. Locating the select and delete keys adjacent each side of the data keys simplifies operation of the keyboard since the user may use his or her thumb to operate the select key and his or her pinky to operate the delete key. The data keys 56 are operated by the middle three fingers of the user. The 3.times.3 array of data keys 56 is also the preferred arrangement because a 3.times.3 array easily maps to other common user input devices other than keyboards. The user input device must be capable of moving to a number of states that correspond to the number of keys in the selected reduced keyboard. For example, a joystick can be substituted for the keyboard in the reduced keyboard disambiguating system. A keystroke is simulated by movement of the joystick. Moving the joystick in one of eight radial directions, each direction corresponding to a distinct state, and returning the joystick to a center default position corresponds to a keystroke on one of the outer circle of data keys. Pressing the joystick down while in the center default position corresponds to a keystroke on the center key of the data keys. A joystick button acts as a select key or other unambiguous system key. A user may therefore enter text using the joystick by moving the joystick to various states in order simulate the desired keystrokes. The disambiguating system would disambiguate the ambiguous keystrokes in the manner described above. Other input devices can also be substituted for the keyboard in the reduced keyboard disambiguating system. As depicted in FIG. 14, a control disk 1454 may be incorporated in a PDA 1452 or other portable electronic device. Control disk 1454 is a generally flat disk that may be tipped eight radial directions. Tipping the control disk in one of the eight radial directions generates a unique signal corresponding to the particular direction. The control disk is biased to return to a center default position after movement in a radial direction. Moving the control disk in one of the eight radial directions and returning the control disk to the center default position is mapped to a keystroke on one of the outer circle of data keys. The control disk may also be pressed to generate a ninth unique signal. Pressing the control disk 1454 while in the center default position is mapped to a keystroke of the center key of the data keys. A dedicated select button 1456 and a dedicated delete button 1458 are locating on either side of the control disk. A user may therefore enter text using the control disk to simulate desired keystrokes. A disambiguating system 1450 connected to the control disk and incorporated in the PDA would disambiguate the ambiguous state sequence in the manner described above. Another portable electronic device benefitting from the reduced size of the control disk is a watch. A watch could incorporate a small control disk on the face of the watch and the disambiguating system discussed above to allow a user to enter text messages into the watch. The messages may subsequently be downloaded or transferred to another system. Several commercial user input devices are available that are particularly applicable for text entry using a mapping method like a joystick. For example, Interlink Electronics of Camarillo, California, manufactures a handheld pointing device called a ProPoint for use in audio-visual presentations. The pointing device is a generally flat disk that may be tipped radially to specify a direction, or pressed to act as a button. The pointing device also contains two dedicated buttons, one located above the control disk and the other located below the control disk. The device manufactured by Interlink may be readily adapted to operate with a disambiguating system by dividing the 360.degree. movement of the control disk into eight segments, each of the segments mapped to a keystroke of one of the outer circle of data keys. Pressing the control disk corresponds to a keystroke of the center data key. The button located below the control disk corresponds to the select key, and the button located above the control disk corresponds to the delete key. When mapped in this manner, a user may rapidly input text using the technique described above. A portable disambiguating system 1500 is shown in FIG. 15A. The portable disambiguating system has a body 1502 that is generally shaped like a pen so that it may be easily grasped by a user. Protruding from an aperture 1504 at the tip of the body is an input shaft 1506. One end of the input shaft 1506 is anchored inside the body by a ball and socket joint 1508. The other end of the input shaft extends from the tip of the body, and terminates in a high-friction tip 1510. The ball and socket joint within the body of the pen allows the input shaft to pivot about the joint. The pivoting motion of the input shaft 1506 is constrained in two ways. First, a resilient bumper 1512 is positioned in the aperture at the tip of the disambiguating system body. The bumper surrounds the input shaft and contacts the input shaft near the tip 1510. The bumper compresses as the input shaft pivots around the ball and socket joint to allow the input shaft to deflect from a default center position. When a pivoting force is removed from the input shaft, the bumper biases the input shaft to return to the default center position. The pivoting motion of the input shaft is also constrained by an inflexible limiting disk 1514 which encircles the input shaft at a point between the bumper 1512 and the ball and socket joint 1508. A cross-section of the limiting disk is shown in FIG. 15B. The limiting disk 1514 is formed with eight cut-out segments 1516 that correspond to the shape of the input shaft. When the input shaft is moved outward from the default center position, the limiting disk limits the input shaft motion to one of eight radial directions corresponding to the cut-out segments. Eight switches 1518 are radially positioned around the input shaft 1506 inside the body 1502 of the portable disambiguating system. The switches are oriented so that each switch corresponds to one of the eight radial directions of input shaft movement defined by the limiting disk, as shown in the cross-section of FIG. 15C. Movement of the input shaft away from the default center position therefore brings the input shaft into contact with one of the eight switches. An additional switch is also located at the ball and socket joint 1508 of the input shaft. The additional switch is activated by a downward movement of the portable disambiguating system body, forcing the input shaft into the body of the disambiguating system. The eight radial switches 1518 and the ninth switch at the ball and socket joint 1508 are connected to processing circuitry contained on a circuit card 1520 within the body of the portable disambiguating system. The processing circuitry includes a processor, associated memory, and a communications interface. Disambiguating software and vocabulary modules are stored within the processing circuitry to allow the disambiguating system to operate as a standalone device. The eight radially mounted switches, and the ninth switch located at the ball and socket joint, are mapped using the technique described above to the nine data keys. One or more buttons 1522 are provided on the outer surface of the body 1502 to act as an unambiguous select and/or delete key. A user enters text with the portable disambiguating system 1500 by placing the tip 1510 of the input shaft on any available surface and moving the body of the pen around the input shaft to simulate keystrokes. The tip of the input shaft prevents the input shaft from sliding on the surface where it rests. Sufficient memory is provided on the circuit board 1520 so that text may be stored within the portable system and later downloaded to a computer. Alternatively, a direct connection may be made from the portable system to a computer or other electronic device having a display so that a user may view the text as it is being entered. It will be appreciated that the portable system shown in FIG. 15A may also include a display on the body 1502 of the device to allow the user to view the text as it is being entered. Preferably, the display would scroll text through the display window as the user enters text. While the above discussion relates to the use of the reduced keyboard disambiguating system with Roman characters and English, it will be appreciated that the system is equally operable with foreign languages using different character sets. Foreign language versions would operate a similar manner, with the foreign character set grouped on the keys of the keyboard to optimize the keyboard and minimize the ambiguity in the particular language, or across multiple languages. Those skilled in the art will also recognize that additional vocabulary modules can be enabled within the computer, for example vocabulary modules containing legal terms, medical terms, and foreign language terms. Via a system menu, the user can configure the system so that the additional vocabulary words can be caused to appear first or last in the list of possible words, with special coloration or highlighting. The disambiguation system can also be set so that the selection of such a word causes an audible warning beep. Those skilled in the art will further recognize that the input device, in particular the keyboard, can be separated from the rest of the disambiguating system. In this embodiment, the portable device would comprise a keyboard and associated memory. Ambiguous keystrokes entered by a user are stored in the memory. The portable device is subsequently connected to the rest of the disambiguating system and the entered keystroke sequences disambiguated. This approach is particularly inexpensive since the portable input device is greatly simplified. Consequently, within the scope of the appended claims, it will be appreciated that the invention can be practiced otherwise than as specifically described herein.
|
| ||||||||||
