System and method for managing information flow between members of an online social network

An online social network is provided in which members of the online social network control who may view their personal information and who may communicate with them. The members control who may view their personal information by setting a visibility preference. A member may not view another member's full personal profile if the measure of relatedness between the two is greater than the visibility preference of the other member. The members also control who may communicate with them by setting a contactability preference. A member may not communicate with another member if the measure of relatedness between the two is greater than the contactability preference of the other member.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to a system and method for managing information accessible online and, more specifically, to a system and method for managing information flow between members of an online social network based on their user preference settings and their relative positions within the online social network.

2. Description of the Related Art

Over the past several years, the amount of personal information that individuals share online has increased dramatically. Many websites provide an online community that provides content focusing on a common interest or theme (e.g., a “fan site” for a television program or musical artist), and allows people to join the online community and share personal information with other members of the online community.

Online social networking sites have also been rapidly gaining in popularity. Typically, members of an online social network communicate with one another and meet other members based on personal information captured in the other member profiles.

Also, members 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 members provide certain personal information to join, including contact information (e.g., physical and email 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 members 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 members 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.

Many people, however, are reluctant to provide personal information to an online social network. The reasons for this reluctance are varied. Some have experienced undesired communications when submitting personal information online. For example, automated agents may be configured to scour the information available from an online social networking site to harvest email addresses and later send unsolicited email to the harvested addresses, or some members may be deluged by unwanted messages from strangers. Parents are often concerned about allowing their children to provide personal information to an online source out of the fear that it may be subsequently misused by strangers.

SUMMARY OF THE INVENTION

The present invention provides a more appealing online environment for sharing personal information. In this environment, individuals who share their personal information also specify settings that dictate who may view their personal information and who may communicate with them.

Preferably, the environment is an online social network and the individuals are members of the online social network. The members control which other members of the online social network may view their personal information by setting a visibility preference at 1, 2, 3 or ALL. A visibility preference of 1 means that only friends of the member may view that member's personal information. A visibility preference of 2 means that only friends of the member and friends of friends of the member may view that member's personal information. A visibility preference of 3 means that only friends of the member, friends of friends of the member, and friends of friends of friends of the member may view that member's personal information. A visibility preference of ALL means that all members of the online social network may view that member's personal information.

The members also control which other members of the online social network may communicate with them by setting a contactability preference at 1, 2, 3 or ALL. A contactability preference of 1 means that only friends of the member may communicate with that member. A contactability preference of 2 means that only friends of the member and friends of friends of the member may communicate with that member. A contactability preference of 3 means that only friends of the member, friends of friends of the member, and friends of friends of friends of the member may communicate with that member. A contactability preference of ALL means that all members of the online social network may communicate with that member.

DETAILED DESCRIPTION

A social network is generally defined by the relationships among groups of individuals, and may include relationships ranging from casual acquaintances to close familial bonds. A social network may be represented using a graph structure. Each node of the graph corresponds to a member of the social network. Edges connecting two nodes represent a relationship between two individuals. In addition, the degree of separation between any two nodes is defined as the minimum number of hops required to traverse the graph from one node to the other. A degree of separation between two members is a measure of relatedness between the two members.

FIG. 1is a graph representation of a social network centered on a given individual (ME). Other members 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 member. 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 and G 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. 1depicts 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. 2is a block diagram illustrating a system for managing an online social network. As shown,FIG. 2illustrates a computer system100, including an application server200and distributed graph servers300. The computer system100is connected to a network400, e.g., the Internet, and accessible over the network by a plurality of computers, which are collectively designated as500.

The application server200manages a member database210, a relationship database220and a search database230. The member database210contains profile information for each of the members in the online social network managed by the computer system100. The profile information may include, among other things: a unique member identifier, name, age, gender, location, hometown, references to image files, listing of interests, attributes, etc. The profile information also includes VISIBILITY and CONTACTABILITY settings, the uses of which are described below in connection withFIGS. 4A and 4B.

The relationship database220stores information relating to the first degree relationships between members. In addition, the contents of the member database210are indexed and optimized for search, and stored in the search database230. The member database210, the relationship database220, and the search database230are updated to reflect inputs of new member information and edits of existing member information that are made through the computers500.

The member database210, the relationship database220, and the search database230are depicted separately in the block diagram ofFIG. 2to illustrate that each performs a different function. The databases210,220,230may each represent a different database system, module, or software; or any two of the three or all three may be parts of the same database system, module, or software.

The application server200also receives and processes information exchange requests received from the remote computers500. An information exchange request may be a request to create a new member profile, (FIG. 3), a request to view another member's profile (FIG. 4A), a request to send messages to a member (FIG. 4B), or a search request (FIG. 4C). The application server200relies on the distributed graph servers300to process certain CPU-intensive tasks required to process the information exchange request.

The graph servers300receive a query from the application server200, process the query and return the query results to the application server200. The graph servers300manage a representation of the social network for all the members in the member database. Detailed examples of graph servers and related components are described in detail in a commonly owned, co-pending application, “System and Method for Managing an Online Social Network,” Ser. No. 10/854,054, filed concurrently with the present application, the contents of which are hereby incorporated by reference.

FIG. 3is a flow diagram illustrating a method for processing a request from a potential new member to join an online social network. In Step310, the application server200receives a request from the potential new member (NM1) to join the online social network. As an example, this may occur when NM1clicks on a hyperlink navigating to the online social network's website. Potential new members may also request to join the online social network in response to a message from another existing member.

In Step320, the application server200responds to NM1's request by providing NM1with an interface to enter personal information and corresponding user preferences.FIG. 5Aillustrates a webpage that allows NM1to enter identifying information, including NM1's first and last name, email address and username. The interface may also allow NM1to enter other personal information (e.g., affiliations, employers, locations, contact information for other potential new members etc.).

At Step330, NM1enters the information in the fields provided by the interface. As illustrated,FIG. 5the web page also includes a set of radio buttons allowing NM1to select VISIBILITY and CONTACTABILITY preferences giving NM1greater control over the personal information that NM1provides to the online social networking site.

At Step340, NM1sets VISIBILITY and CONTACTABILITY preferences for the information entered in Step330. As the two identifiers suggest, the VISIBILITY and CONTACTABILITY preferences refer, respectively, to the flow of NM1's personal information to others and to the flow of information to NM1. As further described below in conjunction withFIGS. 4A-4B, the VISIBILITY setting defines the elements of NM1's personal information (e.g., member profile) that others may view, based on their degree of separation from NM1. On the other hand, the CONTACTABILITY setting limits who may communicate with NM1(e.g., by e-mail, text messaging, voicemail, instant messaging, chat, or other similar means), also based on their degree of separation from NM1.

For some embodiments, the personal information collected by the online social networking site may be subdivided into different groups, and NM1may selectively set the VISIBILITY and CONTACTABILITY preferences for each group. Accordingly, after Step350, NM1may repeat Steps320through340for additional information groups.

At Step360, NM1identifies relationships with other members (e.g., M2) of the online social network. For example, if NM1is joining the online social network in response to a request from M2, NM1may confirm that M2is, in fact, NM1's friend (i.e., NM1is separated from the requestor by 1 d/s). NM1identifies any other relationships by specifying email addresses of NM1's friends.

In the preferred embodiment, before updating the databases210,220,230to reflect a new 1 d/s relationship between NM1and another member, the other member is required to confirm that NM1is a friend. Doing so prevents NM1from falsely claiming that a first degree relationship exists with the other member when one does not. At Step370, the application server200updates the databases210,220,230to reflect the new relationships in the social network graph.

As those skilled in the art will recognize, once NM1has joined the social networking site, NM1may add additional first degree relationships to NM1's social network at any time using the operations described above. Moreover, NM1may be updating his or her social network as new 1 d/s connections are made. For example, NM1may uncover an unknown third degree relationship with M3by browsing through member profiles on the online social network site. Depending on such M3's contact preferences, NM1may then contact and begin exchanging messages with M3. Later, NM1may update the social network to indicate that he or she now has a first degree relationship with M3.

FIG. 4Ais a flow diagram illustrating a method for processing a request by one member (e.g., M1) to view the profile of another member (e.g., M2) in the system ofFIG. 2. As M1interacts with the social network web site, M1may request to view the profiles of other members. For example, M1may view the profiles a member with whom M1has a 1 d/s relationship (e.g., M1's friend MA). MA's profile may include references to MA's 1 d/s relationships (which are also among M1's 2 d/s relationships). M1may view successive member profiles, each time traversing an edge between two nodes in the social network. As M1does so, M1makes serial requests of the application server to view member profiles.

In Step610, the application server200receives a request by member M1to view the profile of member M2. If the d/s between M1and M2is less than or equal to M2's VISIBILITY preference or if M2's VISIBILITY preference is set to ALL, then the full profile of member M2will be displayed. M2's VISIBILITY setting may be set at 1, 2, 3 or ALL, and settings 1, 2 and 3 correspond to degrees of separation, 1 d/s, 2 d/s and 3 d/s and ALL corresponds to all members, regardless of degree of separation.

In Step620, the application server200retrieves M2's VISIBILITY setting from the member database210. If M2's VISIBILITY setting is ALL, the full profile of M2will be transmitted to M1for display at M1's computer (Steps630and640). If not, the application server200queries the graph servers300to determine the d/s between member M1and member M2(Steps630and650). The graph servers300process the query and return the d/s between M1and M2to the application server200.

If the d/s between M1and M2is greater than M2's VISIBILITY setting (or if M1and M2are not connected in the social network), only the mini-profile of member M2will transmitted to M1's computer for display. (Steps660and670). In the preferred embodiment, every member of the online social network has a mini-profile that includes a limited set of the personal information provided by each member as described above regardingFIG. 3. For example, the mini-profile may include only an image, first name and location. In some embodiments, the member may specify what's to be included in his or her mini-profile.

Otherwise, when the d/s between M1and M2is less than or equal to M2's VISIBILITY preference, the application server retrieves M2's full profile and transmits it to M1for display at M1's computer (Steps660and640). For some embodiments where the VISIBILITY and CONTACTABILITY preferences are set for different elements within each member's profile, the application server200may return only some elements of M2's profile but not others.

Alternatively, for some embodiments, an online social network may not provide any information about M2to M1when the d/s between them is outside of M2's VISIBILITY preference. In such an embodiment, the application server200respond to M1's request to view M2's member profile by displaying an error message, or by displaying a “no profile found” message, and the application server200would also exclude M2's member profile from any search results displayed to M1.

FIG. 4Bis a flow diagram illustrating a method for managing information flow to a member based on the member's CONTACTABILITY preference. The following example assumes that member M1is viewing the full profile of another member M2. When the application server transmits M2's full profile to M1according to the operations ofFIG. 4A, the application server200may also determine whether M1may initiate communications with M2.

In Step710, the application server200retrieves the CONTACTABILITY setting of member M2. (e.g., CONTACTABILITY setting may be set as 1, 2, 3 or ALL.) If M2's CONTACTABILITY setting is ALL, M2will permit contact from anyone, and consequently, when M1views M2's profile, a “Send Message” hyperlink will appear which member M1may click to send messages to member M1(Steps720and730).

If M2's CONTACTABILITY setting is less than ALL, the application server200queries the graph servers300to determine the d/s between member M1and member M2(Steps720and740). The graph servers300process the query and return the d/s between M1and M2to the application server200. If M2's CONTACTABILITY setting is less than the computed d/s (or if M1and M2are not connected), than M2is not permitting contact from member M1and the “Send Message” hyperlink will not be displayed when member M1views member M2's profile (Steps750and760). Conversely, if M2's CONTACTABILITY setting is greater than or equal to the computed d/s, this then M1may send messages to M2, and consequently, when member M1views M2's profile, a “Send Message” hyperlink, (or other mechanism allowing M1to initiate contact with M2) may be displayed which member M1clicks to send messages to member M1(Steps750and730).

FIG. 4Cis a flow diagram illustrating the method for processing a search request in the system ofFIG. 2. In Step810, the application server200receives a search query entered by member M1. The search query may be divided into two parts. The first part specifies search limitations, if any, for categories such as gender, age, interests and location. The second part specifies a d/s setting, which may be set at 1, 2, 3 or ALL. For example, the search query may be: [gender (female), age (less than 30), d/s (at most 2)]. The first part of this search query is [gender (female), age (less than 30)] and the second part of this search query is [d/s (at most 2)]. In Step820, the application server200issues the first part of the search query to the search database230to obtain a set of member identifiers that includes the members whose profiles meet the specified criteria. In Step830, the application server200may query to the graph servers300to obtain a set of member identifiers of members that are within the d/s specified in the second part of the search query. The application server200merges the results from the search database230and the graph servers300(Step840), and transmits the merged results to member M1(Step850). After the application server200delivers the merged results to member M1, the member may click on any of the results to view that member's profile according to the methods illustrated inFIGS. 4A and 4B.

Additionally, for some embodiments, the merged results may be further limited based on the VISIBILITY preference of each member included in the merged set. Some embodiments may not display mini-profiles in response to a request to a view a member's profile if the degree of separation between that member and the requesting member exceeds the VISIBILITY preference of that member. In such an embodiment, the search results may be further limited based on each matching members' VISIBILITY preference. For example, if M1makes queries the application server200as described above with the following query: [gender (female), age (less than 30), d/s (at most 2)], the application200server would further limit the merged results by removing the profile of any member included in the merged results whose VISIBILITY preference is set to 1.

FIGS. 5A and 5Billustrate two sample interfaces served on computers500for inputting information.FIG. 5Arepresents interface elements that may be used to input new member information. A new member may enter information using text fields5101and5102. In addition, radio buttons520are provided to allow the new member to specify CONTACTABILITY and VISIBILITY preferences by a degree of separation of one, two, three or ALL.

FIG. 5Brepresents interface elements that a member may use to search the member profiles stored in the online social network according to the method ofFIG. 4C. Specifically,FIG. 5Billustrates an interface allowing a user to enter the search query described above, according to one embodiment of the present invention. The interface shows a member that has entered the search criteria of [gender (female), age (less than 30), d/s (at most 2)]. Additionally, search results show a list of members of the online social network that satisfy all of the search criteria. Member profile shows the details of profile associated with one member included in the search results.

In the embodiments of the invention described above, the ALL setting is used to signify all members within the online social network. Alternatively, the ALL setting could be used to signify anyone and everyone, such that, if a member has a VISIBILITY preference set at ALL, anyone, even those who are not members of the online social network, could access the member's personal information.

Furthermore, the preference settings of 1, 2, 3, or ALL can be generically viewed as permission levels, specified by a member of the online network, for any type of activity involving the member and another person. For example, a preference setting for SEARCHABILITY may be included as an item in the member's profile. When this setting is used, a member will not appear in another member's search results unless the other member is within the degree of separation specified in the SEARCHABILITY setting.

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.