The present disclosure relates to social networks.
Social networks facilitate interactions between users in various contexts, such as dating, professional recruiting and networking, and interest-based discussion.
In one aspect, the present disclosure describes a computer-implemented method. In the computer-implemented method, a first association between a first user of a social network and a first role held by the first user is stored, and a second association between a second user of the social network and a second role held by the second user is stored. The first role is different from the second role. A request is received to establish a first type of role-based relationship between the first user and the second user. The first type of role-based relationship is specific to the first role and the second role. An indication of the first type of role-based relationship between the first user and the second user is stored. A database storing a plurality of elements is queried. Each element of the plurality of elements is associated with one or more types of role-based relationships that are specific to roles of users in the role-based relationships, and the plurality of elements includes at least one of user interface elements, application features, operations performable by client devices or requestable by client devices to be performed at a remote server, user images, user statistics, or protected user data. The querying includes selecting, from the plurality of elements, a subset of elements that are associated with the first type of role-based relationship. The subset of elements are provided to a first client device associated with the first user, at least one of the subset of elements being for display in a graphical user interface of the first client device.
Another aspect of the present disclosure describes one or more tangible, non-transitory, computer-readable media. The computer-readable media store instructions that, when executed by a processing system, cause the processing system to perform operations. In the operations, a first association between a first user of a social network and a first role held by the first user is stored, and a second association between a second user of the social network and a second role held by the second user is stored. The first role is different from the second role. A request is received to establish a first type of role-based relationship between the first user and the second user. The first type of role-based relationship is specific to the first role and the second role. An indication of the first type of role-based relationship between the first user and the second user is stored. A database storing a plurality of elements is queried. Each element of the plurality of elements is associated with one or more types of role-based relationships that are specific to roles of users in the role-based relationships, and the plurality of elements includes at least one of user interface elements, application features, operations performable by client devices or requestable by client devices to be performed at a remote server, user images, user statistics, or protected user data. The querying includes selecting, from the plurality of elements, a subset of elements that are associated with the first type of role-based relationship. The subset of elements are provided to a first client device associated with the first user, at least one of the subset of elements being for display in a graphical user interface of the first client device.
Another aspect of the present disclosure describes a computer-implemented system. The computer-implemented system includes one or more computers and one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, cause the one or more computers to perform operations. In the operations, a first association between a first user of a social network and a first role held by the first user is stored, and a second association between a second user of the social network and a second role held by the second user is stored. The first role is different from the second role. A request is received to establish a first type of role-based relationship between the first user and the second user. The first type of role-based relationship is specific to the first role and the second role. An indication of the first type of role-based relationship between the first user and the second user is stored. A database storing a plurality of elements is queried. Each element of the plurality of elements is associated with one or more types of role-based relationships that are specific to roles of users in the role-based relationships, and the plurality of elements includes at least one of user interface elements, application features, operations performable by client devices or requestable by client devices to be performed at a remote server, user images, user statistics, or protected user data. The querying includes selecting, from the plurality of elements, a subset of elements that are associated with the first type of role-based relationship. The subset of elements are provided to a first client device associated with the first user, at least one of the subset of elements being for display in a graphical user interface of the first client device.
Any of these aspects of the disclosure, or other aspects of the disclosure as described herein, may have any one or more of at least the following characteristics.
In some implementations, the subset of elements includes data associated with the second user, and the first user is excluded from obtaining the data associated with the second user in the absence of the first type of role-based relationship.
In some implementations, a trained image classification machine learning model is applied to a set of images associated with the second user. As an output of the trained image classification machine learning model, image classification labels are obtained for images of the set of images. Based on the image classification labels, an association is stored between a first image of the set of images and the first type of role-based relationship. The subset of elements includes the first image.
In some implementations, storing the association between the first image and the first type of role-based relationship is based on an object depicted in the first image.
In some implementations, the subset of elements includes a selectable user interface element.
In some implementations, subsequent to selecting the subset of elements, a user interface is generated including the selectable user interface element. The user interface is provided to the first client device for display on the first client device.
In some implementations, a social network profile of the second user is provided to the first client device and to a second client device associated with the second user. From the first client device, a proposed change to the social network profile is received. The proposed change is indicated on the first client device using a first element of the subset of elements. The social network profile modified to incorporate the proposed change is provided to the second client device. From the second client device, an indication of approval or disapproval of the proposed change is received.
In some implementations, it is determined that an image associated with the second user matches a predetermined criteria. Based on determining that the image associated with the second user matches the predetermined criteria, an association is stored between the image and the first type of role-based relationship. The image is provided to the first client device and to a second client device associated with the second user. The image is included in the subset of elements. A proposed change to the image is received from the first client device. The image is modified to incorporate the proposed change, to obtain a modified image. The modified image is provided to the first client device and the second client device.
In some implementations, the modified image is added to a profile page of the second user.
In some implementations, modifying the image includes modifying the image to incorporate a product proposed by the first user.
In some implementations, a third association is stored between the first user of the social network and a third role held by the first user. The first user holds the first role and the third role simultaneously. A request is received to establish a second type of role-based relationship between the first user and the second user. The second type of role-based relationship is specific to the third role and the second role. An indication is stored of the second type of role-based relationship between the first user and the second user. The second type of role-based relationship exists simultaneously with the first type of role-based relationship. From the plurality of elements, a second subset of elements are selected that are associated with the second type of role-based relationship. The second subset of elements are provided to the first client device.
In some implementations, prior to receiving the request, as inputs to a machine learning model, data of the first user, data of the second user, the first role, and the second role are provided. As an output of the machine learning model, a recommendation to establish the first type of role-based relationship between the first user and the second user is obtained. To at least one of the first user and the second user, the recommendation is sent to establish the first type of role-based relationship between the first user and the second user.
In some implementations, providing the subset of elements to the first client device includes initiating a live communication session between the first client device and a second client device associated with the second user.
In some implementations, the live communication session includes live video communication.
In another aspect, this disclosure describes another computer-implemented method. In the method, data is stored indicating a first relationship between a first user of a social network and a second user of the social network. A request is received to substitute a third user of the social network for the first user in the first relationship. From at least one of a second client device associated with the second user and a third client device associated with the third user, at least one corresponding approval of the request is received. In response to receiving the at least one corresponding approval, data is stored indicating a second relationship between the second user and the third user.
Implementations of this or other methods may have any one or more of at least the following characteristics.
In some implementations, storing the data indicating the second relationship includes initiating the second relationship at a stage matching a latest stage of the first relationship.
In some implementations, the latest stage of the first relationship includes an initial stage, and the method includes providing, to the second client device, a user interface configured to be used to approve or disapprove the second user.
In some implementations, the latest stage of the first relationship includes an approved stage, and the method includes at least one of: enabling network communications between the second user and the third user, or providing, to the second client device associated with the second user, private data of the third user that is inaccessible to the second user in the absence of an approved match between the second user and the third user.
In some implementations, the network communications between the second user and the third user are enabled, and the network communications include live video communication
In some implementations, in response to receiving the at least one corresponding approval, data is stored indicating a cancellation of the first relationship.
In some implementations, the first relationship includes a first role-based relationship specific to a first role held by the first user and a second role held by the second user, and the method includes, prior to receiving the request to substitute the third user. querying a database storing a plurality of users. Each user of the plurality of users is associated with one or more respective roles held by the user, and the querying includes selecting, from the plurality of users, a subset of users that hold the first role. The method includes providing for selection, to a first client device associated with the first user, the subset of users.
Implementations according to this disclosure can provide various advantages. For example, in some implementations, provision of elements is linked to particular roles or role-based relationships, which can decrease computational resource consumption and network transmission burdens. In some implementations, the interactions facilitated by the described role-based processes facilitate improved social matching/interaction efficiency and reduce search space for matching.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other aspects, features and advantages will be apparent from the description and drawings, and from the claims.
This disclosure relates to a role-based social network. Each user of the social network can be associated with one or more roles, and relationships between these roles define displayed interface elements, cooperative profile and image viewing and editing through synchronized user interfaces, and other user interactions.
Users 102a, 102b, 102c are “individual” accounts that are associated with particular people who have registered with the social network. User 102d is a “business” account associated with a company (in this example, an apparel company). Other account types may also be included in the social network 100. For example, a “non-profit” account type may be associated with an advocacy group or charity.
Various types of social network 100 are within the scope of this disclosure. In some implementations, the social network 100 is a dating network. For example, the social network 100 may include user profiles and allow users to match with one another in a user-directed fashion (e.g., by swipe-based approval or disapproval), in an automated fashion (e.g., by automatic matching of compatible users), or in a combination of these ways. In some implementations, the social network 100 is a social network that includes non-dating matching and interaction. For example, the social network may include matching and discussions based around topics of common interest, such as politics and hobbies. The social network may be a “friend”-focused network in which non-romantic matching is included or emphasized. In some implementations, the social network 100 is a professional network that connects workers with one another and with businesses. Workers can list their work history, qualifications, and professional interests, recommend one another for open job positions, be recruited by interested companies, and share interesting commercial articles and comments. These and other social network types can also be combined together. For example, one social network may include both dating and non-dating interaction options, while another social network may combine professional networking with hobby-focused discussions.
Each user 102a, 102b, 102c, 102d is associated with one or more “roles.” On a more granular level than account type, these roles determine the space of operations and interactions available to each user. The social network 100 is “role-based” in that the possible interactions between users are at least partly determined by the respective roles of the users and by the role-based relationships established between them. For example, a given type of interaction may be enabled between role A and role B but disabled between role A and role C. These interactions are represented by role-based relationships defined by the respective roles of the users in the relationships.
In the example of
User 102b has two roles, “matchmaker” and “networker.” The “matchmaker” role indicates that user 102b can enter into matchmaking relationships with match seekers in the social network 100. As described in more detail below, the matchmaking-type role-based relationship allows user interactions including expanded data access and synchronized matchmaking sessions. The “networker” role indicates that user 102b can enter into networking-type role-based relationships with other networkers and with recruiters.
User 102c also has two roles, “match seeker” and “cosmetician.” “Match seeker” allows for dating interactions, as described for user 102a. “Cosmetician” indicates that user 102c can form beauty consulting and/or supply relationships with match seekers, matchmakers, stylists, and other role types. These relationships are role-based relationships that enable interactions defined by the respective other role type, meaning that the interactions allowed by a cosmetician-match seeker relationship may be different from those allowed by a cosmetician-matchmaker relationship.
User 102d's role is “stylist,” indicating that user 102d can enter into apparel consulting and/or supply relationships with match seekers, matchmakers, cosmeticians, and other role types. As for the cosmetician role, these role-based relationships need not be the same regardless of the role type of the other user interacting with the stylist, but rather can vary in form and scope depending on the role of the other user. In addition, user 102d has the account type “business,” indicating that user 102d is associated with a business (e.g., an apparel store or marketplace) rather than with an individual. For example, user 102d can be managed by employees of the business “Fast Fashion, LLC.” Significant flexibility is available for combinations of roles and account types, such that most roles are compatible with most account types. For example, a makeup company may be a user with the role “cosmetician” and account type “business,” while an independent style consultant may be a user with role “stylist” and account type “individual.” Some roles may be particular to some account types. For example, the role “match seeker” may be restricted to individual-type accounts.
The server 204 includes one or more processors 230, bus 232, input/output devices 234 and a network interface circuit 236 to provide connectivity to the network 206. A memory 240 is connected to the bus 232. The memory 240 stores one or more engines 242 with instructions executed by the processor 230 to implement role-based operations. In some implementations, the system 200 includes one or more databases 246 in communication the server 204 that stores information for use by the social network application 222 and/or the engines 242, user profile information, match information, message information, elements and associated role-related information, or other information.
In operation, a user of a client device 202 can create a profile to participate in the social network application 222. The form and content of the profile will depend on the one or more roles assigned to the user. For example, referring to
The form and content of a given profile may depend not only on the role associated with the profile, but also on the role of another user viewing the profile. Different types of information and different types of interactions will tend to be more relevant for different roles, and the profile can be adapted accordingly. For example, as shown in
As shown in
If the stylist or cosmetician viewing the profile 320 would like to request a role-based relationship with the service providing user, they can select interface element 342 and initiate a relationship request process as described in reference to
The different forms of the profile 320 shown in
Role-based relationship requests can be confirmed or rejected by a target of the request. When a first user requests to form a role-based relationship with a second user, the second user is provided with response options, e.g., agreeing to the relationship, rejecting the relationship, initiating a communication channel with the first user, and/or blocking the first user. While some role-based relationships may be free for both users (e.g., dating match relationships between two match seekers), others may require payment to a service providing user. Payment details can be input when the relationship is established and/or may be imported from existing payment details stored by the social network.
For example, as shown in
Many role-based relationships involve payments through a contractual agreement. For example, stylist or cosmetician consultations may charge for their services, and the amounts and types of those services can be configurable. In a matchmaker-match seeker relationship, payment might be contingent on successful matches, dates, or other outcomes. In a role-based relationship between a service provider and a merchandiser such as an apparel store or makeup store, the service provider may be entitled to a percentage of proceeds from clients of the service provider who buy goods from the merchandiser during consultations with the service provider.
Users may therefore be provided with user interfaces that permit discussion of agreements, in-application payment, agreement configuration, and other agreement-related interactions. For example,
In some implementations, most or all aspects of a role-based relationship may be contained within the social network, such that the terms of the role-based relationship can be enforced by the social network. For example, if a matchmaker and a match seeker agree that payment is to be contingent on approval of matches by proposed romantic partners, the matches can be approved or denied within the social network, e.g., by a swipe-based interface, of a social network application corresponding to the social network, in which the match seeker is presented to the proposed romantic partners. When a match is approved, the social network can automatically process a corresponding payment in concordance with the agreed-upon terms of the role-based relationship. For example, the payment may be processed by the server 204. As another example, in a professional social network application, a role-based relationship may be established between an “employer”-role user and a “recruiter”-role user, in which the employer agrees to compensate the recruiter for each recruited “networker”-type user that interviews with the employer after a referral by the recruiter. Both the referrals and the interviews can be performed within the professional social network application, which then interacts with the server 204 to automatically transfer referral fees from the employer to the recruiter upon performance of the interviews.
Automatic execution of agreement terms in the context of role-based relationships can be implemented through smart contracts that monitor activities occurring within the scope of the role-based relationship and automatically execute operations such as payment transfer when agreed-upon conditions for those operations are met. In some implementations, the smart contracts are smart contracts written into blocks of a blockchain. Each user within the social network may correspond to a user on the blockchain, and the role-based relationships may be stored as blockchain transactions and/or smart contracts on the blockchain. In some implementations, at least some instances of the social network application installed on client devices are configured to act as blockchain nodes (e.g., lightweight blockchain nodes) to facilitate smart contract-based enforcement of terms of role-based relationships.
Many different roles may be implemented in various examples of the technologies described in this disclosure, only some exemplary roles being described explicitly herein. Each set (e.g., pair) of different roles or same roles corresponds to one or more role-based relationships that can be established between users having the set of roles, and each role-based relationship is associated with one or more types of role-based interactions that may take place within the scope of the role-based relationship. Some non-limiting examples of these role-based relationships and interactions have been described above, and more non-limiting examples are set forth below.
Many role-based interactions include live role-based sessions. During these sessions, the social network provides client devices associated with the two or more users in the relationship with synchronized, real-time-updating interfaces that can be cooperatively interacted with by the users to jointly carry out operations within the scope of the relationship.
For example, as shown in
When the matchmaker selects a “Suggest Match” icon 536, the match seeker, in real time, receives a notification 540 of the suggested match and may participate in a real-time synchronized interaction with the matchmaker, including discussion of the suggested match. The suggested match can be integrated into an interface 640 on the client device 202b in a familiar fashion, such as being swipeable to indicate approval or disapproval of the match, which may be in keeping with a standard match seeking interface presented to the match seeker outside of the matchmaker-match seeker relationship.
Other aspects of matchmaker-match seeker relationships are also within the scope of this disclosure. For example, in some implementations, when a first user wishes to match with a second user who has a matchmaker-match seeker relationship with a matchmaker, the request from the first user is first routed to the matchmaker for review and approval or disapproval. If the matchmaker approves the request, a chat or other interaction is established between the first user and the second user. Similarly, automated suggested matches for the second user (e.g., suggested matches generated by the social network itself) can be first routed to the matchmaker for approval or disapproval.
Some role-based relationships can involve a review of a user's images. For example, a stylist may review a user's photos to get a sense of the user's general outfit choices and favored fashions. A cosmetologist may review a user's photos to find opportunities for improvements in the user's makeup selections. A matchmaker may review a user's photos to find photos that are particularly flattering or that highlight desirable aspects of the user's personality. Other roles and role-based relationships can involve further image interaction. Selected photos may also be edited in the context of real-time synchronized or asynchronous interactions.
Computer vision and/or machine learning methods may be applied to identify images that are relevant to different rules-based relationships. The user's images can be analyzed (either in advance of a request to obtain images matching a particular criterion, or when the request is received) in an image classification process to identify characteristics of the images. Non-limiting examples of such criteria are: images in which the user is alone or with friends; images in which the user's face is emphasized (e.g., facial portraits of the user); images in which the user's outfit is emphasized (e.g., full-body portraits of the user); images in which the user is dressed in a particular manner, e.g., wearing a suit; or images in which the user is participating in one or more predetermined activities such as giving a lecture or playing a sport.
For example, as shown in
The searched images can be obtained from a variety of sources. Some images may be obtained from an internal database 608 associated with the social network in which the role-based relationship is established. Other images may be obtained from external databases 610 such as separate social networks or applications. In some implementations, users can be prompted to provide access to the separate social networks, e.g., when another user in a role-based relationship with the user selects element 612. The access-providing user can enter login credentials for the other social network, and images can be obtained by the server 204 using an application programming interface (API) or other access interface.
In some implementations, classification-based image provision is used as a basis to restrict image viewing for reasons of data privacy. For example, when a cosmetologist-match seeker relationship is established, the cosmetologist may be provided with facial portraits of the match seeker without being provided the ability to browse the match seeker's entire image library unrestricted and/or without being provided the ability to perform other image classification-based searches of the match seeker's image library. A recruiter may be prevented from viewing images that show a networker user in social settings such as bars. However, in some implementations, users may change configuration settings to remove these limitations and/or to provide access to additional images on an as-desired basis.
The images provided as a result of classification-based image provision can be utilized in a variety of ways within the scopes of different types of role-based relationships. For example, service providers may suggest that a profile be altered to include a provided image. In some implementations, certain service providers may send one or more provided images to a potential match (in the case of a matchmaker-match seeker relationship) or to a potential employer (in the case of a recruiter-networker relationship).
In some implementations, provided images are integrated into real-time synchronized role-based interactions. For example,
An in-application shopping interface 800 is shown in
Referring back to
As part of the stylist-match seeker relationship, the altered image 702 is provided (e.g., in real time) to the client device 202b for viewing by the match seeker. Using interface elements 716, 718, 720, the match seeker may buy the suggested clothing item 704, select an alternative clothing item (e.g., using in-application browsing as described above), or open a chat with the stylist.
As shown in
Interface control 910 allows the service provider to select alternative products to be added to the facial portrait 902. Interface controls 912 allow the users to open a chat interface. Interface control 914 allows the service provider to select an alternative image to be viewed and/or edited from a list of facial portrait images pre-selected by an image classification process performed at the server 204. Interface control 916 allows the service receiver (e.g., the match seeker or networker) to publish the edited image to their profile, and interface control 918 allows the service receiver to be taken to a purchasing interface to buy the specific product that the facial portrait 902 was edited to include.
As is the case for all example interfaces and interactions described in this disclosure, other interface controls and associated operations besides those explicitly disclosed may be included in various implementations within the scope of this disclosure.
In some implementations, interactions described above in the context of real-time synchronized interactions may instead or additionally be implemented not in real-time. For example, already-proposed profile changes may be presented to a match seeker when the match seeker opens their social network application. A cosmetician may edit a user's profile picture without the user being logged in or active at the same time. In a match seeker-match seeker role-based relationship, users may “swipe” each other asynchronously.
Users may have multiple roles that define their possible role-based relationships, and may be in multiple role-based relationship with the same user simultaneously. For example, a recruiter and a networker may have both a “friend”-type role-based relationship and a “job prospect”-type role-based relationship that is established on an as-needed basis when the recruiter wishes to recruit the networker for a particular job. The networker may also be a match seeker able to establish match seeker-match seeker relationships as well as match seeker-service provider relationships (e.g., role-based relationships with cosmeticians and profile consultants). Managing the large number of possible permutations and combinations of roles and role-based relationships may introduce significant complexity into the social network. Therefore, in some implementations, technical aspects of the social network are structured for compatibility with the roles and role-based relationships of the social network.
Some implementations include automated role-based matching between users of different roles based on matching criteria. In automated role-based matching, role-based relationships that can be established are suggested, such as recommending a stylist to a match seeker or recommending a sponsorship relationship between a stylist and an apparel supplier. One or more of the users in the proposed relationship may receive a message or notification allowing them to agree to the relationship, send a match request to another user in the proposed relationship, or otherwise confirm or deny the proposed relationship.
The automated matching may be performed using one or more machine learning models (e.g., of an automated role-based matching engine of the server 204) in a similar manner to romantic relationship matching, with model inputs including past activities of the users, reviews of the users, profile data of the users, existing role-based relationships of the users and users in their social networks, selections by users (e.g., preferred age ranges or service types) and/or other data. For example, a stylist may be recommended to a match seeker based in part on the stylist having previously established role-based relationships with the match seeker's friends. Roles and role-based relationships may be integrated into the training of the machine learning models and operations of the machine learning models. For example, at least some data used to train the models can be labeled with roles of users and role-based relationships that the users participate in. The machine learning models may operate subject to role-related constraints, e.g., recommended relationships between users must be constrained to those role-based relationship types defined by their respective roles.
By incorporating roles into this automated matching process, matching may be performed more efficiently, because the roles constitute an additional parameter upon which matching can be based, and the possible role-based relationships impose constraints such that less useful or less desired pairings can be reduced. This may reduce overall processing and network resources necessary for matching and social network operation, because suggested relationships will, on average, be more likely to succeed, such that fewer matching cycles (with corresponding consumption of processing resources) are necessary. In addition, because automated matching can use roles as a constraint, the search space for role-based matching may be smaller than for non-role-based matching, reducing the processing resources used for each matching operation.
Moreover, because users are able to access services through role-based relationships within the social network environment, their other relationships may progress more successfully/efficiently. For example, a match seeker who has formed a role-based relationship with a stylist may have an improved profile due to the stylist's advice and other services. The match seeker may then be more efficiently matched with other match seekers (for example, other match seekers may be more likely to “swipe right” on the match seeker), and the resulting relationships are then more likely to progress quickly to an offline stage, e.g., offline dating. This reduces processing resource consumption and network resource consumption that would otherwise be needed for the match seeker to continue using online aspects of the social network.
For at least these reasons, role-based matching and role-based relationships represent an improvement to the technology of social network relationship recommendation.
In some implementations, at least some stored data elements (“elements”) of the social network are each be associated with one or more role-based relationships and/or with one or more roles. The elements may include user interface elements such as selectable icons, application features, operations and functions performable by client devices or requestable by client devices to be performed at a remote server, user images, user statistics, protected user data (e.g., user data with restricted view access, such as private information), and/or other data elements. The elements may also include elements representative of users themselves, to store each user's roles and established role-based relationships. Each element may be stored in a database in association with labels for one or more types of role-based relationships and/or roles, and/or each element may include (as data sub-elements of the element) the labels for the types of one or more role-based relationships and/or roles. For example, at least some elements may include a “role” field and/or a “role-based relationship” field (e.g., in a header or metadata of the elements) by which the roles and/or role-based relationships associated with the elements can be identified. In some implementations, the elements may be associated with object classes that mediate the association between types of role-based relationships and/or roles and elements, e.g., in a multiple inheritance arrangement. A variety of organizational frameworks for the association of elements with types of role-based relationships and/or roles are within the scope of this disclosure.
Using these and other data-organizational frameworks in which different roles are built into underlying data elements and relationships between data elements, social network processing efficiency and network resource efficiency can be improved. Interactions between users can be specifically tailored to those interactions that suit their respective roles, such that unnecessary data (e.g., photos that are not relevant to their role-based relationship, application operations beyond the scope of their role-based relationship, and user interface elements that correspond to data and operations beyond the scope of their role-based relationship) are not transmitted to client devices and/or are not subject to unnecessary resource-consuming processing. For example, elements beyond the scope of the role-based relationship may be filtered out preliminarily in a search operation that is allowed in the role-based relationship. Therefore, the technologies of social network data organization and social network data provision can be improved.
When a client device associated with a first user requests elements associated with a second user and/or elements relevant to operations within the scope of one or more role-based relationships between the first user and the second user, servers of the social network (e.g., server 204) identify, from a pool of elements, a subset of elements that are associated with the one or more role-based relationships established between the first user and the second user.
In some implementations, the subset of elements includes images of the second user. For example, the images may have undergone image classification and, as a result, been each associated with one or more role-based relationships and/or roles. The association may be based on recognized elements of the images, recognized settings of the images, time and/or location of capture of the images, and/or other factors. Images may instead or additionally be associated with role-based relationships by other processes. For example, a user may manually label images to be associated or not associated with particular role-based relationships.
In some implementations, the subset of elements includes user interface elements corresponding to operations that fall within the scope of role-based relationships and/or roles. User interface elements to initiate various chats, real-time synchronized interactions, and other interactions are associated with role-based relationships and/or roles and are provided to users when those role-based relationships have been established and/or when the user is associated with the roles. For example, within a portrait consultation as shown in
In operation, as shown in
When elements have been selected, in some implementations a layout engine 1004 combines at least some of the selected user interface elements into a user interface 1006 to be transmitted to the client device 202a. In some implementations, selected elements 1008 besides the user interface 1006 are also transmitted and may be stored locally on the client device 202a until called in the social network application of the client device 202a. For example, otherwise-private statistics or images of a user, available because of an agreed-upon role-based relationship, may be transmitted to the client device 202a and stored in a cache of the client device 202a until needed.
In some implementations, some selected elements that are associated with the relevant role-based relationship are not immediately transmitted to the client device 202a but rather are recorded at the server 204 to be called later. For example, these elements may be prepared in a cache or other storage 1012 coupled to the server 204 for quick retrieval at a later point in time. In some implementations, a storage structure of the storage 1012, server 204, or database 246 is updated to facilitate quick retrieval of the elements. For example, a database index or table index may be updated to reflect the relevant role-based relationships and roles, such that elements within the scope of the role-based relationships and roles can be retrieved more quickly in the future.
The layout engine 1004 may use hard-coded layout rules, machine learning algorithms, or a combination thereof to present the selected user interface elements in a manner that preserves user experience. For example, an order and location of a first user interface element may be kept consistent even while one or more other user interface elements are either present or not present in the user interface 1006. Performing the element selection and/or user interface generation processes at the server 204 may reduce total network transmission loads, because only the relevant elements are transmitted to the client device 202a: network transmission resources are not wasted on assets that will not be utilized because they are outside the scope of roles or role-based relationships. In addition, because elements are effectively filtered at the server 204 before transmission to the client device 202a, the chances of data security violations (e.g., packet interception to obtain elements that are not within the scope of existing role-based relationships) may be reduced.
As noted throughout this disclosure, in some implementations, elements may be associated not only with particular role-based relationships but also, or instead, with particular roles. For example, in some implementations, users with certain roles may be provided with additional information about some other users, even in the absence of a particular role-based relationship with the other users. The “take-up rate” of
In some implementations, a social network may include marketplace features that facilitate forming role-based relationships. The server can provide client devices with reviews of users with various roles, recommendations for users with whom to form role-based relationships, discounts and other benefits to encourage forming role-based relationships, and/or other information. The marketplace can also host payment functions to facilitate user-to-user payments that can be associated with certain role-based relationships.
In some implementations, the server 204 includes an agent engine that functions as an automated user performing the operations of one or more roles. For example, the agent engine may function as an automated recruiter and profile consultant user that, with users' assent, can provide the users with suggested job openings and proposed improvements to the users' professional profiles, as would be done by a human recruiter user and/or profile consultant user. Payment for services performed by automated users can be provided to the social network itself.
Although much of this disclosure has described interactions between two users in a two-user role-based relationship, aspects of role-based social networks can encompass relationships between single users and groups of users, and/or between groups of users and other groups of users. For example, rather than consulting with one stylist, a match seeker may form a group role-based relationship with a group of stylists, such as a group of stylists associated with a business. Each stylist may interact with the match seeker singly, and/or joint simultaneous interactions between the user and multiple stylists of the group of stylists can be facilitated by the social network through appropriate interfaces of the application.
In some implementations, the social network imposes restrictions on role-based relationships. For example, each match seeker may be restricted to a single matchmaker-match seeker relationship at any one time.
In some implementations, the social network provides an API 1020 with which third party entities can interact to integrate into role-related aspects of the social network. The API 1020 may be integrated into the server 204 or deployed external to the server 204. For example, third party entities can become business users on the social network, such as user 102d of
Automated users need not be operated by the social network itself. Rather, in some implementations, third party entities may interact with the API 1020 to set up their own automated users having one or more roles. These automated users can enter into at least some role-based relationships as described throughout this disclosure, e.g., as service providers. Rule-based engines, machine learning-based engines, or both rules-based and machine learning-based engines can interact with the server 204 through the API 1020, and/or the engines can be provided through the API 1020 for deployment, e.g., deployment on the server 204. The engines behave as automated users on behalf of the third-party entities providing the engines. For example, an apparel business may provide an automated stylist user configured to enter into match seeker-stylist relationships and suggest purchases from the apparel business.
Automated users may be conspicuously marked, e.g., on their profiles, so that users entering into role-based relationships with the automated users are aware of their automated nature.
Some implementations of the social network include a substitutional matching system. The substitutional matching system may be used in conjunction with a role-based system as described throughout this disclosure, or may be used in other social network implementations that do not include a role-based system.
In a substitutional matching system, at least some users who are subjects of a matching process can, after being matched with a second user (e.g., after agreeing to a match with the second user and/or after being proposed a match with the second user), substitute a third user for themselves, allowing the third user to interact with the second user as if the third user had been initially matched with the second user. The third user has an existing relationship with the first user, e.g., is a friend of the first user in the social network or another social network. For example, a first user may recognize that their friend would make a better romantic match to a second user than would the first user, even though the first user has been matched with the second user by a matchmaker or by an automated matching engine. In such a situation, the first user may be provided with an interface by which the first user can send substitution request messages to the friend and/or to the second user, to receive approval from the friend and/or the second user to make a match substitution. Upon successful approval, the social network makes a substitutional match between the friend and the second user, e.g., opens communication between the friend and the second user and/or allows a greater degree of profile visibility between the friend and the second user.
For example, as shown in
The matching interface (e.g., initial matching interface 1110) includes a substitution element 1118 by which the first user may initiate a substitution proposal process performed using a substitution engine 1117. As shown in
Using interface elements 1124, 1126, the second user 1112 and the third user 1128 may confirm or deny the proposed substitution. In some implementations, both the second and third users 1112, 1128 must agree to the substitution in order to establish the substitution. In some implementations, only the second user 1112 or only the third user 1128 is asked to confirm or deny the substitution.
In some implementations, if the substitution is denied, the match or proposed match between the first user and the second user 1112 is also canceled. For example, the first user and the second user 1112 may be automatically unmatched, or a proposed match between the first user and the second user 1112 may be revoked, e.g., by removing the second user 1112 from a list of possible matches to be browsed by the first user, or by preventing network communication between the first user and the second user 1112.
If the substitution is approved, then a match or a proposed match is established between the second user 1112 and the third user 1128. In some implementations, the substitutional match is initiated at a stage that matches a latest stage of the match between the first user and the second user 1112 when the substitutional match was proposed. For example, if the substitution process occurs at an initial matching stage (e.g., when the first user has been presented with a swipable profile of the second user 1112 but has not yet approved the match with a right swipe), then the match between the second user 1112 and the third user 1128 may be initiated at that same initial matching stage, e.g., the third user 1128 may be presented with a swipable profile of the second user 1112. As another example, if the first user and the second user 1112 have already agreed to a match between one another, then, when the substitutional match is approved, the second user 1112 and the third user 1128 may be placed at that same matched relationship stage and be provided with corresponding social network elements, e.g., chatting and full profile viewing.
In some implementations, a substitutional match is initiated at a stage different from that of a stage of the match from which the substitution was proposed. Even if the first user and the second user 1112 have already agreed to a match between one another, the substitutional match between the second user 1112 and the third user 1128 may be initiated at an earlier (e.g., initial) matching stage. For example, the second user 1112 may be presented with a swipable profile of the third user 1128 that can be approved or disapproved, even though the second user 1112 has already approved the first user by swiping.
A substitutional match may, but need not, replace the match from which the substitution is proposed. In some implementations, if the substitution is approved, the initial match (e.g., the match between the first user and the second user 1112) is automatically canceled. In some implementations, the initial match is maintained even if the substitution is approved. In some implementations, the initial match is canceled whether or not the substitution is approved, e.g., even if the second user 1112 and/or the third user 1128 denies the substitution; the proposal of the substitution may be interpreted as an indication that the initial match is unsatisfactory.
In many cases, because the user proposing the substitution has an existing relationship with the substituting user, the substitutional match is expected to be relatively successful, e.g., because of known compatibilities between the users in the substitutional match. While some of these compatibilities may be known by the social network such that they are accounted for during automated or non-automated matchmaking, other compatibilities may be unknown to the social network but nevertheless relevant to a successful match, such as a recent break-up, a new hobby, or a niche shared interest. Because the substitutional match may be made on the basis of these characteristics, the match may be expected to be relatively successful, e.g., more successful than an average automated match. The substitutional match may therefore be more likely to progress quickly to an offline stage, e.g., offline dating. This reduces processing resource consumption and network resource consumption that would otherwise be needed for the users in the substitutional match to continue using online aspects of the social network.
In some implementations, a substitutional matching system is integrated together with a role-based system as described in this disclosure. For example, in some implementations, substitutions are restricted based on user roles. A first user may be allowed to propose substitutions only with users having a same role as the first user, e.g., a match seeker may propose to replace themselves with only another match seeker, or a stylist may propose to replace themselves with only another stylist. In the context of a role-based relationship, this arrangement maintains the type of role-based relationship of the initial match into the substitutional match. Regulation of substitution requests may be regulated in a role-based system as described for other role-based interactions in this disclosure, e.g., as described in reference to
As shown in
As shown in
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable processing system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” or “computer-readable medium” refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to one or more programmable processors, including a machine-readable medium that receives machine instructions.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback). Input from the user can be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
This specification uses the term “configured” in connection with systems and computer program components. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by the data processing apparatus, cause the apparatus to perform the operations or actions.
Although a few implementations have been described in detail above, other modifications are possible. Logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other actions may be provided, or actions may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
This application claims priority under 35 USC § 119(e) to U.S. Patent Application Ser. No. 63/256,842, filed on Oct. 18, 2021, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
63256842 | Oct 2021 | US |