Abstract:
The present invention provides systems and methods for initiating relevant communication (e.g., text, voice, video, etc) based on a shared experience. Each client in a system includes a presence detector which provides information about a user experience. The information can include, for example, web pages viewed by the user, content metadata associated with the web page, a location of the user, software applications in use by the user, and the like. A centralized server in the system can quantify the proximity between experiences of two users can be quantified with a correlation score. If the users exceed a predetermined threshold for the correlation score, they can be connected into, fore example, a chat room or video conference.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims priority under 35 U.S.C. §119( e ) to U.S. Provisional Patent Application No. 60/621,786, filed on Oct. 25, 2004, entitled WEB SITE PRESENCE DETECTOR by Thomas M. Lasater, the contents of which are herein incorporated by reference in its entirety. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates generally networks, and more specifically, to social networking over a network based on shared user experiences.  
       BACKGROUND  
       [0003]     Interactive communications between computer users (or users of other devices), distinct from delayed communications such as e-mail, has grown to become a significant part of culture. Interactive communications can take place over the Internet in chat rooms, or over a cellular phone, using SMS messaging. Various types of interaction are possible. For example, two or more friends can form a private chat room to discuss various topics. On the other hand, visitors to a web site on a specific topic can join other visitors to the web site to discuss specific topics. However, in the private chat room, the topic of conversation is merely social and can lack relevance to either participant.  
         [0004]     A computer user is often alone while viewing web sites on the Internet. For example, a computer user researching an interest in model trains may not share have social friends, or chat buddies, with the same interest. Even if such friends exist, deliberate action is necessary with respect to being online and available at the same time. Finding topic-specific chat rooms can be challenging as well. Furthermore, as a user experience changes, for example, by changing topics of research, the user has to repeat the search for a relevant chat room.  
         [0005]     Therefore, there is a need for a system and method that generates chat rooms based and other interactions on a current user experience, such as a web page being viewed or physical location.  
       SUMMARY  
       [0006]     A system and method for initiating relevant communication (e.g., text, voice, video, etc) based on a shared experience is provided. The proximity between experiences of two users can be quantified with a correlation score. If the users exceed a predetermined threshold for the correlation score, they can be connected into, fore example, a chat room or video conference.  
         [0007]     In one embodiment, a system includes several clients and central server. Each client includes a presence detector which provides information about a user experience. The information can include, for example, web pages viewed by the user, content metadata associated with the web page, a location of the user, software applications in use by the user, and the like.  
         [0008]     Advantageously, two people having similar user experiences are given the same presence.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]      FIG. 1  is a flow chart illustrating a method for joining a chat room based on proximity in web surfing experiences according to one embodiment of the present invention.  
         [0010]      FIG. 2  is a flow chart illustrating a method for creating a chat room based on proximity in web surfing experiences according to one embodiment of the present invention.  
         [0011]      FIG. 3  is a flow chart illustrating a method for determining user proximities when creating the chat room according to one embodiment of the present invention.  
         [0012]      FIG. 4  is a block diagram illustrating a system for creating chat rooms based on proximity in web surfing experiences according to one embodiment of the present invention.  
         [0013]      FIG. 5  is a block diagram illustrating a presence module in the system according to one embodiment of the present invention.  
         [0014]      FIG. 6  is a schematic diagram illustrating a web browser in the system with an integrated chat module according to one embodiment of the present invention.  
         [0015]      FIG. 7  is a block diagram illustrating a central server in the system according to one embodiment of the present invention. 
     
    
       [0016]     One skilled in the art will recognize that these Figures are merely examples of the operation of the invention according to one embodiment and that other configurations and modes of operation can be used without departing from the essential characteristics of the invention.  
       DETAILED DESCRIPTION  
       [0017]     Systems and methods for connecting users in a chat room based on shared experiences. The methods illustrated in  FIGS. 1-4  can be implemented, in some embodiments, by the systems illustrated in  FIGS. 5-7 . The user connections can be based on proximity in web surfing. Also, the user connections can be based on proximity in physical locations. Proximity can be determined objectively by, for example, a URL associated with a web page being viewed or a physical location. Proximity can also be determined subjectively by, for example, personal settings or influences from a social network of other users. Additional sources for determining user proximity, such as users listening to the same audio or video (locally or over the web), which also define shared experiences, are within the scope of the present invention.  
         [0018]      FIG. 1  is a flow chart illustrating a method  100  for joining a chat room based on proximity in web surfing experiences according to one embodiment of the present invention. Generally, the method  100  describes interactions as experience by a client, such as the client described in association with  FIG. 5 .  
         [0019]     A user of a client can view  110  a web site described by a URL. The web site can be stored on a web server that can be reached on the Internet using the URL. The URL can include a domain name, and optionally a subdomain and/or file name. The domain name is the top-level description of a web site while the subdomain and file name point to particular file locations within the domain name.  
         [0020]     The URL and content metadata is sent  120  to a central server such as the central server described below. The content metadata can be a description of the web page such as one or more keywords. The keywords can be derived from classifications on a search engine, embedded tags, an analysis of text on the page, or other metadata (e.g., del.icio.us tags). For example, a user viewing a web page about ‘cars’ can have the experience generalized by categorizing the web page as ‘motor vehicles’ in order to provide more connection opportunities. In one embodiment, keywords can be determined contacts in a social network. For example, when contacts visit a page, they can leave note or a description about the content which can be used as content metadata. A user can set parameters to manage inputs for content metadata.  
         [0021]     After the central server processes the URL and content metadata, chat information is received  130  by the client. The chat information allows a user to join a chat room with, for example, a URL or identification of the chat room. The chat information can be determined by a proximity of the user to other users as described below in association with  FIG. 3 .  
         [0022]     The user can then join  140  the chat room of participants having similar user experiences. That is, the chat room can include users viewing the same or similar web pages. If a user views a different web site at a different URL  150 , a new or additional chat room can be made available. In one embodiment, the chat rooms are available until the web browser is closed  160 . In another embodiment, the user can toggle the service on and off.  
         [0023]      FIG. 2  is a flow chart illustrating a method  200  for creating a chat room based on proximity in web surfing experiences according to one embodiment of the present invention. Generally, the method  200  describes interactions as experience by a central server, such as the client described in association with  FIG. 7 .  
         [0024]     Sessions are created  210  with clients in response to receiving a connection request. Identification information such as an IP address or serial number can be associated with a session between the central server and each client. The session can be set-up according to a communication protocol (e.g., TCP/IP, Bluetooth, etc.)  
         [0025]     URLs and content metadata are received  220  over the sessions while a user views web pages. The information can be used immediately, or stored in a cache to create a history or identify user habits. Based on this information, user proximities are determined  230  as described below in association with  FIG. 3 . Essentially, user proximity is a metric used to couple users that are having a similar user experience.  
         [0026]     A chat room is created  240  to connect proximate users. The chat room can be initially created for the first two users, and later offered to additional qualifying users. The chat room can be hosted by third-party service. Chat information is sent  250  to the clients, thereby allowing the clients to join in relevant discussion.  
         [0027]      FIG. 3  is a flow chart illustrating the method  230  for determining user proximities when creating the chat room according to one embodiment of the present invention. A correlation value can be associated  310  with the URL received from the clients. Correlation values can be implemented using various methods, the following of which are only illustrations. Correlation values can be determined by a number of clients currently (or historically) viewing a web site. For example, the number of users currently viewing www.espn.com can have a high correlation value if above below 10 and a low value if above 100. Correlation values can be determined at various levels within a URL. For example, at a single moment, the correlation value for www.espn.com/golf is likely to be higher than www.espn.com. Correlation values can constantly change, based on recent activities by clients. For example, www.espn.com/golf can experience high traffic immediately before a golf tournament, and thus, become less relevant as a commonality between users during that time.  
         [0028]     A correlation value can be associated  310  with content metadata. The content metadata allows viewers of similar sites to be connected. For example, viewers of www.espn.com/tennis are likely to have common interests with viewers of www.tennis.com. In one embodiment, quantitative factors can be used as with the URL correlation values. In other embodiments, qualitative factors can be used such as social network influences. Content metadata can be received from sources other than clients, such as from third parties. In response to submitting the URL to a service such as http://del.icio.us, related media tags can be retrieved.  
         [0029]     Whether or not two users are connected can be determined by a total correlation score being above a threshold  330 . The total correlation score can be, for example, a sum of correlation values. Note that various combinations of correlation values are possible, including the use of a single correlation value as a correlation score. In one embodiment, user preferences can dictate a minimum correlation score, or commonality of user experience. In response to surpassing the threshold, a chat room is generated  340  to connect the users. Otherwise, the users are not connected  350 .  
         [0030]     In one embodiment, factors used in determining the correlation score can be presented to the user for feedback. For example, the user can be presented with several keywords derived from a web page, and the user can choose or weight the keywords, thereby effecting their impact on the correlation score.  
         [0031]      FIG. 4  is a block diagram illustrating a system  400  for creating chat rooms based on proximity in web surfing experiences according to one embodiment of the present invention. The system  400  includes one or more clients  410   a - c  in communication with a central server  450 . Communication can occur over a medium such as a data network using TCP/IP or other protocols, a telephone or cellular network, a hybrid network, and the like.  
         [0032]     The client  410  can be a device such as a personal computer, PDA, telephone or other device with a display screen. In one embodiment, the clients  410   a - c  include presence modules  412   a - c . The presence module  412  tracks a user experience by observing URL requests and other activities at the client  410 . The presence module  412  exchanges information with the central server  450  to identify other users for shared experiences (e.g., other users viewing the same web page or using the same software application).  
         [0033]     The central server  450  can be, for example, a device such as a personal computer or server blade running software. The central server  450  allows users to have shared experiences by evaluating proximities between users. In one embodiment, the central server  450  connects sufficiently proximate users in a chat room.  
         [0034]      FIG. 5  is a block diagram illustrating the presence module  412  in the system according to one embodiment of the present invention. The presence module  412  comprises a web browser  510 , a presence daemon  520 , and a chat module  530 .  
         [0035]     The web browser  510  can be, for example software code such as Firefox or Internet Explorer. The browser  510  allows a user to load various web pages on the World Wide Web by requesting URLs.  
         [0036]     The presence daemon  520  can be an independent software module, or an enhancement to the web browser  510  or an operating system (not shown). The presence daemon  510  detects when the web browser  510  or other observed application is launched and closed, in order to set-up and tear-down sessions with the central server  450 . The presence daemon  510  collects and sends information such as URLs requested by the web browser  510  or content metadata.  
         [0037]     The chat module  530  can be a plug-in, javascript frames, or other module operating as a stand-alone application or as an enhancement to the web browser  510 . The chat module  530  allows users at different locations around a network to send and receive messages. Messages can be text, voice, or video.  
         [0038]      FIG. 6  is a schematic diagram illustrating a web browser  600  in the system  400  with integrated chat rooms  620   a,b  according to one embodiment of the present invention. Also in the web browser  600 , a URL is entered into a data field  605  and a web page  610  is displayed. The web browser  600  is merely exemplary as many variations are possible.  
         [0039]      FIG. 7  is a block diagram illustrating the central server  450  in the system  400  according to one embodiment of the present invention. The central server  450  comprises a session manager  710 , a correlation engine  720 , and a chat manager  730 .  
         [0040]     The session module  710  sets up communications with the clients  410   a - c . The session module  710  can receive and store an IP address or other identifying information. The session module  710  can assign a specific port that is dedicated to the session.  
         [0041]     The correlation module  720  determines proximity between users in order to facilitate relevant communications. For example, the correlation module  720  can connect several users that are currently viewing the same URL as described above. In one embodiment, the correlation module  720  can use other metadata associated with a web page such as genre, category, and the like.  
         [0042]     The chat manager  730  controls the creation of chat rooms between users that are sufficiently correlated. To do so, the chat module  730  can send a chat room identifier to each client  410  which, in response, joins the identified chat room.  
         [0043]     In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.  
         [0044]     Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.  
         [0045]     Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.  
         [0046]     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.  
         [0047]     The present invention also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the required purposes, or it can comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.  
         [0048]     The algorithms and modules presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems can be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatuses to perform the method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the invention as described herein. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, features, attributes, methodologies, and other aspects of the invention can be implemented as software, hardware, firmware or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific operating system or environment.  
         [0049]     It will be understood by those skilled in the relevant art that the above-described implementations are merely exemplary, and many changes can be made without departing from the true spirit and scope of the present invention. Therefore, it is intended by the appended claims to cover all such changes and modifications that come within the true spirit and scope of this invention.