throbber
as) United States
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket