Techniques for team searches within a social graph are described. Consistent with some embodiments, a search request initiated by a searching member profile is received. The search request includes search criteria. A team membership connection between the searching member profile and a team profile is then detected. Based on the detected team membership connection, profile connections between member profiles and teammates of the searching member profile are identified. The teammates are member profiles with team membership connections to the team profile. Then, matching member profiles are identified by matching the member profiles with the identified profile connection with the search criteria. The matching member profiles are then communicated to the searching member profile.
|
1. A computer-implemented method comprising:
receiving a search request being initiated by a searching member profile, the search request including search criteria;
detecting, in one or more databases, a team membership connection between the searching member profile and a team profile, the team profile defining a plurality of members having an affiliation with an organization, wherein the organization is the same for each member of the plurality of members;
based on the detected team membership connection, identifying, by one or more processors, profile connections between member profiles and teammates of the searching member profile, the teammates being member profiles with team membership connections to the team profile,
wherein:
at least one team membership connection was approved for connecting a corresponding member profile with the team profile by an administrator of the team profile;
identifying matching member profiles by matching the member profiles with the identified profile connection with the search criteria, wherein at least one matching member profile comprises an indirect profile connection between the at least one matching member profile and the searching member profile;
communicating the matching member profiles with the identified profile connections to the searching member profile; and
based on the identified profile connections between the teammates of the searching member profile and the matching member profiles, granting the searching member profile access rights to the matching member profiles that correspond to access rights the teammates are granted to the matching member profiles, wherein the access rights granted to the searching member profile are access rights granted to member profiles connected through a first-degree connection.
18. A non-transitory computer-readable medium storing executable instructions thereon, which, when executed by a processor, cause the processor to perform operations including:
receiving a search request being initiated by a searching member profile, the search request including search criteria;
detecting, in one or more databases, a team membership connection between the searching member profile and a team profile, the team profile defining a plurality of members having an affiliation with an organization, wherein the organization is the same for each member defined by the team profile;
based on the detected team membership connection, identifying profile connections between member profiles and teammates of the searching member profile, the teammates being member profiles with team membership connections to the team profile, wherein at least one team membership connection was approved for connecting a corresponding member profile with the team profile by an administrator of the team profile;
identifying matching member profiles by matching the member profiles with the identified profile connection with the search criteria, wherein at least one matching member profile comprises an indirect profile connection between the at least one matching member profile and the searching member profile;
communicating the matching member profiles with the identified profile connections to the searching member profile; and
based on the identified profile connections between the teammates of the searching member profile and the matching member profiles, granting the searching member profile access rights to the matching member profiles that correspond to access rights the teammates are granted to the matching member profiles, wherein the access rights granted to the searching member profile are access rights granted to member profiles connected through a first-degree connection.
10. A computer system comprising:
A non-transitory, computer-readable medium having instructions stored thereon, which, when executed by at least one processor, cause the computer system to:
receive a search request being initiated by a searching member profile, the search request including search criteria;
detect, in one or more databases, a team membership connection between the searching member profile and a team profile, the team profile defining a plurality of members having an affiliation with an organization, wherein the organization is the same for each member of the plurality of members;
based on the detected team membership connection, identify profile connections between member profiles and teammates of the searching member profile, the teammates being member profiles with team membership connections to the team profile, wherein at least one team membership connection was approved for connecting a corresponding member profile with the team profile by an administrator of the team profile;
identify matching member profiles by matching the member profiles with the identified profile connection with the search criteria, wherein at least one matching member profile comprises an indirect profile connection between the at least one matching member profile and the searching member profile;
communicate the matching member profiles with the identified profile connections to the searching member profile; and
based on the identified profile connections between the teammates of the searching member profile and the matching member profiles, grant the searching member profile access rights to the matching member profiles that correspond to access rights the teammates are granted to the matching member profiles, wherein the access rights granted to the searching member profile are access rights granted to member profiles connected through a first-degree connection.
2. The method of
3. The method of
4. The method of
5. The method of
communicating additional member profiles that match the search criteria, the additional member profiles lacking team membership connections to the team profile; and
generating a visual indicator to be displayed with the additional member profiles, the additional indicator being a different visual image than the visual indicators associated with the matching member profiles.
6. The method of
generating a user interface that includes a member selection element configured to obtain a user specified member of the social networking service; and
responsive to detecting a user initiated submission of the user specified member, sending an invitation to join the team profile to a member account corresponding to the user specified member.
7. The method of
8. The method of
9. The method of
identifying additional member profiles connected to the member profile of the user specified member through profile connections; and
generating team connections between the additional member profiles and the team profile.
11. The computer system of
12. The computer system of
13. The computer system of
14. The computer system of
communicate additional member profiles that match the search criteria, the additional member profiles lacking team membership connections to the team profile; and
generate a visual indicator to be displayed with the additional member profiles, the additional indicator being a different visual image than the visual indicators associated with the matching member profiles.
15. The computer system of
generate a user interface that includes a member selection element configured to obtain a user specified member of the social networking service; and
responsive to detecting a user initiated submission of the user specified member, send an invitation to join the team profile to a member account corresponding to the user specified member.
16. The computer system of
17. The computer system of
|
The present disclosure generally relates to data processing systems. More specifically, the present disclosure relates to methods, systems, and computer program products for performing searches in a social networking service.
A social network service may be a computer or web-based service that enables users to establish links or connections with persons for the purpose of sharing information with one another. Some social network services aim to enable friends and family to communicate and share with one another, while others are specifically directed to business users with a goal of facilitating the establishment of professional networks and the sharing of business information. For purposes of the present disclosure, the terms “social network” and “social network service” are used in a broad sense and are meant to encompass services aimed at connecting friends and family (often referred to simply as “social networks”), as well as services that are specifically directed to enabling business people to connect and share business information (also commonly referred to as “social networks” but sometimes referred to as “business networks” or “professional networks”).
Many social network services maintain a variety of personal information about their members. For instance, with many social network services, when a user registers to become a member, the member is prompted to provide a variety of personal or biographical information, which may be displayed in a member's personal web page. Such information is commonly referred to as personal profile information, or simply “profile information,” and when shown collectively, it is commonly referred to as a member's profile. For instance, with some of the many social network services in use today, the personal information that is commonly requested and displayed as part of a member's profile includes a person's age, birthdate, gender, interests, contact information, residential address, home town and/or state, the name of the person's spouse and/or family members, and so forth. With certain social network services, such as some business or professional network services, a member's personal information may include information commonly included in a professional resume or curriculum vitae, such as information about a person's education, the company at which a person is employed, an industry in which a person is employed, a job title or function, an employment history, skills possessed by a person, professional organizations of which a person is a member, and so on.
Because social networking services can provide a platform for specifying a profile, expressing opinions, and connecting various users, members of the social network service find it useful to utilize services of the social network service to search for and identify other members within the social network service that match a particular search criteria. For example, a recruiter may initiate a search within the social networking service to identify those members that work for a given company, list a given skill or expertise, or the like. In some cases, such searches may result in a large number of matches. To improve searches resulting in a large number of matches, traditional systems may allow the user to narrow the search by identifying further search criteria, such as a geographic location or any other search criteria, and then performing a secondary search on the search results using the newly identified search criteria.
Some embodiments are illustrated by way of example and not limitation in the FIGs. of the accompanying drawings, in which:
The present disclosure describes methods, systems and computer program products for performing team searches on a social graph of a social networking service. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various aspects of different embodiments of the present invention. It should be understood that various modifications to the examples may be made. In particular, elements of one example may be combined and used in other examples to form new examples. Many of the examples described herein are provided in the context of a social or business networking website or service. However, the applicability of the inventive subject matter is not limited to a social or business networking service.
A social networking service may be an online service, platform or site that allows members of the service to build or reflect social networks or social relations among the members. Typically, members of the social networking service construct member profiles corresponding to a member, which may include personal information such as the member's name, contact information, employment information, photographs, personal messages, status information, links to web-related content, blogs, and so on. Generally, only a portion of a members profile may be viewed by the general public, and/or other members. In some cases, access rights may control the amount of information that may be viewed by other members. Different access rights may form a privacy policy which may control the information that may be viewed by other members. Such access rights may be dependent on the connections between the viewing member profile and the viewed member profile. For example, if two member profiles are connected (connections are described below) in the social graph then they may have greater access to the information stored in the member profiles of each other.
In order to build or reflect social networks or social relations among members, the social networking service allows members to identify, and establish links or connections with other members. For instance, in the context of a business networking service (a type of social networking service), a person may establish a link or connection with his or her business contacts, including work colleagues, clients, customers, and so on. With a friendship-based networking service, a person may establish links or connections with his or her friends and family. A connection is generally formed using an invitation process in which one member “invites” a second member to form a link. The second member than has the option of accepting or declining the invitation.
Some social networking services may offer a subscription or following model instead of, or in addition to the connection model. A subscription or following model is where one member “follows” another member without mutual agreement. Typically in this model, the follower is notified of public messages and other communications posted by the member that is followed. An example social networking service that follows this model is Twitter, a micro-blogging service which allows members to follow other members without explicit permission.
In general, a connection or link represents, or is otherwise associated with, an information access privilege such that a first person who has established a connection with a second person is, via the establishment of that connection, authorizing the second person to view or access non-publicly available portions of their profiles which may include communications they have authored (e.g., blog posts, messages, “wall” postings, or the like). Of course, depending on the particular implementation of the business/social networking service, the nature and type of the information that may be shared, as well as the granularity with which the access privileges may be defined to protect certain types of data may vary greatly.
In addition to creating a member profile, the social networking service may be configured to define teams. A team, within the context of a social networking service, may be data or logic that organizes a group of members of the social networking service, which may occur for a particular purpose. In some cases, a team may infer certain rights to its members. For example, members of a team may be granted rights to initiate a number of out-of-network messages, view a number of out-of-network profiles, make introductions, and the like. An apt fiction for a team may be a team formed for a recruiting team, a recruiting department, or the like. Other fictions are also possible, such as a sales team, or members looking to network, organizations, or any suitable group of members looking to interact within the social networking service. In an example embodiment, the social networking service may form connections between a member profile and a team profile similar to methods used to form connections or links between members. That is, in some embodiments, a member may request to join a team and an administrator for the team members may elect to accept the request or not. Alternatively or additionally, the administrator may send requests to selected members to join a team, which may then be accepted or not by the members. For clarity of description, the members linked or connected to a team may be referred to as team members.
For clarity of description, connections made between member profiles may be referred to as profile connections, whereas connections between a member profile and a team profile may be referred to as a team membership connection.
Generally, social networking services may be configured to perform member initiated searches on the social graph to identify relevant members, as may be determined by search criteria. For example, the social networking service may provide an interface for a user to enter search criteria (e.g., a job title, company name, experience level, name, education, or any other attribute). Once the search criteria have been entered, the social networking service may then identify those members that match the criteria and then communicate the results to the member that initiated the search. In some cases, the social networking service may identify a degree of connection (e.g., first degree connections, second degree connections, and the like) between the member initiating the search and the members in the search result.
Consistent with some embodiments, a social network service provides members (e.g., people, companies, schools, government entities, non-profits, or any other suitable type of entity) with a computer-implemented service for performing a type of search referred to herein as a team search. In a team search, the social networking service may identify members of the social network service that are connected to team members of a team that the searching member is a part of. For example, according to some embodiments, the social networking service may detect a team membership connection between the searching member and a team. Responsive to detecting the team membership connection, the social networking service may then identify profile connections between the team members and other members of the social networking service. Those members that are connections with the team members are then communicated in the search result to the searching member. An example of a team search is provided by TeamLink®, a product developed by LinkedIn®, headquartered in Mountain View, Calif., United States.
The team search engine 117 may be a computer-implemented module configured to perform team searches based on team membership connections of the searching member. For example, the team search engine 117 may generate search results that indicate that not only does a given member match a search criteria but the given member also has a profile connection with a teammate of the searching member. The operations of the team search engine 117 and the team generator module 116 are described in greater detail below.
As shown in
Further, as discussed above, the social network service may allow users (e.g., member or administrators of the social network service) to register or otherwise create team profiles (or just simply “teams”) used within the social network service to specify an organization of members within the social network service. The teams may be stored, for example, in the database with reference number 118, or another database (not shown).
Once registered, a member may invite other members, or be invited by other members, to connect via the social network service. A profile connection may require a bi-lateral agreement by the members, such that both members acknowledge the establishment of the profile connection. In addition to profile connections, the team generator module 116 may generate a team membership connection between a member profile and a team profile. As with the profile connection, the team membership connection may require a bi-lateral agreement by the member joining the team and the team administrator, such that both the member and the team administrator acknowledge the establishment of the team membership connection.
The various associations and relationships that the members establish with other members and with other entities, such as teams, are stored and maintained within the social graph, shown in
The social network service may provide a broad range of other applications and services that allow members the opportunity to share and receive information, often customized to the interests of the member. For example, with some embodiments, the social network service may include a photo sharing application that allows members to upload and share photos with other members. With some embodiments, the social network service may host various job listings providing details of job openings with various organizations.
As members interact with the various applications, services and content made available via the social network service, the members' behavior (e.g., content viewed, links selected, etc.) may be monitored and information concerning the member's behavior may be stored, for example, as indicated in
As discussed above, the member profiles 204a-d may be data or logic representing users of the social network service. For example, the member profiles may include attributes specifying a member's name, employment history, educational history, and the like. As discussed above, member profiles may form profile connections with each other. Such profile connection may represent real life social connections between the members and may grant certain access rights to the connected members (e.g., connected members may see “private information listed on the member's profile page). This is shown in
Also discussed above, in addition to forming profile connections with member profiles, the team generator 116 may form team membership connections between member profiles and team profiles. Such team membership connections may represent that a member profile is a member of a team profile. This is shown in
The member profiles 204a-d, the team profile 202, and the connections (e.g., profile connections 210, 212 and team membership connection 214) may form a social graph, according to example embodiments, as may be stored in the database 120.
It is to be appreciated that the data model 200 shown in
In some embodiments, the invitation module 310 may include additional elements for specifying access rights for the member being invited to join the team. For example, access right element 314 may allow the administrator to specify whether the invited members will have administration rights or membership rights. In some cases, administration rights may grant a member rights to modify the properties of the team definition and to establish team membership connections therewith. Some embodiments may specify access rights of different scope (e.g., separate sets of rights for modifying one or more properties and rights to modify the connections associated with the team profile). Once the administrator specifies the members of the social networking service that are to be invited to join the team, the administrator may then activate a grant invitation element 316. Activating the grant invitation element 316 may cause the team generator module 116 to send invitations to the members of the social networking service specified by the member selection element 312.
The status modules 330 and 340 may be computer-implemented modules generated by the team generator module 116 to provide feedback on the status of the invitations to join the team that were sent to members. For example, as shown in
Once a member has joined a team, the member may initiate a team search on the social graph of the social networking service, as may be performed by the team search engine 117.
As
The search result module 404 may be a module generated by the team search engine 117 that displays the results of a query submitted by the searching member. For example, the search result module 404 may display the member profile 404a responsive to David Simpson being connected to the searching member and having a property matching the term “Software Engineering.” In some cases, the searching member may be connected and the member represented by the member profile 404a may be connected by a first degree connection (e.g., the searching members exchanged an invitation to be connected and an acceptance of the invitation). In other cases, the searching member and the member represented by the member profile 404a may be connected by an indirect connection. An example of an indirect connection is a second degree connection where David Simpson and the searching member share a first degree connection. Other degrees of connection may also be included, such as third degree connections, fourth degree connections, and so forth. The member profile 404a may include a connection degree indicator 410 to indicate the relative degree of connection between the searching member and the member profile 404a.
Similar to the member profile 404a, the member profile 404b may also include a property that matches the search criteria term “Software Engineering.” However, rather than being included because of a degree of profile connection (e.g., first degree connection, second degree connection, and so forth), the member profile 404b may appear in the search result because the member profile 404b may be a profile connection with a member profile that belongs to the same team as the searching member. For example, with momentary reference to
With reference back to
The method 500 may begin at operation 502 when the team search engine 117 receives a search request for member profiles in social network service. In an example embodiment, the search request may include search criteria, such as search terms, facets, and the like.
At operation 504, responsive to receiving the search request, the team search engine 117 may determine whether a team search feature is enabled. For example, as previously described above with reference to
At operation 506, the team search engine 117 may then identify member profiles that are connected with a teammate of the searching member. For example, in some embodiments, the team search engine 117 may identify a team membership connection between the searching member and a team profile and, in turn, the team members for that team. Then, for each team member identified, the team search engine 117 may identify the member profiles that are connected to those team members by profile connections, which may conceptually define the search space of member profiles. As described above, a team may be formed based on an administrator creating a team profile, sending invitations to members of a social network service, and receiving acceptance of those invites. When a member accepts the invite, the team generator 116 may create a team membership connection between the team profile and the member profile, which may be represented by data structures in the social graph data (e.g., see social graph data 120 shown in
In some embodiments, the team search engine 117 may limit the member profiles identified at operation 506 based on a degree threshold. A “degree threshold,” as used herein, may specify a level of degree of a connection between member profiles before being identified as a member profile that is connected to the team. For example, one embodiment of the team search engine 117 may limit connections of the team to be first degree connections of team members, while another embodiment of the team search engine 117 may limit connections of the team to be second or any other indirection connection of the team members. A degree threshold may be a configuration parameter of the team search engine 117.
Continuing with
At operation 510, the team search engine 117 may communicate the search results to the searching member. For example, the team search engine 117 may generate search results displayable in the user interface 400 of
It is to be appreciated that the embodiments disclosed above may be practiced in alternative embodiments without departing from the embodiments contemplated by this disclosure. For example, although the team search engine 117 of
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules or objects that operate to perform one or more operations or functions. The modules and objects referred to herein may, in some example embodiments, comprise processor-implemented modules and/or objects.
Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. The performance of certain operations may be distributed among the one or more processors, not only residing within a single machine or computer, but deployed across a number of machines or computers. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or at a server farm), while in other embodiments the processors may be distributed across a number of locations.
The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or within the context of “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs)).
The example computer system 600 includes a processor 602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 601 and a static memory 606, which communicate with each other via a bus 608. The computer system 600 may further include a display unit 610, an alphanumeric input device 617 (e.g., a keyboard), and a user interface (UI) navigation device 611 (e.g., a mouse). In one embodiment, the display, input device and cursor control device are a touch screen display. The computer system 600 may additionally include a storage device 616 (e.g., drive unit), a signal generation device 618 (e.g., a speaker), a network interface device 620, and one or more sensors 621, such as a global positioning system sensor, compass, accelerometer, or other sensor.
The drive unit 616 includes a machine-readable medium 622 on which is stored one or more sets of instructions and data structures (e.g., software 623) embodying or utilized by any one or more of the methodologies or functions described herein. The software 623 may also reside, completely or at least partially, within the main memory 601 and/or within the processor 602 during execution thereof by the computer system 600, the main memory 601 and the processor 602 also constituting machine-readable media.
While the machine-readable medium 622 is illustrated in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The software 623 may further be transmitted or received over a communications network 626 using a transmission medium via the network interface device 620 utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi® and WiMax® networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Li, Lizabeth, Sutherland-Wong, Christian
Patent | Priority | Assignee | Title |
10650475, | May 20 2016 | HOMEAWAY COM, INC | Hierarchical panel presentation responsive to incremental search interface |
11038764, | Dec 21 2017 | Microsoft Technology Licensing, LLC | Establishing communication between nodes on a connection network |
Patent | Priority | Assignee | Title |
8510380, | Jan 09 2012 | Meta Platforms, Inc | Creating and sharing interest lists in a social networking system |
8577748, | Sep 25 2006 | Draftix, Inc. | System and method for allocating tickets using a draft |
20050055450, | |||
20070005750, | |||
20090234686, | |||
20110258316, | |||
20120023085, | |||
20120136852, | |||
20130165234, | |||
20130174275, | |||
20130262258, | |||
20140222702, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 31 2013 | LinkedIn Corporation | (assignment on the face of the patent) | / | |||
May 31 2013 | LI, LIZABETH | LinkedIn Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030526 | /0878 | |
May 31 2013 | SUTHERLAND-WONG, CHRISTIAN | LinkedIn Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030526 | /0878 | |
Oct 18 2017 | LinkedIn Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 044746 | /0001 |
Date | Maintenance Fee Events |
Sep 15 2016 | ASPN: Payor Number Assigned. |
Jan 23 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 01 2024 | REM: Maintenance Fee Reminder Mailed. |
Sep 16 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Aug 09 2019 | 4 years fee payment window open |
Feb 09 2020 | 6 months grace period start (w surcharge) |
Aug 09 2020 | patent expiry (for year 4) |
Aug 09 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 09 2023 | 8 years fee payment window open |
Feb 09 2024 | 6 months grace period start (w surcharge) |
Aug 09 2024 | patent expiry (for year 8) |
Aug 09 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 09 2027 | 12 years fee payment window open |
Feb 09 2028 | 6 months grace period start (w surcharge) |
Aug 09 2028 | patent expiry (for year 12) |
Aug 09 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |