Dual script text entry and key highlighting function TECHNICAL FIELD This invention relates to dual-script text entry. BACKGROUND TO THE INVENTION
Text may be entered in to a computer device using a keypad. A QWERTY key pad includes a key for every letter of the Latin script, enabling words to be entered in
Engl ish as well as a number of other Latin script based languages. Mobile telephones can include a twelve-key keypad. Each key represents a number and several letters of the Latin script. For example, the 2-key also represents the letters
A, B and C. Predictive writing software enables a user to tap a key only once to enter a letter. The software determines a list of possible word combinations based on the keys a user has pressed.
SUMMARY OF EXAMPLES OF THE INVENTION
A first example of the present invention provides apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, working with the at least one processor, cause at least the following to be performed: receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith; matching said string of characters with a pre-stored list of character strings; and indicating which of said characters are available for a user to select to provide a next character of said matched character strings, wherein said indication includes highlighting said displayed characters which are next in any of said matched character strings.
A first example of the present invention provides apparatus comprising: means for: receiving a string of characters entered using a pl ural ity of keys or key
representations, each key or key representation having a plurality of characters displayed in association therewith; matching said string of characters with a pre- stored list of character strings; and indicating which of said characters are available for a user to select to provide a next character of said matched character strings, wherein said indication includes highlighting said displayed characters which are next in any of said matched character strings.
The character strings of pre-stored list may be words of a language.
The key representations may be displayed on a touch screen display.
The highlighted characters may be shown in a first colour, and the characters which are not highlighted shown in one or more colours that are different to said first colour.
Another example of the present invention provides a computing device comprising such apparatus. The computing device may further comprise a touch-screen display, adapted to act as an input device and a display. The computing device may be a mobile phone.
Another example of the present invention provides a method comprising: receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith; matching said string of characters with a pre-stored list of character strings; and indicating which of said characters are available for a user to select to provide a next character of said matched character strings, wherein said indication includes highlighting said displayed characters which are next in any of said matched character strings. The received string of characters may be entered using predictive text entry.
Another example of the present invention provides a computer-readable medium, having computer-readable instructions stored thereon for: receiving a string of characters entered using a plurality of keys or key representations, each key or key
representation having a plurality of characters displayed in association therewith; matching said string of characters with a pre-stored list of character strings; and indicating which of said characters are available for a user to select to provide a next character of said matched character strings, wherein said indication includes highlighting said displayed characters which are next in any of said matched character strings.
Another example of the present invention provides apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured to, working with the at least one processor, cause at least the following to be performed: receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith, said characters taken from at least two scripts; and accessing at least one list of pre- stored character strings, said stings including strings of characters in each of said at least two scripts; based on said at least one list, determine at least one of said pre- stored character strings that matches said received string of entered characters.
Another example of the present invention provides apparatus comprising means for: receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith, said characters taken from at least two scripts; and accessing at least one list of pre-stored character strings, said stings including strings of characters in each of said at least two scripts; based on said at least one list, determine at least one of said pre-stored character strings that matches said received string of entered characters.
Characters of said at least two scripts may be displayed on said keys or key representations.
Characters of said scripts which are available to complete a prestored character string may be highlighted on said keys or key representations.
Another example of the present invention provides a mobile phone comprising the above apparatus.
Another example of the present invention provides a method comprising: receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith, said characters taken from at least two scripts; and accessing at least one list of pre-stored character strings, said stings including strings of characters in each of said at least two scripts; based on said at least one list, determine at least one of said pre-stored character strings that matches said received string of entered characters.
The method may further comprise displaying characters of said at least two scripts on said keys or key representations.
Those characters of said scripts which are available to complete a prestored character string may be highlighted on said keys or key representations.
Another example of the present invention provides a computer-readable medium having computer-readable instructions stored thereon for receiving a string of characters entered using a plurality of keys or key representations, each key or key representation having a plurality of characters displayed in association therewith, said characters taken from at least two scripts; and
accessing at least one list of pre-stored character strings, said stings including strings of characters in each of said at least two scripts;
based on said at least one list, determine at least one of said pre-stored character strings that matches said received string of entered characters.
This summary provides examples of the invention which are not intended to be limiting on the scope of the invention. The features of the invention described above and recited in the claims may be combined in any su itable manner. The combinations described above and recited in the claims are not intended to limit the scope of the invention.
Features and advantages associated with the examples of the invention will be apparent from the following description of some examples of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Examples of the invention are hereinafter described with reference to the accompanying diagrams where:
Figure 1 is a mobile device in an example of the invention;
Figure 2 is a schematic diagram showing some components of the device shown in Figure 1 ;
Figure 3 is a functional diagram showing some components of the device shown in Figure 1 ;
Figure 4 is a further functional diagram showing some components of the device shown in Figure 1 ;
Figure 5 shows the mobile device of Figure 1 displaying a twelve key representation;
Figure 6 is a flow chart showing a method in an example of the invention; Figure 7 shows the mobile device of Figure 1 displaying a twelve key representation in which certain keys are greyed-out;
Figure 8 shows the mobile device of Figure 1 displaying a twelve key representation in which certain keys are greyed-out;
Figure 9 shows the mobile device of Figure 1 displaying a twelve key representation in which the key representations show two scripts;
Figure 10 is a further flow chart showing a method in an example of the invention;
Figure 11 shows the mobile device of Figure 1 displaying contacts in two different scripts; and
Figure 12 shows the mobile device of Figure 1 displaying a twelve key representation in which two scripts are used and certain characters are greyed-out.
DETAILED DESCRIPTION
A mobile device 101 in accordance with an example of the invention is shown in Figure 1 . The mobile device 101 comprises an outer casing 102, which includes an earphone 103 and a microphone 104. The mobile device 101 also includes a touchscreen display 105 which is an input device and a display. The touch-screen 105 enables a user to enter information into the mobile device 101 and instruct the mobile device to perform the various functions which it provides. For example, a user may enter a telephone number, or select another mobile device from a list stored on the mobile device 101 , as well as perform functions such as initiating a telephone call.
Figure 2 is a schematic diagram showing the components of the mobile device 101 . The components of the mobile device 101 include the earphone 103, the microphone 104, the touch-screen display 105. The mobile device 101 also includes a system bus 107 to which the components are connected and which allows the components to communicate with each other. Here, the components are shown to communicate via a single system bus 107. However, in practice the mobile device may include several buses to connect the various components. The device also includes an application processor 108, a baseband processor 109, memory 1 10, an earphone controller 1 11 , a microphone controller 112 and a touch-screen display controller 113. The application processor 108 is for running an operating system and user applications. The baseband processor 109 is for controlling a telephony stack. The device 101 also includes a mobile telephone radio 1 14 which is coupled to an antenna 115. The mobile device 101 is arranged to communicate, via radio 1 15, with a base station of a mobile phone network (not shown). The mobile device 101 also includes a storage device controller 116 which is connected to a storage device 117 which may be an internal hard drive or a removable storage device such as a flash memory card.
This description of the components of a mobile device is one example of the manner in which the components may be arranged . Many variations are possible to including different components and different arrangements of those components. The invention is not limited to any particular set of components nor to any particular combination of those components. Advances in computing device technology may
result in certain components being replaced by others which perform the same function. Such a device could also embody the invention.
The mobile device 101 includes an operating system (OS) which is stored in a Read Only Memory (ROM) portion of memory 1 10. The OS may be Symbian OS. The device also includes other software applications which may be stored in ROM or which may be stored in the storage device 1 17. The application processor 108 is arranged to execute instructions of the OS and of the applications. Execution of these instructions causes mobile device 101 to carry out particular functions by controlling the various hardware components of the device.
Figure 3 is a functional diagram showing the logical links between software and hardware components of the device 101 . The operating system 201 includes a kernel 202 and a middleware section 203. The kernel 202 is arranged to manage the mobile device's 101 hardware resources and communications between hardware and software stored on the device. The middleware 203 controls communication between applications running on the device and the system resources. The mobile device 101 has a number of applications 204 stored in memory 1 10 or storage device 117. These applications 204 may be part of the operating system 201 or may be third-party applications. Each of the applications may access computing resources through the middleware section 203. Figure 3 also shows hardware 205.
Figure 4 is a further functional diagram showing the logical links between software and hardware components of the device 101 . Figure 4 shows the touch-screen display 105 which is coupled to the touch-screen display controller 1 13. The controller 113 is coupled to a device driver 301 which may be provided as a software component of the operating system 201. The OS 201 also includes an input server 302 which is for processing inputs from the touch-screen display 105. The input server 302 is adapted to communicate with the device driver 301. The OS 201 also includes a window server 303 which controls access by the OS 201 and other applications to the display 105. For example, drawing may be cl ipped to an application's visible window. The window server 303 presents an interface to each client application.
The OS 201 also includes a text module 305. The text module 304 is adapted to interpret input signals from the input server 302 and determine what characters or numbers the user has input. The text module 304 also determines what to display on the display 105 based on user inputs. For example, if a user is pressing the touch-screen display 105 to enter a message, the text module 304 determines which letters the user has entered and causes those letters to be displayed on the touchscreen display 105. The text module 304 communicates with the window server via window server (WS) interface 305. The mobile device 101 also includes a character store 306. The character store 306 is for storing a script in accordance with a particular alphabet. The character store 306 is also used to store the words available to a particular language for the purposes of predictive text. In the present case, the store includes words of the English language. The text module 304 may also be adapted to perform a predictive writing function. The text module 304 is adapted to display various key pad representations on the touch-screen display 105 to enable a user to enter information in to the device. One representation may be a QWERTY-type keypad. Another representation may be a twelve-key mobile phone-type keypad. An example of such a representation is shown in Figure 5. Figure 5 shows the mobile device 101 , showing a twelve-key keypad representation 401 , on the display 105. The device 101 also shows search box 402 which is an area for displaying the text which has been input by a user. As can be seen, the text module 304 is arranged to display characters on each key representation. The twelve-key keypad representation 401 includes keys for numbers 0 to 9 as well as * and #. Each numerical key also acts as an input for letters of the alphabet. In Figure 5, the numerical keys represent letters of the alphabet in the following manner: 2: A-B-C; 3: D-E-F; 4: G-H-I; 5: J-K-L; 6: M-N-O; 7: P-Q-R-S; 8: T-U-V; 9: W-X-Y-Z.
The mobile device 101 is arranged to provide at least two modes of text input. Firstly, a user may input text by tapping the required key representation to select the required letter. For example, to select 'A', the 2-key is tapped once. To select, 'B', the 2-key is tapped two times. Secondly, the text module 305 is adapted to implement predictive text input, such as T9. Predictive text enables a user to press a key representing the required letter only once. Based on the string of keys pressed,
the text module 304 determines what possible words which could be formed, based on the words stored in the character store 306. The word options are then displayed via the window server 303, either automatically, or in response to a user action. For example, if the user wishes to enter the word 'based', they may press the key sequence 2-2-7-3-3. The display 105 displays the word 'based'. In addition, the text module 304 indicates on the display 105 that other words may be created with that key sequence. The user may press a key representation, for example the * key representation, in order to show the other words, which in this case are the words 'cared' and 'bared'. The order in which words are listed can either be alphabetical or based on a popularity index.
Text input can be used in a variety of situations. For example, text input can be used when writing an email or text message. Alternatively, text input can be used when searching a set of data. For example, the mobile device 101 may include an address book which includes a database of contacts. In the present example, the mobile device 101 includes an address book 307 and a contacts database 308. The address book communicates with the window server 303 via a WS interface 309. The contacts may be displayed as a list on the device display 105. The user is able to search the contacts by typing in the first few letters of a contacts name. For example, if the list only includes entries for Hogg and Hook beginning with 'H', then entering an 'H' would remove the other contact entries from view and leave Hogg and Hook. Entering an 'O' would not refine the list any further. Entering a 'G' would remove Hook and leave Hogg as the sole contact beginning H-O-G. One way of entering search strings in this case is with a twelve-key keypad representation and to use predictive text. The user then only has to press the required key once to select a particular letter. If the contact list contains Hogg and Hook but does not contain any entries beginning 'G' and T, then the user can press the 4-key once, and the list is restricted to the two entries beginning 'H'. Next the user may press 6 and then 4 to select O and G and only Hogg is shown.
This description of the software modules shown in Figure 4 is one example of the manner in which the components may be arranged. Many variations are possible to including different modules and different arrangements of those modules. The invention is not limited to any particular set of modules nor to any particular
combination of those modules. Advances in software may result in certain modules being replaced by others which perform the same function. A device including such modules could also embody the invention. The text module 304 is also arranged to provide a feedback to the user, via the display 105, regarding the character strings which may be entered. This is achieved by greying-out any characters which do not represent valid inputs. The process used to perform this mechanism will be described in connection with Figure 6. The device 101 stores a number of contacts in the contacts database 308, as noted above. A user may load the address book 307 by selecting an address book application from a menu of the user interface of the device 101. When a user loads the address book 307, the full list of address book contacts is displayed as a scrollable list (block 501 ). The text module 304 determines which characters are used as the first letters of the contacts. Any unused letters are greys-out (block 502). A user may then press any key representation which has a character on it which is not greyed-out (block 503). If a key representation is pressed which has no characters highlighted, no input is made. In the example shown in Figure 6, a user has pressed the 4 key, and the text module has displayed the only two contacts which begin with either 'G', 1H' or 'I'. In this case, Hogg and Hook are the only contacts beginning with 'G', 1H' or T. An 1H' is displayed in search box 402 (block 504) and the entries Hogg and Hook are shown in the list (block 505). The process then repeats itself. The letter 'O' is shown in black and all other letters are greyed- out (block 502). The first 1H' of Hogg and Hook is underlined . The only key representation which may be pressed in order to provide an input is the 6 key. If the user then presses key 6 (block 503), an 'O' is displayed in search box 402 (block 504) after the 1H' and the letters 'O' and 'G' are shown in black. All other keys are greyed-out (block 502) as shown in Figure 8. At each iteration, after block 505, a user may select and entry from the sub-list (block 506). This mechanism may also be used with predictive text entry when a user writes an email or a text message. In this case, initially no letters would be greyed out as words exist which begin with every letter of the alphabet. However, as a user writes a word, the number of words available reduces, as does the letters which may be entered. Unusable letters are greyed out accordingly.
In another example of the invention, the mobile device 101 is adapted to provide predictive text in languages using at least two scripts. In one example, the character store 306 includes at least two different scripts. In this example, the character store 306 includes a Latin script, which may be used for English, and a Devanagah script, which may be used for Hindi. The text module is arranged to display a twelve-key keypad representation on touch-screen display 105, as shown in Figure 0. Each key represents letters of the Latin script (as described above in relation to Figure 5) and letters of the Devanagari script. Both sets of letters are shown on the keypad as shown in Figure 9.
The text module 304 is adapted to provide predictive writing in both the Latin script and the Devanagari script. In this example, the text module 305 automatically determines whether a user is writing in English or Hindi and predicts words accordingly. The process used to perform this mechanism will be described in connection with Figure 10.
The device 101 includes the address book 307 which may be searched in the same manner as described in the above example. When the user first loads the address book 307, the full list of contacts is displayed as a scrollable list (block 601 ). In this example, the address book 307 includes a number of contacts, some being in Hindi, others being in English. A user is then able to input a first character by pressing a key representation (block 602). The text module 304 then determines what contacts exist which correspond to characters which are associated with that key (block 603). There may be no matches, in which case the text module 304 provides a user with feedback to this effect (block 604). This may be in the form of an audio or visual warning (block 605). Alternatively, the text module 304 detects a match (block 606). This may be to a single character. One or more entries may exist for that single character. For example, a user may select key 5, which represents J, K and L in Latin script and ^ - 5 in the Devanagari script. If the address book only includes entries beginning with one of these characters, those entries are displayed, and the first character is displayed in the search box 402 . Alternatively, entries may exist for more than one of the characters. In this case, the entries are shown in alphabetically
and script order. For example, the entries may be shown in the following order: J - L then ^T - 5. Other orders are possible.
If the text module 304 detects an entry or entries corresponding to a character associated with the key representation which has been pressed, those entries are displayed as a scrollable list and the character is displayed in the search box 402
(block 607). At this point, the user may select an entry from the sublist (block 608).
Alternatively, the user presses a further key representation and the process repeats by returning to block 602. The process may then repeat until the desired entry is displayed.
In this example, the address book includes entries for Jake, John and TΓEΓ If the user selects key 5, which represents J, K and L in Latin script and ^r - S in the
Devanagari script, the text module 304 automatically determines which of the entries include one of those letters as the first letter of the contact. Figure 11 shows the display after the keys 5, 2, and 5 have been pressed. The only entries in the contact list which correspond to this sequence of key strokes are "Jake" and
The text module 304 displays the contact entries for "Jake" and

This dual script system can be extended to predictive text when writing a message such as an email or a text. The text module determines what words can be made from the Latin script and from the Devanagari script and displays the available words as described above. If a word from only one script is available, then that word is shown. Once a word from one script has been selected, the text module 304 defaults to that script. The following words are written in that same script, assuming that a word from that script is possible. If no word from that script is available, the device displays words from the other script, assuming words exist which correspond the string of characters which have been entered. In a further example of the invention, the option to grey-out characters can be combined with the use of dual scripts. Figure 11 shows the device 101 from the
previous example with the characters which are available in black and the characters which are unavailable grey-out.
The above examples of the invention describe a software implementation of the invention. Other examples of the invention include a hardware only implementation and a hardware and software implementation. A example of the invention includes a component on a chip which provides the functionality described above in connection with the software implementation. An example of the invention is an apparatus as defined in the claims. This apparatus may be a component provided as part of a chip on an electronic circuit board. Alternatively the apparatus may be a chip on an electronic circuit board. As a further alternative, the apparatus may be a computing device, such as a mobile phone. The features defined in the claims may be implemented in hardware. Alternatively , the features may be implemented using software instructions which may be stored in a memory provided on the component, chip or computing device.
Various modifications, changes, and/or alterations may be made to the above described examples to provide further examples which use the underlying inventive concept, falling within the spirit and/or scope of the invention. Any such further examples are intended to be encompassed by the appended claims.