RELATED APPLICATIONThis application claims the benefit of U.S. Provisional Patent Application No. 61/579,098, entitled, “Systems and Methods for Mapping Relevant Personal Connections,” filed on 17 Jan. 2012. The provisional application is hereby incorporated by reference for all purposes.
BACKGROUNDThe subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to implementations of the claimed inventions.
The technology disclosed relates to calculating interaction strengths for physical interactions, scheduled physical interactions and wireless interactions between users of online social networks. In particular, it relates to determining direct contact or likely contact between users of online social networks based in part on their mobile communication devices. This determination can be used to score interactions that take place outside the social network for interaction strengths.
Online social networks have become common tools through which users interact and share information across various channels including as messages, e-mails, videos, chat rooms, blogs, etc. The inherent value of an online social network is rooted in the value of a users' connections to other users and objects. Typically, most of this value is derived from actions performed and captured on the social network websites. For example, a user may actively follow, like, or comment on another user or object in order to integrate that user or object with the user's social network. Currently, actions external to the online social network cannot be used to influence the relationship between users or between users and objects on an online social network.
User interactions outside of the context of an online social network are not captured or represented in a meaningful way by the social network. For instance, a physical interaction with another user such as attending a meeting and conversing, or collectively viewing a presentation, contributes to a social network. However, there may not be any explicit interaction through the social network, resulting in online social networks not being able to capture such real-world interactions.
An opportunity arises to provide users of an online social network with mechanisms and methods for mapping connections with other relevant users of the online social network. In particular, the technology disclosed allows users of an online social networks to capture real-world interactions with other users and represent them on the online social network. Improved representation and analysis of inter-user relationships may result.
SUMMARYThe technology disclosed relates to calculating interaction strengths for physical interactions, scheduled physical interactions and wireless interactions between users of online social networks. In particular, it relates to determining direct contact or likely contact between users of online social networks based in part on their mobile communication devices. This determination can be used to score interactions that take place outside the social network for interaction strengths.
Other aspects and advantages of the present invention can be seen on review of the drawings, the detailed description and the claims, which follow.
BRIEF DESCRIPTION OF THE DRAWINGSThe included drawings are for illustrative purposes and serve only to provide examples of possible structures and process operations for one or more implementations of this disclosure. These drawings in no way limit any changes in form and detail that may be made by one skilled in the art without departing from the spirit and scope of this disclosure. A more complete understanding of the subject matter may be derived by referring to the detailed description and claims when considered in conjunction with the following figures, wherein like reference numbers refer to similar elements throughout the figures.
FIG. 1 illustrates one implementation of a graphical user interface representing a social profile associated with a user.
FIG. 2 illustrates one implementation of an exemplary online social network environment.
FIG. 3 illustrates one implementation of an example system that allows mapping of relevant personal connections.
FIG. 4 is a flow chart of one implementation of calculating level of physical interactions between first and second users using first and second devices operating in peer-to-peer mode.
FIG. 5 is a message exchange chart of one implementation of some elements ofFIG. 4.
FIG. 6 is a flow chart of one implementation of calculating level of physical interactions between first and second users using first and second devices participating in a wireless local area network.
FIG. 7 is a message exchange chart of one implementation of some elements ofFIG. 6.
FIG. 8 is a flow chart of one implementation of calculating level of wireless interactions between first and second users using first and second devices.
FIG. 9 is a message exchange chart of one implementation of some elements ofFIG. 8.
DETAILED DESCRIPTIONThe following detailed description is made with reference to the figures. Sample implementations are described to illustrate the technology disclosed, not to limit its scope, which is defined by the claims. Those of ordinary skill in the art will recognize a variety of equivalent variations on the description that follows.
Physical and wireless interactions between users or between users and objects can be used to calculate and/or build the users' social network. For example, the frequency of interaction between users can be used to measure the interaction strength of their relationship. In some implementations, actions external to the online social network can be used to affect the interaction strength of users in an online social network.
Interaction strength information can be shared to the extent allowed by settings. All social network users, or only those users who follow the first user, or only the first user can view the interaction strength on first user's profile page. Interaction strength can be based on metrics, such as the number of interactions within a defined time period (i.e., frequency), the length of interaction, and the like. This interaction strength calculation can consider interactions outside of the online social network, such as interactions observed with a CRM system. A first user's interactions with a second user recorded in the CRM system can be provided to the social network and used to determine interaction strength. In yet another implementation, interaction strength can also be based upon multiple social network interactions.
Physical interactions are captured based on wireless interactions between mobile communication devices of two users. Use cases for peer-to-peer communication between the respective mobile devices and simultaneous interaction with a shared access point are described. These use cases have in common physical proximity of users. The proximity of mobile communication devices is used as a proxy for user interaction or at least for shared user experiences due to physical proximity.
Scheduled physical interactions are captured from calendar entries, event subscriptions, sign-ins and the like that place two users at the same event. The scheduled physical interactions may be analyzed when the user's respective privacy settings allow. Analysis of schedule physical interactions may be triggered by another interaction event, thereby reducing the potential intrusiveness of analyzing calendars.
Wireless communication interactions outside the social network can be monitored using observer software residing on respective mobile communication devices.
The observer software can monitor video, audio and text communications channels that are out of band from the social network.
In each of these use cases, connection events such as physical connection event, calendar connection event or wireless connection event can be created and stored in a database. A physical connection event can be triggered by reception of a user identity token. The receiving device can record the duration and strength of the signal that broadcasted the user identity token. It also can record the number of token broadcasts received and optionally their timing or continuity. Similarly, a calendar connection event is a memory update caused by a find or match of calendar related electronic records of two users indicating their co-attendance at an event. Likewise, a wireless connection event is registered at a server when two users communicate with each other outside the social network using their respective wireless devices.
Moreover, the connection events can be processed to determine connectedness scores for pairs of users. Connectedness scores can be made available to users for their own connections and to permitted viewers
Actions performed by a user outside the social network can be analyzed from browser cookies or the user's browser history. A user can use permission levels to set the level of access to his browser history or to real-time browser actions. For purposes of this example, the actions of the user can be accessed or tracked by an “observer tool.”
Once the observer tool is activated, either by the user or an administrator having sufficient privileges, the actions of the user can be analyzed. The observer tool can see that the user interacts with a number of other users or objects on the social network, regardless of whether the user is following those other users or objects on the social network. Interactions can include, but are not limited to, viewing a profile page of the user or object, commenting on a post mentioning the user or object, initiating a chat session with the user, sending a message to the user, and the like. If the first user is not following or is otherwise not connected to the user or object with which he or she is interacting, the observer tool can trigger an action to suggest that the first user follow the user or object, or the observer tool can trigger that the user or object be automatically followed by the first user based upon a configurable number of interactions.
In one example, a first user can meet a second user at a conference, where electronic interactions between users' respective communication devices can confirm proximity and interaction between the users. For instance, each device may broadcast identity tokens once per minute. Each device may receive ten tokens in ten minutes with a received signal strength indicator for peer-to-peer wireless channel that suggests close physical proximity. Such interactions can affect the interaction strength of the second user in the first user's social network, and vice-versa. Alternatively or additionally, calendar entries common to both the users can contribute to an interaction strength for the two users.
In another example, a second user can be excluded from interaction strength calculation. The first user may not want to measure the extent of his or her relationship with the second user. However, if the second user provides an incentive, such as a piece of contact information, access, or other object or portion of an object to the first user, the first user may include the second user in the interaction strength calculation.
The technology disclosed relates to online social networks for use in a computer-implemented system. The described subject matter can be implemented in the context of any computer-implemented system, such as a software-based system, a database system, a multi-tenant environment, or the like. Moreover, the described subject matter can be implemented in connection with two or more separate and distinct computer-implemented systems that cooperate and communicate with one another. One or more implementations may be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, a computer readable medium such as a computer readable storage medium containing computer readable instructions or computer program code, or as a computer program product comprising a computer usable medium having a computer readable program code embodied therein.
Social ProfileFIG. 1 illustrates one implementation of agraphical user interface100 representing asocial profile105 associated with auser110. In particular,FIG. 1 illustrates thesocial profile105 ofuser John Doe110 on an onlinesocial network200 such as Salesforce's Chatter. Thesocial profile105 can include the user's name, contact information, professional information, and/or picture. In addition, thesocial profile105 can list other users connected withJohn Doe110 includingJane Doe112 andJake Doe122.
In some implementations, thesocial profile105 can include aconnection review tab106 that displaysinteraction strength114 ofJohn Doe110 with other users such asJane Doe112 andJake Doe122. Theinteraction strength114 can be based onphysical interactions113,calendar events115,wireless interactions116,desktop history117, combinedinteractions118, and the like, which can be displayed as separate individual tabs. Theinteraction strength114 can be indicated through scoring functions, point system, meters, highlighting or other graphical enhancements, ordering, mouseovers, or indicators. In other implementations, selecting one of these tabs can open a new view or browser window elaborating the selected tab. Another example can include a list created byJohn Doe110 to view his interaction strength with specific users.
Online Social NetworkFIG. 2 illustrates one implementation of an onlinesocial network environment200. Theusers110 and112 of onlinesocial network environment200 can usewireless devices208 and215 communicating through peer-to-peer connection209 or simultaneously interacting with a shared access point210 (AP) configured on a wireless local area network211 (WLAN).
Thedevices208 and215 can include a number of components, the controlling components being processors. Processors can include one or more digital signal processor (DSP), microprocessor, microcontroller, central procession unit (CPU) or graphics processing unit (GPU), application specific integrated circuit (ASIC), reduced instruction set computing (RISC) or field-programmable gate array (FPGA) or a combination of these processor types. Processors can control the overall operations of thedevices208 and215. In addition to their operating system functions, they can execute software applications on thedevices208 and215. The processors can interact with other components of therespective devices208 and215 such as radio frequency (RF) transceivers, device interfaces, memory units, etc.
The communication related functions of thedevices208 and215 are performed by the RF transceivers. The RF transceivers can transmit/receive RF signals throughantennas205 and212. For transmission, the RF transceivers can perform data channel-coding and spreading. In case of reception, they can convert received RF signals into baseband signals and perform de-spreading and channel decoding on the baseband signals to recover the original data.
Additionally, RF transceivers can search for neighboring RF transceivers and perform a discovery or pairing process. The RF transceivers in conjunction with the processors can—function as a signal measurement unit for determining the strength of a received signal or received signal strength indication (RSSI), implement a timer for determining the duration of a connection or broadcast, and place timestamps on the transferred signals for recording the date and time of transmission or reception.
The input/output related functions of thedevices208 and215 are executed by device interfaces. The device interfaces can comprise of various input/output sub-systems such as a display, keyboard, microphone, speaker, serial port, etc. In some implementations, thedevices208 and215 can include one or more device interfaces for providing users access to various system components and receiving information.
The memory units such as Read Only Memory (ROM), Random Access Memory (RAM), flash memory and disk drive among others, can provide persistent or volatile storage. In some implementations, the memory units can store—micro-codes of a program for processing and controlling device operations, temporary data generated during program executions, reserved data, and data transmitted and received by thedevices208 and215.
User Identity TokensSnippets of data, referred to as “user identity tokens”1 and2 can be used for discovery ofrespective users110 and112 of the onlinesocial network200. In some implementations,user identity tokens1 and2 can include encrypted data unique tousers110 and112. In addition, theuser identity tokens1 and2 can include the social identities of theusers110 and112 setup on the onlinesocial network200. In other implementations, theserver225 can generate encrypted “user identifier keys” unique to the users of onlinesocial network200.Users110 and112 can anonymously broadcast theiruser identifier tokens1 and2 or user identifier keys to identify other users of the onlinesocial network200. Other authentication protocols can be implemented.
Short-range communication systems such as Bluetooth, Near Field Communication (NFC), RFID, Z-Wave, ZigBee, etc. can establish peer-to-peer (P2P)connection209 between devices that are in close physical proximity of each other. During aP2P connection209,devices208 and215, when within transmission range of each other, broadcastuser identity tokens1 and2. In P2P passive or connectionless mode, one of the devices can initiate the broadcast, and other can behave as a receiver without pairing. In P2P active mode, in which the devices are paired or have built a connection, bothdevices208 and215 can transmit and receiveidentity tokens1 and2.
WLAN211 such as Wi-Fi, can connect thedevices208 and215 toAP210 using medium range signals. DuringWLAN connection211,devices208 and215 can operate in broadcast (connectionless) or connected modes. In a broadcast mode,broadcasting devices208 and215 connected to a sharedAP210 can be presumed to be in close proximity. Tokens can, for instance, be broadcast to MAC address or to another MAC or IP address of a defined network segment scope. Broadcasting to a MAC address is supported by IPv4 and IEEE 802.11. In IPv6, multicasting takes the place of broadcasting. Tokens can be embedded in recognized broadcast message types. One example of a broadcast protocol is Internet Control Message Protocol, which is implemented in both IPv4 and IPv6. ICMP messages of various types could be used or a new type chosen from the reserved range of type codes. Another example of a broadcast protocol supported by IPv4 is the address resolution protocol (ARP). Query messages can be used to scan aWLAN segment211. From responses to a query, a list of unique media access control (MAC) addresses of connected devices can be compiled. In IPv6, the neighborhood discovery protocol (NDP) specifies a variety of multicast message types that could be adapted for transmitting identity token information. When thedevices208 and215 can broadcast ARP messages oruser identity tokens1 and2, the AP can forward the broadcasts to other connected devices. In some implementations, multiple APs covering a single location, such as a large meeting room, can be relay broadcasts as a group or can be treated as a single AP.
Connection EventsUpon receiving user identity tokens, thedevices208 and215 can store the tokens in their local memory units and automatically or manually upload them toserver225 connected to an identitytoken database222. Theserver225 can use identity tokens individually or in aggregate to create a physical connection event in theconnection event database221.
In some implementations, the system orusers110 and112 can set a threshold or timeout limit to help the mobile devices aggregate physical connection events resulting from successive reception of the same user identity token. In aggregated physical connection events resulting from reception of multiple user identity tokens, user identity tokens with higher counts, lengthier timestamps readings, or greater received signal strengths indications (RSSI) can indicate sustained and close proximity of two devices.
Aggregation can be performed on thedevices208 and215, theserver225, or both. For instance, thedevices208 and215 may aggregate received user identity tokens to determine a timestamp duration. In some implementations, failure to receive a user identity token from a broadcasting device within a pre-set time window can cause the receiving device to close and summarize a connection event. After a timeout duration without receiving further user identity tokens, thedevices208 and215 may forward the batch of collected user identity tokens and associated metadata including timestamp durations and RSSI values to theserver225. Thedevices208 and215 can indicate the quality of a transmission as “strong” or “average” based on the number of collected user identity tokens and the associated metadata values. The quality of a broadcast can indicate close proximity of the broadcasting device and be used by thesever255 for interaction strength calculation. In other implementations, aggregation of subsequent user identity tokens can be limited by the server.
The aggregated physical connection events and corresponding calendar connection events can be used to calculate a level of physical interactions (explained later). The calculated level of physical interactions can be depicted through an interaction strength metric on thesocial profile105 ofJohn Doe110. Thesocial profile105 can be accessed from abrowser255 running on thecomputing device235 and being tracked by anobserver tool245. Thebrowser255 can be Chrome, Internet Explorer, Firefox, Safari, etc. or the like that is capable of sending and receiving information to and from theserver225. In some implementations, theserver225 can apply a filter to calendar connection events and received user identity tokens for identifying particular events or user properties desired by theusers110 and112.
In some implementations, thedevices208 and215 can use Bluetooth technology, which can include an identification phase and a pairing phase. During the identification phase, thebroadcasting device208 can set a frequency-hopping pattern, to which thedevice215 can synchronize its signals. In the pairing phase, thedevice208 and215 can transmit low power short-range RF signals and broadcastuser identity tokens1 and2. Alternatively, tokens can be received and processed without pairing in a connectionless mode.
In other implementations, thedevices208 and215 can use NFC for ultra-short-range communication and replace the identification phase of the Bluetooth technology with a simple tap between thedevices208 and215. In case of NFC,antennas205 and212 can function as windings of a transformer to generate high power ultra-short-range RF signals for broadcastinguser identity tokens1 and2.
In other implementations, thedevices208 and215 can participate in theWLAN211 through Wi-Fi, via anAP210 that broadcasts a Wi-Fi signal usable over a medium-range area. In response to a MAC address based ARP scan initiated bydevices208 and215, theAP210 can generate a list of devices connected to it along with their MAC address, names, format, Internet Protocol (IP), etc. Thedevices208 and215 can then use the user identity tokens to filter those devices from the list whose users are in the same online social network environment as those ofdevices208 and215.
FIG. 3 illustrates one implementation of anexample system300 that allows mapping of relevant personal connections. InFIG. 3, the components are configured to operate within an execution environment hosted by a device and/or multiple devices, as in a distributed execution environment. Exemplary computing devices can include desktop computers, servers, networking devices, notebook, computers, PDAs, mobile phones, digital image capture devices and the like. Thewireless devices208 and215 andcomputing devices1 and2 can be communicatively coupled to one another vianetwork315. Thenetwork315 may be any network or combination of networks of devices that communicate with one another. For example,network315 can be any one or any combination of Local Area Network (LAN), Wide Area Network (WAN), telephone network, wireless network, point-to-point network, star network, token ring network, hub network, or other appropriate configuration including the Internet.
The calendar entries store301 can store the calendar entries, event subscriptions, and sign-ins of theusers110 and112, which are matched in thecalendar engine305 to create or capture calendar connection events after locating a scheduled physical connection by finding a coincidence of scheduling, registration or check-in information in electronic records of theusers110 and112. The calendar connection event can correspond to information stored with the physical connection event in time or location. If the timestamp and location recordings related to a physical connection event matches the time and venue entries associated with a scheduled connection event, then the two connection events can be presumed to correspond to each other.
The connection events can be further stored in the calendar events store309. Thesocial network engine310 can provide online social applications that store the social profiles of theusers110 and112. Theinteraction engine319 can calculate the level of physical interaction between theusers110 and112 by matching the corresponding physical and calendar connection events. Theuser profile database320 can include the user identity tokes1,2, and3 ofusers110 and112.
Physical Interactions LevelFIG. 4 is aflow chart400 of one implementation of calculating a level of physical interactions betweenfirst user110 usingfirst device208 andsecond user112 usingsecond device215 communicating viaP2P connection209. Other implementations may perform the steps in different orders and/or with different, fewer or additional steps than the ones illustrated inFIG. 4. Multiple steps can be combined in some implementations. For convenience, this flowchart is described with reference to the system that carries out a method. The system is not necessarily part of the method.
As explained above, when in close proximity with each other, first andsecond devices208 and215 broadcast short-range RF signals atstep407. Theuser identity tokens1 and2 ofrespective users110 and112 that include users' social identities are broadcasted through the broadcast signals atstep415. If the users are members of the onlinesocial network200, a physical connection event is registered in theconnection event database221 atstep417. Atstep425, the timestamps of the first and last reception ofuser identity tokens1 and2 can be used to record the broadcast durations. The RSSI values of the broadcasts can be recorded atstep427, quantifying the quality of broadcasts with eachdevices208 and215. Atstep435, the presumption of contact or likely contact between theusers110 and112 is narrowed based on the broadcast durations and RSSI values, with longer broadcasts and higher RSSI values suggesting greater proximity betweenusers110 and112. The electronic records of theusers110 and112 pertaining to calendar entries, event subscriptions, sign-ins and the like that place two users at the same event are matched atstep437. A find or a match creates a calendar connection event in theconnection event database221 atstep445.
As explained above, the connectedness of aggregated physical connection events with calendar connection events is optionally confirmed atstep447 on the basis of their respective time and location fields. The connectedness confirmation is approved by theusers110 and112 atstep455 to ensure that they actually attended the events whose calendar entries and the like created the calendar connection events. Atstep457, a level of physical interaction between theusers110 and112 is calculated by theinteraction engine319 based on the aggregated physical connection events and the corresponding calendar connection events.
Following this, atsteps465 and467, filtering mechanisms are implemented to the calendar connection events and receiveduser identity tokens1 and2 for identifying particular events or user properties. Atstep475, the social profiles of theusers110 and112 are modified on the onlinesocial network200 through an interaction strength metric using scoring functions, point systems, meters, graphical enhancements, etc.
FIG. 5 is amessage exchange chart500 of one implementation of some elements ofFIG. 4. Atexchange532,first device208 sends theuser identity token1 of thefirst user110 tosecond device215. Thesecond device215 relays the receiveduser identity token1 to theserver225 atexchange534, which stores it in the identitytoken database221 and identifies the user associated with it. Atexchange553,second device215 transmits theuser identity token2 of thesecond user112 tofirst device208. Thefirst device208 relays it to theserver225 for the same “social identity analysis” as atexchange534. The RSSI values and broadcast durations are reported to theserver225 at exchanges at563 and565. Atexchanges565 and575, theserver225 sends the connectedness confirmation inquiry to theusers110 and112 via theirrespective devices208 and215. Theusers110 and112 then approve the connectedness confirmation atexchanges585 and587. Following this, theserver225 sends the level of physical interactions between theusers110 and112 calculated byinteraction engine319 to therespective devices208 and215 atexchanges595 and597.
FIG. 6 is aflow chart600 of one implementation of calculating a level of physical interactions betweenfirst user110 usingfirst device208 andsecond user112 usingsecond device215 communicating viaWLAN211. Other implementations may perform the steps in different orders and/or with different, fewer or additional steps than the ones illustrated inFIG. 6. Multiple steps can be combined in some implementations. For convenience, this flowchart is described with reference to the system that carries out a method. The system is not necessarily part of the method.
As explained above, the first andsecond devices208 and215 wirelessly discover other proximate devices. This discovery can be connectionless or connected, as between wireless devices, each of which is connected toAP210 atstep607. In some implementations, a MAC-based ARP scan can be part of the discovery. To reduce potential intrusiveness, thedevices208 and215 optionally can broadcastuser identity tokens1 and2 to just those devices whose users are members of the onlinesocial network200. If firstuser identity token1 being broadcasted byfirst device208 confirms the membership ofuser110 in the onlinesocial network200, then it is collected byfirst device215 atstep615. Also atstep615, Thesecond device215 broadcasts a seconduser identity token2, which is filtered against the profiles stored in theuser profile database320 by theserver225 to confirm that thesecond user112 is a member of the onlinesocial network200. With the reception of the user identity tokens, physical connection events are registered in theconnection event database221 atstep617. Atstep625, the timestamps of the first and last reception ofuser identity tokens1 and2 are used to record the broadcast durations. The RSSI values of the broadcasts are recorded atstep627, quantifying the quality of broadcasts with eachdevices208 and215.
Atstep635, the presumption of contact or likely contact between the users can be narrowed based on the broadcast durations and RSSI values, with longer broadcasts and higher RSSI values suggesting greater proximity between users. The electronic records of the users pertaining to calendar entries, event subscriptions, sign-ins and the like that place two users at the same event are matched atstep637. A find or a match creates a calendar connection event in theconnection event database221 atstep645.
As explained above, the connectedness of aggregated physical connection events with calendar connection events confirmed atstep647 on the basis of their respective time and location fields. The connectedness confirmation is approved by theusers110 and112 atstep655 to ensure that they actually attended the events whose calendar entries and the like created the calendar connection events. Atstep657, a level of physical interaction between the users is calculated by theinteraction engine319 based on the aggregated physical connection events and the corresponding calendar connection events. Following this, atsteps665 and667, filtering mechanisms are implemented to the calendar connection events and received user identity tokens for identifying particular events or user properties. Atstep675, the social profiles of the users are modified on the onlinesocial network200 through an interaction strength metric using scoring functions, point systems, meters, graphical enhancements and the like.
FIG. 7 is amessage exchange chart700 of one implementation of some elements ofFIG. 6. Optionally, thefirst device208 sends a device discovery request toAP210 atexchange702. TheAP210 reports a list of devices discovered on its network to thefirst device208 atexchange706, including thesecond device215.
Using the AP MAC address of thesecond device215 obtained from the discovery report, thefirst device208 sends the firstuser identity token1 to thesecond device215 atexchange707. Thesecond device215 relays the firstuser identity token1 to theserver225 atexchange709. Optionally, it can check if theuser110 associated with thefirst identity token1 is a member of the onlinesocial network200. If theserver225 confirms thatuser110 is a member of the onlinesocial network200, then thesecond device215 broadcasts the seconduser identity token2 to thefirst device208 atexchange713. Thefirst device208 forwards the second identity token to theserver225 at exchange718 to make the same identity check done bysecond device215 at exchange710. The RSSI values and broadcast durations are reported to theserver225 at exchanges at719 and721. Atexchanges722 and725, theserver225 sends the connectedness confirmation inquiry to theusers110 and112. Theusers110 and112 then approve the connectedness confirmation at exchanges728 and730. Following this, theserver225 sends the level of physical interactions calculated byinteraction engine319 to thedevices208 and215 atexchanges733 and734.
The concept of calculating a level of physical interactions between users can be further explained through an example scenario of a Dreamforce conference. Theusers110 and112 of the onlinesocial network200 usingdevices208 and215 can enable Bluetooth, NFC, or Wi-Fi in their respective devices while attending Dreamforce conference. Theusers110 and112 can then broadcast their user identity tokens when their devices are within the transmission range of the enabled wireless network. Thedevices208 and215 can assign timestamps to the received user identity tokens and track the duration and RSSI values of the broadcast, which can be uploaded to theserver225 to create a physical connection event in the on-demand database221.
Further on, while attending another event like a training workshop, theusers110 and112 can again exchange their user identity tokens when their devices are within the transmission range of the enabled wireless network and create another physical connection event. If the aggregation of physical connection events crosses the pre-defined threshold counter due to repeated reception of the same user identity token, theusers110 and112 can exchange the electronic records stored in theirrespective devices208 and215 such as social profiles, social check-ins, calendar entries, event subscriptions, etc.
Following this, thecalendar engine305 can match the calendar related electronic records to find any events co-attended by theusers110 and112 and create a calendar connection event. The aggregated physical connection events and corresponding calendar connection events can then be used to calculate a level of physical interactions between theusers110 and112, which can be depicted through an interaction strength metric on Chatter, Facebook, or Twitter profiles of theusers110 and112.
In some implementations, theserver225 can request theusers110 and112 to confirm the connectedness between the aggregated physical connection events and corresponding calendar connection events. In some implementations, theserver225 can apply a filter to the calendar connection events and received user identity tokens for identifying particular events such as an important internal meetings or user properties like similar work backgrounds, professional titles, etc.
Observer ToolThedevices208 and215 can establish wireless communications across various channels including audio, video, and text. For example, thedevices208 and215 can communicate with each other over cellular networks including code division multiple-access (CDMA), global system for mobile communications (GSM), Enhanced Data GSM Environment (EDGE), long-term evolution (LTE), etc. Similarly, thedevices208 and215 can establish a wireless local area network (LAN) such as Wi-Fi, personal area network like Bluetooth or NFC, etc. Other communication protocols can also be implemented.
For example, thefirst user110 can interact with asecond user112 on Chatter, but can interact more heavily with thesecond user112 on Facebook or Twitter, or in a social gaming environment such as that provided by Zynga, or can physically or proximally interact with thesecond user112 as evidenced by common check-ins on Foursquare or other location-based social networking systems. In other implementations, interaction strength can also be based upon one or more physical interactions that also implement features common to mobile communication devices, such as smartphones, tablet computers, etc.
Theobserver tool245 can track wireless interactions between theusers110 and112 via thedevices208 and215. It can extract user activity history from web browsers, call logs, applications cache, memory units, etc. to identify—the users in the interaction, the channel communication of the interaction, and the duration of the interaction. This information can then be sent to theserver225, which is in communication with thedevices208 and215 to create connection events. Theserver225 can then calculate a level of wireless interactions based on one or more wireless connection events that can be used to modify the social profiles ofusers110 and112 through an interaction strength metric.
FIG. 8 is aflow chart800 of one implementation of calculating a level of wireless interactions betweenfirst user110 andsecond user112 communicating viafirst device208 andsecond device215. Other implementations may perform the steps in different orders and/or with different, fewer or additional steps than the ones illustrated inFIG. 8. Multiple steps can be combined in some implementations. For convenience, this flowchart is described with reference to the system that carries out a method. The system is not necessarily part of the method.
Atstep805, a wireless connection is established between thedevices208 and215 over audio, video, text communication channel. Following this, theobserver tool245 and a timer is activated to track and time wireless interactions between theusers110 and112 via thedevices208 and215 atstep815. The duration of the connection is recorded atstep825 using the timer and the channel of communication is recorded atstep835. The wireless interactions are filtered atstep845 based on the length and type of the interaction. In some implementations, a gradation is applied to audio, video, text interactions, with video interactions being “strongest”, audio interactions “average” and text interactions “weakest.” In other implementations, the length of the interactions and amount of data transferred during an interaction is considered during gradation. As a result, wireless connection event is created atstep855, which is stored in theconnection event database221. Atstep865, interaction engine329 calculates a level of wireless interactions based on the number and gradation of wireless connection events. Atstep875, the social profiles of theusers110 and112 are modified using an interaction strength metric based on the calculated level of wireless interactions.
FIG. 9 is amessage exchange chart900 of one implementation of some elements ofFIG. 8. Atexchange905,users110 and112 interact across a voice communication channel and the duration of the interaction is reported to theserver225 atexchange909. As a result, the first wireless connection event is created atexchange919. Similarly, an audio interaction and its duration are recorded atexchanges925 and939 to create the second wireless connection event atexchange949. Likewise, at exchange955 a text interaction between theusers110 and112 is recorded and its duration is reported to theserver225 atexchange969. Consequently, the third wireless connection event is created at exchange929. Theserver225 calculates a wireless interactions level atexchange989 on the basis of the count and gradation of received wireless connection events, which is reported to thedevices208 and215 atexchange992.
In a non-limiting example, theobserver tool245 can track interactions between theusers110 and112 made through voice calls, SMSs, and Skype video calls along with their durations. Theobserver tool245 can then upload the tracked interactions to theremote server225, with each upload creating a wireless connection event in theserver225. Using the number and gradation of wireless connection events, theinteraction engine319 can calculate a level of wireless interactions between theusers110 and112. As a result, the Chatter, Facebook, or Twitter profiles of theusers110 and112 can be modified using a interaction strength metric based on the calculated level of wireless interactions.
Some Particular ImplementationsIn one implementation, a system is described for calculating real-world user interactions between first and second users connected in an online social environment that includes a processor and code stored in memory coupled to the processor, which when executed on a processor creates a physical connection event stored in memory that represents contact or likely contact between the first and second users when first and second wireless devices carried by the first and second users establish a peer-to-peer relationship using a direct wireless channel, calculates a level of physical interactions between the first and second users including at least aggregating the plurality of physical connection events, updates the level of physical interactions in memory, and modifies social profiles of the first and second users using an interaction strength metric based on the level of physical interactions.
This system and other implementations of the technology disclosed can each optionally include one or more of the following features and/or features described in connection with additional systems disclosed. In the interest of conciseness, the combinations of features disclosed in this application are not individually enumerated and are not repeated with each base set of features. The reader will understand how features identified in this section can readily be combined with sets of base features identified as implementations.
The system can further include physical connection event to record a duration of connection via the direct wireless channel and a pattern of received signal strength during the connection via the direct wireless channel. It can include the contact or likely contact being filtered by duration of connection and strength of received signal when multiple direct wireless channels are simultaneously active.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further locates a scheduled physical connection by finding a coincidence of scheduling, registration or check-in information in electronic records of the first and second users, creating a calendar connection event, and including in the calculating of the level of physical interactions between the first and second users an aggregation of the plurality of physical connection events.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further confirms interaction strength of the physical connection event based on the calendar connection event, wherein the calendar connection event corresponds in at least time or location to information stored with the physical connection event.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further applies a filtering mechanism to the calendar connection event to identify scheduling, registration or check-in information in electronic records of the second user that meets criteria set by the first user.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further receives from at least one of the first and second users a response to a query confirming connectedness of the physical connection event. It can include the first and second devices that are configured to automatically exchange user identity tokens that are meaningful to an interaction server cooperating with the online social environment.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further receives from at least one of the first and second wireless devices at least one user identity token received in an automatic exchange. It can include the privacy of the user identity tokens to be limited by user selectable privacy criteria.
The system can further include code stored in memory coupled to the processor, which when executed on a processor further applies a filtering mechanism to the user identity tokens to identify user identity information of the second user that meets criteria set by the first user.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to constitute a system as described above. Yet another implementation may include a method performed by the system as described above.
In another implementation, a system is described for calculating real-world user interactions between first and second users connected in an online social environment that includes a processor and code stored in memory coupled to the processor, which when executed on a processor creates a physical connection event stored in memory that represents contact or likely contact between the first and second users using first and second wireless devices sharing a common wireless local area network access point, calculates a level of physical interactions between the first and second users including at least aggregating the plurality of physical connection events, updates the level of physical interactions in memory, and modifies social profiles of the first and second users using an interaction strength metric based on the level of physical interactions.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to constitute a system as described above. Yet another implementation may include a method performed by the system as described above.
In another implementation, a system is system for calculating wireless user interactions between first and second users using wireless devices that includes a processor and code stored in memory coupled to the processor, which when executed on a processor activates an observer tool to track at least an interaction between the first and second users via the first and second wireless devices across at least a video, audio, or text communication channel, creates a wireless connection event stored in memory that represents wireless interactions between the first and second users via first and second wireless devices, calculates a level of wireless interactions between the first and second users including at least aggregating plurality of wireless connection events, updates the level of wireless interactions in memory, and, modifies social profiles of the first and second users using an interaction strength metric based on the level of wireless interactions
This system and other implementations of the technology disclosed can each optionally include one or more additional features described.
The system can further include wireless interactions that are filtered by a duration of interaction and the type of communication channel used for the interaction.
While the present invention is disclosed by reference to the preferred implementations and examples detailed above, it is to be understood that these examples are intended in an illustrative rather than in a limiting sense. It is contemplated that modifications and combinations will readily occur to those skilled in the art, which modifications and combinations will be within the spirit of the invention and the scope of the following claims.
What is claimed is: