Abstract:
A technique for providing a wish list is disclosed. The technique comprises displaying the wish list, modifying the wish list, and sending substantially in real-time information associated with the wish list.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   This application claims priority to U.S. Provisional Patent Application No. 60/519,772 entitled WISH LIST filed Nov. 12, 2003 which is incorporated herein by reference for all purposes. 
   This application is a continuation in part of co-pending U.S. patent application Ser. No. 09/930,878 entitled INSTANT MESSAGING ENVIRONMENTS filed Aug. 15, 2001, which is incorporated herein by reference for all purposes. 

   FIELD OF THE INVENTION 
   The present invention relates generally to communications systems and applications. More specifically, a technique for sharing information among users is disclosed. 
   BACKGROUND OF THE INVENTION 
   Instant messaging has become one of the most popular applications on the Internet. Instant messaging programs generally allow users to send and receive messages. The messages are typically generated and displayed by an instant messaging application on each end and an instant messaging server may perform various functions to facilitate the transfer of messages for communication or conversation. 
   Software intended for implementing an instruction set in an instant messaging environment may be generally referred to as an instant messenger (IM) application. Existing IM applications typically allow limited data exchanges such as text messages. It would be desirable if the users could share more information about themselves via IM applications in an interactive way. It would also be useful if the sharing of information can be provided via a user interface that is easy to use. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
       FIG. 1  is a diagram illustrating the sharing of information, such as a wish list, between users according to one embodiment. 
       FIG. 2  is a flowchart illustrating the sharing of a wish list between users according to one embodiment. 
       FIG. 3  is a flowchart illustrating a process for saving a single item in the search results according to one embodiment. 
       FIG. 4  is a flowchart illustrating the removal of an item from the wish list according to one embodiment. 
       FIG. 5  is a flowchart illustrating the display of User A&#39;s wish list to User B, according to one embodiment. 
   

   DETAILED DESCRIPTION 
   The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. 
   A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. 
   A technique for sharing information between two or more users is disclosed. In some embodiments, information, such as a wish list is modified and information associated with the wish list is sent. In some embodiments, the wish list information is sent from the device of the wish list owner to the device of the recipient. The wish list may be stored locally on the device to reduce latency. In some embodiments, the wish list information includes a search phrase, which may be used to display the wish list on the recipient&#39;s device. 
     FIG. 1  is a diagram illustrating the sharing of information, such as a wish list, between users according to one embodiment. As used herein, a wish list refers to information specific to a user, such as a data structure used to track items desired by or of interest to the user. A wish list may be empty, or it may include one or more items. The items may be objects as well as non-physical concepts or ideas such as categories or classes of things. In various embodiments, a wish list may be implemented as a list, a table, a tree, or any appropriate data structures of combinations thereof. 
   In the example shown in  FIG. 1 , users A and B communicate with each other via the Internet using instant messaging (IM) applications  100  and  102 , respectively. As used herein, the term “application” is intended to refer to any client application, server application, distributed application, self contained application or combination thereof. An application may be implemented in any appropriate manner, including being embedded in a chip or being loaded into memory or firmware. While this description refers extensively to instant messaging applications, the disclosed techniques can also be applied to other messaging applications or systems in different embodiment. In general, an instant messaging application refers to any real-time or near real-time messaging or information exchange application such as mobile phone messaging or wireless device messaging. Instant messaging applications include applications that buffer messages sent to a participant who is temporarily unavailable or offline. 
   The techniques are applicable to messaging applications running on a variety of devices, including personal computers, handheld devices, mobile telephones, wireless devices or any other appropriate platforms and/or systems. Throughout this specification, for ease of reference, the Internet is referred to as a medium over which messages are sent, although other mediums can also be used. The disclosed system also operates over any other appropriate networks including wireless networks, proprietary networks, intranets, local area networks, or wide area networks. 
   The user interface may be presented differently for different IM applications. In the example shown in  FIG. 1 , the user interfaces of the IM application  100  and  102  each includes a conversation window ( 106  and  110 , respectively) used to display text messages or conversations. User interfaces  100  and  102  also include environment-specific windows  104  and  108 , respectively. Each user may individually perform functions such as search, browse, shopping, etc. in the environment-specific area without showing the changes to the other user. The user may also selectively share the contents in the environment-specific area with the other user. In this example, User A may share his wish list with User B. Details of the sharing are discussed below. 
     FIG. 2  is a flowchart illustrating the sharing of information, such as a wish list, between users according to one embodiment. In this example, User A shown in  FIG. 1  generates a wish list and shares it with User B. The two users start their instant messaging session by sending or receiving an initial message using their IM applications ( 200 ). The users are ready to exchange their wish lists at this point. In some embodiments, additional authentication may take place before the wish lists are exchanged. For example, to provide better privacy protection, the user may be able to share his wish list with certain users and not the others. If the other user does not have permission to view the wish list, the wish list is then not sent to the other user at session initialization time. In some embodiments, a user may create different types of wish lists for different groups of people. For example, a user may create separate wish lists for friends, family and co-workers. Additional checking may be performed to select an appropriate wish list to show to the other user. In some embodiments, a user may subscribe to the wish lists of certain users. An IM server may transfer the changes in the subscribed wish lists to the user even if the user is offline when the changes occurred. 
   In the example shown in  FIG. 2 , it is assumed that both User A and User B are permitted to view the each other&#39;s wish list. The wish list for each user is stored locally on the user&#39;s device. Once the IM session initializes, the wish lists are exchanged ( 202 ). While the IM session is in progress, User A may be engaged in a conversation with User B while concurrently performing browse functions in his environment-specific window ( 204 ). While browsing, User A may perform a search to locate items of interest ( 206 ). 
   There are several ways to perform this search. In some embodiments, User A&#39;s environment specific window provides a special search page that allows the user to type in a search phrase. The search phrase includes one or more words and/or expressions that can be used to conduct a search. The IM application then sends the search phrase via the Internet to a server such as  112  shown in  FIG. 1 . The server may be a database, an application server or any other appropriate devices that can locate items corresponding to the search phrase and return the search results to the application. In this example, the server directly carries out the search and provides the search results. In some embodiments, the server may relay the search request on to a different device. The search results are then displayed in the user interface of User A&#39;s IM application. In some embodiments, the search may be performed by sending a query to a search engine on the Internet, and the IM application user interface may display the results returned by the search engine. The search results may be reformatted by the IM application before they are displayed. 
   User A is then given an option to save the search result ( 208 ). In some embodiments, the user can save the search results by pressing a save button associated with the environment-specific window. If the user chooses not to save the search results, he may continue to browse and/or repeat the search process, and the unsaved search results may be overwritten. If, however, the user chooses to save the search result, he may be optionally offered an opportunity to add additional information or comment to the search ( 210 ). This option may be presented to the user as a dialog box or other appropriate input interface. If the user chooses to do so, he may enter additional text or other appropriate information in the interface provided ( 212 ). The user&#39;s intention to save is then confirmed, and both the search results as well as the additional information are saved ( 214 ). The confirmation is optional and may not be displayed in some embodiments. In some embodiments, the search phrase is saved instead of the search results. Thus, a new search is performed on the saved search phrase to display the currently available items next time User A starts a new IM session. After the wish is saved, an update is sent to User B ( 216 ). In some embodiments, the update includes just the changed portion of the wish list. In some embodiments, the update includes the entire wish list. Optionally, an alert may also be sent to User B ( 216 ). User A then returns to browse mode and may perform other searches ( 204 ). 
   Returning to  FIG. 1  as an example, User A enters a search with a search phrase “dog toy”. In the search window, a number of search results such as “plush dog toy” and “chew toy for dogs” are listed. In some embodiments, the search phrase “dog toy” is sent to User B as User A&#39;s wish list information. This search phrase represents items in user A&#39;s wish list in a compressed form. The IM application on User B&#39;s device can later obtain more details about the items in A&#39;s wish list using this information. Details of how User A&#39;s wish list information is processed by User B&#39;s IM application is discussed in more detail later. 
   In this example, when User A&#39;s wish list changes, the change is pushed to user B&#39;s IM application in approximately real-time. User A and User B are both connected to an Instant Messaging server in this example. The changes are sent instantaneously over the network connection provided by the Instant Messaging service. Other instant messaging protocols and architectures can also be used. In this embodiment, the two users are constantly provided with the most current information about the other&#39;s wishes, and may react to the information instantly. For example, the wish list may be integrated with an e-commerce or shopping web site. The items in the wish list may be links to actual items available for sale. The user may place the items in a virtual shopping cart and make purchases. As a result, the interactivity of the IM session is enhanced. 
   In some embodiments, instead of saving the search phrase or the entire search results in the wish list, items in the search result may be individually saved to the wish list.  FIG. 3  is a flowchart illustrating a process for saving a single item in the search results according to one embodiment. In this example, users A and B initialize their IM session by sending or receiving an initial message ( 300 ). The wish list of the users are then exchanged ( 302 ). While the session is in progress, User A may enter browse mode ( 304 ). The user may search for items of interest by selecting a search page within the environment-specific window ( 306 ). Returning to the example shown in  FIG. 1 , User A performs a search with a key phrase “dog toy”. In the search window, a number of search results such as “plush dog toy” and “chew toy for dogs” are displayed in the search window. The user may select one of the items in the search result by clicking on a link for the item ( 312 ). Once the item is displayed in the IM environment ( 314 ), the user can choose to select an item to add to his wish list. In some embodiments, an item is added by selecting an interface element such as a button or check box. Information associated with the item, such as item identifier or item description is then saved locally on User A&#39;s machine ( 316 ). In some embodiments, the item identifier includes a stock keeping unit (SKU) number or a product identifier. The identifier is saved and can be used later to retrieve the corresponding item from the search database. 
     FIG. 4  is a flowchart illustrating the removal of an item from the wish list according to one embodiment. In this example, User A first selects an item in the wish list ( 402 ). Once the item is selected, the user is offered an option to remove the item from the wish list. The remove option is provided via a remove button in some embodiments. The user may choose to remove the item by clicking on the remove button ( 404 ). The user is given an opportunity to confirm the removal of the item ( 406 ). If a user does not confirm the removal of the item, nothing is to be done and the process completes without removing any items. If the user confirms the removal of the item, locally stored wish list data is then updated to reflect the change ( 408 ). The IM application of User A then sends an update to User B ( 410 ). 
   Although User B&#39;s IM application may display User A&#39;s wish list as soon as an update or alert is received, it is preferable for the IM application to notify User B in a less obtrusive manner, such as by changing an icon or by displaying a dialogue box. In some embodiments, no indication of change is given to User B, although if User B chooses to view User A&#39;s wish list, the information displayed will be up to date.  FIG. 5  is a flowchart illustrating the display of User A&#39;s wish list to User B, according to one embodiment. At the beginning of the process, User B chooses to view User A&#39;s wish list ( 500 ). User B is given the option to view the wish list via a menu option, a button, or any other appropriate interface in various embodiments. In this embodiment, the wish list includes one or more search phrases User A used to conduct searches. The search phrases are displayed in User B&#39;s environment-specific window. User B selects one such key word shown in the wish list ( 502 ). User B&#39;s IM application then performs a search based on the keyword selected ( 504 ), preferably in a manner similar to the search initially conducted by User A&#39;s IM application in order to obtain search results that are consistent with the search results obtained by User A. The search results are then displayed in User B&#39;s user interface window ( 506 ). 
   Techniques for sharing a wish list have been described. In addition to being used in instant messaging sessions between two users, the techniques described herein are also applied to instant messaging or chat sessions that include three or more users. 
   Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.