The invention relates to customizing a user experience of a dynamic information delivery system.
In dynamic information delivery systems, such as the Internet, users peruse information. Some information may be requested by the user, but other information may be delivered by content providers for purposes of their own. For instance, a website may display an advertisement (ad), catalog item, or news story in the hope that a user will click on it, generating revenues for the provider of the website. A website may dynamically customize the display given to a user, based on a profile, targeting news stories, recommendations, or advertisements. Internet browsers, such as Internet Explorer or Mozilla Firefox, retain histories of what the user has seen, so that the user can retrace her steps in browsing. Some browsers and some websites include search engines, such as Google or Bing, for locating information in the information delivery system.
The term “transient” is used herein to describe information that is assembled in real time for a user of an information delivery system. The system may take into account various factors that influence what content is to be provided to the user, for example, what ad will be placed. These factors could include: time of day and current events, as well user specific information such as user query, user profile, current user location, and the like.
An information source or information delivery system will be considered “dynamic” herein if it provides transient information.
In the course of investigating dynamic information delivery systems, the inventors here have realized that transient information such as advertisements, recommendations, and news stories are difficult to find again after the user has left the particular configuration where that information was presented. Such information may be temporarily retained by browsers in the form of a cache, i.e., disk space where browsers store contents of recently visited pages. Browsers use the cache for performance reasons by avoiding—under certain conditions—retrieving a page from the Internet when a suitable cached version of the page already exists. The browser cache does not capture the context under which a user visited a particular page in the first place, nor does it expose a mechanism for allowing a user to search for specific dynamic information in it. Transient information is not necessarily locatable using search engines, as the information providers may have assembled the information from dynamic sources, where the source information may not be separately searchable or may no longer be easily available because a fee paid period for presenting it has expired or because the information has been updated.
It is desirable to implement a computer method in which at least one data processing device maintains a record of content presented to a user by at least one dynamic information source. A user information request is received relating to transient information previously presented to the user. Data relating to the transient information is reconstructed responsive to the user information request. The reconstructed data is presented to the user.
It is further desirable to implement a computer method in which a proxy is run between a user and a network. Responsive to the proxy, content experienced by the user is processed. This includes differentiating according to whether such content is transient or expected to be available at a future time. The transient content is then stored for later retrieval by the user.
Advantageously a system including at least one user interface, at least one storage apparatus, and at least one data processing device can implement the above methods.
Further advantageously, a medium can embody computer program code for carrying out the above methods.
Objects and advantages will become clear in the following descriptions and claims.
Embodiments will now be described by way of non-limiting example with reference to the following figures:
In the figures, when a reference numeral is repeated, it is intended to refer to the same item.
This content may be personalized or customized to a user, based on criteria such as user preferences, time, location, and/or other context, in addition to the resources available to a particular website. The criteria leading to a particular assembled display may become complex.
As the movement to personalize information displayed to users has evolved, providers seem not to have completely explored the implications of the transient nature of what is assembled; how a user may not have time to click on all information choices provided at the time of display; and how a user may only think later that he or she wished to have accessed some aspect of the display now gone. Upon return to the website, e.g. by hitting a back button on a browser, the user may be frustrated to see that what is displayed only a few seconds later may be missing desired content.
One example of personalized content might be a print journal that has been converted to a web-based journal. Upon conversion, the journal may decide not to present all stories to all users, but rather to customize which ones are shown to which user. When the journal was in print, it was standardized so that all users saw the same content. Once the journal becomes automated over the Internet, each user may see something slightly different. After the display is over, no one may know what any one user saw.
Another example of personalized content might be a map based system that recommends merchants, such as restaurants, based on user location, time of day, user profile and information or payment provided by merchants. If any of these factors changes, the recommendations presented a few days later might be totally different, leaving the user unable to relocate a preferred merchant.
The user might want to make information requests, such as, the free hotel ad I saw yesterday, the restaurant you recommended last weekend in Freeport, Me., the sale on snow blowers last week, the new book review I read last month, or the doctor I looked up last winter.
It is therefore desirable to create a system adapted to retain or be able to reconstruct transient information. Moreover, it is desirable for the system to be able to respond to requests for such information.
While these examples are Internet based, there might be other information sources that give rise to similar issues, such as proprietary networks within large organizations.
The system will use some type of storage 207. This storage may be of any suitable type, including magnetic and/or electronic media. Modules may communicate with one another by messaging or they may store data that is read by other modules. More about the interactions of the various elements of the figures will be described below.
The system 208 here might be resident on a single server or distributed throughout multiple servers, or it might be local to a user workstation. The modules shown are merely examples. The functions embodied in those modules might be integrated into a fewer modules or distributed over more modules or divided into different organizational frameworks. Modules might be implemented in software or hardware.
In the information gathering module, item properties are received from data source management at 503. This means that transient content can be identified from currently viewed data. These transient items often will be those identified as not being reproducible on command at 504. Transient items will be identifiable within a web page by parsing the web page and identifying the various components present in it, e.g., images, videos, ads, etc. For each of the identified components, a decision is made on whether this component can be retrieved from the original web site in the future. There are several alternative approaches to making such decisions. One such approach involves a rules-engine that stores rules related to web sites and content in pages served by this web site. At 505, such items that cannot be reproduced on demand, e.g., specific ad images, text, etc., will be stored by the system, so that they can later be retrieved responsive to a user request. In parallel, at 506, items displayed to the user will be time stamped, to facilitate later retrieval that requires access to specific content at a specific time in the past. Various fragments of the items will be indexed at 507 and metadata will be added at 508. Information created in the branch including boxes 506-508 will be stored together with transient items at 505.
At 509 and 510, information generated in box 501 is maintained, for instance in databases, for retrieval by the other modules responsive to user requests.
At 908, the information obtained is then transferred to the user and an abbreviated copy is stored in the system's data storage. At 909, the system updates a user profile using the profile adaptor component.
At 1002, the inference engine processes the user description. This will include interaction with the profile adaptor. At 1003, the search engine assembles a query. In order to do this, it has to interface with the information processing module to retrieve stored timestamp, index, and metadata. The search engine also has to interact data source manager at 1004 before finally assembling a query. This assembly might have diverse implications. For instance, the requested information might be identifiable as something maintained by the information processing module, the requested information might be immediately identifiable as something available through the data source management module, the requested information might not be readily identifiable, so that the inference engine and user profile might be invoked to infer or narrow down the information choices. For example, if the user asks for a book review he read and the profile indicates the user's taste in books, the system can offer to the user the new book reviews on this subject. The system can retrieve these reviews either by searching its internal store or by going out to the web.
At 1004, the data source manager and information processing modules provide responses to the query. Then at 1005 results are presented to the user via the user management module. The user may want to interact with the results at 1006. For instance, if the system does not know exactly what the user is looking for, several avenues of further inquiry might be presented for user selection.
From reading the present disclosure, other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the design, manufacture and use of browser interfaces and which may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure of the present application also includes any novel feature or novel combination of features disclosed herein either explicitly or implicitly or any generalization thereof, whether or not it mitigates any or all of the same technical problems as does the present invention. The applicants hereby give notice that new claims may be formulated to such features during the prosecution of the present application or any further application derived therefrom.
The word “comprising”, “comprise”, or “comprises” as used herein should not be viewed as excluding additional elements. The singular article “a” or “an” as used herein should not be viewed as excluding a plurality of elements. Unless the word “or” is expressly limited to mean only a single item exclusive from other items in reference to a list of at least two items, then the use of “or” in such a list is to be interpreted as including (a) any single item in the list, (b) all of the items in the list, or (c) any combination of the items in the list. Use of ordinal numbers, such as “first” or “second,” is for distinguishing otherwise identical terminology, and is not intended to imply that operations or steps must occur in any particular order, unless otherwise indicated.
Where software or algorithms are disclosed, anthropomorphic or thought-like language may be used herein. There is, nevertheless, no intention to claim human thought or manual operations, unless otherwise indicated. All claimed operations are intended to be carried out automatically by hardware or software. Where human activity is intended herein it is generally qualified with the term “user.”
Where software or hardware is disclosed, it may be drawn with boxes in a drawing. These boxes may in some cases be conceptual. They are not intended to imply that functions described with respect to them could not be distributed to multiple operating entities; nor are they intended to imply that functions could not be combined into one module or entity—unless otherwise indicated.