[go: up one dir, main page]

HK1129470A - Disambiguating ambiguous characters - Google Patents

Disambiguating ambiguous characters Download PDF

Info

Publication number
HK1129470A
HK1129470A HK09105526.3A HK09105526A HK1129470A HK 1129470 A HK1129470 A HK 1129470A HK 09105526 A HK09105526 A HK 09105526A HK 1129470 A HK1129470 A HK 1129470A
Authority
HK
Hong Kong
Prior art keywords
results
user
result
characters
host
Prior art date
Application number
HK09105526.3A
Other languages
Chinese (zh)
Inventor
迈克尔.R.龙格
伊桑.R.布拉德福特
大卫.J.凯
皮姆.V.缪斯
Original Assignee
蒂吉通信系统公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 蒂吉通信系统公司 filed Critical 蒂吉通信系统公司
Publication of HK1129470A publication Critical patent/HK1129470A/en

Links

Description

Disambiguating ambiguous characters
Technical Field
This document relates to content retrieval and presentation.
Background
The internet enables users to access a large amount of information. Users may retrieve information from large libraries through web browsers, messaging applications, or other specialized applications to access a large amount of information. However, navigating large amounts of information can pose challenges to some users.
Disclosure of Invention
In one general aspect, information may be presented to a user by: receiving one or more ambiguous characters that can be resolved into one of at least two disambiguated characters, exchanging at least one of the ambiguous characters with a host, receiving results from the host that reflect disambiguated words associated with the ambiguous characters exchanged with the host, presenting the results in a manner that enables a user to understand which disambiguated word is to be used upon user selection of an aspect of the results, and enabling the user to select an aspect of the results that results in use of a corresponding one of the disambiguated words.
Implementations may include one or more of the following features. For example, a wireless telephone with a reduced input keypad may be used to enter one or more ambiguous characters. At least some of the ambiguous characters can be communicated to the host over the wireless network and the results can be presented in a display on the wireless telephone. The user may be allowed to manipulate the reduced input keypad of the radiotelephone to select one of the results that may result in one of the disambiguating terms being used as an aspect of the selected disambiguating term.
The user may be allowed to enter special characters. The special character may be used to select a subset from within the result, and the subset may be presented. Enabling the user to enter a particular character may include enabling the user to select the "#" key ""Key or arrow button as a mechanism to effect subset selection.
One or more ambiguous characters can be analyzed prior to exchanging the sequence with the host. The results may be presented in response to the analysis sequence, and the user may be enabled to interact with the results. As a result of the user's interaction with the results, at least some of the ambiguous characters may be exchanged with the host to update the results.
It may be determined whether a threshold number of ambiguous characters have been received, upon which ambiguous characters may be swapped. It may be determined whether an updated fuzzy character for the updated threshold has been received, and the updated fuzzy character may be swapped upon receipt of the updated fuzzy character for the updated threshold. Updated results may be received and presented from the host.
Establishing communication with the host may include activating an inactive communication channel or accessing an active communication channel. Communication with the host may be established upon receipt of a threshold number of ambiguous characters, and the ambiguous characters may be exchanged when communication has been established.
Communication with the host may be established upon receipt of a threshold number of ambiguous and unambiguous characters, and the ambiguous and unambiguous characters may be exchanged when communication has been established.
Non-ambiguous characters may be received and exchanged with a host. Receiving the ambiguous characters can include receiving only the ambiguous characters. Receiving the ambiguous characters can include receiving handwriting input from a handwriting recognition system.
Receiving the ambiguous character may include receiving an indication of a handwritten stroke of an ideographic language.
In another general aspect, information may be presented to a user by: the method includes receiving one or more ambiguous characters that can be resolved into one of at least two disambiguating characters, analyzing the ambiguous characters, generating results identifying several user applications related to the ambiguous characters based on the results of the analysis of the ambiguous characters, presenting the results in a manner that enables a user to know which of the several user applications will be launched in response to the user's selection of a corresponding aspect of the results, and enabling the user to select an aspect of the results that results in launching of the user application corresponding to the selected aspect of the results.
Implementations may include one or more of the following features. For example, a wireless telephone with a reduced input keypad may be used to enter one or more ambiguous characters. The ambiguous characters can be related to the disambiguation terms and several user applications can be identified based on the disambiguation terms. The results may be presented in a display of the wireless telephone with an indication of the application to be launched upon user selection of the aspect of the results corresponding to the user application, and the user may be allowed to select the one aspect of the results corresponding to one of several user applications using the reduced input keypad of the wireless telephone.
Based on the received one or more ambiguous characters, a first corresponding disambiguation result that may be obtained by invoking the browser application may be identified and a second corresponding disambiguation result that may be obtained by invoking the directory service application may be identified. The first and second respective disambiguation results may be presented and the user may be allowed to select the first or second respective results.
Identifying a first respective disambiguation result that may be obtained by invoking a browser application may include identifying a first respective disambiguation result that may be obtained by invoking a browser application configured to render content using a markup language other than hypertext markup language (HTML). Identifying the first respective disambiguation result that may be obtained by invoking the browser application may include enabling a user to access a different application through the browser application. Enabling the user to access the different applications through the browsing application may include enabling the user to access at least one of a map service, a web browsing service, an advertising service, an instant messaging service, and an email service.
Presenting the results in the display of the wireless telephone with the indication of the application may include presenting the results with an icon representing the application. The ambiguous characters can be related to the disambiguation terms and several user applications can be identified based on the disambiguation terms.
Drawings
FIG. 1 illustrates a communication system that may be used to intelligently present results related to a character stream being analyzed by a host.
FIG. 2 is a flow chart showing how a client can use a host to intelligently present results related to a character stream.
FIG. 3 is a flow chart showing how a client may exchange character streams with a host and receive map information related to the character streams.
FIG. 4 is a flow diagram showing how a client display may be modified based on updates to the character stream.
Fig. 5 through 10 are exemplary Graphical User Interfaces (GUIs) illustrating how real-time results related to a character stream may be presented.
FIG. 11 illustrates a mobile device that may be configured to return results related to ambiguous characters.
FIG. 12 illustrates a mobile device configured to return results in response to additional input of ambiguous characters after initially presenting the results in response to the ambiguous characters.
FIG. 13 illustrates a mobile device configured to return results in response to entry of a space character after initially presenting the results in response to a sequence of ambiguous characters.
FIG. 14 illustrates a mobile device configured to display information related to results that have been selected.
FIG. 15 illustrates a mobile device configured to display advertisements related to user input.
FIG. 16 illustrates a mobile device display of a mobile device configured to return results related to one or more ambiguous characters.
FIG. 16 also illustrates the use of icons to provide an indication of applications that are invoked in response to selecting a particular result.
FIG. 17 illustrates how a "short-cut" may relate to a character appearing at the beginning of a disambiguated word.
FIG. 18 includes four exemplary mobile device displays illustrating how ambiguous character sequences may be entered and analyzed to produce words as a result of inclusion in a text message.
FIG. 19 includes four exemplary mobile device displays associated with a mobile device configured to receive one or more ambiguous characters and retrieve results responsive to the ambiguous characters.
FIG. 20 illustrates a java applet that may be launched in response to a resulting application.
Detailed Description
The main challenge in providing an improved experience for users accessing the internet and its large content reserves is to enable users to access the information most relevant to their interests with minimal effort in retrieving results. This challenge is exacerbated when the user operates a device with an ambiguous character set, such as a wireless telephone with a reduced input keypad. For example, a user relying on a touchpad with a reduced input keypad (e.g., 12 characters, where the "2" button again represents "A", "B", and "C") may find it difficult to access the intended application while typing one or more characters.
To assist a user entering the ambiguous input, the ambiguous input may be resolved into several possible disambiguation candidates and the user may be enabled to select among the candidates. Moreover, in addition to providing the user with an indication of the disambiguation candidate, the application and/or related actions may be additionally provided or provided as an alternative for presenting the disambiguation candidate.
More specifically, for example, a user may type a sequence of one or more ambiguous characters on a device such as a wireless telephone. These fuzzy charactersMay be analyzed and in response may produce a result. The results may be associated with several disambiguating terms or with more than one user application. For example, a user's "733" input on a 12-key alphanumeric keyboard of a wireless telephone may be analyzed and resolved to words related to or including "RED". The word "RED" may in turn relate to a different application, for example toRedondo Beach-related map application, and WashingtonRedskins-related sports applications, and/or withRedLobster related directory services application. The results are presented in a manner that enables the user to know which of several user applications are available for user selection/launching. For example, the wireless telephone may indicate that selection of a first result will launch a mapping application, while selection of a second result will launch a directory services application. Finally, the user is enabled to select one of the disambiguated terms to launch one of the user applications that is related to the selected result. For example, a user of a wireless telephone may use arrow keys and select buttons to launch a mapping application that provides driving directions for the Redondo beach.
In another example, the user of the wireless telephone may type "23212" as a sequence of ambiguous characters. The wireless telephone may provide the results to the host for analysis. The host may retrieve the map and directory service information associated with "23212". Note that in this example, the user does not recognize the map logo, dialing information, or include the word "zip code" to retrieve the results for zip code 23212. Rather, the ambiguous character sequence is analyzed and used to determine that its content or form of input may correspond to that form or type of input and thus may be used to cause consideration or display of possible map results that may be considered and/or displayed.
Even though ambiguous character sequences may be related to a variety of applications and/or resolved into a plurality of disambiguated words, the results may be displayed in the following manner: the user may select one of the results to launch the application or a code segment associated with the selected item. For example, if the displayed results include a list of plumber's available to support the user, then selecting one of the entries may launch a web page run by a particular plumber. In another example, a telephone call, an email message, or an instant message may be transmitted to the plumber who selected his entry from the results. In another example, the user may insert the result as an object (e.g., an attachment, a link, or a word) in the message.
The user may continue to type one or more ambiguous characters and may modify the results based on the most recently received ambiguous character. For example, in one implementation, when the character stream begins to be analyzed after "spring" is typed, spring-related results and products that use the word "spring" may be returned. When the user types in the "f" character (or "3 DEF" key), additional input may be communicated to the host, which then generates a result associated with "springf". In one example, prior results associated with "spring" are filtered out to produce a new list including only content associated with "spring. In another example, a new query is run identifying the word associated with "springf".
Regardless of how the query is composed, the host identifies results associated with "springf", which may include one or more selections associated with cities and towns called Springfield. The results for multiple towns may be presented in a portion of the application that the user is accessing. In one example, the user may be allowed to select one of the results to generate a map associated with the selected Springfield. In another example, the user may be presented with entries for "Springfield, MA" and "Springfield, IL". The user may continue to type in characters in the character stream. When the user types in the "I" character after "Springfield" has been recognized, the "Springfield, MA" entry may be removed. The user may then select the "Springfield, IL" entry to retrieve a map of Springfield, IL.
Fig. 1 illustrates a communication system 100 capable of intelligently presenting results related to a character stream. In general, client 110 exchanges communications with host 130 related to character streams of non-ending characters using network 120. The host 130 analyzes the character stream using, for example, a database 140 (e.g., a yellow pages directory or a map system) to produce results related to the character stream. Host 130 provides one or more results to client 110, which then displays the results.
Generally, clients 110 include computing devices that enable users to exchange information over a communication network. Client 110 may include one or more devices capable of accessing content on host 130. Client 110 may also include a controller (not shown) that processes instructions received from or generated by software applications, programs, code blocks, devices, computers, computer systems, or combinations thereof, that individually or collectively direct the operation of client 110. The instructions may be embodied permanently or temporarily in any type of machine, component, apparatus, storage medium, or propagated signal that is capable of being transferred to the client 110 or that may reside with a controller in the client 110. The client 110 may include a general purpose computer (e.g., a Personal Computer (PC) capable of responding to and executing instructions in a defined manner), a workstation, a laptop, a PDA ("personal digital assistant"), a wireless telephone, a component, other device, or some combination of items capable of responding to and executing instructions.
In one implementation, client 110 includes one or more information retrieval software applications (e.g., a browser, a mail application, an instant messaging client, an internet service provider client, or an AOL TV or other integrated circuit) capable of receiving one or more data units. The information retrieval application may run on a general-purpose operating system and a hardware platform that includes a general-purpose processor and specialized hardware for graphics, communications, and/or other capabilities. In another implementation, client 110 may comprise a wireless telephone that runs a micro-browser application on a reduced operating system using general purpose and special purpose hardware capable of running in a mobile environment.
Client 110 includes one or more character stream code segments that analyze a character stream input to an information retrieval application. The character stream code segment receives the stream and constructs an exchange of the character stream with other software applications on client 110 and/or host 130. For example, the character stream code segment may initially wait until X initial characters are received before issuing a transfer to the host 130. The character stream code segment may then send updates to the host every time Y subsequent characters are received. Alternatively, the character stream code segment may include a set of delay features that send a character stream update if the user has been inactive for Z seconds. Thus, when X is 5 ("five") characters, Y is 2 ("two") characters, and Z is 1 ("one") second, for a user typing "DULLES GAS STAT," the character flow code segment will request the results "DULLES GA", "DULLES GAS ST", "DULLES GAS STAT" 1) after "DULLE" and 2). In the same example, if the user types "DULLESGAS" and pauses for more than 1 second (when Z is 1 second and the delay feature set is being used), the character stream code segment will send the "DULLESGAS" string to the host for analysis.
Alternatively or in addition, the client may wait to exchange characters with the host until a different condition has been met. For example, the client may monitor user activity to determine whether the user has browsed the list of matching words more than a threshold number of times or to determine whether the user manually selected the "more" button. In another example, the clients may exchange the selected words to retrieve further results using the selected words as a basis for analysis. Thus, when the user enters "733" on the reduced input keyboard and then selects "reds", the client requests other results related to "reds".
Client 110 may include a preliminary analysis code segment for analyzing the character stream and sending periodic updates. The preliminary analysis code segment filters the character stream to increase the effectiveness of the results produced for the character stream. In one example, the preliminary analysis code segment identifies one or more databases or segments that may be associated with the predicted interest of the consumer. Thus, when "20005" is entered, the preliminary analysis code segment may instruct host 130 in the transfer to poll geographic information associated with zip code 20005. Other examples may include identifying a service industry (e.g., plumber), a segment (e.g., online music), or a combination of factors (e.g., plumber of zip code 20005) as a preliminary analysis code segment that is relevant to the results sought by the user. After the preliminary factors are identified, the transmission may be sent to an appropriate database or the query may be modified as a result of performing the preliminary analysis.
In another example, the preliminary analysis code segment may also correlate information about the user that is already known to the character stream. If the client is deemed to be operating in a particular area (e.g., based on GPS data, radio tower information, and/or billing information for the user), the character stream may be modified to inform the host 130 that the results should be responsive to the user's relative or absolute location. Similarly, the preliminary analysis code segment may interface with a cache or user history to better identify results for the user. In this way, if the user activity history indicates that the user is interested in a full american football league sporting event, the preliminary analysis code segment may tailor the results based on their relationship to american football rather than international football (soccer). The preliminary analysis code segment may also retrieve and display locally stored results before the host 130 is accessed.
Client 110 may include a communications code segment that interfaces with an information retrieval code segment (e.g., a browser or keyword tool) to modify the character stream results to reflect the client network environment. For example, when client 110 comprises a wireless telephone with limited bandwidth, the communication code segment may construct a communication exchange to limit the amount of data in the results that are returned so as not to crash network 120. This may include filtering the results so that no more than a specified number of results are returned. Similarly, the format of the results may be modified to reduce the bandwidth of the results. For example, the results communicated to client 110 may have graphics or images removed from the application.
The client may include a display code segment that trims results destined for a display device, such as a monitor or LCD ("liquid crystal display"). The display code segment may manage the presentation of the results such that only the most likely results are presented. The display code segment may interface with the host 130 so that the number of results does not exceed the storage or display capabilities of the client. In one example, the display code segment may instruct the host 130 to transfer no more than a specified number of results. In another example, the display code segment may instruct the host 130 not to return any result items that are larger than a specified size.
Client 110 may include one or more media applications. For example, client 110 may include a software application that enables client 110 to receive and display audio or video data streams. The media application may include a control portion that enables a user to configure the user's media environment. For example, if the media application is receiving an internet radio station, the media application may include a control portion that enables the user to select the internet radio station, for example, through the use of a "preset" icon indicating the station category (e.g., country station) or preferences.
Network 120 may include hardware and/or software that enables direct or indirect communication between client 110 and host 130. As such, network 120 may include a direct link between client 110 and host 130, or it may include one or more networks or sub-networks (not shown) between the two. Each network or sub-network may comprise, for example, wired or wireless data paths capable of carrying and receiving data. Examples of networks include the world wide web, WAN ("wide area network"), LAN ("local area network"), analog or digital wired or wireless telephone networks, radio, television, cable television, satellite, and/or any other delivery mechanism for carrying data.
The host 130 is generally capable of executing instructions under the command of a host controller (not shown). The host 130 may include one or more hardware components and/or software components. An example of a host 130 is a general purpose computer (e.g., a server or mainframe) capable of responding to and executing instructions in a defined manner. Other examples include a special purpose computer, a workstation, a PC, a device, a component, other physical or virtual equipment, or some combination thereof capable of responding to and executing instructions.
A controller is a software application loaded on host 130 for commanding and directing communications exchanged with client 110. Other examples include programs, code blocks, instructions, devices, computers, computer systems, or combinations thereof, which alone or in combination direct the client 110 or host 130 to interact and operate as described above. Host 130 may be permanently or temporarily implemented in any type of machine, component, physical or virtual device, storage medium, or propagated signal capable of providing instructions to client 110 or host 130.
The controller may include one or more information providing applications to support information retrieval requests sent from clients 110. The information providing application may include a results code segment that receives the character stream from client 110 and produces results responsive to the predicted interests of the individual user. In this manner, the results code segment may generate one or more results based on the exchange of character streams received from client 110.
The results code segment may also receive character stream modifiers received from the preliminary analysis code segment, the communication code segment, the display code segment, and/or other code segments that modify the character stream delivery from the client. The result code segment may process the character stream according to the modifiers. The host 130 may also execute code segments for performing operations similar to the feature sets in the preliminary analysis code segment, the communication code segment, and the display code segment. These host-oriented versions of these code segments may interface with the results code segment to modify the analysis performed and/or the results returned. For example, the host 130 may initially access a content cache previously requested by a user. The previously returned results may be analyzed for relevance before performing further analysis or polling other systems.
The host 130 may interface with a database 140 to analyze the character stream. In general, the database 140 includes storage for large amounts of data and a processing engine that enables the data to be sorted, searched, and analyzed. The database may be organized according to functional criteria. For example, a map database may be organized by geographic region, while a yellow pages database may be organized by business as well as geographic criteria. In one example, the database may be configured for more detailed analysis of the character stream provided by the host 130. For example, the host 130 may receive a character stream from a client and redirect the query to one or more databases 140. Each of the redirected queries may be modified to further refine the redirected queries. For example, a query that is redirected to the yellow pages directory may have a zip code added as a selection. Similarly, a query that is directed to a database that provides stock quotes may include an index that describes which stock users are interested in (e.g., the stocks that the users own).
Referring now to FIG. 2, a flow chart 200 illustrates how the client 110 can use the host to intelligently present results related to a character stream of non-ending characters. Generally, the system in flowchart 200 is related to the system described in FIG. 1. The flowchart 200 illustrates how the client 110 receives a character stream (step S210) and exchanges the character stream with the host (step S220). The host 130 receives the character stream (step S230), analyzes the character stream (step S240), and exchanges the result with the client 110 (step S250). The client 110 receives the result (step S260), displays the result (step S270), receives a user selection (step S280), and launches a code segment associated with the selected result (step S290).
Initially, the client 110 receives a character stream of one or more non-ending characters (step S210). Generally, receiving a character stream comprised of one or more non-ending characters includes receiving and organizing user keystrokes that are entered into a user application. For example, the user may be typing an entry into an address table for a web browser or a keyword entry field in a keyword application. Receiving the character stream may include constructing the character stream into transmissions to be exchanged with the host 130. For example, the client application may organize the transmission into a first message after a predetermined number of characters have been entered. The client application may construct the additional message to be created after a predetermined number of additional characters have been entered or a predetermined time has elapsed between the user entering the characters. The non-end flag indicates that the user has not indicated that the character entering process has ended. In other words, a character stream with non-ending characters indicates that additional characters may be received to modify the search results displayed in response to the user's predicted interest. Instead, the enter key or "enter" key is typically used as an ending character that enables the user to clearly produce a result based on the ended character stream. Furthermore, the enter key is an end character because other characters cannot cause the result to be modified. On devices with reduced input keypads, such as mobile phones, special keys (e.g., "down arrow") may be used to indicate the end of a word in an ambiguous character sequence.
Regardless of how the transfer between the client 110 and the host 130 is structured, the client 110 sends a character stream to the host (step 220), which receives the character stream (step 230). Host 130 then analyzes the character stream (step 240). Typically, analyzing the character stream includes correlating the received character stream with one or more results responsive to the user's predicted interest. In one example, the character stream may be compared to metadata tags used to describe content accessible to the host 130. For example, when the character stream includes "Nashvill," host 130 may expect that "Nashvill" will eventually end up as "Nashvill, TN" and identify the unique Nashvill TN in the web page and/or write the web page for summary with a metadata tag with "Nashvill, TN. However, the host 130 does not need to look for identical character matches. For example, host 130 may predict that a user entering "Nashvill" is expected to be interested in country music. Accordingly, when the host 130 analyzes the results, the host 130 may also identify results related to country music, even if the results are not related to Nashville, TN. In another example illustrating how supplemental information may be used to analyze a character stream, the results may be converted to include country music only when the host determines that the user is not from Tennessee.
Analyzing the character stream may include ranking the relative relevance of the results. For example, a widely visited Nashville website (e.g., Nashville tourist office) may be scored as more relevant to non-Nashville residents than a website that includes a personal web diary ("blog") of a Nashville resident. The results may be produced in a manner such that more relevant results are returned before less relevant results are returned.
After the character stream is analyzed and the results are recognized, host 130 exchanges the results with client 110. The results may be controlled to comply with display constraints of the network or the client. For example, if the network has limited bandwidth or the client has limited display capability, the host 130 may construct a transport to avoid network congestion or may modify the results to provide more appropriate results (e.g., remove images from returned results).
Client 110 receives the results (step 260). Client 110 may perform additional processing to examine the results to increase display effectiveness. For example, client 110 may associate the returned results with a user profile and tailor the results to be displayed accordingly. In another example, the client may analyze the results to better develop user profiles and interests to increase the effectiveness of subsequent character stream operations. Client 110 displays the results, whether or not the results are subject to intermediate processing (step 270). The results are presented in a manner that enables the user to select one of the results rather than ending their intended character sequence. For example, when a user types in an entry in a keyword retrieval application, a drop down window with one or more possible results may appear in the keyword retrieval application. As the user continues to tap in, the results appearing in the drop-down window may be adjusted to reflect the most recent analysis of the character stream. When the user sees a result of interest, the user can select the result (step 280). Selection of a result causes the application to launch a code segment associated with the selected result (step 290). For example, when a user selects a result describing a map of an area, a web browser accessing a map website may be launched to display a map related to the inputted character stream.
Fig. 3 shows a flow chart 300 illustrating how client 110 exchanges character streams with host 130 to retrieve map information residing on database 140. In general, the system and operations described in fig. 3 relate to the systems and operations described above with reference to fig. 1 and 2. However, FIG. 3 illustrates how host 130 may interface with database 140 to retrieve results for client 110. Client 110 exchanges character streams with host 130. The host then uses the database 140 in its character stream analysis to produce results. The host provides the results to client 110, and client 110 then presents the results and launches the appropriate code segment when the user selects a result of interest.
Initially, the user of client 110 types in the character stream "Dulles" (step 305). The client exchanges the character stream with the host 130 (step 310), and the host 130 receives the character stream "Dulles" (step 315). Host 130 analyzes the character stream "Dulles" (step 320). The host 130 may perform local analysis of the character stream to compare the character stream to common results cached on the host 130, while distributing the customized query to a dedicated database to identify results of greater relevance. For example, in flow diagram 300, analyzing the character stream includes polling a map database associated with "Dulles" (step 325). Although the flow diagram 300 depicts one database 140 being accessed, multiple databases may be polled. Examples of other databases that may be polled include, but are not limited to, message databases, directory services, yellow pages, and financial databases.
Database 140 receives a poll for "Dulles" (step 330). The "Dulles" is then analyzed (step 335) and the results retrieved. For example, multiple maps related to Virginia Dulles may be identified and/or retrieved. This may include a map of the Dulles township, a route to the Dulles international airport, and a route to various corporate offices located in Dulles, virginia. The results are then returned to the host 130 (step 340).
Upon receiving the results (step 345), the host 130 exchanges the "Dulles" results with the client (step 350). Exchanging results with the client may include synchronizing results received from multiple databases and identifying the result with the greatest degree of correlation. For example, multiple databases may be polled to analyze the character stream. The total number of results returned from the client 110 may be too large for the client 110 to process and/or display. Accordingly, the host 130 may filter and identify only those results that are relevant to the host. In one example, the most relevant results are returned to the client 110, while the results pool can still be used for analysis by subsequently received characters in the character stream. In another example, results from the database are received at different times. For example, a query that is accurately expanded and then matches the user's demographics may be longer than a query that compares the results to the most common results being retrieved. Exchanging results may include initially presenting the most common retrieved results and then subsequently presenting the results of the longer queries as they become available.
The client receives the "Dulles" results (step 355) and displays them (step 360). As shown, when client 110 receives a user selection to launch a mapping application related to "Dulles" (step 365), client 110 launches the mapping application for the selected "Dulles" result (step 370).
FIG. 4 illustrates a flow chart 400 showing how a client display may be modified based on updates to the character stream. In general, the system and operation shown in fig. 4 relate to the system and operation described above with reference to fig. 1 through 3. However, the flow diagram 400 illustrates how updates to the character stream may produce different results with which the user may interact. In particular, characters in a subsequently received character stream may produce a different set of results for client display. In this way, the user can modify the character stream and view the new results in real time based on the modifications.
Initially, the client receives the character stream "Spring" (step 405) and exchanges the character stream 410 with the host 130 (step 410). The host 130 receives the character stream "Spring" (step 415) and analyzes the character stream "Spring" (step 420). Host 130 and/or database 140 identify map results for the character stream "Spring" (step 425) and return these results to client 110 (step 430). The client receives the results associated with "Spring" (step 435) and displays them (step 440).
The client then receives and exchanges the additional characters in the character stream (step 445). For example, while the string "Spring" may identify information related to several cities of Springfield, the user may enter other information to confirm that Springfield is what the user wants in the user's mind and to thereby identify Springfield as being of interest to the user. Thus, the user may enter an "I" into the field as the next character to indicate an interest in Springfield, Illinois. The host 130 and/or database 140 receives and analyzes the additional characters (step 450). Host 130 and/or database 140 generates a new result set associated with the update, which is exchanged with client 110 (step 455). In the example using Springfield, Illinois, map and yellow page information associated with the Springfield, Illinois town may be exchanged.
Client 110 receives the update (step 460) and enables user interaction based on the update (step 465). For example, a list of maps, services, and other information related to Springfield, Illinois may be displayed.
Referring now to FIG. 5, exemplary results associated with a character stream having non-ending characters are shown in GUI 500. In general, GUI 500 may be displayed on client 110, described primarily with reference to FIG. 1, using the operations described with reference to FIGS. 2 through 4. GUI 500 illustrates code segments that may be invoked in a results page when a character stream is entered into a user application, such as a web browser. Specifically, text entry field 510 has received the character stream "aol" without having entered the carriage, as indicated by the cursor "|". GUI 500 includes results 520 that enable a search to be initiated for the string "AOL," results 530 that enable a code segment to be initiated for the AOL keyword "AOL," and results 540 that enable a code segment to retrieve "AOL" stock quotes that are shown being traded in the stock trading market at $ 15.32.
Referring now to FIG. 6, exemplary results for the character stream "Arlington, VA 22209" are shown in GUI 600. In general, GUI 600 relates to the systems, operations, and displays previously described with reference to FIGS. 1 through 5. However, GUI 600 illustrates different databases and/or applications that may be accessed from a user application. For example, when "Arlington, VA 22209" is inserted into the text entry field 610, the search code segment may be launched using the result 620, and the map code segment may be launched using the result 630.
In one example, the displays associated with results 620 and 630 have been retrieved by client 110. Alternatively, the content in the display that is relevant to the results 620 and 630 may need to be downloaded (e.g., from the host 130 and/or database 140).
FIG. 7 illustrates GUI 700 associated with the character stream "dentist". In general, GUI 700 relates to the systems, operations, and displays described above with reference to FIGS. 1 through 6. However, GUI 700 illustrates how a character stream may be analyzed to identify yellow page entries associated with the character stream.
GUI 700 includes a result 710 that enables a user to initiate a search for the character stream "dentist". Note that while in GUI 700 the character stream includes complete text of a dentist, shorter strings such as "dentist" or "dentist" may also be analyzed and used to generate results that initiate a search for the character string "dentist" or "dentist". Result 720 enables the user to launch a code segment so that the client can "go to" AOL keyword "Dentist".
Results 730 enable the user to initiate a search of the AOL yellow pages for the code segment of "Dentist". Note that while the results 730 have one result that initiates a search for the "Dentist" AOL yellow pages, other GUIs may include a list of available dentists. For example, if the user's location is known, a list of dentists in the user's zip code can be presented and the dentists sorted and presented by specialty. The results from the GUI may be selected to launch a web page for the dentist, launch a messaging application to exchange communications with the dentist, or launch a scheduling application to create a dentist appointment.
Referring now to fig. 8 and 9, GUIs 800 and 900 illustrate how the display results may be altered when additional characters in the character stream are received. In general, GUIs 800 and 900 relate to the systems, operations, and displays previously described with reference to fig. 1 through 7. However, GUIs 800 and 900 differ from the previous display in that: the results are not displayed in a drop down window as appears in fig. 5 to 7. Additionally, GUIs 800 and 900 illustrate how results can be generated and displayed using a portion of an envisioned character stream, and how updates to the character stream need not follow a prior character stream to accurately form a string of interest. GUI 800 shows a plurality of results 820 that appear after "Spring" has been entered into text entry field 810. GUI 900 indicates that after "I" is subsequently entered into text entry field 910, the results may be filtered such that only result 920 "Springfield, Illinois" is displayed. Note that the middle character (e.g., Spring)field"field" in Illinouis) is not included in the character stream.
Although GUIs 800 and 900 indicate that a map resource is being accessed, the operations described with respect to fig. 8 and 9 may also be applied in other applications and environments. Because the user types in a character stream within the mapping application, the results may be tailored to find the mapping results. This may be done by searching the map database or polling the host 130 with a modifier indicating that the map results should be retrieved. While GUIs 800 and 900 do not require or allow a user to specify map requirements or restrictions, other GUIs may allow a user to specify a database that is used to analyze a character stream (not shown).
Referring to FIG. 10, GUI 1000 is an exemplary message display that enables users to exchange message communications. In general, GUI 1000 relates to the systems and overview described above with reference to FIGS. 1 through 9. However, GUI 1000 illustrates message results that may be displayed when the character stream relates to message information. For example, when a user types "chattingchuck" in a text entry field (not shown), GUI 1000 may be displayed, enabling the user to send mail, send instant messages, add "chattingchuck" to an address book, block mail and instant messages from "chattingchuck," and/or view status or interests regarding "chattingchuck. Although fig. 10 illustrates a messaging application or operation associated with one user called "chattingchuck," results associated with more than one user may also be displayed. Similarly, when the user enters the "@" character (the AT character associated with the Internet mail system), options not related to the email message may be eliminated.
Other implementations are within the scope of the following claims. For example, while the operations describe examples of search results that involve character streams, the results need not include information that will ultimately be displayed upon launching the code segment. Rather, the results may include tags that describe the results that, if accepted, may be subsequently retrieved.
Similarly, the client and host applications may include assistants and spelling correction agents to increase the effectiveness of the retrieved results. The assistant may assist the user by retrieving similar results that relate to the meaning of the predicted character stream. For example, if the character stream includes "German cars," then results including the famous manufacturer of German cars including Benz, BMW, and Audi may be retrieved. The spelling correction agent may recognize that the user may type in a typographical error. In response, the spelling correction agent may correct the character stream by altering the character stream that has been typed on the desktop and/or by retrieving results related to the predicted input.
Similar to the spelling correction agent, the system may include a validation agent that may be used to validate URLs ("Uniform resource locators") entered in the character stream. For example, when a user enters an address for a website, the website address may be analyzed to determine whether device and file information is actually present and/or correct. When the URL information is incorrect, the system may parse the character stream to identify the correct or relevant URL address.
Client 110 may be used to intelligently present results related to media communications such as streaming audio and video communications. For example, a content provider or service provider may be publishing a discrete presentation of a large number of "channels" or "bands". The user may wish to survey channels to find channels that exhibit information most relevant to the user's interests. Thus, the user may enter a character stream that is related to the content the user considers interesting. For audio content, the character stream may relate to the name of an artist, album, or collection (e.g., song). For video content, the character stream may relate to a particular news conglomeration (e.g., TIME or CNN), a television program, an episode, or a theme play. Regardless, regardless of the underlying content, the character stream may be used to retrieve results that are relevant to the user interests expressed in the character stream. This may be done by comparing the entered character stream with subtitles or metadata associated with a particular media selection. In one example, the character stream may be compared to subtitles of available programs to identify results for the user. Thus, when a user enters a name in the character stream of a newsgroup, the subtitles of all possible programs (including on-demand and broadcast streams) may be searched to identify media streams that illustrate having that newsgroup.
The resulting media stream may be presented in a variety of formats. In one example, a drop down menu appears to enable the user to launch a media application associated with the retrieved results. In another example, when the media stream includes a video stream, video stream blocks similar to the tiling scheme in fig. 8 may be displayed. The video stream block may include a reduced bit rate presentation to provide a user with a brief indication of the video content available. An example of a larger bit rate video selection may be presented when a user selects one of the video blocks.
The systems and operations may be modified to operate in an intranet or a trusted environment. For example, rather than searching a public database, the system may be configured to contain security programs and implementations associated with the trusted environment. Thus, sales employees may be allowed access to customer and marketing databases when analyzing character streams. Engineers may be allowed to view technical and operational support databases to support their tasks, but may be prevented from analyzing character streams using sales databases. Management and/or research personnel may be allowed access to most or all of the database when analyzing the character stream.
The results may be stored on client 110 and/or host 130. For example, the host 130 may cache prior returned results that may be used in analyzing subsequent character streams. In another example, the previous selection results may be stored on the client, and subsequent character streams may be initially accessed using the previously stored results.
Client 110 may enable a user application to launch a message code segment. Alternatively, the user may be entering a character stream in a messaging application. For example, a user may be entering a character stream in an instant messaging application. The instant messaging application may communicate the character stream to the host 130 for analysis. Client 110 may receive the results and enable the client to send an instant message when the results indicate that the identified user is online.
Swapping updates may include swapping only portions of the character stream that have changed since the character stream was last swapped. For example, when a user initially types in information into a first application, the first application may send a message to the host 130 in the initially entered character stream (e.g., "Spring"). When the user enters an update to the character stream (e.g., by typing "field" after "Spring"), the client 110 may send new information without sending old information (e.g., the client 110 then sends "field" instead of "Springfield"). Alternatively, client 110 may send the current character stream. For example, the client 110 may first send "Spring" and then send "Springfield" later.
Client 110 and/or host 130 may determine that there is no relevant result and prevent other processing resources from being used. For example, a user may be entering a character stream where the host 130 has no relevant information and produces no results. When host 130 determines that there is no information, host 130 may interface with client 110 to prevent other updates from being exchanged. This occurs when the user enters a character stream that is unrelated to the content accessible to the host 130. For example, host 130 may determine that CHARACTERSTREAM1 will not produce any results, and that any extension of CHARACTERSTREAM1 will not produce any results. If the user enters additional information, such as CHARACTERSTREAM123, the first application will not send any updated information to the host 130. However, if the user modifies the character stream using the delete key such that CHARACTERSTREAM1 is changed to CHARACTERSTREAM, the character stream may be exchanged.
Client 110 may perform a preliminary analysis to prevent the common character stream from being analyzed when the common character stream produces results that are not responsive to the user's predicted interest. For example, when "the" appears in the character stream, particularly in the beginning of the character stream, using the character stream "the" to produce results may produce too many results, and little if any, in response to the user's predicted interest. Thus, exchanging the character stream may be delayed until the character stream makes sense. In this way, the exchange character stream "the" may be delayed until the character stream reads "the greenkis columns" or other character streams that may produce meaningful results. Similarly, the character stream may be reconstructed to remove strings (on the client 110 or host 130) in the character stream that are unlikely to contribute to the analysis. In this way, strings such as "the", "a", and "this" that appear in the character stream may be removed from the character stream prior to exchanging the character stream.
Displaying the results may include displaying the results directly, in addition to displaying a label for the results that enables the code segment for the results to be launched. For example, the results may include the actual stock quote, rather than the label of the code segment used to generate the stock quote. The displayed results may include a summary or brief description of the news item. The summary may also be configured to retrieve more detailed articles about the news item when the user selects the news item.
While many of the operations are described with respect to a character stream received on a personal computer, the operations may also be performed in response to receiving one or more characters (e.g., an ambiguous character sequence) from a device (e.g., a wireless handset or phone) having a limited display and/or reduced input keypad. For example, FIG. 11 illustrates a mobile device 1100 that can be configured to return results related to ambiguous characters. In particular, the mobile device 1100 is configured to enable a user to select a sequence of one or more ambiguous characters on a reduced input keypad. The mobile device 1100 exchanges ambiguous character sequences with a host and presents results responsive to predicted interest. To enable a better understanding of the details, the mobile device display 1110 has been designed to provide a larger presentation of the mobile device display 1110.
Mobile device display 1100 includes input display 1120 and results display 1130. Input display 1120 enables the user to learn about ambiguous characters that have been input and result display 1130 enables the user to learn about results that are responsive to the user's predicted interest. As shown, input display 1120 indicates that an ambiguous character "733" has been entered, where "7" and "3" represent ambiguous characters appearing in a keypad on mobile device 1100. The characters "7" and "3" are ambiguous, meaning that the number "7" may represent the letters "P", "Q", "R", or "S" in addition to the number "7", and the number "3" may represent the letters "D", "E", or "F" in addition to the number "3".
The results display 1130 presents results related to the ambiguous character that has been entered. In particular, mobile device 1100 can provide a sequence of one or more ambiguous characters to a host (not shown). The host computer may then analyze the ambiguous character sequences, identify results responsive to the user's predicted interest, and return the results to the mobile device. Using the results, mobile device 1100 is configured to present the results in results display 1130.
As shown, the host has determined that a user typing "733" may be searching for information related to the word "Red," such as Washington Redskins. For example, the host may determine that the ambiguous character "7" represents "R", the ambiguous character "3" represents "E", and the ambiguous character "3" represents "D".
Results 1140 through 1144 represent one or more applications that may be launched in response to a user selection of one or more results. In response to the host determining that the user entering the ambiguous character "733" may be interested in words that include and/or begin with "RE" or "RED," mobile device 1100 displays results 1140 through 1144 in results display 1130. A first result 1140 shows scores for the Washington reds football game and includes links for retrieving other information about the reds game. The second result 1141 includes the result from the directory services application and includes a phone list of RED Lobster. The user may select the second result 1140 to call the listed telephone numbers. The third result 1142 includes movie information of the movie "Red Dragon". The third result 1142 may be selected in response to a user selection to purchase a ticket or provide a movie listing. The fourth result 1143 includes an activation code segment constructed and arranged to enable a user to purchase a DVD of The movie "The Ref". The fifth result 1144 includes a link that may be selected to retrieve and present a map of Redondo Beach, Canada.
The mobile device display 1110 also includes a scroll bar 1150. Scrollbar 1150 may be used to indicate and access more results than may be presented in results display 1130.
In one implementation, mobile device 1100 presents results 1140 through 1144 in response to determining that results 1140 through 1144 are the most common results for a sequence of ambiguous characters "733". Alternatively or in addition, the results may be responsive to a particular user (e.g., the host has determined that the particular user is a reds fan). In another variation, the mobile device 1100 presents results responsive to the location of the mobile device. More precisely, the ambiguous character sequence can be analyzed using the location of the mobile device 1100. For example, the host computer may receive location information for the mobile device 1100 (e.g., near a restaurant district including Red Lobster restaurant) and return results for nearby restaurants associated with the ambiguous character sequence.
As shown, input display 1130 includes a cursor 1132. Cursor 1132 indicates that additional ambiguous characters may be exchanged in the ambiguous character sequence. Additional ambiguous characters can be used to further disambiguate the results.
For example, fig. 12 illustrates a mobile device 1200 configured to return results responsive to additional input of ambiguous characters after initially presenting results responsive to ambiguous characters. In general, mobile device 1200 is related to mobile device 1100 described with reference to FIG. 11. However, mobile device 1200 illustrates how the results appearing in results display 1230 may be modified in response to receiving additional ambiguous characters. The host may use additional ambiguous characters to more accurately tailor the results.
As shown in the input portion 1220, the mobile device 1200 indicates that "7" is input in addition to "733" shown in fig. 11. As a result, the ambiguous character sequence 1231 is "7337". Using "7337" as the ambiguous character sequence, mobile device 1200 presents results 1240-1244 in results display 1230.
While the first result 1240 in fig. 12 is similar to the first result 1140 in fig. 11 (updating the current score), other results may differ from the results 1140 through 1144 shown in fig. 11 to reflect the addition of another ambiguous character. For example, in contrast to results that include only "Red" as the character sequence (e.g., reds), the results display 1230 no longer includes results that include the complete word "Red" such as "Red Lobster" or "Red Dragon". Reflecting that "7" is added to the ambiguous character sequence, second result 1241 includes a link to information about cincinnatarreds. Note that on some keypads, the "7" key may also represent the characters "P", "Q", "R", and "S" in addition to the number "7". Thus, "7337" may represent "REDS". Further, the second result 1241 illustrates that the result need not be limited to results beginning with a fuzzy character sequence. For example, second result 1241 relates to an entry beginning with "Cincinnati".
The third result 1242 includes an application that may be selected to receive driving directions for Washington Redskins race locations. Fourth result 1243 includes a program that may be selected to purchase sports event tickets. Fifth result 1243 includes the result from the directory service application and includes the list item for "Reds Saloon".
Although fig. 11 and 12 illustrate that the actual results are presented, the stem words may also be presented. The stem may represent a word or a portion of a result. To the extent that a stem is used in multiple results, the selected stem can be used to present multiple results and/or other stems that occur after or based on the existing stem.
While fig. 11 and 12 illustrate that the ambiguous character sequence may be resolved without necessarily specifying the structure (e.g., length) of the word, the user may resolve the ambiguous character stream using a special character such as a "space" character. Fig. 13 illustrates a mobile device 1300 configured for returning results responsive to space character input after initially presenting results responsive to ambiguous character sequences. The entry of a "space" character may be used to delineate word boundaries in the ambiguous character sequence, for example to indicate whether the user is interested in results relating to the complete word "red" rather than just words that include the word "red" (e.g., Washington reds). The results display 1330 may be modified to show only results related to Red Eagle. Result display 1330 differs from result display 1130 of FIG. 11 in that results 1341 through 1345 are all results related to RedEagle, while result display 1130 includes only one result related to Redskins. The results display 1330 includes a header 1340 represented by the heading "Red Eagle" to help the user know that all results are related to Red Eagle. While spaces may be used to indicate the acceptability of the results being presented, other results may be presented that are also supported by ambiguous character sequences with spaces. For example, in the case where "733" has been input, a result relating to "SEE" may also be returned.
The user may use the "next word" key to advance through different stems. For example, while "RED" may represent a possible word step, the user may use soft keys to advance through different stems. In the case of "733," the stem may include "REF" and "SEE". As a result of the user's progression through different stems, the stem that the user has progressed to may be determined to be the stem most likely to respond to the user's predicted interest, and thus be presented in front of other stems.
The first result 1341 in the results display 1330 is similar to the first result 1140 of the athletic event referenced in FIG. 11. "Red Eagle" can be filtered out or reduced as a result of rendering the header 1340 of "Red Eagle". The second result 1342 includes an application that can be selected for purchasing tickets to the Red Eagle game. The third result 1343 includes an application that can be selected to display the latest headline and news information about Red Eagle. The fourth result 1344 includes an application that may be selected for receiving a driving route for a Red Eagle venue. The fifth result 1345 includes an application that may be selected for receiving weather condition information about the Red Eagle venue.
Input other than space characters may be used to resolve ambiguous character sequences. In one implementation, the ambiguous character sequence may be resolved by, for example, entering a non-alphanumeric character such as "-" or "@" from a page symbol or by pressing an arrow button on the mobile device.
The results in results displays 1130, 1230, and 1330 may be selected by the user. When a user selects a result, the mobile device is typically configured to perform a specific action in response to the selected result. For example, to obtain more information about the Red Eagle football game, the user may select the result 1341 in FIG. 13.
Showing a display that may be displayed in response to a selection result, fig. 14 illustrates a mobile device 1400 configured for displaying information about an ongoing football game. The contest information includes reds scores 1421, teams of gigas scores 1422, various contest statistics 1423, and live story information section 1424.
FIG. 15 illustrates a mobile device 1500 configured for displaying advertisements associated with user input. The advertisements 1541 to 1543 shown in the mobile device 1510 correspond to products and services related to Washington reds. The primary advertisement 1541 represents a classified advertisement and provides three reds tickets on sale. The secondary advertisement 1542 is provided on a Redskins jersey that is sold. The tertiary advertisement 1542 is an advertisement for visiting an online store that sells Redskins paraphernalia.
In one implementation, the mobile device 1500 presents the advertisements 1541 through 1543 in response to user selection results. Alternatively, or in addition, the advertisement may be responsive to a sequence of ambiguous characters. For example, an advertisement providing a Red Lobster discount may have been displayed before narrowing the search to return only Redskins results. The advertisement may also be responsive to the particular user, for example, where the shopping habits of the particular user are known.
FIG. 16 illustrates a mobile device display 1600 of a mobile device configured to return results related to ambiguous character sequences. The result 1611 presents a sequence of ambiguous characters. The result 1611 displays the text "Spring," representing a result in response to the ambiguous character sequence "777464". In one implementation, the results presented in results 1611 are related to one or more results. In another implementation, the results 1611 are responsive to user preferences and/or profiles. For example, as shown in FIG. 16, in the case where the user enters the ambiguous character sequence "777464," the mobile device may present "Spring" when the user's location is determined to be near Springfield, Illinois.
FIG. 16 also illustrates the use of icons to provide an indication of applications that are invoked in response to selecting a particular result. Icons 1612 to 1614 are displayed in association with each result. Icon 1612 displays an airplane icon associated with the first result indicating that selection of the first result launches an application for planning and scheduling a trip. Icon 1613 displays the earth associated with the second result for indicating that selecting the second result launches the mapping application. Icon 1614 displays a table icon associated with the third result indicating that selection of the third result launches the restaurant application. Although the operation is described with respect to an application being launched, the result may also relate to an object such as content (e.g., a ring tone or a sound tape).
The mobile device display 1600 includes special symbols 1616 (e.g., down arrow symbols) corresponding to buttons on the mobile device. Using the buttons associated with the special symbols, the user can advance through the results and view other results in addition to those presented on the mobile device display 1600. Additionally, the mobile device display 1600 may include an additional "shortcut" for the user to select a particular result. As shown, the sub-string "field" from the string "Springfield" is underlined in the second result displayed on the mobile device display 1600. The underlined text indicates that the user may select the second result by entering the character "f" or by entering a fuzzy character corresponding to "f," such as the number "3".
Fig. 17 illustrates how the result may change after the input of each narrowing result. For example, when the "8 TUV" key is added to the input sequence, it is highly likely that the "Fullerton, CA" will move from the second position to the first position, while the "Dulles" is cleared from consideration. The third result in the second display, currently labeled 1711, illustrates that the input sequence "3855378" may retrieve a reasonable result, although in this case the sequence does not yet match the area code preceding the telephone number.
In fig. 16, the underlined text portion relates to a subsequent character in the ambiguous character sequence that has not been entered. FIG. 17 also illustrates how the analysis may return results related to characters that appear at the beginning of the disambiguation word that have not yet been typed. In another implementation (not shown), results with underlined characters may be selected to use the selected results as words. In another implementation, the underlined characters represent "shortcuts" to "keys" that may be selected. Other substrings related to other results may be underlined to indicate shortcut paths to other results. For example, when the underlined text represents an alternate shortcut path, the third result illustrates that after 555- (1711) has been entered, "5" can be entered to select the application associated with the telephone number "555-.
In one implementation, the selection shortcut is represented as a number next to each result (not shown). The user may press one key to indicate that the input has ended and enter the selection mode, and then press the key corresponding to the number next to the desired result. On another device, the user may need to press the corresponding key for a period of time (e.g., 1 second or more) instead of entering a separate selection mode. On a touch screen device, the user may directly touch the desired result to invoke a default action or display a selection menu.
Special input keys, such as soft keys, may be used to quickly navigate the results. For example, a first special character may be used to display only contact information used for file output (e.g., pressing "#" only returns results from an address book or directory service application), while a second special character may be used to filter out other results (e.g., pressing ""results associated with the address book application or directory service application will be removed). Alternatively or in addition, entering special characters may be used to automatically select results (e.g., pressing the left arrow to select the map application).
Additional shortcut keys may also be used to quickly navigate the results, such as dedicated keys configured to reduce the number and type of results, mode specific keys, or menu options. For example, selecting the "options" menu item labeled "show contacts" while the results are displayed may filter out items that do not provide contact information. Alternatively, the search results may be passed to an application invoked by the user; for example, if the user presses a dedicated "Web" key, a browser with an associated Web page address that is ready for selection may be launched.
FIG. 18 includes four exemplary mobile device displays illustrating how ambiguous character sequences can be typed and analyzed to produce words as a result for inclusion in a text message. The first mobile device display 1810 indicates that "3855378" has been entered. The first mobile device display 1810 also includes the results. In one implementation, the selection result may execute an application on the mobile device. In another implementation, the selection result may include initially executing the application on the host and/or exposing data resulting from executing the application on the host.
The mobile device display 1820 indicates that the ambiguous character sequence can be resolved into "3855378" and "fullest". The "more" flag is displayed below the result. The user may select a "funest" result from the results to insert the string "funest" into the text message. Alternatively, as illustrated in the second mobile device display 1820, the user may select the "more" flag to present other results. Other results are then presented as indicated by the "retrieve" flag and corresponding schedule in the third mobile device display 1830. The mobile device display 1840 displays the other results. For example, the mobile device may use local processing capabilities to present a first result and retrieve other results obtained from the host in response to a user request for the other results.
The results may be retrieved from a specialized database based on manual or automatic validation of the information that needs to be disambiguated. For example, if the user is a medical professional and typically uses many medical terms that are not stored locally, the user may select a medical term pattern or the preliminary analysis code segment may determine that medical terms have been used in the past and will use a remote medical term database to analyze the ambiguous character sequence. Other proprietary databases include legal terms, personal address books, or AOL keywords. Likewise, other databases may include common spelling errors or modern words and phrases such as slang and news headlines.
Similar to fig. 18, fig. 19 includes four exemplary mobile device displays associated with a mobile device configured for receiving an ambiguous character sequence and retrieving results responsive to the ambiguous character sequence. The mobile device display 1910 indicates that "2826483" has been typed as a sequence of ambiguous characters. The mobile device display 1910 includes results with the character sequences "2826483" and "avangule". The "more" flag is presented below the result. Mobile device display 1920 and mobile device display 1930 illustrate how the display may be modified after the user selects the "more" flag, retrieving other results by the host.
The mobile device display 1940 includes other results retrieved from the host. The results included the word "slang" cu2 nite. The mobile device display 1940 also includes a prompt 1941 to download a "TXT slang" dictionary in cents of 25. The user who decides to download the dictionary may select the "yes" input key 1942, and the user who decides not to download the dictionary may select the "no" input key 1943.
In one implementation, the results may be returned to a "plain text" application that has been launched (e.g., a text message is being generated). Alternatively or in addition, the application may be launched in response to entry of the ambiguous character sequence. Also, the selection result may launch a rich array of applications, such as a multimedia application or a geo-location service. For example, FIG. 20 illustrates a Java applet that may be launched in response to selecting a resulting application.
Other examples of results that may be retrieved may include, but are not limited to, telephone numbers and/or keywords. Clicking on a result having a telephone number may allow a telephone call to be placed. A telephone call may be bridged to a telephone network or connected to an IP phone (e.g., a virtual phone application residing in the PC of the called user).
The results, as well as additional information depicting results previously returned or selected, may be stored on the client 110 and/or the host 130. For example, recently accessed results may be cached on the client 110, while a larger range of results histories may be cached on the host 130. The stored results may be accessed and used to analyze and produce results responsive to the predicted interests of the user.
To illustrate how the stored results may be used to analyze subsequent character streams, a prior search related to the full american football league (NFL) may generate a series of metadata tags. These metadata tags may be stored in a profile associated with the user. For example, a user searching for NFL-related information may add the metadata tags "NFL" and "football" to their user profile. The metadata tags may be used in subsequent analysis. In this way, when a user types in "Falcons," other metadata tags related to the multiple meanings of "Falcons" may be generated and analyzed using the previously generated metadata tags. Examples of metadata tags associated with Falcons may include words such as "NFL", "Audubon Society", and "Sport of kings". The metadata tags from previous searches for NFL may be compared to the metadata tags generated by the input "Falcons". By associating results from previous searches with known metadata tags for words of interest, results are returned that are likely to be more responsive to the user's predicted interest. In this case, correlating the previous search with the results of the current search yields results related to NFL's Atlanta Falcons.
Results from multiple users may be used to determine results that are more responsive to predicted interests of different users. For example, if most of the users who enter "Falcons" as a character stream are determined to be interested in NFL, then a default rule that returns results related to the NFL team in response to "Falcons" may be established and employed. A more refined analysis may be performed by breaking the default rules when the user has a profile of other non-athletic aspects of "falcos" or has expressed interest in non-athletic aspects or has used modifiers such as "birds", "Audubon communities" or "tennons".
Although many of the operations are described with respect to an alphanumeric keypad, they may also be used in support of other input method input systems, including ideographic, font (stylic) input, and handwriting recognition guided systems. For example, handwritten strokes or stroke categories may be mapped to available keys so that a user may enter strokes of a desired character in a particular order. In another example, a phonetic alphabet is mapped to keys so that a user can enter a pinyin for a desired character. The user may then find and select a desired character from several characters that may be associated with the input sequence.
Analyzing the ambiguous character sequence may include results from a previous analysis. For example, the host computer may determine that two or more ideographic characters are often needed to form a word, vocabulary, or phrase. The host computer may recognize that the ambiguous character sequence may represent a portion of a phrase. In recognizing that the ambiguous sequence of characters represents a portion of a phrase, the host computer can reduce the need to analyze and/or select subsequent characters, ideograms, or words one by one.
In one implementation, the local analysis is performed prior to exchanging the ambiguous character sequence with the host. For example, if a user enters "Dulles" and the client does not have the desired word in the client's vocabulary or dictionary, the client may exchange "Dulles" with the host. In another implementation, the results retrieved from the host may be selectively or automatically loaded into a local dictionary on the client. For example, the client may reserve a specified amount of storage space for the most recently retrieved results and/or the most popular results.
In one implementation using handwriting recognition, the client may initially parse the user input into characters. A sequence of one or more characters may then be exchanged with the host. The host computer may be configured to analyze characters associated with characters that have been received so that results may be returned even if the user input is misrecognized. For example, a client having a touch screen using handwriting recognition may incorrectly recognize a first handwritten "e" character as a "c" character. The client may exchange "c" with the host. The host may modify the analysis in response to receiving an indication that the client is using handwriting recognition to resolve the input error in the preliminary handwriting recognition process. As a result, the host may return a result that is responsive to the first handwritten character of the ambiguous characters denoted as "c" and "e".
The client may submit indicative attributes and/or modifiers so that the host may provide results that are more likely to be responsive to the predicted interest of the user. In one implementation, the client indicates that the client is a wireless telephone with a reduced input keypad and limited display. As a result, the host may be configured to provide results suitable for limited display and/or related to mobile use. In one example, the host may provide results related to applications (e.g., directory services and mapping applications) that are most frequently accessed by the mobile user. In another example, a host configured to include map content in the results may be configured to be a "favorable" result near the user's location.
The results may be retrieved from multiple databases, including databases from different languages. The host may detect that a word from a different language has been selected and return a result as a result that is responsive to the different language that has been detected. For example, the host may provide German matches associated with ambiguous character sequences. In response to detecting that the user has selected a german term, the host computer may be configured to perform correlating subsequent inputs in the ambiguous character sequence with the german term of, for example, a german automobile manufacturer.
The spelling correction agent may recognize that the user may have entered a typing error. In response, the spelling correction agent may correct the default interpretation by altering the input sequence on the client and/or by retrieving the corrected results. For example, a sequence "typed in" from an auto-correcting touch screen keyboard may be analyzed and displayed on the client, but a "spelling corrected" interpretation may be used when exchanging ambiguous character sequences with the host.
The content provider may establish a "preferred" content area from which results should be initially returned. For example, a wireless carrier may enable access to content on a specialized host configured to supply content to a wireless telephone. The specialized host may selectively enable content access and/or reconfigure content stored elsewhere for better display on the wireless phone based on the status of the subscription.
The client may include a non-visual input and display system. In one implementation, the wireless telephone may include a text-to-speech engine that generates an audio signal associated with each result. In another implementation, the wireless telephone may include a wireless telephone that uses voice input to quickly navigate through results that have been returned. For example, a speech recognition engine on a wireless telephone may encounter difficulties in parsing a large vocabulary and/or a specific dialect. The user may rely on reducing the input keypad to initially enter the words that should be used. After some words are presented in the results, the speech recognition system may be activated and used to select from the results that have been presented.
In one implementation, a client may selectively activate a communication interface to a wireless network in response to receiving a threshold number of characters, or in response to receiving a threshold number of ambiguous characters. In another implementation, the client accesses an "always on" communication interface. In another implementation, the client accesses a low bandwidth communication interface to exchange ambiguous character sequences and/or low bandwidth results. If the user is accessing a result that is more resource intensive, such as a ring tone sample, a higher bandwidth communication interface may be established.
Multiple levels of disambiguation may be performed. For example, the host may analyze the fuzzy character stream and parse the fuzzy character stream into one or more words. For example, "24737" may be parsed into "BIRDS". These words may then be further parsed to reflect the ambiguous meaning of the word. For example, "24737" may be resolved as "Baltimore Orioles" for a user determined to be a baseball fan in the Great Baltimore region. In an implementation, additional disambiguation occurs after "24737" is parsed directly into "BIRDS". In another implementation, "24737" may be parsed directly into "Baltimore Orioles" when the host database supports a finer level of user profiles and motion vocabularies.

Claims (27)

1. A method of presenting information to a user, the method comprising:
receiving one or more ambiguous characters that can be resolved into one of at least two disambiguating characters;
exchanging at least one of the ambiguous characters with a host;
receiving results from the host that reflect disambiguated words associated with ambiguous characters exchanged with the host;
presenting the results in a manner such that a user can learn which disambiguating word is to be used upon the user selecting an aspect of the results; and
enabling a user to select an aspect of the result, resulting in use of a respective one of the disambiguating terms.
2. The method of claim 1, further comprising:
typing the one or more ambiguous characters using a wireless telephone having a reduced input keypad;
sending at least some of the ambiguous characters to the host over a wireless network;
presenting the results in a display on the wireless telephone; and
enabling a user to manipulate the reduced input keypad of the wireless telephone to select one of the results that may result in one of the disambiguating terms being used as an aspect of the selected disambiguating term.
3. The method of claim 1, further comprising:
enabling the user to type special characters;
selecting a subset from within the result using the special character; and
presenting the subset.
4. The method of claim 3, wherein enabling the user to type the special character comprises: enabling the user to select the "#" key, the "-" key, or the arrow button as a mechanism to effect the selection of the subset.
5. The method of claim 1, further comprising:
analyzing the one or more ambiguous characters prior to exchanging the sequence with the host;
presenting results in response to the step of analyzing the sequence;
enabling a user to interact with the results; and
at least some of the ambiguous characters are exchanged with the host to update the result as a result of the user interacting with the result.
6. The method of claim 1, further comprising:
determining whether a threshold number of ambiguous characters have been received; and
once a threshold number of ambiguous characters have been received, the ambiguous characters are exchanged.
7. The method of claim 6, further comprising:
determining whether an updated fuzzy character of an updated threshold has been received;
exchanging the updated fuzzy character once the updated threshold fuzzy character has been received;
receiving an updated result from the host; and
and presenting the updated result.
8. The method of claim 6, wherein establishing communication with the host comprises activating an inactive communication channel.
9. The method of claim 6, wherein establishing communication with the host includes accessing an active communication channel.
10. The method of claim 6, further comprising:
establishing communication with the host upon receiving a threshold number of ambiguous characters; and
ambiguous characters are exchanged when communication has been established.
11. The method of claim 6, further comprising:
establishing communication with the host upon receiving a threshold number of ambiguous characters and non-ambiguous characters; and
the ambiguous characters and the unambiguous characters are exchanged after the communication has been established.
12. The method of claim 1, further comprising:
receiving a non-ambiguous character; and
exchanging non-ambiguous characters with a host.
13. The method of claim 1, wherein receiving the ambiguous characters comprises receiving only the ambiguous characters.
14. The method of claim 1, wherein receiving the ambiguous characters comprises receiving a handwriting input derived from a handwriting recognition system.
15. The method of claim 1, wherein receiving the ambiguous character comprises receiving an indication of a handwritten stroke of an ideographic language.
16. A method of presenting information to a user, the method comprising:
receiving one or more ambiguous characters that can be resolved into one of at least two disambiguating characters;
analyzing fuzzy characters;
based on the analysis of the ambiguous characters, generating results identifying several user applications associated with the ambiguous characters;
presenting the results in a manner that enables a user to know which of several user applications is to be launched in response to a user selection of a respective aspect of the results; and
enabling a user to select an aspect of the result to cause launching of a user application corresponding to the selected aspect of the result.
17. The method of claim 16, further comprising:
typing the one or more ambiguous characters using a wireless telephone having a reduced input keypad;
correlating the ambiguous characters with disambiguation terms and identifying the several user applications based on the disambiguation terms;
presenting the results in a display of the wireless telephone with an indication of an application that will be launched upon user selection of an aspect of the results that corresponds to the user application; and
enabling the user to select an aspect of the results that corresponds to one of several user applications using the reduced input keypad of the wireless telephone.
18. The method of claim 17, further comprising:
based on the received one or more ambiguous characters, identifying a first respective disambiguation result obtainable by invoking the browser application;
identifying, based on the received one or more ambiguous characters, a second corresponding disambiguation result obtainable by invoking the directory services application;
presenting the first and second respective disambiguation results; and
enabling the user to select either the first corresponding result or the second corresponding result.
19. The method of claim 18, wherein identifying a first corresponding disambiguation result obtainable by invoking the browser application comprises: a first respective disambiguation result that may be obtained by invoking a browser application configured to render content using a markup language other than hypertext markup language (HTML) is identified.
20. The method of claim 18, wherein identifying a first corresponding disambiguation result obtainable by invoking the browser application comprises: enabling a user to access different applications through the browser application.
21. The method of claim 20, wherein enabling the user to access the different application through the browser application comprises: enabling a user to access at least one of a map service, a web browsing service, an advertising service, an instant messaging service, and an email service.
22. The method of claim 17, wherein the step of presenting the results in a display of the wireless telephone with the indication of the associated application comprises: the results are presented with an icon representing the application.
23. The method of claim 16, further comprising: the ambiguous characters are correlated with the disambiguation terms, and the several user applications are identified based on the disambiguation terms.
24. A computer program on a computer readable medium configured to present information to a user, the computer program comprising:
an input code segment constructed and arranged to receive one or more ambiguous characters that can be resolved into one of at least two disambiguating characters;
an exchange code segment constructed and arranged to exchange at least one of the ambiguous characters with a host;
a receiving code segment constructed and arranged to receive from the host a result reflecting a disambiguating word associated with a ambiguous character exchanged with the host;
a presentation code segment constructed and arranged to present the results in a manner that enables a user to understand which disambiguating word is to be used upon the user selecting an aspect of the results; and
an enabling code segment constructed and arranged to enable a user to select an aspect of the result to cause use of a corresponding one of the disambiguating terms.
25. A computer program on a computer readable medium configured to present information to a user, the computer program comprising:
an input code segment constructed and arranged to receive one or more ambiguous characters that can be resolved into one of at least two disambiguating characters;
an analysis code segment constructed and arranged to analyze the fuzzy character;
a result code segment constructed and arranged to generate results identifying several user applications associated with the ambiguous characters based on an analysis of the ambiguous characters;
a presentation code segment constructed and arranged to present the results in a manner that enables a user to know which of several user applications is to be launched in response to a user selection of a corresponding aspect of the results; and
a selection code segment constructed and arranged to enable a user to select an aspect of the result to cause launching of a user application corresponding to the selected aspect of the result.
26. The computer program of claim 25 wherein the rendering code segment is constructed and arranged to: the results are presented with an icon representing the application.
27. The computer program of claim 25, further comprising: is constructed and arranged to correlate the ambiguous characters with a disambiguation term and to identify relevant code segments for the several user applications based on the disambiguation term.
HK09105526.3A 2004-07-09 2005-07-11 Disambiguating ambiguous characters HK1129470A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60/586,502 2004-07-09

Publications (1)

Publication Number Publication Date
HK1129470A true HK1129470A (en) 2009-11-27

Family

ID=

Similar Documents

Publication Publication Date Title
CA2578791C (en) Disambiguating ambiguous characters
US7840579B2 (en) Mobile device retrieval and navigation
KR100799658B1 (en) Host-Based Intelligent Results Associated with Character Streams
US8745051B2 (en) Resource locator suggestions from input character sequence
HK1129470A (en) Disambiguating ambiguous characters