Content sharing platform profile generation
By dynamically creating profile designs in the content sharing platform, including relationship information, common activities, etc., the problem of limited user profile information in the existing technology is solved, the dynamic and personalization of user profiles is realized, and the user interaction experience is improved. and content sharing efficiency.
Patent Information
- Application Number
- CN202411525980.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-06-28
- Filing Date
- 2019-06-27
- Publication Date
- 2025-02-14
AI Technical Summary
When generating and displaying user profiles, the existing content sharing platform has limited information, lacks dynamicity and personalization, and cannot fully reflect the user's relationships and interests.
By dynamically creating profile designs in the content sharing platform, including relationship information, common activities, relationship types, user compatibility, interests, etc., users are allowed to highlight favorite media content items and increase the incentive for users to create media content items.
It realizes the dynamic and personalization of user profiles, can more comprehensively display users' relationships and interests, and improves users' interactive experience and content sharing efficiency in the platform.
Smart Images

Figure CN119444465A_ABST
Abstract
Description
[0001] This application is a divisional application of a patent application with an application date of June 27, 2019, application number 201980042655.6, and invention name “Content Sharing Platform Profile Generation”. Background Art
[0002] The content sharing platform may receive millions of messages from users who wish to share media content such as audio, images, and video between user devices (e.g., mobile devices, personal computers, etc.). The media content of these messages may be associated with a common geographic location, a common time period, a common event, etc. Users of the content sharing platform may include a variety of different demographics (e.g., age, gender, location), may have various preferences for content, may have various levels of social activity, etc. BRIEF DESCRIPTION OF THE DRAWINGS
[0003] The various figures in the drawings depict only example embodiments of the present disclosure and should not be considered limiting of its scope.
[0004] Figure 1 is a block diagram illustrating an example messaging system for exchanging data (eg, messages and related content) over a network, according to some example embodiments.
[0005] Figure 2 is a block diagram showing more details regarding a messaging system according to some example embodiments.
[0006] Figure 3 is a schematic diagram illustrating data that may be stored in a database of a messaging server system according to some example embodiments.
[0007] Figure 4 is a schematic diagram illustrating the structure of a message generated by a messaging client application for communication according to some embodiments.
[0008] Figures 5A-5C An example graphical user interface is shown in accordance with some example embodiments.
[0009] Figure 6-8 An example graphical user interface is shown in accordance with some example embodiments.
[0010] Fig. 9 is a flow chart illustrating aspects of a method according to some example embodiments.
[0011] Figures 10A-10C An example graphical user interface is shown in accordance with some example embodiments.
[0012] Figure 11-15 An example graphical user interface is shown in accordance with some example embodiments.
[0013] Fig.16 is a block diagram illustrating an example of a software architecture that may be installed on a machine according to some example embodiments.
[0014] Fig.17 A diagrammatic representation of a machine in the form of a computer system according to an example embodiment is shown within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein. DETAILED DESCRIPTION
[0015] The systems and methods described herein relate to generating and displaying profile data for users and publishers in a content sharing platform. Traditionally, profile information for a user may only include limited information for the user, such as the user's name or image. Example embodiments allow for dynamic creation of profile designs for users, users associated with other users (e.g., friends), and publishers of content. Therefore, instead of static identities, example embodiments allow profiles to include relationship information, common activities between users in a content sharing platform (e.g., message exchanges, access to shared media content items, content or data from messages or media content items, etc.), relationship types (e.g., friends, acquaintances, mutual friends, etc.), compatibility between users (e.g., according to astrology, constellations, common interests, etc.), common authoring tools (e.g., media overlays), locations or distances between users, common groups, etc. Example embodiments can further inspire users to create media content items (e.g., images and videos) by allowing favorite media content items to be highlighted and making it easy to access more content from publishers. Example embodiments create a more efficient system for communicating between computing devices and sharing messages and media content items.
[0016] For example, a user may request access to a second user profile via a first computing device. A server system (e.g., a profile generation system or a messaging system) receives a request to access a second user profile in a content sharing platform. The server system accesses activity data associated with both a first user and a second user in the content sharing platform, and determines common activity data for both the first user and the second user. For example, the common activity data may include at least one media content item generated by the second user, viewed or saved by the first user, or one or more data saved by the first user from a communication received from the second user. The server system generates second user profile data as part of a second user profile, the second user profile data also including common activity data associated with both the first user and the second user in the content sharing platform, and causes a second user profile including common activity data associated with both the first user and the second user in the sharing platform to be displayed.
[0017] Figure 11 is a block diagram illustrating a networked system 100 (eg, a messaging system) for exchanging data (eg, messages and associated content) over a network. In one example, the networked system 100 is a content sharing platform.
[0018] The networked system 100 includes a plurality of client devices 110, each of which hosts a plurality of client applications 114. Each client application 114 is communicatively coupled to other instances of the client application 114 and a server system 108 via a network 104.
[0019] The client device 110 may include, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a personal digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a notebook computer, a multiprocessor system, a microprocessor-based or programmable consumer electronic system, a game console, a set-top box, a vehicle computer, a wearable device, or any other communication device that a user can use to access the networked system 100. In some embodiments, the client device 110 may include a display module (not shown) that displays information (e.g., in the form of a user interface). In further embodiments, the client device 110 may include one or more of a touch screen, an accelerometer, a gyroscope, a camera, a microphone, a global positioning system (GPS) device, etc.
[0020] The client device 110 may be a device for a user to create media content items such as videos, images (e.g., photos), and audio, and to send and receive messages containing such media content items, text, etc. to other users. The client device 110 may be a device for a user to create and edit media overlays, create and access multiple media collections. The client device 110 may be a device for a user to generate profile information for the user, profile information of other users associated with the user, and profile information of publishers of content.
[0021] The one or more users may be people, machines, or other devices that interface with the client device 110. In an example embodiment, the user may not be part of the networked system 100, but may interface with the networked system 100 via the client device 110 or other device. For example, the user may provide input (e.g., touch screen input or alphanumeric input) to the client device 110, and the input may be communicated to other entities in the networked system 100 (e.g., third-party servers, server system 108, etc.) via the network 104. In this example, in response to receiving the input from the user, the other entities in the networked system 100 may communicate information to the client device 110 via the network 104 for presentation to the user. In this manner, the user may interface with various entities in the networked system 100 using the client device 110.
[0022] The networked system 100 may also include a network 104. One or more portions of the network 104 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a WI-FI network, a WiMax network, another type of network, or a combination of two or more such networks.
[0023] Client device 110 may access the Internet via a network client (e.g., a browser, such as Internet Explorer 10 developed by Microsoft Corporation of Redmond, Washington). The client device 110 may include one or more client applications 114 (also referred to as "applications"), such as, but not limited to, a web browser, a messaging application, an electronic mail (email) application, an e-commerce website application, a mapping or positioning application, a media overlay application, an interactive messaging application, etc.
[0024] In some embodiments, one or more client applications 114 may be included in a given one of the client devices 110 and configured to provide a user interface and at least some functionality locally, wherein the client application 114 is configured to communicate with other entities in the networked system 100 (e.g., third-party servers, server system 108, etc.) on an on-demand basis for data and / or processing capabilities that are not available locally (e.g., to process user queries, authenticate users, verify payment methods, etc.). Conversely, one or more client applications 114 may not be included in the client device 110, and the client device 110 may then use its web browser to access one or more applications hosted on other entities in the networked system 100 (e.g., third-party servers, server system 108, etc.).
[0025] In one example, the client application 114 can be a messaging application (e.g., as the messaging client application 114 referenced below) that allows a user to take a photo or video, add a caption to the photo or video, or otherwise edit the photo or video, and then send the photo or video (e.g., media content item) to another user. In one example, the message (e.g., media content item) can be ephemeral and removed from the receiving user device after viewing or after a predetermined amount of time (e.g., 10 seconds, 24 hours, etc.). An ephemeral message refers to a message that is accessible within a time-limited duration. An ephemeral message can be text, images, videos, and other such content that can be merged together according to the embodiments described herein. The access time of an ephemeral message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technology, the message is temporary.
[0026] The messaging application may also allow users to create galleries or collections of messages (also referred to herein as "media collections"). A gallery may be a collection of photos and videos viewed by other users who are "following" the user's gallery (e.g., subscribed to view and receive updates in the user's gallery). In one example, a gallery may also be ephemeral (e.g., lasting 24 hours, lasting for the duration of an event (e.g., during a concert, sporting event, etc.), or lasting another predetermined time).
[0027] The ephemeral message may be associated with a message duration parameter, the value of which determines the amount of time that the ephemeral message will be displayed to the recipient user of the ephemeral message by the client application 114. The ephemeral message may also be associated with a message recipient identifier and a message timer. The message timer may be responsible for determining the amount of time that the ephemeral message is displayed to a specific recipient user identified by the message recipient identifier. For example, the ephemeral message may be displayed to the associated recipient user only during a time period determined by the value of the message duration parameter.
[0028] In another example, a messaging application may allow a user to store photos and videos and create a gallery that is not ephemeral and can be sent to other users. For example, a user may assemble photos and videos from a recent vacation to share with friends and family.
[0029] The server system 108 may provide server-side functionality to one or more client devices 110 and / or one or more third-party servers (not shown) via a network 104 (e.g., the Internet or a wide area network (WAN)). The server system 108 may include an application programming interface (API) server 102, an application server 112, a messaging application server 116, a media content processing system 118, a social networking system 122, and a profile generation system 128, which may be communicatively coupled to each other and to one or more data storage devices (such as a database 120).
[0030] According to some example embodiments, the server system 108 may be a cloud computing environment. In one example embodiment, the server system 108, and any servers associated with the server system 108, may be associated with a cloud-based application.
[0031] The one or more databases 120 may be storage devices that store information such as: unprocessed media content, original media content from a user (e.g., high-quality media content), processed media content (e.g., media content formatted to be shared with and viewed on a client device 110), contextual data associated with media content items, contextual data associated with a user device (e.g., a computing or client device 110), media overlays, media overlay smart gadgets or smart elements, user data, user device information, media content (e.g., videos and images), media content data (e.g., data associated with videos and images), computing device contextual data, serialized data, session data items, user profile data, publisher profile data, etc. The one or more databases 120 may also store information associated with third-party servers, third-party applications, client devices 110, client applications 114, users, etc.
[0032] The one or more databases 120 may include cloud-based storage devices external to the server system 108 (e.g., hosted by one or more third-party entities external to the server system 108). Although the storage device is illustrated as a database 120, it should be understood that the networked system 100 may access and store data in a storage device, such as a database 120, a cloud storage device, and other types of storage methods.
[0033] The networked system 100 may also include one or more third-party servers (not shown). The one or more third-party servers may include one or more third-party applications. The one or more third-party applications executed on the third-party servers may interact with the server system 108 via the API server 102 via a programming interface provided by the API server 102. For example, one or more of the third-party applications may request and utilize information from the server system 108 via the API server 102 to support one or more features or functions on a website hosted by a third party or an application hosted by a third party. The third-party website or application may, for example, provide functionality supported by related functions and data in the server system 108.
[0034] Thus, each client application 114 is able to communicate and exchange data with other client applications 114 and server systems 108 via the network 104. Data exchanged between client applications 114 and data exchanged between client applications 114 and server systems 108 include functionality (e.g., commands to call functions) and payload data (e.g., text, audio, video, or other multimedia data).
[0035] The server system 108 provides server-side functionality to certain client applications 114 via the network 104. Although certain functions of the networked system 100 are described herein as being performed by either the client application 114 or by the server system 108, it should be understood that the location of certain functions in the client application 114 or the server system 108 is a design choice. For example, it may be technically preferable to first deploy certain technologies and functions within the server system 108 and then migrate the technologies and functions to the client application 114 where the client device 110 has sufficient processing power.
[0036] The server system 108 supports various services and operations provided to the client applications 114. Such operations include sending data to the client applications 114, receiving data from the client applications 114, and processing data generated by the client applications 114. As examples, the data may include message content, client device information, geo-location information, media annotations and overlays, message content persistence conditions, social network information, live event information, date and time stamps, media content (e.g., videos and images), media content data (e.g., data associated with videos and images), and user data. The data exchange in the networked system 100 is invoked and controlled by functions available through the user interface (UI) of the client applications 114.
[0037] In server system 108, API server 102 is coupled to and provides a programming interface to application server 112. Application server 112 is communicatively coupled to database server 124, which facilitates access to one or more databases 120 in which data associated with messages processed by application server 112 is stored.
[0038] The API server 102 receives and sends message data (e.g., commands and message payloads) between the client device 110 and the application server 112. Specifically, the API server 102 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the client application 114 in order to invoke functions of the application server 112. The API server 102 exposes various functions supported by the application server 112, including: account registration; login functionality; sending messages from a particular client application 114 to another client application 114 via the application server 112; sending media files (e.g., images or videos) from a client application 114 to a messaging application server 116 for possible access by another client application 114; setting of collections of media data (e.g., galleries, stories, message collections, or media collections); retrieval of such collections; retrieval of a friend list of a user of the client device 110; retrieval of messages and content; adding and removing friends from a social graph; the position of friends in a social graph; opening application events (e.g., associated with the client application 114), etc.
[0039] The application server 112 hosts multiple applications and subsystems, including a messaging application server 116, a media content processing system 118, a social networking system 122, and a profile generation system 128. The messaging application server 116 implements multiple message processing technologies and functions, which particularly relate to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of the client application 114. Text and media content from multiple sources can be aggregated into collections of content (e.g., referred to as stories, galleries, or media collections). The messaging application server 116 then makes these collections available to the client application 114. Given the hardware requirements of such processing, other processor- and memory-intensive processing of data can also be performed on the server side by the messaging application server 116.
[0040] The application server 112 also includes a media content processing system 118 that is dedicated to performing various media content processing operations, typically with respect to images or videos received within the payload of messages at the messaging application server 116. The media content processing system 118 may access one or more data storage devices (e.g., database 120) to retrieve stored data for use in processing media content and to store the results of the processed media content.
[0041] The social networking system 122 supports various social networking functions and services and makes these functions and services available to the messaging application server 116. To this end, the social networking system 122 maintains and accesses the entity graph 304 ( Figure 3 ). Examples of functionality and services supported by the social networking system 122 include identifying other users of the networking system 100 with whom a particular user has a relationship or with whom the particular user is "following," as well as also identifying other entities and interests of a particular user.
[0042] The messaging application server 116 may be responsible for generating and delivering messages between users of the client devices 110. The messaging application server 116 may utilize any of a number of messaging networks and platforms to deliver messages to users. For example, the messaging application server 116 may deliver messages using electronic mail (email), instant messaging (IM), short message service (SMS), text, fax, or voice (e.g., voice over IP (VoIP)) messages via a wired network (e.g., the Internet), a plain old telephone service (POTS), or a wireless network (e.g., mobile, cellular, WIFI, long term evolution (LTE), or Bluetooth).
[0043] The profile generation system 128 supports various functions related to generating and updating profile information for users and publishers, as described in more detail below.
[0044] Figure 2 2 is a block diagram 200 showing more details about the networked system 100 according to an example embodiment. Specifically, the block diagram 200 is shown to include the messaging client application 114 and the application server 112, which in turn embody multiple subsystems, namely, the transient timer system 202, the collection management system 204, and the annotation system 206.
[0045] The transient timer system 202 is responsible for enforcing temporary access to content permitted by the messaging client application 114 and the messaging application server 116. To this end, the transient timer system 202 incorporates a plurality of timers that selectively display and enable access to messages and associated content via the messaging client application 114 based on duration and display parameters associated with the message, or a collection of messages (e.g., otherwise referred to herein as a media collection, gallery, message collection, story, etc.).
[0046] The collection management system 204 is responsible for managing collections of media (e.g., collections of text, images, video, and audio data), otherwise referred to herein as "media collections." In some examples, collections of content (e.g., messages including images, videos, text, and audio) may be organized into "event galleries" or "event stories." Such collections may be available for a specified period of time (e.g., the duration of an event to which the content is related). For example, content related to a concert may be available as a "story" for the duration of the concert. The collection management system 204 may also be responsible for publishing an icon that provides notification of the existence of a particular collection to the user interface of the messaging client application 114.
[0047] The collection management system 204 also includes a curation interface 208 that allows a collection manager to manage and curate a particular collection of content. For example, the curation interface 208 enables an event organizer to curate a collection of content related to a particular event (e.g., to remove inappropriate content or redundant messages). In addition, the collection management system 204 uses machine vision (or image recognition technology) and content rules to automatically curate content collections. In some embodiments, compensation (e.g., currency, non-monetary credits or points associated with a messaging system or a third-party reward system, travel miles, access to artwork or special lenses, etc.) may be paid to a user for including user-generated content in a collection. In this case, the curation interface 208 operates to automatically pay fees to such users for using their content.
[0048] The annotation system 206 provides various functions that enable users to annotate or otherwise modify or edit media content associated with a message. For example, the annotation system 206 provides functions related to generating and publishing media overlays for messages processed by the networking system 100. In one example, the annotation system 206 operably provides media overlays (e.g., filters or media enhancements) to the messaging client application 114 based on the geographic location of the client device 110. In another example, the annotation system 206 operably provides media overlays to the messaging client application 114 based on other information (e.g., social network information of the user of the client device 110). The media overlay may include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects may be applied to media content items (e.g., photos) at the client device 110. For example, the media overlay includes text that can be superimposed on a photo taken by the client device 110. In another example, the media overlay includes an identification of a location overlay (e.g., Venice Beach), the name of a live event, or the name of a business overlay (e.g., a beach cafe). In another example, the annotation system 206 uses the geographic location of the client device 110 to identify a media overlay that includes the name of a business at the geographic location of the client device 110. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 120 and may be accessed by the database server 124.
[0049] The annotation system 206 may also enable users to interact with interactive messages, such as by adding one or more media content items to the interactive message as described in more detail below. In one example embodiment, the annotation system 206 provides a publishing platform that allows users or businesses to create interactive messages with multiple objects associated with the interactive message to which users can add personal content. For example, a designer may create a video of a rock band with various interactive objects for different members of the band (drummer, keyboardist, guitarist, etc.). The video of the rock band is available to users as an interactive message.
[0050] In one example embodiment, the annotation system 206 provides a user-based publishing platform that enables users to select a geographic location on a map and upload content associated with the selected geographic location. Users can also specify under what circumstances specific media overlays should be provided to other users. The annotation system 206 generates a media overlay including the uploaded content and associates the uploaded content with the selected geographic location.
[0051] In another example embodiment, the annotation system 206 provides a merchant-based publishing platform that enables merchants to select specific media overlays associated with geographic locations through a bidding process. For example, the annotation system 206 associates the media overlays of the merchant with the highest bid with the corresponding geographic location within a predetermined amount of time.
[0052] Figure 3 is a schematic diagram 300 illustrating data that may be stored in database 120 of server system 108 according to certain example embodiments. Although the contents of database 120 are illustrated as including a plurality of tables, it should be appreciated that data may be stored in other types of data structures, such as an object-oriented database.
[0053] The database 120 includes message data stored in a message table 314. The entity table 302 stores entity data including an entity graph 304. The entities whose records are maintained within the entity table 302 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the type, any entity about which the server system 108 stores data may be a recognized entity. Each entity has a unique identifier and an entity type identifier (not shown).
[0054] The entity graph 304 also stores information about relationships and associations between entities. Such relationships can be social, professional (e.g., working in the same company or organization), interest-based, or activity-based, just to name a few.
[0055] Database 120 also stores annotation data in the form of examples of media overlays or filters in annotation table 312. Annotation data may also be referred to herein as "creative tools" or "interactive features." Annotation data may include predefined interactive messages to be provided to the user.
[0056] The media overlay or filter for which data is stored in the annotation table 312 is associated with a video (for which data is stored in the video table 310) and / or an image (for which data is stored in the image table 308) and is applied to the video and / or image. In one example, a filter is an overlay that is displayed as an overlay on an image or video during presentation to a recipient user. The filter can be of various types, including a user-selected filter from a filter library presented to a sender user by the messaging client application 114 when the sender user is composing a message. Other types of filters include geographic location filters (also referred to as geo-filters) that can be presented to a sender user based on a geographic location. For example, based on geographic location information determined by a GPS unit of a client device 110, a messaging client application 114 can present a neighborhood or specific location-specific geo-location filter within a user interface. Another type of filter is a data filter, which can be selectively presented to a sender user by the messaging client application 114 based on other inputs or information collected by the client device 110 during the message creation process. Examples of data filters include the current temperature at a particular location, the current speed at which the sending user is traveling, the battery life of the client device 110, or the current time.
[0057] Other annotation data that may be stored in the annotation table 312 is so-called "shot" data. A "shot" may be real-time special effects and sounds that may be added to an image or video.
[0058] As described above, the video table 310 stores video data, which in one embodiment is associated with the message for which it is recorded and maintained in the message table 314. Similarly, the image table 308 stores image data associated with the message for which the message data is stored in the message table 314. The entity table 302 may associate various annotations from the annotation table 312 with the various images and videos stored in the image table 308 and the video table 310.
[0059] The story table 306 stores data related to a collection of messages and associated images, video, or audio data that are compiled into a collection (e.g., a story, gallery, or media collection). The creation of a particular collection may be initiated by a particular user (e.g., any user for whom a record is maintained in the entity table 302). A user may create a "personal story" in the form of a collection of content that the user has created and sent / broadcasted. To this end, the user interface of the messaging client application 114 may include a user-selectable icon to enable the sending user to add specific content to his or her personal story.
[0060] A collection of media or messages may also constitute a "live story," which is a collection of content from multiple users that is created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" may consist of a curated stream of user-submitted content from various locations and events. For example, a user whose client device 110 has location services enabled and who is at a common event location at a particular time may be presented with an option via the user interface of the messaging client application 114 to contribute content to a particular live story. The live story may be identified to the user by the messaging client application 114 based on his or her location. The end result is a "live story" told from the perspective of the community.
[0061] Another type of content collection is called a "location story," which enables users whose client devices 110 are located within a particular geographic location (e.g., on a college or university campus) to contribute to a particular collection. In some embodiments, contributions to location stories may require secondary authentication to verify that the end user belongs to a particular organization or other entity (e.g., is a student on a university campus).
[0062] Figure 4 is a schematic diagram illustrating the structure of a message 400 generated by a client application 114 for communication with another client application 114 or a messaging application server 116 according to some embodiments. The content of a particular message 400 is used to populate a message table 314 stored in a database 120 accessible to a messaging application server 116. Similarly, the content of the message 400 is stored in memory as "in-transit" or "in-flight" data of a client device 110 or an application server 112. The message 400 is shown as including the following components:
[0063] Message identifier 402 : a unique identifier that identifies the message 400 .
[0064] Message text payload 404 : The text to be generated by the user through the user interface of the client device 110 and included in the message 400 .
[0065] Message image payload 406 : Image data captured by a camera component of the client device 110 or retrieved from the memory of the client device 110 and included in the message 400 .
[0066] Message video payload 408 : Video data captured by a camera component or retrieved from a memory component of the client device 110 and included in the message 400 .
[0067] Message audio payload 410 : audio data captured by a microphone or retrieved from a memory component of the client device 110 and included in the message 400 .
[0068] Message annotation 412: Annotation data representing an annotation (eg, a media overlay such as a filter, sticker, or other enhancement) to be applied to the message image payload 406, the message video payload 408, or the message audio payload 410 of the message 400.
[0069] Message duration parameter 414: A parameter value indicating the amount of time, in seconds, that the content of message 400 (eg, message image payload 406, message video payload 408, and message audio payload 410) is to be presented to or made accessible to the user via messaging client application 114.
[0070] Message geolocation parameters 416: Geolocation data (e.g., latitude and longitude coordinates) associated with the content payload of the message 400. Multiple message geolocation parameter 416 values may be included in the payload, with each of these parameter values being associated with a respective content item included in the content (e.g., a specific image in the message image payload 406, or a specific video in the message video payload 408).
[0071] Message story identifier 418: An identification value that identifies one or more content collections (e.g., "stories") associated with a particular content item in the message image payload 406 of the message 400. For example, multiple images within the message image payload 406 may each be associated with multiple content collections using an identifier value.
[0072] Message tags 420: Each message 400 may be tagged with a plurality of tags, each tag indicating the subject of the content included in the message payload. For example, where a particular image included in the message image payload 406 depicts an animal (e.g., a lion), a tag value indicating the relevant animal may be included within the message tags 420. The tag values may be manually generated based on user input, or may be automatically generated using, for example, image recognition.
[0073] • Message sender identifier 422: An identifier (eg, a messaging system identifier, an email address, or a device identifier) that indicates the user of the client device 110 on which the message 400 was generated and from which the message 400 was sent.
[0074] • Message recipient identifier 424: Indicates an identifier (eg, a messaging system identifier, an email address, or a device identifier) of the user of client device 110 to which message 400 is addressed.
[0075] The content (e.g., value) of each component of message 400 may be a pointer to a location in a table storing content data values. For example, the image value in message image payload 406 may be a pointer (or address) to a location in image table 308. Similarly, the value in message video payload 408 may point to data stored in video table 310, the value stored in message annotation 412 may point to data stored in annotation table 312, the value stored in message story identifier 418 may point to data stored in story table 306, and the values stored in message sender identifier 422 and message recipient identifier 424 may point to user records stored in entity table 302.
[0076] As described above, example embodiments allow for dynamic creation of profile designs for users, users associated with other users (e.g., friends), and publishers of content. For example, a user may create a profile in a content sharing platform, such as one that is displayed on a display of a computing device and displayed on a server. Figures 5A-5C 500 (divided into three parts to fit each page). In this example, a user may use a computing device (e.g., a mobile device) to request the generation of a new profile (e.g., via a content sharing platform or messaging application). The computing device may request or display information that the user may provide to be included in the user profile 500, or may automatically generate a profile 500 for the user based on other data from other systems. The computing device may display information about the user, content sharing platform activity information for the user, information about users associated with the user, and the like. For example, the information included and displayed in the profile 500 may include a user name 502 and an image or photo 504 for the user. The profile 500 may further include various options 506 to enhance the profile or experience, such as an option to add one or more friends, an option to enable push notifications, an option to verify a phone number, an option to synchronize an address book, an option to verify an email address, and the like. The profile 500 may further include information about friends 508 (e.g., users associated with the user), such as images or photos associated with each friend, a list of friends, information about friends, access to one or more friend profiles, and the like.
[0077] The profile 500 may further include the ability to create an emoji 510 or other avatar, and also have various data 512 associated with the user, such as the user's daily horoscope and various usage cards (e.g., functional usage or user interaction in a content sharing platform), such as preferred emoji, preferred sticker or creative tool, #1 friend, preferred face lens, preferred world lens, preferred font, preferred color, preferred geofilter, preferred emoji pack, preferred custom sticker, preferred location, favorite publisher, favorite show, etc., and other data. For example, the #1 friend card may be displayed for the friend with whom the user has interacted the most (e.g., exchanged messages, shared media content items, etc.). If the user has used at least one lens (or other creative tool) to augment a media content item and sent the media content item to another user or added it to a media collection, a preferred face lens card or a preferred world lens card may be displayed. The preferred face lens or preferred world lens may be the lens that the user uses the most. A preferred font card may be displayed if the user has used a font tool on a media content item sent to another user or posted to a media collection, and a preferred color card may be displayed if the user has used a drawing tool on a media content item sent to another user or posted to a media collection. A preferred geofilter card may be displayed if the user has ever used a geofilter on a media content item sent to another user or posted to a media collection, and a preferred sticker card or a preferred custom sticker card may be displayed if the user has ever used a sticker or a custom sticker on a media content item sent to another user or posted to a media collection. A preferred emoji card or a preferred emoji card may be used if the user has ever used an emoji sticker or an emoji sticker on a media content item sent to another user or posted to a media collection. Preferred location cards may be displayed based on the locations where the user spends the most time. Favorite publisher cards may be displayed based on the most viewed publisher content or favorite shows.
[0078] The profile 500 may also have trophy event information 514. The trophy event information may include achievement information having a statistics graph linked to the type of achievement achieved by the user. For example, to assess whether an achievement has been met, the social messaging system may receive a messaging activity communication from a client device, access messaging activity from various databases, determine a messaging score associated with an achievement statistics graph (e.g., a trophy), determine whether the messaging activity communication indicates an adjustment to the messaging activity score, further determine that the messaging activity score exceeds a first threshold activity score, and display the achievement statistics graph, as further described in co-pending application Ser. No. 15 / 098,603 (which is incorporated herein by reference).
[0079] The profile 500 may also have the option to include or create highlights, such as favorite media content that the user has created.
[0080] Profile 500 may further include information or data 516 that the user has saved from other users, publishers, or other sources. For example, a friend may send a phone number, address, link (e.g., URL), attachment to the user (e.g., via a message in a content sharing platform), and the user may save the phone number, address, link, attachment (e.g., image, video), etc. to his user profile 500. Data 516 may have the order of most recent reception or preservation, and all messages or data may be easily accessed in one location. In one example, the data may be an entire message or media content item, or may be a portion of a message or media content item. For example, a message sent to a user from another user may include a phone number or address within the message. The user may select a portion of a message (e.g., only a phone number, only an address, a phone number and an address, etc.) or the entire message, and then save it to his user profile.
[0081] The profile may also include creative tools 518 available to the user, such as unlocked lenses or other creative tools for augmenting media content items (eg, photos or videos). The profile 500 may further include saved media content items 524, which may be media content items created by the user.
[0082] Profile 500 may further include identity carousel 522 ( Figure 5A ), which may have identity information for the user, such as a user name 502 and an image or photo 504. The carousel 522 may further include: Figure 6 The example profile 600 shows information about the active media collection created by the user, such as Figure 7 location or movement information as shown in the example profile 700 of Figure 8 A machine-readable optical label (e.g., a QR code, a barcode, etc.) is shown in the example profile 800.
[0083] As described above, a user may have the option of adding one or more friends through a profile displayed on a computing device. For example, a user may select an item in a graphical user interface to "add a friend". This is just an example of adding one or more friends. It should be understood that other methods for adding one or more friends may be used with the example embodiments. The computing device receives a request to create a relationship between a user (e.g., a first user) and a friend (e.g., a second user) of a content sharing platform. The request may include information about the friend, such as a name, an email address, a user name, etc. The computing device may then associate the friend with the user. The friend information or association may be stored locally on the computing device together with the profile data and / or sent to a server system for storage at the server system (e.g., via a profile generation system 128). In another example, the request may be processed by a server system (e.g., server system 108), and the server system may receive the request and associate the friend with the user.
[0084] Fig. 9 is a flow chart illustrating aspects of a method 900 for generating user profile data according to some example embodiments. For purposes of illustration, the method 900 is Figure 1 It should be understood that in other embodiments, the method 900 can be practiced using other system configurations.
[0085] In operation 902, a server system (e.g., server system 108 or profile generation system 128) receives a request to access a second user profile in a content sharing platform from a computing device associated with a first user of the content sharing platform. For example, the first user may interact with a display on the computing device to access and view the second user profile. The computing device may then send a request to the server system to access the second user profile to access and receive user profile data for the second user to generate the second user profile and display the second user profile on the computing device. In one example, the computing device may have some or all of the second user profile data stored locally on the computing device, and thus may only send a request to the server system to access and receive any updated second user profile data.
[0086] In one example, the computing device and / or server system may determine that the first user is authorized to access the second user profile. For example, the computing device and / or server system may determine that the first user is associated with the second user (e.g., they are "friends"), the second user has authorized the first user to access the second user profile, etc. In another example, the computing device and / or server system may determine that the first user is not authorized to access the second user profile, and deny or reject the request to access the second user profile.
[0087] In one example, the computing device may request (e.g., as part of the second user profile) all data for the second user profile, only new or updated data for the second user profile, only specific data (e.g., compatibility data, relationship data, location data, distance data, creative tool data, etc.), etc. The computing device may request the data in one request or in multiple requests.
[0088] In operation 904, the server system generates second user profile data. In one example, the server system generates user profile data including information associated with the second user and the second user's activities in the content sharing platform. In one example, the server system may access one or more databases 120 to determine information associated with the second user, such as a user name, images or photos associated with the user, any current media collection of the second user, location information for the user, user groups, and other information associated with the user (e.g., similar to the information described above for the profile display) for use in generating a display of the second user profile.
[0089] In addition, the server system can access the activity data of the second user. In one example, the server system can have a log including all activities of the second user in the content sharing platform. For example, the server system can record when the second user interacts with another user, the messages and media content items sent and received from other users, the messages and media content items included in one or more media collections, the second user's access to and viewing of publisher data, media collections, other user content, and other activities carried out in the content sharing platform. The server system can generate such logs for each user of the content sharing platform. The server system can access the log associated with the second user to determine the information to be included in the second user profile. For example, the server system can determine whether the second user has any current media collections, and the time or date (for example, "add to story 23 months") when the second user last contributed messages or media content items to the media collection, what messages or media content items the second user has saved (for example, in total or within a predetermined time or date range), what attachments or other data the second user has saved from messages or other communications from other users, location changes, etc.
[0090] In operation 906, the server system accesses activity data for both the first user and the second user. As described above, the server system may access activity data in one or more databases 120. In operation 908, the server system determines activity data common to both the first user and the second user. For example, the server system may determine messages or media content items (e.g., images or videos) shared between the first user and the second user, messages or media content items generated by the second user and viewed and / or saved by the first user, or vice versa, one or more data saved by the first user from communications received from the second user, or vice versa, creative tools accessible to both the first user and the second user, creative tools accessed by the first user through the second user, or vice versa, location information of the first user and the second user, etc.
[0091] In operation 910, the server system generates second user profile data as part of the second user profile, the second user profile data also including common activity data associated with both the first user and the second user in the content sharing platform. For example, the server system may generate activity data including at least one media content item viewed or saved by the first user, generated by the second user, one or more data saved by the first user from communications received from the second user, compatibility data, one or more relationship types of the first user and the second user, a distance between the location of the first user and the location of the second user (e.g., by determining the first user location data and the second user location data based on the location of a computing device associated with each user or the most recent location data stored for each user, and determining the distance between the location of the first user and the location of the second user), creative tools accessible to both the first user and the second user (e.g., an indication of which creative tools are accessible to both the first user and the second user), a media collection generated by the second user and viewed and / or saved by the first user, or vice versa, and messages or media content items saved by the first user from a media collection generated by the second user, or vice versa.
[0092] The server system may then send the generated second user profile data to a computing device associated with the first user. As described above, the second user profile data may include all data for the second user profile data, a subset of the data (e.g., only updated data, specifically requested data (e.g., media content items from the second user saved by the first user), an indication that there is no new data since the last content sent, etc.).
[0093] In operation 912, the server system causes the second user profile to be displayed on a computing device associated with the first user. For example, the computing device associated with the first user receives the second user profile data and generates a graphical user interface (GUI) including the second user profile data. Figures 10A-10CAn example second user profile 1000 (divided into three parts to fit each page) displayed on a display of a computing device is shown in FIG.
[0094] In one example, causing the second user profile to be displayed further comprises: causing a marker (indicium) to be generated, the marker indicating a common activity associated with both the first user and the second user in the content sharing platform, causing the marker to be displayed on a display of a computing device associated with the first user, and based on receiving an indication that the first user interacted with the marker indicating the common activity, causing display of common activity data including the common activity associated with the first user and the second user in the content sharing platform as part of the second user profile. In one example, the marker "Me and Amy" may be displayed, and the user may select to view the common activity data for the user (e.g., "Me") and the second user (e.g., "Amy").
[0095] Figures 10A-10C The example second user profile 1000 in FIG. 1 may include information 1002 about the second user, such as the user's name, the user's username in the content sharing platform, and an image or photo of the user. Figures 5A-5C As explained, the information 1002 about the second user may be in the form of an identity carousel, which may include identity information (e.g., the user's name, username, image or photo, etc.), information about an active media collection created by the user (e.g., thumbnails of media content in the media collection and the date / time when the second user added the media collection), location or movement information (e.g., a picture of a map showing the second user's location or showing that the second user just flew from Los Angeles to New York two hours ago, etc.), or a machine-readable optical tag associated with the second user (e.g., a QR code, a barcode, etc.), etc. The identity information 1002 may further include an indication (e.g., an icon, an image, text) that the second user is a friend of the first user.
[0096] The example second user profile 1000 may further include one or more profile cards 1004. The profile cards 1004 may include: cards indicating that the first user and the second user are super friends (e.g., "Super BFF" appears next to the user's first friend, while the first friend also has the user as his or her first friend (e.g., for a predetermined period such as two months)), friends (e.g., "BFF"), other forms of relationships or friendships (e.g., "Good Friends", "BF", "Their BF, but...", "Mutual BF", "Snapstreak"), and cards with reference to the first user and the second user. Figures 5A-5COther profile cards similar to those shown and described (e.g., compatibility, preferred face lenses, etc.). The compatibility profile card may display the second user's zodiac sign emoji or other astrological information. In one example, this functionality allows a user to tap on the astrological sign emoji of a friend's (or joint) profile (who has entered the relevant information in their profile) and generate a compatibility chart with 10 different preferred aspects. For example, a user may view his compatibility chart with his friend (or joint account), and then tap through their top 10 aspects together, swiping up on anything the user wants more detailed information on. Finally, the user may swipe up to learn more about the compatibility chart and its components (e.g., planets, aspects) and what they mean.
[0097] If the first user or the second user has sent at least one creative tool (e.g., lens) to other users directly or through a media collection, a preferred lens profile card (including a preferred world lens card) in the second user profile 1000 (e.g., a friend profile) may be displayed. This may be a creative tool sent to other users within a predetermined time period (e.g., the past two weeks). If either the first user or the second user has sent at least one message or media content item with a geofilter to other users directly or through a media collection, a preferred geofilter profile card may be displayed. A preferred emoji profile card or a preferred friend emoji profile card may display the most commonly used emojis or friend emojis. If the first user and the second user have sent stickers (e.g., a special form of creative tool) to each other directly or through a media collection, a preferred sticker profile card, a preferred emoji sticker profile card, or a preferred custom sticker profile card may be displayed. If the users are in the same location as each other, a preferred location profile card may be displayed. This may exceed a predetermined time period (e.g., within the last month, within two weeks, etc.).
[0098] If the user has ever shared content or releases from a publisher, a favorite publisher profile card may be displayed. If the user has ever shared a program with each other, a favorite program profile card may be displayed. If the user has ever shared songs with each other (e.g., through a content sharing platform or through other methods, such as Shazam, Spotify, Apple Music, etc.), a favorite song profile card may be displayed.
[0099] The example second user profile 1000 may also include a saved media content item 1006. The saved media content item 1006 may include and display all media content items that the user has saved from each other. The order displayed may be the save date (e.g., order from left to right, with the left being the most recent). The user may select a thumbnail of a media content item to view the media content item in a larger size (e.g., full screen).
[0100] Example second user profile 1000 may further include annex 1008, annex 1008 includes data exchanged between the first user and / or data exchanged by the first or second user according to other data between a message, a media content item or a user to save. In one example, only the most recent annex (e.g., the most recent three annex, yesterday's or last week's annex, etc.) may be displayed. Further instructions may be included for each media content item, such as which user sent the annex, which user saved the annex, etc. Attachment may include phone number, address, link (e.g., URL), user name, contact information (e.g., for a user or other person or company), song, or be included in messages exchanged between users or other data in the media content item.
[0101] The example second user profile 1000 may also include a list of creative tools 1010 (e.g., unlocked lenses) that may have been unlocked from one another. For example, creative tools such as lenses may be locked unless the user meets certain conditions (e.g., is in a certain location, performs a certain action, etc.).
[0102] The example second user profile 1000 may also include a distance 1012 between the first user and the second user. In one example, the first user and the second user may be displayed on a map in each of the users' respective locations, and information about how far away they are and how long it would take to walk, bike, drive, fly, use public transportation, etc. may also be calculated and displayed. The user may also be able to access functionality to get directions to other users' locations.
[0103] The example second user profile 1000 may further include a friend expression lens profile card 1014. The friend expression lens profile card 1014 may include a friend expression lens (e.g., a creative tool) that may represent the first user and the second user and allow the first user and the second user to send friend expressions to other users or apply friend expressions to media content items and send them to other users. There may be more than one friend expression lens available for the first user and the second user.
[0104] The example second user profile 1000 may also include a list of groups 1016 to which both the first user and the second user belong. For example, the server system or computing device may determine which groups each user is a member of, and which groups they have in common. In one example, each group may also have a profile, such as Fig.11as shown. The group profile may include a list of group members and the ability to access the individual profile of each group member. The group profile may further include identity information for the group, including: a group name, an image or photo associated with the group (e.g., showing one or more group members), and other identity information similar to the identity information and carousels shown and described with respect to other profiles. The group profile may also include features and functionality similar to the features and functionality shown and described with respect to other profiles (e.g., location activity, profile cards, saved media content items, attachments, etc.). Similarly, a server system and / or computing device may generate a group profile similar to that described herein with respect to other profiles.
[0105] return Figures 10A-10C , the example second user profile 1000 may further include highlights 1018, where the second user can display favorite media content items, favorite media collections, favorite publishers, etc. The example second user profile 1000 may further include the following functions: send the second user profile to another user, turn on and off notifications related to the second user or the second user profile, mute the media collection (e.g., story), share battery percentage, clear conversations, block, report, etc. Fig.12 An example profile 1200 is shown.
[0106] The example second user profile 1000 may further include functionality that allows the first user to communicate with the second user, such as Fig.13 For example, the first user may send a media content item, capture a media content item, call a second user, send an emoticon, etc.
[0107] In some example embodiments, a user may only be able to access another user profile under certain conditions. For example, user A may only be able to access updates / activities that user B has chosen to share with their friends (e.g., user A is a friend), such as friend stories, map exploration updates, locations, etc. In another example, user A may only be able to access saved media and attachments from user B in a conversation between A and B. In another example, user A may only be able to access saved media and attachments from user B in the same conversation group (e.g., the group may have other members besides A and B). In another example, user A does not have access to user B's activities, such as when user B is interacting with another user.
[0108] Some example embodiments may further include a publisher profile that includes information and content from a content publisher. A content publisher may be an individual or entity that publishes content (such as a media collection, media content items, program episodes, and other content), such as a celebrity, a magazine publisher, a news media publisher, etc. Fig.14An example publisher profile 1400 is shown, which includes identity information 1402 of the publisher (e.g., publisher name and summary of the type of content provided) and an option 1404 to subscribe to the publisher's content. If the user has already subscribed to the publisher's content, the subscription option 1404 will not be displayed. The publisher profile 1400 may further include an image 1406 representing highlighted content 1408. Example embodiments allow publishers to handwrite and display favorite or highest quality content as highlights. The publisher profile 1400 may also include an option 1410 for viewing archived content and an option 1412 for viewing content saved by the user (e.g., favorite content saved by the user).
[0109] Fig.15 An example publisher profile 1500 is shown including identity information 1502 of a publisher (e.g., publisher name and summary of the type of content provided) and an option to subscribe to the publisher's content 1504. If the user has already subscribed to the publisher's content, the subscription option 1504 will not be displayed. The publisher profile 1500 may further include an image 1506 representing content (e.g., an episode) provided by the publisher, and options to watch different seasons 1508 and 1510 of the episode.
[0110] In one example, a user can subscribe to or unsubscribe from a publisher; access highlights, archives, saved content, and different seasons or episodes, etc. from a publisher; send a publisher profile to other users; share a publisher URL, etc.
[0111] Similar to as described above for user profiles, a user may request access to a publisher profile, and the computing device may request publisher profile data from the server system, receive the publisher profile data, and display the publisher profile data on a display screen of the computing device.
[0112] Fig.16 16 is a block diagram 1600 illustrating a software architecture 1602 that may be installed on any one or more of the devices described above. For example, in various embodiments, client device 110, server system 108, and API server 102, application server 112, messaging application server 116, media content processing system 118, social networking system 122, database server 124, and profile generation system 128 may be implemented using some or all of the elements of software architecture 1602. Fig.16 1702 is only a non-limiting example of a software architecture, and it will be understood that a variety of other architectures may be implemented to facilitate the functionality described herein. In various embodiments, the software architecture 1602 is composed of a processor 1710, a memory 1730, and an I / O component 1750. Fig.171600. In this example, software architecture 1602 can be conceptualized as a stack of layers, where each layer can provide specific functionality. For example, software architecture 1602 includes layers such as operating system 1604, library 1606, framework 1608, and application 1610. Operationally, application 1610 calls API call 1612 through the software stack and receives message 1614 in response to API call 1612 consistent with some embodiments.
[0113] In various implementations, the operating system 1604 manages hardware resources and provides public services. The operating system 1604 includes, for example, a kernel 1620, services 1622, and drivers 1624. According to some embodiments, the kernel 1620 acts as an abstraction layer between the hardware and other software layers. For example, among other functions, the kernel 1620 provides memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1622 may provide other public services to other software layers. According to some embodiments, the drivers 1624 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 1624 may include display drivers, camera drivers, or Low-energy drivers, flash drives, serial communication drivers (such as Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0114] In some embodiments, the library 1606 provides a low-level common infrastructure utilized by the application 1610. The library 1606 may include a system library 1630 (e.g., a C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1606 may include an API library 1632 such as a media library (e.g., a library for supporting the rendering and operation of various media formats (e.g., Moving Picture Experts Group 4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG))), a graphics library (e.g., an OpenGL framework for rendering two-dimensional (2D) and three-dimensional (3D) graphics content on a display), a database library (e.g., SQLite providing various relational database functions), a network library (e.g., WebKit providing network browsing functions), etc. The library 1606 may also include a variety of other libraries 1634 to provide a variety of other APIs to the application 1610.
[0115] According to some embodiments, the framework 1608 provides a high-level common infrastructure that can be used by the applications 1610. For example, the framework 1608 can provide various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The framework 1608 can provide a wide range of other APIs that can be used by the applications 1610, some of which may be specific to a particular operating system 1604 or platform.
[0116] In an example embodiment, applications 1610 include a home application 1650, a contacts application 1652, a browser application 1654, a reader application 1656, a location application 1658, a media application 1660, a messaging application 1662, a game application 1664, and a wide range of other applications, such as third-party applications 1666. According to some embodiments, applications 1610 are programs that execute functions defined in the program. Various programming languages can be used to create one or more of the applications 1610 structured in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a specific example, third-party applications 1666 (e.g., those written by entities other than the seller of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) can be used to develop applications on mobile operating systems (such as IOS TM ANDROID TM , Phone or another mobile operating system). In this example, third-party applications 1606 can call API calls 1612 provided by the operating system 1604 to facilitate the functions described herein.
[0117] Some embodiments may specifically include a media content application 1667. In some embodiments, this may be a standalone application that operates to manage communications with a server system such as a third-party server or server system 108. In other embodiments, this functionality may be integrated with other applications (e.g., messaging application 1662). The media content application 1667 may request and display various data related to messaging, media content, media collections, media overlays, user profiles, publisher profiles, etc., and may provide the ability for a user to enter system-related data via a touch interface, via a keyboard, or using a camera device of the machine 1700, communicate with a server system via an I / O component 1750, and receive and store object data in memory 1730. The presentation of information and user input associated with the information may be managed by the media content application 1667 using different frameworks 1608, library 1606 elements, or operating system 1604 operating on the machine 1700.
[0118] Fig.17 1 is a block diagram illustrating components of a machine 1700 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to some embodiments. Specifically, Fig.17 A diagrammatic representation of a machine 1700 in the example form of a computer system is shown in which instructions 1716 (e.g., software, programs, applications, applet, application program, or other executable code) for causing the machine 1700 to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine 1700 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a network deployment, the machine 1700 may operate as a server system 108, an application server 112, a messaging application server 116, a media content processing system 118, a social networking system 122, a database server 124, a profile generation system 128, etc., or as a client device 110 in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1700 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network appliance, a network router, a network switch, a network bridge, or any machine capable of executing instructions 1716 in sequence or otherwise, which specify actions to be taken by the machine 1700. In addition, while only a single machine 1700 is shown, the term "machine" should also be taken to include a collection of machines 1700 that individually or collectively execute instructions 1716 to perform any one or more of the methodologies discussed herein.
[0119] In various embodiments, the machine 1700 includes a processor 1710, a memory 1730, and an I / O component 1750, which may be configured to communicate with each other via a bus 1702. In an example embodiment, the processor 1710 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) includes, for example, a processor 1712 and a processor 1714 that can execute instructions 1716. The term "processor" is intended to include a multi-core processor 1710 that may include two or more independent processors 1712, 1714 (also referred to as "cores") that can execute instructions 1716 simultaneously. Although Fig.17Multiple processors 1710 are shown, and the machine 1700 may include a single processor 1710 with a single core, a single processor 1710 with multiple cores (e.g., a multi-core processor 1710), multiple processors 1712, 1714 with a single core, multiple processors 1712, 1714 with multiple cores, or any combination thereof.
[0120] According to some embodiments, the memory 1730 includes a main memory 1732, a static memory 1734, and a storage unit 1736, all of which are accessible to the processor 1710 via the bus 1702. The storage unit 1736 may include a machine-readable medium 1718 on which are stored instructions 1716 embodying any one or more of the methods or functions described herein. During execution by the machine 1700, the instructions 1716 may also reside, in whole or at least in part, within the main memory 1732, within the static memory 1734, within at least one of the processors 1710 (e.g., within a cache memory of the processor), or any suitable combination thereof. Thus, in various embodiments, the main memory 1732, the static memory 1734, and the processor 1710 are considered to be the machine-readable medium 1718.
[0121] As used herein, the term "memory" refers to a machine-readable medium 1718 capable of temporarily or permanently storing data and may be understood to include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. Although the machine-readable medium 1718 is shown as a single medium in the example embodiment, the term "machine-readable medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions 1716. The term "machine-readable medium" should also be understood to include any medium or combination of multiple media capable of storing instructions (e.g., instructions 1716) executed by a machine (e.g., machine 1700) so that the instructions 1716, when executed by one or more processors of the machine 1700 (e.g., processor 1710), cause the machine 1700 to perform any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network including multiple storage devices or devices. Thus, the term "machine-readable medium" should be understood to include, but is not limited to, one or more data storage repositories in the form of solid-state memory (e.g., flash memory), optical media, magnetic media, other non-volatile memory (e.g., erasable programmable read-only memory (EPROM)), or any suitable combination thereof. The term "machine-readable medium" specifically does not include non-transitory signals per se.
[0122] I / O components 1750 include a variety of components to receive input, provide output, generate output, send information, exchange information, collect measurements, etc. In general, it should be understood that I / O components 1750 may include Fig.17 1750 is grouped according to function for the purpose of simplifying the following discussion only, and the grouping is by no means limiting. In various example embodiments, the I / O component 1750 includes an output component 1752 and an input component 1754. The output component 1752 includes a visual component (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), an auditory component (e.g., a speaker), a tactile component (e.g., a vibration motor), other signal generators, etc. The input component 1754 includes an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, or other pointing instrument), a tactile input component (e.g., a physical button, a touch screen that provides the location and force of a touch or a touch gesture, or other tactile input components), an audio input component (e.g., a microphone), etc.
[0123] In some further example embodiments, the I / O component 1750 includes a biometric component 1756, a motion component 1758, an environmental component 1760, or a position component 1762, among various other components. For example, the biometric component 1756 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring bio-signals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1758 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. Environmental component 1760 includes, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor component (e.g., a machine olfactory detection sensor that detects concentrations of hazardous gases for safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 1762 includes a position sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects the altitude from which the air pressure can be obtained), an orientation sensor component (e.g., a magnetometer), and the like.
[0124] A variety of technologies may be used to achieve communication. The I / O components 1750 may include a communication component 1764 that is operable to couple the machine 1700 to a network 1780 or a device 1770 via coupling 1782 and coupling 1772, respectively. For example, the communication component 1764 includes a network interface component or other suitable device that interfaces with the network 1780. In further examples, the communication component 1764 includes a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g. Low energy consumption), Device 1770 may be another machine 1700 or any of a variety of peripheral devices, such as peripheral devices coupled via a universal serial bus (USB).
[0125] In addition, in some embodiments, the communication component 1764 detects an identifier or includes a component operable to detect an identifier. For example, the communication component 1764 includes a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as universal product codes (UPC) barcodes, multi-dimensional barcodes (e.g., Quick Response (QR) codes, Aztec codes, Data Matrix, Digital Graphics, Max Code, PDF417, Super Code, Uniform Commercial Code Reduced Space Symbol (UCC RSS)-2D barcodes) and other optical codes), an acoustic detection component (e.g., a microphone for identifying a tagged audio signal), or any suitable combination thereof. In addition, various information may be obtained via the communication component 1764, such as obtaining a location via Internet Protocol (IP) geolocation, ... Signal triangulation to obtain location, detecting signals that indicate a specific location Or NFC beacon signal to obtain location, etc.
[0126] In various example embodiments, one or more portions of network 1780 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of a public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, 1780, or a portion of network 1780, may include a wireless or cellular network, and coupling 1782 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, coupling 1782 may implement any of a variety of types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards development organizations, other remote protocols, or other data transmission technologies.
[0127] In an example embodiment, the instructions 1716 may be sent or received over the network 1780 using a transmission medium via a network interface device (e.g., a network interface component included in the communication component 1764), and may utilize any of a number of well-known transmission protocols (e.g., the Hypertext Transfer Protocol (HTTP)). Similarly, in other example embodiments, the instructions 1716 may be sent or received using a transmission medium via a coupling 1772 (e.g., a peer-to-peer coupling) to the device 1770. The term "transmission medium" shall be deemed to include any intangible medium capable of storing, encoding, or carrying the instructions 1716 to be executed by the machine 1700, and includes digital or analog communication signals or other intangible media to facilitate the communication of such software.
[0128] Furthermore, the machine-readable medium 1718 is non-transitory (in other words, does not have any transient signals) because it does not embody propagating signals. However, labeling the machine-readable medium 1718 as "non-transitory" should not be interpreted to mean that the medium is not capable of movement; the machine-readable medium 1718 should be considered to be transportable from one physical location to another. Furthermore, because the machine-readable medium 1718 is tangible, the machine-readable medium 1718 can be considered a machine-readable device.
[0129] Throughout this specification, plural instances may implement components, operations or structures described as single instances. Although the individual operations of one or more methods are shown and described as separated operations, one or more of the individual operations may be performed in parallel, and the operations are not required to be performed in the illustrated order. The structure and function presented as separated components in the example configuration may be implemented as a combined structure or component. Similarly, the structure and function presented as a single component may be implemented as a separated component. These and other variations, modifications, additions and improvements fall within the scope of the subject matter herein.
[0130] Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of the embodiments of the present disclosure.
[0131] The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, the detailed description is not to be construed in a limiting sense, and the scope of the various embodiments is defined solely by the appended claims, along with the full scope of equivalents to which such claims are entitled.
[0132] As used herein, the term "or" may be interpreted in an inclusive or exclusive sense. Moreover, multiple instances may be provided for resources, operations, or structures described herein as a single instance. In addition, the boundaries between various resources, operations, modules, engines, and data stores are arbitrary to some extent, and specific operations are shown in the context of a specific illustrative configuration. Other allocations of functions are envisioned and may fall within the scope of various embodiments of the present disclosure. In general, the structures and functions presented as separate resources in the example configuration may be implemented as a combined structure or resource. Similarly, the structures and functions presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of the embodiments of the present disclosure as represented in the appended claims. Therefore, the specification and the drawings will be considered to be illustrative rather than restrictive.
Claims
1. A method comprising: receiving, by a server system, from a computing device associated with a first user of a content sharing platform, a request to access a second user profile associated with a second user in the content sharing platform; determining common activity data for both the first user and the second user, the common activity data comprising: photos or videos generated by the second user and viewed and saved by the first user; as well as Causes display on a computing device associated with the first user a second user profile including the common activity data related to both the first user and the second user in the content sharing platform, including the photos or videos generated by the second user and viewed and saved by the first user.
2. The method according to claim 1, wherein: Prior to receiving the request to access the second user profile associated with the second user, the method comprises: receiving a request to establish a relationship between the first user of the content sharing platform and the second user of the content sharing platform; and The first user is associated with the second user.
3. The method according to claim 2, wherein: Before generating the second user profile, the method includes: It is determined that the first user is associated with the second user.
4. The method according to claim 1, further comprising: The second user profile also includes information associated with the second user and activities of the second user in the content sharing platform; as well as Wherein, causing the second user profile to be displayed further comprises: causing the second user profile including the information associated with the second user and the activity of the second user in the content sharing platform to be displayed.
5. The method according to claim 1, further comprising: generating compatibility data for the first user and the second user; as well as Wherein causing the second user profile to be displayed further comprises causing the compatibility data to be displayed in the second user profile.
6. The method according to claim 1, further comprising: generating one or more relationship types for the first user and the second user; as well as Wherein causing display of the second user profile further comprises including the one or more relationship types in the second user profile.
7. The method according to claim 1, further comprising: determining a creative tool accessible to both the first user and the second user; as well as Wherein causing display of the second user profile further comprises including in the second user profile an indication of the creative tools accessible to both the first user and the second user.
8. The method according to claim 1, wherein: The photo or video is generated by a computing device associated with the second user and published to a media collection via the content sharing platform, and the photo or video is viewed or saved by the first user via a computing device associated with the first user.
9. The method according to claim 1, wherein: The joint activity data also includes data saved from communications received by the first user from the second user, the data including at least one of a phone number, an address, a connection, and an attachment.
10. The method according to claim 1, wherein: The joint activity data also includes songs shared between the first user and the second user.
11. The method according to claim 1, wherein: The second user profile also includes a map indicating a current location of a computing device associated with the first user, a current location of a computing device associated with the second user, and how long it will take for the first user to travel to the second user.
12. A system comprising: one or more hardware processors; as well as A computer readable medium storing instructions executable by one or more hardware processors to cause the system to perform the operations including: receiving, from a computing device associated with a first user of a content sharing platform, a request to access a second user profile associated with a second user in the content sharing platform; determining common activity data for both the first user and the second user, the common activity data comprising: photos or videos generated by the second user and viewed and saved by the first user; and Causes display on a computing device associated with the first user a second user profile including the common activity data related to both the first user and the second user in the content sharing platform, including the photos or videos generated by the second user and viewed and saved by the first user.
13. The system according to claim 12, wherein: Prior to receiving the request to access the second user profile associated with the second user, the operations include: receiving a request to establish a relationship between the first user of the content sharing platform and the second user of the content sharing platform; associating the first user with the second user; and Before generating the second user profile, the operation includes: determining that the first user is associated with the second user.
14. The system of claim 12, the operations further comprising: The second user profile also includes information associated with the second user and activities of the second user in the content sharing platform; as well as Wherein, causing the second user profile to be displayed further comprises: causing the second user profile including the information associated with the second user and the activity of the second user in the content sharing platform to be displayed.
15. The system of claim 12, the operations further comprising: generating one or more relationship types for the first user and the second user; as well as Wherein causing display of the second user profile further comprises including the one or more relationship types in the second user profile.
16. The system of claim 12, the operations further comprising: determining a creative tool accessible to both the first user and the second user; as well as Wherein causing display of the second user profile further comprises including in the second user profile an indication of the creative tools accessible to both the first user and the second user.
17. The system of claim 12, wherein: The photo or video is generated by a computing device associated with the second user and published to a media collection via the content sharing platform, and the photo or video is viewed or saved by the first user via a computing device associated with the first user.
18. The system of claim 12, wherein: The joint activity data also includes data saved from communications received by the first user from the second user, the data including at least one of a phone number, an address, a connection, and an attachment, or the joint activity data also includes songs shared between the first user and the second user.
19. The system of claim 12, wherein: The second user profile also includes a map indicating a current location of a computing device associated with the first user, a current location of a computing device associated with the second user, and how long it will take for the first user to travel to the second user.
20. A non-transitory computer-readable medium comprising instructions stored thereon, the instructions executable by at least one processor to cause a computing device to perform operations comprising: receiving, from a computing device associated with a first user of a content sharing platform, a request to access a second user profile associated with a second user in the content sharing platform; determining common activity data for both the first user and the second user, the common activity data comprising: photos or videos generated by the second user and viewed and saved by the first user; as well as Causes display on a computing device associated with the first user a second user profile including the common activity data related to both the first user and the second user in the content sharing platform, including the photos or videos generated by the second user and viewed and saved by the first user.
Citation Information
Patent Citations
Methods and apparatuses for constructing a 3D sonar image of objects in an underwater environment
US10281577B2