InvestorsHub Logo
Followers 33
Posts 2371
Boards Moderated 0
Alias Born 05/31/2005

Re: max2205 post# 496

Thursday, 11/08/2007 5:41:47 PM

Thursday, November 08, 2007 5:41:47 PM

Post# of 9646
PART III

http://tinyurl.com/39bb8a
enter 09631101

Look for the Tab "Published Documents"


Forcing the End of a Partial Text Entry

As can be seen from the previous example, there will be times when the user is entering a word, phrase, or character sequence that does not appear in the dictionary 20. In this case, if the user has activated the interactive search list 30, it will be empty once the user has entered enough characters for the candidate prediction system 32 to determine that the dictionary 20 does not have any words, phrase or character sequences which could be completion candidates for the partial text entry that is currently being entered by the user. When this is the case, or when the user is completing the entry of a word, phrase, or character sequence by entering on the digital keyboard 28, the data entry system 26 needs to know when the current partial text entry being generated by the user has been completed and when another partial text entry has begun. If the user has selected and accepted a completion candidate from the interactive search list 30 in the first embodiment, then the data entry system 26 is programmed to recognize that the user has completed the current partial text entry and automatically initializes so that the next character selected from the digital keyboard 28 will be treated as a leading character for a new partial text entry. However, if the user is completing a partial text entry that is not found in the dictionary 20 and completes the partial text entry by simply entering characters from the digital keyboard 28, then the data entry system 26 may not know when the current partial text entry is completed and when the next partial text entry has begun. In order to assist in the identification of when a user has completed an entry for a word, phrase, or sequence of characters, the data entry system 26 can be programmed to monitor for an "end-of-search" signal from the user via the digital keyboard 28. In the first embodiment, an end-of-search signal is received by the data entry system 26 when a key or function button programmed to indicate an express "end-of-search" instruction is selected from the digital keyboard 28. Alternatively, the data entry system 26 can be programmed to recognize an implicit end-of-search instruction such as, for example, when the space key on the digital keyboard 28 is selected. Other non-alphabetic characters may also be used to provide an implicit end-of-search instruction.

System Flow

In the discussion that follows, the processing performed by the data entry system 26 running on the processing unit 12 is described in further detail. For this discussion, reference is made to FIGS. 7 to 9 which are logical flow diagrams illustrating the flow of operation of the data entry system 26. The description of the computer-implemented process illustrated in FIGS. 7 to 9 will be made with reference to the personal computing device 10 and the data entry system 26 shown in FIGS. 1 to 5.

The data entry system 26 is initialized at block 202. This includes the initialization of variables and flags used within the data entry system 26 to track the state of user input, processing, and output. This also involves initializing the user interface for the data entry system 26 including loading and setting up the digital keyboard 28 for display, selecting the dictionary 20 to be used by the data entry system 26, identifying the type of pointing device that will be used for text entry, and setting up any user-defined configurations for the display and use of the digital keyboard 28, and the interactive search list 30. Once the data entry system 26 including the digital keyboard 28 is initialized, the user interface for the data entry system 26 is then displayed on the touch-sensitive screen 14 at block 204. In its most basic form, the user interface initially displayed comprises the digital keyboard 28. The user interface may also include one or more toolbars or display boxes for the display of the current value of the search string and the current contents of the interactive search list 30. With the interface initialized and displayed on the touch-sensitive screen 14, the data entry system 26 awaits for user input from the pointing device at block 206. Once user input is received at block 206, the data entry system 26 determines at block 208 whether the user input received by the data entry system 26 at block 206 corresponds to any of the characters displayed on the digital keyboard 28. If the user input is found at block 208 to correspond with a character displayed in the digital keyboard 28, then that character is added to the search string at block 210. As indicated earlier, the search string is used by the candidate prediction system 32 to search the dictionary 20 for potential completion candidates. In the first embodiment, the candidate prediction system 32 continuously retrieves a list of completion candidates from the dictionary 20 as contents of the search string change. As the user modifies the current partial text entry under construction, the contents of the search string are modified and used by the candidate prediction system 32 at block 212 to obtain a new list of completion candidates from the dictionary 20.

The operation of the candidate prediction system 32 for the first embodiment is further illustrated in FIG. 9. As illustrated in FIG. 9 for the first embodiment, the candidate prediction system 32 retrieves the first and last entry from the dictionary 20 that begin with the contents of the search string. The first and last entry retrieved are then used to define a search span. If the search span is greater than the number of completion candidates that the data entry system 26 is programmed to display, then the completion candidates within the search span having the highest corresponding weight values (for example, frequency values) are retrieved up to the maximum number of permissible completion candidates which may be displayed in the interactive search list 30. The completion candidates retrieved by the candidate prediction system 32 in this manner are then compiled into a list of completion candidates which is used for display in the interactive search list 30. In the case of the first embodiment, this involves very little processing as the list of completion candidates is updated whenever the partial text entry currently under development by the user is modified. As indicated earlier, however, in an alternative embodiment, the interactive search list 30 containing a list of completion candidates may be generated once the user invokes activation of the interactive search list 30 by pausing on a key on the digital keyboard 28 (i.e. following block 214).

Once a character has been added to the search string at block 210, the data entry system 26 determines at block 214 whether or not the pointing device has been released from the touch-sensitive screen 14 within the predetermined time limit L1. If the data entry system 26 finds that the pointing device has been released within the time limit L1, processing returns to block 206 where the data entry system 26 waits for further user input. This allows the user to use the digital keyboard 28 to type out a portion or all of a desired text entry by briefly tapping on keys on the digital keyboard 28 one keystroke at a time. On the other hand, if the data entry system 26 determines at block 214 that the pointing device has not been released within the time limit L1, the data entry system 26 determines at block 216 whether or not the list of completion candidates (also referred to and shown in the drawings as a candidate list) is empty. If the candidate list is found to be empty at block 216, then the candidate prediction system 32 has not found any completion candidates in the dictionary 20 which would potentially complete the partial text entry under development by the user. In this case, processing returns to block 206. From the user's perspective, with no possible candidates having been retrieved from the dictionary 20, the user can complete the desired text entry by continuing to type in the remaining characters from the digital keyboard 28 or may otherwise modify the partial text entry under development using other function keys available on the user interface (such as canceling the current partial text entry or backspacing one or more characters in the partial text entry). If, on the other hand, the list of completion candidates is found not to be empty at block 216, then the digital keyboard 28 is disabled at block 218 and the interactive search list 30 containing the candidate list obtained in block 212 is displayed within the interactive search list 30 on the touch-sensitive screen 14 at block 222 and the data entry system 26 waits for further user input at block 224.

It will be recalled that once the user has activated the display of the interactive search list 30 containing a list of completion candidates, the user can use the data entry system 26 to take one of several actions. The user can deactivate the interactive search list 30 and return to modifying or editing the current partial text entry by lifting the pointing device from the touch-sensitive screen 14 without any significant movement. If this action is detected at block 226 then the candidate list is cleared and the search string contents are preserved at block 262. Processing then returns to block 204 where the user can continue modifying the current partial text entry using the digital keyboard 28.

If, on the other hand, the user input received at block 224 is identified at block 226 as being a gesture, then the gesture is analyzed at block 228 to determine if it is associated with a completion candidate displayed in the interactive search list 30. If the gesture is found to be associated with a completion candidate in the interactive search list 30, then that completion candidate is selected from the interactive search list 30 at block 230. Preferably, when a completion candidate is selected in the interactive search list 30 at block 230, the selected completion candidate is highlighted or otherwise emphasized in some way to the user.

When a completion candidate is selected at block 230, a timer T2 is started. The timer T2 is used in the first embodiment to monitor how long the selected completion candidate remains selected by the user. As will be recalled, the user can select one of the completion candidates in the interactive search list 30 and use the selected completion candidate to either replace the partial text entry that the user is currently entering or use the selected completion candidate to initiate a further automated search to obtain a more refined list of completion candidates from the dictionary 20. In the first embodiment, the timer T2 is used to distinguish between these latter two types of operations which the user may initiate with the pointing device using the selected completion candidate. It should be noted that if the gesture analyzed at block 228 is not found to be associated with the completion candidate, then processing returns to block 224 where the data entry system 26 awaits further user input from the pointing device for analysis at block 226.

Once a completion candidate has been selected from the interactive search list 30 at block 230, the data entry system 26 monitors the timer T2 at block 232 and monitors for further user input. If the data entry system 26 detects further user input from the pointing device at block 236, the timer T2 has not exceeded the predetermined time limit L2 and the user input is analyzed at block 238 to determine whether the user has initiated a gesture or lift with the pointing device. If a lift is detected at block 238, then this event serves as an indication to the data entry system 26 that the selected candidate in the interactive search list 30 has been accepted by the user, in which case the completion candidate is added to the text in place of the potential text entry and the search string is cleared at block 240. Once a selected completion candidate has been added to the text at block 240, the data entry system 26 returns to block 204 where the initialized user interface is displayed on the touch-sensitive screen 14, and the data entry system 26 awaits for further user input at block 206. Any new characters received by the data entry system 26 are then treated as being part of a new partial text entry.

If, on the other hand, a gesture is detected at block 238, then the gesture is analyzed to determine if it is associated with a different completion candidate in the interactive search list 30 at block 242, and if the answer to the analysis of block 242 is "YES", then the data entry system 26 changes the completion candidate selection from the interactive search list 30 and restarts the timer T2 at block 244. The data entry system 26 then continues to monitor the timer T2 at block 232 and user input at block 234. From the user's perspective, a different completion candidate from the list of completion candidates is highlighted. If a gesture is detected at block 238, but that gesture is not found to be associated with a different candidate at block 242, then the data entry system 26 determines at block 246 whether the gesture is associated with a dead zone on the user interface. As discussed, dead zones are used to allow the user to deselect a selected completion candidate and to pause to consider what further action the user may wish to take. Dead zones are particularly useful when a timer such as timer T2 is used as the triggering mechanism to determine when a selected completion candidate is to be used to initiate a further automated search of the dictionary 20. If a gesture is found to be associated with a dead zone at block 246, the currently selected completion candidate from the interactive search list 30 is deselected at block 248, the timer T2 is disabled, and the data entry system 26 awaits for further user input at block 256. Otherwise, processing returns to block 232.

If the timer T2 is found at any time at block 232 to have exceeded the predetermined time limit L2, then this event serves as an indication to the data entry system 26 that the selected candidate is to be used to initiate a further automated search, in which case processing proceeds to block 250 where the search string is set to equal the selected completion candidate and a new list of completion candidates is obtained from the dictionary 20 at block 252. This new list of completion candidates is then displayed in the interactive search list 30 at block 254, and the data entry system 26 then awaits further user input at block 256. User input received at block 256 is analyzed at block 258 and if at block 258 the data entry system 26 determines that the user input corresponds to a gesture with the pointing device, the gesture is analyzed at block 260 to determine if the gesture generated by the pointing device is associated with any of the completion candidates from the new list of completion candidates displayed in the interactive search list 30. If the gesture is not associated with a completion candidate, then the data entry returns to block 256 and awaits for further user input from the pointing device. If, on the other hand, the gesture is associated with a completion candidate in the interactive search list 30, then the data entry system 26 returns to block 230 where the associated completion candidate is selected, the timer T2 is restarted, and the data entry system 26 then monitors to see, as before, whether or not the user will use the selected completion candidate to either replace the partial text entry or initiate a further automated search. It should be noted that when the new list of completion candidates is displayed in the interactive search list 30 at block 254, and the data entry system 26 awaits for user input at block 256, that the pointing device remains in contact with the touch-sensitive screen 14. This situation is similar to the one at blocks 222 and 224 except that the interactive search list 30 has been updated to contain a new list of completion candidates for the user to select from.

Data Entry System Features

The data entry system 26 may include a variety of features and aspects to further enhance functionality and flexibility of text entry for the user when a single pointing device is used. Furthermore, each of the following features and aspects individually provides a beneficial enhancement and is an embodiment of the present invention. These additional features and aspects of the present invention will now be described below. Many of the features and aspects described below can also be applied in combination with various types of search lists containing completion candidates, including single and multi-level search lists.

As before, the following features and aspects can be applied to many types of personal computing devices and may be stored as computer-readable instructions in one or more types of computer-readable media.

Notification of Active Entry Mode

In one alternative embodiment, the data entry system 26 is programmed to notify the user of the active entry mode. In this variation, the data entry system 26 is programmed to display on the graphical user interface 34 an express indication of the currently active entry mode (as illustrated in blocks 218 and 240 of FIGS. 23 and 24). In this variation, two entry modes are tracked with the data entry system 26: (1) a keyboard mode to indicate that the digital keyboard 28 is active, and (2) a search mode to indicate that automated searching is active with the interactive search list 30. Displaying on the graphical user interface 34 an express indication of the current entry mode for the data entry system 26 is achieved by displaying a different color signal (or set of signals) on the graphical user interface 34 depending on which entry mode is currently active. Alternatively, specific icons can be assigned to each entry mode and displayed on the graphical user interface 34 when the corresponding entry mode is active. Notifying the user of the entry mode with one or more express indicators on the graphical user interface 34 minimizes the risk of the user losing track of whether the user is in keyboard mode or in search mode and enhances the ease of use of the data entry system 26. This can be particularly useful when both the digital keyboard 28 and the interactive search list 30 are displayed simultaneously on the graphical user interface 34.

Notification of Completion Candidates

If the interactive search list 30 has fewer than the predetermined maximum number of displayable completion candidates, then this will serve as an indication to the user that the interactive search list 30 currently displayed contains all of the completion candidates in the dictionary 20 that begin with the partial text entry that the user has entered. If, however, the interactive search list 30 is full when it is activated by the user, it will not be clear from looking at the interactive search list 30 whether any other potential completion candidates for the current partial text entry may reside in the dictionary 20. In order to remove this ambiguity and expressly indicate if there are any more potential completion candidates and if so, how many, in another aspect the data entry system 26 is programmed to display on the graphical user interface 34 the number of potential completion candidates in the dictionary 20 that have leading characters matching the current partial text entry. The number of potential completion candidates is displayed and updated by the data entry system 26 when the digital keyboard 28 is in use and whenever the interactive search list 30 is activated or updated with new completion candidates (as illustrated for example at blocks 213A and 254 of FIGS. 21 and 22). Alternatively, the data entry system 26 can be programmed to display on the graphical user interface 34 a graphical indication of whether or not additional completion candidates having leading characters matching the current partial text entry are located in the dictionary 20, in addition to those candidates displayed in the interactive search list 30. Here again, the graphical indication is displayed and updated by the data entry system 26 when the digital keyboard 28 is in use and whenever the interactive search list 30 is activated or updated with new completion candidates. This notification feature enhances the user's ability to know, even before attempting to use the interactive search list 30, when automated searching may retrieve a list of possible completion candidates (or a refined list). With this advanced notification feature, the user can better decide when to continue adding further characters to the partial text entry with the digital keyboard 28 and when to activate and use the interactive search list 30.

Digital Keyboard Features

A variety of features may be implemented with the digital keyboard 28 in order to further enhance the user's ability to enter text with the data entry system 26. In one variation, the digital keyboard 28 can be programmed to be displayed in a frequency distributed layout. The frequency distributed layout takes advantage of the well known principle that certain characters in a character set are more frequently used than other characters within the same character set. For example, the digital keyboard may contain the letters of the English alphabet displayed in a frequency distributed layout based on an analysis of a large corpus of text. It will be appreciated, of course, that the characters or symbols in a particular character set may have different relative frequencies depending upon the sample population of data used to rank such characters relative to each other within a particular character set. It will be appreciated that when the data entry system 26 is employed, the frequency of characters entered may be different than that of traditional systems that enter text one character at a time. These general principles are used to generate a frequency distributed layout for the digital keyboard.

In one embodiment of the digital keyboard having a frequency distributed layout, the digital keyboard is programmed to include a plurality of characters assigned to predetermined locations within the layout for the digital keyboard according to a predetermined frequency distribution associated with the plurality of characters. The plurality of characters displayed on the digital keyboard include less commonly used characters and more commonly used characters based on the predetermined frequency distribution. In this embodiment, the digital keyboard is displayed on a graphical user interface with the less commonly used characters displayed substantially further from the center of the digital keyboard than the more commonly used characters. An example of this type of digital keyboard is illustrated generally in FIG. 3 except that the "space" key has been located in the outer ring rather than closer to the center of the digital keyboard 28. An example of the digital keyboard 28 having a frequency distributed layout with the space key near the center is shown in FIG. 10.

With the frequency distributed layout, it is preferable that the image of the digital keyboard 28, when substantially circular or elliptical, has a first group of most frequently used characters (i.e. the most commonly used characters) located substantially near to the center of the digital keyboard 28 with at least one group of less frequently used characters (relative to the first group) displayed at a distance further from the center of the keyboard than the characters of the first group. As illustrated by FIG. 3, the digital keyboard 28 is preferably configured to be displayed in a frequency distributed layout comprising a plurality of characters arranged into rings. When the characters on the digital keyboard 28 are arranged into rings, then the characters in a particular ring can be arranged to each be about the same distance from the center of the digital keyboard 28 providing some uniformity to the movements required to enter text. This can also be useful for certain arrangements including, for example, when the digital keyboard 28 is programmed to be dynamically re-positionable as discussed further below.

In the keyboard layouts shown in FIGS. 3 and 10, at least one most commonly used character of a pre-selected character set or subset (such as a subset or the ASCII character set) is located substantially in or near the center of the digital keyboard 28. As also shown, the next most commonly used characters are located within an intermediate ring, and the less commonly used characters of the character set are distributed in an outer ring of the digital keyboard 28. When the most commonly used characters are located in or close to the center of the digital keyboard 28, the degree of movement required with a pointing device to select characters displayed within the intermediate or inner rings of the digital keyboard 28 is minimized. In addition, arranging characters on the digital keyboard 28 in concentric-like rings according to their frequency of use provides an easy and efficient mechanism for retrieving characters and entering data using a pointing device.

When rings are used with the digital keyboard 28, it will be appreciated that the arrangements of the characters within each ring is by no means limited to the layout shown in FIG. 3 or 10. For instance, the characters within a particular ring may be organized alphabetically in a clockwise (or counter clockwise) order. A challenge with many keyboard designs is that they take time to learn. The above ordered organization increases the opportunity to quickly learn and recall the location of characters displayed on the digital keyboard 28, since user's are already familiar with this clockwise distribution. In another variation, the characters in one half of a ring (for example, the upper half) may be ordered alphabetically in one direction (for example, clockwise), and all characters in the other half of the same ring (for example, the lower half) may be ordered alphabetically in the other direction (counterclockwise). These type of organizations within the rings can also enable a user to more quickly learn to locate a desired character displayed in the digital keyboard 28.

Several other characteristics of the digital keyboard 28 may also vary. In general, the type of characters displayed and available, the type and number of characters displayed on particular keys of the digital keyboard 28, the font size of each character displayed, and the value to be processed when a particular key is contacted (or selected) may all vary from keyboard to keyboard. As well, to minimize clutter the digital keyboard 28 can be displayed with no graphics outlining the keys on the digital keyboard 28. For circular or ring-like keyboard layouts, several other characteristics may also vary, including the number of rings making up the keyboard layout, the number of keys displayed in each ring, and in the keyboard as a whole and the thickness or width of each ring.

In another variation, the digital keyboard 28 layout may be dynamically replaced by the user with another keyboard layout. This feature can be particularly advantageous when it is desirable to permit a user to quickly swap between several keyboard layouts (for example, as between the keyboard layouts in FIGS. 10, 11 and 12), as in the case where the touch-sensitive screen 14 is relatively small or the number of characters required to enter data exceeds the space available to display the digital keyboard 28 within a location on the touch-sensitive screen 14. Permitting the user to swap between multiple keyboard layouts provides the user with a significant degree of flexibility when entering characters with the data entry system 26. In addition, when multiple keyboard layouts are available, they can be organized according to various subclasses of characters. For instance, a default keyboard layout may contain alphabetic characters. A second keyboard layout may contain numeric characters. A third keyboard layout may contain special characters. Grouping a character set into logical subgroups and organizing these subgroups on multiple keyboard layouts provides the user with the ability to logically navigate amongst different types of keyboard layouts when desired. Preferably, the user may activate a particular keyboard layout using one or more hot keys each associated with at least one of the available keyboard layouts. A hot key may be any key or function associated with the digital keyboard 28 that triggers the display of an alternative keyboard layout. When a hot key associated with a particular keyboard layout is selected by the user from the digital keyboard 28, the currently displayed keyboard layout is replaced with the keyboard layout associated with the selected hot key.

In another variation, a number of different related symbols or characters may be accessed through one key on the digital keyboard 28. For example, when the user touches a punctuation key, a number of different punctuation marks may be displayed, and the user may select one of these choices by gesturing to select the desired symbol or character.

Dictionary Features

In another aspect of the present invention, multiple dictionaries may be stored in the computer-readable medium 16 (FIG. 1), with each dictionary containing completion candidates with associated weight values for ranking completion candidates relative to each other. For example, the weight values may represent frequency of use values weighted according to usage in a particular language or a particular field of use (eg. engineering, general business, law, accounting) or a particular user's use. With multiple dictionaries, a user may readily switch between language sets or language subsets or dictionaries for a particular application.

In one variation, the data entry system 26 (for example, in FIGS. 1 to 5) can contain multiple simultaneously accessible dictionaries that the user can enable and disable individually. For instance, the data entry system 26 can have a first dictionary containing completion candidates based on Oxford English and a second dictionary containing completion candidates based on American English, both active at the same time and both accessed and used by the candidate prediction system 32 when a list of completion candidates is to be obtained. As another example, the data entry system 26 can have a legal dictionary, a civil engineering dictionary, and a regular American English dictionary all active simultaneously. This feature enables the user to obtain a list of completion candidates simultaneously containing variations on particular words, phrases, or character sequences particular to specific areas of practice or particular to specific types of dictionaries.

With multiple, simultaneously accessible dictionaries, the candidate prediction system 32 can be programmed to retrieve completion candidates from two or more dictionaries, each having their own weighting function for completion candidates (as illustrated in blocks 212 and 252 of FIGS. 25 and 26). When this is done, the candidate prediction system 32 can generate a final list of completion candidates based on a combining function that takes into account the weight values associated with the completion candidates retrieved from the multiple dictionaries and which also prioritizes the completion candidates based on the source dictionary from which a particular completion candidate is retrieved. By way of example, the candidate prediction system 32 may be programmed to include in the final list the top N completion candidates (where N.gtoreq.1) from each list of completion candidates retrieved from the multiple dictionaries.

A predefined dictionary may also be modified or generated based on a particular user's usage of particular words or character sequences over the course of using the data entry system 26. Such a "personalized" dictionary may also be used to produce lists of the most common completion candidates used by a user. For example, the actual usage of completion candidates from the dictionary may be tracked by the data entry system 26. A personalized dictionary may also be used in combination with other dictionaries. For example, using a standardized dictionary and a personalize dictionary the candidate prediction system 32 may be programmed to give priority first to completion candidates (up to a predetermined limit) beginning with the contents of the search string and recorded in the personalized dictionary as having the highest weight values, and then, if space remains in the interactive search list 30, to completion candidates having the highest weight values in the standardized dictionary and beginning with the contents of the search string. As another example, a new dictionary may be generated based on the completion candidates selected by the user through the use of the data entry system 26 over time. The user may activate the new dictionary at any time so that it takes priority over any pre-existing dictionary(ies) if completion candidates beginning with the search string are located in the new dictionary.

In another variation of the dictionary 20 and the use of the dictionary 20 via the data entry system 26 of the present invention, the data entry system 26 may be programmed to monitor a specific user's pattern of usage of completion candidates from the interactive search list 30 over time. For example, as completion candidates are selected by the user and entered into the text using the data entry system 26, an additional weight field in each entry of the dictionary 20 may be used by the data entry system 26 to track the user's actual frequency of completion candidate usage. In this user-oriented variation the candidate prediction system 32 may be configured to find the most common completion candidates in the dictionary 20 beginning with a search string based firstly on the degree of actual user usage tracked in the additional usage fields of the dictionary 20 associated with completion candidates therein, and secondly based on the predefined weight fields 24 if the additional usage fields are null or are less than a predetermined threshold value defining a minimum percentage level of usage for evaluation, or if the list of completion candidates retrieved using the additional usage fields results in a number of completion candidates less than the maximum number which may be displayed with the interactive search list 30. In such a user-oriented variation, the candidate prediction system 32 tracks the total number of selections made from the dictionary 20 (for example, in a TOTAL_USAGE field in the candidate prediction system 32) over time by the user, as well as the total number of occasions on which a particular completion candidate in the dictionary 20 is actually used by the user to replace a partial text entry (for example, in a COMPLETION_CANDIDATE_USAGE field in the candidate prediction system 32). To determine whether or not an additional usage field for a particular completion candidate in the dictionary is less than the predetermined threshold value for acceptable usage and evaluation, the data entry system 26 compares the value COMPLETION_CANDIDATE_USAGE/TOTAL_USAGE with the predetermined threshold value. In such a variation the end-most commonly used completion candidates retrieved for display may be configured based primarily on the user's actual completion candidate usage as opposed to a predefined frequency distribution preprogrammed into fields 24 of the dictionary 20.

It will be further appreciated from reading this specification that including common word prefixes in lists of completion candidates can reduce user effort in arriving at the desired final completion candidate. The inclusion of prefixes provides for one common entry path to all words that begin with that prefix. Compared to using an initial candidate list which, for example, simply lists all words beginning with certain characters this alternative method may in turn shorten the number of searches, or search iterations, required to find the final completion candidate. This results because the weight field for the prefix completion candidate can be made the sum of the weight fields for all entries that begin with the prefix which in turn means the prefix is more likely to show up at an earlier stage of an iterative search sequence.

An example of this is if the desired final candidate is the word `telescope`. Without the use of prefixes the user might enter `t` but find no words beginning with `tele` in the completion candidate list. This would then require the user to enter the next letter `e` however telescope may still not have a high enough weight to show up in the next list of completion candidates and so the process would continue. The use of prefixes as completion candidates can shorten this process since the combined weight of all completion candidates beginning with `tele` would cause this prefix to show up early in the search process, possibly as soon as `t` is entered, which would then allow the user to immediately narrow the search to only those words beginning with the characters `tele`. Because the desired candidate is found after fewer searches or search iterations it reduces the memory load on the user which in turn can ease learning of the necessary sequence of operations the user must perform to enter words that begin with those prefixes."

Re-Positionable Keyboard

In another aspect of the present invention, the digital keyboard 28 is programmed to be dynamically re-positionable so as to follow the pointing device. When the digital keyboard 28 is programmed to be dynamically re-positionable, its image follows the movement of the pointing device on the touch-sensitive screen 14 so that the keyboard image remains generally centered beneath the pointing device after each keyboard selection. In this aspect, whenever the data entry system 26 is in keyboard mode, the digital keyboard 28 is programmed to automatically re-center itself on a location within the graphical user interface 34 associated with a last known set of position coordinates for the pointing device. For example, if the character "u" is selected with the pointing device from the digital keyboard 28 in FIG. 3, the digital keyboard 28 re-centers itself substantially over the position coordinates which were used by the pointing device to select the character "u". By substantially re-centering the digital keyboard 28 over the last known set of position coordinates for the pointing device, the position and distance of the keys on the digital keyboard 28 relative to the user's pointing device remains substantially constant. This provides a uniform mechanism for consistently selecting the same key on the digital keyboard 28 using substantially the same movement with the pointing device. In addition, when the digital keyboard 28 is dynamically re-positionable the degree and frequency with which the user is required to reposition the pointing device after selecting keyboard characters is minimized. If this re-positionable feature is combined with a frequency distributed keyboard having the most common characters near the center, the pointing device will generally always rest in the center of the most common characters. If the frequency distributed keyboard is made up of rings, then each of the characters in a particular ring will be equidistant from the pointing device when the pointing device is resting in the center of the keyboard, resulting in a uniformity of movement for character entry.

When the digital keyboard 28 is programmed to be dynamically re-positionable, it may also be programmed to reposition to a substantially central location within the graphical user interface 34 (or to another user-definable position) when the digital keyboard 28 approaches within a predetermined distance of any of the boundaries of the graphical user interface 34. Repositioning the digital keyboard 28 in this way provides a mechanism to adjust for circumstances where the digital keyboard 28 drifts too close to a boundary of the touch-sensitive screen 14. In an alternative repositioning mechanism, a hot key may be used to automatically re-center the digital keyboard 28. In yet another alternative, the dynamically re-positionable digital keyboard 28 may be programmed to re-center about position coordinates for the pointing device when the position coordinates correspond to a part of the graphical user interface 34 (or screen) that is not currently occupied by the digital keyboard 28. For example, if the digital keyboard 28 approaches an edge of the graphical user interface 34 the user can simply touch down in a center of the graphical user interface 34 and the digital keyboard 28 will relocate to that point.

When the digital keyboard 28 is dynamically re-positionable, it is preferable in general that the amount of keyboard movement, or drift, is minimized. This can be achieved by arranging the keyboard layout so that the keyboard characters are distributed about the digital keyboard 28 in a configuration that reduces the amount of drifting experienced when it is dynamically re-positionable. One way of achieving this is by configuring the digital keyboard 28 so that the total of the frequency of use values for characters located within a particular portion (or sector) of the digital keyboard 28 is substantially the same as other similarly shaped portions (sectors) of the digital keyboard 28. It will be recalled that for the frequency distributed arrangement of keyboard characters discussed earlier, each keyboard character has a predetermined frequency of use value assigned to (or associated with) it. In order to minimize drifting, the digital keyboard 28 may be divided into notional, substantially equally shaped sectors, and the keyboard characters may be assigned to locations within the digital keyboard 28 such that the total of combined frequency values for characters within a particular sector of the digital keyboard 28 is substantially equal to the total of combined frequency values for characters within any of the other sectors of the digital keyboard 28. In this way, the likelihood of selecting a character from any one of the predetermined sectors of the digital keyboard 28 is substantially the same. Thus, if one wishes to minimize drift in the case of the circular-type digital keyboard 28 layout in FIG. 3, it is preferable that the keyboard characters are distributed such that when the digital keyboard 28 is notionally divided into substantially equally shaped wedge-like sectors, each sector of the keyboard has substantially the same total `weight` of characters, according to their frequency of use, as each of the other sectors.

Another way to minimize drift is to configure the digital keyboard 28 in a substantially symmetric layout of characters with pairs of opposing characters displayed on the digital keyboard 28 having substantially similar frequencies of use. With this configuration, the frequency of use of one character in a pair of opposing characters is as close as possible to that of the other character in the pair. An example of this configuration is shown in FIG. 13 which shows the frequencies (f(X.sub.1) and f(X.sub.2)) of characters X.sub.1 and X.sub.2 being substantially the same as each other, and the frequencies (f(X.sub.3) and f(X.sub.4)) of characters X.sub.3 and X.sub.4 being substantially the same as each other. The frequencies of use of the characters displayed in the digital keyboard 28 may be calculated using well-known techniques of analysis on a large corpus of text.

The dynamically re-positionable digital keyboard 28 minimizes the need for repositioning the pointing device and instead operates on the basis of repositioning the digital keyboard 28 relative to the pointing device. Making the digital keyboard 28 dynamically re-positionable also provides uniform movement for a particular character resulting in a more intuitive keyboard and a more intuitive data entry mechanism. When combined in a single embodiment, the character frequency distribution and the dynamically re-positionable aspects of the digital keyboard 28 further reduce the movement required for the pointing device when characters are to be selected from the digital keyboard 28.

Candidate Selection

In the first embodiment described earlier above, completion candidates are selected from the interactive search list 30 by way of gestures. Alternatively, other forms of candidate selection may be performed with pointing devices. For instance, if gesture-based selection is not desired for a particular implementation, candidates may be selected based on their location in the interactive search list 30. As another example, when the data entry system 26 is programmed to receive input from a mouse having two or more buttons, the data entry system 26 can be programmed to use input from one mouse button to toggle between activating and deactivating the interactive search list 30, and to use input from a second mouse button to insert a completion candidate from the interactive search list 30 into the text when the interactive search list 30 is active and the mouse has been used to highlight that completion candidate. In this latter case, the data entry system 26 may also be programmed to use input from the second mouse button as a trigger to select a key from the digital keyboard 28 if the mouse's cursor position (i.e. the mouse's position coordinates) on the graphical user interface 34 is associated with a key on the digital keyboard 28 at the time input from the second mouse button is received.

In another aspect, candidate selection using the interactive search list 30 may be modified to replace the time delay-based technique for triggering the activation of the interactive search list 30 or for triggering iterative searching, with other forms of input indicators from the pointing device. For instance, with a mouse, an input signal from a mouse button when the mouse position is located over a particular function button or location on graphical user interface 34 or when a double click signal from that mouse button is received by the data entry system 26.

Interactive Search List Layout

Although the interactive search list 30 is displayed in the first embodiment (FIGS. 1 to 5) as a vertical list of completion candidates, the interactive search list 30 can be displayed in several different ways depending upon which options the data entry system 26 has been programmed with and which of those options have been selected by the user. There are four main considerations for the display of the interactive search list 30. The first is where the interactive search list 30 is to be positioned within the graphical user interface 34. The second is whether the interactive search list 30 is continuously visible or not. The third consideration is the type of interactive search list, more specifically, how the completion candidates in the interactive search list 30 are arranged visually within the graphical user interface 34. The fourth consideration is whether the interactive search list 30 replaces the digital keyboard 30 or whether the interactive search list 30, when active, temporarily appears remote from or superimposed over a portion of the digital keyboard 30.

In an alternative to swapping the display of the interactive search list 30 with the digital keyboard 28, the interactive search list 30 may be displayed in a fixed location within the graphical user interface 34. In another variation, the interactive search list 30 may be docked with the digital keyboard 28, when it is repositionable, and displayed continuously. With either the docked or fixed location interactive search list 30, the results of automated searching are continuously displayed within the interactive search list 30 as the user enters characters with the digital keyboard 28 or uses the interactive search list 30 itself (as illustrated by block 213B and 254 of FIGS. 23 and 24). Activating a docked or fixed location interactive search list 30 can be achieved by pausing with the pointing device on a keyboard character selected within the digital keyboard 28. As soon as the predetermined time limit L1 has expired, the interactive search list 30 becomes active. At this point, if the user wishes, the user can select one of the completion candidates (if any) within the interactive search list 30 or the user can return to keyboard mode and continue adding to or otherwise modifying the current partial text entry from the digital keyboard 28. In a further variation, the interactive search list 30, when arranged in a docked or fixed location, may be continuously updated with potential completion candidates based on the current contents of the search string being constructed by the user via the digital keyboard 28. In this variation, the user can simply continue adding characters to the end of the current partial text entry one character at a time via the digital keyboard 28 so as to continue building the desired word, phrase, or character sequence until such time as the desired completion candidate or a partial completion candidate thereof appears in the interactive search list 30. In a further alternative, the interactive search list 30, when activated, may be shown superimposed over a portion of the digital keyboard 28.

The digital keyboard 28 may be instructed to make itself visible or invisible to view on the graphical user interface 34. For instance, in the first embodiment in FIGS. 1 to 5 the digital keyboard 28 may be programmed to be displayed on the graphical user interface 34 in response to a user selection on the personal computing device, and to be hidden (or cleared) from view in response to another user selection. This feature also provides, for example, the option for the application 27 to instruct the digital keyboard 28 when to be visible and when to be invisible. Preferably, the application 27 is programmed to decide when and where the digital keyboard 28 is to be displayed. This feature can be applied to many types of personal computing devices including, for example, where a touch-sensitive screen is used, or where the digital keyboard 28 is displayed on a display device that is separate from the hardware input interface 17 such as with a data tablet, a proximity sensing input surface or an equivalent input interface. For example, the hardware input interface can be located on a remote control device used to control when the digital keyboard 28 is displayed on a television or a remotely located computer display. With a proximity sensing input surface, the digital keyboard can be displayed when the pointing device is detected within a set predetermined distance of a proximity sensing input surface, and the digital keyboard can be hidden when the pointing device is not detected within the set predetermined distance of the proximity sensing input surface. As another example, if a proximity sensing input surface is used capable of position sensing, then when a stylus or the like is lifted a set predetermined distance from the proximity sensing input surface, the application 27 can instruct the digital keyboard 28 to become invisible so as to swap to full text mode. When the stylus or the like is brought back within the set predetermined distance of the proximity sensing input surface, the application 27 reactivates the display of the digital keyboard 28 over position coordinates associated with the position of the pointing device over the proximity sensing input surface or to an area remote to the pointing device. Variations on handling text entry with the proximity sensing input surface are discussed further on below.

The API for the data entry system 26 also allows the application 27 to programmatically change the partial text entry which is used for searching. For example, the user of a text editor might place the cursor after a word or character sequence and the application 27 could then tell the data entry system 26 to use that word or character sequence as a partial text entry for further searching.

Types of Interactive Search List Layouts

Several alternative layouts for the interactive search list 30 may be used by the data entry system 26. In the first embodiment, a vertical list of completion candidates is used, as further illustrated in FIG. 14. In other layouts, completion candidates within the interactive search list 30 may be displayed in an X configuration (FIG. 15), in a rectangular configuration (FIG. 16), in a cross configuration (FIG. 17), in a T configuration (FIG. 18), or in a horizontal configuration. With the X configuration, one completion candidate is preferably located slightly offset in the x-axis or y-axis from a central location within the X configuration and surrounded by four or more completion candidates located within the north-west, north-east, south-west, and south-east directions (relative to the central completion candidate displayed). With an X configuration of the search list (like the one above) a unique direction is provided for each of the five completion candidates displayed in the list, so as to minimize pen movement. For the cross configuration, a substantially centrally displayed completion candidate within the interactive search list 30 is surrounded by up to four completion candidates in the north, east, south, and west directions (relative to the central completion candidate displayed).

Interactive Search List Configuration

When the digital keyboard 28 is programmed to share the same display space on the graphical user interface 34 as the interactive search list 30, it is preferable that the data entry system 26 is also programmed to display all completion candidates near the last known position coordinates for the pointing device so that they are slightly off-set from the x-axis or y-axis of the last known position coordinates so as to minimize the degree to which such completion candidates in the interactive search list 30 are obscured from the user's view by the pointing device. This feature can be particularly useful when the pointing device is a pen or finger and the user interfaces with a touch-sensitive screen 14. In this way, the interactive search list may be displayed in a location which makes it easily visible and accessible to the user.

In another variation, when the digital keyboard 28 and the interactive search list 30 are interchangeably displayed, the list of completion candidates within the interactive search list 30 can be displayed such that the most common of the completion candidates is displayed closest to the last known position coordinates of the pointing device while the other completion candidates within the interactive search list 30 are displayed further away from the last known position coordinates of the pointing device relative to the most common of the completion candidates. This variation results in a frequency distributed interactive search list 30 which can assist in further minimizing the amount of motion required with the pointing device in order to use and select from the interactive search list 30.

As illustrated in FIG. 19, in another variation, both the digital keyboard 28 and the interactive search list 30 may be continuously displayed within fixed separate locations on the graphical user interface 34, along with a search string window 40 used to display the current contents of the search string. A tool bar 42 may also be displayed to identify predefined functions and commands that may be selected by the user while using the data entry system 26. When the tool bar 42 is included in the dynamically re-positionable configuration for the digital keyboard 28, the tool bar 42 may be repositioned dynamically along with the digital keyboard 28, or the tool bar 42 may be located and remain in a fixed location within the graphical user interface 34. As illustrated in FIG. 20, whenever the digital keyboard 28 is displayed, with or without the interactive search list 30, a toolbar 42 and additional character layouts 44 may be used to enhance the functionality for the user while using the digital keyboard 28.

In another aspect of the present invention, a commonly used word or character sequence may appear in the same position each time such a word or character sequence is displayed in a search list. This helps the user become familiar with the location of such a word or character sequence within the search list, and thereby helps the user to access such a word or character sequence more readily.

In another alternative embodiment, as the user begins to learn the position of common words within a search list, the user may begin to know which gesture is required to enter a certain word even before the predetermined delay period L1 has expired and the search list is displayed. In this case, the date entry system 26 may be programmed to recognize such gestures even before the predetermined delay period L1 has expired and the interactive search list 30 is displayed.

In another alternative embodiment, the interactive search list may display completion candidates with the part of each completion candidate matching the search string displayed in a different manner (for example a different color, font, or boldness) than the remaining parts of the completion candidates. For example, if the remaining parts were significantly bolder than the part of the completion candidates matching the search string, the user's eye can be drawn to those portions which distinguish the completion candidates on the interactive search list from one another, therefore facilitating selection of the desired completion candidate.

Tracking the Movement of the Pointing Device

In another variation, when a stylus (or pen, finger or the like) is used with a touch-sensitive or pressure-sensitive input surface (e.g. a touch-sensitive screen, a data tablet or input pad), the data entry system 26 may be programmed to determine whether or not the position of a cursor displayed on the graphical user interface 34 tracks the stylus position precisely or whether it moves relatively to the stylus movement. In the first case, if the cursor position tracks the stylus position precisely, then the stylus and cursor function like a mouse and the cursor on a conventional user interface and the position of the cursor tracks precisely the position of the stylus tip on the hardware input surface (i.e. the last known position coordinates for the stylus).

In the second case, the cursor displayed on the graphical user interface 34 is moved by a distance proportional to the movement with the stylus. This latter behaviour can come into effect when the interactive search list 30 is displayed. For instance, when moving up a vertical list of completion candidates, the cursor can move up faster than the actual physical movement of the stylus.

In either case, the stylus (or other pointing device) can be used locally on the display device if it is a touch-sensitive screen, or remotely such as with a data tablet, a proximity-sensing input interface, or with the character input space on a Palm Pilot.TM. or another hand-held personal computing device.

Using the cursor to track the position coordinates of the pointing device can help the user keep their attention on the digital keyboard 28 or the interactive search list 30 displayed on the display device 15 without having to be distracted with looking at the physical position of the pointing device (see, for instance, cursor 48 as illustrated in FIG. 27). This can be helpful when, for example, a data tablet or input pad is used and is located remote from the display area of the graphical display device 15 where the digital keyboard 28 or the interactive search list 30 (or both) are displayed. Also, using the cursor to remotely track the movement of the stylus, pen or finger provides a mechanism for using the digital keyboard 28 and the interactive search list 30 without obscuring them from the user's view with the stylus, pen or finger.

When the data entry system 26 is programmed to use the cursor to remotely track the movement of the stylus, pen or finger, the cursor may be displayed over the digital keyboard 28 when the data entry system 26 is in keyboard mode, and the cursor may be programmed to relocate to the center of the digital keyboard 28 whenever a character from the keyboard or a completion candidate from the interactive search list 30 is selected. Once the cursor is centered in the digital keyboard 28, further movements with the pointing device can be used to make selections from the digital keyboard 28 as if the pointing device were physically centered about the center of the digital keyboard 28. In this variation, the digital keyboard 28 is displayed in a fixed remote location on the graphical user interface 34. With this variation, the user is not visually distracted by movement of the digital keyboard 28, while enjoying many of the advantages of the dynamically re-positionable digital keyboard 28. For instance, when the cursor relocates to the center of the digital keyboard 28 when the keyboard is active and waiting for user input, a particular character on the digital keyboard 28 remains the same distance and direction from the pointing device no matter what input was made last with the pointing device. This feature of the cursor enables the user to incorporate unconcious learning and therefore, learned efficiency. When a frequency distributed keyboard layout is used with most frequently used characters located near a central location, relocating the cursor to the center of the digital keyboard 28 enables ready access to the characters most likely to be chosen next, thereby reducing finger movement and increasing efficiency.

In one variation, the movement of the cursor need not necessarily be directly proportional to the movement of the pointing device. In this variation, the data entry system 26 is programmed so that moving the pointing device a small distance equates to moving the cursor a larger distance on the digital keyboard 28 or the interactive search list 30. This variation uses scaling to minimize the movement required to accurately distinguish and select characters from the digital keyboard 28 and completion candidates from the interactive search list 30. In another variation, the distance of the cursor movement may be related by the data entry system 26 to the speed that the pointing device moves, so that the faster the movement with the pointing device, the greater the distance traveled by the cursor, and the slower the movement of the pointing device, the less distance traveled by the cursor on the graphical user interface 34.

It will be appreciated, as indicated above, that when the pointing device is used on a digital keyboard that is displayed in a location remote from the pointing device, such as where the pointing device is a mouse, a finger on a touch sensitive palette, or a stylus. In such cases the digital keyboard is not displayed under the pointing device, but is viewed on a display device, and pointer motion is seen as relative motions of a cursor displayed on the digital keyboard. In these cases characters on the digital keyboard are not obscured.

Obtaining Completion Candidates of Specific Type or Minimum Length

In another aspect of the present invention, a special display area containing a series of numbers are displayed as part of or in association with the digital keyboard 28 to enable the user to rapidly instruct the data entry system 26 to obtain and display in the interactive search list 30 completion candidates having at least a minimum number of characters. In this aspect, when a user selects one of the characters on the digital keyboard 28 followed by one of the numbers in the special display area, the data entry system 26 is programmed to have the candidate prediction system 32 obtain from the dictionary 20 completion candidates beginning with the selected character and having at least as many characters as the number that was selected by the user from the special display area. Alternatively, the user may type in a number from the special display area, followed by holding down on one of the characters on the digital keyboard 28 to instruct the data entry system 26 to have the candidate prediction system 32 obtain from the dictionary 20 completion candidates beginning with the selected character and having at least as many characters as the number that was selected by the user from the special display area. In another variation, the data entry system 26 may be programmed so that when the user touches a number from the special display area and lifts the pointing device, the data entry system 26 retrieves a list of completion candidates having a number of characters equal to the number selected touched on the special display area. In yet another variation, the data entry system 26 may be programmed to obtain completion candidates of at least a predetermined length when the user selects a number from the special display area with the pointing device, gestures a significant distance in a predetermined direction (for example, to the right), lifts up the pointing device, touches down on a character on the digital keyboard 28 and then pauses on that character. In yet a further variation, another special display area may be included with the digital keyboard 28 from which the category of completion candidates can be narrowed. In this further special display area, for example, the data entry system 26 may be programmed to display general identifiers for nouns, verbs, adjectives, etc. If a general identifier is selected by the user before the interactive search list 30 is activated, the data entry system 26 in this variation is programmed to have the candidate prediction system 32 obtain completion candidates that are identified in the dictionary 20 as falling within the category associated with the selected identifier (for example, only nouns, or only verbs). This variation may be combined with the other aspects herein to assist the user in obtaining completion candidates of one or more specific categories identified in the dictionary 20.

In another aspect, a physical button or switch located on the personal computing device, or on the pointing device, and within easy reach of a user's finger or hand, may be used to easily activate certain features of the data entry system 26. As an example, when the button on the personal computing device is pressed, the data entry system 26 may be programmed to make, with each press, the digital keyboard 28 invisible or visible. Alternatively, the data entry system 26 may be programmed to recognize that if the button or switch is pressed, the interactive search list 30, when displayed, should display only certain types of completion candidates available within the dictionary. As another example, when the button is depressed, the data entry system 26 may be programmed to activate the interactive search list 30. As another example, when the button on the personal computing device is pressed, the data entry system 26 may be programmed to require that the interactive search list 30 display completion candidates of a certain minimum length of characters.

Proximity Triggered Display of Digital Keyboard

In another variation, a stylus (or pen or finger or like hand-held pointing device) is used with a proximity sensing input surface. Proximity sensing input surfaces can detect the proximity of a pointing device to the input surface as well as the location of the pointing device over the proximity sensing input surface. The proximity sensing input surface may also detect the distance and angle that a pointing device is being held relative to the input surface. When a proximity sensing input surface is used, the data entry system 26 can be programmed so as to display the digital keyboard 28 (or another digital keyboard) with the cursor displayed over it when the stylus approaches within a set predetermined distance of the proximity sensing input surface. The proximity sensing input surface detects the position of the stylus over the proximity sensing input surface when the stylus is within the set predetermined distance. As the user moves the pointing device over the proximity sensing input surface, the cursor moves correspondingly. The digital keyboard 28 can be displayed directly beneath the stylus in some embodiments or, for other embodiments, remote from the stylus. When the stylus is moved away from the proximity sensing input surface further than the set predetermined distance, the data entry system 26 is programmed to hide (or clear) the digital keyboard 28 from the graphical user interface 34. This variation enables the entire screen to be used to display text while the digital keyboard 28 is hidden. This variation also avoids screen clutter by displaying the digital keyboard 28 only when the stylus is found to be within the set predetermined distance of the proximity sensing input surface. At the same time, the user can quickly and intuitively return to adding to or deleting from the text using the digital keyboard 28 by bringing the stylus within the set predetermined distance of the proximity sensitive input surface. Thus, the digital keyboard 28 is displayed when the user's hand controlling the stylus (the "typing hand") is placed in a natural position for continuing text and data entry. The location where the digital keyboard 28 is displayed on the graphical user interface 34 may be near and possibly follow the line of text under construction by the user, so as to facilitate the eye following the digital keyboard 28 and the entered text simultaneously. In another variation, the digital keyboard 28 can be displayed in the same location as the stylus. In another variation, the digital keyboard 28 is programmed to be displayed just below or above the line of text that the user is creating or editing on a personal computing device. These variations also allow the user to view the digital keyboard 28 and the text simultaneously.

As an alternative to the above variation, if the user wishes to use the stylus (or pen or finger) to reposition the cursor within previously typed text, the data entry system 26 may be programmed to allow for the cursor to be repositioned within previously typed text with the stylus while the stylus is within the minimum distance, provided the stylus is detected as approaching the proximity sensing input surface from a particular side of the input surface (for example, the right side of the proximity sensing input surface). Once the cursor was repositioned, the user could then approach the proximity sensing input surface from another direction (for example, from above) to trigger the display of the digital keyboard 28 to assist with further text entry and modification.

In the first embodiment, the data entry system 26 is application independent and communicates with applications via an API. In an alternative embodiment, the data entry system 26 may be embedded in an application.

It will be appreciated that many of the aspects of the present invention may be applied to several types of digital keyboards and keyboard layouts, including traditional keyboard layouts, and rectangular keyboard layouts. It will also be appreciated that the digital keyboard may contain other symbols that could encode a language. One example of this would be a digital keyboard that contains regions representing the strokes used in writing an oriental language. The user would select the strokes by pointing to them, and the characters would be constructed from the strokes.

Although this invention has been described with reference to illustrative and preferred embodiments of carrying out the invention, this description is not to be construed in a limiting sense. Various modifications of form, arrangement of parts, steps, details and order of operations of the embodiments illustrated, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to this description. It is therefore contemplated that the appended claims will cover such modifications and embodiments as fall within the true scope of the invention.

Join the InvestorsHub Community

Register for free to join our community of investors and share your ideas. You will also get access to streaming quotes, interactive charts, trades, portfolio, live options flow and more tools.