FIELD OF THE INVENTIONThis invention relates to the field of information entry in electronic devices, and more specifically to a mechanism which is both efficient and intuitive to the user for entering information in a reduced keypad.[0001]
BACKGROUND OF THE INVENTIONThe dramatic increase of popularity of the Internet has led to a corresponding dramatic rise in the popularity of textual communications such as e-mail and instant messaging. Increasingly, browsing of the World Wide Web of the Internet and textual communications are being performing using reduced keypads such as those found on mobile telephones.[0002]
Multi-tap systems provide usable but less than convenient text entry functionality for users of the Roman or similar alphabet. Briefly, multi-tap systems determine a number of repeated presses of a key to disambiguate multiple letters associated with a single key. For example, pressing the “2” key once represents the letter “a;” pressing the “2” key twice represents the letter “b;” pressing the “2” key thrice represents the letter “c;” and pressing the “2” key four (4) times represents the numeral “2.” The number of presses of a particular key is typically delimited with a brief pause. While feasible, entering textual data of the Roman alphabet using multi-tap is cumbersome and time-consuming.[0003]
Some attempts have been made to use predictive interpretation of key presses to disambiguate multiple written symbols associated with individual keys. Such predictive interpretation is described by Zi Corporation on the World Wide Web and in U.S. Pat. No. 5,109,352 to Robert B. O'Dell (hereinafter the O'Dell Patent). Predictive interpretation is generally effective and greatly simplifies text input using reduced keypads with very large collections of written symbols. However, predictive interpretation has difficulty with words used in proper nouns, slang, and neology as such words might not be represented in a predictive database.[0004]
Despite its great efficiency, predictive interpretation of key presses for disambiguation provides a somewhat less than intuitive user experience. In particular, predictive interpretation lacks accuracy until a few characters have been specified. The following example is illustrative.[0005]
Consider that a user is specifying the word “forest” using a numeric telephone keypad. In predictive interpretation, the user presses the following sequence of keys: 3-6-7-3-7-8. It should be appreciated that entering “forest” using multi-tap is significantly more cumbersome, pressing 3-3-3-6-6-6-7-7-7-3-3-7-7-7-7-8. Entry of text in which two or more consecutive letters are presented by the same key is exacerbated by the need to pause for a period of time between specifying each such letter to delimit the respective letter. In predictive interpretation, pressing “3” by the user does not necessarily interpret and display “f” as the indicated letter. Instead, an “e” or a “d” could be displayed to the user as the interpretation of the pressing of the “3” key. In some predictive interpretation implementations, the entire predicted word is displayed to the user. Since numerous words begin with any of the letters d, e, or f, it is rather common that the predicted word is not what the user intends to enter. Thus, as the user presses the “3” key to begin spelling “forest,” an entirely different word such as “don't” can be displayed as a predicted word.[0006]
As the user presses the second key in spelling “forest,” namely, the “6” key, some word other than “forest” can continue to be displayed as the predicted word. What can be even more confusing to the user is that the predict word can change suddenly and dramatically. For example, pressing the “6” key can change the predicted word from “don't” to “eminently”—both of which are spelled beginning with the “3” key followed immediately by the “6” key—depending upon frequency of usage of those respective words. To obtain full efficiency of predictive interpretation systems, the user continues with the remainder of the sequence—finishing with 7-3-7-8. Once the full sequence is entered, only one word—or just a few words—match the entered sequence. However, until that point is reached, the user is required to place faith and trust that the predictive interpretation will eventually arrive at the correct interpretation notwithstanding the various displayed incorrect interpretations early in the spelling of the desired word.[0007]
What is needed is an improved mechanism for efficiently disambiguating among multiple symbols associated with individual keys of a reduced keypad while continuing to provide accurate and reassuring feedback to the user.[0008]
SUMMARY OF THE INVENTIONIn accordance with the present invention, display of results of predictive interpretation of key presses is postponed for a period of time such that a user entering multiple characters is not interrupted with repeated guesses as to what the user is intending to enter. Specifically, predictive analysis begins immediately following pressing of a key by the user, but results of such analysis are not displayed until at least a predetermined amount of time, e.g., 0.5 seconds, has elapsed since the last key press by the user. Accordingly, the user's experience in entering data is substantially enhanced.[0009]
It is helpful to consider the illustrative example of specifying “deforestation” using a reduced keypad. In accordance with the present invention, the user specifies “defo” unambiguously. During the entry of these first four characters, the user does not pause longer than the predetermined period of time. Accordingly, the user does not see any predicted candidates for the intended data. While predictive analysis was performed immediately following specification of each character, no results of such analysis were ever displayed to interrupt or confuse the user.[0010]
After specifying “defo,” the user pauses for at least the predetermined period of time. The user is most likely to pause if the user becomes somewhat confused as to which key to press next or if the user has determined that a sufficient number of characters have been specified that predictive analysis can produce accurate results. In either case, presentation of predicted candidates of the user's intended data is a welcome event. Since the user has paused for at least the predetermined amount of time, results of predictive analysis are presented to the user.[0011]
It is also advantageous that the user does not wait indefinitely for results of predictive analysis. Therefore, if results of predictive analysis are not available by no less than a second predetermined amount of time from the last key press, e.g., 2.0 seconds, no predicted candidates of the user's intended data are presented to the user. It is preferred that some characteristic of the display is changed to indicate to the user that predicted candidates are not forthcoming. For example, a blinking cursor can indicate that predictive analysis is under way while a transition from a blinking cursor to a solid cursor indicates that predictive candidates are not available.[0012]
In addition, the availability of predictive candidates can be indicated to the user, either immediately or upon elapsing of the predetermined amount of time. The user can request display of any available predicted candidates by making a user input gesture so indicating. For example, a word being entered by the user can be highlighted, e.g., with a dotted underline, to indicate that predicted candidates for completion of the word are available and a soft key can be labeled to indicate that pressing the soft key causes display of available predicted candidates. Thus, display of results of predictive analysis of user input data can be explicitly requested by the user.[0013]
To ensure that results of predictive analysis are thorough and complete prior to presentation to the user, such results can be considered available only when resources for predicted candidates have been thoroughly and completely processed. Alternatively, partial results of predictive analysis can be considered available while predictive analysis continues and adds to the already available partial results until processing is terminated at the elapsing of the second predetermined amount of time from the last key press.[0014]
In addition, the same advantages can be realized on full-size keyboards. Some word processors—such as StarOffice from Sun Microsystems of Palo Alto, Calif., and OpenOffice from the OpenOffice.org community of which Sun Microsystems is a member—include a word completion feature which can present predictive candidates to the user as the user types a partial word. By only displaying predicted candidates to the user when the user has paused for a predetermined amount of time, such word processors would not quickly flash predicted candidates to the user as the user continues to type, thereby avoiding a somewhat annoying experience for the user.[0015]
These advantages are also applicable to non-textual data. For example, predicted candidates of contact records, images, sounds, and data files can be presented to the user without interrupting the user by waiting for a predetermined amount of time from the last user input gesture, e.g., key press, before presenting such candidates. In some contexts, multiple data types can be active and it is possible that the user partially specifies a number of data records of more than one of the active data types. In this case, the user is presented with representations of each data type, e.g., icons, from which the user selects an intended data type. Then, predicted candidates of the selected data type are presented to the user for selection.[0016]
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 shows a mobile telephone which is used for textual communication.[0017]
FIG. 2 shows a diagram of a timeline of information entry in a mobile telephone.[0018]
FIG. 3 shows a block diagram of the mobile telephone which is used for textual communication.[0019]
FIG. 4 shows a logic flow diagram of predictive analysis of input text.[0020]
FIG. 5 shows a logic flow diagram of managing user input in predictive analysis of input text.[0021]
FIG. 6 shows a logic flow diagram of managing time-outs in predictive analysis of input text.[0022]
FIG. 7 shows a logic flow diagram of managing a predictive analysis result in predictive analysis of input text.[0023]
FIG. 8 shows a logic flow diagram of predictive analysis of input text.[0024]
FIG. 9 shows a logic flow diagram of presenting predictive results for selection by a user.[0025]
FIG. 10 shows a block diagram of a predictive database.[0026]
FIGS.[0027]11-14 show a display of mobile telephone presenting predictive results and selection by a user.
FIG. 15 shows a mobile telephone displaying a message in which a word is highlighted with a dotted underline to indicate the predicted candidates are available to the user in accordance with the present invention.[0028]
FIG. 16 shows a mobile telephone displaying a message in which predicted candidates for multiple data types are available to the user in accordance with the present invention.[0029]
DETAILED DESCRIPTIONIn accordance with the present invention, display of results of predictive interpretation of user input gestures is postponed for an interval of time. The user is permitted to continue entry of data without interruption during the interval of time. The user is therefore not distracted while entering such data. Predicted candidates are only displayed to the user after a pause in user input gestures of at least a predetermined minimum duration. Such a pause is presumed to indicate that the user is either puzzled or intentionally awaiting predicted candidates.[0030]
FIG. 1 shows a[0031]mobile telephone100 which is used for textual communication. For example,mobile telephone100 can be used to send and receive textual messages and/or can be used to browse the ubiquitous World Wide Web according to the known and standard Wireless Application Protocol (WAP).Mobile telephone100 can also be used, in this illustrative embodiment, to send text messages according to the currently available and known Short Message Service (SMS). Of course, other types of devices with reduced keypads are used to enter data for purposes other than communications. Text entry inmobile telephone100 is merely an illustrative embodiment.Mobile telephone100 includes akeypad102 which includes bothcommand keys104 anddata input keys106. In addition,mobile telephone100 includes adisplay screen108 for display of text and/or graphical information.Mobile telephone100 also includes amicrophone110 for receiving audio signals and aspeaker112 for presenting audio signals to a user.
[0032]Data input keys106, which are sometimes referred to herein collectively asnumeric keypad106, are arranged in the typical telephone keypad arrangement as shown. Whilenumeric keypad106 is described herein as an illustrative example of a reduced keypad, it should be appreciated that the principles of the present invention are applicable to other reduced keypads. As used herein, a reduced keypad is a keypad in which one or more keys can each be used to enter one of a group of two of more symbols. For example, the letters “a,” “b,” and “c” are associated with, and specified by a user pressing, the “2” key ofnumeric keypad106.
FIG. 2 shows a timing diagram[0033]200 which illustrates the display of predicted candidates resulting from predictive analysis in accordance with the present invention.Time202 represents a time at which the user has most recently pressed any ofdata input keys106. Untiltime206, i.e., duringtime interval204, display of any predicted candidates for text intended to be entered by the user is suppressed. If the user presses any ofdata input keys106 duringtime interval204, the user sees no predicted results, and timing diagram200 is reset totime202. Accordingly, the user can continue entering text in a conventional manner, e.g., using an unambiguous text entry mechanism such as multi-tap, without interruption as long as the user does not pause for the entire duration oftime interval204.
However, if the user has paused for the duration of[0034]time interval204, i.e., no key press is detected attime206 relative to the most recent key press, display of predicted candidates resulting from predictive analysis is enabled attime206. A few things are worth noting at this point. First, predictive analysis begins immediately upon pressing of any ofdata input keys106, i.e., attime202. Second, it is possible that predictive analysis completes prior totime206. If so, presentation of the resulting predicted candidates to the user is suppressed duringtime interval206. However, availability of predicted candidates can be indicated to the user in a preferably subtle and non-disruptive manner. Third, it is also possible that predictive analysis does not complete bytime206. In this case, predictive analysis continues. In this illustrative embodiment,display108 is modified attime206 if predictive analysis continues. For example, the cursor can change from a steady state to a blinking state. Such notifies the user thatmobile telephone100 is analyzing data entered by the user thus far to predict a larger portion of data intended by the user. For example, given a few letters entered by the user, a blinking cursor can indicate to the user thatmobile telephone100 is processing those letters to predict an intended word or phrase.
Predicted candidates can also be made available to the user prior to completion of predictive analysis. For example, such partial results can be indicated to the user as available prior to[0035]time206 and can be presented to the user while predictive analysis continues duringtime interval208.
If predictive analysis produces one or more predicted candidates for the data intended by the user, those predicted candidates are presented to the user for browsing and selection. In this illustrative embodiment, the user uses[0036]command keys104 to browse among two or more predicted candidates displayed indisplay108 and to select as predicted candidate as the intended data. For example, if the predicted candidates represent words and/or phrases of a text message, selecting a candidate causes the predicted word or phrase to be included in a message which is currently being composed by the user. The user is also permitted to ignore the displayed predicted candidates and to continue usingdata input keys106 to enter data. Pressing any ofdata input keys106 duringtime interval208, regardless of whether predicted candidates are displayed indisplay108, causes timing diagram to reset attime202.
Since all good things must come to an end, predictive analysis is only permitted to continue for a limited amount of time in this illustrative embodiment. Accordingly, predictive analysis terminates at[0037]time210, i.e., at the end oftime interval208. If predictive analysis has not produced predicted candidates bytime210, no predicted candidates are presented to the user. In this illustrative embodiment,display108 is again modified to indicate to the user that predictive analysis terminated without producing useful predicted candidates, e.g., by changing the cursor from a blinking state back to a steady state. The user therefore does not wait endlessly for predictive analysis if no results are forthcoming. In this illustrative embodiment,time210 is two (2) seconds fromtime202. In another embodiment,time210 does not exist or is set to such a large amount of time that predictive analysis doesn't terminate during data entry by the user. The user can always terminate predictive analysis, even if such analysis goes on for a considerable amount of time, by continuing to enter data by pressing any ofdata input keys106.
After[0038]time210, the user continues to enter data normally, i.e., without the assistance of predictive analysis. Such can include pressing any ofdata input keys106 to continue specifying a character or pressing one or more ofcontrol keys104 to indicate that a complete unit, e.g., a word or phrase, has been successfully specified. In the former case, pressing any ofdata input keys106 restarts the behavior ofmobile telephone100 represented in timing diagram200. In particular, pressing any ofdata input keys106 subsequent totime210 resets attime202 such that predictive candidates are presented to the user after a subsequent occurrence oftime206, i.e., in a subsequent instance of timing diagram200.
The result of displaying predicted candidates in the manner described in conjunction with timing diagram[0039]200 is that predictive analysis of data entry in reduced keypads is much more comfortable and palatable to the user. Specifically, the user continues to enter data at a reasonable pace without interruption so long as the user does not pause for the duration of time-interval204. At some point in time, the user may be confused as to which key to press next or may believe that sufficient data has been entered such that predictive analysis can make a very accurate guess as to the entire word, phrase, or data element intended by the user. Accordingly, the user pauses for the duration of time-interval204 and predicted candidates are displayed aftertime206 to the user for browsing and selection. If the user was confused, the predicted candidates can be very helpful. If the user was hoping to see predicted candidates, thenmobile telephone100 behaves exactly as the user intends. In either case, presentation of the predicted candidates is a positive experience for the user and not at all annoying.
Some elements of[0040]mobile telephone100 are shown in diagrammatic form in FIG. 3.Mobile telephone100 includes amicroprocessor302 which retrieves data and/or instructions frommemory304 and executes retrieved instructions in a conventional manner.
[0041]Microprocessor302 andmemory304 are connected to one another through aninterconnect306 which is a bus in this illustrative embodiment.Interconnect306 is also connected to one ormore input devices308, one ormore output devices310, andnetwork access circuitry312.Input devices308 include, for example, keypad102 (FIG. 1) andmicrophone110. In alternative embodiments, input devices308 (FIG. 3) can include other types of user input devices such as touch-sensitive screens, for example.Output devices310 include display108 (FIG. 1), which is a liquid crystal display (LCD) in this illustrative embodiment, andspeaker112 for playing audio received bymobile telephone100 and a second speaker for playing ring signals.Input devices308 andoutput devices310 can also collectively include a conventional headset jack for supporting voice communication through a convention headset.Network access circuitry312 includes a transceiver and an antenna for conducting data and/or voice communication through a network.
Call[0042]logic320 includes a collection of instructions and data which define the behavior ofmobile telephone100 in communicating throughnetwork access circuitry312 in a conventional manner.Dial logic322 includes a collection of instructions and data which define the behavior ofmobile telephone100 in establishing communication throughnetwork access circuitry312 in a conventional manner.Text communication logic324 includes a collection of instructions and data which define the behavior ofmobile telephone100 in sending and receiving text messages throughnetwork access circuitry312 in a conventional manner.
[0043]Text input logic326 includes a collection of instructions and data which define the behavior ofmobile telephone100 in accepting textual data from a user. Such text entered by the user can be sent to another throughtext communication logic324 or can be stored as a name of the owner ofmobile telephone100 or as a textual name to be associated with a stored telephone number. As described above,text input logic326 can be used for a wide variety of applications other than text messaging between wireless devices.Predictive database328 stores data which is used to predict text intended by the user according to pressed keys ofinput devices308 in a manner described more completely below.Predictive database328 is shown in greater detail as block diagram328 (FIG. 10).
Logic flow diagram[0044]400 (FIG. 4) illustrates behavior of the mobile telephone100 (FIG. 3) according totext input logic326 of this illustrative embodiment. Instep402, the text input logic sets asynchronous interrupt traps for a number of events such as receiving user input, receiving predictive analysis results, and expiration of a timer.
In[0045]step404, text input logic326 (FIG. 3) receives a character entered by the user by use of data input keys106 (FIG. 1). In this illustrative embodiment, the user enters characters using conventional multi-tap techniques. Receipt of a character instep404 corresponds to thebeginning time202 of the timeline200 (FIG. 2).
In[0046]step406, text input logic326 (FIG. 3) begins predictive analysis. Once begun,text input logic326 performs predictive analysis concurrently with the steps of logic flow diagram400. In predictive analysis,text input logic326 collects data previously entered by the user and predicts therefrom one or more additional characters, whole or partial words, and/or phrases intended by the user.
[0047]Text input logic326 performs predictive analysis for the Chinese language in generally the manner described in the O'Dell Patent and that description is incorporated herein by reference. Predictive analysis can be performed in any of a number of ways for various languages. Generally, a dictionary stores a large collection of words and/or phrases representing the most likely things the user is expected to enter. As the user enters data, those words and/or phrases stored in the dictionary which match the entered data become fewer and fewer in number. Any such matching words and/or phrases are ranked accordingly to frequency of use such that the first element of the list of matching words and phrases is the most frequently used word or phrase of the list. In this illustrative embodiment,text input logic326 expects words of the English language, andpredictive data328 stores words of the English language. In one embodiment, predictive analysis includes using relative frequency of appearance of bigrams, tri-grams, etc. to respectively predict second, third, etc. characters in the manner described in copending U.S. patent application Ser. No. 10, by Roland Williams and Robert O'Dell entitled “Text Entry Mechanism for Small Keypads” dated October ______, 2002 and that description is incorporated herein by reference.
In one embodiment, predicted candidates resulting from predictive analysis are only made available when predictive analysis completes. In an alternative embodiment, predictive analysis can make partial results available, generating one or more events to convey one or more corresponding parts of the complete set of results.[0048]
In step[0049]408 (FIG. 4), text input logic326 (FIG. 3) sets a timer to expire at time206 (FIG. 2). Accordingly, text input logic326 (FIG. 3) is initially set to trap expiration oftime interval204. As shown, the relative order ofsteps406 and408 is unimportant and, in fact, can be performed concurrently.
In[0050]step410,text input logic326 traps an asynchronous event. Asynchronous event traps are well-known and are not described further herein. Instep412, text input logic326 (FIG. 3) determines the type of asynchronous event trapped instep410. As described above, three types of asynchronous events are trapped in this illustrative embodiment: receiving user input, receiving predictive analysis results, and expiration of a timer. If the trapped asynchronous event is receipt of user input, i.e., detected pressing of any ofdata input keys106, processing transfers to step418. If the trapped asynchronous event is completion of predictive analysis as started instep406, processing transfers to step416. If the trapped asynchronous event is expiration of a timer, processing transfers to step414.
Logic flow diagram[0051]418 (FIG. 5) showsstep418 in greater detail. Instep502, text input logic326 (FIG. 3) terminates predictive analysis that began in step406 (FIG. 4). Afterstep502, processing according to logic flow diagram418, and therefore step418 (FIG. 4) completes. Afterstep418, processing bytext input logic418 transfers to step404 in which the character entered by the user is received and thus to step408 in which timers are reset such that timing diagram200 (FIG. 2) is reset attime202.
Step[0052]416 (FIG. 4), in whichtext input logic326 processes a trapped asynchronous timeout event, is shown in greater detail as logic flow diagram416 (FIG. 7). Operations of timers and trapping asynchronous timeouts thereof are well known and are not described further herein.
In[0053]step702, text input logic326 (FIG. 3) determines if the timer is currently set to expire at time206 (FIG. 2). If so,time206 has not yet been reached and presentation of predictive analysis results is premature. However, iftime206 has already been reached, the timer is set to expire attime210 as described more completely below. Therefore, if the timer is not set to expire attime206, text input logic326 (FIG. 3) determines that presentation of results of predictive analysis is now permitted and presents such results instep704.
The results of predictive analysis can be presented to the user in various ways. In one embodiment, a list of predicted candidates, which are sorted in descending order of frequency of usage, is presented to the user and the user is free to select from the list, e.g., by using[0054]control keys104, rather than continuing to specify individual characters, e.g., by usingdata input keys106. In an alternative embodiment, the most frequently used predicted candidate is superimposed over text currently entered by the user. Pressing a selected one ofcontrol keys104, the user can accept the superimposed predicted candidate. By pressing selected others ofcontrol keys104, the user can scroll up and/or down a list of predicted candidates sorted by frequency of usage to switch which of the predicted candidates is superimposed over the text entered so far by user.
In step[0055]706 (FIG. 7), text input logic326 (FIG. 3) clears the timer such that termination of time-interval208 is not trapped since termination of predictive analysis is no longer necessary. In an alternative embodiment in which partial results of predictive analysis are made available to the user,step706 is skipped such thattime210 is recognized to enable termination of predictive analysis attime210. In this alternative embodiment,text input logic326 presents predicted candidates to the user instep704 while predictive analysis continues if it has not yet completed. More results of predictive analysis can be made available to the user in subsequent performances of logic flow diagram416 as such results become available during time-interval208.
Through[0056]test step702, text input logic326 (FIG. 3) ensures thattime206 has been reached prior to presentation of predicted candidates to the user. In particular, if the timer is set to expire attime206,time206 has not yet been reached and step704 is skipped. Thus, according to logic flow diagram416, iftime206 has been reached when results of predictive analysis are available, such results are displayed for the user; and such results are not displayed iftime206 has not yet been reached.
In the embodiment shown in FIG. 7, the availability of predicted candidates is indicated to the use in[0057]step708 despite the fact thattime206 has not yet been reached. It is preferred that such indication be relatively subtle so as to not disrupt data entry by the user. An illustrative example of a relatively subtle indication is shown in FIG. 15. A dottedunderline1502 for the partial word, “resc,” subtly indicates to the user thatmobile telephone100 has predicted candidates for completion of that partial word.Exclamation point1504 is associated withsoft button1506 to suggest to the user that pressingsoft button1506 will allow the user to review and select from the predicted candidates. A soft button is a button whose function is dynamic. A soft button is typically associated with a dynamic function indicator such as the adjacent portion ofdisplay108 in whichexclamation point1504 is displayed.
Step[0058]414 (FIG. 4), in which text input logic326 (FIG. 3) handles asynchronous timer expiration, is shown in greater detail as logic flow diagram414 (FIG. 6). Intest step602, text input logic326 (FIG. 3) determines whether the timer is set to expire at time206 (FIG. 2) in the manner described above with respect to test step702 (FIG. 7). If the timer is set to expire attime206, processing transfers to teststep604. Conversely, if the time is set to expire at another time, e.g.,time210, processing transfers to step612.
Initially, the timer is set to expire at[0059]time206, so processing transfers to teststep604 in which text input logic326 (FIG. 3) determines whether results of predictive analysis have been received. If so, processing transfers to step606 in which the results are presented to the user in the manner described above. Conversely, if results of predictive analysis are not yet available, processing transfers fromtest step604 to step608.
In[0060]step608, text input logic326 (FIG. 3) changes a prompt or another aspect ofdisplay108. Such informs the user thatmobile telephone100 is actively processing an implicit request to predict the data intended by the user. In this illustrative embodiment, text input logic236 changes a cursor withindisplay108 from a static state to a blinking state instep608. From the user's perspective,mobile telephone100 has been awaiting data input duringtime interval204 as indicated by a static cursor or similar aspect of information displayed indisplay108. Unbeknownst to the user,mobile telephone100 has been actively working at predicting intended data as begun instep406. Attime206, a timer interrupt is handled instep414 and, if no predictive analysis results are available at that time, a change in a passive state to an active state is indicated indisplay108, e.g., by a blinking cursor. Thus, attime206, the user perceives thatmobile telephone100 is actively processing data entered so far. This perception is reassuring to a user who has paused for the duration oftime interval204 either as a result of uncertainty as to how to continue data entry or as a result of intentionally triggering predictive analysis.
In step[0061]610 (FIG. 6), text input logic326 (FIG. 3) sets the timer to expire at time210 (FIG. 2) since the next time to trap aftertime206 istime210.
If text input logic[0062]326 (FIG. 3) determines intest step602 that the timer is set to expire attime210, e.g., by a previous performance ofstep610, processing transfers to step612. Instep612, text input logic326 (FIG. 3) terminates predictive analysis. It should be noted thatstep612 is only reached attime210 when no results of predictive analysis are available or, alternatively, if predictive analysis has not completed bytime210 after presentation of partial predictive analysis results. Instep614, text input logic326 (FIG. 3) clears the timer so no further timeout events will occur. Instep616, text input logic326 (FIG. 3) changes the prompt, or another aspect ofdisplay108, to indicate to the user a transition from an active state back to a passive state. Such communicates to the user that no predicted candidates of intended text are forthcoming.
After any of[0063]steps606,610, or616, processing according to logic flow diagram414, and therefore step414 (FIG. 4), completes. After either of steps414-416, processing according to logic flow diagram400 transfers to step410 in which the next asynchronous interrupt is trapped.
Text input logic[0064]326 (FIG. 3) handles an asynchronous interrupt trap of receiving user input by managing user input instep418. Step418 is shown more completely as logic flow diagram418 (FIG. 5). Instep502, text input logic326 (FIG. 3) terminates predictive analysis started in step406 (FIG. 4). Afterstep502, processing according to step418 completes and processing transfers to step404. Unlike steps414-416, after which processing transfers to step410 in which another asynchronous event is trapped, processing transfers fromstep418 to step404 to interpret the received data as a character of text input and the overall processing of logic flow diagram400, as represented in timing diagram200, restarts.
Logic flow diagrams of FIGS.[0065]4-7 are shown collectively for the reader's convenience in FIG. 8. FIGS.11-14 illustrate an example of usage ofmobile telephone100 in accordance with the present invention. FIG. 11 shows display108 of mobile telephone100 (FIG. 1). User specification of text according to the present invention is described in the context of an illustrative example of the user specifying the word, “forward.”
[0066]Display108 is divided logically, i.e., by text input logic326 (FIG. 3), into an upper portion—window108B (FIG. 11)—and a lower portion—window108A.Window108A displays a current word, i.e., the word currently being specified by the user.Window108B displays previously specified words which have been confirmed by the user and therefore appended to a current message which can include multiple words during the first time-interval204 (FIG. 2). In an alternative embodiment,display108 is not divided in this matter and individual characters specified by the user are displayed in the context of a message as entered by the user.
In this illustrative example, the user specifies the letter “f” using multi-tap user interface techniques, e.g., by pressing the “3” key three (3) times and pausing to confirm the specification of the letter “f.” The results are shown in FIG. 11 in which the letter “f” is displayed in[0067]window108A. In this illustrative example, the user has not previously specified any words sowindow108B is empty.
In logic flow diagram[0068]400 as shown in FIG. 8, text input logic326 (FIG. 3) receives signals representing the letter “f” as entered by the user instep404 and displays the letter “f” inwindow108A (FIG. 11). Insteps406 and408,text input logic326 respectively begins predictive analysis and sets a timer to expire attime206. Instep410,text input logic326 traps the next asynchronous event. In this illustrative example, the user presses the “6” key ofnumeric keypad106 prior to time206 (FIG. 2). However, it is possible that predictive analysis completes prior to pressing of the “6” key by the user.
If predictive analysis does not complete prior to pressing of the “6” key by the user, the first asynchronous event trapped by[0069]text input logic326 is detected input and processing accordingly transfers to step502 in which any predictive analysis is terminated. Fromstep502, processing transfers to step404 in which the input signals are interpreted as specification of one of the letters associated with the “6” key, namely, “m,” “n,” or “o.” Once any ofdata input keys106 is pressed by the user, multi-tap techniques are employed to determine which letter is intended by the user. Thus, in this illustrative embodiment, the user presses the “6” key thrice without a significant pause to indicate the letter “o” is intended.
Suppose, however, for illustration purposes that predictive analysis completes prior to pressing the “6” key by the user. In this scenario, the first trapped asynchronous event is the completion of predictive analysis by[0070]text input logic326. Accordingly, processing transfers to step test step702 (FIG. 8). Sincetime206 has not yet been reached, the timer is set to expire attime206 and processing transfers fromtest step702 to step410, bypassingstep704 such that results of predictive analysis are not displayed inwindow108A (FIG. 12). Instep410, the next asynchronous event is trapped.
In this illustrative example, the next asynchronous event is detection of input signals prior to[0071]time206. Thus, processing transfers to step502 in which the data input signals are processed in the manner described above. As a result, no predictive results are presented despite completion of predictive analysis. Whether predictive analysis completes prior to user input or subsequently, results of predictive analysis are not shown prior totime206.
Continuing in this illustrative embodiment, the user enters another character resulting in the view shown in FIG. 13. Subsequent to receipt of the letter “r” as shown, the user does not press any keys of[0072]mobile telephone100 prior totime206. Therefore, a number of possible sequences of events are possible. In one sequence, predictive analysis results are available prior totime206. In another sequence of events, predictive analysis results become available aftertime206 and prior totime210. In a third sequence of events, predictive analysis results are not available attime210.
In the first sequence of events, predictive analysis results are available prior to[0073]time206. The first event trapped is completion of predictive analysis and, sincetime206 has not yet been reached, processing transfers throughtest step702 to step410 in the manner described above. The second event trapped is a timeout event attime206 and processing transfers fromstep410 to teststep602. Intest step602,text input logic326 determines whether the timer is set to expire attime206 or attime210. Since the timer is set to expired attime206, processing transfers to teststep604 and therefrom to step606 since predictive analysis results are available. Instep606, testinput logic326 presents predicted candidates for selection by the user in the manner described above. Such is shown in FIG. 14 in whichtext input logic326 has predicted that the user intends to enter the word “forward.” The user is free to select this predicted word and add it to text inwindow108B in the manner described above. If the user does so, the next event trapped instep410 is user input and processing transfers to step404.
In the second sequence of events, predictive analysis results become available after[0074]time206. Accordingly, the first event trapped is a timeout attime206. Processing transfers fromstep410 to teststep602. Since the timer is set to expire attime206, processing transfers to teststep604. Since no predictive analysis results are available, i.e., predictive analysis continues, processing transfers to step608 in whichtext input logic326 changes the prompt or another aspect ofdisplay108 to indicate a transition from a passive state to an active state. Instep610,text input logic326 sets the timer to expire attime210 such that the next timer-related event to be trapped is expiration oftime interval208.
The next event to be trapped in[0075]step410 in this illustrative example is completion of predictive analysis. Accordingly, processing transfers to teststep702 and therethrough to step704 since the timer is now set to expire attime210. Instep704,text input logic326 presents results of predictive analysis to the user for selection and the timer is cleared instep706. Accordingly, the user can select from among the predicted candidates and the timer will no longer generate an asynchronous event which could interrupt browsing and selection of predicted candidates by the user.
In the third sequence of events, predictive analysis results are not available at[0076]time210. In the manner described above, the first event trapped is a timeout which causes processing to includesteps602,604,608, and610. Instep610, the timer is set to expire attime210. Since results of predictive analysis are not available attime210 in this illustrative sequence of events, the next event trapped atstep410 is another timeout event. Fromtest step602, processing transfers to step612 since the timer is set to expire attime210.
In[0077]step612,text input logic326 terminates predictive analysis. Instep614,text input logic326 clears the timer so no further timeout events occur until user input is detected, thereby causing another performance ofstep408. Instep616,text input logic326 changes the prompt or another aspect ofdisplay108 to indicate to the user a change from an active state to a passive state such that the user understands that predictive analysis results are not forthcoming.
The benefits of the system described above with respect to text entry are also applicable to specification of other types of data. For example, a user can enter data representing a file stored within[0078]mobile telephone100, a contact stored within a contacts database withinmobile telephone100, an image, or a sound. In some embodiments, the type of data which can be specified by the user is clear and unambiguous. In another embodiment, various contexts of data input are implemented and each context can have two or more valid data types. For example, in the context of composing a text message, valid types can include all those listed above, namely, filenames, contacts, images, and sounds. In the body of a text message, the user can identify a contact to (i) address the message to the contact or (ii) to attach a v-card representing identified contact information to the message. Similarly, specifying an image, a sound, or any other file stored inmobile telephone100 in the body of a message enables attachment of the corresponding file to the message. In addition, the user can enter ordinary words in the manner described above.
To support various types of data specified by a user,[0079]predictive database328 includes various databases1002-1012 (FIG. 10).File database1002 includes data specifying files stored withinmobile telephone100.Contacts database1004 includes data specifying contact information, e.g., telephone numbers, addresses, e-mail addresses, and various message service addresses, of individuals whom the user may wish to contact.Images database1006 includes data specifying information about various images stored withinmobile telephone100. Soundsdatabase1008 includes data specifying information about various sounds stored withinmobile telephone100, including ring tones, for example.
In addition,[0080]predictive database328 includes adictionary1010 of the English language such that text input logic326 (FIG. 3) can accurately predict words of the English language intended by the user during text input in the manner described above.Predictive database328 also includes (i) apersonal dictionary1012 which includes words specific to the user, i.e., proper nouns and slang frequently used by the user or stored in a contacts database used by the user and (ii) a usedwords dictionary1014 which specifies words previously entered by the user such that words entered by the user which are not represented withindictionary1010. Accordingly, text input logic326 (FIG. 3) can accurately predict non-standard words entered by the user, including slang terms, neologies, and proper nouns for example.Used words dictionary1014 is used in conjunction with databases1002-1012 to order predicted candidates according to frequency and/or recency of use by the user. Thus, predictive behavior adapts to the specific data entry habits of the specific user.
Index of[0081]remote data1014 includes references to data similar to data stored in databases1002-1012 and which is accessible through a network. For example, contact data can be retrieved from known and conventional LDAP WAP or web servers. Similarly, sounds such as ring tones and music in the known and ubiquitous MP3 format and be made available through wireless Internet servers and cataloged and referenced within index ofremote data1014.
[0082]Text input logic326 predicts data intended by the user when implementing multiple data types in the manner shown in logic flow diagram900 (FIG. 9).Loop step902 andnext step910 define a loop in which each of the databases1002-1014 which are valid in the current context. The context is determined by the type of task currently being performed bymobile telephone100. If the user is specifying the intended recipient of a text message, onlycontacts database1004 is valid. During composition of the body of a text message, all databases1002-1014 are valid. During each iteration of the loop of steps902-910, the particular database processed according to steps904-908 is referred to as the subject database.
In[0083]step904,text input logic326 identifies entries in the subject database which match one or more characters recently specified by the user. Instep906,text input logic326 identifies a graphical icon that is associated with the subject database. For example, a file can be associated with a file icon; an image can be associated with an image icon or a thumbnail of the image itself; a sound can be associated with a musical note icon; and a contact can be associated with an index card icon. Instep906,text input logic326 associates the graphical icon with a textual representation of each of the entries. Accordingly, subsequent presentation of any of the entries as results of predictive analysis, e.g., insteps606 or704, can cause the associate icon to be displayed in conjunction with the textual description. Thus, the user can readily determine the type of data item predicted bytext input logic326. For example, an associated icon can indicate to the user whether a predicted candidate whose textual description is “jack” is a contact, an image, a sound, or a word.
The result of processing according to logic flow diagram[0084]900 is shown in FIG. 16. Indisplay108, the word, “jack,” is highlighted with a dottedunderline1602 to indicate that predicted candidates are available for that word.Display108 also includes icons1604-1612, displayed in respective performances of step908 (FIG. 9), to indicate the various types of predicted candidates which are available for “jack” in the context shown in FIG. 16. Specifically, (i)icon1604 is a Rolodex® style card to represent contact information associated with “jack,” (ii)icon1606 is a camera to represent one or more graphical images associated with “jack,” (iii)icon1608 is a speaker to represent one or more sounds associated with “jack,” (iv)icon1610 is document icon to represent one or more data files associated with “jack,” and (v)icon1612 is a book to indicate one or more words which begin with “jack.” Thus, by usingcontrol keys104, the user can select from the various data types represented by icons1604-1620 to select the type of data indicated by the entered text, “jack.”
For example, the user can highlight and[0085]select icon1604 to indicate that “jack” refers to contact information, e.g., of a person. Upon such selection,mobile telephone100 allows the user to select from one or more contact records associated with “jack.”
Once such a record is selected, actions can be associated with contacts and can be initiated by the user. One such action can be to address the current message currently being composed and shown in[0086]display108 to the entity represented by the selected contact record. Another such action is to associate a v-card data item representing the selected contact record for attachment to the current message.
Other actions can be associated with other data types. Sounds in a message can be embedded in the message such that the sound plays when the message is displayed or can be attached as a sound data file. Images can be embedded in the message such that the image is a displayed component of the message itself or can be attached as an image data file. A data file can be attached to the message or the contents of the data file can be imported into the body of the message.[0087]
The above description is illustrative only and is not limiting. For example, while text messaging using a wireless telephone is described as an illustrative embodiment, it is appreciated that text entry in the manner described above is equally applicable to many other types of text entry. Wireless telephones use text entry for purposes other than messaging such as storing a name of the wireless telephone's owner and associating textual names or descriptions with stored telephone numbers. In addition, devices other than wireless telephones can be used for text messaging, such as two-way pagers and personal wireless e-mail devices. Personal Digital Assistants (PDAs) and compact personal information managers (PIMs) can utilize text entry in the manner described here to enter contact information and generally any type of data. Entertainment equipment such as DVD players, VCRs, etc. can use text entry in the manner described above for on-screen programming or in video games to enter names of high scoring players. Video cameras with little more than a remote control with a numeric keypad can be used to enter text for textual overlays over recorded video. Text entry in the manner described above can even be used for word processing or any data entry in a full-sized, fully-functional computer system.[0088]
Therefore, this description is merely illustrative, and the present invention is defined solely by the claims which follow and their full range of equivalents.[0089]