System and method for asynchronous retrieval of information based on incremental user input
Abstract
A system and method for asynchronously retrieving information over a network based on incremental input. The system comprises a client part, a communication protocol, and a server part. The server part receives incremental text-based input from one or more objects in the client part, and asynchronously returns matching information to the client part depending on server-defined content channels that each query one or more underlying or connected content sources, such as databases or search engines, to return matches for the latest input and for the latest values and state of other content channels.
Claims
exact text as granted — not AI-modified1 . A system for asynchronous retrieval of information based on incremental user input, comprising:
a client object on a client computer and a server object on a server computer, wherein the client computer and the server computer are linked by any combination of wired or wireless networks so that they can exchange information; wherein the client object is linked to an input element in a user interface that allows a user to enter textual information comprising characters and strings to create incremental user input comprising a mutating string of characters; wherein the user input is transmitted by the client object to the server object while the user input is being formed by a specific user during a user session; wherein the server object uses the user input received from the client object to query data available on the server computer and to return result strings matching the user input asynchronously from the server computer while the input is being formed on the client computer; and wherein the client object displays the results in a display element in the user interface on the client computer.
2 . The system of claim 1 wherein the server object does not return result strings matching prior user input received from the client object if the client object has sent newer user input to the server object before the server object was ready to return results matching the prior user input during the user session.
3 . The system of claim 1 wherein the client object automatically sends an initial request to the server object upon activation of the software on the client computer wherein the server object returns initial results from the data available on the server computer matching the initial client request at the start of the user session before the user has entered any characters.
4 . The system of claim 1 wherein the user input sent to the server object is combined in the client object with a second string containing a qualifier, wherein the qualifier string is used by the server object to query a subset of the data available to the server computer and to return the corresponding results to the client object.
5 . The system of claim 1 wherein each of the matching result strings is accompanied by a key that identifies each result as it was retrieved from the data available on the server computer, wherein the key of selected results can be used for sorting and merging in the server computer and are transmitted back to the client object for use on the client system.
6 . The system of claim 1 wherein the matching result strings are accompanied by one or more metadata strings retrieved from the data available on the server computer that are used by the user interface in the client system to display information corresponding to each individual result string.
7 . The system of claim 1 wherein the client object accumulates the user input for an amount of time before sending the resulting string of characters to the server object as a single consolidated query string.
8 . The system of claim 1 wherein the text input by the user is marked up with a graphical object that appears under the text to indicate to the user that the server object did not return matching results or that the input is invalid.
9 . The system of claim 1 wherein the text input by the user is marked up with a graphical object that appears in front of the text characters entered by the user to indicate to the user that additional character input is expected.
10 . The system of claim 1 wherein the server object provides one or more content channels retrieving configurable sets of data available on the server computer, wherein each content channel defines a logical data set to be retrieved from the data content available on the server system and the data to be returned as result strings with optional keys and metadata, and wherein the client object indicates to the server object which content channel is to be queried by the server object by transmitting the name of the content channel to the server object.
11 . The system of claim 10 wherein the server object performs one or more queries on the data content available on the server computer based on the input received from the client object, incorporating the input into the content queries using a predefined content channel configuration specified on the server computer, wherein results from these content queries are combined and optionally merged into a single list that is returned to the client object.
12 . The system of claim 11 wherein the server object automatically selects the content queries to be performed by the content channel based on one or more query selector configurations, each containing a pattern calculation that is applied against values retrieved from the attributes of a different server object.
13 . The system of claim 1 wherein multiple client objects are each linked to user interface elements that appear as side-by-side columns with an associated input field, where each column displays results associated with a content channel that returns data that depends both on the input field and one or more of the columns next to it.
14 . The system of claim 13 where the side-by-side columns can be scrolled out of view, and where the currently invisible columns are represented by clickable user interface elements that bring those columns back into view.
15 . The system of claim 1 wherein the client object on the client computer accumulates the incremental user input for a calculated amount of time by measuring the amount it took the server computer to respond to prior user input received from the same client in order to throttle the number of transmissions going from that client object to the server system while the server system is busy or when the network connection between the client and the server is slow.
16 . The system of claim 1 wherein the client object on the client computer detects when the user starts using the input element in the user interface, and wherein the client object automatically determines that the user's browser or device either can better communicate with the server computer or provides a more suitable user interface by one of opening a different embodiment of the client software that is automatically loaded into a separate browser frame, replaces the current page, or opening in a new page that takes over the configuration of the client object and provides a full-page input element and an associated display element displaying results.
17 . The system of claim 1 wherein the client object on the client computer detects whether it is being accessed from a browser or device that does not support asynchronous communication, and wherein the client object scales back functionality by assuming the behavior of a common static input field and automatically reveals a Submit or Search button that allows the user to submit non-incremental input to the server object, and wherein the client object opens a popup, frame, or window in order to present the results that are received from the server object.
18 . The system of claim 17 wherein the server system employs an indexer to read and index information available to the server system in connected databases or directories or as flat or XML-formatted files or HTML files and subsequently makes the information available for fast retrieval through one or more content channels without re-retrieving or querying the information in the content source or source files.
19 . A system for entering text into input fields in a software application on a device controlled by an on-screen virtual keyboard that is operated by clicking on button symbols that represent individual keys using a stylus or a finger, comprising:
a client component on a device that allows users to input a text string into an input field using a stylus or finger by clicking on a virtual keyboard comprising a range of screen locations that display button symbols that each represent characters similar to those found on a traditional computer keyboard and a server component that is connected to the client component through a wired or wireless computer network; wherein the first click on the input field opens the virtual keyboard that is displayed to the user in a layer superimposed over the application or in a separate application window that contains the virtual buttons for each possible input character; and wherein each individual click on the buttons on the virtual keyboard appends, inserts, or deletes the corresponding character into or from the application input field, upon which the client component sends a query for data to the server component, and the server component, while the user is clicking on additional virtual keys on the virtual keyboard, returns matching content to the client object.
20 . A method for entering text into input fields in a software application on a device controlled by an on-screen virtual keyboard that is operated by clicking on button symbols that represent individual keys using a stylus or a finger, comprising the steps of:
providing a client component on a device that allows users to input a text string into an input field using a stylus or finger by clicking on a virtual keyboard, the keyboard comprising a range of screen locations that display button symbols that each represent characters similar to those found on a traditional computer keyboard and a server component that is connected to the client component through a wired or wireless computer network; wherein the first click on the input field opens the virtual keyboard that is displayed to the user in a layer superimposed over the application or in a separate application window that contains the virtual buttons for each possible input character; and wherein each individual click on the buttons on the virtual keyboard appends, inserts, or deletes the corresponding character into or from the application input field, upon which the client component sends a query for data to the server component, and the server component, while the user is clicking on additional virtual keys on the virtual keyboard, returns matching content to the client object.Join the waitlist — get patent alerts
Track US2009006543A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.