# Patent

## Title
Methods and systems for providing current email addresses and contact information for members within a social network

## Abstract

Methods and systems for providing current email addresses or contact information to members within a social network are described. In one described method, an email program application requests an email address for a member within a social network. Using profile information associated with the member, the email address is provided to the email program application which sent the request. The email address is then entered into the send-to parameter field of an email message. In another described method, contact information associated with a first member of a social can be provided to a second member of the social network. The contact information is provided if the relationship between the first and second members is an authorized relationship. The contact information associated with the first member can be used to update the contact information for the first member in an electronic address book associated with the second member.

## Background
FIELD OF THE INVENTION
The invention generally relates to social networks. More particularly, the invention relates to methods and systems for providing current email addresses and contact information for members within a social network.
BACKGROUND
Conventional web email systems such as those hosted on Yahoo!TM, HotmailTM or other web sites, facilitate communication between people. These conventional websites generally do not provide a central repository for maintaining current email addresses for members within a social network. Similarly, conventional email client systems such as OutlookTM encounter similar problems in that the email addresses stored in a user's address book or contact list are not always current. In addition to email addresses, electronic address books typically do not maintain current contact information.
Typically, a user must physically enter contact information for each contact in a user's address book or contact list. Recently, V-cards have helped in reducing the actual typing required to enter a new contact into the user's address book or contact list. Unfortunately, contact information including email addresses is not static, thus a user must update his or her address book or contact list whenever a contact changes his or her contact information. However, in order to maintain current contact information, the user must be aware of the changes.
SUMMARY
Embodiments of the present invention comprise systems and methods for providing current email addresses and contact information for members of a social network. One aspect of an embodiment of the present invention comprises receiving a request for an email address of a first member of a social network, the request comprising an entity identifier associated with the first member; determining an email address for the first member using profile information associated with the first member, returning the email address in response to the request; and inserting the email address into a sending parameter of an email message.
Another exemplary method of one embodiment of the present invention comprises receiving a request for contact information associated with a first member of a social network, the request comprising a first entity identifier associated with the first member and a second entity identifier associated with the requester of the contact information, determining if the requester is authorized to receive the contact information using profile information associated with the first member, sending the contact information to the requester if authorized, comparing the sent contact information with the contact information for the first member in an address book associated with the requester, and replacing differing contact information associated with the first member in the address book with the corresponding sent contact information.
These exemplary embodiments are mentioned not to limit or define the invention, but to provide examples of embodiments of the invention to aid understanding thereof. Exemplary embodiments are discussed in the Detailed Description, and further description of the invention is provided there. Advantages offered by the various embodiments of the present invention may be further understood by examining this specification.



BRIEF DESCRIPTION OF THE DRAWINGS
These and other features, aspects, and advantages of the present invention are better understood when the following Detailed Description is read with reference to the accompanying drawings, wherein:
FIG. 1 illustrates a block diagram of an exemplary system in accordance with an embodiment of the present invention;
FIG. 2 illustrates one embodiment of a social network in accordance with an exemplary embodiment of the present invention;
FIG. 3 illustrates a flow diagram of a method in accordance with an exemplary embodiment of the present invention; and
FIG. 4 illustrates another flow diagram of a method in accordance with an exemplary embodiment of the present invention.



DETAILED DESCRIPTION
Introduction
Embodiments of the present invention comprise systems and methods for providing current email addresses and contact information for members within a social network. A social network can refer to a computer network connecting people or organizations by a set of social relationships, such as friendship, co-working, or information exchange. Examples of a social network can include OrkutTM, FriendsterTM, and TribeTM. In one embodiment, using an email program application on a client device or an email program application accessible via a browser program application on a client device, e.g., a laptop computer, a user can enter an entity identifier into the sending parameter of an email message. The entity identifier attempts to identify an intended recipient of the email message, e.g., a member of a social network. Entering the entity identifier triggers the email program application to send a request for an email address to a directory application. The directory application receives the request and parses out the entity identifier from the request. The directory application uses the entity identifier to identify a member of the social network. If there are multiple members identified with the entity identifier, the directory application can prompt the user to select the appropriate member. For example, if the user entered “smith” as the intended recipient of the email message, the directory application can prompt the user to select the proper “smith,” e.g., “John Smith, Frank Smith, Robert Smith?” Once the member is identified, the directory application obtains the email address from the user profile associated with identified member. The directory application then outputs the email address to the email program application associated with the user who caused the request for email address to be sent. The email message is then sent to the email address provided by the directory application. Thus, a member of the social network can maintain his or her current email address in his or her user profile. By maintaining a current email address in the user profile, a member can ensure that he or she receives email messages regardless of whether the sender has the member's current address.
In another embodiment, current contact information for a member of a social network can be provided to a user who requests such information. For example, using an email program application on a client device or an email program application accessible via a browser program application on a client device, e.g., a laptop computer, a user can trigger the sending of a request for the contact information of a member of a social network. For example, by clicking on the member's name in the address directory, the email program application can request the contact information for the member of a social network. The request can comprise a second entity identifier identifying the requester of the contact information and a first entity identifier identifying the contact, e.g., a member in a social network. The request is sent to a directory application which identifies the requester and the contact. Using the user profile associated with the contact, the directory application determines the relationship between the requester and the contact and determines if such a relationship permits the contact information associated with the contact to be released. For example, if the user profile associated with the contact indicates that all friends and business acquaintances can receive his or her contact information and if the requester and the contact have such a relationship as indicated in the user profile, then the contact information can be sent to the requester. If the user profile indicates that the relationship between the requester and contact is not an authorized relationship to receive such information, then the contact information is not sent to the requester. If authorized, the directory application sends the contact information associated with the contact to the requester. The email program application receives the information and can compare the contact information from the directory application with the contact information stored in the address directory. The email program application can replace any differing information with the contact information from the directory application. By maintaining current contact information and authorization information in his or her own profile, a member can control who can receive such contact information.
This introduction is given to introduce the reader to the general subject matter of the application. By no means is the invention limited to such subject matter. Exemplary embodiments are described below.
System Architecture
Various systems in accordance with the present invention may be constructed. FIG. 1 is a diagram illustrating an exemplary system in which embodiments of the present invention can operate. The present invention may operate, and be embodied in, other systems as well.
Referring now to the drawings in which like numerals indicate like elements throughout the several figures, FIG. 1 is a block diagram illustrating a system in accordance with an exemplary embodiment of the present invention. The system 100 shown in FIG. 1 comprises multiple client devices 102a-n in communication with one or more server devices 104, 108 over a network 106. In one embodiment, the network 106 shown comprises the Internet. In other embodiments, other networks, such as an intranet, WAN, LAN, or cellular network may be used. In yet other embodiments, other suitable networks may be used. Moreover, methods according to the present invention may operate within a single computer.
The client devices 102a-n shown each comprises a computer-readable medium, such as a random access memory (RAM) 112 coupled to a processor 110. The processor 110 executes computer-executable program instructions stored in memory 112. Such processors may comprise a microprocessor, an ASIC, and state machines. Such processors comprise, or may be in communication with, media, for example computer-readable media, which stores instructions that, when executed by the processor, cause the processor to perform the steps described herein. Embodiments of computer-readable media include, but are not limited to, an electronic, optical, magnetic, or other storage or transmission device capable of providing a processor, such as the processor 110 of client 102a, with computer-readable instructions. Other examples of suitable media include, but are not limited to, a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, an ASIC, a configured processor, all optical media, all magnetic tape or other magnetic media, or any other suitable medium from which a computer processor can read instructions. Also, various other forms of computer-readable media may transmit or carry instructions to a computer, including a router, private or public network, or other transmission device or channel, both wired and wireless. The instructions may comprise code from any suitable computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, and JavaScript.
Client devices 102a-n may also comprise a number of external or internal devices such as a mouse, a CD-ROM, DVD, a keyboard, a display, or other input or output devices. Examples of client devices 102a-n are personal computers, digital assistants, personal digital assistants, cellular phones, mobile phones, smart phones, pagers, digital tablets, laptop computers, Internet appliances, and other processor-based devices. In general, a client device 102a may be any suitable type of processor-based platform that is connected to a network 106 and that interacts with one or more application programs. Client devices 102a-n may operate on any suitable operating system, such as Microsoft® Windows® or Linux. The client devices 102a-n may also support a browser or browser-enabled application program, such as Microsoft Corporation's Internet ExplorerTM, Netscape Communication Corporation's Netscape NavigatorTM, and Apple Computer, Inc.'s SafariTM. The client devices 102a-n can also include an email program application 114 to allow the users 112a-n to communicate with each other. Examples of email program applications 114 include stand alone email clients such as Microsoft Corporation's OutlookTM or Qualcomm Enterprises' EudoraTM, or email program application accessible via a browser program application on a client device 102. Examples of email program application accessible via a browser program application on a client device 102 can include Web page clients such as Microsoft Corporation's HotmailTM or Google's GmailTM, or an email reader such as AOLTM as well as other email clients as known in the art.
Through the client devices 102a-n, users 112a-n can communicate over the network 106 with each other and with other systems and devices coupled to the network 106. For example, using an email program application 114 on a client device 102a or a web-based email program application on a server device (not shown) accessible via a browser program application on a client device 102a, a user 112a can send a request for the current email address or contact information for a member in a social network. As shown in FIG. 1, server devices 104 and 108 are also coupled to the network 106.
The server device 104 shown comprises a server executing a social network engine application program. Similar to the client devices 102a-n, the server devices 104 shown comprises a processor 116 coupled to a computer-readable medium, such as a random access memory (RAM) 118. The server device 104 is in communication with a social network database 130. Server device 104, depicted as a single computer system, may be implemented as a network of computer processors. Examples of a server device 104 are servers, mainframe computers, networked computers, a processor-based device, and similar types of systems and devices. Client processor 110 and the server processor 116 can be any of suitable number of computer processors, such as processors from Intel Corporation of Santa Clara, Calif. and Motorola Corporation of Schaumburg, Ill.
Memory 118 contains a social network engine application program, also known as a social network engine 120. The social network engine 120 allows users or members, such as user 112a, to interact with and participate in a social network. A social network can comprise profiles that can be associated with other profiles. Each profile may represent a member and a member can be, for example, a person, an organization, a business, a corporation, a community, a fictitious person, or other entity. Each profile can contain entries, and each entry can comprise information associated with a profile. Other examples of entries for a person profile can comprise information regarding relationship status, birth date, age, children, ethnicity, religion, political view, sense of humor, sexual orientation, fashion preferences, smoking habits, drinking habits, pets, hometown location, passions, sports, activities, favorite books, music, TV, or movie preferences, favorite cuisines, location information, IM name, phone number, residential address, mailing address, skills, career, or any other information describing, associated with, or otherwise associated with a profile. A profile can contain contact information associated with a member, such as, home telephone number, cell telephone number, home address, personal email address, etc. Similarly, a profile can contain business contact information associated with a members, such as, work telephone number, work address, business email address. A business profile can comprise such information as market sector, customer base, location, supplier information, net profits, net worth, number of employees, stock performance, website, business address, mailing address, telephone number, or other types of information associated with the business profile. Typically a member may also include a representative image(s), audio/video or other multimedia information, etc. Additionally, entries within a profile can comprise associations with other profiles. Associations between profiles within a social network can include, for example, friendships, business relationships, acquaintances, community associations, activity partner associations, common interest associations, common characteristic associations, or any other suitable type of association between profiles. Such associations may be direct (i.e., without intermediary associations) or indirect (i.e., having intermediary associations).
Server device 104 also provides access to storage elements, such as a social network storage element, in the example shown in FIG. 1, a social network database 130. The social network database 130 can store member profiles 132. Data storage elements may include any one or combination of methods for storing data, including without limitation, arrays, hash tables, lists, and pairs. Other similar types of data storage devices can be accessed by the server device 104. The social network engine 120 can receive data comprising the members profiles from the social network database 130 and can also send data comprising member profiles to the social network database 130 for storage. The social network database 130 may be physically attached or otherwise in communication with the social network engine 120 by way of a network or other connection.
The server device 108 shown can be a directory server, e.g., a server executing a directory application or protocol 144, e.g., a Lightweight Directory Access Protocol (LDAP). The directory application 144 can respond to requests for the current email address or current contact information sent from the email program application 114 or web-based email program application. Similar to the client devices 102a-n, the server device 108 shown comprises a processor 140 coupled to a computer-readable memory 142. Server device 108, depicted as a single computer system, may be implemented as a network of computer processors. Examples of a server device 108 are servers, mainframe computers, networked computers, a processor-based device, and similar types of systems and devices. Server processor 140 can be any of a number of computer processors, such as processors from Intel Corporation of Santa Clara, Calif. and Motorola Corporation of Schaumburg, Ill.
Memory 142 can contain the directory application or protocol 144, e.g., LDAP. The directory application 144 can manage information related to members or users 112a-n within the social network. The directory application 144 can act as a gateway or central repository for information associated with the members or users 112a-n within a social network. In one embodiment, the profiles 132 for each member 112 are stored within the memory 142 of server device 108. In other embodiments, partial profiles or profile information are stored within the memory 142. For example, a member's name and email address; a member's contact information; a member's email address, relationships, and authorization can be stored in the memory 118. In other embodiments, the directory application 144 acts as a gateway to the social network engine 120 and obtains the necessary profile information from the social network database 130 and profiles 132 as needed. As described below, the directory application 144 can respond to lookup requests from the email application 114 or web-based email application with information associated with members 112a-n within the social network, e.g. profile information. In one embodiment, the directory application 144 provides the current email address of a member 112 within the social network to a client device 102 in response to an email address request. In another embodiment, the directory application 144 provides the current contact information of a member 112 within the social network to a client device 102 in response to a request for contact information.
It should be noted that the present invention may comprise systems having different architecture than that which is shown in FIG. 1. For example, in some systems according to the present invention, the server devices 104, 108 may comprise a single physical or logical server. In other embodiments, the server devices 104, 108 can be single servers, a virtual server, multiple servers, etc. In yet other embodiments, the functions that are performed by the directory application 144 can be performed by the social network engine 120. The system 100 shown in FIG. 1 is merely exemplary, and is used to help explain the social networks and methods illustrated in FIGS. 2-4.
Exemplary Social Network
FIG. 2 illustrates an exemplary embodiment of a social network 200. According to the embodiment illustrated in FIG. 2, the social network 200 comprises a graph comprising vertices 202-212 and edges 218-234. The vertices 202-212 comprise profiles A-F. Each profile can represent a member. The edges 218-234 comprise associations between profiles. According to the embodiment shown in FIG. 2, the social network 200 comprises a plurality of differing types of associations represented by edges 218-234. The types of associations listed in FIG. 2 for illustration purposes are business associations, activity partner associations, friendship associations, community associations, and common characteristic associations. Common characteristic associations can include associations based on some characteristic such as attending the same high school or being from the same hometown, but can indicate a lower level of significance that another type of association, such as a friendship association. In one embodiment, the social network 200 comprises a single associations, such as a friendship association. One or more associations can have different levels. For example, a friendship association can have the following levels: haven't met, acquaintance, friend, good friend, and best friend.
For example, edge 220 and edge 222 each comprise an association between profile A at vertex 202 and Profile D at vertex 208. The edge 220 represents a business association, and the edge 222 represents a friendship association. Profile A is also associated with profile E by a common characteristic association comprising edge 218. The association between profile A and profile E may be more attenuated than the association between profile A and D, but the association can still be represented by the social network depicted in FIG. 2.
Each member represented by the profiles A-F comprising the vertices 202-212, for purposes of illustration is a person. Other types of members can be in social network 200. The associations 218-234 illustrated in FIG. 2 comprise bidirectional associations. The associations are bi-directional because when one profile, for example profile A, is associated with another profile, for example profile D, then profile D is also associated with profile A. In one embodiment, A and D will not be associated with each other until both profiles consent to such association; e.g., A may invite D to be associated therewith, and the association occurs upon D's acceptance of such invitation. The invitation, for example, may include sending an email or other message to D indicating that A has requested an association with D.
Other embodiments of the present invention may comprise directed associations or other types of associations. Directed associations associate a first profile with a second profile while not requiring the second profile to be associated with the first profile. For example, in a directed chart, profile A can be associated by a friendship association with profile B, and profile B can be unassociated by a friendship connection with profile A. Thus a display of profile A's friends would include profile B, but a display of profile B's friends would not include profile A.
Within a social network, a degree of separation can be determined for associated profiles. One method of determining a degree of separation is to determine the fewest number of edges of a certain type separating the associated profiles. This method of determining a degree of separation can produce a type-specific degree of separation. A type-specific degree of separation is a degree of separation determined based on one particular type of association. For example, a profile A has a friend association degree of separation of two from profile E. The fewest number of friendship associations between profile A and profile E is two—the friendship association comprising edge 220 and the friendship association comprising edge 234. Thus, for the associated profiles A and E, the degree of friendship separation, determined according to one aspect of one embodiment of the present invention, is two.
Another type-specific degree of separation can also be determined for profiles A and E. For example, a common characteristic degree of separation can be determined by determining the fewest number of common characteristic associations separating profile A and profile E. According to the embodiment depicted in FIG. 2, there is one common characteristic association, comprising edge 218, separating profiles A and E. Thus, the common characteristic association degree of separation, according to the embodiment depicted in FIG. 2, is one. The common characteristic in this example, can be that profile A attended the same high school as profile E. A common characteristic association may be selected by profiles A and E to represent that they are associated in some fashion, but to not create a close association such as with a friendship association.
According to other aspects of certain embodiments of the present invention, the degree of separation may be determined by use of a weighting factor assigned to each association. For example, “best” friends can be weighted higher than “haven't met” friends. According to certain aspects of embodiments using a weighting factor, a higher weighting factor for an association can reduce the degree of separation between profiles and lower weighting factors can increase the degree of separation. This can be accomplished, for example, by establishing an inverse relationship between each associations and a corresponding weighting factor prior to summing the associations. Thus, highly weighted associations would contribute less to the resulting sum than lower weighted associations.
Process
Various methods in accordance with the present invention may be constructed. For example, in one embodiment, the method begins with receiving a request for an email address for a first member in a social network. The request comprises an entity identifier associated with the first member. After receiving the request, the entity identifier is parsed from the request and the corresponding email address is obtained using profile information associated with the entity identifier. The email address is then sent to the requester where the email address is entered into the send-to parameter of an email message.
In another embodiment, the method begins with receiving a request for contact information associated with a first member in a social network. The request comprises an entity identifier associated with the first member, e.g., a contact. After receiving the request, the relationship between the contact and the sender of the request, e.g., a requester, is determined using profile information associated with the contact and a determination is made whether the relationship between the contact and the requester is an authorized relationship. If the requester is authorized to receive the contact information, then the contact information is sent to the requester. The sent contact information is then compared with the contact information for the contact stored in the requester's address book. If the information differs, then the differing contact information in the address book is replaced with the sent contact information.
FIG. 3 illustrates an exemplary method 300 that provides the current email address for a member 112 within a social network, in accordance with an embodiment of the present invention. This exemplary method is provided by way of example, as there are a variety of ways to carry out methods according to the present invention. The method 300 shown in FIG. 3 can be executed or otherwise performed by one or a combination of various systems. The method 300 is described below as carried out by the system 100 shown in FIG. 1 by way of example, and various elements of the system 100 are referenced in explaining the example method of FIG. 3.
The method 300 begins in block 302 when a user enters an entity identifier associated with a member of a social network into a sending parameter of an email message. For example, using an email program application 114 on a client device 102a or a web-based email program application accessible via a browser program application on a client device 102a, a user 112a types in a name of an entity identifier, e.g., an intended recipient of an email message, into “to” or “send-to” parameter of an email message. The entity identifier can take various forms depending on the email program application, with each entity identifier attempting to identify an intended recipient of the email message. For example, each entity identifier can be a name, first and last name, nickname, partial name, a first initial with the last name, an entity, an email address, an emailing group name, a group name, etc.
At block 304, an email address request comprising the at least one entity identifier is sent to the directory application 144. For example, the email program application (client or web-based) sends the email address request to the directory application 144 in response to a triggering event. Examples of triggering events can be using a send button, using function or function short keys to cause the triggering, e.g., simultaneously hitting the control key and “k” key in Microsoft OutlookTM, clicking out of or exiting from the send-to parameter field, expiration of time, or other known triggers as known in the art. The email address request can also include an entity identifier associated with the requester 112a who causes the email address request to be sent.
Depending on the configuration of the email program application, the email program application can access one or more name exchange servers or directories, e.g., a local name exchange server, prior to causing the email address request being sent to the directory application 144. For example, the email program application can automatically replace the entity identifier with the name (typically, last name, first name) of each intended recipient associated with the entity identifier or can provide a list of potential recipients to the user who can select the intended recipient. In one embodiment, if the entity identifier is a group email name, the email program application can replace the entity identifier with an entity identifier for each user in the group email name.
Returning to FIG. 3, after receiving the email address request, the method 300 proceeds to block 306, wherein the email address for the entity identifier is identified. The directory application 144 parses the entity identifier from the email message to identify the intended recipient of the email message. The directory application 144 obtains the email address from the profile information associated with the entity identifier, e.g., a member of a social network. If more than one member is associated with an entity identifier, then the directory application 144 can provide a list of email addresses to the email program application which can prompt the requester to identify the intended recipient. For example, if the entity identifier was “Smith”, then the directory application 144 generates and provides a list of names containing “Smith” to the requester prompting a selection of the appropriate Smith.
Similarly, if more than one email address is associated with an entity identifier, then the directory application 144 can cause a prompt to be sent to the requester to select an email address associated with the entity identifier. Alternatively, if more than one email address is associated with an entity identifier, then the appropriate email address can be selected based on the relationship between the intended recipient and the sender of the email address request. For example, if the profile associated with the intended recipient of an email message indicates that the sender of the email address request is a friend of the intended recipient, then the private email address of the intended recipient can be provided. Similarly, if the profile indicates that the sender of the email address request is a business acquaintance of the intended recipient of the email message, then a business email address of the intended recipient can be provided. In instances, where the profile indicates that the intended recipient and the sender of the email address request have multiple relationships, then the sender of the email address request can be provided with a list of the appropriate email addresses associated with the intended recipient. Then the directory application 144 can prompt the sender of the email address request to select one or more of the email addresses.
Since the directory application 144 does not need a member's entire profile, the server device 108 does not have to store entire profiles in memory 142 or obtain entire profiles 132 from the social network database 130. In one embodiment, the profile information stored in the memory 142 on the server device 108 can be limited. For example, the profile information in the memory 142 can include the member's name and email address for each member. In one embodiment, the directory application 144 accesses the social network database for all requested profile information. Regardless of how much profile information is stored in the memory 142, the profile information should match with the profile information stored in the social network database 130. Since a member of the social network can update his or her profile at any time, the member controls whether his or her email address is current.
Returning to FIG. 3, after identifying the email address for the intended recipient of the email message, the method 300 proceeds to block 308, wherein the email address for the intended recipient is returned or outputted to the sender of the email address request. For example, the directory application 144 sends the email address to the email program application that caused the email address request to be sent. Since each member 112 can update his or her own profile within the social network, the method 300 allows members to control whether the email address listed in his or her profile is current. As a result, email messages can be sent to the most current email address for members 112a-n in the social network. Hence, an administrator is not required to update a person's email address on a name exchange server as required in most email client systems.
FIG. 4 illustrates an exemplary method 400 that provides current contact information for a member within a social network, in accordance with one embodiment of the invention. This exemplary method is provided by way of example, as there are a variety of ways to carry out methods according to the present invention. The method 400 shown in FIG. 4 can be executed or otherwise performed by one or a combination of various systems. The method 400 is described below as carried out by the system 100 shown in FIG. 1 by way of example, and various elements of the system 100 are referenced in explaining the example method of FIG. 4.
The method 400 illustrated in FIG. 4 begins in block 402 with receiving a request for contact information (a contact request) associated with a member of a social network, e.g., a user 112. For example, an email application 114 on a client device 102 or a web-based email application accessible via a browser program application on a client device 102 can send the contact request to the directory application 144 in response to a triggering event. The contact request can contain a first entity identifier identifying the sender of the request and a second entity identifier identifying the contact whose contact information is being requested. The entity identifier can be a name, first and last name, nickname, partial name, a first initial with the last name, an entity; an email address, an emailing group name, etc. The triggering event can be an email address request as described above with respect to FIG. 3, using a send button, using function or function short keys to cause the triggering, e.g., simultaneously hitting the control key and “k” key in Microsoft OutlookTM, clicking out of or exiting from the send-to parameter field, replying to an email message, expiration of time, periodically, clicking on or accessing a contact name in an address directory, or other known triggers as known in the art.
After receiving the contact request, the method 400 proceeds to block 404, wherein the requester and contact are identified. For example, the directory application 144 parses the entity identifiers from the request to identify the requester and contact. If more than one contact are associated with an entity identifier then the directory application 144 can cause the requester to be prompted to identify the contact as discussed above with respect to method 300.
After identifying the requester and contact, the method 400 proceeds to block 406, wherein the relationship between the requester and contact is determined. To determine the relationship between the requester and the contact, the directory application 144 uses the profile information associated with the contact to determine what relationships, if any, exist between the contact and requester, e.g., whether the user profile lists any relationship between the requester and contact. Exemplary relationships can include none, friends, friends of friends, business associations, and other relationships known in the art. Relationships can also have varying levels, such as, for example, haven't met, acquaintance, friend, good friend, and best friend.
After determining the relationship between the requester and contact, the method proceeds to block 408, wherein a determination is made as to whether the identified relationship is authorized to receive the contact information and the type of contact information that can be received. For example, using the profile information, the directory application 144 determines the type of relationships that are authorized to receive contact information associated with the contact, such as friends, friends of friends, or all. An authorized relationship can also be based on an email address domain name, e.g., “@google.com”, where the contact request is granted based on an approved domain name. Similarly, a member of the social network can designate the type of contact information he or she is willing to provide to others. This designation can be part of the profile associated with the member. For example, a member can designate that only friends can receive the member's cell phone number and only business acquaintances can receive the member's business telephone number.
Since the directory application 144 does not need a member's entire profile, the server device 108 does not have to store entire profiles in memory 142 or obtain entire profiles from the social network database 130. In one embodiment, the memory 142 on the server device 108 can be limited, e.g., profile information which can include the member's relationship, authorization and contact information. In one embodiment, the directory application 144 accesses the social network database for all requested profile information. Regardless of how much profile information is stored in memory 142, the profile information should match with the profile information stored in the social network database 130. Since a member of the social network can update his or her profile at any time, a member can ensure that his or her contact information is current.
Returning to FIG. 4, after determining if the requester is authorized to receive the contact information, the method 400 proceeds to block 410, wherein the contact information is sent or outputted when the requester is authorized to receive such information. For example, the directory application 144 sends the contact information associated with the contact to the email program application which caused the contact request to be sent. The contact information that is sent can be limited to the information that the contact authorizes, e.g., the member's cell telephone number to friends and the member's business telephone number to business acquaintances. If the requester is not authorized to receive such information, then no information is sent or a message indicating that the requester is not authorized to receive such information is sent.
After sending or outputting the contact information, the method 400 proceeds to block 412 where the contact information from the directory application 144, e.g., the sent contact information, is compared with the contact information in the address book, e.g., an electronic address book, with differing information being replaced with the contact information from the directory application 144. For example, the email program application receives the contact information from the directory application 144 and compares the two sets of contact information. The email program application can replace the differing contact information in the address book with the corresponding contact information from the directory application 144. In one embodiment, the replacement of the differing information is automatic. In another embodiment, the requester can be prompted to replace the differing contact information.
Thus, a member can help to maintain his or her contact information in other member's address books without having the other members physically enter the changes. If a member is in the process of changing jobs, the member can change the contact information in his or her profile and provide the updated information when someone sends a contact request. In addition, a member can determine which members can receive his or her contact information, as well as the specific contact information that can be provided, based on one or more authorization parameters within his or her profile.
Although the exemplary methods 300, 400 are described with the intended recipient of the email message and the contact, being members of a social network, the sender of the email address request and/or the sender of the contact request can be members of the same social network or can be members of a different social network than the intended recipient and/or contact. In another embodiment, the sender of the email address request and/or the sender of the contact request do not have to belong to any social networks. The exemplary methods 300, 400 are described with requests with single entity identifiers, however the requests can contain multiple entity identifiers for obtaining information for multiple members.
General
The foregoing description of the preferred embodiments of the invention has been presented only for the purpose of illustration and description and is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Numerous modifications and adaptations thereof will be apparent to those skilled in the art without departing from the spirit and scope of the present invention.

## Claims

1. A method comprising:
receiving, from a client device, a request for a first email address of a first member of a social network included in a social network profile of the first member, responsive to the client device (a) detecting an input by a user of an entity identifier associated with the first member in a sending parameter of an email message intended to be sent to the first member and (b) detecting a triggering event comprising at least one event from a group consisting of:
using a send button, using a function key, using a function short key, exiting from the sending parameter, and expiration of time, wherein the request comprises the entity identifier associated with the first member;

obtaining the first email address for the first member by parsing the entity identifier from the request and obtaining the first email address from profile information associated with the first member that is stored in a storage subsystem and associated with the entity identifier, the storage subsystem storing profile information of a plurality of members of the social network, the plurality of members connected in the social network via user established relationships; determining a degree of separation between the first member and the user, the degree of separation determined based at least in part on an inverse relationship between an association of the user with the first member and a weighting factor assigned for the association prior to determining the degree of separation, wherein a high weighting factor contributes less to the degree of separation than a low weighting factor; transmitting the first email address to the client device based at least in part on the degree of separation;
comparing the first email address with a second email address of the first member in an electronic address book associated with the user; and
replacing the second email address in the electronic address book with the first email address in response to determining that the first email address differs from the second email address in the electronic address book.

2. The method of claim 1 wherein the user is a second member of the social network.

3. The method of claim 1 wherein the entity identifier is selected from the group consisting of a name, first name and last name, nickname, partial name, first initial with a last name, entity, email address, emailing group name, and a group name.

4. The method of claim 1 wherein the client device inserts the email address in the sending parameter of the email message.

5. A method comprising:
receiving, from a client device, a request for contact information included in a social network profile of a first member of a social network, responsive to the client device detecting a triggering event initiated by a user, the triggering event comprising at least one event from a group consisting of:
using a send button, using a function key, using a function short key, exiting from a sending parameter, and expiration of time, wherein the request comprising a first entity identifier associated with the first member and a second entity identifier associated with the user;

responsive to receiving the request from the client device, determining an association and a degree of separation between the first member and the user using profile information stored in a storage subsystem and included in the social network profile of the first member, the degree of separation determined based at least in part on an inverse relationship between an association of the user with the first member and a weighting factor assigned for the association prior to determining the degree of separation, wherein a high weightin factor contributes less to the degree of separation than a low weighting factor,
wherein the storage subsystem storing profile information of a plurality of members of the social network, the plurality of members connected in the social network via user established relationships; determining based at least in part on the determined association and the degree of separation whether the user is authorized to receive the contact information;
transmitting at least some of the contact information to the client device, responsive to determining the user is authorized to receive at least some of the contact information;
comparing the transmitted contact information with contact information for the first member in an electronic address book associated with the user; and
replacing differing contact information associated with the first member in the electronic address book with corresponding transmitted contact information.

6. The method of claim 5 wherein the user is a member of the social network.

7. The system of claim 5 wherein the request for contact information is a request for an email address associated with the first member.

8. A method comprising:
receiving, from a client device, a request for contact information included in a social network profile of a first member of a social network, responsive to the client device (a) detecting a user accessing a contact name associated with the first member in an electronic address directory and (b) detecting a triggering event comprising at least one event from a group consisting of:
using a send button, using a function key, using a function short key, exiting a field of the directory, and expiration of time, wherein the request comprising a first entity identifier associated with the first member and a second entity identifier associated with the user;

responsive to receiving the request from the client device, determining an association and a degree of separation between the first member and the user using profile information stored in a storage subsystem and included in the social network profile of the first member, the degree of separation determined based at least in part on an inverse relationship between an association of the user with the first member and a weighting factor assigned for the association prior to determining the degree of separation, wherein a high weighting factor contributes less to the degree of separation than a low weighting factor,
wherein the storage subsystem storing profile information of a plurality of members of the social network, the plurality of members connected in the social network via user established relationships; determining based at least in part on the determined association, the degree of separation and the profile information associated with the first member whether the user is authorized to receive the contact information; transmitting at least some of the contact information to the client device, responsive to determining the user is authorized to receive at least some of contact information; comparing the transmitted contact information with contact information for the first member in an electronic address book associated with the user; and replacing differing contact information associated with the first member in the electronic address book with corresponding transmitted contact information.

9. A system comprising: a computer processor; and
a non-transitory computer-readable storage medium storing instructions that when executed by the computer processor are configured to:
receive from a client device, a request for contact information included in a social network profile of a first member of a social network, responsive to the client device detecting a triggering event initiated by a user, the triggering event comprising at least one event from a group consisting of: using a send button, using a function key, using a function short key, exiting from a sending parameter, and expiration of time, wherein the request comprising a first entity identifier associated with the first member and a second entity identifier associated with the user;
determine an association and a degree of separation between the first member and the user using profile information stored in a storage subsystem and included in the social network profile of the first member responsive to receiving the request, the degree of separation determined based at least in part on an inverse relationship between an association of the user with the first member and a weighting factor assigned for the association prior to determining the degree of separation, wherein a high weighting factor contributes less to the degree of separation than a low weighting factor,

wherein the storage subsystem storing profile information of a plurality of members of the social network, the plurality of members connected in the social network via user established relationships;
determine based at least in part on the determined association, and the degree of separation whether the user is authorized to receive the contact information; transmit at least some of the contact information to the client device, responsive to the user being authorized to receive at least some of the contact information;
compare the transmitted contact information with contact information for the first member in an electronic address book associated with the user; and
replace differing contact information associated with the first member in the electronic address book with corresponding transmitted contact information.

10. The system of claim 9 wherein the user is a member of the social network.

11. A non-transitory computer-readable medium on which is encoded program code comprising:
program code for receiving from a client device, a request for contact information included in a social network profile of a first member of a social network, responsive to the client device detecting a triggering event initiated by a user, the triggering event comprising at least one event from a group consisting of: using a send button, using a function key, using a function short key, exiting from a sending parameter, and expiration of time, wherein the request comprising a first entity identifier associated with the first member and a second entity identifier associated with the user;
program code for responsive to receiving the request from the client device, determining an association and a degree of separation between the first member and the user using profile information stored in a storage subsystem and included in the social network profile of the first member responsive to receiving the request from the client device, the degree of separation determined based at least in part on an inverse relationship between an association of the user with the first member and a weighting factor assigned for the association prior to determining the degree of separation, wherein a high weighting factor contributes less to the degree of separation than a low weighting factor,
wherein the storage subsystem storing profile information of a plurality of members of the social network, the plurality of members connected in the social network via user established relationships;
program code for determining based at least in part on the determined association and the degree of separation whether the user is authorized to receive the contact information; and
program code for transmitting at least some of the contact information to the client device, responsive to determining the user is authorized to receive at least some of the contact information;
program code for comparing the transmitted contact information with contact information for the first member in an electronic address book associated with the user; and
program code for replacing differing contact information associated with the first member in the electronic address book with corresponding transmitted contact information.

12. The computer-readable medium of claim 11 wherein the user is a member of the social network.

13. The method of claim 5 wherein the request is received responsive to the client device detecting the user inputting the first entity identifier in a sending parameter of an email message.

14. The system of claim 9 wherein the request is received responsive to the client device detecting the user inputting the first entity identifier in a sending parameter of an email message.

15. The computer-readable medium of claim 11 wherein the request is received responsive to the client device detecting the user inputting the first entity identifier in a sending parameter of an email message.