`a2) Patent Application Publication (0) Pub. No.: US 2012/0053926 Al
`
` Satpute (43) Pub. Date: Mar.1, 2012
`
`
`US 20120053926A1
`
`(54)
`
`INTERACTIVE INPUT METHOD
`
`(52) U.S.Coo. 704/8; 704/9; 715/816; 704/E11.001
`
`(75)
`Inventor:
`(73) Assignee:
`
`Pravin Satpute, Thane (IN)
` REDHAT,INC.,Raleigh,NC(US)
`
`©?)
`
`ABSTRACT
`
`(21) Appl. No.:
`
`12/873,079
`
`(22)
`
`Filed:
`
`Aug.31, 2010
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`GO6F 3/048
`GO6F 17/20
`GO6F 17/27
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`Auserinput is received by acomputing device. An interactive
`input module determines whetherthefirst user inputis a first
`characterof a script for a supported language. If the first user
`inputis a first character,the first character is stored in an input
`buffer. A plurality of words in the supported language that
`match a contents of the input buffer are identified, and a
`subsetofthe plurality ofwords are displayedto the user based
`ona frequency value associated with each of the plurality of
`words.
`
`
`
`
`
`Displa
`118 y
`
`
`Dictionary 123
`
`
`
`Frequency Values 124
`
`Conjugation Database
`
`125
`
`Candidate
`List
`126
`
`Interactive Input Module 120
`
`
`
`
`
`
`
`Computer Application
`Program on
`110
`
`
`
`Input Detection Module 121
`
`Input Buffer
`427
`
`Computing Device 100
`
`1
`
`APPLE 1011
`
`APPLE 1011
`
`1
`
`
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 1 of 7
`
`US 2012/0053926 Al
`
`
`
`
`
`
`
`OZrainpoyinduysanoesS}U|
`
`
`
`Zel—
`
`SV]
`
`9e1
`
`
`
`eseqeieguonebinluog
`
`Gel
`
`
`
`
`
`cbAveuonsiq
`
`
`JeyngnduyLZainpoyuonsejeqyndu|
`
`
`9jeplpuedPclsonjeaAouenbal4
`
`
`
`
`
`uoneoyddysaindwog
`
`
`
`
`
`Aejdsiq
`
`StL
`
`weibold
`
`OL
`
`|“614
`
`
`
`OOLsoIneqBunndwog
`
`2
`
`
`
`
`421
`
`
`
`©Ph
`
`wo
`
`Dictionary 123
`
`0 3 8 1 1 2 1 4 5 6 1 0 3 7 1 5 9 3 2 6
`
`2
`17
`22
`30
`29
`14
`12
`9
`18
`
`Moa
`Moan
`Moat
`Mob
`Mobile
`Mobster
`Moccasin
`Mocha
`Mock
`Mockery
`4
`Mod
`3
`Modal
`16
`Mode
`23
`Model
`19
`Modem
`14
`Moderate
`21
`Modern
`16
`Modest
`6
`Modicum
`Modification 13
`
`Input Detection Module
`
`Input Buffer
`127
`nput
`Buffer 127
`
`Interactive Input Module 120
`
`Fig. 2A
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 2 of 7
`
`US 2012/0053926 Al
`
`
`
`Candidate List 126
`
`12
`10
`7
`
`30
`0 - Mob
`29
`1-Mobile
`23
`2 - Model
`22
`3 - Moat
`4-Moderm 21
`5 - Mockery 20
`6-Modem 19
`7 - Mock
`18
`8 - Moan
`17
`9 - Mode
`16
`
`3
`
`
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 3 of 7
`
`US 2012/0053926 Al
`
`Interactive Input Method
`
`200
`
`Receive userinput, where the user input is a
`character of a script for a supported language
`
`Identify a plurality of words in the supported
`language that match the user input
`
`Display a subset of the plurality of words based on a
`frequency value associated with each of the words
`
`Receive a user selection of one of
`the displayed words
`
`205
`
`210
`
`215
`
`220
`
`Submit the selected word to an application program
`
`595
`
`Fig. 2B
`
`4
`
`
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 4 of 7
`
`US 2012/0053926 Al
`
`Interactive Input Method
`
`No go oO
`
`Receive userinput, where the userinputis a
`character of a script for a supported language
`
`Identify a plurality of words in the supported
`language that match the user input
`
`Display a subsetof the plurality of words based on a
`frequency value associated with each of the words
`
`Receive a user selection of one of
`the displayed words
`
`Identify a plurality of conjugations of
`the selected word
`
`Display the plurality of conjugations
`
`Receive a user selection of one of
`the displayed conjugation
`
`Submit the selected conjugation to
`an application program
`
`Fig. 2C
`
`955
`
`260
`
`265
`
`270
`
`275
`
`280
`
`285
`
`290
`
`5
`
`
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 5 of 7
`
`US 2012/0053926 Al
`
`Interactive Input Method
`
`300
`
`Receive language selection
`
`305
`
` Receive user input
`
`
`Is user input
`a character of selected
`
`
`language?
`Select base word in
`
`
`candidatelist
`
`Has a base word
`
`
`Is user input a number?
`corresponding to
`been selected?
`
`
`number and update user
`
`frequency value
`
`
`
` NO
`
`Store characterin buffer
`
`325
`
`Update displayedlist
`with next or previous
`Is user input
`words based on
`pageup/pagedown?
`
`frequency
`
`Does the buffer
`
`
`length equal one?
`Submit buffer contents
`
`Is user input
`to program and add
`a space?
`buffer contents to
`
`dictionary as new word
`
`370
`
`Does the buffer
`
`length equal two?
`YES
`(8)
`Submit user input to
`
`
`
`
`
`program
`
`Search dictionary for words
`starting w/ characters in buffer
`
`Display words with highest
`frequencyin candidatelist
`
`340
`
`345
`
`Fig. 3A
`
`6
`
`
`
`Patent Application Publication
`
`Mar. 1, 2012 Sheet 6 of 7
`
`US 2012/0053926 Al
`
`
`
`Store character in buffer
`
`
`
`
`
`
`
`Searchlist for conjugations starting
`with last character in buffer
`
`Display conjugations with highest
`frequency in candidatelist
`
`321
`
`322
`
`323
`
`
`
`336
`
` Doesthe buffer
`length equal three?
`
`Store character in buffer
`
`Search candidatelist for
`words starting with
`characters in buffer
`
`Display ten words with
`highest frequencyin
`candidatelist
`
`7
`
`
`
`Patent Application Publication
`
`400 ~~
`
`Mar. 1, 2012 Sheet 7 of 7
`
`US 2012/0053926 Al
`
`
`
`vaSo
`
`\
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Processing Device 402
`
`Video Displa
`=
`Processing Logic a | A410 prey
`426
`—_
`
`~
`
`~
`
`
`
`
`
`Cursor Control
`.
`:
`Static Memory
`<P <}-—___>Device
`406
`414
`
`
`
`
`<<—_> <>
`
`Alpha-Numeric
`Input Device
`412
`
`"430
`
`{pm >!
`
`Signal Generation
`Device
`
`416
`
`
`
`Main Memory 404
`
`~
`~
`
`
`
`NN
`
`Instructions
`422
`—
`
`
`
`NetworkInterface
`Device
`
`408
`
`\
`\
`\eAN
`\
`»
`f/f \
`\ i
`\
`/
`/ vemos \
`\
`/
`a
`a
`WI
`
`aay
`
`
`Data Storage Device 418
`
`Machine-Readable
`Storage Medium 428
`
`
`
`Instructions
`
`
`
`422
`
`~
`
`Fig. 4
`
`8
`
`
`
`US 2012/0053926 Al
`
`Mar. 1, 2012
`
`INTERACTIVE INPUT METHOD
`
`TECHNICAL FIELD
`
`
`
`[0001] This disclosurerelates to the field of data input and,
`in particular, to an interactive input method for data in a
`language with a large numberof characters.
`
`BACKGROUND
`
`[0002] The speed of data input can directly affect the effi-
`ciency of any computing device. An alphanumeric input
`device, suchas a keyboard,is the most commonwayfora user
`to input textual data to a computing device. One feature of a
`keyboardis providing the userthe ability to input every char-
`acter in the writing system of the language that the user is
`working in. The writing system, or script, is the series of
`characters used for the written form ofa particular language.
`For certain languages, such as English, which makeuse ofthe
`Roman alphabet having 26 characters, a keyboard can gener-
`ally have enough keys for a one to one mappingratio, where
`each character is mapped to a separate key on the keyboard.
`[0003] The size of the keyboard and the numberof keys
`thereon have practical limitations, however. At some point,
`both the size of and the numberof keys on a keyboard may
`become unwieldy. For languages written in scripts having a
`higher numberof characters, it may be unmanageable to have
`a one to one mapping ratio of characters to keys on the
`keyboard. The Devanagariscript, for example, which is used
`in many Indic languages such as Bodo, Dogri, Hindi, Kash-
`miri, Konkani, Maithili, Marathi, Nepali, and Sindhi,
`includes approximately 128 characters. Keyboards which
`support text input in the Devanagari script may typically have
`a character to key mappingratio of at least three to one. With
`multiple characters mappedto each key, the character selec-
`tion can be made through the use of modifier keys (e.g., the
`SHIFT key, CTRL key, etc.) This, however, requires the user
`to make many additional keystrokes when inputting textual
`data in a language makinguse of sucha writing system. These
`additional keystrokes take up valuable me and decrease the
`user’s efficiency.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0004] The present disclosure is illustrated by way of
`example, and not by wayoflimitation, in the figures of the
`accompanying drawings.
`[0005]
`FIG. 1 is a block diagram illustrating a computing
`device to implementan interactive input method for textual
`data, according to an embodiment.
`[0006]
`FIG. 2A is a block diagram illustrating an interac-
`tive input module, according to an embodiment.
`[0007]
`FIG. 2B is a flow diagram illustrating an interactive
`input method, according to an embodiment.
`[0008]
`FIG. 2C is a flow diagram illustrating an interactive
`input method, according to an embodiment.
`[0009]
`FIGS. 3A, 3B and 3C are flow diagramsillustrating
`an interactive input method, according to an embodiment.
`[0010]
`FIG. 4 is a block diagramillustrating one embodi-
`ment of a computer system, according to an embodiment.
`
`DETAILED DESCRIPTION
`
`[0011] The following description sets forth numerousspe-
`cific details such as examples of specific systems, compo-
`nents, methods, and so forth, in order to provide a good
`understanding of several embodiments of the present inven-
`
`tion. It will be apparentto one skilled in the art, however, that
`at least some embodiments of the present invention may be
`practiced without these specific details. In other instances,
`well-known components or methods are not described in
`detail or are presented in simple block diagram format in
`order to avoid unnecessarily obscuring the present invention.
`Thus, the specific details set forth are merely exemplary.
`Particular implementations may vary from these exemplary
`details and still be contemplated to be within the scope of the
`present invention.
`[0012] Embodiments of a method and apparatus are
`describedfor interactive input of textual data. In one embodi-
`ment, user input is received by a computing device. The user
`input may be received by an alphanumeric input device such
`as a keyboard or touchscreen. An interactive input module
`determines whether the user input is a character in a written
`script of a supported language.If the user inputis a character,
`the characteris stored in an input buffer. The interactive input
`module identifies a plurality of words in a dictionary provid-
`ing a list of known wordsin a supported language that match
`the contents of the input buffer. The identified words may be
`wordsthat begin with a first and second character stored in the
`input buffer. A subset of the plurality of identified words is
`displayed to the user based on a frequency value associated
`with each ofthe plurality ofwords. The subsetofthe plurality
`ofwords may include one or more wordsordered according to
`the frequency value associated with each of the one or more
`words, wherethe frequency value represents a frequency with
`which the associated word appears in a language corpus or
`other sample of text. The frequency value mayalso represent
`a numberoftimes that the user has previously selected the
`associated word for entry into an application program run-
`ning on the computing device. The user mayselect one ofthe
`words in the displayed subset and the word is submitted to the
`application program. Theinteractive input module may also
`update the frequency value associated with the selected word
`in response to the selection. If the contents of the input buffer
`do not match any wordsin the dictionary, the contents of the
`input buffer may be added to the dictionary as a new word.
`The interactive input method described herein allows for
`efficient input of textual data to a computing device, espe-
`cially where the numberof characters in a writing system is
`greater than the numberof keys on a keyboard. Examples of
`such a writing system include the Devanagari script used for
`typing languages including Bodo, Dogri, Hindi, Kashmiri,
`Konkani, Maithili, Marathi, Nepali, and Sindhi, and other
`Indic scripts, such as the Bengali script used for typing lan-
`guages including Assamese and Bengali, the Oriya script
`used for typing the Oriya language, the Tamil script used for
`typing the Tamil language, the Telugu script used for typing
`the Telugu language, the Malayalam script sued for typing the
`Malayalam language, the Kannadascript used for typing the
`Kannada language, the Gurumukhiscript used for typing the
`Punjabi language, and the Gujarati script used for typing the
`Gujarati language. The interactive input method may be used,
`in somecases, by users of a computing system to work in their
`native language (e.g., Marathi, Hindi), even if living or work-
`ing in a foreign country (e.g.,
`the United States) where
`another language is predominantly used.
`[0013]
`FIG. 1 is a block diagram illustrating a computing
`device to implementan interactive input methodfor textual
`data, according to an embodimentofthe present invention.In
`one embodiment, computing device 100 includes a computer
`application program 110, into which a user inputs textual
`
`9
`
`
`
`US 2012/0053926 Al
`
`Mar. 1, 2012
`
`data. Computer application program 110 may implementthe
`functionality of a word processing program, spreadsheet pro-
`gram, email program, chat program, web browseror other
`program. Embodiments of the interactive input method
`described herein may work with any computer application
`program that receives textual input from a user. The textual
`input may be received by computing device 100 through an
`alphanumeric input device, or other input device, as described
`below.
`
`In one embodiment, computer application program
`[0014]
`110 receives input from an interactive input module 120 that
`assists users when entering words in a writing system where
`the numberofcharacters is greater than the number ofkeys on
`a keyboard. Interactive input module 120 may be part of an
`operating system running on computing device 100 or may be
`part of a separate application used by computing device 100
`to provide input to various programs, such as computerappli-
`cation program 110. Interactive input module 120 may
`include input detection module 121, one or moredictionaries
`123, candidate list 126 and input buffer 127. Input detection
`module 121 may receive a user input and determinethe type
`ofinput received. In one embodiment, input detection module
`121 may comparethe received input to a list of known inputs
`to identify a match. For example, input detection module 121
`may be ableto identify a character in a particular language or
`script, a number(e.g., [0-9]), a command key(e.g., page up or
`page down), a spacebarpress, or other form ofuser input. The
`user input may include one or more characters, such as for
`example, two characters of a script for a supported language.
`Received user input is stored in input buffer 127.
`[0015] Dictionary 123 maybea list of known words in a
`particular language.
`Interactive input module 120 may
`include a numberofdictionaries for different languages and a
`number of application/business specific dictionaries which
`may be usedfor certain industries(1.e., banking, government,
`scientific, etc.). In one embodiment, dictionary 123 may be
`stored locally in storage of computing device 100, howeverin
`other embodiments, dictionary 123 may be remotely acces-
`sible over a network. Dictionary 123 may includea list of
`un-conjugated base words in a particular language. Associ-
`ated with each base word may be one or more frequency
`values 124. Frequency values 124 indicate how often the
`associated base word is likely to appear in a written text. In
`one embodiment, a first frequency value indicates how often
`the associated base word appears in a pre-selected written
`sample in the particular language. Thefirst frequency value
`establishes a base line frequency before a user of computing
`device 100 makes use of the interactive input method. The
`first frequency value may be periodically updated via an
`update operation received over a network. A second fre-
`quency value may indicate how often the individual user of
`computing device 100 uses the associated word. The second
`frequency value may be updated each time the user includes
`the associated word in written text. Alternatively or in addi-
`tion, the second frequency value may be continually updated
`over a networkasall users or a select group of users include
`the associated word in written text on their own machines. In
`
`one embodiment, the frequency values 124 maybe an actual
`countofthe frequency ofuse ofthe associated word, however,
`the frequency values 124 mayalso be somerelative value
`proportionalto the actualuse.
`[0016] Dictionary 123 mayadditionally include a conjuga-
`tion database 125. Conjugation database 125 may be simi-
`larly stored either locally or remotely and mayincludea list of
`
`known conjugations for each base word in dictionary 123. As
`will be described below, upon selection of a base word, the
`user may select from the list of conjugations to find the
`desired word.
`
`Interactive input module 120 may perform a search
`[0017]
`of dictionary 123 based on the user input. The results of the
`search are stored in candidatelist 126. For example,ifthe user
`inputs two characters, which arestored in input buffer 127,all
`base words from dictionary 123 that begin with the two char-
`acters in the input buffer 127 are stored in candidate list 126.
`The words may be orderedin candidate list 126 based on their
`frequency values 124. The words maybe ordered based on the
`first frequency value, the second frequencyvalue, or based on
`some combination of the two frequency values. A certain
`number(e.g., the first ten values) are presented to the user in
`a numberedlist on display 115. Similarly, a numberedlist of
`conjugations based on the frequency values mayalso be pre-
`sented to the user. In response to a selection of a base word
`and/or conjugation, the selection is stored in the input buffer
`127 and submitted to computer application program 110.
`[0018]
`FIG. 2A is a block diagram illustrating an interac-
`tive input module, according to an embodiment. Interactive
`input module 120 receives, at input detection module 121,
`user input, which may include one or more characters(e.g.,
`two characters). In one embodiment, the user input is received
`through an alphanumeric input device, such as a keyboard or
`touchscreen. The input device may makeuseofexisting key-
`board layouts, so there is no need for a user to learn a new
`mapping scheme. Input detection module 121 recognizes the
`user input as charactersin a script for a language supported by
`interactive input module 120 andstores the user inputin input
`buffer 127. For purposes of description, the user input in this
`example includes the Roman alphabet characters “mo” from
`the English language. It should be understoodthatthis inven-
`tion may be applied any number of different languages
`including, for example, those using the Devanagari script, or
`otherIndic scripts) as a writing system. A search 1s performed
`of dictionary 123 for words beginning with the characters
`storedin the input buffer 127. A sample of the words match-
`ing the contents of input buffer 127 is shownin dictionary 123
`ofFIG. 2A along with the associated frequency valuefor each
`word. Candidate list 126 is formed based on the associated
`
`frequencyvaluesto create a list ofthe words mostlikely to be
`selected by the user. In this embodiment, the numberedlistis
`ordered based onthefirst frequency value, although in other
`embodiments, the list may be ordered based on the second
`frequency value or based on a combination of the two fre-
`quencyvalues, such as a sum, average, or other combination.
`A portion of candidate list 126 is displayed to the user on a
`display, such as display 115 of FIG.1. In this embodiment, 10
`words are displayed from candidate list, although in other
`embodiments, more or fewer words maybe displayed at a
`time. The user may makea selection from the displayedlist
`using an input device, such as for example, a keyboard,
`mouse, trackball, touchscreen, or other device. If the dis-
`played list does not show the desired word, the user may
`provide additional
`input, which may include a scrolling
`action (or pageup/pagedown command) to update the dis-
`playedlist of words, or the input of an additional character. If
`an additional characteris input, interactive input module 120
`may perform anothersearch of dictionary 123 to update the
`candidatelist 126 so that the words matchall of the received
`characters, including the additional character. If the desired
`wordis still not displayed to the user, the user may provide
`
`10
`
`10
`
`
`
`US 2012/0053926 Al
`
`Mar. 1, 2012
`
`250 displays a numberof conjugations in a numberedlist. In
`input to cause the word to be submitted to computer applica-
`one embodiment, the conjugations may have an associated
`tion program 110 and addedto dictionary 123 for future use.
`frequency value, similarly to the based words in the dictio-
`[0019]
`FIG. 2B is a flow diagram illustrating an interactive
`nary, and the displayed list may be formed onthe basis of the
`input method, according to an embodiment. The method 200
`frequency values. At block 285, method 250 receives a selec-
`may be performed by processing logic that comprises hard-
`tion from the user of one ofthe displayed conjugations, and at
`ware (e.g., circuitry, dedicated logic, programmable logic,
`block 290, submits the selected conjugation to an application
`microcode,etc.), software (e.g., instructions run ona process-
`program where text is being entered.
`ing device to perform hardware simulation), ora combination
`[0022] FIGS.3A, 3B and 3C are flow diagramsillustrating
`thereof. The processing logic is configured to provide an
`an interactive input method, according to an embodiment.In
`interactive input methodto efficiently receive user input in a
`one embodiment, method 300 may be performed byinterac-
`language where the numberof characters is greater than the
`tive input module 120, as shown in FIGS. 1 and2. Referring
`numberof keys on a keyboard. In one embodiment, method
`to FIG. 3A, at block 305 method 300 receives a language
`200 may be performedbyinteractive input module 120, as
`shown in FIGS. 1 and 2A.
`selection from an end user. The user may select, using a
`computer input device, a language fromalist of languages
`[0020] Referring to FIG. 2B, at block 205, method 200
`supported by interactive input method 300. The language
`receives user input. The user input may be received, for
`selection causes a corresponding dictionary for the selected
`example through an alphanumeric input device, such as a
`language to be used to identify user input. At block 310,
`keyboard or touch-screen. The user input may include one or
`method 300 receives user input. The user input may be
`more characters (e.g., two characters) of a script for a sup-
`received, for example through an alphanumeric input device,
`ported language, where the numberof characters in the script
`suchas a keyboard or touch-screen. At block 315, method 300
`is greater than the numberof keys on a keyboard. At block
`determines whetherthe user input includes a character of the
`210, method 200 searches a dictionary for the supported
`script for the languageselected at block 305. Method 300 may
`language to identify words beginning with the characters
`compare the user input to a list of known characters for the
`received as user input. Method 200 forms a candidatelist for
`selected language andifthe input is a match,it is determined
`all words in the dictionary matching the received characters.
`that the input is a character.
`Based on the frequency value of each word in the candidate
`[0023]
`Ifat block 315, method 300 determinesthat the user
`list, at block 215, method 200 displays a subset of the iden-
`tified words in the candidate list. A number of words most
`input is a character of the selected language, at block 320,
`method 300 determines whether a base word has beenprevi-
`likely to be chosen by the user are displayed in a numbered
`ously selected. When a base wordis selected byas user, a flag
`list. In one embodiment, ten words may be displayed to the
`associated with the user input maybeset to 1 or someother
`user, however, in other embodiments, some other number of
`value. To determineif a base word has been selected, method
`words may be displayed. Upon displaying the words from the
`300 compares the value of the flag to the expected value
`candidate list, at block 220, method 200 receives a selection
`representing the selection of a base word. If at block 320,
`from the user of one of the displayed words. The selection
`method 300 determinesthat a base word hasnot been selected
`may be received through the user input device and may
`(1.e., the value of the flag does not match the expected value),
`include, for example, a certain key stroke (e.g., a numberora
`at block 325, method 300 stores the character received as user
`space bar press). At block 225, method 200 submits the
`input at block 310 in a buffer. The buffer may be part of a
`selected word to an application program wheretext is being
`entered.
`memory device in the computer system performing interac-
`tive input method 300.
`[0021] FIG. 2C isaflow diagram illustrating an interactive
`
`[0024] At block 330, method 300 checks the length of the
`input method, according to an embodiment. In one embodi-
`buffer (i.e., how many characters are stored in the buffer) and
`ment, method 250 may be performed byinteractive input
`determinesif the buffer length is equal to one. If the buffer
`module 120, as shown in FIGS. 1 and 2A. At block 255,
`length is equal to one, method 300 returns to block 310 to
`method 250 receives user input, as described above. At block
`receive a next user input. If the buffer length is not equal to
`260, method 250 searches the dictionary to identify words
`one, at block 335, method 300 determinesif the buffer length
`beginning with the characters received as user input. Method
`is equal to two. If the buffer length is equal to two(1.e., there
`250 forms a candidate list for all words in the dictionary
`are two characters currently stored in the buffer), at block 340,
`matching the received characters. In one embodiment,the list
`method 300 searches a dictionary for the selected language
`of identified words maybe referred to as base words. A base
`for words beginning with the two characters stored in the
`word is the unmodified form of a known word in the sup-
`buffer. Method 300 forms a candidatelist for all words in the
`ported language. At block 265, method 250 displays a subset
`of the identified base words based on the frequency value of
`each word. At block 270, method 250 receives a selection
`from the user of one of the displayed base words. Upon
`receiving the base wordselection, at block 275, method 250
`searches a conjugationlist, such as conjugation database 125,
`to identify a plurality of conjugations of the selected base
`word. A conjugation is a derived form ofa base word that may
`alter the meaning of the base wordby affecting person, num-
`ber, gender, tense, aspect, mood, voice, or other grammatical
`category. The conjugation list may be a subsetofthe dictio-
`nary 123 for the supported language. Method 250 forms a
`candidate list for all conjugations in the conjugation list
`matching the characters in the buffer. At block 280, method
`
`dictionary matching the characters in the buffer. Based on the
`frequency value of each word in the candidate list, at block
`345, method 300 displays a numberofwords mostlikely to be
`chosen by the user in a numberedlist. In one embodiment, ten
`words may be displayed to the user, however,
`in other
`embodiments, some other number of words may be dis-
`played. Upon displaying the words from the candidatelist,
`method 300 returns to block 310 to receive a next user input.
`[0025]
`Ifat block 315, method 300 determinesthat the user
`input received at block 310 is not a character of the selected
`language, method 300 proceeds to block 350. At block 350,
`method 300 determinesif the user input is a number. Method
`300 may compare the user input to a list of known numbers
`
`11
`
`11
`
`
`
`US 2012/0053926 Al
`
`Mar. 1, 2012
`
`list matching the characters in the buffer. At block 323,
`(e.g., [0-9]) and ifthe input is a match,itis determinedthat the
`input is a number. If the user input is a number and the
`method 300 displays a numberof conjugations in a numbered
`numberedlist has been previously displayed to the user at
`list. In one embodiment, the conjugations may have an asso-
`block 345, at block 355, method 300 selects the base word
`ciated frequency value, similarly to the based words in the
`from the candidate list corresponding to the numberreceived
`dictionary, and the displayed list may be formedon the basis
`as user input. The flag associated with the user input desig-
`ofthe frequency values. Upon displaying the numberedlist of
`nating the selection of base word maybeset to the expected
`conjugations, method 300 returns to block 310 to receive a
`value (e.g. 1) and a user frequency value of the base word in
`next user input.
`the dictionary may be incrementedtoreflect the current selec-
`[0030]
`If at block 335, method 300 determines that the
`tion. Uponselection of the base word, method 300 returns to
`buffer length does not equal two, method 300 proceeds to
`block 310 to receive a next user input.
`block 336. Referring to FIG. 3C, at block 336, method 300
`[0026]
`Ifat block 350, method 300 determinesthat the user
`determines if the buffer length equals three. If the buffer
`input is not a number, method 300 proceeds to block 360. At
`length does not equal three, at block 337, method 300 stores
`block 360, method 300 determinesif the user input is a page
`the character in the buffer, enables a flag indicating a new
`up or page down command. The pageup or page down com-
`word(since the user has now entered a fourth character and
`mand maybe entered by pressing the respective keys on a
`has not selected one of the available words) and returns to
`keyboard or through a pointing device such as a mouse or
`block 310 to receive a next user input. The flag indicating the
`touchpad. If the user input is a page up or page down com-
`new word maybe checked at block 375 to determineif the
`mand and the numberedlist has been previously displayed to
`contents of the input buffer include a new wordto be added to
`the user at block 345, at block 365, method 300 updates the
`the dictionary. If the buffer length does equal three, at block
`displayed numberedlist of words to show a previous or sub-
`338, method 300 searches the candidate list formed at block
`sequent number ofwords from the candidate list based on the
`frequency values. For example, if the received user inputis a
`340 for words beginning with the three characters stored in
`page down command, and the values 0-9 were previously
`the buffer. Based on the frequency value of each word in the
`shownto theuser, the list is updated to display values 10-19
`candidate list, at block 339, method 300 displays a number of
`to the user. Values 10-19 may be numbered as 10-19 oralter-
`words mostlikely to be chosen by the user in a numberedlist.
`natively may be numbered as 0-9. Upon updating the dis-
`Upon displaying the words from the candidate list, method
`playedlist, method 300 returns to block 310 to receive a next
`300 returns to block 310 to receive a next user input.
`user input.
`[0031]
`FIG.4 illustrates a diagrammatic representation ofa
`[0027]
`Ifat block 360, method 300 determinesthat the user
`machine in the exemplary form of a computer system 400
`input is not a page up or page down command, method 300
`within whichaset of instructions, for causing the machine to
`proceedsto block 370. At block 370, method 300 determines
`perform any one or more of the methodologies discussed
`ifthe user input is a spacebar press. Ifthe user input is a space
`herein, may be executed. In alternative embodiments, the
`bar press and the length of the buffer does not equal zero, at
`machine may be connected (e.g., networked)
`to other
`block 375, method 300 submits the buffer contents to the
`machines in a local area network (LAN), an intranet, an
`application program wheretext is being entered. If the con-
`extranet, or the Internet. The machine may operate in the
`tents of the buffer do not match an entry in the dictionary, the
`capacity of a server or a client machine in a client-server
`contents of the buffer are added to the dictionary as a new
`network environment, or as a peer machine in a peer-to-peer
`word and the contents ofthe buffer are cleared. Upon submit-
`(or distributed) network environment. The machine maybe a
`ting the buffer contents to the program, method 300 returns to
`personal computer (PC), a tablet PC, a set-top box (STB), a
`block 310 to receive a next user input.
`Personal Digital Assistant (PDA), a cellular telephone, a web
`appliance, a server, a network router, switch or bridge, or any
`[0028]
`Ifat block 370, method 300 determinesthat the user
`machine capable of executing a set of instructions (sequential
`input is not a spacebarpress (i.e., the user input is some other
`or otherwise) that specify actions to be taken by that machine.
`key press), method 300 proceeds to block 380. At block 380,
`Further, while only a single machineis illustrated, the term
`method 300 submits the user input, as well as any buffer
`“machine” shall also be taken to include any collection of
`cont