SOCIAL NETWORK OF IDENTITIES AND QUERY METHOD THEREFOR BACKGROUND OF THE INVENTION 1. Related Application
[01] This application claims priority to U.S. provisional patent application Serial No. 60/487,191, filed July 15, 2003, which is incorporated herein by reference.
2. Field of the Invention
[02] The invention generally relates to computer networking. More particularly, the invention relates to a social network based on identities of individuals.
3. Description of the Related Art
[03] United States Patent Nos. 6,345,288 and 6,088,717, the paper "From Name Service to Identity Service: How XNS Builds on the DNS Model," July 9, 2002, (http:// www.xns.org / pages/ From_Name_to_Identity.pdf), and the "XNS Technical Specifications," July 9, 2002, (http://www.xns.org/pages/ XNS_Technical_Specs.pdf), describe techniques for communicating information between entities represented as identities in a computer network based on an agreement between the entities which specifies the data to be transferred and/or exchanged. These references are incorporated herein by reference.
[04] The techniques described in these references, however, do not take advantage of social relationships that exist between entities, including people, organizations and businesses in order to assist entities in locating and sharing information. The social network of identities described herein uses these social relationships to help entities locate and share information.
SUMMARY OF THE INVENTION
[05] A method of gathering information in a social network is described in which the information is requested by a first entity. The social network includes the first entity, a second entity and a third entity. The first and second entities have a social relationship, and the second and third entities have a social relationship. Each of the first, second and third entities have first, second and third identity accounts, respectively, embodied on one or more computers connected in a computer network. The first and second entities have an electronic contract specifying data the first and second entities have agreed to share, and the second and third entities have an electronic contract specifying data the second and third entities have agreed to share. The method includes receiving a request for the information requested by the first entity and searching for the information in response to the request. If the information is located in the second identity account, the method sends the information in response to the request for information if the information corresponds to the data specified in the electronic contract between the first and second entities. If the information is located in the
third identity account, the method sends the information in response to the request for the information if the information corresponds to the data specified in the electronic contract between the second and third entities.
[06] The method can include the second entity identifying the third entity based on a social relationship between the second and third entities. In another alternative, the method sends the information in response to the request for information to the first identity if the information corresponds to the data specified in the electronic contract between the first and second entities if the located information has been sent to the second entity,
[07] An apparatus is described here for participating in a computerized social network of users. The apparatus includes an identity account associated with a first one of the users in the social network, which contains information about the first user. The apparatus also includes an electronic contract specifying information in the identity account for sharing with a second one of the users in the social network. The apparatus further includes a means for qualifying the information specified in the identity account to be shared with the second user based on a type of relationship between the first and second users. In one instance, the type of relationship between the first and second user is a personal relationship and the means for qualifying the information specified in the identity account qualifies the information to output to the second user, information that is
suitable for sharing in a personal relationship. In another instance, the type of relationship between the first and second user is a business relationship and the means for qualifying the information specified in the identity account qualifies the information to output to the second user, information that is suitable for sharing in a business relationship. In still another instance, the relationship is reflected in the electronic contract. Here, the type of the relationship includes at least one of a person-to-person, person-to-business, person-to-organization, commercial, and business relationship.
BRIEF DESCRIPTION OF THE DRAWINGS
[08] Fig. 1 is an illustration of plurality of computers that form a social network based on the digital identities of people, organizational entities or resources, and the relationships between those people, organizational entities or resources. Such a network is referred to as a social network of identities.
[09] Fig. 2A is an illustration of an identity account used in the social network of Fig. 1.
[10] Fig. 2B is an illustration of a second embodiment of the identity account used in the social network of Fig. 1, which employs electronic contracts.
[11] Fig. 2C is an illustration of a third embodiment of the identity account used in the social network of Fig. 1, which employs electronic contracts.
[12] Fig. 2D is an illustration of a fourth embodiment of the identity account used in the social network of Fig. 1, which employs electronic contracts.
[13] Fig. 3 is a flowchart of a process for querying the social network of identities shown in Fig. 1.
[14] Figs. 4A and 4B show examples of logical relationships within a social network of identities that are used in querying the network.
DETAILED DESCRIPTION [15] The following description makes reference to the above drawings, in which like reference numerals designate like components.
[16] Fig. 1 shows a plurality of computers forming a social network of identities based on the entities using those computers. Such entities can include individual persons, organizations, businesses or other groups. The embodiments described below generally are described in terms of an individual person, however, it should be understood that a wide array of other types of entities, including businesses and organizations, can use the social networks described herein. The computers shown in Fig. 1 represent only one example of the types of devices that can be used to form the social network of identities. Other devices that can be used in the social network of identities include, but are not limited to, personal digital assistants ("PDA"), cellular telephones and many other types of computing devices
[17] In the social network of Fig. 1, a user, USERl, using a client workstation 90 has an established identity account 101 that resides on a server computer, such as USERl's identity server 100. An identity account contains information about a user, e.g., identity account 101 can contain USERl's personal contact information and USERl's work contact information and also may also be linked to other applications, e.g., USERl's electronic address book, that employ the information contained in the identity accounts.
[18] Identity server 100 can store and manage the identity accounts of many different users, although only one identity account 101 is shown in Fig. 1 for ease of illustration. Identity server 100 communicates over communications networks, such as the Internet (shown in Fig. 1 as a plurality of connected communication networks 110A, HOB through 110N) with other identity servers, such as identity servers 150A, 150B through 150N. Another identity server, identity server 150A, maintains the identity account of another person, PI, whose identity account 151A can communicate with USERl's identity account 101 over a network 110A. Similar to the communication connection between identity server 100 associated with USERl and identity server 150A associated with PI, identity server 150A can communicate with another identity server, identity server 160, that contains an identity account 161 of another person, P2, whose identity account 161 can communicate with Pi's identity account 151A over a network 120.
[19] The identity accounts shown in Fig. 1 hold information about an entity, here a person. This information describes certain attributes about the person to identify that person in some respect. For example, an identity account may contain a person's home and work contact information. Additionally, an identity account associated with a person may contain or reference contracts established between members of a social network of identities and a user associated with the identity account. These contracts govern the sharing of information between a user and another member of a social network of identities. The identity account can also contain, e.g., the contents of a user's electronic address book, the names and identities of other members of a social network of identities or links to other applications, such as a user's electronic address book.
[20] An exemplary embodiment of identity account 101 is conceptually illustrated in Fig. 2A. Fig. 2A shows an identity account containing information about USERl, such as a persistent identifier 101a for the entity, USERl, that is unique throughout the social network of identities, USERl's address 101b, company name 101c, title lOld, department lOle, and e-mail address lOlf. In addition to identity account 101 shown in Fig. 2, a user may also have an electronic address book 102. In one embodiment, electronic address book 102 exists separate.from identity account 101, but is linked to identity account 101 such that the when identity account 101 is searched, electronic address book 102 is also searched. In an alternative embodiment, electronic address book 102 is
incorporated into identity account 101 allowing the contents of electronic address book 102 to be searched. In another alternative embodiment, the contents of electronic address book 102 may be imported into identity account 101. Such an embodiment allows the context of the electronic address book 102 to be imported into identity account 102 in a format compatible with the query method described below, e.g., XML format.
[21] Fig. 2B illustrates another identity account that includes a plurality of contracts Kl, K2...KN. Fig. 2B is similar to Fig. 2A, except that contracts lOlg are contained within the identity account 101 of Fig. 2B. Contracts can reflect the relationships that exist between people in a social network of identities, as they specify the information or data that one person makes accessible to another person within the social network. More specifically, a contract defines the specific data items within the identity account of one person that are made accessible to the identity account of another person in the social network. For example, as illustrated in Fig. 2B, a contract Kl in identity account 101 of USERl specifies whether certain information may be shared with another person's, e.g., Pi's, identity account.
[22] A conventional digital identity account contract can be extended to indicate the type of relationship that exists between the respective entities. Knowing the type of relationship between two entities can sometimes facilitate a
search through the social network of identities. For example, if USERl and PI are both people, then the type of relationship between them can be indicated as a "person-to-person" relationship in the contract itself. Based on the type of relationship between two entities, there can be a common set of attributes present in all the contracts that reflect the same type of relationship. For example, all contracts of the type "person-to-person" can be configured to allow sharing of specific information, such as address information. This, however, is only one example of an attribute that could be common to all "person-to-person" type relationships.
[23] The relationships between entities having identity accounts can be further qualified. For example, the people in a "person-to-person" relationship can have a personal relationship as opposed to a strictly business relationship. Because these people have a personal relationship, a certain level of trust is implied between those people such that it is likely that they are willing to share more or different types of information than if their relationship is strictly a business relationship, for example. Capturing within a contract the type of relationship two entities share enables identity applications to leverage those relationships to effectively share information.
[24] Also, as illustrated in Fig. 2B, an identity account 101 can include a plurality of contracts lOlg. Each of those contracts lOlg represents a relationship
with another entity having an identity account in the social network. As discussed above, even though contracts within an identity account may specify different information to share under possibly different terms and conditions, contracts that reflect the same types of relationships between identity accounts can have common attributes. Also, the contracts between different identity accounts can reflect the different types of relationships that may exist between people and their respective identity accounts, i.e., P2 may be a personal friend and also a business colleague of PI, thus a contract between respective identity accounts of P2 and PI can reflect both of the two above-mentioned different types of relationships.
[25] Another identity account 101 is shown in Fig. 2C which is similar to the identity account in Fig. 2B, except the contracts lOlh are organized into different categories based on the types of relationships that they represent. For example, contracts Kl, K2, and K4 represent relationships between USERl, who is associated with identity account 101, and other people, each associated with other identity accounts, where the other people are people with whom USERl has personal relationships. Contracts K3 and K5 represent relationships between identity account 101 and other identity accounts, where those other identity accounts are for businesses. Contracts K6 and K7 reflect the relationships between identity account 101 and identity accounts for other entities that share a commercial relationship with USERl. Thus, the contracts lOlh of Fig. 2C are categorized such that they respectively represent the types of relationships USERl
has with the other entities in the social network. However, unlike Fig. 2B, the contracts lOlh in the identity account 101 of Fig. 2C do not contain therein information about the types of relationships between identity accounts. Rather that information is specified by the grouping of the contracts lOlh.
[26] Similar to Figs. 2B and 2C, Fig. 2D also shows an exemplary embodiment of an identity account having contracts 10 lg therein. HoweVer, unlike Figs. 2B and 2C, Fig. 2D includes a table 110 that indicates the types of relationships reflected in the respective contracts lOlg. For example, table 110 in Fig. 2D specifies that contracts Kl, K2, and K4 reflect a person-to-person, personal relationships between identity account 101 and another identity account, contract K3 reflects a person-to-business relationship, that is a business relationship, and contract KN reflects a commercial relationship.
[27] In summary, Figs. 2B-2D, as described above, show how identity accounts and contracts contained therein can be associated with information about the type of relationship to qualify the terms of the contract. This qualification of the type of relationship is utilized in a social network to define the parameters of relationships between entities and their identity accounts and to reflect the types of relationships that exist between particular entities and their identity accounts.
[28] In the social network shown in Fig. 1, each identity account has a unique, persistent and immutable network identifier such as identifier 101a shown in Fig.
2A. An embodiment of the identifier takes the form ": HOSΗD : IDENTITYID". An example of such an identifier is "urn:xri://J0J.2.3:238" which specifies a host address "JOJ.2.3" and a particular user or resource identifier 238 located at host address 10J.2.3. Such an identifier can be referenced in other identity accounts in the social network. Thus, the identifier being a unique identifier that identifies a specific resource can represent a link in the social network to that resource. For example, data in an identity account that relates to the identity account of a personal contact, e.g., PI, can also include information about the network location of that identity account by specifying its identifier. The identity account can also contain links to other applications, such as a user's electronic address book. The social network of identities can link multiple identity accounts in the network to one another, where the links represent relationships that have been established between people. Such relationships can be enforced by the identity accounts using electronic contracts that dictate the actions one identity account may perform relative to another identity account with which it has the contract.
[29] Based on the social network of identities, as described above, a user can more easily obtain information about other entities than previously possible. For example, the network shown in Fig. 1 allows a user, e.g., USERl, to answer the question "Who do I know that directly or indirectly knows X?", where X is the subject of USERl's query.
[30] Fig. 3 shows an example of a process for making such a query. At step 110, USERl in the social network of Fig. 1 uses a query interface accessed at client workstation 90 to input, at step 115, USERl's query and seek the answer to the question "Who do I know that directly or indirectly knows X?" at step 115. The inquiry can be input by way of typing, voice recognition or by using various other well known methods of inputting information.
[31] In step 120, Pi's identity account 151A shown in Fig. 1 is accessed, where PI is an entity that USERl knows and with whom USERl has a contract to share data. In this example, the server 150A and identity account 151 A, shown in Fig. 1, are the server and identity account of person PI. Next, in step 125, the process determines whether PI knows person X either directly or indirectly by searching Pi's identity account 151A and possibly certain of Pi's applications, such as Pi's electronic address book, for X. That is, the process first determines whether Pi directly knows X. If PI does not directly know X, the process then determines whether PI indirectly knows X, possibly through Pi's relationship with another person, e.g., P2, who has a contract to share data with Pi. Pi's identity account 151 A sends a query to those identity accounts with which PI has a contract to share information. In this example, identity account 151A sends a request containing USERl's query to identity account 161 associated with P2, P2 being a person with whom PI has a contract to share information. Identity account 161 and possibly certain of P2's applications are then searched for X.
[32] While in the above example, identity account 151 A sends a request with the query to identity account 161 only if the search of identity account 151 A is not successful in finding X, in an alternative embodiment identity account 161 is always searched regardless of whether X is found in identity account 151 A.
[33] If it is determined that PI indirectly or directly knows X, then the process shown in Fig. 3 proceeds to step 130, where it is determined whether a contract or i a chain of contracts exist allowing PI to share the results of the query with USERl, as discussed below. If it is determined that such contracts exists, then the name of and possibly contact information for PI can be displayed to USERl in step 135. Alternatively, the results of the query can be sent to USERl. However, if it is determined that the contractual agreements do not allow PI to disclose that PI directly or indirectly knows X, then the process returns to operation 120 and a different identity account, e.g., identity account 15 IB, is then searched.
[34] Figs. 4A and 4B depict examples of the types of relationships that can exist between members of a social network of identities and illustrates the contractual relationships between those entities. In Fig. 4A, USERl, PI and P2 represent members of social network having identity accounts as shown in Fig. 1. X represents the subject of USERl 's query "Who do I know that indirectly or directly knows X." Contracts exist between the identity accounts of USERl, PI and P2 illustrated by the lines connecting those entities. For example, as shown in
Fig. 4A, USERl and P2 have a contract KB and P2 and PI have a contract Kc. Accordingly, USERl directly knows PI and P2 as shown in Fig. 4A, and USERl indirectly knows X through both PI and P2. The contracts govern the sharing of information between the members of the social network.
[35] As an example of the searching operation, assume USERl directly knows PI who directly knows P2 (as shown in Fig. 4B). A query of Pi's identity account does not locate X. However, a query of P2's identity account determines that P2 does know X. In this example, before P2 shares information with PI, it must first be determined if the terms of contract Kc allow P2 to share the information with PI. If so, the information is sent to PI. Then it must be determined if contract Kc allows PI to share the information with USERl. It must also be determined if the terms of contract KA permit PI to share the information with USERl. If all the contracts in the chain of contracts between USERl and the entity having information about X permit USERl to ultimately view the information, the information is sent to USERl for display to USERl at client workstation 90. Alternatively, USERl could receive a notification of which member of the social network has the information that USERl has inquired about. USERl could thus request that information from its source. Thus, contracts must exist between all identity accounts that communicate during a particular query in order for information to be passed from one identity account to another.
[36] Returning to operation 125 in Fig. 3, if PI does not directly or indirectly have a relationship with X, then the process returns to operation 120, and the identity account of the next entity that has a contract with Pi's identity account, is accessed to determine whether this next entity directly or indirectly has a relationship with X. Thus, the query process shown in Fig. 3 is a sequential process of iterating through contracts within the identity account. However, the query process is not limited to such a sequential query process, and alternatively a parallel query process could be used.
[37] In one embodiment, the information stored in the identity accounts is stored as XML data according to an XML schema, the XML schema having a variety of attributes. One example of an XML scheme would be a contact schema. The contact schema has several defined attributes, e.g., name, home phone number, work phone number, work address, home, address, work e-mail address, home e-mail address, etc. When USERl accesses the query interface at step 110, USERl is required to input a structured query corresponding to the attributes of the appropriate XML schema, here the contact schema. As an example, USERl may input USERl's query into a field that will query the work address attribute of the contact schema. For example, USERl may input "1600 Pennsylvania Avenue" into the work address filed of the query interface. The querying process as described above and illustrated in Fig. 3 will then search the work address attributes of the appropriate identity accounts for any identity
accounts containing "1600 Pennsylvania Avenue." Another attribute that can exist in the contact schema is profession. This attribute would support searches over the social network by job function. For example, USERl could query his social contacts with the query "who do I know who knows an accountant?" The social network query would query all the people who USERl directly knows. The identity accounts for those people would respond to the query with the contact information of accountants in their electronic address books. Since USERl directly knows the people whose identity accounts respond to the query, USERl has a certain degree of trust that the responses include the names of accountants who USERl would want to contact. Similarly, the identity accounts for people who USERl indirectly knows will respond with names of accountants that are in the electronic address books of those people. USERl might give less weight to the names of the accountants that came from indirect contacts, however USERl accords a certain amount of weight to that information based on USERl knowing the respondents indirectly.
[38] The information in the identity account can be qualified, using attributes in an XML schema to correspond with the social relationship between the entities. For example, certain XML attributes can be classified as corresponding to a I person-to-person relationship (e.g., home address, home telephone number, etc.). Other attributes (e.g., business address, business phone, etc.) can be qualified using XML attributes to correspond with a person-to-business or business-to-
business type relationship. Using various query mechanisms, such as XQuery for XML, searching for information based on social relationships can be accomplished.
[39] Additionally, a contract within a specific identity account can be configured to allow other identity accounts with which the specific identity account corresponds, to automatically receive information from the specific identity account when information changes therein. That is, when information in an identity account changes, that information can be propagated to other identity accounts in accordance with the contractual terms between the respective identity accounts.
[40] For example, if address information in identity account 161 is changed, the changed information can be "pushed" to another identity account 151A based on a contractual obligation to push this information to identity account 151 A when it changes. The mechanisms for performing the above-described push operation can exist within the contract itself. Also, it should be recognized that the above described propagation process is only one example of a method by which information can be distributed in the social network of identities. Identity account 151 A can then push the changed address information to identity account 101 if identity account 151A had previously sent similar information to identity account 101 in response to a query and the chain of contracts so permits.
[41] Having described embodiments invention as set forth above, it is believed that other modifications, variations and changes will be suggested to those skilled in the art in view of the teachings set forth herein. It is therefore to be understood that all such variations, modifications and changes are believed to fall within the scope of the present invention as defined by the appended claims. Although specific terms are employed herein, they are used in their ordinary and accustomed manner only, unless expressly defined differently herein, and not for purposes of limitation.