Input of abbreviated word form

Speed typing apparatus and method

6799303

Abstract

A speed typing method and apparatus having multiple letters associated with each key of a keyboard. By utilizing multiple characters on each key, the number of keys would be fewer than the number of letters in the alphabet using this system. Each key on the keyboard is associated with a numerical code. The system uses the numerical code associated with a typed word to access a dictionary, table of words, or at least a beginning of words stored in memory at a memory location corresponding to the input numerical code. The system may display all of the possible words or beginnings of words available to the user in response to the input code.


Claims

I claim:

1. A method for entering letters of an alphabet using a computer having a display device, memory storage and operator-selectable input elements, the method comprising

assigning more than one letter to at least one input element such that more than one series of letters results from a single selection of input elements,

storing words in the memory storage, and

displaying on the display device for each entered input element, a series of letters that form at least one valid combination, said at least one valid combination being determined from said stored words in the memory storage for a same number of the input elements thus far selected.

2. The method of claim 1, further comprising displaying series of letters associated with the selected input elements that match a word or words stored in the memory storage and selecting one of the displayed words.

3. The method of claim 1, wherein when a match is found in the memory storage, removing from the display, series of letters associated with the input elements selected by the operator for which no match was found with words in the memory storage when the operator subsequently selects an input element.

4. The method of claim 1, further comprising defining a new word and storing the new word in the memory storage.

5. The method of claim 1, wherein at least one of the input elements is associated with a single letter.

6. The method of claim 1, wherein most of the input elements are associated with no more than two letters.

7. The method of claim 1, wherein all of the input elements are associated with two letters.

8. The method of claim 1, wherein the step of assigning comprises assigning vowels alphabetically on input elements mostly adjacent to each other in alphabetical order and the consonants are so placed that the vowels and consonants are substantially in alphabetical order.

9. The method of claim 1, wherein if there are no words located in the memory storage formed by the selected series of input elements, then displaying each of the letter or letters associated with each selected input element.

10. The method of claim 9, further comprising selecting displayed letters to form a word not previously stored in memory storage and storing that word in memory storage.

11. The method of claim 10, further comprising appending letter or letters associated with subsequently selected input elements only to the previously selected series of letters and displaying those appended series of selected letters.

12. The method of claim 1, wherein the step of displaying comprises displaying in a dynamic window.

13. The method of claim 1, wherein a match is found when letters associated with the input element(s) thus far selected correspond with letter(s) of a word stored in the memory storage in an identical order, the match starting with a letter associated with the first selected input element of the series of selected input elements through a last selected input element of the series of selected input elements.

14. The method of claim 13, wherein if an input element is associated with more than one letter, each letter is matched separately.

15. The method of claim 1, wherein if a match is found in the memory storage, then appending each letter associated with a subsequently selected input element separately to each series of letters displayed immediately prior to selection of the subsequently selected input element, and displaying on the display device the series of letters associated with the input elements thus far selected.

16. The method of claim 1, wherein if there are no words located in the memory storage formed by the selected series of input elements, then displaying one or more closest series of letters.

17. The method of claim 1, further comprising selecting one of the displayed series of letters and removing the unselected series of letters from the display device.

18. The method of claim 17, further comprising re-displaying on the display device the removed unselected series of letters.

19. The method of claim 17, further comprising appending letter or letters associated with subsequently selected input elements only to the previously selected series of letters and displaying those appended series of selected letters.

20. The method of claim 1, further comprising selecting one of the displayed series of letters, eliminating the non-selected series from the display, and appending further selected input elements only to the selected series of letters.

21. The method of claim 17, wherein a default series of letters is selected upon the operator selecting a space bar or punctuation.

22. The method of claim 21, wherein a space is automatically inserted after the default series of letters is displayed.

23. The method of claim 1, wherein one of the displayed series of letters is displayed in a home line, and the other displayed series of letters are displayed in successive rows below the home line.

24. The method of claim 23, wherein a series of letters displayed below the home line may be scrolled into the home line.

25. The method of claim 23, further comprising displaying a number adjacent to each series of letters displayed below the home line and selecting a series of letters by selecting the number adjacent to the series of letters.

26. The method of claim 25, further comprising adding a space after the selected series of letters and eliminating the unselected series of letters from the display.

27. The method of claim 25, further comprising eliminating the unselected series of letters from the display.

28. The method of claim 23, further comprising selecting a series of letters displayed in a first line below the home line by selecting a first select key.

29. The method of claim 28, wherein the first select key automatically inserts a space after the selected series of letters.

30. The method of claim 28, wherein the first select key automatically adds a space after the selected series of letters only when the selected series of letters comprises more than one letter.

31. The method of claim 23, wherein the operator may scroll a letter or series of letters from below the home line to the home line.

32. The method of claim 28, further comprising selecting a series of letters displayed in a second line below the home line by selecting a second select key.

33. The method of claim 23, further comprising the step of enabling the operator to select one of the displayed series of letters.

34. The method of claim 33, further comprising adding a space after the selected series of letters.

35. The method of claim 23, further comprising selecting a series of letters by using a mouse.

36. The method of claim 23, further comprising the step of enabling the operator to enter a delay mode in which selection of a series of letters is delayed.

37. The method of claim 36, wherein the delay mode allows the operator to edit a previously selected series of letters.

38. The method of claim 23, wherein the series of letters displayed in the home line is based upon statistical use.

39. The method of claim 38, wherein the statistical use is based upon a number of possible words associated with a series of letters thus far selected.

40. The method of claim 38, wherein the statistical use provides that after a consonant is selected by the operator, a vowel has higher priority than another consonant.

41. The method of claim 38, wherein the statistical use provides that after a vowel is selected by the operator, a consonant has higher priority than another vowel.

42. The method of claim 1, wherein the step of assigning comprises assigning indicators to the input elements, the indicators indicating which finger is to be placed on each input element.

43. The method of claim 23, wherein the series of letters displayed in the home line is selected by default upon entry of a space bar, punctuation mark or select entry key.

44. The method of claim 43, wherein the series of letters displayed in the home line is selected by default upon the operator selecting a space bar or punctuation.

45. The method of claim 44, further comprising the step of adding a space after the selected series of letters by the selection of the space bar, punctuation or input element select key.

46. The method of claim 1, wherein if no series of letters possibly forms a word, then displaying each letter associated with each input element of the series of selected input elements, either from the beginning of the series of letters or from the last selected input element in the series of letters associated with a possible word in memory storage.

47. The method of claim 1, wherein none of the displayed words are a desired word, then displaying each letter associated with each input element of the series of selected input elements, either from the beginning of the series of letters or from the last selected input element in the series of letters associated with a possible word in memory storage.

48. The method of claim 1, wherein when no match is found, selecting one displayed letter for each of the selected input elements to form a word.

49. The method of claim 48, further comprising storing the formed word in the memory storage.

50. The method of claim 46, wherein for each selected input element one of the displayed letters is displayed in a home line and the remaining letters are displayed in successive rows beneath the home line.

51. The method of claim 50, wherein the operator may move any of the displayed letters into the home line.

52. The method of claim 1, wherein the step of assigning comprises assigning more than one letter to at least one input element so that more than one possible word may result from a single series of selected input elements.

53. The method of claim 1, wherein the step of determining the completion of a word includes actuation of an actuation mechanism.


Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method and apparatus which makes it easier to learn to type, improves the accuracy of typing, increases typing speed and reduces wear on the user. More particularly, the present invention relates to a system for the rapid entry of text into a microprocessor-controlled word processing system making use of a keyboard having multiple alphabet letter characters assigned to at least one to as many as all of the keys.

2. Description of the Related Art

Conventional typewriters make use of twenty-six (26) letter keys, one for each letter of the English alphabet. One of the initial keyboard layouts is the "QWERTY" keyboard, which today remains the industry standard. Other formats have been devised, such as the Dvorak keyboard, that position keys about the keyboard in an ergonomic fashion for ease of use and accessibility. These alternative formats primarily seek to increase speed of typing and accuracy, as well as to reduce wear on the user.

Generally, all of the traditional keyboards provide an individual key for each letter of the alphabet. In addition to the letter keys, function keys are provided, such as ALT, CTRL, SPACE BAR, ENTER, and so forth. Consequently, the keyboards are congested with numerous keys and require a great deal of space. Likewise, these conventional keyboards require the user to memorize or be able to locate a particular key for each character the user would like to select.

Other keyboard layouts assign more than one character to a key, usually referred to as multiple letter key or double-touch systems. These systems, however, require the user to operate multiple keys in order to select a single desired character. Systems that require concurrent or simultaneous operation of multiple keys, such as shown in U.S. Pat. No. 4,891,777, are sometimes referred to as chord systems. The chord systems require the user to expend twice the effort for each letter to be selected. In addition, these chord systems require the user to be able to remember 26 key combinations, one for each letter of the alphabet.

Other multiple key systems require the user to operate specific multiple keys in a successive manner. U.S. Pat. No. 5,062,070, for instance, shows a system in which multiple characters are provided for each key. However, in order to select the particular character desired, the user must make at least two successive keystrokes. Thus, the user must remember 26 different combinations of successive keystrokes, one for each letter of the alphabet. U.S. Pat. No. 5,007,008, on the other hand, provides a keyboard in which the user must scroll through each of multiple letters that are assigned to a single key by repeatedly depressing that key.

As a result of having to enter multiple keystrokes to select a single character, these double-actuation or multiple letter key systems are slow, tiresome, and prone to typographical errors. Accordingly, these systems are primarily used where a reduced keyboard size is of utmost importance, as opposed to speed and accuracy.

Another variation of typing, called abbreviated typing, involves only having to type part of a word. U.S. Pat. No. 4,459, 049, for instance, shows an abbreviated typing system in which the user only needs to enter four or less characters. The system will then search for the abbreviated word in memory. When the abbreviated word is located, the full word is entered from the memory into the document.

All of these keyboard systems are difficult to use and even more difficult to learn. Consequently, typing is slower and prone to mistakes. Moreover, these keyboards are all the more difficult to operate by persons that have not learned to use that particular type of keyboard. These "hunt and peck" typists must search for the desired characters, which are often arranged in a non-alphabetic order and amongst a great number of keys.

Another type of keyboard entry is encountered on telephones that are used to access remote systems, called automated response systems. Generally, these automated response systems will recognize alphabet characters associated with a key depressed on a remotely located telephone keypad. One such system, for instance, is employed by the U.S. Supreme Court, wherein users simply dial the Supreme Court phone number in order to locate the docket number or status of a pending case. The user may call into the system from any conventional remote phone location.

Once the Supreme court automated response system is accessed, the user is prompted by voice message to specify the name of the desired case by depressing keys on the remote telephone keypad. Pursuant to current instructions, the user then proceeds to enter up to ten alphabetic characters of the name of one of the parties to the desired case on the keypad of the remote telephone. The conventional telephone keypad consists of twelve keys, 0-9, *, and #. Multiple letters are associated with each of numerical keys 2-9, so that all 26 letters are accounted for except for Q and Z, which the system specifies as being assigned to numerical key 1. The user then depresses ten numerical keys corresponding to the name of one of the parties. Or, the user may enter less than ten digits followed by the * key or a four-second delay. Once the party name has been entered, the system then searches the clerk's office docket and provides a voice indication of the three closest cases that have been located by case number, parties, and status. If the user is not satisfied with any of those cases, the user may then speak with a docket clerk.

The automated response system described above is designed to accommodate conventional telephone keypads, with limited words in memory and is not implemented in a word processing environment. Consequently, the system is extremely slow and not readily adaptable for use as a speed typing arrangement. Moreover, the system is limited to use with voice or speech communication systems and with telephone keypads. Consequently, the automated response systems do not provide for editing memory, defining preferred terms, or defining new word variations. In addition, the telephone keypads are not designed for typing, much less speed typing.

As an alternative to the conventional keyboard, input devices have been mounted on the hand and fingers. Such devices are shown, for instance, in U.S. Pat. No. 5,581,484 to Prince, and U.S. Pat. No. 4,414,537 to Grimes. Basically, these systems place switches at various positions about the hand in order to simplify entry of information into a computer. However, these systems are not directed toward speed-typing.

SUMMARY OF THE INVENTION

The present invention relates to a system and method for rapid typing using a keyboard which has multiple characters assigned to at least one to as many as all of the keys, so that fewer than the number of letters in the alphabet using this system (e.g., fewer than 26 letter keys for the English alphabet or the 33 letters in the Russian alphabet). For example, all 26 letters of the alphabet may be assigned to 4, 6, 8, or 17 keys. Each such key on the keyboard is associated with a numerical digit whereby one or more series of digits form a code. The system uses the numerical code to access a dictionary or table of words stored in the computer's memory at a memory location corresponding to the numerical code. The system may display all of the words available to the user in response to the input code. If more than one word is responsive to the coded numerical sequence, the user then selects one of the available words to be placed in the document.

The user is further given the option of selecting a preferred word or words to be associated with any given numerical code. When that code is typed in, the computer will display all words, with the preferred words displayed in ranked order. The user, however, may optionally select to display only the preferred word or words.

In addition, the user may be given the option of having the words associated with any given numerical code displayed in different ways, such as (1) in accordance with an order or degree of preference which the user defines, (2) in accordance with a predefined preference list which gives a higher ranking to those words that are the most commonly used, (3) in alphabetical order, or (4) in accord with special predefined categories of usage, such as legal or scientific terminology. The user has the option of having the priority list adjusted automatically based upon the selection of words made by the user when designating the desired word from the group of words with the same numerical code.

A further feature of the invention is that the user may select between a range of keyboard configurations, such as 4, 6, 8, or 12 letter keys to which are assigned the 26 letters of the alphabet. Also, the system will complete and display lengthy words before the user has finished typing them on the keyboard. The invention is preferably implemented on a traditional QWERTY keyboard, wherein multiple letters are assigned to the row of number keys, 0-9, typically located along the top row of the keyboard, or to the rectangular grid of numerals commonly located to the right side of the keyboard or the horizontal rows of keys to which letters are conventionally assigned. In addition, a specially-designed keyboard, which plugs into a computer, is also shown to implement the invention. The provision of fewer keys makes the special keyboard particularly better suited for use by persons with physical disabilities, and may be used in place of, or in conjunction with, the traditional keyboard.

Accordingly, it is an object of the present invention to provide a system for faster typing using a keyboard easier to remember and having as few or as many keys as the user desires.

It is a further object of the invention to provide a speed typing system that may be utilized with a compact keyboard that is not congested with excessive keys, thereby reducing size and space requirements of the input device.

It is another object of the invention to provide a keyboard that has multiple letters per key, yet only requires a single touch to select a desired letter key.

It is still a further object of the invention to provide a keyboard for speed typing that is ergonomic, reduces wear on the user, and easy to learn, and increases accuracy and efficiency.

It is another object of the invention to provide a typing system that is easy to use for persons with disabilities, such as arthritis.

It is another object of the invention to implement a speed-typing system with a finger-mounted input device.

It is still yet another object of the invention to design contoured keys for a keyboard that enable a user to sense the relative position of his hand on the keyboard.

It is another object of the invention to provide a quick and easy method for entering information for editing and typing using a speech recognition system.

It is another object of the invention to provide a system to compress data to reduce memory required to store data and increase speed of transmission.

These together with other objects and advantages which will become subsequently apparent when reference is made to the drawings and description hereinbelow.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an overall preferred embodiment of the word processing system of the invention in block-diagram format.

FIG. 2(a) shows an 8-key configuration as implemented on the top numeral row of a standard QWERTY keyboard in accordance with the preferred embodiment of the invention.

FIG. 2(b) shows a 14-key configuration as implemented on the conventional character row of a standard QWERTY keyboard in accordance with the preferred embodiment of the invention.

FIG. 3 shows a 6-key configuration of a specially designed keyboard in an alternative embodiment of the invention for use with the system of FIG. 1.

FIG. 4(a) shows a flow chart in accordance with the preferred method of operation of the system.

FIG. 4(b) shows a flow chart in accordance with an alternative method of operation of the system.

FIG. 5 shows the output of the invention for the monitor of FIG. 1 in accordance with the preferred embodiment of the invention.

FIG. 6 is a flow diagram for an alternative embodiment of the invention.

FIG. 7 shows the output of the invention for the monitor of FIG. 1 in accordance with an alternative embodiment of the invention.

FIGS. 8(a)-8(d), 9, 10, 11, 12, 13, 14, 15, 16, 17(a)-17(d), 18, 19 and 20, show alternative keyboard configurations for use with the keyboard of FIG. 1.

FIG. 21 shows an alternative keyboard configuration for use on the touch-screen monitor of FIG. 1.

FIGS. 22(a)-(b) are a table showing the number of word codes associated with more than one word when two letters of the alphabet are combined on the same key.

FIGS. 22(c)-(d) are a table of five- to twenty-one-key keyboard configurations generated based upon the table of FIG. 22(a), and showing the number of word codes associated with more than one word, and the total number of words associated with those word codes having more than one word, for each configuration.

FIGS. 22(e)-(x) are alternative keyboard configurations, based upon the table of FIG. 22(b).

FIG. 23 shows a finger-mounted input device and input selection panels used in association with the speed-typing system of the present invention.

FIG. 24(a) is a top view showing the contoured keypad in accordance with the present invention.

FIG. 24(b) is a side view of the middle top, bottom and side keys shown in FIG. 24(a).

FIG. 24(c) is a perspective view of the four corner keys of FIG. 24(a).

FIG. 25 is a block diagram of the word processing system in combination with a Speech Recognition System.

FIGS. 26(a)-(y), 27(a)-(z) and 28(a)-(m) show various alternative keyboard configurations.

FIGS. 29(a)-29(l) are various alternative keyboard configurations.

FIGS. 30(a)-154 are various configurations of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In describing a preferred embodiment of the invention illustrated in the drawings, specific terminology will be resorted to for the sake of clarity. However, the invention is not intended to be limited to the specific terms so selected, and it is to be understood that each specific term includes all technical equivalents which operate in a similar manner to accomplish a similar purpose.

Turning to the drawings, FIG. 1 shows the speed typing system 100 in accordance with the preferred embodiment of the invention. Generally, the system 100 comprises a computer 10 having a microprocessor, internal memory 12, and associated input/output components well known in the word processing art. A conventional expanded keyboard 14, printer 16, and display 18 is provided in a conventional manner. In addition, a separate specially designed keypad or keyboard 50 may be optionally utilized in a manner to be described. The word-processing system is controlled by programmed instructions within the computer which recognize operator-initiated keystrokes and subsequently display and print the text. The software instructions will be modified from conventional instructions to perform the functions of the present invention. The software to perform the functions of the present invention may be within the pre-programmed instructions of the word processing system or stored on a disk, CD-ROM, or stored and retrieved remotely through the Internet or local network or other like systems, for input into the computer and may be linked by conventional interfacing techniques to all major word processors in a manner well known in the art, such as by Dynamic Database Enhancing or Object Linking and Abetting or Standard Interface.

Although system 100 is shown as consisting of separate components, the system 100 may be implemented in a variety of manners, such as in a hand-held computer 10 with memory 12 which is integrated with a keyboard 50 and a display 18. The hand-held computer, or portable input device, may be remotely located with its output either directly wired or transmitted wirelessly to the computer. Thus, the portable input device may be used to access the system remotely, such as through a remote telephone, over conventional telephone lines, or wirelessly, using tone signals or binary code signals that are generated by the input device.

The invention is designed so that the user may decide to use some of the lettered keys of a conventional keyboard or the numbered keys of a conventional keyboard, which are generally located along the top row of the keyboard or along the right hand side of the keyboard. Likewise, the invention may be implemented on a touch-screen monitor, by a toggle-type control lever resembling a joystick in appearance, or by other like input devices. The keys may be still further be mounted on a portable keyboard in which the finger keys press inward in one direction and a thumb-operated key is mounted on the side of the keyboard and is pressed inward by the user's thumb. The thumb is especially useful for function controls, spacing, backspacing, or for controlling the direction of cursor and for highlighting.

FIG. 2(a) shows a traditional expanded QWERTY keyboard 14 used to implement the present invention in accordance with the preferred embodiment of the invention. The examples of the present invention are provided for the English language. Keyboard 14 has 10 numeral keys along the top row and 10 numeral keys along the right hand side of keyboard 14, each labeled from 1-9 and 0. An overlay 23 is shown above the top row of numeral keys, indicating letter characters to be assigned to each of the corresponding numeral keys. In addition, stickers (not shown) having multiple letters may optionally be mounted to the numeral keys located on the right portion of keyboard 14 or on keys that are conventionally marked with a letter.

In one of the preferred embodiments, the standard keyboard is an 8-key configuration, wherein numeral keys 1-7 are each alphabetically assigned 3 letters, and numeral key 8 is assigned 5 letters, as shown by the overlay 23. The number assigned each numeral key is used as an input element code or numerical code that is associated with the corresponding letters.

Another embodiment, corresponding to a 14-key configuration, is shown in FIG. 2(b), where the conventional letter keys "a", "s", "d", "f", "r", "c", "j", "u", "n", "I", "k", ",", "l", and ";" are redefined as shown. The keys range from having a single letter, to as many as 8 letters for a single key. This embodiment preferably places a vowel with one or more consonants rather than a consonant with a consonant or a vowel with a vowel. Vowels and consonants are usually not interchangeable in a given sequence of letters which are arranged to form a word, so that the configuration results in a fewer incidence of words having the same code. In addition, the most commonly used letters are sometimes provided a separate key that is easy to reach. On the other hand, the least-used letters are preferably grouped on a key or keys which are generally not as conveniently positioned.

FIG. 3 shows one example of a specially designed keyboard 50 corresponding to a two-handed 6-key configuration. Keyboard 50 generally comprises alphabetic or letter character keys 52 and function keys 54. Letter character keys 52 are provided in the middle row of keyboard 50, while function keys 54 are provided along the top and bottom portions 56, 58, respectively, of keyboard 50. In addition, a cursor controller 55 and select button 57 are provided along the top portion 56 of keyboard 50. Keyboard 50 may be arranged in any manner suitable to other keyboards, such as the keys being aligned in an arcuate shape. Keyboard 50 interfaces with the word processing computer 10 in a conventional manner.

The function keys 54 may correspond to any suitable function to be performed. Preferably, however, the bottom row of function keys 54 comprise for instance, SPACE BAR 60, TAB key 62, SHIFT KEY 64, and ENTER key 66. The top row 56 of function keys 54 may correspond to numbers or characters, cursor movement keys, definable function keys, capitalization, backspace, or keys having other like operations. In addition, keyboard 50 may be used in conjunction with expanded keyboard 14. Expanded keyboard 14 would supply any of the numerical or function keys 54 not provided by keyboard 50. Accordingly, the expanded keyboard 14 is optional, although it complements special keyboard 50 by providing the full spectrum of traditional function and character keys.

Letter keys 52 are divided into two groups 68, 70, each group having three keys. Three characters are assigned to each of the keys 52 of the left group 68, which are preferably imprinted on the key, though may be located on a template or an overlay on a row above the keys, so that the user's fingers do not otherwise obstruct letters placed on the keys themselves (not shown). The left key 52 has letters A, B, C, D; the middle key 52 has E, F, G, H; and the right key 52 has I, J, K, L. The right group 70 of keys 52 each have from four to five characters: the left key 52 has M, N, O, P, Q; the middle key 52 has R, S, T, U; and, the right key 52 has V-Z.

Each letter key 52 is further assigned a numerical digit corresponding to a numerical or element code 72, which is imprinted on the bottom right side of the key 72. The purpose of the numerical code, or input element code, will become more apparent below. The left group 68 of keys 52 are designed to be used by a user's left hand and the right group 70 is for use by the right hand.

As depicted in each of FIGS. 2 and 3, the letters are generally arranged alphabetically along letter keys 52, from left to right. This configuration makes it easier for a user to learn and memorize the location of keys and for "hunt and peck" typists to find a desired key. However, the letters may be formatted in any suitable manner, such as based upon frequency of use, with less frequently used letters either grouped together or inter-dispersed with more frequently used letters. The letters may also be arranged partially alphabetically, such as placing the vowels on separate keys in an alphabetical order. The letters may also be arranged to reduce the number of words associated with a single word code. Also, the user or programmer may implement a program to locate the letters on the keys with as few or as many keys the user decides.

The computer may further be configured to maintain a tally of the word usage and determine the most frequently used letters and words for that user and the information may be further used to automatically place terms in rank order of priority in memory, as will become more apparent below. For instance, if the letters are to be arranged alphabetically, the letter "o" may be grouped with either "n" or "p". However, due to the often prolific use of the words "on" and "no", it would be preferable to place the letter "o" with the letter "p" or "m", which are close in alphabetical order. Still yet, letters may be grouped together which have similarities in appearance in order to assist recollection of location by the user. Also, additional keys can be concentrated about the index finger so that the keys are easy to reach.

In addition, the keyboard configurations may range in number of keys, such as from 5 or less to 21 letter keys or more (see, for instance, FIGS. 22(c), (d) and (e)), and the number of letters on each key may range from 1 to 8 or more letters per key. There are many other possibilities in addition to those shown in FIGS. 22(c)-(e) that are equally practical and may be designed by the user and integrated in the computer program. As will become more apparent below, the greater the number of keys, and with careful assignment of letters to the keys, the less editing or other interaction that will be required by the user. However, typing will be slower and more difficult to learn since there are more key locations. Likewise, the fewer the number of keys, the easier the system will be to learn and type, but the more editing that will be required of the user.

Now turning to FIG. 4(a), a functional flowchart of the invention as implemented by programmed instructions stored in the computer memory 12 or from a floppy diskette will now be described. The system 100 starts at block 102, where the system formats itself. In formatting, each key is preassigned a particular set of letters and a numerical digit or code 72 according to the designated keyboard configuration. For instance, the preferred default keyboard configuration is the 8-key configuration of FIG. 2(a), or a 10- or 12-key configuration. Accordingly, eight input elements, here keys 52, are assigned the digits 1-8, from left to right, respectively. In addition, each of letters A, B, C are assigned to numerical digit or input element code 1; letters D, E, F are assigned numerical code 2; and so forth. Thus, when a letter key 52 is depressed on keyboard 14, the equivalent numerical code 72 is recognized by the computer 10 at step 104.

The standard eight key format may be changed by the operator in accordance with the system design. That is, the system may display alternate format choices to the operator, such as using 4, 6, or 13 keys, which the operator may select and the operator may select the letters to be assigned each key. Each format may be accompanied by a corresponding template or overlay 23.

After format selection, typing may begin. The operator types out a word and the key depressions are read, step 104. A numeral associated with each key is read and stored as it is depressed until the operator strikes a key that indicates the user has reached the end of the word to be typed, step 106. For instance, if the character is a punctuation mark, space, or carriage return, the system will determine that the word is complete and proceed to step 108. Otherwise, the system returns to step 104, where the system awaits the next character to be entered.

As the word is typed, the display unit preferably displays each of the letters associated with each key that is depressed. For example, as shown in FIG. 5, if the key "1" is depressed a linear column or row displaying "ABC" is displayed. Alternatively, nothing may be displayed, or the numeral "1" may be displayed. Still further, only an asterisk or other symbol may be displayed. These display symbols will automatically be erased when the system determines that the typed word is accepted or when the user erases it so that he can enter another word.

Once the entire word has been received, step 106, the system will search the memory 12 by comparing the numerical value of the input code with a table of word codes stored in memory 12, step 108. An example of several numerical or word codes are shown, for instance, in Table 1 for the standard 8-key configuration of FIG. 2(a). As shown in Table 1, each word code is stored in a specific memory location, with each memory location having a list of one or more words. The word codes are formed from one or more numerical input element codes. Accordingly, every word in the dictionary is stored in the table memory as associated with a particular code. The memory may be configured from any standard word-processing dictionary or like system.

          TABLE 1
          Code            Preferred Words        Words
          5-5                                    no
                                                 on
          5-5-8           now                    now
                                                 mow
          5-5-8-7                                mows


In addition, fewer than every word in the dictionary may be stored in the table memory. For instance, the user may select a limited category of information corresponding to a more finite vocabulary, such as for composing business letters or scientific papers, or addressing medicine, biology, physics, proper nouns, philosophy, and the like. The reduced dictionary diminishes the memory requirements, as well as the time needed for the computer to search the memory. Likewise, less interaction would be required by the user since there are fewer codes in memory, so that each code is further likely to be associated with fewer words, thereby increasing the speed of typing.

The user is able to select which dictionary is to be used, and any dictionary could be combined with any other dictionary, or used alone or with a basic dictionary of common words. Thus, if a word is not found in one dictionary, the user could expand the search to another dictionary. Such search could also be made automatic. The user may also define a dictionary of frequently used words, and may add or remove words from any of the dictionaries.

If the input numerical code is located or found in the memory table, step 108, the system proceeds to step 118. At step 118, the system will check the memory location to determine if more than one word, i.e. multiple words, are associated with the particular input code. If, however, no words are found in memory at step 108, the user will have the opportunity to correct any misspelling of the word, step 109. If the user determines that the code was entered incorrectly, step 109, the user may go back and re-enter the code, step 104. Correction of a misspelling is performed in accordance with the standard word processing operation, such as by erasing the typed code where necessary and entering the new text code. After making the correction, the system determines if a code has been found in memory for the corrected word, step 108.

Assuming, on the other hand, that there was not a typing error, the user may add words in memory, step 110, by adding a particular word to the dictionary memory corresponding to the numerical digits selected. The user selects the new word by highlighting the proper letters among the group of letters displayed above and/or below the home row being typed. Or, the letters may be displayed in a window elsewhere on the screen. As the letters are highlighted and selected from the window, they are then entered into the home row.

Once all the letters of the word are highlighted, the user hits ENTER, and the computer stores the new word in the memory location corresponding to the associated numerical code. If the user elects to add the word in memory, the memory is updated, step 112. The selected word is then displayed in the text of the document, step 114, and the system then returns to step 104, where it awaits the next key to be input, step 117.

If, on the other hand, the user does not add any word in memory, step 110, instructions are displayed, step 116, and the system returns to wait for the next key, steps 117, 104. The instructions may indicate, for instance, that no word has been located and the user should determine whether there was a typographical error or that the user should reconsider whether to define a new word. Thus, the message may read "check spelling" or "code not recognized". Or, the system may display words corresponding to the closest code that is located in memory and indicate that no exact match has been found.

If there is at least one word stored in memory that is associated with the input code at step 108, the system will proceed to step 118. At step 118, if only a single word is stored in the memory location associated with the input code, the word will be displayed, step 120. The user will have the opportunity to change (i.e. add or delete) the word stored in memory, step 122, if, for example, the word in memory is not the word desired to be displayed. As in step 110 above, the memory is updated to include, or omit, the changed word, step 124, the new word is displayed, step 126, in place of the originally displayed word, and the system, at step 127, returns to step 104. If no words are modified at step 122, indicating that the displayed word is correct, the system, at step 127, will return to step 104.

The process of changing the words in memory, steps 110, 122, 152 (as will be discussed below), allows the user to update the memory for specially defined words that are not normally included in a standard dictionary. For example, a proper noun might not be in a dictionary memory and thus the operator may want to change or add the proper noun to the memory for that particular code. Thus, the user may incorporate proper nouns, technical terms, abbreviations, and so forth, into the computer memory. This is done in any suitable programming manner, such as by simply appending the new word into the memory location associated with the given code. In addition, the user may modify the memory so as to later omit terms that were previously incorporated into the memory.

Assuming that there is more than one word in memory, step 118, all the words are displayed, step 142, with any preferred words being displayed at the top of the list of words. The user then has the option of selecting a word, step 144, creating preferred words, step 148, or including a new word in memory that corresponds to the code, step 152.

If the user selects a word among the words displayed, step 144, the selected word is displayed, step 146, and the system returns to await the next input character, steps 147, 104. However, if no word is selected, step 144, the user may wish to create preferred words, step 148. At step 148, the user may define a displayed word or words as being a preferred word to be listed at the top of the list, step 148, or in a certain rank order. If the preferred words are modified, step 148, the memory is updated, step 150, the word is displayed, step 146, and the system again returns to step 104, step 147.

The preferred words are those words that have previously been selected or designated by the user as terms that are most frequently used. The system may also be configured with the words pre-designated as being preferred words. Still yet, the system may be configured so that the preferred word is the word that was selected the last time the same code was entered by the user. As shown in Table 1, for instance, the term "now" is defined as the preferred term for code 5-5-8. Though the preferred terms are shown as a separate list in memory Table 1, they may simply be flagged as a preferred term and stored with the other words for that memory location.

Finally, if the user does not select a word, step 144, and does not change the list of preferred words, step 148, the user may change, i.e. add to or modify, the words in memory, step 152. For example, as discussed above, the desired word may be missing among the displayed words, or the user otherwise wants to include a new word to be associated with the input numerical code. If so, the memory is updated at step 150 to reflect the new information, and the new word is displayed, step 146. The system then returns to step 104, where the system awaits a new character to be input, step 147.

If the user does not select a word, step 144, create a preferred word, step 148, or change a word, step 152, an instruction message will be displayed, step 154. The system will then return to step 104, where it will wait for the next key to be typed, step 147. The message may indicate, for instance, for the user to "check spelling" or that the "word was skipped." Now turning to FIG. 4(b), an alternative embodiment of the flow chart of FIG. 4(a) will be discussed. As a standard practice, the system will display all the words in the manner shown in FIG. 4(a), with the preferred words displayed at the top of the list of words. However, FIG. 4(b) now allows the user to first display a list of only the preferred words. If the desired word is not found among the preferred terms, the user may then decide to see a list of all the words.

Accordingly, steps 302-327 of FIG. 4(b) are similar to steps 102-127 of FIG. 4(a). Picking up at step 318, however, the user now has the election to first display a list of only the preferred words. Thus, if there is more than one word stored in the memory location associated with the input code, as verified at step 318, the system will next check for a list of preferred words, step 328. If preferred words are stored in memory, the system will display any preferred words associated with that input code, step 330. An asterisk or message will be displayed along with the preferred words so that the user knows that additional words are available aside from only the preferred terms displayed.

The user may, after reviewing the list of preferred terms, step 330, decide to see the entire list of words, step 332, after which all the words are displayed, block 342, offering the operator various choices as will be discussed below. If all the words are not to be displayed, the system then determines if there are multiple preferred words stored in memory, step 334, and, if so, the user may pick among the preferred words, step 338. If a word is selected, the selected word is displayed, step 336, and the system returns to await a new keystroke, steps 337 and 304. If no word is selected, a message is displayed, step 340, and the system returns to receive the next key, steps 337, 304.

Returning to step 332, if the user selects to display all the words stored in memory, step 332, or if there were no preferred words to begin with, step 328, all the words will be displayed, step 342. Accordingly, all words in the appropriate memory location are displayed on monitor 18, step 342. Once the words are displayed, step 342, the user then has the option of selecting a word, step 344, creating a list of preferred words, step 348, or including a new word in memory that corresponds to the code, step 352.

Steps 342 to 354 are essentially similar to steps 142 to 154 of FIG. 4(a). At step 348, however, the user may define a displayed word or words as being preferred words or otherwise view and modify the list of preferred words or create a new list of preferred words, step 348.

Referring now to FIG. 5, an example of the operation of the invention will now be described with reference to FIG. 4(a). The monitor 18 is generally shown as having a main screen 22 on which the output is displayed. Suppose, for instance, that the user desires to type the phrase "Dear Tom, Now is the time for all good men to come to the aid of their country.". After the computer formats, step 102, the user would begin typing the word "Dear" by striking the key sequence 2-2-1-5, which is recognized by the system at step 104. As each keystroke is made, the letters associated with each key are displayed on the screen 22.

The letters are preferably displayed vertically upward, above the home row 25, which is shown as the center row. The home row is the line that is being typed. It is the row in which the highest preferred word is displayed. If there are no preferred words, the word displayed in the home row may be the first alphabetically listed word, or the word that was selected the last time that code was entered. Below the home row is displayed the list of words with lesser priority, which may be listed alphabetically. When a word from below the home row is selected, it is moved into the home row. It may be preferable to display the letters and words horizontally, especially when there are fewer words to edit, such that most editing will only involve selecting between one of two words.

For a large number of letters assigned to a particular key, the user can elect that the system limit the letters displayed to the first three or four. An asterisk is then provided to indicate to the user that other letters are available to be scrolled. Referring to FIG. 5, for instance, when the user depresses key 8 for the letter "w", the letters "v", "w" and "x" are displayed. An asterisk is also displayed, indicating that additional letters, "y" and "z", have not been displayed. Of course, the user may elect not to display the letters, and have the option to display letters if a desired word is not displayed. Thus, for instance, the letters may only be displayed when no word code is found in memory. If a word code is found in memory, only the words will be displayed, and not the letters for the individual keys that are depressed.

Suppose now that the user has finished typing the word "Now", by striking codes 5-5-8. Once 5-5-8 is entered, the user would then depress space bar 60, indicating to the system that the word has come to an end, step 106. At that point, the system 100 would search the memory and recognize the input code 5-5-8 as corresponding to one of the codes in memory 12, as depicted in Table 1, step 108.

In an alternative preferred embodiment, the numerical code may be searched as the user strikes each key. Thus, when the user strikes 5 for "N", the memory will scroll past all numerical codes starting with a value less than 5. When the user next strikes 5 for "o", the memory will scroll to numerical code 5-5. (At this point, though the user hasn't completed typing that particular word, the currently available words "no" and "on" may be displayed on screen 22.) When the user next strikes 8 for "w", the system need only scroll down a short distance to locate the proper code, 5-5-8.

Continuing with our example at step 118, the system will recognize that there are two words, "now" and "mow", associated with code 5-5-8. At this point, the system may sound an audible beep to alert the user to edit the document.

In addition, the system will then determine that the word "now" has been marked as a preferred word. Thus, the word "Now" is displayed on screen 22 in the home row 25 and highlighted. In addition, the word "Mow" is displayed below "Now", as shown in FIG. 5. The user may display all words in any suitable manner, such as by selecting the function from a pull-down menu. The words associated with the input code are preferably displayed downward starting at the home row 25. The user may then scroll down to highlight one of the words displayed, such as "Mow" by using scrolling keys on keyboard 14 or 50, mouse 20, or cursor controller 55, step 144. Once the appropriate term is highlighted and the user depresses the ENTER key, the selected term is displayed on screen 22, step 146, and the system returns to wait for the next key, steps 147, 104.

An example of scrolling downward is shown in FIG. 5 for the code 3-5-5-2. After the full code is entered, the words "gone", "home", and "good" are displayed downward, with the term "gone" being positioned in the home row 25. At the point shown in FIG. 5, however, the user has scrolled downward to highlight the term "good". Once "good" is highlighted, and the ENTER key depressed, the words "gone" and "home", as well as the letters, are removed from the display. In addition, the term "good" would be displayed in home row 25, without being highlighted, as shown for the words "for all".

Of course, instead of highlighting the desired word, the system may underline the desired word, provide the displayed and/or selected words in brackets, or use any suited method or combination to distinguish selected words from the list of displayed words. Also, the word may be displayed side-by-side, as opposed to being vertically aligned, and the letters may be displayed in a window and may remain in the window until editing and placement of the desired word in the home row.

Still yet, the words may be selected by being scrolled into the home row 25 and hitting ENTER. Or, the user may select a number located next to the listed words that would put that word into the home row. Of course, the words may be displayed both above and below the home row. Where there are three words, such that one word is above the home row and one word below the home row, the user would have the option to hit the "+" and "-" keys to select the word above or below the home row, respectively. In addition, the user may hit a scroll key (which is preferably positioned between the "+" and "-" keys) to view a next group of three words that would then be displayed in the same fashion. In addition, the words may be displayed in a window elsewhere on the screen.

The user may further decide to add a new word (or, if no word code is located in memory due to a misspelling) to memory, step 152. Referring to FIG. 5, suppose the user inputs code 7-5-5 for his name, "Tom". A standard dictionary memory may not have the proper noun word Tom, but does have other words for that codes, including "Ton" and "Son". As described above, all letters for code 7-5-5 are displayed on screen 22 as the respective keys are depressed. In addition, in the absence of any preferred terms, the words "Ton" and "Son" are also displayed on screen 22. In order to define the new word, the user may then exercises the option to display all the letters by depressing a function key and then the user highlights the letters used to form the new word, "Tom", either by vertically scrolling the letters into the home row 25, or by moving the cursor and clicking, as shown in FIG. 5.

Once all of the letters are highlighted, the user hits the ENTER key and the word is displayed in the home row 25, step 114, and all the letters and remaining words are removed from the display. Of course, the user may, instead of highlighting each individual letter, change to a standard 26-key keyboard configuration (as will be described below), in order to directly type a word. Still yet, instead of highlighting, the system may underline a letter, provide letters in brackets, or use any suited method, including the combination of underlining and highlighting, to distinguish a selected letter. The letters may also be displayed side-by-side, as opposed to being vertically aligned.

Nevertheless, once the letters are selected, and a word is formed, the system then updates the memory, step 150, so that the new word "Tom" is stored in the memory location corresponding to numerical code 7-5-5 (or a message may be displayed indicating that the word was not in memory). The system then returns to step 104, where it waits for the next key to be depressed. Once the operator has completed typing, the operator may print the document on printer 16, save to document to disk, or perform any other function common to word processing systems.

Now turning to FIG. 6, a flow chart is shown in accordance with yet another alternative embodiment of the invention. FIG. 6 differs from FIG. 4(a) by allowing the user to finish typing an entire sentence, paragraph, page, or document, prior to having to select the words to be finally displayed. In addition, the preferred words are now displayed in conjunction with the entire set of words, as in FIG. 4(b). Thus, instead of displaying the list of preferred words alone, the system now displays all the words, with the preferred words at the top of the list. Long lists may be scrolled in any suitable manner.

As in FIGS. 4(a) and 4(b), the system starts out by first formatting itself, step 202, and reading keys, step 204. After an entire word is input, step 206, the system will check for the code in memory, step 208. If the input code is not located in memory, step 208, a message will be displayed, or the code will be displayed, step 210, and highlighted, to indicate no word has been found. If the code is found, step 208, and there is only one word, step 212, that word is displayed, step 214. Assuming that there is more than one word in memory, the system will display all the words, step 216, with the highest ordered preferred word always displayed at the home row and other words above and/or below. Here, however, since there is only one word, the step of checking for more than one word, step 212, may be removed since the single word would necessarily be displayed at step 216.

After the code, word, or words have been displayed at steps 210, 214, or 216, the system will determine whether to edit or verify the document, step 218. Here, the user may select that the document is to be edited following the entry of a line of text, a paragraph, or a page and the system will remind the user at the appropriate intervals. Accordingly, after each line, sentence or paragraph of text is entered, the system will automatically prompt the user to go back and edit that line, though the user may continue typing and edit the document at a later time. Upon subsequently editing the document, the system may automatically proceed from one word to be edited to the next, skipping all word codes that only had one word in memory. Or, the system may allow the user to skip between words to be edited, by using a TAB key, a function key, or the like.

The user may also have the option of using "+""-" and "0" keys to select amongst a plurality of displayed letters and/or words. For instance, assume that the user must select from amongst 9 words that are displayed on the screen for the typed word code. The words are displayed both above and below the home row, so as to be centered about the home row (with any preferred word in the home row, and the remaining words listed alphabetically or in rank of priority). The user may then hit the "+" key in order to narrow the displayed words to those above the home row (here, the top five words) and the remaining words would be removed from the display. The five displayed words are then centered about the home row and the user may then hit the "-" key to select the words displayed below the home row, if that is the location of the desired word. Once the field is narrowed to only three words, the "+" and "-" keys would select the word above or below the home row, respectively. Of course, the word in the home row may always be selected by hitting an enter key, or by the user continuing to type.

In addition, the system may be configured so that only three of the nine words may be displayed at a time and the "+" and "-" keys would select the words above and below the home row, respectively, and the "0" may be used to scroll to the next set of three words. Also, the user may hit a number displayed next to the word to immediately enter that word or the user may use a cursor to select the desired word.

Still yet, the user may select to edit the document at any time during the entry of text. Unless the document is to be edited, the system will return to step 204, where it awaits entry of the next key. Accordingly, the system will display alternative words and letters up until the point the document is verified.

Once the document is to be edited, the system will advance to step 220. Here, the system will proceed through each input code for which there is more than one word in memory. Where there is only one word, that word is accepted and displayed in the text of the document. Where there is more than one word, the system will display the list of words with the preferred words being listed first. The system will then prompt the user to select a word, enter a new word into the dictionary, or select a word as being preferred. This process is similar to steps 118 to 147 of FIG. 4(a) as discussed above.

The highest preferred word is displayed at the home row and any remaining preferred words are displayed in the order of their priority. The order of priority may be defined by the user or pre-designated in the system. This is done by the user assigning a preferred order to the list of words. Or, a rank order may be predefined by the system. Any words that have not been ranked are also displayed in alphabetical order beneath words having a greater priority.

The term with the greatest priority is displayed in the home row 25. The user may then scroll down (or up, if the words are displayed above the home row) and highlight any term to be selected. If, however, the user does not select a word (such as by continuing to type), the word in the home line 25, here the preferred word, is displayed in the text of the document. The system may further be configured to permit the user to select all of the highlighted words at once. As discussed above, the first preferred word is highlighted by default, at the user's option, and the user may select a different word by scrolling downward or upward to highlight the desired word, without having to press ENTER for each individual word. If there is no preferred word, the first listed word, which is in the home row 25, is highlighted by default.

All the operational steps of the invention are implemented in accordance with well-known programming techniques. For instance, the steps of indicating a word is missing, steps 110, 122, 152, selecting a preferred word, step 148, or changing the keyboard configuration, are implemented by methods that are well-known in the programming art, such as by using a pop-up menu or display window.

In this manner, all the functions available to the user, such as to select a keyboard configuration, add a new word to memory, and so forth, may be implemented by a pull-down menu or in a display window that can be accessed at any time during operation of the invention or only at selected times. Other operations, such as updating the memory, steps 124 and 150, are also implemented by well-known programming methods, examples of which will be discussed below.

An example of implementing the invention by the use of windows is shown, for instance, in FIG. 7, in accordance with the operation of FIG. 6. A function display window is provided for the user to select among available functions, such as to enter a new word not in memory, select a new keyboard configuration, create a preferred word, edit the document, create a preferred word, and so forth. In addition, the letters and words are also displayed in scrollable windows, with the most preferred term listed first and highlighted. The non-preferred or lesser prioritized words are then displayed below the most preferred word. The preferred term, however, need not necessarily be highlighted at the user's option.

Once a word is selected, the window disappears and the word is displayed in the text of the document, such as shown for "time" in FIG. 7. Still as an alternative method of selecting words, each word or letter (in the case of defining a new word) may be displayed adjacent a number (not shown). The user may then select the word or letter by depressing the number displayed adjacent the desired word. The user may then use one hand for typing and one hand for editing or selecting words and letters, or otherwise controlling operation of the system.

Now turning to FIGS. 8-20, various alternative embodiments of keyboard configurations are shown. These configurations may be pre-programmed into the system, or may be designated by the user. FIGS. 8-10 are examples of two-handed keyboard configurations and FIGS. 11-20 generally show examples of one-handed keyboard configurations. These embodiments have the user position his fingers over most of the respective keys, thereby reducing finger and hand movement and fatigue.

The configuration shown in FIG. 10, corresponding to a 14-key keyboard (since key 12 is repetitive), was tested with the phrase "Now is the time for all good men to come to the aid of their country." It was found that only the word "aid" required any editing by the user since all the remaining terms were the only words for the typed code. Thus, the number of keys is significantly reduced from the standard 26 keys, to 14 keys, with the amount of required editing being minimal.

Where there are four or fewer keys for one or both hands, the user may always keep four fingers positioned over the respective keys, such as for FIG. 12. Or, as with FIG. 11, the user may use two fingers, each finger assigned two keys. For five to nine keys, the user may choose to use 3 fingers of one hand by using two to three keys for each finger, such as for the configuration of FIG. 13. For twelve keys, such as with FIG. 13, the user may use four fingers of one hand. The keyboard is thus preferably configured to minimize fatigue on the user by reducing finger movement.

FIG. 21 shows still yet another alternative embodiment of the invention, as implemented on a touch screen 22, such as found on a conventional computer monitor 18. Key representations 80 are displayed on the monitor 18 about a general octagonal pattern, though any suited shape may be used, including a circle or hexagon. Letters and numerical codes are assigned to each key representation as with the manual keyboards, such as shown.

The user positions a pointer (not shown) in the center of the octagon and slides the pointer outward along the screen 22 into one of the key representations 80. This movement is generally shown to correspond to arrows 82. As the pointer enters the key representation, the key is activated. The letters corresponding to the key are thereby selected and the user returns the pointer to the center position of the octagon. This touch-screen system is particularly suited for persons with disabilities, and may also be configured to recognize input from suitable input devices, such as being responsive to light emitted from a pointer.

With these "key" arrangements a "WRITING" technique can be used. There are well known techniques using a special writing instrument and/or tablet which can recognize the direction, the change in direction, and if desired the length of the stroke. The successive use of the same letter can be indicated by a circular movement, the length of the movement or depression of a key. With the 6 key keyboard the following methods can be used:

(a) The pen caused by the user to move in one of six direction and then lifted at the end of the stroke. These directions include:

(1) diagonally up to the left;

(2) diagonally up to the right;

(3) diagonally down to the left;

(4) diagonally down to the right;

(5) straight up; or

(6) straight down.

At the end of the word a space bar may be hit.

(b) The pen stays in contact until the end of the word when it is lifted from the table which causes the space bar to be activated. The directions of the strokes are as indicated in (a) above.

It is necessary for the computer to realize whether the same key is "hit" two times or more in a row. There are several different methods of achieving this: (i) the user can hit a key located on the pen with his index finger to indicate a separated activation of that key; (ii) a button could be hit by a finger of the hand not holding the "pen". This key may be located on the tablet or elsewhere. If the next letter is in the same key the user could either stroke the pen as in (a) above or push the key (button) again. Or, (iii) the user could move the pen in a direction other than those listed in (a) above, e.g., it could always move horizontally to the left--for the first repeat of the key--if the next letter is also located in the same key the user could move the pen as in (a) above.

The input code may be optically-read handwritten symbols, each symbol representing a keystroke, or the input from such handwritten symbols may come from a stylus and/or tablet which conveys to the computer the shape of the symbols; that is, it can recognize the direction, change in direction, and length of the stroke. The grouping of the letters is preferably based upon a feature that the form of the letters have in common.

As shown in Table 2, the letters shown in the first column have a feature in common that is shown by the shape of the symbol in the second column, and therefore easy to remember. Table 2 is only for illustrative purposes, and other variations may be used.

          TABLE 2a
          Column 1        Column 2      Column 3
          a, c, g, q      ".OR right."  ".OR right.", ".OR left."
          b, d, h, I, k, t ".vertline."  directions: ".uparw." and ".dwnarw."
          e, p, r, s      "/"           directions: "{character pullout}" and
     "{character pullout}"
          m, n            ".andgate."   ".andgate.", ".orgate."
          u, v, w, x, y   ".backslash." directions: "{character pullout}"and
     "{character pullout}"
          o, z, f, j, l   "-"           directions: ".fwdarw." and ".rarw."


TABLE 2b Symbols Set 1 Set 2 Set 3 ".OR right.", ".OR left." a, c, g, q a, c, g, q, d a, c, g, d ".vertline.", ".uparw." or ".dwnarw." b, d, h, i, k, t b, h, i, k, t i, k, t "/", "{character pullout}" or "{character pullout}" e, r, s, p e, r, s, p e, r, s, p ".andgate.", ".orgate." m, n m, n, u, m, n, u, h ".backslash.", "{character pullout}" or "{character pullout}" u, v, w, x, y, z v, w, x, y v, w, x, y "-", ".fwdarw." or ".rarw." o, z, f, j, l o, z, f o, z, b ".left brkt-top.", ".left brkt-bot.", ".right brkt-top.", ".right brkt-bot." f, j, l j, l f, j, l


In each case shown in Tables 2a and 2b, the symbols shown in columns 2 and 1 are simpler, shorter, and faster to write on the tablet then the symbols in column 1, and sets 1, 2, 3, respectively. Thus, the 26 letters of the alphabet can be represented by 6 to 16 symbols. Of course, there are many other possible choices for the symbols such as using the "-" for the letter "t", or the symbol ".andgate." for the letter "h" or the letter "d" may be represented by the symbol ".OR right.", or "{character pullout}" for the letters f, j and l.

Also, other symbols may be chosen to represent the letters and fewer or more symbols may be used. The writer may either (1) raise the stylus from the tablet at the end of each letter, so that the end of a word is indicated by using a special symbol or depressing a key, or (2) the writer may keep the stylus in contact with the tablet until the end of the word and by raising the stylus a space is signaled to be made between the words. Also, if the stylus stays in contact with the tablet, in order to discern where one symbol ends and the next one begins, it is necessary to reverse the direction of the stroke for certain symbols that are used successively. Thus, the word "bit" is written by a stroke ".vertline." downward, then it is retraced upward and then retraced downward. On the other hand, if the stylus is raised after each symbol, the word "bit" would be written ".vertline..vertline..vertline.".

Also, a mirror image or an upside down position may be used for certain symbols, as in a word such as "fina". Thus, after an upward stroke, the ".andgate." would be made by a downward movement which results in a ".orgate." to represent the same set of letters. The same may be done for the "{character pullout}" symbol which would become "{character pullout}". Thus, the input from such handwritten symbols may come from a stylus and/or tablet which conveys to the computer the shape of the symbol. Symbols may be chosen that conform to general shapes of the associated letters, such as ".OR right." for "abcd"; ".backslash." for "efvwx"; "-" for "ghijkl"; ".andgate." for "mno"; ".OR left." for "pqr"; ".orgate." for "tu"; and, "/" for "yzs". The grouping of these letters is based upon their alphabetical order and/or a feature that the form of the letters have in common. Column 3 shows that, when using different directions (shown in Table 2 by the arrows), and mirror images, at least 16 "symbols" are made available. For the symbol "{character pullout}", other similar symbols are "{character pullout}", "{character pullout}", and "{character pullout}".

The placement of more than one letter on the same key reduces the number of keys on the keyboard. This makes it easier to remember the location of the letters. Also, because there are fewer keys, they are all closer to each other. Therefore, the movement required by the hands and fingers to reach the keys is reduced, which makes typing faster and less fatiguing.

However, placing more than one letter on the same key may result in word codes that are associated with more than one word. For instance, if the letters B and M are assigned to the same key, the words "berry" and "merry" would have the same word code. The system would display both words, and the user must then "edit" the typed document by selecting the desired word. This editing step, which slows typing, can be minimized by a knowledgeable selection of the letters to be combined on the keyboard.

The number of word codes that are associated with more than one word when a combination of two letters are placed on one key and the remaining 24 keys each have one letter is referred to here as frequency #1, or F#1, for that combination of letters. The value of F#1 for each combination of letters provides the basic information that is needed to select which letters should be combined on the keyboard in order to minimize the amount of editing required. To obtain this information, the following procedure was used. Two letters were first assigned to a single key on a keyboard, and the remaining 24 keys were each assigned on of the 24 remaining letters. Each key was then assigned an input element code, so that 24 input element codes were associated with one letter each, and one input element code was associated with 2 letters. These input element codes were then assigned to the letters of each word in a 21,110 word dictionary and thereby word codes were formed which were associated with each word.

The word codes with two or more words assigned to it were then sorted in a numerical order with the words assigned that word code listed adjacent to their word code. A count of the number of word codes with two or more words assigned to it was then made, and the value is shown in the table of FIGS. 22(a) and (b) as F#1. This procedure was repeated for each combination of two letters in the alphabet, as represented by FIGS. 22(a), (b). Each letter of the alphabet is listed across the top horizontal row and down the left vertical column.

For example, the number of word codes with more than one word assigned to it is found for the combination of E and F on a single key by following the top row across until either the letter E is located, then scanning down that column until the corresponding letter F is found. As indicated, the study found that for the E-F combination, there are 11 word codes, each associated with two words, for a total of 22 words. These 22 words are: (1) ear, far, (2) east, fact, (3) eat, fat, (4) eight, fight, (5) fief, fife, (6) chafe, chaff, (7) hale, half, (8) lief, life, (9) sere, serf, (10) scare, scarf, (11) sure, surf.

It was also found that, of the word codes that have more than one word assigned to it, over 99% have two words, and only approximately 1% are associated with three or more words. Certain combinations of letters, such as "EJ" "OV", "BI", "AZ", and "FI" are associated with very few word codes that are associated with more than one word, that is, they have a low F#1 value. The selection of the combination of letters to the keys is preferably made from among those combinations of letters with the lowest F#1 value. The letter combinations with low F#1 values, between 0-32, may be organized in a single chart, according to F#1 value, to assist in the selection and arrangement of letters on keys.

It was also found that many combinations of letters with a low F#1 value were alphabetical or approximately in alphabetical order. Thus, an alphabetical arrangement of the letters on the keys is possible with a low F#1 value, so that an alphabetical order may be used without a significant increase in the amount of editing required. Such letter combinations include "AB", "EF", "HI", "IJ", "IJK", "JK", "MO ", "NO", "OP", "PQ", "QR", "SU", "TU", "UV", "UW", "UX", "VW", "WX", and "YZ". It is noted that most of these combinations comprise a vowel and a consonant. This result follows from the fact that vowels and consonants are usually not interchangeable in a given sequence of letters that are arranged to form a word. In addition, as indicated by the high F#1 values, certain combinations should be avoided, such as "NR", "RT", "RP", "LR", "TN", "NL", "DT", "TL", "PT", "TS", "RD", and "RL", which are each combinations of a consonant with a consonant.

From the information in FIGS. 22(a)-(b), various keyboard configurations, from 2 to 21 keys were generated. Those having between five and twenty-one keys are shown, for instance, in FIGS. 22(c)-(d). Each section of FIGS. 22(c)-(d) represents a key on a keyboard. Each key has from between one and six letters assigned to it. For instance, the eight-key keyboard has six keys with three letters each and two keys with four letters each. Each letter is assigned the input element code of the key to which it is assigned. The input element code of each letter was then assigned to the letters of each word in the dictionary. For instance, if the key with the letters ABC assigned to it has the code 1, then whenever A, B, or C appears in the dictionary, the code 1 is assigned to that letter. As a result, each word of the 21,110-word dictionary is assigned a word code. The word codes with two or more words assigned to it were then sorted in a numerical order with the words assigned to that word code adjacent to it.

A count of the number of word codes with two or more words assigned to it was then made, and shown in FIGS. 22(c)-(d) as frequency #2, or F#2. A count was also made of the number of words associated with each word code associated with more than one word for each keyboard configuration, as represented by frequency #3, or F#3. The number of keys to which letters are assigned in FIGS. 22(c)-(d) range from five to twenty-one keys. The keyboard with twenty keys has four keys with two letters each, one key with three letters, and sixteen keys with one letter each. F#2 is larger than F#1 since the value of F#1 is based on only two letters being combined on a single key and the remaining 24 letters each having one letter assigned to them. F#2, in contrast, is broader than F#1 in that F#2 includes any configuration having more than two letters assigned to the same key.

The increase in the number of words assigned the same word code, from F#1 to F#2, is demonstrated by the following example. Assume the following letter and code combinations: G-1, E-2, N-3, R-4, 0-5, 1-6. Then, the word code for "goner" is 15324 and the word code for "inner" is 63324. If the letter "I" is then assigned to the same key as the letter "G" (so that both letters have the code 1), then the word code for "inner" becomes 1:3324. Thus, both codes are still different for these two words. But, if the letter "N" is then also assigned to the same key as letter "O" (so that both letters have the code 3), then the word code for "goner" becomes 13324. Thus, both words now have the same word code, and F#2 is larger than F#1. F#1 give the minimum value of F#2 and is for that reason a good first indicator of the probable value of F#2. FIG. 22(d) shows the values of F#1 and F#2 for various keyboards.

For fourteen keys or more F#3 is approximately twice as large as F#2 since any editing will mostly be only two words for a given word code. As the number of keys is reduced, more keys will have two or more letters and the number of word codes with three or more words assigned to it increases. Thus, with the eight-key keyboard, there are on average of about 2.33 words per word code.

As shown in FIGS. 22(c)-(d), multiple keys were assigned two or more letters. Sixteen different keyboards were derived, having from 8 to 21 keys. As the number of keys having two or more letters increases, so does the number of word codes associated with two or more words. For instance, if C and D are combined on the same key, and all the other keys have one letter assigned to them, then the words "calf and "dale" would not have the same word code. Assuming, that A has input element code 1; C, D is 2, L is 3, E is 4 and F is 5, "calf" would then have the word code 2135, and "dale" would have the word code 2134. However, if the letters F and E were then both assigned the same input element code of 5, then-both words would have the same word code, namely 2135.

The keyboard configurations of FIGS. 22(c)-(d) are the preferred embodiments where it is important to substantially retain an alphabetical ordering of the letters. To have a keyboard with an arrangement that is substantially alphabetically ordered, each letter must be grouped on the same key or an adjacent key with letters that are near it alphabetically. Thus, for instance, the letter "J" is preferably on the same key, or on adjacent key, as the letters "K" and/or "L". By using an alphabetical order, or a partially alphabetical order, it is easier to remember the location of the letters. Other criteria in arranging letters on the keyboard is the number of word codes having more than one word, and the frequency of commonly used words or phrases with the same word code (such as "-tion", "-ing", and "the"). As less emphasis is placed on having an alphabetical order, various other keyboard configurations will readily become apparent.

For instance, consider the eleven-key configuration, which has a total F#1 of 412 word codes associated with more than one word. The first key contains the letters "A" and "B", which was determined to have 12 instances of word codes associated with more than one word. Likewise down the table, the second key, "CD" has 70 word codes, "EF" has 11, "GHI" has 42, "JKL" has 87, "MNO" has 109, "PQR" has zero, "SYZ" has 38, "TU" has 8, and "VWX" has 35, for the total of 412 word codes associated with more than one word.

The F#1 value for each key is based upon the values derived in FIGS. 22(a)-(b), when there are two or more letters on a key. For instance, for the three-letter key "GHI", the combined values are taken from the two-letter combinations (that is, "GH"=36; "GI"=3; "HI"=3; for a total of 42). Of course, as more than one key is assigned more than one letter, the number of word codes associated with more than one word may become larger than the number indicated in FIG. 22(a).

The totals indicated in FIG. 22(a) provide a good indication of the letter combinations that have the fewest number of word codes associated with more than one word. The number of words with the same word code is larger for the configurations with fewer keys since the fewer number of keys result in more keys having more than two letters. Of course, as the dictionary is reduced in size, such as a dictionary only having medical terms and the like, fewer word codes will be associated with more than one word.

FIGS. 22(c)-(d) (in the bottom row) further show the approximate average number of lines that are typed before a word needs to be edited when the system is implemented with a 21,110 word dictionary. The amount of editing is directly related to the number of keys on the keyboard and the placement of the letters on the keys. The small keyboard with eight keys, about ten percent of the words, or about 1.1 words per line, require editing. However, for a larger keyboard there is very little editing to be done, and in fact the twenty-one key keyboard only requires approximately one word to be edited for every thousand lines of typing. The editing is further reduced by the use of preferred words. In addition, where word codes are only associated with two or three words (which accounts for the majority of keyboard configurations), the desired word will be positioned in the home row 50% or 331/3% of the time, respectively. In such cases, editing is not required and the desired word is selected by continued typing.

The keyboard configurations shown in FIGS. 22(c)-(d) were also implemented with a 230,000-word dictionary. It was determined that, for a ten-key keyboard, a user encounters roughly about one word code per line that is associated with more than one word. The amount of editing, however, drops significantly as the number of keys increase. For an eighteen-key keyboard, only about one word code per page is associated with more than one word. Of course, the amount of editing required is dependent upon the material being typed.

A new typist may start typing with a keyboard having fewer keys, and move toward a keyboard with more keys as typing skills progress. This graduated length method of learning to type makes it possible to progress from an eight-key keyboard or less to a twenty-key keyboard in a simplified manner, as desired. The assignment of letters to the keyboards in FIGS. 22(c)-(d) is such that someone learning to type starts with the five-key keyboard. After becoming proficient on that keyboard, the user may then proceed to use a larger keyboard. Each keyboard is substantially similar to the next larger keyboard so as to facilitate the learning process by making it easier to memorize the location of letters on the keys and the motion of the fingers to the keys.

FIGS. 22(e)-(x), 26(a)-(y), 27(a)-(z) and 28(a)-(m) show the arrangement of letters for several keyboard configurations, though not necessarily corresponding to the arrangements of FIGS. 22(c)-(d). FIGS. 22(e)-(q) and 26(a)-(r) are two-handed configurations, and FIGS. 22(r)-(x), 26(s)-(y), 27(a)-(z) and 28(a)-(m) are for single-handed operation. These configurations are exemplary only, and other suitable configurations may be used. For the two-handed configurations, the right and left sides may be interchanged, and the individual keys may also be moved around or otherwise exchanged. For the one-handed configurations, the position and location of the keys may also be moved around. In addition, the rows may be interchanged.

For the two-handed configurations, the left- and right-hand keys are shown as preferably being placed on a single keyboard. However, the left-hand keys may be arranged on a separate keyboard from the keys accessed by the user's right hand. These configurations generally maintain an alphabetical order, while also combining letters that minimize the amount of required editing.

Though other configurations are suitable, the vowels on the one-hand configurations preferably have the following general arrangement with respect to each other: ##EQU1##

For the two-handed configurations, all of the vowels are preferably accessed by one hand. In some keyboard arrangements, several letters may be placed in more than one location (i.e., placed on more than one key) in order to make them more accessible and, therefore, make for faster typing. The vowels are preferably positioned convenient to the middle and index fingers in order to make for faster typing since vowels are most frequently used. At the same time, the order of vowels is substantially alphabetical.

As an additional feature of the invention, when long words are being entered, the system would recognize before the typist has typed all the letters, that there is only one word that begins with the code that has thus far been entered. At this point, the word would be printed on screen 22 and a beep would sound. The user would then start typing the next word. The user would also be able to modify the word in the manners described above.

For instance, referring to Table 3, suppose the user enters the code 1-3-2. At that point, there are several possible words that the user may choose from, specifically "aid", "age", and "bid". More importantly, however, the user may continue typing to further limit the word to numerous words that cannot be determined yet, such as "aged", "ages", "ageless", "bids", "bidding", and so forth. However, if the user then strikes letter key 4, the only option left available is the word ageless. At that point, the word "ageless" may be displayed on screen 22. Accordingly, the user will not have to go to the trouble of having to entirely type the more lengthy words, such as "ageless".

                TABLE 3
                Code                       Words
                . . .
                1                          a
                1-3-2                      age
                                           aid
                                           bid
                1-3-2-2                    chef
                                           aged
                                           bide
                1-3-2-4-2-7-7              ageless
                . . .


As shown in Table 3, to determine whether there are any other words beginning with the code 1-3-2, the computer 10 will have to search through codes having at least that numerical order. However, as shown in Table 4, each memory location of memory 12 may be configured so that all available options are stored at the base code, 1-3-2. Thus, once the user types 1-3-2, the limited number of options may all be displayed at that time. That is, the words "age", "aid", "bid" "chef", "aged", "bide", "ageless", and other variations such as "bidding", "chefs" and so forth, are displayed on screen 22. This embodiment is quicker and reduces memory space requirements, but is only practical where there are a limited number of subsequent variations to the input code.

                TABLE 4
                Code                       Words
                . . .
                1                          a
                1-3-2                      age
                                           aid
                                           bid
                                           chef
                                           aged
                                           bide
                                           ageless
                1-3-2-2                    chef
                                           aged
                                           bide
                1-3-2-4-2-7-7              ageless
                . . .


As yet another feature of the invention, the user may at any time return to a word, such as by placing the cursor at any position within the word. When the user returns to the word, the numerical code associated with that word will be recalled. The user may then elect to display the preferred words, or all the words associated with that code. The user may also change the code to enter a new word.

Another feature of the invention, as mentioned above, is that the user may be provided with the option to switch between the different keyboard configurations, including the standard 26-key QWERTY format. Though not indicated in the flow chart, the user may select to change keyboard configuration at any point during operation of the system. Essentially, the user may select any suited number of keyboard configurations, such as a 4-key, 6-key, or 8-key configuration.

The memory 12 stores individual tables for each of the selectable keyboard configurations. One manner in which the proper memory location is accessed is by automatically and internally including a keyboard code as the first digit to the numerical code. For example, in order to identify the code as coming from the 6-keyboard configuration, the code "6" is automatically appended to the beginning of each word as each new word is begun, as shown in Table 5. The system would then be able to switch between keyboard configurations in the middle of a document, while still recognizing the input code as matching the particular keyboard configuration. Accordingly, the next time the system is operated, the system will default to the last-saved configuration when formatting, step 102.

                TABLE 5
                Code                       Words
                . . .
                6-1                        a
                6-1-3-2                    age
                                           aid
                                           bid
                6-1-3-2-2                  chef
                                           aged
                                           bide
                6-1-3-2-4-2-7-7            ageless
                . . .


In addition, the user may also choose to define his/her own keyboard arrangement of keys in addition to the standard arrangements that have been predefined. As described above, each numeral key is used as an input numerical code that is associated with the corresponding letters. The user selects the numerical code that is to be assigned to particular letters and keys. This information is then stored in memory, and the memory is further updated to reflect the new codes to be associated with the words in memory. The computer then sorts and stores all the words associated with the same numerical code in a single memory location associated with that particular numerical code.

However, the memory 12 shown by Table 5 would result in each word being stored several times, once for each keyboard configuration. In an alternative embodiment, the numerical code for each keyboard configuration is stored for each word, as shown in Table 6. The computer 10 would then search for the numerical code in accordance with the specified keyboard configuration.

                    TABLE 6
                      Code
            6-Keys            8-Keys            Words
            2-5-5-5           2-5-5-6           door
            2-5-5-5           2-6-5-6           drop


As an additional feature of the invention, the user may at any time elect to display words in memory. At that time, the user may add, delete, or otherwise modify the words stored in memory or verify the correct spelling of a word. The user may also list all words in the database or memory that start with the first letters of a typed word. In other words, a typist could type the first 4, 5 or 6 letters of a word and then select for the system to generate a list of all of the words that start with those letters. The typist can select this option while typing or editing the word. In this manner, the system may be used to determine the correct spelling of a word.

Accordingly, the user need not finish typing long words, which may be displayed automatically after the user enters, for instance, the first 4, 5 or 6 letters of a word. The user then selects the desired word by highlighting the word and hitting ENTER. The word is then moved into the text of the document. As a further option, the system may be configured only to display the words corresponding to the number of letters the user depressed. That is, if the user pressed 7 letters, only 7 letter words having the first 4 keys will be displayed.

The speed typing method of the present invention is compatible with conventional word processing programs, such as "WORD PERFECT" and "WORD", and can be used for either DOS, WINDOWS or Macintosh environments. Furthermore, the database of words and numerical codes may be searched in any suited manner.

By providing multiple characters on a single key, the present invention simplifies learning how to type. Furthermore, less motion is required to type, thereby reducing wear on the user while increasing speed. In addition, the keyboard is not congested, making it easier to use for persons that have not learned to type. Also, there is more room on the keyboard so that the size of the keys may be made larger, thereby assisting persons with arthritis or other physical disabilities.

Since the keyboard 50 is significantly reduced in size, yet retains the full spectrum of characters, the invention has particular utility with lap-top computers and hand-held electronic devices, such as electronic diaries. Since there are fewer keys, the location of each key is easier to remember and all of the keys can be reached more easily and quickly and with greater certainty of accuracy.

Likewise, since the present invention reduces the number of keys required for typing, the conventional chord systems become more practical. Accordingly, the system may be configured so that the user depresses more than one key simultaneously or sequentially to select a particular code to which letters have been assigned. In a sequential system, a nine-key keyboard could be reduced to three keys, since there are nine combinations of keys that could be sequentially accessed (that is, 1-1, 1-2, 1-3, 2-1, 2-2, 2-3, 3-1, 3-2, and 3-3). Likewise, there are 16 combinations for a four-key keyboard using sequentially-operated keys. For a four-key keyboard using simultaneous selection of keys, there are ten possible combinations (namely, 1, 2, 3, 4, 1-2, 1-3, 1-4, 2-3, 2-4 and 3-4).

For purposes of illustration, a particular key may be associated with the letters "v", "w", "x". If the user then presses the key one time, the system may recognize "v" and "w". Upon a second sequential actuation of the same key within a set period of time (or upon actuation of a different key), the system may detect the same code "1" twice, which may be associated with a different set of letters, for instance, with letters "x", "y" and "z". Alternately, it may be that the first actuation of a key may be associated with code "1" for "v" and "w", and the second actuation associated with code "2" for "x", "y", and "z".

There is a variety of ways in which a single code or plural codes may be assigned to a single key, such as by sequential actuation of that key. Likewise, a single or plural codes may be assigned to plural keys, such as by a chord-type simultaneous actuation of the plural keys.

The invention may be configured in a variety of shapes and sizes and is not limited by the dimensions of the preferred embodiment. Likewise, the terms "key" and "keyboard" as used herein need not be limited to a group of mechanical components that are physically depressed by the operator. The input code may be optically-read handwritten symbols, each symbol representing a key-stroke.

The input could also be telekinetic, wherein the user focuses his eyes in a group of letters to activate that key. Still yet, the input code could be voice-initiated whereby a voice identifying system may translate a verbal "keystroke" into the coded input. Thus, the operator may verbally state "5", "5", "8" (or the desired letter), which symbols are detected converted into the 5-5-8 code and displayed as "now" or "mow" as discussed above. Or, the user may state the letter or word to be displayed. In addition, the memory tables of the invention may be integrated with dictionary information and other editing techniques currently existing in a word processing system. The dictionary need only be updated with the proper numerical codes.

In yet another embodiment of the invention, function keys may be provided (or the SHIFT keys may be used) to implement various functions. For instance, a function key can be provided to control a numeric keypad, such as the numeric keypad shown on the right hand side of the conventional keyboard of FIGS. 2(a) and (b). The function key would allow the user to toggle operation of the keypad to function either as a number pad, or as a letter pad. If the user designates the keypad to operate as a number pad, the function key could then also be used to display a selection of punctuation marks, such as when the function key and the number seven (from the keypad) are depressed. Likewise, the function key could be used to directionally operate a cursor. A mode indicator light or message may also be provided to indicate whether the keypad is being used as a number pad, or as a letter pad.

For purposes of further illustration, function keys can be used on a keypad similar to conventional telephone keypads. The telephone keypads typically have three rows of three keys each, all of which are numerical keys, and a bottom row having one numerical key, an asterisk key, and a pound sign key. The three rows of numerical keys may be assigned the letters of the alphabet, and the bottom row of keys may be associated with functions.

In the bottom row of the telephone keypad, the numerical key (which is usually zero) would be used to designate that a capital letter is to be typed. The asterisk key may be a space bar, and the pound key would be a backspace. The sequential actuation of the function keys may be associated with various additional functions.

For instance, depressing the asterisk key followed by the pound key might toggle the remaining keyboard between letters, numbers, and symbols (including punctuation). And, the sequential actuation of the number key twice, within a preset period of time (and/or prior to actuation of any other key), may operate as a cursor control.

In an alternative embodiment, the telephone keypad may be configured so that the keys 1, 2, 4, 5, 7 and 8 are assigned letters; the pound key and asterisk key are assigned the "-" and "+" characters, respectively (which are used for scrolling words during editing, as discussed above); and the zero key is used to shift to other keyboard configurations.

It is further noted that simultaneous actuation of two keys may further be used to implement various functions. Accordingly, there are numerous manners in which function keys may be used that are within the spirit and scope of the invention.

As indicated above, the system may be configured in a hand-held computer, or portable input device, that is remotely located with its output either directly wired or transmitted wirelessly to the computer.

A 3 bit binary code has 8 permutations, 001, 010, 011, 100, 101, 110, 111, 000. Six of these are assigned to the six keys on a 6 key keyboard configuration to which groups of letters are assigned. Such assignments may be as follows:
          Key #                       Binary Code Assigned
            1          ABCD                   001
            2          EFGH                   010
            3          IJKL                   011
            4          MNOPQ                  100
            5          RSTU                   101
            6          VWXYZ                  110


For the input of additional data (e.g., punctuation, numerical data, control of cursor and other functions) the system is configured to "shift" to another binary code which would make additional code available would occur upon the input of a specific 3 bit binary code (assume "000" for this purpose). For instance, the "shift" could be from a 3 bit binary code to an 8 bit binary code, which would make 256 eight bit binary codes available.

For word codes that are associated with more than one word (e.g., ACT, BAT and CAT have the binary codes 001, 001, 101, for each word) a select or identification code is necessary to distinguish the desired word. One method (discussed above) of selecting a desired word (e.g., ACT, BAT or CAT) is for the user to enter a number that appears next to the desired word above the "home row."

Thus, unless the user enters the number 1 for "BAT" or the number 2 to select "CAT" the word in the home row, here "ACT", is automatically entered. If the user enters the number 1, the word BAT is moved to the home line and is displayed and can be printed. In order to store in memory or transmit or apply additional compression techniques to the word codes made up of 3 binary codes, it is necessary that every word has a unique code. To accomplish this, an appendage, such as a identification code, is added to those words that do not have a unique word code.

The word code including the appendage must be checked against the other word codes listed in the dictionary to confirm that no other word has that code. For instance, if the 3 bit binary code 010 was appended to the word code for "BAT," the word code for the word "BATH" would also result. However, another 3 bit binary code, such as 110 (VWXYZ) might not cause any duplication. Wherever possible, one 3 bit binary code would be used to distinguish words having the same basic word code; however, the use of more than one 3 bit binary code could also be used. Such multiple 3 bit appendages would make possible a unique word code for every word. Another solution to creating a unique word code is to add a 3 bit binary code such as "000" to indicate a shift from the 3 bit binary code to the 8 bit binary code and then an 8 bit binary code is appended to distinguish that word code from other word codes. The 8 bit binary codes selected for this purpose would also indicate that it is the end of a word. Therefore, the space after that word would occur and that a shift back to the 3 bit code would occur next automatically.

The end of a word can be indicated by a specific 3 bit binary code designated for this purpose, e.g., "111" (or the binary code of more than 3 bits used as an appendage at the end of a word code, as discussed above). The indication of the end of a word minimizes the transmission error to one word being adversely affected.

With a 3 bit binary code for each letter, approximately 12.712 bits are required for a 4 letter word. An 8 bit binary code requires 32 bits for a 4 letter word.

The 12.712 bits is arrived at as follows: using a 21,100 word dictionary, a 6 key keyboard has 17,008 words assigned a unique word code and therefore do not require any appendage. The remaining words, 4,092 words, which have not been assigned a unique word code are assigned to a total of 1,588 word codes. One word on each of these word codes would not be assigned an appendage since they would be different from the other word codes which were assigned appendages. The remainder, 2,504 words, would be assigned an appendage. If an average of 6 bits are required for such appendages on the 2,504 words, then the appendages require an average of 0.712 bits per word in a 21,100 word dictionary (6.times.2504.div.21,100). If the average word is a 4 letter word then 12.712 bits are required per word [(4.times.3)+0.712]. An 8 bit binary code would require 32 bits.

The 3 bit binary code has 8 binary codes available. The 4 bit binary code has 16 codes available. Of these, 14 codes can be assigned to keys to which letters are assigned, one code (e.g., 111) would be used to designate the space at the end of a word and one code (e.g., 0000) for a change to another binary code for coding numbers, punctuation, function keys, cursor control, etc. If a 4 bit binary code is used for each letter approximately 16 bits are required for a 4 letter word. An 8 bit binary code requires 32 bits for a 4 letter word.

The 14 bits is explained as follows: a 14 key keyboard has approximately 590 words assigned to 251 word codes. Therefore, an appendage is only needed on 259 to have a unique word code for each word (590.div.251=259). A 4 bit binary code would add an average of 1/20 of a 4 bit binary code to each word in a dictionary of 21,101 words (4.times.259.div.21,100.apprxeq.1/20). If the average word is a 4 letter word, approximately 16.05 bits are required per word. An 8 bit binary code, in contrast, would require 32 bits. Thus, it is clear that the use of a 3 bit code, with a 6 key keyboard, and a 4 bit code, for keyboards with 7 keys to those with as many as 14 keys, require less code than an 8 bit binary code used to code letters.

As would be expected, the 3 and 4 bit binary codes for the word codes result in a significant reduction of required code. The word code made up of the 3 character binary code plus the appendages is transmitted to a receiver where the computer will compare the numerical value of the input code with a table of word codes in memory. The word stored in memory that is associated with the input code is then displayed.

The shift of codes can be accomplished by a special code sequence such as 000, 111, 000 to shift out of a 3 bit binary code (or 0000, 1111, 0000 to shift out a 4 bit binary code) and then to move out the 4 bit binary code back to a 3 bit binary code a shift code sequence of "0000" would be used. A shift code sequence of "100000" could be used to shift back to a 4 bit binary code. There are some other economies of input, such as when a punctuation is used (which comes at the end of a sentence, such as a period or question mark), a space between the words and capitalization of the next word would be automatic.

Each word in the dictionary would also be assigned a binary code made up of more than 3 binary characters so that each letter has a unique binary code (such as an 8 bit binary code). These two sets of binary codes (one with 3 and one with more than 3 binary characters for each input element) are placed adjacent to each other in the data base.

When data is received, the data is decoded so that the 3 bit binary code can be used to locate the 3 bit binary code on file in the memory of the computer which receives the data. Stored adjacent to that code is the binary code which has a unique binary code assigned to each letter. The text can then be displayed and/or printed at the receiver location.

When this word is received, the specific word which is desired is found next to the word code which is received in the transmission. Error in transmission is minimized by using the string of 3 ones, 111, which as discussed above, represents the space between the word and can at the same time be used as a re-sequencing key when the receiver sees the 3 ones. The use of the 3 character bit (111) minimizes the transmission error to one word being adversely affected.

Data may further be compressed by having the system automatically translate text into a format for using a 3 bit binary code. Three codes would be stored in memory for each word: (1) a 3 bit code (the most compressed code), (2) a binary code having a unique code for each letter (such as an 8 bit binary code), and (3) the word code for the keyboard format being used to input the text. The 3 bit binary code may be further compressed by using well known compression techniques.

In another embodiment of the invention, to further reduce the dictionary of words stored in memory, prefixes and suffixes may be stored separately. For instance, instead of saving "necessary", "unnecessary", "published" and "unpublished", only the words "necessary" and "published" need be saved. In addition, a common list of prefixes and suffixed would be separately stored in memory. When the user types "un", the system would recognize that a prefix was entered. When the remaining word is entered, the word would be located in memory and the prefix or suffix would then be appended to the located word. Similarly, plural, past, present and future tense of words may be stored in memory as common to a group of words.

The system 100 may further be configured as a translation device, by including a translated word with each word listed in memory 12. The memory 12 may be organized, for instance, as shown in Table 7, which is based upon the 8-key configuration of FIG. 2(a). Here, the user may display the translated word along with, or instead of, the English word.

          TABLE 7
                        Preferred                 Translated
          Code          Words         Words       Words
          3-5-7-7-2                   house       casa


Alternatively, a foreign dictionary may be stored in memory separate from the English words. The user may then instruct the system to use the foreign dictionary in order to type in a selected language. For instance, in order to type the word "casa", which is Spanish for house, the user would simply type 1-1-7-1 (from the keyboard configuration of FIG. 2(a)). The user then has the option of printing the typed document in one or all of the various languages.

In addition to storing foreign words in memory, a digitized or pre-recorded voice-signal may also be stored in association with each word in memory. Accordingly, the English word and/or the translated word, may be audibly played at the user's command. The word would be made audible through the use of a speaker or like device (not shown) in accordance with well-known techniques.

The system may further be combined with a speech-recognition system, whereby the system displays words on a screen that are spoken. This combined system has particular uses for persons that have impaired hearing or otherwise disabled. The words that are spoken by a third party can be displayed on a portable device that is carried by the disabled person.

In combination with the audible reproduction, the disabled person would then be able to respond to the displayed message by typing a message that is then audibly pronounced by the device to the third party. By using a reduced-size keyboard of the present invention, the typing would be significantly simplified, making the device easier to use, faster and more portable. The system could also be integrated into, or used in conjunction with, a conventional telephone. The speech-recognition system may include a microphone and may be implemented by conventional systems that are able to receive a voice signal and convert it into a recognized word for word-processing.

As shown in FIG. 25, the speed typing method of the present invention may include an automatic speech recognition system (ASR) 400, including a microphone 410, so that the editing required for the word code typing system (i.e. the requirement to choose the desired word when more than one word is associated with the same word code) could be done completely or partially by the speech recognition component. Though the ASR system 400 is shown separate from system 100, it may be configured integral with computer 10. Likewise, microphone 410 may be configured integral to the ASR system 400, or to one of the keyboards 14, or directly connected to computer 10.

When, during typing, the user is alerted by a distinctive beep that editing is required for the word code just entered (because there is more than one word associated with the typed word code) the user would speak the desired word into microphone 410. Alternatively, a user may return to a word to be edited, and place the cursor on the word to be edited, then speak the desired word. The system need only compare the spoken word to the words associated with the typed word code, and not to the entire dictionary of words.

In this regard, only a portion of the word need be typed in order to further increase speed of typing, even though the spoken word would have to be compared to more words in the dictionary. In relation to FIGS. 4(a) and (b), ASR comes into effect after steps 144 and 338, 344, respectively. That is, once the user desires to select a word, 144, 338, 344, the word may be selected by speaking the word. The system would then search those words in memory that correspond to the typed word for a word also having the information corresponding to the spoken word. Thus, by reducing the number of words that correspond to the spoken word, the ASR is made significantly faster and more accurate.

For some keyboard configurations, especially those with 2 or 3 keys, the user would vocalize every word as the word code is entered because 45% to 85% of those word codes would require editing. The 2 key keyboard would have, for instance, the letters on Key 1--A thru L and on Key 2--M thru Z. The 3 key keyboard would have, for instance, Key 1--A to H, Key 2--I to Q and Key 3--R to Z.

The average number of words on the word codes is:

2.8 words per word code on a 5 key keyboard

3.39 words per word code on a 4 key keyboard

4.52 words per word code on a 3 key keyboard

11.25 words per word code on a 2 key keyboard

The amount of editing required and the time involved in editing increases as the number of words per word code increases. The number of words which would be needed in the ASR vocabulary if every word which does not have a unique word code is included in that vocabulary the value shown for F#3 shown in FIGS. 22(c) and (d), range from 5918 words for the 5 key keyboard, to 13 words for the 20 key keyboard.

With the 5 key keyboard the user may decide to use the ASR system only when there are more than 3 words per word code, which would result in the need to use the ASR system for one word per line. Of course, the user could decide to use the ASR system 100% of the time for editing. The user would be alerted by a distinctive beep wherever editing is required and the user would then vocalize the desired word.

The word code, the words assigned to that word code, and the speech patterns for those words are stored in the database, or a plurality of databases that may be connected to, or integrated with, the system. Access to the databases is by entry of the word code and/or by entry of the spoken word through the microphone 410. The word is selected by comparison of the word spoken into the microphone to the voice patterns in the database which are associated with the typed word code in accordance with well-known techniques. The selected word is then transmitted to the appropriate place in the underlying document.

If the system is not able to choose a word, a message is displayed which indicates this and the user then reverts to selecting the desired word in a manner previously described for the speed typing method. Also, if the user determines that a new word should be entered, the user would proceed to do this in a manner previously discussed for the speed typing method. In addition, if the new word has a word code which is not unique i.e. there are other words with the same word code the user would also enter this new word into the ASR vocabulary already associated with that word code.

The speech recognition component may be used with the speed typing device to do punctuation, capitalization, backspacing and other types of functions. The voice command would be recognized and the desired command would be executed.

The process of analyzing the word spoken into the microphone is reduced in complexity by linking the ASR system with the speed typing-word code method of the present invention because the number of words in the ASR system which require analysis at any one time is limited to the number of words associated with the word code entered by the typist, when the typist spoke the word into the microphone. It is not necessary to try to identify the spoken word out of the entire vocabulary of the ASR system, and it is only necessary to distinguish the word from the other words which are assigned the same word code.

In addition, the input of the word code gives information as to the length of the word, information as to the beginning and ending of the word (by the user hitting the space bar or punctuation) and since each key stroke has only certain letters associated with it certain information as to the possible letters at each place on the word. The combination of the two systems can reduce the total amount of time needed for editing and with very few keys the speed of typing can be very fast. The speed typing-word code method can be used as an adjunct to the ASR system for the purpose of assisting the ASR system when the word spoken into the microphone could not be identified or to type in words that could not be identified, to type in new words to be entered in the ASR program, and to type text with a vocabulary not included in the ASR system.

In another embodiment of the invention, a keyboard may be configured having a set of 2 to 4 or more keys at a top row, and an identical set of keys on a bottom row, which is located immediately beneath the top row. Thus, each key on the top row is identical to each respective key on the bottom row, with each key being associated with the same letter or letters.

The user then switch between the rows to indicate that a new word is being started, and a space should be entered. That is, the user types a first word on the top row of keys, the second word on the bottom row of keys, and the third word on the top row of keys. Each time the user switches rows, the system would recognize that a new word is being entered and a space should precede the first typed letter. Clearly then, this type of keyboard may be designed to any suited configuration, and need not be limited in size, shape, or number of keys.

In another embodiment of the invention, the user may type without having to place a space between words. This eliminates the need to hit a space bar or key, which on the average accounts for approximately 25% of all typing. For most words and sentences, it is easy to decipher typed text in which the words are not separated by a space. For example, consider the phrase "the time for all". The system is designed to add a space as each complete word is typed. Thus, as the words "the time for" are entered, the system would recognize that each was a word, and would add a space.

However, it may often be the case that there the shortest word is not the desired word. For instance, in typing the phrase "now is the time", the shortest first word is "no". The "w" is then tested by adding one letter at a time to determine if there is a word code that fits such a sequence (i.e., the memory is searched for a matching word code).

Here, the word "wist" would be found in memory, so that the phrase might be entered as "no wist he time". However, the user need only enter a space after "w" for the entire phrase to correct itself. In addition, if the word "wist" was not located in memory, the "w" would be tested with the prior word "no", so that they system would recognize that the word "now" was to be entered. Thus, the user may have to perform some editing as typing proceeds.

The elimination of the "space bar" can be tested in the computer program and if there are no other decoding possibilities some "space bars" can be eliminated and the text stored or transmitted without those "space bars". For example, the words, "IN THE" followed by many words, such as the word "compaction", have no other possibilities. That is, the "space bar" can be eliminated between the words "IN" and "THE" but it could not be eliminated again until the end of the word compaction or the words would read "compact ion" which, of course, has a different meaning.

Also, when in the mode of typing text the user may elect to eliminate the space bar between words which the user could elect to be either a specific number of words or at random. This would require more editing. For that group of letters the computer would display all the possibilities and the user would make his selection accordingly. For example, if the words "IN THE COMPACTION MODE" did not have a space until after the word MODE, the following possibilities would be given the user:

"IN THE COMP ACT ION MODE"

"IN THE COMPACT ION MODE"

"IN THE COMP ACTION MODE"

"IN THE COMPACTION MODE".

The user would choose one of these 4 phrases or the program could be designed only to show the shortest words so long as all the letters are used and the user would then edit by moving the words together.

A 6 key keyboard would result in approximately 2,500 words which require editing (i.e., they would have to be moved to the home row). By the use of rules of syntax and statistical information regarding the frequency of the use of certain words with other words the amount of editing required would be reduced.

Certain characters, such as an apostrophe, colon, semi-colon, and hyphen, are recognized as being associated with a neighboring letter. For instance, the apostrophe indicates that the previous and following letters are to be grouped together, with certain exceptions (such as when indicating possession of a pluralized word), whereas a colon or semi-colon are to be appended to the prior letter and followed by a space. The space bar is most easily eliminated when implemented in a larger keyboards, such as 15-18 key configurations, since there are few word codes that are associated with