Method and system for tracking changes to user content in an online social network

Information

  • Patent Grant
  • 9798789
  • Patent Number
    9,798,789
  • Date Filed
    Tuesday, September 12, 2006
    18 years ago
  • Date Issued
    Tuesday, October 24, 2017
    7 years ago
Abstract
Content maintained in an online social network or other online communities is tracked for changes and updates. The content may include user profiles, digital photos, digital audio and video files, testimonials, and identification of users who are friends. When such change or update occurs, users of the online social network or online community are notified according to various criteria that they have set. The notification may be provided by e-mail, an RSS feed, or a web page when accessed. With this feature, users can browse through content of other users with efficiency.
Description
BACKGROUND OF THE INVENTION

Field of the Invention


The present invention generally relates to processing of online social network data, and more particularly, to a method and system for tracking changes to user content in an online social network.


Description of the Related Art


Over the past several years, the amount of personal information that individuals share online has increased dramatically. Many web sites provide an online community that provides content focusing on a common interest or theme, and allows people to join the online community and share personal information with other users of the online community. Online social networking sites have also been rapidly gaining in popularity. Typically, users of an online social network communicate with one another and meet other users based on personal information captured in the other user profiles.


Also, users of online social networks often request their existing friends to join, creating a web of online relationships that mirror offline ones. Operators of online social networking sites typically require that new users provide certain personal information to join, including contact information (e.g., physical and e-mail addresses, telephone numbers, instant messaging nicknames, etc.) and identifying information (e.g. a name, location, personal interests, age, etc.).


A positive consequence of this general trend is the greater ability for groups of friends, families and other acquaintances to communicate online with, and about, each other as users of a social network. For example, a group of friends may share personal information with each other about common interests, individual personal attributes, events, schedules and activity plans and may also access each others' personal information. Another benefit of online social networks is that their users can more easily find others who share common interests, goals, lifestyles, etc., without being limited to an online community dedicated to a particular interest. Doing so allows members to expand their social networks.


With access to cheap storage and higher bandwidths, the amount of information stored by users of online social networks has grown exponentially. In addition to profile information, the users now often store large amounts of multimedia files, including digital photos, and digital audio and video files. As a consequence, the process of browsing the content of other users has become highly inefficient.


SUMMARY OF THE INVENTION

The present invention provides a system and a method for improving the efficiency of finding and viewing content of users or groups of an online social network or other online communities. According to embodiments of the present invention, changes and updates to user or group content are tracked, and users are notified of certain of these changes and updates according to various criteria. The notification may be given by e-mail, a Real Simple Syndication (RSS) feed, or a web page when accessed.


The system according to an embodiment of the present invention includes a database of users in which content for each user is stored, and a processing unit that is programmed to carry out the steps of receiving and storing inputs from users that reflect changes in their content and communicating to applicable users that such changes have occurred. For example, if a first user is tracking changes to the content of a particular type of a second user and the second user changes such content, the first user will be notified that the content of that particular type of the second user has changed.


The method according to an embodiment of the present invention is carried out in a computer system having a database of users in which content for each user is stored, and includes the steps of receiving and storing inputs from users that reflect changes to their content and communicating to applicable users that such changes have occurred.


The method according to another embodiment of the present invention is carried out in an online community of users, and includes the steps of receiving inputs from a user that specify one or more types of content that are to be tracked and users who are to be tracked, monitoring updates to the content of the users and identifying those updates that are made to content that is of one of the specified types and of one of the specified users, and notifying the user of the identified updates.


The advantages of the tracking and notification techniques employed in the embodiments of the present invention are several. First, a user need not constantly browse through the content of other users to see if such content has been updated. Second, a member can define a filter for the content updates by selecting the users that he or she would like to track and the type of content updates that he or she is interested in tracking. Third, a user can select different ways of being notified of the content updates as well as the frequency of the notifications.





BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.



FIG. 1 is a diagram that graphically represents the relationships between users of an online social network;



FIG. 2 is a block diagram illustrating components of a system for managing an online social network;



FIG. 3 schematically illustrates the process for tracking changes and updates to content in an online social network and managing the notification of such changes and updates;



FIG. 4A is a schematic illustration of a web page used to specify various notification settings;



FIG. 4B is a schematic illustration of a web page used to communicate changes and updates to user content; and



FIG. 5 is a flow diagram illustrating the process steps for filtering the changes and updates to user content.





DETAILED DESCRIPTION


FIG. 1 is a graph representation of a social network centered on a given individual (ME). Other users of this social network include A-U whose position, relative to ME's, is referred to by the degree of separation between ME and each other user. Friends of ME, which includes A, B, and C, are separated from ME by one degree of separation (1 d/s). A friend of a friend of ME is separated from ME by 2 d/s. As shown, D, E, F, G, and H are each separated from ME by 2 d/s. A friend of a friend of a friend of ME is separated from ME by 3 d/s. FIG. 1 depicts all nodes separated from ME by more than 3 degrees of separation as belonging to the category ALL.


Degrees of separation in a social network are defined relative to an individual. For example, in ME's social network, H and ME are separated by 2 d/s, whereas in G's social network, H and G are separated by only 1 d/s. Accordingly, each individual will have their own set of first, second and third degree relationships.


As those skilled in the art understand, an individual's social network may be extended to include nodes to an Nth degree of separation. As the number of degrees increases beyond three, however, the number of nodes typically grows at an explosive rate and quickly begins to mirror the ALL set.



FIG. 2 is a block diagram illustrating a system 250 for creating and managing an online social network. The system 250 represents one example embodiment of a system for creating and managing an online social network, and includes an application server 251 and one or more graph servers 252. As known in the art, a server is a computer having a processing unit and system memory that is programmed to carry out certain functions. The system 250 is connected to a network 260, e.g., the Internet, and accessible over the network by a plurality of remote computers (only three of which are shown), collectively designated as 270.


The application server 251 manages a user database 254, a relationship database 255, a search database 256, and other databases 257. The user database 254 contains profile information for each of the user in the online social network managed by the system 250. The profile information may include, among other things: a unique user identifier (user ID), name, age, gender, location, hometown, references to image files, listing of interests, attributes, and the like. The user database 254 also contains information about groups (e.g., organizations, school alumni associations, family, etc.) that users have defined. The group information may include, among other things: a unique group identifier (group ID), name, description of the group, and members of the group. The relationship database 255 stores for each user, the user IDs of all users with whom the user has a direct relationship, i.e., direct friends of the user who are users of the online social network. In addition, the contents of the user database 254 are indexed and optimized for search, and stored in the search database 256. The other databases 257 may include a database for storing testimonials, and various other information commonly stored in online social networks and communities. The user database 254, the relationship database 255, the search database 256, and the other databases 257 are updated to reflect inputs of new user information and edits of existing user information that are made through the remote computers 270.


The application server 251 also manages the information exchange requests that it receives from the remote computers 270. The graph servers 252 receive a query from the application server 251, process the query and return the query results to the application server 251. The graph servers 252 manage a representation of the social network for all users in the member database. The graph servers 252 have a dedicated memory device 253, such as a random access memory (RAM), in which an adjacency list that indicates all first degree relationships in the social network is stored. The graph servers 252 respond to requests from application server 251 to identify relationships and the degree of separation between users of the online social network.


In the embodiments of the present invention described below, users are respectively operating the remote computers 270 that are programmed to execute web browser programs, and access the web pages managed by the application server 251 using the web browser programs. The web pages that are displayed to a user are transmitted from the application server 251 to that user's remote computer and processed by the web browser program stored in that user's remote computer for display through the monitor of that user's remote computer.



FIG. 3 schematically illustrates the process for tracking changes and updates to content in an online social network and managing the notification of such changes and. Blocks 310, 320, 330, 335, 340 represent the operations that are being carried out by the application server 251. Block 312 represents the user inputs that are made through a browser running on a remote computer and are transmitted over the Internet to the application server 251. Block 314 represents certain inputs that are made at third party web sites 314, such as flickr, YouTube, xanga.com, and eBay, and transmitted over the Internet to the application server 251 using an RSS feed. All such inputs are aggregated and stored in a queue 310 that is managed by the application server 251.


The items stored in the queue 310 then undergo a filter process 320 one at a time on a first-in, first-out basis. The filter process 320 examines the items in the queue 310 and supplies them to updated content buckets 330, which represents a series of memory regions that have been allocated to the users of the online social network. The filter process 320 selectively supplies the items in the queue 310 to the updated content buckets 330 in accordance with rules 335 that have been defined for the users. For example, the filter process 320 selectively supplies the items in the queue 310 to the updated content bucket 330 of user A in accordance with rules 335 that have been defined for user A; the filter process 320 selectively supplies the items in the queue 310 to the updated content bucket 330 of user B in accordance with rules 335 that have been defined for user B; and so forth. For each user, the rules 335 include an identification of those users or groups whose content he or she desires to track and specify the type of content updates or changes that he or she desires to track. By applying these rules to the filter process 320, the items stored in the queue 310 are stored in an updated content bucket 330 of a user only if such items represent content updates or changes of another user or group that he or she desires to track and are of the type that he or she desires to track.


The items stored in the updated content buckets 330 undergo output processing 340. The output processing 340 is carried out separately for each of the different updated content buckets 330 and in accordance with the rules 335 defined by the user who is associated with the updated content bucket. For each user, the rules 335 specify the frequency of the output processing 340, and the method of notification, whether by e-mail 342, a web page 344, or an RSS feed 346.



FIG. 4A is a schematic illustration of a web page used to specify notification settings that define the rules 335. In section 410, the user selects the type of content updates or changes he or she desires to track. In section 420, the user specifies those other users or groups whose content he or she desires to track. In section 430, the user selects the method of notification. In section 440, the user selects the frequency of notification. In section 450, the user has the option of turning off all notifications. Certain selections on the web page require the user to supply additional information through the “specify” hyperlink. For example, the user selects from a list of friends, users, bookmarked profiles, or groups in section 420 if one of these options is checked. In certain embodiments, the user is given the option to select all friends who are within 1, 2, or 3 degrees of separation. Also, if the user selects the RSS feed option in section 430, the user is asked to specify the URL to which the RSS feed will be transmitted and user ID and password that are required to access such URL.



FIG. 4B is a schematic illustration of a web page used to communicate to a user of the changes and updates to content of other users of the online social network. This web page is displayed when the user accesses his or her homepage of the online social network. This means that the user has selected at least the “Home page” option in section 430 of FIG. 4A. If the user has also selected the “E-mail” option and the “RSS feed” option, the user will be notified of the updates noted below by those methods as well. The first entry indicates that the user, Tammy, added new friends. The second entry indicates that the user, Sarah, received new testimonials. The third entry indicates that the user, Elton, updated his profile. The fourth entry indicates that the group, Giants Fan Club, added new members. These entries indicate that the user has selected at least the first, third, and fourth options in section 410. They also indicate that the user is tracking the updates of at least Tammy, Sarah, Elton, and the Giants Fan Club. For simplicity, the user is notified of a fixed number of most recent content updates (in this example, 4). The user can view more updates by accessing the hyperlink, “More Friend Updates.”



FIG. 5 is a flow diagram illustrating the process steps for filtering changes and updates to content in an online social network. These process steps are carried out by the application server 251 as it is carrying out the operations represented by blocks 310, 320 shown in FIG. 3, and represents one illustrative way of how changes and updates to content can be processed so that applicable users can be notified of such changes and updates.


In step 510, user inputs that reflect updates and changes to content are received and stored in a queue. The items stored in the queue are then processed one at a time and per user in accordance with steps 514-522. Step 514 represents the beginning of the loop. In this step, an item stored in the queue and a user are selected for processing. Each time through the loop, a next user is selected. If all users have been selected, then the first user and a next item stored in the queue are selected for processing.


In step 516, the selected user's rules are examined to see if the queue item being processed is of the type that the user is tracking. If it is, the process continues to step 518. If not, the process returns to the beginning of the loop. In step 518, the selected user's rules are examined to see if the queue item being processed is an update made by a user or group that the selected user is tracking. If it is, the process continues to step 520. If not, the process returns to the beginning of the loop. In step 520, the item being processed is stored in the selected user's updated content bucket. Step 522 checks to see if all items in the queue have been processed for all users. If this condition is true, the process ends. If not, the process returns to the beginning of the loop.


While particular embodiments according to the invention have been illustrated and described above, those skilled in the art understand that the invention can take a variety of forms and embodiments within the scope of the appended claims.

Claims
  • 1. A method comprising, by one or more computer systems of an online social network: accessing a graph data structure comprising a plurality of nodes and connections between the nodes, each of one or more of the nodes being associated with one of a plurality of users of the online social network, each connection between two nodes representing a relationship between them and establishing a single degree of separation between them;accessing information associated with a first user of the online social network, the first user being associated with a first node of the plurality of nodes, the information indicating that the first user wants to track whether new connections with one or more second nodes of the plurality of nodes are formed on a third-party system that is external to the online social network, each of the second nodes being separated in the graph data structure from the first node by one degree of separation;receiving, from the third-party system, information indicating that a second user associated with one of the second nodes has a new relationship with a third user, the third user being associated with a third node of the plurality of nodes, the third node being separated in the graph data structure from the second node by one degree of separation;storing the information from the third-party system in a queue that contains previously-stored information from the third-party system;processing the information stored in the queue on a first-in-first-out basis by: determining that the previously-stored information is of interest to the first user based on the information associated with the first user;storing the previously-stored information in one of a plurality of memory buckets associated with the plurality of users of the online social network, wherein the memory bucket is associated with the first user;after storing the previously-stored information in the memory bucket associated with the first user, determining that the information from the third-party system is of interest to the first user based on the information associated with the first user; andstoring the information from the third-party system in the memory bucket associated with the first user;processing the information stored in the memory bucket associated with the first user, wherein the processing is triggered based on a notification frequency specified by the first user; andnotifying the first user of (1) an event associated with a fourth user associated with one of the second nodes based on the processed previously-stored information and (2) the new relationship between the second user and the third user based on the processed information from the third-party system.
  • 2. The method of claim 1, further comprising receiving input data items from the third-party system that indicate whether a connection with one of the second nodes is formed on the third-party system.
  • 3. The method of claim 2, further comprising storing the input data items in a memory.
  • 4. The method of claim 1, wherein one or more second users associated with the one or more second nodes interact with the third-party system to change, add or update content on the third-party system.
  • 5. The method of claim 1, wherein notifying the first user comprises communicating a description of the new relationship.
  • 6. The method of claim 5, wherein the description is transmitted to the first user as part of a web page.
  • 7. The method of claim 5, wherein the description is transmitted to the first user as part of an RS S feed.
  • 8. The method of claim 5, wherein the description is transmitted to the first user as part of an e-mail.
  • 9. The method of claim 1, wherein the information associated with the first user further identifies one or more types of content that the first user wants to track.
  • 10. The method of claim 1, wherein the information associated with the first user further identifies one or more third-party systems that the first user wants to track.
  • 11. The method of claim 4, wherein the content comprises one or more of a user profile, a digital photo, text, a testimonial by other users, or identification of users who are friends.
  • 12. The method of claim 4, wherein notifying the first user comprises communicating to the first user that the content associated with the second nodes has been changed, added to, or updated on the third-party system.
  • 13. A computer system of an online social network comprising: one or more processors, the processors operable when executing instructions to: access a graph data structure comprising a plurality of nodes and connections between the nodes, each of one or more of the nodes being associated with one of a plurality of users of the online social network, each connection between two nodes representing a relationship between them and establishing a single degree of separation between them;access information associated with a first user of the online social network, the first user being associated with a first node of the plurality of nodes, the information indicating that the first user wants to track whether new connections with one or more second nodes of the plurality of nodes are formed on a third-party system that is external to the online social network, each of the second nodes being separated in the graph data structure from the first node by one degree of separation;receive, from the third-party system, information indicating that a second user associated with one of the second nodes has a new relationship with a third user, the third user being associated with a third node of the plurality of nodes, the third node being separated in the graph data structure from the second node by one degree of separation;store the information from the third-party system in a queue that contains previously-stored information from the third-party system;process the information stored in the queue on a first-in-first-out basis by: determine that the previously-stored information is of interest to the first user based on the information associated with the first user;store the previously-stored information in one of a plurality of memory buckets associated with the plurality of users of the online social network, wherein the memory bucket is associated with the first user;after storing the previously-stored information in the memory bucket associated with the first user, determine that the information from the third-party system is of interest to the first user based on the information associated with the first user; andstore the information from the third-party system in the memory bucket associated with the first user;process the information stored in the memory bucket associated with the first user,
  • 14. The system of claim 13, wherein the processors are further operable when executing instructions to receive input data items from the third-party system that indicate whether a connection with one of the second nodes is formed on the third-party system.
  • 15. The system of claim 14, wherein the processors are further operable when executing instructions to store the input data items in a memory.
  • 16. The system of claim 13, wherein one or more second users associated with the one or more second nodes interact with the third-party system to change, add or update content on the third-party system.
  • 17. The system of claim 13, wherein to notify the first user comprises communicating a description of the new relationship.
  • 18. The system of claim 17, wherein the description is transmitted to the first user as part of a web page.
  • 19. The system of claim 17, wherein the description is transmitted to the first user as part of an RSS feed.
  • 20. The system of claim 17, wherein the description is transmitted to the first user as part of an e-mail.
  • 21. The system of claim 13, wherein the information associated with the first user further identifies one or more types of content that the first user wants to track.
  • 22. The system of claim 13, wherein the information associated with the first user further identifies one or more third-party systems that the first user wants to track.
  • 23. The system of claim 16, wherein the content comprises one or more of a user profile, a digital photo, text, a testimonial by other users, or identification of users who are friends.
  • 24. The system of claim 16, wherein to notify the first user comprises to communicate to the first user that the content associated with the second nodes has been changed, added to, or updated on the third-party system.
US Referenced Citations (67)
Number Name Date Kind
5572643 Judson Nov 1996 A
6324541 de l'Etraz Nov 2001 B1
6879965 Fung et al. Apr 2005 B2
7231176 Levy Jun 2007 B2
7249123 Elder et al. Jul 2007 B2
7359894 Liebman Apr 2008 B1
7433876 Spivack Oct 2008 B2
7539697 Akella et al. May 2009 B1
7596597 Liu et al. Sep 2009 B2
7613769 Hess Nov 2009 B1
7669123 Zuckerberg et al. Feb 2010 B2
7730143 Appelman Jun 2010 B1
7797732 Tam Sep 2010 B2
7831658 Khopkar Nov 2010 B2
7832003 Kelly et al. Nov 2010 B2
7991764 Rathod Aug 2011 B2
8037093 Tiu, Jr. Oct 2011 B2
8171128 Zuckerberg May 2012 B2
8682995 Lawler Mar 2014 B1
8694542 Tiu, Jr. Apr 2014 B2
9479474 Norton Oct 2016 B2
20020016786 Pitkow et al. Feb 2002 A1
20030018719 Ruths Jan 2003 A1
20030158855 Farnham Aug 2003 A1
20040044566 Bostelmann et al. Mar 2004 A1
20040060129 Juett Apr 2004 A1
20040088325 Elder May 2004 A1
20050060417 Rose Mar 2005 A1
20050193010 DeShan Sep 2005 A1
20050198299 Beck et al. Sep 2005 A1
20050203801 Morgenstern et al. Sep 2005 A1
20050216300 Appelman Sep 2005 A1
20050256866 Lu Nov 2005 A1
20050283753 Ho Dec 2005 A1
20060015540 Takeda Jan 2006 A1
20060047419 Diendorf Mar 2006 A1
20060048059 Etkin Mar 2006 A1
20060085370 Groat Apr 2006 A1
20060085419 Rosen Apr 2006 A1
20060117378 Tam Jun 2006 A1
20060136419 Brydon Jun 2006 A1
20060173841 Bill Aug 2006 A1
20060230061 Sample Oct 2006 A1
20060240856 Counts Oct 2006 A1
20060259957 Tam Nov 2006 A1
20070005754 Horvitz et al. Jan 2007 A1
20070011665 Gandhi Jan 2007 A1
20070038712 Affronti Feb 2007 A1
20070060129 Ramer et al. Mar 2007 A1
20070094389 Nussey Apr 2007 A1
20070100960 Eichstaedt May 2007 A1
20070106627 Srivastava et al. May 2007 A1
20070136178 Wiseman et al. Jun 2007 A1
20070171716 Wright et al. Jul 2007 A1
20070174247 Xu Jul 2007 A1
20070220010 Ertugrul Sep 2007 A1
20070239538 Misra Oct 2007 A1
20070255785 Hayashi Nov 2007 A1
20070282959 Stern Dec 2007 A1
20070282980 Fischer Dec 2007 A1
20080059576 Liu Mar 2008 A1
20080065604 Tiu et al. Mar 2008 A1
20080091834 Norton Apr 2008 A1
20080172288 Pilskalns et al. Jul 2008 A1
20080222060 Perng Sep 2008 A1
20080228887 Robertson Sep 2008 A1
20100030734 Chunilal Feb 2010 A1
Non-Patent Literature Citations (16)
Entry
Tiu et al., Feeding Updates to Landing Pages of Users of an Online Social Network From External Sources, Notice of Allowance from USPTO for U.S. Appl. No. 11/624,088, dated Jun. 6, 2011.
U.S. Appl. No. 13/269,307, filed Oct. 7, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/277,032, filed Oct. 19, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/277,043, filed Oct. 19, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/277,053, filed Oct. 19, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/312,823, filed Dec. 6, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/313,895, filed Dec. 7, 2011, William K. Tiu, Jr.
U.S. Appl. No. 13/313,915, filed Dec. 7, 2011, William K. Tiu, Jr.
Search Report for WO 2007/052285, dated May 10, 2007.
Submission of Prior Art Under 37 CFR1.501 for now U.S. Pat. No. 8,037,093, Oct. 17, 2011.
Submission of Prior Art Under 37 CFR1.501 for U.S. Publication No. 2012/0030286, May 26, 2012.
Submission of Prior Art Under 37 CFR1.501 for U.S. Publication No. 2012/0036213, May 26, 2012.
Submission of Prior Art Under 37 CFR1.501 for U.S. Publication No. 2012/0036260, May 26, 2012.
U.S. Appl. No. 14/179,382, filed Feb. 12, 2014, Tiu Jr.
U.S. Appl. No. 14/491,361, filed Sep. 19, 2014, Tiu Jr.
U.S. Appl. No. 14/497,510, filed Sep. 26, 2014, Tiu Jr.
Related Publications (1)
Number Date Country
20080065701 A1 Mar 2008 US