Facilitating event attendee networking
In various example embodiments, systems and methods for facilitating event attendee networking are provided. A plurality of check-ins associated with attendance of an event is received. Attendee members are identified from among members of a social network service based on the plurality of check-ins. Contact members are identified from among the attendee members for a particular member among the attendee members. An abridged attendee list that includes at least one of the identified attendee members and excludes at least one of the identified contact members is generated. The abridged attendee list is presented on a user device of the particular member.
Embodiments of the present disclosure relate generally to online social networking, and more particularly, but not by way of limitation, to geographic based event recommendation and attendee networking.
BACKGROUNDThe near ubiquity of mobile devices and wireless networks provides users with access to information virtually anywhere. For example, users of social network services, such as LinkedIn®, may access social networking information via mobile devices. In addition, mobile devices often provide a variety of information using device sensors, such as current location.
Various ones of the appended drawings merely illustrate example embodiments of the present disclosure and cannot be considered as limiting its scope.
The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the disclosure. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques have not been shown in detail.
In various example embodiments, systems and methods for recommending events based on geographic location information and facilitating event attendee networking are described. In an example embodiment, location information (e.g., as determined by a global positioning system (GPS) component of a mobile device) corresponding to a member of a social network service may be used to determine suggested events (e.g., a developer conference, a sporting event, a concert, and the like). For instance, events that are within a distance of the user may be identified and recommended to the user. In some example embodiments, a user-specified distance may be used to determine the suggested events. Event information corresponding to the suggested event may be presented to the user. The event information may comprise a wide variety of information including an event description (e.g., event name, event location, event topic, event speakers, event activities, event duration, event price, and so forth), number of event attendees, a list of event attendees, an attendee summary, contact members of the user attending the event, and other event information (event parking, public transportation options, handicap accessible, weather forecast for the event location and time, and so forth).
In various example embodiments, a user attendance indication may be received from the user. The user attendance indication may indicate that the user is attending the suggested event. In some example embodiments, the user attendance indication may be received in response to an attendance trigger. For example, the attendance trigger may be the user moving within a distance of the suggested event (e.g., the user entering the building hosting the event may trigger the attendance indication). In further example embodiments, the user may provide member attendance indications for other members of the social network (e.g., the user may be accompanied by other members of the social network service and may provide attendance indications for the group).
In an example embodiment, contact members of the user (e.g., friends of the user on the social network service) may be identified and provided with an event notification that indicates the user is attending the suggested event. The event notification may include the event information and may facilitate the contact member in attending the suggested event. In some example embodiments, the event notification may only be presented to the contact members within a distance of the suggested event (e.g., only provide the notification to nearby contact members). Similarly, additional contact members of the original contact members may be provided the event notification if the original contact member attends the suggested event and provides an indication of attendance. In this way, awareness of the suggested event may spread via social contacts.
In a further example embodiment, attendee members attending the suggested event may be identified from among the members of the social network service. An attendee list that includes at least a portion of the attendee members may be generated (e.g., there may be hundreds of members that attend an event and only a portion may be included in the attendee list). Various schemes may be employed to determine which attendee members to include in the attendee list. The attendee list may be presented to the user that attended the suggested event after the suggested event has ended. The attendee list may facilitate the user connecting, via the social network service, with people that attended the suggested event.
As shown in
As shown in
As shown in
Consistent with some embodiments, when a person initially registers to become a member of the social networking service, the person will be prompted to provide some personal information, such as his or her name, age (e.g., birth date), gender, interests, contact information, home town, address, the names of the member's spouse and/or family members, educational background (e.g., schools, majors, etc.), current job title, job description, industry, employment history, skills, professional organizations, interests, and so on. This information is stored, for example, as profile data in the database with reference number 28.
Once registered, a member may invite other members, or be invited by other members, to connect via the social networking service. A “connection” may specify a bi-lateral agreement by the members, such that both members acknowledge the establishment of the connection. Similarly, with some embodiments, a member may elect to “follow” another member. In contrast to establishing a connection, the concept of “following” another member typically is a unilateral operation, and at least with some embodiments, does not require acknowledgement or approval by the member that is being followed. When one member connects with or follows another member, the member who is connected to or following the other member may receive messages or updates (e.g., content items) in his or her personalized content stream about various activities undertaken by the other member. More specifically, the messages or updates presented in the content stream may be authored and/or published or shared by the other member, or may be automatically generated based on some activity or event involving the other member. In addition to following another member, a member may elect to follow a company, a topic, a conversation, a web page, or some other entity or object, which may or may not be included in the social graph maintained by the social networking system. With some embodiments, because the content selection algorithm selects content relating to or associated with the particular entities that a member is connected with or is following, as a member connects with and/or follows other entities, the universe of available content items for presentation to the member in his or her content stream increases.
As members interact with various applications, content, and user interfaces of the social networking system 20, information relating to the member's activity and behavior may be stored in a database, such as the database with reference number 32.
The social networking system 20 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 networking system 20 may include a photo sharing application that allows members to upload and share photos with other members. With some embodiments, members of the social networking system 20 may be able to self-organize into groups, or interest groups, organized around a subject matter or topic of interest. With some embodiments, members may subscribe to or join groups affiliated with one or more companies. For instance, with some embodiments, members of the social network service may indicate an affiliation with a company at which they are employed, such that news and events pertaining to the company are automatically communicated to the members in their personalized activity or content streams. With some embodiments, members may be allowed to subscribe to receive information concerning companies other than the company with which they are employed. Membership in a group, a subscription or following relationship with a company or group, as well as an employment relationship with a company, are all examples of different types of relationships that may exist between different entities, as defined by the social graph and modeled with social graph data of the database with reference number 30.
The application logic layer includes various application server module(s) 24, which, in conjunction with the user interface module(s) 22, generates various user interfaces with data retrieved from various data sources or data services in the data layer. With some embodiments, individual application server modules 24 are used to implement the functionality associated with various applications, services and features of the social networking system 20. For instance, a messaging application, such as an email application, an instant messaging application, or some hybrid or variation of the two, may be implemented with one or more application server modules 24. A photo sharing application may be implemented with one or more application server modules 24. Similarly, a search engine enabling users to search for and browse member profiles may be implemented with one or more application server modules 24. Of course, other applications and services may be separately embodied in their own application server modules 24. As illustrated in
Additionally, a third party application(s) 48, executing on a third party server(s) 46, is shown as being communicatively coupled to the social networking system 20 and the client device(s) 50. The third party server(s) 46 may support one or more features or functions on a website hosted by the third party.
The communication module 210 may perform various communication functions to facilitate the functionality described herein. For example, the communication module 210 may communicate with the social networking system 20 via the network 40 using a wired or wireless connection. The communication module 210 may also provide various web services functions such as retrieving information from the third party servers 46 and the social networking system 20. Information retrieved by the communication module 210 may include profile data corresponding to the user 60 and other members of the social network service from the social networking system 20.
The presentation module 220 may provide a variety of presentation functionality such as generating user interfaces, interactively presenting user interfaces to the user, receiving information from the user from interactions with user interfaces, and so on. Information may be presented using a variety of means including visually displaying information and using other device outputs (e.g., audio, tactile, and so forth). Similarly, information may be received via a variety of means including alphanumeric input or other device input (e.g., one or more touch screen, camera, tactile sensors, light sensors, infrared sensors, biometric sensors, microphone, gyroscope, accelerometer, other sensors, and so forth).
The location module 230 may provide various location services functionality. For example, the location module 230 may retrieve location information from one or more location sensing components or devices (e.g., a GPS component, WiFi® triangulation, iBeacons, other indoor positioning systems, and so forth). The location information may represent the real-time location of the client device(s) 50 corresponding to the user. This may be interpreted as the current location of the user. The location information may include information such as timestamps, longitude, latitude, direction of movement, speed of travel, and the like.
The event module 310 may provide various event related functionality, such as determining the suggested event, retrieving information corresponding to the suggested event, and so on. For example, the event module 310 may determine the suggested event based on the location information of the user. The event module 310 may then retrieve the event information corresponding to the suggested event. Many other event relation functions may be performed by the event module 310.
The analysis module 320 may perform a variety of analyses to facilitate the functionality described herein. For example, the analysis module 320 may identify the contact members of the user, using the social graph data, from among the members of the social network service. The analysis module 320 may identify many other groups of members based on the social graph data, profile data, and other data.
The notification module 330 may provide a variety of user notification functionality such as communicating notifications to the user, communicating notifications to the contact members of the user, causing the presentation of user interfaces to the user, and so on. For example, the notification module 330 may cause presentation of the event information to the user. The notification module 330 may cause the presentation of various user interfaces by communicating instructions for presenting information to a device operable to present information to the user.
In an example embodiment, events that are within a distance of the user may be identified and recommended to the user as further depicted in
In an alternative example embodiment, past locations of the user may be used to identify suggested events. For example, the location of the user may be stored over time. Frequently visited locations of the user may be used to determine suggested events.
In further example embodiments, the suggested events may be identified based on an analysis of the profile data of the user. The profile data of the user may include information such as skills, education, interests, posts, and so on. For instance, the user may have indicated a skill in Java programming. The event module 310 may identify events that may be of interest to Java programmers (e.g., events that include the keyword Java in the title or description may be identified). Many schemes and techniques may be employed to identify the suggested event based on the profile data of the user.
In still further example embodiments, the suggested events may be identified based on user social graph data. The user social graph data may include relationships between members of the social network service such as the contact members of the user. The user social graph data may be used to identify suggested events by, for example, identifying events that the contact members of the user are attending or have attended in the past. Many schemes and techniques may be employed to identify suggested events based on the user social graph data.
In yet further example embodiments, the user may specify event criteria used to identify suggested events. The user-specified event criteria may include a wide range of criteria such as event types, keywords, event times, event locations, event attendees, and so on. In an example embodiment, the event module 310 may cause presentation of a user interface configured to receive the user-specified event criteria. For example, the user may be interested in sporting events and the user may have provided the event module 310 with the types of sporting events of interest. The event module 310 may then identify the suggested events that are of the same or a similar event type to the user-specified event type. Many schemes and techniques may be employed to identify suggested events based on the user-specified event criteria.
Referring back to
In some example embodiments, the analysis module 329 may generate an attendee summary based on an analysis of the profile data of the attendee members. The event information may include the attendee summary and may be presented to the user. For example, a particular event may be popular with certain members of the social network with a particular background. For instance, a game developer conference may be popular with Java developers. The analysis module 320 may analyze the profile data of the attendee members and identify that there are many Java developers at the conference. The attendee summary may indicate that there are many Java developers at the game developer conference. This information may be useful to the user in deciding whether to attend the suggested event. Many schemes and techniques may be employed to generate the attendee summary that may include a wide variety of information,
In further example embodiments, the event module 310 may facilitate admittance to the suggested event fur the user. For example, if the suggested event requires a ticket, the event module 310 may provide a means for acquiring the ticket (e.g., a link to a webpage where the ticket may be purchased). The event module 310 may also provide parking information, optimal travel routes, public transportation options, and so on, to facilitate the user attending the suggested event.
At operation 430 in
In alternative embodiments, the user attendance indication may be received in response to the attendance trigger. In some instances, the attendance trigger may automatically provide the user attendance indication to the event module 310, and in other instances, the attendance trigger may query the user as to whether the user is attending the suggested event (as depicting in
In further example embodiments, the user may provide a departure indication, received at the event module 310, that indicates the user has left the suggested event. The departure indication may be stored, for example, in database 32. The departure indication may help provide accurate information about the number of attendees currently at the suggested event (this information may be useful to other users in deciding whether to attend the suggested event). Member departure indications, similar to the departure indication, may be received from members of the social network service and stored in database 32, for example. In some example embodiments, the departure indication may be received in response to a departure trigger. In some instances, the departure trigger may automatically provide the user departure indication to the event module 310, and in other instances, the departure trigger may query the user as to whether the user is departing the suggested event. Similar to the attendance trigger, many different types of triggers may be employed for the departure trigger. For example, the departure trigger may be location based triggers (e.g., based on location as determined by a GPS component of a mobile device), NFC triggers (e.g., iBeacon), time triggers, and so on.
At operation 440 in
At operation 450, the notification module 330 may cause the presentation of an event notification to the contact members of the user. The event notification may include the user attendance indication. For example, the event notification may be a push notification to the client devices of the contact members as depicted in
The event notification may be useful to the contact members as it may put the contact members on notice of the attendance of the user to the suggested event (e.g., the contact members may wish to physically meet the user and will be notified of the user's arrival at the suggested event via the event notification and may begin physically seeking the user). In further example embodiments, the event system 300 may facilitate the physical meeting of the user and the attending contact members at the suggested event. For example, a messages may be communicated between the attending contact members and the user, more detailed location information relating to the user and the attending contact members may be exchanged to assist in a physical meeting (e.g., a real time distance to contact members at the suggested event), and so on.
For contact members of the user not attending the suggested event, the event notification may provide awareness of the suggested event and recommend attendance of the suggested event as further described in
At operation 510, the user client device may provide location information to the event system 300. For instance, the location information may be provided by the location module 230 (e.g., as determined by a GPS component of a mobile device) and communicated using the communication module 210 of the client application(s) 200.
At the operation 410, the event system 300 may receive the location information of the user and determine the suggested events based on the location information as described above.
At the operation 420, the event system 300 may then cause presentation of the event information by communicating the event information to the user client device, the user client device operable to present the event information to the user.
At operation 520, the user client device may receive the event information and present the event information to the user (e.g., displaying the event information on a mobile device display).
At operation 530, the user client device may provide the user attendance indication to the event system 300. For example, the user client device may present a user interface configured to receive the user attendance indication from the user and the user may interact with the user interface to provide the user attendance indication (e.g., the user taps a button to indicate that the user is attending the suggested event).
At the operation 430, the event system 300 may receive the user attendance indication as described above.
At the operation 440, the event system 300 may identify the contact members associated with the user as described above.
At the operation 450, the event system 300 may cause presentation of the event notification to the contact members as describe above.
At the operation 540, the other client devices (e.g., of the contact members) may receive the event notification and present the event notification. For example, the event notification may be presented using a push notification to the other client devices as depicted in
At operation 610, the analysis module 320 may identify the attendee contact members from among the contact members. The contact members may be identified from among the members of the social network service using the social graph data. The attendee contact members may be identified from among the contact members based on member attendance indications. Each of the member attendance indications may indicate a member of the social network service is attending the suggested event. The member attendance indications are similar to the user attendance indication but for other members of the social network service. The member attendance indications may be received from the members of the social network service in a similar manner to the user attendance indication.
At operation 620, the analysis module 320 may generate the attendee contact list that includes at least a portion of the attendee contact members. In some example embodiments, the attendee contact list may include all of the attendee contact members. In other example embodiments, the attendee contact members included in the attendee contact list may be based on an analysis of information stored in a profile of the user and information stored in profiles of the attendee members. For instance, the attendee contact members with similar skills and interests to the user, as determined by an analysis of profile data of the user and profile data of the attendee contact members, may be included in the attendee contact list. Many schemes and techniques may be employed to identify attendee contact members to include in the attendee contact list.
At operation 630, the notification module 330 may cause presentation of the attendee contact list to the user. For example, the attendee contact list may be included in the event information at the operation 420 in
At operation 710, the analysis module 320 may identify non-attendee contact members from among the contact members. Similar to the operation 610, the contact members may be identified from among the members of the social network service using the social graph data. The non-attendee contact members may be identified from among the contact members based on the member attendance indications. A contact member that did not provide a member attendance indication, associated with the suggested event, may be identified as a non-attendee contact member.
At operation 720, the event module 310 may recommend attendance of the suggested event to the non-attendee contact members. For example, the event notification may include a recommendation to attend the suggested event. The recommendation may include the event information and may facilitate attendance of the suggested event as describe above.
In further example embodiments, only non-attendee contact members within a distance of the suggested event may be recommended attendance of the suggested event. In other words, the non-attendee contact members that are nearby the suggested event may be recommended attendance of the suggest event while the non-attendee contact members that are not near the suggested event may not be recommended attendance of the suggested event.
At operation 810, the analysis module 320 may identify attendee members from among the members of the social network service based on the member attendance indications. As described above, each indication of the member attendance indications may indicate that a member of the social network service is attending the suggested event.
At operation 820, the analysis module 320 may generate the attendee list that includes at least a portion of the attendee members. In some example embodiments, the attendee list may not include attendee members that are contact members of the user (the reasoning being that the user is already connected with contact members through the social network service and would not need to connect with those members). The attendee members may be included in the attendee list based on an analysis of profile data of the user and profile data of the attendee members. The purpose of the analysis may be to identify attendee members the user may be interested in connecting with through the social network service. For example, the attendee members with similar attributes, skills, and/or interests to the user, as determined by an analysis of profile data of the user and profile data of the attendee members, may be included in the attendee list. Many schemes and techniques may be employed to identify attendee members to include in the attendee list.
At operation 830, the event module 310 may cause presentation of the attendee list to the user. Various information associated with each member included in the attendee list may also be presented to the user (e.g., images of the member, name, current job title, educational background, and so on). In various example embodiments, the attendee list may be included in the event information at the operation 420 in
In further example embodiments, the notification module 330 may provide the attendee list to the user after the suggested event has ended, as further depicted in
User interface element 1020 may include images and information corresponding to members of the social network service. For example the user interface element 1020 may display profile data corresponding to members from the attendee list, members from the attendee contact list, and other members. The profile data may include member images, names, and other information. The profile data may be accessed from the social networking system 20. Activating the user interface element 1020 may present additional information associated with the members as depicted in
User interface element 1030 may provide the user attendance indication to the event system 300. For example, activating the user interface element 1030 may send the user attendance indication to the event system 300 as described above in the operation 430. User interface element 1040 may allow the user to invite other members to the suggested event. For example, activating user interface element 1040 may send the event notification to a user selection of members of the social network service. User interface element 1050 may display portions of the event information associated with the suggested event. In this example, the event information may include information such as where the event is located and when the event is occurring. User interface element 1060 depicts a map showing the suggested event location that may be included in the event information.
The machine 1600 includes a processor 1602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio-frequency integrated circuit (RFIC), or any suitable combination thereof), a main memory 1604, and a static memory 1606, which are configured to communicate with each other via a bus 1608. The machine 1600 may further include a video display 1610 (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The machine 1600 may also include an alphanumeric input device 1612 (e.g., a keyboard), a cursor control device 1614 (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit 1616, a signal generation device 1618 (e.g., a speaker), and a network interface device 1620.
The storage unit 1616 includes a machine-readable medium 1622 on which is stored the instructions 1624 embodying any one or more of the methodologies or functions described herein. The instructions 1624 may also reside, completely or at least partially, within the main memory 1604, within the static memory 1606, within the processor 1602 (e.g., within the processor's cache memory), or both, during execution thereof by the machine 1600. Accordingly, the main memory 1604, static memory 1606 and the processor 1602 may be considered as machine-readable media 1622. The instructions 1624 may be transmitted or received over a network 1626 via the network interface device 1620.
As used herein, the term “memory” refers to a machine-readable medium 1622 able to store data temporarily or permanently and may be taken to include, but not he limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 1622 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions 1624. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instruction 1624) for execution by a machine (e.g., machine 1600), such that the instructions, when executed by one or more processors of the machine 1600 (e.g., processor 1602), cause the machine 1600 to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, one or more data repositories in the form of a solid-state memory, an optical medium, a magnetic medium, or any suitable combination thereof.
Furthermore, the machine-readable medium 1622 is non-transitory in that it does not embody a propagating signal. However, labeling the machine-readable medium 1622 as “non-transitory” should not be construed to mean that the medium is incapable of movement; the medium should be considered as being transportable from one physical location to another. Additionally, since the machine-readable medium 1622 is tangible, the medium may be considered to be a machine-readable device.
The instructions 1624 may further be transmitted or received over a communications network 1626 using a transmission medium via the network interface device 1620 and utilizing any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone service (POTS) networks, and wireless data networks (e.g., WiFi, LTE, and WiMAX networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions 1624 for execution by the machine 1600, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium 1622 or in a transmission signal) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a field-programmable gate array (FPGA) or an ASIC. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware modules) at different times. Software may accordingly configure the processor 1602, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
The various operations of example methods described herein may be performed, at least partially, by one or more processors 1602 that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors 1602 may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors 1602.
Similarly, the methods described herein may be at least partially processor-implemented, with a processor 1602 being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors 1602 or processor-implemented modules. Moreover, the one or more processors 1602 may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “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 1600 including processors 1602), with these operations being accessible via the network 1626 (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)).
The performance of certain of the operations may be distributed among the one or more processors 1602, not only residing within a single machine 1600, but deployed across a number of machines 1600. In some example embodiments, the one or more processors 1602 or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors 1602 or processor-implemented modules may be distributed across a number of geographic locations.
Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The 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.
As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims
1. A method comprising:
- receiving a plurality of check-ins associated with attendance of an event;
- identifying attendee members, from among members of a social network service, based on the plurality of check-ins;
- identifying contact members from among the attendee members for a particular member among the attendee members, each member of the contact members having a social network relationship with the particular member on the social network service;
- generating, using a processor of a machine, an abridged attendee list that includes at least one of the identified attendee members and excludes at least one of the identified contact members; and
- causing presentation of the abridged attendee list on a user device of the particular member.
2. The method of claim 1, further comprising:
- accessing profile data from the social network service for the particular member and respective members of the attendee members;
- identifying a similar member from among the attendee members that is similar to the particular member based on the profile data of the particular member and the profile data of the respective members of the attended members; and
- including the identified similar member in the abridged attendee list.
3. The method of claim 2, wherein the similar member is identified based on at least one of a skill, an interest, an educational background, a job description, a job industry, an employment history, a job title, or a professional organization of the particular member.
4. The method of claim 1, further comprising:
- receiving an indication of departure from the event for the particular member; and
- causing presentation of the abridged attendee list after receiving the indication of departure.
5. The method of claim 4, further comprising:
- detecting the user device of the particular member moving outside a trigger distance of a geolocation for the event; and
- inferring the indication of departure from he event for the particular member.
6. The method of claim 1, further comprising:
- determining that the event has ended; and
- causing presentation of the abridged attendee list after determining that the event has ended.
7. The method of claim 6, further comprising:
- automatically determining the event has ended based on receiving an indication of a departure for at least one of the identified attendee members from the event.
8. The method of claim 1, further comprising:
- causing presentation, on the user device, of an option to form a social network connection between the particular member and a member included in the abridged attendee list.
9. The method of claim 1, further comprising:
- detecting a device of a certain member of the social network service moving within a trigger distance of a geolocation for the event; and
- inferring a check-in for the certain member.
10. The method of claim 1, further comprising:
- detecting a device of a certain member of the social network service establishing a communicative link with a device physically located within a distance of a geolocation for the event; and
- inferring a check-in for the certain member.
11. A system comprising:
- a computer-readable medium having instructions stored there on, which, when executed by a processor, cause the system to:
- receive a plurality of attendance indications corresponding to members of a social network service, the attendance indications being associated with attendance of an event;
- identify attendee members, from among the members of the social network service, based on the plurality of attendance indications;
- identify contact members from among the attendee members for a particular member among the attendee members, each member of the contact members having a social network relationship with the particular member on the social network service;
- generate a filtered attendee list that includes at least one of the identified attendee members and excludes at least one of the identified contact members; and
- cause presentation of the filtered attendee list on a user interface of a user system of the particular member.
12. The system of claim 11, further comprising:
- access profile data from the social network service for the particular member and respective members of the attendee members;
- identify a similar member from among the attendee members that is similar to the particular member based on the profile data of the particular member and the profile data of the respective members of the attended members; and
- include the identified similar member in the filtered attendee list.
13. The system of claim 12, wherein the similar member is identified based on at lead one of a skill, an interest, an educational background, a job description, a job industry, an employment history, a job title, or a professional organization of the particular member.
14. The system of claim 11, further comprising:
- receive an indication of departure from the event for the particular member; and
- cause presentation of the abridged attendee list after receiving the indication of departure.
15. The system of claim 14, further comprising:
- detect that the user device of the particular member has move outside a trigger distance of a geolocation for the event; and
- infer the indication of departure from the event fur the particular member.
16. A machine-readable medium having no transitory signals and storing instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising:
- receiving a plurality of check-ins associated with attendance of an event;
- identifying attendee members, from among members of a social network service, based on the plurality of check-ins;
- identifying contact members from among the attendee members for a particular member among the attendee members, each member of the contact members having a social network relationship with the particular member on the social network service;
- generating a modified attendee list that includes at least one of the identified attendee members and excludes at least one of the identified contact members; and
- causing presentation of the modified attendee list on a user device of the particular member.
17. The machine-readable medium of claim 16, further comprising:
- accessing profile data from the social network service for the particular member and respective members of the attendee members;
- identifying a similar member from among the attendee members that is similar to the particular member based on the profile data of the particular member and the profile data of the respective members of the attended members; and
- including the identified similar member in the modified attendee list.
18. The machine-readable medium of claim 17, wherein the similar member is identified based on at least one of a skill, an interest, an educational background, a job description, a job industry, an employment history, a job title, or a professional organization of the particular member.
19. The machine-readable medium of claim 16, further comprising:
- receiving an indication of departure from the event for the particular member; and
- causing presentation of the abridged attendee list after receiving the indication of departure.
20. The machine-readable medium of claim 19, further comprising:
- detecting the user device of the particular member moving outside a trigger distance of a geolocation for the event; and
- inferring the indication of departure from the event for the particular member.
Type: Application
Filed: Jul 16, 2015
Publication Date: Nov 12, 2015
Inventors: Siva Visakan Sooriyan (San Francisco, CA), Asa Kusuma (San Jose, CA), Artur Kubalski (Mountain View, CA), Vinoth Chandar (Mountain View, CA), Hans van de Bruggen (San Jose, CA)
Application Number: 14/801,726