WO2007089663A2 - System and method for incremental user query on handheld device - Google Patents

System and method for incremental user query on handheld device Download PDF

Info

Publication number
WO2007089663A2
WO2007089663A2 PCT/US2007/002300 US2007002300W WO2007089663A2 WO 2007089663 A2 WO2007089663 A2 WO 2007089663A2 US 2007002300 W US2007002300 W US 2007002300W WO 2007089663 A2 WO2007089663 A2 WO 2007089663A2
Authority
WO
WIPO (PCT)
Prior art keywords
subsequence
client device
content items
user
input
Prior art date
Application number
PCT/US2007/002300
Other languages
French (fr)
Other versions
WO2007089663A3 (en
Inventor
Sankar Ardhanari
Viswanathan Thiagarajan
Gurudutt Pai
Murali Aravamudan
Kajamalai G. Ramakrishnan
Ravi Krishna
Original Assignee
Veveo, Inc.
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 Veveo, Inc. filed Critical Veveo, Inc.
Publication of WO2007089663A2 publication Critical patent/WO2007089663A2/en
Publication of WO2007089663A3 publication Critical patent/WO2007089663A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2425Iterative querying; Query formulation based on the results of a preceding query

Definitions

  • the present invention relates to performing incremental finds on a remote server system in response to incremental user query input on a handheld client device. More particularly, the invention relates to transmitting subsequences of a sequence of incremental query actions to the remote server system and processing on the client device a set of content items returned by the remote server system based on later received, more complete, subsequences of incremental query actions.
  • TCP Transmission Control Protocol
  • the invention features a method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom.
  • the handheld client device receives incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system, the incremental input incrementally identifies descriptive terms associated with the desired content items.
  • the handheld client device transmits a first subsequence of the incremental input to the remote server system.
  • the remote server system receives the first subsequence and selects a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmits a reply including the first set of content items to the handheld client device.
  • the handheld client device receives the first set of content items and selects a second set of content items from the first set based on a second subsequence of the incremental input.
  • the second subsequence is larger than the first subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the first subsequence.
  • the handheld client device orders the second set of content items for presentation in accordance with one or more criteria and presents the ordered set to the user.
  • the handheld client device transmits the second subsequence of the incremental input to the remote server system.
  • the remote server system receives the second subsequence, selects a third set of content items based on the second subsequence and the descriptive terms associated with the content items, and transmits a reply including the third set of content items to the handheld client device.
  • the handheld client device transmits the second subsequence of the incremental input to the remote server system if a time threshold has elapsed.
  • the time threshold is an average amount of time for the remote server system to reply to a transmission from the handheld client device.
  • the handheld client device monitors an input latency for each incremental user action.
  • Each input latency is an amount of time between consecutive incremental user actions.
  • the sizes of the subsequences are based on the input . latency for incremental user actions.
  • the first subsequence includes all incremental user actions for identifying the desired content items that are entered before the user pauses for a time greater than a predetermined threshold.
  • the predetermined threshold is an average input latency for the user to incrementally input a user action.
  • At least one of the handheld client device and the remote server system monitors an average network roundtrip latency.
  • the average network roundtrip latency is an average amount of time for the remote server system to reply to a transmission from the handheld client device.
  • the sizes of the subsequences are based on the average network roundtrip latency.
  • the handheld client device transmits a self- sufficient message to the remote server system.
  • the self-sufficient message includes the first subsequence and all relevant context for the first subsequence including previous subsequences, if any, so that the remote server system does not need information in a previous message to respond to the self-sufficient message.
  • the handheld client device formats messages for transmission to the remote server system to be less than a predetermined size.
  • the incremental input consists of text entry only, browse actions only, or a combination of text entry and browse actions.
  • the incremental input includes ambiguous text input.
  • the invention features a method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom.
  • the handheld client device receives incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system.
  • the incremental input incrementally identifies descriptive terms associated with the desired content items.
  • the handheld client device transmits a first subsequence of the incremental input to the remote server system.
  • the remote server system receives the first subsequence and selects a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmits a reply including the first set of content items to the handheld client device.
  • the handheld client device transmits a second subsequence of the incremental input to the remote server system.
  • the second subsequence is larger than the first subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the first subsequence.
  • the remote server system receives the second subsequence and selects a second set of content items based on the- second subsequence and the descriptive terms associated with the content items and transmits a reply including the second set of content items to the handheld client device.
  • the handheld client device receives the first and second set of content items and aborts processing on the set of content items corresponding to the subsequence transmitted earlier in time.
  • the handheld client device selects a third set of content items from the set of content items corresponding to the subsequence transmitted later in time based on a third subsequence of the incremental input.
  • the handheld client device orders the third set of content items for presentation in accordance with one or more criteria and presents the ordered set to the user.
  • the second subsequence and the third subsequence are the same subsequence.
  • the third subsequence is larger than the second subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the second subsequence.
  • FIG. 1 illustrates a keypad with overloaded keys.
  • FIG. 2 illustrates a reduced text entry search system in accordance with one or more embodiments of the invention being used in a network configuration with round trip latencies and packet losses.
  • Fig. 3 illustrates device configuration options to perform navigation of remotely resident information.
  • Fig. 4 illustrates a flow chart for the selective retransmission of unanswered requests.
  • Fig. 5 illustrates a node arrangement for searching for content items using browse actions.
  • Fig. 6A illustrates an instance of a mobile device interface used to perform navigation of remotely resident information.
  • Fig. 6B illustrates the various states user can transition through to arrive at the desired result through navigation of remotely resident information.
  • Fig. 7 illustrates the various node traversals possible on a graph of information nodes. In this illustration a directed acyclic graph of nodes are shown for elucidatory purposes.
  • Fig. 8 illustrates state transitions possible when user inputs a new navigation request before the system responds to a previous user request.
  • Incremental search is a method of searching a catalog of items by displaying results that correspond to each user input action before the user has entered the entire search input. For example, if a user is entering a text string as a query, a system using an incremental search technique responds with results corresponding to each string formed as the user enters each character, for example, for a query string "Browns", the strings formed during entry of the complete string are "B", "Br", “Bro”, “Brow”, “Brown”, and “Browns”.
  • One type of incremental search system useful with input and/or display constrained devices includes inputting search criteria on the device, which then communicates over a network with a remote server that contains a catalog of items. Latencies in the request / response round trip can cause significant delays in the overall search experience for the user, as the user's device must wait for each response before processing the next query string portion.
  • Embodiments of the invention reduce the user's perceived latency of response of a remote server to a request made by a user's device performing an incremental search.
  • the user's device either retransmits unanswered requests or drops the unanswered request and transmits an updated cumulative request based on a comparison of (1) the average round trip latency of a request / response and (2) the average latency between the user's query actions, e.g., the time between key presses in a text-based query.
  • query results corresponding to an earlier query are received after additional query input has been provided, the user's device filters these results using the later-received query entries to provide a set of results considered relevant to the most recent query input.
  • Embodiments include transporting self-contained data packets for requests and responses to eliminate packet dependency.
  • the techniques described herein ensure packet loss does not require retransmission of an earlier packet due to the subsequent packets being dependent on an earlier packet that has been lost. This concept is described in greater detail below, however, the following example is provided.
  • a search string "BROWNS” being divided into two packets, the first containing the letters "BRO” and the second containing "WNS”, if the first packet was lost, only the letters "WNS" would be received by the remote server.
  • the query input would be incomplete, resulting in incorrect search results.
  • Another embodiment of the invention enables the system to accept user input, even if the user's navigation rate is faster than the system's response rate: Slowing the user's navigation by forcibly synchronizing user input with the response rate would also erode the feeling of realtime response.
  • the system permits the user, whenever meaningful, to provide input ahead of the system's response rate. It then processes any received results to respond to the most recent user input, as described above, thereby emulating the cumulative effect of all of the preceding requests whose responses are still unanswered without incurring "streaming" penalties, e.g., those due to TCP queues.
  • Embodiments of the present invention build on techniques, systems and methods disclosed in earlier filed applications, including but not limited to U.S. Patent Application No. 11/136,261 , entitled Method and System For Performing Searches For Television Programming Using Reduced Text Input, filed on May 24, 2005, U.S. Patent Application No. 11/235,928, entitled Method and System For Processing Ambiguous, Multiterm Search Queries, filed on September 27, 2005, U.S. Patent Application No. 11/356,788, entitled Method and System For Offsetting Network Latencies During Incremental Searching Using Local Caching And Predictive Fetching of Results From A Remote Server, filed on February 17, 2006, and U.S. Patent Application No.
  • Figure 1 illustrates an example of a keypad of a user input device for use with embodiments of the invention.
  • Embodiments of the invention can be used with input devices that have overloaded keypads that provide ambiguous text strings, wherein a press of a single key of the keypad represents multiple letters and/or numerals.
  • embodiments can use traditional keypads or keyboards providing nonambiguous input.
  • FIG. 2 illustrates a system for query and navigation of network resident information using a wide range of devices in accordance with one or more embodiments of the invention.
  • a server farm 201 serves as the source of information and relevance updates.
  • Network 202 functions as the distribution framework and can be a combination of wired and wireless connections.
  • the navigation devices can have a wide range of interface capabilities and include such devices as a hand-held device 203 (e.g. phone, PDA, or a music/video playback device) with limited display size and an overloaded or small QWERTY keypad, a television 204a coupled with a remote 204b having an overloaded or small QWERTY keypad, or a personal or laptop computer 205.
  • Fig. 3 illustrates multiple device configurations for use with embodiments of the invention.
  • the navigation device 203 of Fig. 2 has a display 301 , a processor 302, volatile memory 303, a text input interface 304, which is on-device, remote connectivity 305 to the server farm 201 through the network 202, a persistent storage 306.
  • the device 203 may not have local persistent storage 306.
  • the device 203 would have remote connectivity 305 to submit the query to the server farm 201 and retrieve results from it.
  • it does not have remote connectivity 305.
  • the navigation database is locally resident on a local persistent storage 306.
  • the persistent storage 306 can be a removable storage element, such as SD, SmartMedia, CompactFlash card etc.
  • the device 203 may use the remote connectivity for search/browse, relevance data updates, or for the case where the navigation database is distributed on the local storage 306 and on the server farm 201.
  • Fig. 4 illustrates a flow chart for the selective retransmission of unanswered requests.
  • the user performs a navigation action (step 401), which could be a browse or search action performed on the user's device.
  • a browse action is essentially a traversal of a tree of information nodes, while a search action is text entry.
  • the search process for text entry is based on an incremental search where results are shown as the user types in each character of the input string.
  • results are shown as the user types in each character of the input string.
  • the system responds with results correspond to the text "C”.
  • results correspond to the text "CA”.
  • this "CA” can be the first letters in the title of each result item, or the "CA” can be the first letters of a keyword associated with each result item.
  • the user's requests are sent to the server (step 402), at which point the user's device begins to track the time for the corresponding response to arrive from the server. If the response is not received within the greater of (1) the average inter- navigation latency, that is, the amount of time between button presses on the user's device and (2) the average round-trip latency between transmission of a query and receipt of the corresponding response (described below), the system transmits a new request to the server (step 404).
  • the new request is a cumulative request that captures the query information from the unanswered request as well as any new query information that the user has entered after the transmission of the initial request.
  • the system presents only those results that are relevant to both the initial query information and the later-entered query information. For example, the user enters "T” followed by "O".
  • the remote server responds by sending to the user's device a set of content items that have associated descriptive terms beginning with the letter "T”.
  • the user's device receives the response corresponding to "T” after "O” is pressed.
  • the user's device would select for presentation only those content items that have associated descriptive terms beginning with the letters "TO” (step 406).
  • the user's device utilizes the average inter-navigation latency and the average round-trip latency between transmission of a query and receipt of the corresponding response to determine when to transmit a new request to the server.
  • the user's device gathers information about these two latency parameters and continually calculates a rolling average for each parameter.
  • a query processing server can also determine the average round-trip latency in the same manner. Because the average round-trip latency can change very rapidly due to fluctuating network conditions, the window for this rolling average is relatively small, for example, on the order of seconds to minutes. However, because the average inter- navigation latency of the user is expected to change very little over time, the window for this rolling average is relatively large. This reflects the expectation that the user's typing speed and/or browsing speed is relatively constant. Thus, the window for this rolling average, for example, can be on the order of hours to days.
  • a browse action e.g., a hierarchy of nodes presented to the user
  • the user may be able to browse several levels by memory. If the node hierarchy has changed or is different than the user's recollection, the user will be able to correct the erroneous browse action when the user's device receives the response and renders the current node hierarchy.
  • Fig. 5 illustrates an illustrative node arrangement that has category nodes and content items.
  • the user wishes to browse the system's selection of comedy movies. Through continued use, the user has memorized the arrangement of the category nodes.
  • the browse cursor is focused on a "Phonebook" node 500.
  • the user also remembers that a "Video Content” node 505 is two selections to the right of Phonebook node 500, and a "Movies" node 510 is one selection down and one selection to the left.
  • the “Comedy" node 515 is one selection down from Movies node 510.
  • the user can rapidly enter in the browse actions of two selections to the right, one selection down, one selection left, and one selection down to arrive at the node for comedy movies.
  • the system queues the browse actions and transmits the entire cumulative sequence of browse actions the user performed as a single request.
  • the user's device drops the first request and sends the cumulative sequence of browse actions as a single request.
  • Fig. 6 A illustrates a mobile device 600A interface for navigating remotely resident information.
  • the user enters text using a keypad 602A, which may have overloaded keys similar to the 12-key keypad in Fig. 1.
  • the entered text is displayed in the text field 603 A.
  • the navigation interface on the device is a navigation button 605A that facilitates movement at least in the horizontal and vertical direction.
  • the results corresponding to the incremental text query or browse actions are displayed in the results area 601 A.
  • the user can scroll through the results by using a scroll interface 604A and/or by using the navigation buttons 605 A.
  • An alternate scroll interface 607A is shown in a browse only device 606A (e.g. a music player like an IPOD, but where content is remotely resident and the user remotely navigates this content).
  • the browse results are shown in the display 608A.
  • Fig. 6B illustrates the various states of navigation actions between which the user could freely transition in order to get to the desired result.
  • the user can (1) use text entry exclusively to find results (step 601B), (2) use browse actions, e.g., node traversals, exclusively to find results (step 602B), or (3) use a combination of text entry and browse actions to find results.
  • the actual methods used are influenced by both the user's intent and the information that is displayed. For example, the user can start by entering text (step 601B), scroll through the displayed results (step 602B), pick a non-terminal node (step 603B), and traverse the children of the non-terminal (step 602B).
  • the user discovers a result, he selects it (step 603B) and performs an appropriate action (step 604B).
  • a key requirement for transmission of cumulative requests is to make each request self-contained, that is, each request contains all of the query information, whether text entry, browse actions, or both.
  • the server system that processes the queries is stateless.
  • each later request does not depend on the system having received an earlier request in order to provide context for the later query.
  • a text entry request sequence can be made self-contained by keeping track of the entire input string and the current node in whose context the current text search was performed (e.g., ⁇ node stack context, text input>).
  • a browse action request sequence e.g., a linear scroll action
  • a browse action request sequence is made self-contained by making each scroll request an absolute range request, rather than a relative request, by providing the context of the node where the browse was performed (e.g., ⁇ node stack context, absolute range query>).
  • a node ascend/descend request can be captured in a similar manner, by providing both the browse action and the context in which it was performed (e.g., ⁇ node stack context, node ascend/descend count>).
  • a node select request is made self-contained by providing the context within which the selection action is made and the index of the selected node (e.g., ⁇ node stack context, select node index>).
  • cumulative combinations of these requests can also be done to make each request self-contained, where contiguous repetitive requests are coalesced into a single request.
  • the cumulative request can be a sequence of unanswered requests specified as shown above.
  • the user's device assigns a unique identifier to each request and sends this identifier to the system along with the request information.
  • the system includes this unique identifier with the response so that the user's device can keep track of which response is being returned.
  • an illustrative system utilizes five query processing servers behind an application switch.
  • the user's device sends a first query to the system.
  • the application switch receives the query and routes the query to the first query processing server.
  • the user's device Before the first server can respond, the user's device sends a second, more complete, cumulative query to the system, as described above.
  • the application switch routes the second query to the second query processing server.
  • the second server Before the first server can respond to the first query, the second server responds to the second query by transmitting a response to the user's device.
  • the user's device checks the unique identifier for the response corresponding to the second query and discovers that it is the first response received for the given sequence of queries. Thus, the user's device presents the response results (and applies any additional query input, as described above, if necessary).
  • Fig. 7 illustrates the various node traversals possible on a graph of information nodes. In this illustration, a directed acyclic graph of nodes is shown purely for elucidatory purposes.
  • sibling traversal (step 701) — traversal of all edges emanating from a node, (2) node descend (step 702) — traversal to an adjacent node, and (3) node ascent (step 703) — retracing a traversal path to a previous node.
  • Sibling traversals (step 701) can be done from the user's device ahead of the system response to the individual scroll actions because the system response includes all child nodes upon a node descent (step 702).
  • an ascent operation (step 703) can be done without waiting for the system to respond to the individual "back" operations because the user's device retains the node hierarchy that it has already descended.
  • node descend operations can be performed by the user ahead of system response only if the user has remembered the node hierarchy, otherwise, the user must wait until the system has responded to a descend action (step 702) in order for the user to perform a subsequent descend.
  • Fig. 8 illustrates the state transitions possible, and resulting new requests, when the user inputs a new navigation request before the system responds to a previous user request.
  • the new user input can be either text entry or browse actions.
  • the system accumulates the user actions that occur after a request has been sent. These actions are combined with the action comprising the earlier request to form a self-contained, cumulative request.
  • the system transmits this new self-contained, cumulative request in the event a response has not arrived in the timeout periods as explained in connection with Fig. 4.
  • the first column lists the various states from which the user may transition when he provides additional user input (either text input or browse actions).
  • the second column lists the various forms of input the user can provide while waiting for the system to respond.
  • the third column lists the new request the system will make if the earlier request is not received within the timeout periods described above.
  • the user's device sends a new request that is the cumulative text of both entries, i.e., "movies".
  • the selective retransmission system is implemented using UDP (User Datagram Protocol).
  • UDP User Datagram Protocol
  • the time-out for retransmission is dynamically computed, taking into account the inter-navigation latency and the round-trip latency, as described above.
  • the request and response packets are tuned to be the optimal size to minimize fragmentation at lower layers in the protocol stack (e.g., the data link layer and the physical layer of the OSI Reference Model). Because transmission packet sizes in the lower layers in the protocol stack may be governed by various standards, the application layer of the system may not be permitted to directly prevent the division of a single request into multiple packets at these lower layers.
  • the system can indirectly minimize or eliminate fragmentation of the packets at the lower layers. If fragmentation is eliminated when sending the request, the request is effectively made physically self-contained, that is, a single packet carries the user's request.
  • Each implementation will have different maximum transmission unit (MTU) values for the path between the user's device and the query processing servers depending on the details of the implementation. The particular MTU for a given implementation can be easily determined using known methods. Minimizing fragmentation has the added advantage of reducing the total number of packets sent between the user's device and the remote system elements, thereby reducing network traffic.
  • Embodiments of the invention can be implemented using TCP.
  • implementations determine the ideal subsequence size to send based on the average inter- navigation latency and the average round-trip latency.
  • the user's device When the round-trip latency is relatively high, the user's device will reduce the number of requests by sending larger subsequences.
  • Such embodiments accumulate each user action of a sequence of user search actions when the user enters each action at the typical user's entry speed (i.e., the average inter-navigation latency).
  • the user's device sends the entire cumulative request at once rather than sending each user action separately.
  • the system can also use a combination of UDP and TCP for transmitting request and response packets.
  • the user's device sends requests via a UDP channel.
  • the user's device sends request packets as described above (e.g., taking into account round-trip latency, inter-navigation latency, and superceded techniques).
  • the user's device receives response packets on both a UDP channel and a TCP channel.
  • the response packets that arrive via the TCP channel are reassembled in the order in which they were sent by the remote query system.
  • the order in which the content items were arranged by the query system is preserved on the user's device.
  • the response packets that arrive via the UDP channel are presented to the user in the order in which they arrive.
  • the system can implement result-ordering techniques, such as those disclosed in the applications incorporated above, for example.
  • the content items that are placed within a predetermined number of spots at the top of the result set by the query system are send via the TCP channel.
  • the remaining content items are sent via the UDP channel.
  • the user's device displays the response results sent via TCP upon receiving the TCP packets and adds the remaining results, sent via the UDP channel, to the result stack as they arrive.

Abstract

The invention features a method of reducing perceived network latency in processing a query from a handheld client device processed by a remote system. The client device receives incremental input including a sequence of incremental user actions for identifying content items on the remote system. The client device transmits a first subsequence of the input to the remote system for incrementally identifying descriptive terms associated with desired content items. The remote system selects a first set of content items based on the first subsequence and transmits them in a reply to the client device. The client device selects a second set of content items from the first set based on a second subsequence of the input. The second subsequence includes incremental input received by the client device while it was waiting for the first reply. The client device orders and presents the second set of content items to the user.

Description

METHODS AND SYSTEMS FOR TRANSMISSION OF SUBSEQUENCES OF INCREMENTAL QUERY ACTIONS AND SELECTION OF CONTENT ITEMS BASED
ON LATER RECEIVED SUBSEQUENCES Cross-Reference To Related Applications
[0001] This application claims the benefit under 35 U.S. C. §119(e) of U.S. Provisional Patent Application No. 60/762,709, filed on January 27, 2006, entitled A Method Of Selective Retransmission and Cumulative Dispatch Of Unanswered User Requests During Navigation Of Remotely Resident Information, which is herein incorporated by reference in its entirety. Background
Field of Invention
[0002] The present invention relates to performing incremental finds on a remote server system in response to incremental user query input on a handheld client device. More particularly, the invention relates to transmitting subsequences of a sequence of incremental query actions to the remote server system and processing on the client device a set of content items returned by the remote server system based on later received, more complete, subsequences of incremental query actions.
Description of Related Art
[0003] The challenges to build a responsive user interface on televisions and mobile devices for navigating remotely resident information are many, most noteworthy of which is the network bandwidth constraints and round-trip latencies. User interface studies have shown that the brain perceives response latencies when the response to a user input exceeds 150-200 milliseconds. Existing devices that perform searches on remotely resident information typically queue the user's queries as well as the responses from the remote system. Thus, the user must wait for all queued queries and results to be processed in order to obtain results to the most recent query entry.
[0004] Delivering remotely resident content in a timely manner is also important in streaming media delivery applications. Applications using datagram protocols send the media as a series of small packets. Although simple, this method is susceptible to packet loss, which results in missing data. Various error correction techniques are employed in an effort to reduce the impact of this missing data. The use of Transmission Control Protocol (TCP) in streaming applications helps to reduce packet loss, but applications using this protocol suffer from reduced throughput. Client applications can minimize these negative effects by buffering data for presentation to the user.
Summary
[0005] In one aspect, the invention features a method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom. The handheld client device receives incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system, the incremental input incrementally identifies descriptive terms associated with the desired content items. The handheld client device transmits a first subsequence of the incremental input to the remote server system. The remote server system receives the first subsequence and selects a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmits a reply including the first set of content items to the handheld client device. The handheld client device receives the first set of content items and selects a second set of content items from the first set based on a second subsequence of the incremental input. The second subsequence is larger than the first subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the first subsequence. The handheld client device orders the second set of content items for presentation in accordance with one or more criteria and presents the ordered set to the user.
[0006] In another aspect of the invention, the handheld client device transmits the second subsequence of the incremental input to the remote server system. The remote server system receives the second subsequence, selects a third set of content items based on the second subsequence and the descriptive terms associated with the content items, and transmits a reply including the third set of content items to the handheld client device.
[0007] In yet another aspect of the invention, the handheld client device transmits the second subsequence of the incremental input to the remote server system if a time threshold has elapsed. In another aspect, the time threshold is an average amount of time for the remote server system to reply to a transmission from the handheld client device.
[0008] In a further aspect of the invention, the handheld client device monitors an input latency for each incremental user action. Each input latency is an amount of time between consecutive incremental user actions. The sizes of the subsequences are based on the input . latency for incremental user actions. [0009] In another aspect of the invention, the first subsequence includes all incremental user actions for identifying the desired content items that are entered before the user pauses for a time greater than a predetermined threshold. In another aspect, the predetermined threshold is an average input latency for the user to incrementally input a user action.
[0010] In yet another aspect of the invention, at least one of the handheld client device and the remote server system monitors an average network roundtrip latency. The average network roundtrip latency is an average amount of time for the remote server system to reply to a transmission from the handheld client device. The sizes of the subsequences are based on the average network roundtrip latency.
[0011] In yet another aspect of the invention, the handheld client device transmits a self- sufficient message to the remote server system. The self-sufficient message includes the first subsequence and all relevant context for the first subsequence including previous subsequences, if any, so that the remote server system does not need information in a previous message to respond to the self-sufficient message. In another aspect, the handheld client device formats messages for transmission to the remote server system to be less than a predetermined size. [0012] In a further aspect of the invention, the incremental input consists of text entry only, browse actions only, or a combination of text entry and browse actions. In another aspect, the incremental input includes ambiguous text input.
[0013] In one aspect, the invention features a method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom. The handheld client device receives incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system. The incremental input incrementally identifies descriptive terms associated with the desired content items. The handheld client device transmits a first subsequence of the incremental input to the remote server system. The remote server system receives the first subsequence and selects a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmits a reply including the first set of content items to the handheld client device. The handheld client device transmits a second subsequence of the incremental input to the remote server system. The second subsequence is larger than the first subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the first subsequence. The remote server system receives the second subsequence and selects a second set of content items based on the- second subsequence and the descriptive terms associated with the content items and transmits a reply including the second set of content items to the handheld client device. The handheld client device receives the first and second set of content items and aborts processing on the set of content items corresponding to the subsequence transmitted earlier in time. The handheld client device selects a third set of content items from the set of content items corresponding to the subsequence transmitted later in time based on a third subsequence of the incremental input. The handheld client device orders the third set of content items for presentation in accordance with one or more criteria and presents the ordered set to the user.
[0014] In another aspect of the invention, the second subsequence and the third subsequence are the same subsequence. In a further aspect, the third subsequence is larger than the second subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the second subsequence. Brief Descriptions Of Drawings
[0015] For a more complete understanding of various embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
[0016J Fig. 1 illustrates a keypad with overloaded keys.
[0017] Fig. 2 illustrates a reduced text entry search system in accordance with one or more embodiments of the invention being used in a network configuration with round trip latencies and packet losses.
[0018] Fig. 3 illustrates device configuration options to perform navigation of remotely resident information.
[0019] Fig. 4 illustrates a flow chart for the selective retransmission of unanswered requests. [0020] Fig. 5 illustrates a node arrangement for searching for content items using browse actions.
[0021] Fig. 6A illustrates an instance of a mobile device interface used to perform navigation of remotely resident information.
[0022] Fig. 6B illustrates the various states user can transition through to arrive at the desired result through navigation of remotely resident information.
[0023] Fig. 7 illustrates the various node traversals possible on a graph of information nodes. In this illustration a directed acyclic graph of nodes are shown for elucidatory purposes. [0024] Fig. 8 illustrates state transitions possible when user inputs a new navigation request before the system responds to a previous user request. Detailed Description
[0025] Incremental search is a method of searching a catalog of items by displaying results that correspond to each user input action before the user has entered the entire search input. For example, if a user is entering a text string as a query, a system using an incremental search technique responds with results corresponding to each string formed as the user enters each character, for example, for a query string "Browns", the strings formed during entry of the complete string are "B", "Br", "Bro", "Brow", "Brown", and "Browns". One type of incremental search system useful with input and/or display constrained devices includes inputting search criteria on the device, which then communicates over a network with a remote server that contains a catalog of items. Latencies in the request / response round trip can cause significant delays in the overall search experience for the user, as the user's device must wait for each response before processing the next query string portion.
[0026] Embodiments of the invention reduce the user's perceived latency of response of a remote server to a request made by a user's device performing an incremental search. The user's device either retransmits unanswered requests or drops the unanswered request and transmits an updated cumulative request based on a comparison of (1) the average round trip latency of a request / response and (2) the average latency between the user's query actions, e.g., the time between key presses in a text-based query. When query results corresponding to an earlier query are received after additional query input has been provided, the user's device filters these results using the later-received query entries to provide a set of results considered relevant to the most recent query input.
[0027] This concept is described in greater detail below, but a simple example includes a search in which the user intends to enter the search string "CAR". After the "C" is entered, the user's device sends the search string "C" to the remote server. The remote server performs an incremental find using the input "C" and sends results to the user's device. However, before the user's device receives results corresponding to the search string "C", the user completes the query entry by typing the remaining letters "A" and "R". Upon receiving the search results for "C", the user's device applies the entire current query input, i.e., "CAR", to the result set and presents only the results corresponding to the entire input "CAR". [0028] In order to achieve apparent "real-time response", the techniques herein focus on the timely delivery of response data in contrast to the reliable delivery of response data. A response that does not arrive in a timely manner is almost equivalent to not having arrived at all because it would not meet the key requirement of the navigation system - the feel of real-time response. In addition, retransmission of the request corresponding to the delayed response would only delay further requests and/or responses on the network.
[0029] Embodiments include transporting self-contained data packets for requests and responses to eliminate packet dependency. Thus, the techniques described herein ensure packet loss does not require retransmission of an earlier packet due to the subsequent packets being dependent on an earlier packet that has been lost. This concept is described in greater detail below, however, the following example is provided. In the case of a search string "BROWNS" being divided into two packets, the first containing the letters "BRO" and the second containing "WNS", if the first packet was lost, only the letters "WNS" would be received by the remote server. Thus, the query input would be incomplete, resulting in incorrect search results. [0030] Another embodiment of the invention enables the system to accept user input, even if the user's navigation rate is faster than the system's response rate: Slowing the user's navigation by forcibly synchronizing user input with the response rate would also erode the feeling of realtime response. The system permits the user, whenever meaningful, to provide input ahead of the system's response rate. It then processes any received results to respond to the most recent user input, as described above, thereby emulating the cumulative effect of all of the preceding requests whose responses are still unanswered without incurring "streaming" penalties, e.g., those due to TCP queues.
[0031] Embodiments of the present invention build on techniques, systems and methods disclosed in earlier filed applications, including but not limited to U.S. Patent Application No. 11/136,261 , entitled Method and System For Performing Searches For Television Programming Using Reduced Text Input, filed on May 24, 2005, U.S. Patent Application No. 11/235,928, entitled Method and System For Processing Ambiguous, Multiterm Search Queries, filed on September 27, 2005, U.S. Patent Application No. 11/356,788, entitled Method and System For Offsetting Network Latencies During Incremental Searching Using Local Caching And Predictive Fetching of Results From A Remote Server, filed on February 17, 2006, and U.S. Patent Application No. 11/246,432, entitled Method And System For Incremental Search With Reduced Text Entry Where The Relevance Of Results Is A Dynamically Computed Function of User Input Search String Character Count, filed on October 7, 2005, the contents of which are hereby incorporated by reference. Those applications taught specific ways to perform incremental searches using ambiguous text input and methods of reducing the perceived latency of a response from a remote server. The present techniques, however, are not limited to systems and methods disclosed in the incorporated patent applications. Thus, while reference to such systems and applications may be helpful, it is not believed necessary to understand the present embodiments or inventions.
[0032] Figure 1 illustrates an example of a keypad of a user input device for use with embodiments of the invention. Embodiments of the invention can be used with input devices that have overloaded keypads that provide ambiguous text strings, wherein a press of a single key of the keypad represents multiple letters and/or numerals. Likewise, embodiments can use traditional keypads or keyboards providing nonambiguous input.
[0033] Fig. 2 illustrates a system for query and navigation of network resident information using a wide range of devices in accordance with one or more embodiments of the invention. A server farm 201 serves as the source of information and relevance updates. Network 202 functions as the distribution framework and can be a combination of wired and wireless connections. The navigation devices can have a wide range of interface capabilities and include such devices as a hand-held device 203 (e.g. phone, PDA, or a music/video playback device) with limited display size and an overloaded or small QWERTY keypad, a television 204a coupled with a remote 204b having an overloaded or small QWERTY keypad, or a personal or laptop computer 205.
[0034] Fig. 3 illustrates multiple device configurations for use with embodiments of the invention. In one configuration, the navigation device 203 of Fig. 2 has a display 301 , a processor 302, volatile memory 303, a text input interface 304, which is on-device, remote connectivity 305 to the server farm 201 through the network 202, a persistent storage 306. In another device configuration, the device 203 may not have local persistent storage 306. In such a scenario, the device 203 would have remote connectivity 305 to submit the query to the server farm 201 and retrieve results from it. In another configuration of the device 203, it does not have remote connectivity 305. In this scenario, the navigation database is locally resident on a local persistent storage 306. The persistent storage 306 can be a removable storage element, such as SD, SmartMedia, CompactFlash card etc. In a configuration of the device 203 with remote connectivity 305 and persistent storage 306 for navigation, the device 203 may use the remote connectivity for search/browse, relevance data updates, or for the case where the navigation database is distributed on the local storage 306 and on the server farm 201. [0035] Fig. 4 illustrates a flow chart for the selective retransmission of unanswered requests. The user performs a navigation action (step 401), which could be a browse or search action performed on the user's device. In this context, a browse action is essentially a traversal of a tree of information nodes, while a search action is text entry. In an embodiment of the invention, the search process for text entry is based on an incremental search where results are shown as the user types in each character of the input string. In a basic incremental search implementation, when the user enters the text "C", the system responds with results correspond to the text "C". When the user enters a further letter, "A", the system responds with results corresponding to the text "CA". Depending upon the search engine design, this "CA" can be the first letters in the title of each result item, or the "CA" can be the first letters of a keyword associated with each result item.
[0036] In the illustrative embodiment, the user's requests are sent to the server (step 402), at which point the user's device begins to track the time for the corresponding response to arrive from the server. If the response is not received within the greater of (1) the average inter- navigation latency, that is, the amount of time between button presses on the user's device and (2) the average round-trip latency between transmission of a query and receipt of the corresponding response (described below), the system transmits a new request to the server (step 404). However, as explained in greater detail below, the new request is a cumulative request that captures the query information from the unanswered request as well as any new query information that the user has entered after the transmission of the initial request. In contrast, if a response is received from the server within the greater of the two latency periods (step 405), the system presents only those results that are relevant to both the initial query information and the later-entered query information. For example, the user enters "T" followed by "O". The remote server responds by sending to the user's device a set of content items that have associated descriptive terms beginning with the letter "T". In this example, the user's device receives the response corresponding to "T" after "O" is pressed. Thus, the user's device would select for presentation only those content items that have associated descriptive terms beginning with the letters "TO" (step 406).
[0037] As mentioned above, the user's device utilizes the average inter-navigation latency and the average round-trip latency between transmission of a query and receipt of the corresponding response to determine when to transmit a new request to the server. The user's device gathers information about these two latency parameters and continually calculates a rolling average for each parameter. A query processing server can also determine the average round-trip latency in the same manner. Because the average round-trip latency can change very rapidly due to fluctuating network conditions, the window for this rolling average is relatively small, for example, on the order of seconds to minutes. However, because the average inter- navigation latency of the user is expected to change very little over time, the window for this rolling average is relatively large. This reflects the expectation that the user's typing speed and/or browsing speed is relatively constant. Thus, the window for this rolling average, for example, can be on the order of hours to days.
[0038] Typically, when the user is navigating the system using only browse actions, e.g., ascending, descending, and traversing nodes of a tree arrangement, the user must wait until the system responds with results in order to know what nodes are available for selection. However, after repeated use, the user may become familiar enough with the system to remember the arrangement of node categories (such as the example shown in Fig. 5), even though the content items in the categories may change. Indeed, even in a system that is continuously updated, the' arrangement of the node categories is likely to remain unchanged for some amount of time. Thus, even though the user's device has not received a response to a browse action, e.g., a hierarchy of nodes presented to the user, the user may be able to browse several levels by memory. If the node hierarchy has changed or is different than the user's recollection, the user will be able to correct the erroneous browse action when the user's device receives the response and renders the current node hierarchy.
[0039] Fig. 5 illustrates an illustrative node arrangement that has category nodes and content items. In one example, the user wishes to browse the system's selection of comedy movies. Through continued use, the user has memorized the arrangement of the category nodes. Thus, the user knows that when he enters the browse navigation mode on his device, the browse cursor is focused on a "Phonebook" node 500. The user also remembers that a "Video Content" node 505 is two selections to the right of Phonebook node 500, and a "Movies" node 510 is one selection down and one selection to the left. Finally, the user recalls that the "Comedy" node 515 is one selection down from Movies node 510. Therefore, the user can rapidly enter in the browse actions of two selections to the right, one selection down, one selection left, and one selection down to arrive at the node for comedy movies. [0040] As described above, if the user completes this sequence of browse actions before the system responds with results within the greater of (1) the average inter-navigation latency and (2) the average round-trip latency, the system queues the browse actions and transmits the entire cumulative sequence of browse actions the user performed as a single request. Likewise, if the user enters a single browse action, which is sent to the system, followed by the remaining browse actions before the system responds to the first single browse action, the user's device drops the first request and sends the cumulative sequence of browse actions as a single request. The system responds to the cumulative request by providing item nodes 520 that correspond to a listing of comedy movies. In addition, the system response includes a listing and arrangement of the category nodes that are higher in the hierarchy than the item nodes, e.g., Drama, Comedy, Action, Web Videos, Movies, TV Shows, Phonebook, Audio Content, and Video Content. [0041] Fig. 6 A illustrates a mobile device 600A interface for navigating remotely resident information. The user enters text using a keypad 602A, which may have overloaded keys similar to the 12-key keypad in Fig. 1. The entered text is displayed in the text field 603 A. The navigation interface on the device is a navigation button 605A that facilitates movement at least in the horizontal and vertical direction. The results corresponding to the incremental text query or browse actions are displayed in the results area 601 A. The user can scroll through the results by using a scroll interface 604A and/or by using the navigation buttons 605 A. An alternate scroll interface 607A is shown in a browse only device 606A (e.g. a music player like an IPOD, but where content is remotely resident and the user remotely navigates this content). The browse results are shown in the display 608A.
[0042] Fig. 6B illustrates the various states of navigation actions between which the user could freely transition in order to get to the desired result. The user can (1) use text entry exclusively to find results (step 601B), (2) use browse actions, e.g., node traversals, exclusively to find results (step 602B), or (3) use a combination of text entry and browse actions to find results. The actual methods used are influenced by both the user's intent and the information that is displayed. For example, the user can start by entering text (step 601B), scroll through the displayed results (step 602B), pick a non-terminal node (step 603B), and traverse the children of the non-terminal (step 602B). When the user discovers a result, he selects it (step 603B) and performs an appropriate action (step 604B).
[0043] A key requirement for transmission of cumulative requests is to make each request self-contained, that is, each request contains all of the query information, whether text entry, browse actions, or both. In other words, the server system that processes the queries is stateless. Thus, each later request does not depend on the system having received an earlier request in order to provide context for the later query. For example, a text entry request sequence can be made self-contained by keeping track of the entire input string and the current node in whose context the current text search was performed (e.g., <node stack context, text input>). Thus, if the user browsed to a video content node and entered a text query, that text query would only be performed in the context of the video content node. Similarly, a browse action request sequence, e.g., a linear scroll action, is made self-contained by making each scroll request an absolute range request, rather than a relative request, by providing the context of the node where the browse was performed (e.g., <node stack context, absolute range query>). A node ascend/descend request can be captured in a similar manner, by providing both the browse action and the context in which it was performed (e.g., <node stack context, node ascend/descend count>). Lastly, a node select request is made self-contained by providing the context within which the selection action is made and the index of the selected node (e.g., <node stack context, select node index>).
[0044] Likewise, cumulative combinations of these requests can also be done to make each request self-contained, where contiguous repetitive requests are coalesced into a single request. In scenarios where contiguous requests are not of the same type, the cumulative request can be a sequence of unanswered requests specified as shown above. The user's device assigns a unique identifier to each request and sends this identifier to the system along with the request information. The system includes this unique identifier with the response so that the user's device can keep track of which response is being returned.
[0045] These unique identifiers enable the user's device to maintain the state of the system across multiple queries that are sent to the query system. Thus, the user's device would ignore a response to a request that has been superceded by a response to a more recent request. This aspect is especially useful in a system that uses an application switch as an interface between the user's device and a query processing system that uses multiple query processing servers. [0046] For example, an illustrative system utilizes five query processing servers behind an application switch. The user's device sends a first query to the system. The application switch receives the query and routes the query to the first query processing server. Before the first server can respond, the user's device sends a second, more complete, cumulative query to the system, as described above. In an effort to load balance the system, the application switch routes the second query to the second query processing server. Before the first server can respond to the first query, the second server responds to the second query by transmitting a response to the user's device. The user's device checks the unique identifier for the response corresponding to the second query and discovers that it is the first response received for the given sequence of queries. Thus, the user's device presents the response results (and applies any additional query input, as described above, if necessary).
[0047] After the user's device has received the response to the second query, the first server responds to the first query by sending a response to the user's device. The user's device checks the unique identifier of this response corresponding to the first query and discovers that it has been superceded by the response corresponding to the second query. Thus, the user's device ignores this response data in favor of the results corresponding to the more recent query. [0048] Fig. 7 illustrates the various node traversals possible on a graph of information nodes. In this illustration, a directed acyclic graph of nodes is shown purely for elucidatory purposes. Three forms of possible node traversals are (1) sibling traversal (step 701) — traversal of all edges emanating from a node, (2) node descend (step 702) — traversal to an adjacent node, and (3) node ascent (step 703) — retracing a traversal path to a previous node. Sibling traversals (step 701) can be done from the user's device ahead of the system response to the individual scroll actions because the system response includes all child nodes upon a node descent (step 702). Similarly, an ascent operation (step 703) can be done without waiting for the system to respond to the individual "back" operations because the user's device retains the node hierarchy that it has already descended. However, as explained above, node descend operations (step 702) can be performed by the user ahead of system response only if the user has remembered the node hierarchy, otherwise, the user must wait until the system has responded to a descend action (step 702) in order for the user to perform a subsequent descend.
[0049] Fig. 8 illustrates the state transitions possible, and resulting new requests, when the user inputs a new navigation request before the system responds to a previous user request. The new user input can be either text entry or browse actions. As explained above, the system accumulates the user actions that occur after a request has been sent. These actions are combined with the action comprising the earlier request to form a self-contained, cumulative request. The system transmits this new self-contained, cumulative request in the event a response has not arrived in the timeout periods as explained in connection with Fig. 4. [0050] Referring to Fig. 8, the first column lists the various states from which the user may transition when he provides additional user input (either text input or browse actions). The second column lists the various forms of input the user can provide while waiting for the system to respond. The third column lists the new request the system will make if the earlier request is not received within the timeout periods described above.
[0051] An example of a text input followed by further text input is provided; this corresponds to the first row in Fig. 8 (row 800). The user has entered a text input "movies". During the text entry, the amount of time between the user pressing "m" and "o" was shorter than the average latency between the user's query actions, but the time between the user pressing "o" and "v" was longer than the average latency between the user's query actions. Thus, the user's device sent a request for results corresponding to "mo". Before the user's device receives the system's response to this request, the user enters the remaining letters "v", "i", "e", and "s", all within the average latency between the user's query actions. If the response is not received within the greater of (1) the average round trip latency of a request / response and (2) the average latency between the user's query actions, the user's device sends a new request that is the cumulative text of both entries, i.e., "movies".
[0052] In one illustrative implementation, the selective retransmission system is implemented using UDP (User Datagram Protocol). The time-out for retransmission is dynamically computed, taking into account the inter-navigation latency and the round-trip latency, as described above. Furthermore, the request and response packets are tuned to be the optimal size to minimize fragmentation at lower layers in the protocol stack (e.g., the data link layer and the physical layer of the OSI Reference Model). Because transmission packet sizes in the lower layers in the protocol stack may be governed by various standards, the application layer of the system may not be permitted to directly prevent the division of a single request into multiple packets at these lower layers. However, by tuning packet size, the system can indirectly minimize or eliminate fragmentation of the packets at the lower layers. If fragmentation is eliminated when sending the request, the request is effectively made physically self-contained, that is, a single packet carries the user's request. Each implementation will have different maximum transmission unit (MTU) values for the path between the user's device and the query processing servers depending on the details of the implementation. The particular MTU for a given implementation can be easily determined using known methods. Minimizing fragmentation has the added advantage of reducing the total number of packets sent between the user's device and the remote system elements, thereby reducing network traffic. [0053] Embodiments of the invention can be implemented using TCP. These implementations determine the ideal subsequence size to send based on the average inter- navigation latency and the average round-trip latency. When the round-trip latency is relatively high, the user's device will reduce the number of requests by sending larger subsequences. Such embodiments accumulate each user action of a sequence of user search actions when the user enters each action at the typical user's entry speed (i.e., the average inter-navigation latency). When the user pauses for more than is typical in a string of query actions, the user's device sends the entire cumulative request at once rather than sending each user action separately. Thus, although TCP automatically retransmits lost packets, this illustrative implementation reduces the number of packets that must be sent, thereby reducing the load on the network. [0054] The system can also use a combination of UDP and TCP for transmitting request and response packets. In such an implementation, the user's device sends requests via a UDP channel. Thus, the user's device sends request packets as described above (e.g., taking into account round-trip latency, inter-navigation latency, and superceded techniques). Meanwhile, the user's device receives response packets on both a UDP channel and a TCP channel. The response packets that arrive via the TCP channel are reassembled in the order in which they were sent by the remote query system. Thus, the order in which the content items were arranged by the query system is preserved on the user's device. In contrast, the response packets that arrive via the UDP channel are presented to the user in the order in which they arrive. [0055] By using this combination, the system can implement result-ordering techniques, such as those disclosed in the applications incorporated above, for example. Thus, the content items that are placed within a predetermined number of spots at the top of the result set by the query system are send via the TCP channel. The remaining content items are sent via the UDP channel. The user's device then displays the response results sent via TCP upon receiving the TCP packets and adds the remaining results, sent via the UDP channel, to the result stack as they arrive.
[0056] It will be appreciated that the scope of the present invention is not limited to the above-described embodiments, but rather is defined by the appended claims, and these claims will encompass modifications of and improvements to what has been described. For example, embodiments have been described in terms of entering ambiguous text search queries using a 12- key keypad. However, traditional keyboards can be used with embodiments of the invention. [0057] What is claimed is:

Claims

1. A method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom, the method comprising:
the handheld client device receiving incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system, the incremental input incrementally identifying descriptive terms associated with the desired content items;
the handheld client device transmitting a first subsequence of the incremental input to the remote server system;
the remote server system receiving the first subsequence and selecting a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmitting a reply including the first set of content items to the handheld client device;
the handheld client device receiving the first set of content items and selecting a second set of content items from the first set based on a second subsequence of the incremental input, the second subsequence being larger than the first subsequence and including incremental input received by the handheld client device while it was waiting for the reply to the first subsequence; and
the handheld client device ordering the second set of content items for presentation in accordance with one or more criteria and presenting the ordered set to the user.
2. The method of claim 1, further comprising:
the handheld client device transmitting the second subsequence of the incremental input to the remote server system; and
the remote server system receiving the second subsequence and selecting a third set of content items based on the second subsequence and the descriptive terms associated with the content items and transmitting a reply including the third set of content items to the handheld client device.
3. The method of claim 1, wherein the handheld client device transmits the second subsequence of the incremental input to the remote server system if a time threshold has elapsed.
4. The method of claim 3, wherein the time threshold is an average amount of time for the remote server system to reply to a transmission from the handheld client device.
5. The method of claim 1 , further comprising the handheld client device monitoring an input latency for each incremental user action, each input latency being an amount of time between consecutive incremental user actions, wherein the sizes of the subsequences are based on the input latency for incremental user actions.
6. The method of claim 5, wherein the first subsequence includes all incremental user actions for identifying the desired content items that are entered before the user pauses for a time greater than a predetermined threshold.
7. The method of claim 6, wherein the predetermined threshold is an average input latency for the user to incrementally input a user action.
8. The method of claim 1 , further comprising at least one of the handheld client device and the remote server system monitoring an average network roundtrip latency, the average network roundtrip latency being an average amount of time for the remote server system to reply to a transmission from the handheld client device, wherein the sizes of the subsequences are based on the average network roundtrip latency.
9. The method of claim 1 , wherein the handheld client device transmits a self-sufficient message to the remote server system, the self-sufficient message including the first subsequence and all relevant context for the first subsequence including previous subsequences, if any, so that the remote server system does not need information in a previous message to respond to the self- sufficient message.
10. The method of claim 1, wherein the handheld client device formats messages for transmission to the remote server system to be less than a predetermined size.
11. The method of claim 1 , wherein the incremental input consists of text entry.
12. The method of claim 1, wherein the incremental input consists of browse actions.
13. The method of claim 1 , wherein the incremental input includes text entry and browse actions.
14. The method of claim 1 , wherein the incremental input includes ambiguous text input.
15. The method of claim 1 , wherein the content items of at least one of the first and second set of content items are in a node arrangement format.
16. A method of reducing perceived network latency in processing a minimal prefix text search query or a browse action from an input constrained handheld client device and processed by a remote server system and presenting results therefrom, the method comprising:
the handheld client device receiving incremental input including a sequence of incremental user actions for identifying desired content items on the remote server system, the incremental input incrementally identifying descriptive terms associated with the desired, content items;
the handheld client device transmitting a first subsequence of the incremental input to the remote server system;
the remote server system receiving the first subsequence and selecting a first set of content items based on the first subsequence and the descriptive terms associated with the content items and transmitting a reply including the first set of content items to the handheld client device;
the handheld client device transmitting a second subsequence of the incremental input to the remote server system, the second subsequence being larger than the first subsequence and including incremental input received by the handheld client device while it was waiting for the reply to the first subsequence;
the remote server system receiving the second subsequence and selecting a second set of content items based on the second subsequence and the descriptive terms associated with the content items and transmitting a reply including the second set of content items to the handheld client device; the handheld client device receiving the first and second set of content items and aborting processing on the set of content items corresponding to the subsequence transmitted earlier in time;
the handheld client device selecting a third set of content items from the set of content items corresponding to the subsequence transmitted later in time based on a third subsequence of the incremental input; and
the handheld client device ordering the third set of content items for presentation in accordance with one or more criteria and presenting the ordered set to the user.
17. The method of claim 16, wherein the second subsequence and the third subsequence are the same subsequence.
18. The method of claim 16, wherein the third subsequence is larger than the second subsequence and includes incremental input received by the handheld client device while it was waiting for the reply to the second subsequence.
PCT/US2007/002300 2006-01-27 2007-01-26 System and method for incremental user query on handheld device WO2007089663A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76270906P 2006-01-27 2006-01-27
US60/762,709 2006-01-27

Publications (2)

Publication Number Publication Date
WO2007089663A2 true WO2007089663A2 (en) 2007-08-09
WO2007089663A3 WO2007089663A3 (en) 2008-08-21

Family

ID=38327941

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/002300 WO2007089663A2 (en) 2006-01-27 2007-01-26 System and method for incremental user query on handheld device

Country Status (2)

Country Link
US (1) US20070260703A1 (en)
WO (1) WO2007089663A2 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895218B2 (en) 2004-11-09 2011-02-22 Veveo, Inc. Method and system for performing searches for television content using reduced text input
US8122034B2 (en) 2005-06-30 2012-02-21 Veveo, Inc. Method and system for incremental search with reduced text entry where the relevance of results is a dynamically computed function of user input search string character count
US7788266B2 (en) 2005-08-26 2010-08-31 Veveo, Inc. Method and system for processing ambiguous, multi-term search queries
US7779011B2 (en) 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US20070088681A1 (en) * 2005-10-17 2007-04-19 Veveo, Inc. Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server
US7644054B2 (en) 2005-11-23 2010-01-05 Veveo, Inc. System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors
US7774341B2 (en) 2006-03-06 2010-08-10 Veveo, Inc. Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content
US8073860B2 (en) 2006-03-30 2011-12-06 Veveo, Inc. Method and system for incrementally selecting and providing relevant search engines in response to a user query
EP4209927A1 (en) 2006-04-20 2023-07-12 Veveo, Inc. User interface methods and systems for selecting and presenting content based on user navigation and selection actions associated with the content
US20070299965A1 (en) * 2006-06-22 2007-12-27 Jason Nieh Management of client perceived page view response time
US7536384B2 (en) 2006-09-14 2009-05-19 Veveo, Inc. Methods and systems for dynamically rearranging search results into hierarchically organized concept clusters
WO2008045690A2 (en) 2006-10-06 2008-04-17 Veveo, Inc. Linear character selection display interface for ambiguous text input
US8078884B2 (en) 2006-11-13 2011-12-13 Veveo, Inc. Method of and system for selecting and presenting content based on user identification
WO2008148009A1 (en) 2007-05-25 2008-12-04 Veveo, Inc. Method and system for unified searching across and within multiple documents
WO2008148012A1 (en) 2007-05-25 2008-12-04 Veveo, Inc. System and method for text disambiguation and context designation in incremental search
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US20110191332A1 (en) 2010-02-04 2011-08-04 Veveo, Inc. Method of and System for Updating Locally Cached Content Descriptor Information
US8577915B2 (en) 2010-09-10 2013-11-05 Veveo, Inc. Method of and system for conducting personalized federated search and presentation of results therefrom
US9424357B1 (en) 2011-03-01 2016-08-23 Amazon Technologies, Inc. Predictive page loading based on text entry and search term suggestions
EP3014564A4 (en) * 2013-06-28 2016-12-07 Healthtap Inc Systems and method for evaluating and selecting a healthcare professional
US9866882B1 (en) * 2016-12-23 2018-01-09 Alcatel-Lucent Usa Inc. Video-based measurement of round-trip latency from user input event to corresponding video output
US11368752B2 (en) 2017-01-03 2022-06-21 Bliss Point Media, Inc. Optimization of broadcast event effectiveness

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037043A1 (en) * 2001-04-06 2003-02-20 Chang Jane Wen Wireless information retrieval
US20040111402A1 (en) * 1998-05-06 2004-06-10 Avici Systems Prefix search method
US20040167873A1 (en) * 2003-02-20 2004-08-26 Intenational Business Machines Corporation Incremental data query performance feedback model
US20050283468A1 (en) * 2004-06-22 2005-12-22 Kamvar Sepandar D Anticipated query generation and processing in a search engine

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1261167A (en) * 1917-10-25 1918-04-02 Robert C Russell Index.
US4760528A (en) * 1985-09-18 1988-07-26 Levin Leonid D Method for entering text using abbreviated word forms
NL8700410A (en) * 1987-02-19 1988-09-16 Philips Nv TEXT EDITING DEVICE FOR STENOGRAPHIC TYPES.
EP1244300B1 (en) * 1990-09-10 2005-01-12 Starsight Telecast, Inc. Method and apparatus for accessing information about television programs
US5337347A (en) * 1992-06-25 1994-08-09 International Business Machines Corporation Method and system for progressive database search termination and dynamic information presentation utilizing telephone keypad input
US5224060A (en) * 1992-07-29 1993-06-29 Ma Hsi Kuang Mobile computer with pen base/keyboard input modes
US5481296A (en) * 1993-08-06 1996-01-02 International Business Machines Corporation Apparatus and method for selectively viewing video information
US6418556B1 (en) * 1993-09-09 2002-07-09 United Video Properties, Inc. Electronic television program guide schedule system and method
US5623406A (en) * 1995-03-06 1997-04-22 Jean D. Ichbiah Method and system for entering text in computer equipment
CA2170429C (en) * 1995-03-28 2000-04-25 Stephen Gregory Eick Method and apparatus for finding and selecting a desired data item from a large schedule of data items using a tv set and a controller similar to a tv-remote-control
US5880768A (en) * 1995-04-06 1999-03-09 Prevue Networks, Inc. Interactive program guide systems and processes
US5487616A (en) * 1995-06-01 1996-01-30 Jean D. Ichbiah Method for designing an ergonomic one-finger keyboard and apparatus therefor
EP0842463B1 (en) * 1995-07-26 2000-03-29 Tegic Communications, Inc. Reduced keyboard disambiguating system
US6732369B1 (en) * 1995-10-02 2004-05-04 Starsight Telecast, Inc. Systems and methods for contextually linking television program information
US5635989A (en) * 1996-02-13 1997-06-03 Hughes Electronics Method and apparatus for sorting and searching a television program guide
US20030066085A1 (en) * 1996-12-10 2003-04-03 United Video Properties, Inc., A Corporation Of Delaware Internet television program guide system
US6184877B1 (en) * 1996-12-11 2001-02-06 International Business Machines Corporation System and method for interactively accessing program information on a television
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US5937422A (en) * 1997-04-15 1999-08-10 The United States Of America As Represented By The National Security Agency Automatically generating a topic description for text and searching and sorting text by topic using the same
US5805155A (en) * 1997-04-15 1998-09-08 Time Warner Entertainment Co. L.P. Time Warner Cable Virtual assets in an interactive television cable system
US6600496B1 (en) * 1997-09-26 2003-07-29 Sun Microsystems, Inc. Interactive graphical user interface for television set-top box
US5945928A (en) * 1998-01-20 1999-08-31 Tegic Communication, Inc. Reduced keyboard disambiguating system for the Korean language
US6839705B1 (en) * 1998-02-10 2005-01-04 Gateway, Inc. Method for delivering and caching preprocessed search results to improve performance of background information searches on a convergence device
US6266048B1 (en) * 1998-08-27 2001-07-24 Hewlett-Packard Company Method and apparatus for a virtual display/keyboard for a PDA
US6453312B1 (en) * 1998-10-14 2002-09-17 Unisys Corporation System and method for developing a selectably-expandable concept-based search
US6189002B1 (en) * 1998-12-14 2001-02-13 Dolphin Search Process and system for retrieval of documents using context-relevant semantic profiles
ES2202070T3 (en) * 1999-03-18 2004-04-01 602531 British Columbia Ltd. DATA ENTRY FOR PERSONAL INFORMATIC DEVICES.
US7293231B1 (en) * 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US6260050B1 (en) * 1999-03-23 2001-07-10 Microstrategy, Inc. System and method of adapting automatic output of service related OLAP reports to disparate output devices
US6757906B1 (en) * 1999-03-30 2004-06-29 Tivo, Inc. Television viewer interface system
US6614422B1 (en) * 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US7610194B2 (en) * 2002-07-18 2009-10-27 Tegic Communications, Inc. Dynamic database reordering system
US6269361B1 (en) * 1999-05-28 2001-07-31 Goto.Com System and method for influencing a position on a search result list generated by a computer network search engine
US6594657B1 (en) * 1999-06-08 2003-07-15 Albert-Inc. Sa System and method for enhancing online support services using natural language interface for searching database
US6721954B1 (en) * 1999-06-23 2004-04-13 Gateway, Inc. Personal preferred viewing using electronic program guide
US6615248B1 (en) * 1999-08-16 2003-09-02 Pitney Bowes Inc. Method and system for presenting content selection options
US7013304B1 (en) * 1999-10-20 2006-03-14 Xerox Corporation Method for locating digital information files
US6785671B1 (en) * 1999-12-08 2004-08-31 Amazon.Com, Inc. System and method for locating web-based product offerings
US6839702B1 (en) * 1999-12-15 2005-01-04 Google Inc. Systems and methods for highlighting search results
US7228556B2 (en) * 1999-12-21 2007-06-05 Tivo Inc. Distributed, interactive television program guide; system and method
US6564213B1 (en) * 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
US6529903B2 (en) * 2000-07-06 2003-03-04 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US7136854B2 (en) * 2000-07-06 2006-11-14 Google, Inc. Methods and apparatus for providing search results in response to an ambiguous search query
US6865575B1 (en) * 2000-07-06 2005-03-08 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US6907273B1 (en) * 2000-07-07 2005-06-14 Openwave Systems Inc. Method and system for processing overloaded keys of a mobile device
US7225180B2 (en) * 2000-08-08 2007-05-29 Aol Llc Filtering search results
US6598042B1 (en) * 2000-09-29 2003-07-22 International Business Machines Corporation System and method for query by category
CA2323856A1 (en) * 2000-10-18 2002-04-18 602531 British Columbia Ltd. Method, system and media for entering data in a personal computing device
US7096483B2 (en) * 2000-12-21 2006-08-22 Thomson Licensing Dedicated channel for displaying programs
CN1225115C (en) * 2001-02-28 2005-10-26 汤姆森许可公司 System and method for simplifying different types of searches in electronic program guide
KR100850521B1 (en) * 2001-02-28 2008-08-05 톰슨 라이센싱 Method and apparatus for assisting a user in selecting a program for viewing or listening
US8266656B2 (en) * 2001-06-06 2012-09-11 Jlb Ventures Llc Method for making selections in search criteria in TV EPGs
US20030046698A1 (en) * 2001-06-11 2003-03-06 Yakov Kamen Methods and apparatuses for conducting a TV EPG search in various search time periods
KR100446613B1 (en) * 2001-07-16 2004-09-04 삼성전자주식회사 Information input method using wearable information input device
US7752326B2 (en) * 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
JP2003110960A (en) * 2001-10-01 2003-04-11 Toshiba Corp Program information retrieval method and program information retrieval apparatus
US6772147B2 (en) * 2002-02-26 2004-08-03 Sony Corporation System and method for effectively implementing a personal channel for interactive television
US7162470B2 (en) * 2002-06-07 2007-01-09 Oracle International Corporation Contextual search interface for business directory services
JP4252955B2 (en) * 2002-07-01 2009-04-08 ソニー エリクソン モバイル コミュニケーションズ, エービー Method for entering text into an electronic communication device
FR2842056B1 (en) * 2002-07-08 2004-12-03 Speeq TELECOMMUNICATIONS METHOD, TERMINAL AND SERVER
JP2004135169A (en) * 2002-10-11 2004-04-30 Fujitsu Ten Ltd Digital broadcast receiver
US7885963B2 (en) * 2003-03-24 2011-02-08 Microsoft Corporation Free text and attribute searching of electronic program guide (EPG) data
US7225184B2 (en) * 2003-07-18 2007-05-29 Overture Services, Inc. Disambiguation of search phrases using interpretation clusters
US20050071874A1 (en) * 2003-08-05 2005-03-31 Albert Elcock System and method for an interactive electronic program guide
US20050086234A1 (en) * 2003-10-15 2005-04-21 Sierra Wireless, Inc., A Canadian Corporation Incremental search of keyword strings
US20050086692A1 (en) * 2003-10-17 2005-04-21 Mydtv, Inc. Searching for programs and updating viewer preferences with reference to program segment characteristics
US20050192944A1 (en) * 2004-02-27 2005-09-01 Melodeo, Inc. A method and apparatus for searching large databases via limited query symbol sets
US20060075429A1 (en) * 2004-04-30 2006-04-06 Vulcan Inc. Voice control of television-related information
US20060059044A1 (en) * 2004-09-14 2006-03-16 Chan Wesley T Method and system to provide advertisements based on wireless access points
US20060101499A1 (en) * 2004-11-09 2006-05-11 Veveo, Inc. Method and system for secure sharing, gifting, and purchasing of content on television and mobile devices
US7895218B2 (en) * 2004-11-09 2011-02-22 Veveo, Inc. Method and system for performing searches for television content using reduced text input
US20060167859A1 (en) * 2004-11-09 2006-07-27 Verbeck Sibley Timothy J System and method for personalized searching of television content using a reduced keypad
US20060101504A1 (en) * 2004-11-09 2006-05-11 Veveo.Tv, Inc. Method and system for performing searches for television content and channels using a non-intrusive television interface and with reduced text input
US7428533B2 (en) * 2004-12-06 2008-09-23 Yahoo! Inc. Automatic generation of taxonomies for categorizing queries and search query processing using taxonomies
US20060167676A1 (en) * 2005-01-26 2006-07-27 Research In Motion Limited Method and apparatus for correction of spelling errors in text composition
US7788248B2 (en) * 2005-03-08 2010-08-31 Apple Inc. Immediate search feedback
US8122034B2 (en) * 2005-06-30 2012-02-21 Veveo, Inc. Method and system for incremental search with reduced text entry where the relevance of results is a dynamically computed function of user input search string character count
US20070027848A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Smart search for accessing options
WO2007025119A2 (en) * 2005-08-26 2007-03-01 Veveo, Inc. User interface for visual cooperation between text input and display device
US7788266B2 (en) * 2005-08-26 2010-08-31 Veveo, Inc. Method and system for processing ambiguous, multi-term search queries
US7779011B2 (en) * 2005-08-26 2010-08-17 Veveo, Inc. Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof
US20070088681A1 (en) * 2005-10-17 2007-04-19 Veveo, Inc. Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server
US7644054B2 (en) * 2005-11-23 2010-01-05 Veveo, Inc. System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US7788337B2 (en) * 2005-12-21 2010-08-31 Flinchem Edward P Systems and methods for advertisement tracking
US7774341B2 (en) * 2006-03-06 2010-08-10 Veveo, Inc. Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111402A1 (en) * 1998-05-06 2004-06-10 Avici Systems Prefix search method
US20030037043A1 (en) * 2001-04-06 2003-02-20 Chang Jane Wen Wireless information retrieval
US20040167873A1 (en) * 2003-02-20 2004-08-26 Intenational Business Machines Corporation Incremental data query performance feedback model
US20050283468A1 (en) * 2004-06-22 2005-12-22 Kamvar Sepandar D Anticipated query generation and processing in a search engine

Also Published As

Publication number Publication date
US20070260703A1 (en) 2007-11-08
WO2007089663A3 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
US20070260703A1 (en) Methods and systems for transmission of subsequences of incremental query actions and selection of content items based on later received subsequences
US20070088681A1 (en) Method and system for offsetting network latencies during incremental searching using local caching and predictive fetching of results from a remote server
US10425455B2 (en) Prioritization in a continuous video playback experience
EP2433423B1 (en) Media content retrieval system and personal virtual channel
US11102270B2 (en) Sharing network addresses
US9830367B2 (en) Predictive information retrieval
JP5429881B2 (en) Simplified media service search using the control unit
US6166735A (en) Video story board user interface for selective downloading and displaying of desired portions of remote-stored video data objects
JP6419173B2 (en) An Adaptive Data Streaming Method with Push Message Control
EP1783632B1 (en) Content recommendation method with user feedback
US6799199B1 (en) Media monitor system
CN100377046C (en) Intelligent default selection in an on-screen keyboard
JP5289516B2 (en) Presentation of media by electronic program guide
JP4918216B2 (en) Navigation process for displaying movable window and display device for executing the process
US20160259861A1 (en) Systems and methods for organizing and displaying electronic media content
US20110173547A1 (en) System and method to facilitate real-time communications and content sharing among users over a network
US20030163525A1 (en) Ink instant messaging with active message annotation
US20080022204A1 (en) Method, system, and article of manufacture for integrating streaming content and a real time interactive dynamic user interface over a network
KR100862354B1 (en) Method for asynchronous multimedia retrieval
JP2009159188A (en) Server for displaying content
JP2016531466A5 (en)
JP2001515246A (en) Automated content scheduling and display devices
WO2013070081A1 (en) Method and system for enhancing metadata
JP3987852B2 (en) Service receiver
EP2597840A1 (en) Method, network unit and system for optimizing rendering of media content

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07762740

Country of ref document: EP

Kind code of ref document: A2