The present disclosure generally relates to the technical field of managing network created content. Specifically, the disclosed methods and systems provide for sharing of selective content with a plurality of users of a social network.
Social networking has enabled millions of users to create their own electronic content. As content creation has become more decentralized, the quality of this content has become more varied. Individual users may have vastly different standards as to what may comprise acceptable content for sharing online. Some user generated content may reflect positively on products or services associated with the content. other content may reflect less positively. Thus, improved systems and methods for managing user generated content are needed.
In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. Some embodiments are illustrated by way of example, and not limitation, in the figures of the accompanying drawings.
The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the disclosure. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.
Aspects of the present disclosure include systems, methods, techniques, instruction sequences, and computing machine program products that provide for the management of user generated content. Some social networks may provide features to users that enable the users to apply one or more effects to user generated content, such as user generated images. Various types of image effects may be packaged into separate and discrete image “filters.” Applying a filter to an image invokes particular processing on the image, changing one or more characteristics of the image. In some cases, applying a filter may add particular content to the image. For example, one image filter may overlay a user generated image with a rainbow. Another filter may accentuate particular portions of a user's face, such as the eyes or teeth. Another filter may add a banner or logo, or other messaging to a user generated image.
A social network operator may provide some filters to users. Other filters may be sponsored by a third party, different than the social network operator. For example, one or more third parties may agree with the social network operator to include filters developed by or at the direction of the third parties to users of the social network. In some cases, these third party filters may only be available to users when the user is within a particular geographic location. For example, event specific filters may be provided to users in some aspects. For example, attendance at an organized event, such as a football game, tractor pull, or musical concert, may enable a set of filters that are otherwise not available.
Third party sponsored filters may modify user generated content so as to enhance the user generated content. For example, in some aspects, a user generated image may be enhanced with a brand oriented message. A third party manufacturer may provide a filter that enhances a user generated image to include a logo in the image. In another example, a third party soft drink manufacturer may provide a filter that adds a bottle bearing a logo for the soft drink to an applied image. Users may choose to apply these filters to their own images in a variety of circumstances. Some of the resulting user generated images may reflect positively on the third party. Other resulting images may include content that is less consistent with a brand image desired by the third party.
When consistent with a brand image, these user generated content based images can be valuable to the third party. For example, when viewed by other users or potential users of a third party product or service, user generated images may reinforce the brand's image to these other users. Because the images are user generated, they may be perceived as more credible than images created solely by the third party. Furthermore, users of a third party product may exhibit similar or desirable characteristics for other users of, or potential users of, the third party product or service. In some aspects, the user generated content may demonstrate values or behavior that resonates with other users or potential users of the third-party product or service.
In some aspects, the disclosed methods and systems provide a manner in which this latent value of user generated content to the third party may be realized. After the user generated content is created, a user may choose to submit their user generated content for consideration by the third party for use in reinforcing the brand's image. In some aspects, benefits may accrue to the user by submitting their content. For example, in various aspects, the user may be entered into a sweepstakes, or accumulate points in a brand loyalty program by submitting their content for consideration. After the user generated content is submitted, the third party may then review the submitted user generated content, and select those images that it finds to be helpful in furthering its business purposes.
These images may then be utilized by the third party in a variety of ways. For example, in some aspects, the selected images may then be highlighted to users and/or internal third party stakeholders. By providing a mechanism to screen user generated content for its consistency with third party goals, latent value of the user generated content may be realized, for the benefit of both the user and the third party.
In the example shown in
The network 106 may include, or operate in conjunction with, 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 WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, the network 106 or a portion of the network 106 may include a wireless or cellular network and the connection to the network 106 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, the coupling may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1×RTT), 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) networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long-Term Evolution (LTE) standard, or others defined by various standard-setting organizations, other long-range protocols, or other data transfer technology.
The messaging server system 108 provides server-side functionality via the network 106 to a particular messaging client application 104. While certain functions of the messaging system 100 are described herein as being performed by either a messaging client application 104 or by the messaging server system 108, it will be appreciated that the location of certain functionality either within the messaging client application 104 or the messaging server system 108 is a design choice. For example, it may be technically preferable to initially deploy certain technology and functionality within the messaging server system 108, but to later migrate this technology and functionality to the messaging client application 104 where a client device 102 has a sufficient processing capacity.
The messaging server system 108 supports various services and operations that are provided to the messaging client application 104. Such operations include transmitting data to, receiving data from, and processing data generated by the messaging client application 104. This data may include message content, client device information, geolocation information, media annotation and overlays, message content persistence conditions, social network information, and live event information, as examples. Data exchanges within the messaging system 100 are invoked and controlled through functions available via user interfaces (UIs) of the messaging client application 104.
Turning now specifically to the messaging server system 108, an Application Programming Interface (API) server 110 is coupled to, and provides a programmatic interface to, an application server 112. The application server 112 is communicatively coupled to a database server 118, which facilitates access to a database 120 in which is stored data associated with messages processed by the application server 112.
The API server 110 receives and transmits message data (e.g., commands and message payloads) between the client device 102 and the application server 112. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the messaging client application 104 in order to invoke functionality of the application server 112. The API server 110 exposes various functions supported by the application server 112, including account registration; login functionality; the sending of messages, via the application server 112, from a particular messaging client application 104 to another messaging client application 104; the sending of media files (e.g., images or video) from a messaging client application 104 to the application server 112, for possible access by another messaging client application 104; the setting of a collection of media data (e.g., story); the retrieval of a list of friends of a user of a client device 102; the retrieval of such collections; the retrieval of messages and content; the adding and deletion of friends to and from a social graph; the location of friends within a social graph; and the detecting of an application event (e.g., relating to the messaging client application 104).
The application server 112 hosts a number of applications and subsystems, including a messaging server application 114 and a social network system 116. The messaging server application 114 implements a number of message processing technologies and functions, particularly related to the aggregation and other processing of content (e.g., textual and multimedia content) included in messages received from multiple instances of the messaging client application 104. As will be described in further detail, the text and media content from multiple sources may be aggregated into collections of content (e.g., called stories or galleries). These collections are then made available, by the messaging server application 114, to the messaging client application 104. Other processor- and memory-intensive processing of data may also be performed server-side by the messaging server application 114, in view of the hardware requirements for such processing.
The social network system 116 supports various social networking functions and services, and makes these functions and services available to the messaging server application 114. To this end, the social network system 116 maintains and accesses an entity graph within the database 120. Examples of functions and services supported by the social network system 116 include the identification of other users of the messaging system 100 with whom a particular user has relationships or whom the user is “following,” and also the identification of other entities and interests of a particular user.
The ephemeral timer system 202 is responsible for enforcing the temporary access to content permitted by the messaging client application 104 and the messaging server application 114. To this end, the ephemeral timer system 202 incorporates a number of timers that, based on duration and display parameters associated with a message, or collection of messages (e.g., a story, such as the story component 404 discussed below), selectively display and enable access to messages and associated content via the messaging client application 104. Further details regarding the operation of the ephemeral timer system 202 are provided below.
The collection management system 204 is responsible for managing collections of media (e.g., collections of text, image, video, and audio data). In some examples, a collection of content (e.g., messages, including images, video, text, and audio) may be organized into an “event gallery” or an “event story.” Such a collection may be made available for a specified time period, such as the duration of an event to which the content relates. For example, content relating to a music concert may be made available as a “story” for the duration of that music 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 104.
The annotation system 206 provides various functions that enable a user to annotate or otherwise modify or edit media content associated with a message. For example, the annotation system 206 provides functions related to the generation and publishing of media overlays for messages processed by the messaging system 100. For example, the annotation system 206 operatively supplies a media overlay (e.g., a filter) to the messaging client application 104 based on a geolocation of the client device 102. In another example, the annotation system 206 operatively supplies a media overlay to the messaging client application 104 based on other information, such as social network information of the user of the client device 102. A media overlay may include audio and visual content and visual effects. Examples of audio and visual content include pictures, texts, logos, animations, and sound effects. An example of a visual effect includes color overlaying. The audio and visual content or the visual effects can be applied to a media content item (e.g., a photo) at the client device 102. For example, the media overlay may include text that can be overlaid on top of a photograph generated by the client device 102. In another example, the media overlay includes an identification of a location (e.g., Venice Beach), a name of a live event, or a name of a merchant (e.g., Beach Coffee House). In another example, the annotation system 206 uses the geolocation of the client device 102 to identify a media overlay that includes the name of a merchant at the geolocation of the client device 102. The media overlay may include other indicia associated with the merchant. The media overlays may be stored in the database 120 and accessed through the database server 118.
In one exemplary embodiment, the annotation system 206 provides a user-based publication platform that enables users to select a geolocation on a map, and upload content associated with the selected geolocation. The user may also specify circumstances under which a particular media overlay should be offered to other users. The annotation system 206 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geolocation.
In another exemplary embodiment, the annotation system 206 provides a merchant-based publication platform that enables merchants to select a particular media overlay associated with a geolocation via a bidding process. For example, the annotation system 206 associates the media overlay of a highest-bidding merchant with a corresponding geolocation for a predefined amount of time.
The content selection system 208 may provide for the selection of user generated content for other uses. For example, the content selection system 208 may provide for one or more filters to be applied to user generated content, such as images. The filtered images may be submitted, but a user, to a location that signals that the images are provided for additional consideration. For example, by submitting the images to a “our story” component, discussed below, a user may signal their willingness to have their images distributed to other users. Images submitted by users may be reviewed to determine whether those images are appropriate. If the images are appropriate, they may be distributed to other users. The content selection system 208 is discussed in more detail below.
The database 120 includes message data stored within a message table 614. An entity table 602 stores entity data, including an entity graph 304. Entities for which records are maintained within the entity table 602 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of type, any entity regarding which the messaging server system 108 stores data may be a recognized entity. Each entity is provided with a unique identifier, as well as an entity type identifier (not shown).
The entity graph 304 furthermore stores information regarding relationships and associations between or among entities. Such relationships may be social, professional (e.g., work at a common corporation or organization), interested-based, or activity-based, merely for example.
The database 120 also stores annotation data, in the example form of filters, in an annotation table 312. Filters for which data is stored within the annotation table 312 are associated with and applied to videos (for which data is stored in a video table 310) and/or images (for which data is stored in an image table 308). Filters, in one example, are overlays that are displayed as overlaid on an image or video during presentation to a recipient user. Filters may be of varies types, including user-selected filters from a gallery of filters presented to a sending user by the messaging client application 104 when the sending user is composing a message. Other types of filters include geolocation filters (also known as geo-filters), which may be presented to a sending user based on geographic location. For example, geolocation filters specific to a neighborhood or special location may be presented within a user interface by the messaging client application 104, based on geolocation information determined by a Global Positioning System (GPS) unit of the client device 102. Another type of filter is a data filter, which may be selectively presented to a sending user by the messaging client application 104, based on other inputs or information gathered by the client device 102 during the message creation process. Examples of data filters include a current temperature at a specific location, a current speed at which a sending user is traveling, a battery life for a client device 102, or the current time.
Other annotation data that may be stored within the image table 308 is so-called “lens” data. A “lens” may be a real-time special effect and sound that may be added to an image or a video.
As mentioned above, the video table 310 stores video data which, in one embodiment, is associated with messages for which records are maintained within the message table 314. Similarly, the image table 308 stores image data associated with messages for which message data is stored in the entity table 302. The entity table 302 may associate various annotations from the annotation table 312 with various images and videos stored in the image table 308 and the video table 310.
A story table 306 stores data regarding collections of messages and associated image, video, or audio data, which are compiled into a collection (e.g., a story or a gallery). The creation of a particular collection may be initiated by a particular user (e.g., a 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 has been created and sent/broadcast by that user. To this end, the user interface of the messaging client application 104 may include an icon that is user-selectable to enable a sending user to add specific content to his or her personal story.
A collection 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 constitute a curated stream of user-submitted content from various locations and events. Users whose client devices have location services enabled and who are at a common location or event at a particular time may, for example, be presented with an option, via a user interface of the messaging client application 104, to contribute content to a particular live story. The live story may be identified to the user by the messaging client application 104, based on his or her location. The end result is a “live story” told from a community perspective.
A further type of content collection is known as a “location story,” which enables a user whose client device 102 is located within a specific geographic location (e.g., on a college or university campus) to contribute to a particular collection. In some embodiments, a contribution to a location story may require a second degree of authentication to verify that the end user belongs to a specific organization or other entity (e.g., is a student on the university campus).
The database 120 may also include a suggested table and an accepted table 330 in some aspects. The suggested table 320 may identify user generated content that has been identified by various aspects disclosed as potentially useful for display in a highlight reel. In some aspects, user generated content may be initially inserted into the suggested table 320 by a classifier, which may analyze user generated content for content that may be of relatively higher value in the highlight reel.
The database 120 may also include in some aspects, an accepted table 330. The accepted table 330 may identify user generated content that a user has agreed to provide in a highlight reel. For example, a user may be asked for their consent to share content included in the suggested content. If the user agrees, the content may move from the suggested table 320 to the accepted table 330. If the user declines, the content may be deleted from the suggested table, or at least not identified by the suggested table 320. Even if the content is deleted from the suggested table 320, that content may still be present in another table, such as the image table 308 or video table 310.
The above referenced functional components of the content selection system 208 are configured to communicate with each other (e.g., via a bus, shared memory, a switch, or APIs). Collectively, these components facilitate generation of user generated content, and submission of the user generated content to the story component 404. Content submitted to the story component may, in some aspects, be provided with greater visibility. For example, a set of users may have access to the story component 404 that is a different set of users than a second set of users that would otherwise have access to the user generated content. In return for submitting their content to the story component 404, the user may be provided with one or more incentives. For example, in some aspects, the user may be provided with points in a brand loyalty program in return for their submission of user generated content. Other incentives are also contemplated. Once the user generated content has been submitted to the story component 404, it may be reviewed to determine whether it meets one or more criteria. If the user generated content meets the criteria, it may be further published. For example, in some aspects, the user generated content may be distributed to a set of users if it meets the criteria. The new set of users may be generally unassociated with the user that submitted the content originally.
The image filtering component 402 is responsible for applying one or more filters to a user generated image. The filters may perform one or more image processing techniques on the user generated image. For example, in some aspects, a filter may change the coloration of the user generated image, or exaggerate certain facial features present in the image (e.g. eyes, teeth). After the effects are applied, the image filtering component generates a filtered user generated image. Each filter applied to the user generated image may be associated with a particular entity. In some aspects, the entity may have sponsored the filter. In some aspects, when a filter is applied to a user generated image, an association between the image and the filter is preserved. For example, in some aspects, meta data within the image may record that the filter has been applied to the image. Alternatively, this information may be stored in a data structure separate from the image. In some aspects, a separate table may be maintained that associates the filter with the entity. Thus, via the image meta data and the separate table, an association between the image and the entity may be made.
The story component 404 provides a collection of filtered user generated images. The story component 404 may provide messaging to a user submitting content, indicating that the user gives up certain copyrights associated with the user generated content by submitting the content to the story component.
The classifier component 405 may be trained to classify user generated content into at least two groups. A first group may be content that is not appropriate for inclusion in a highlight reel. A second group of content may be content that could be appropriate for inclusion in a highlight reel. The classifier may be trained based on a training set of content. Each content in the training set of content may be annotated as to belonging to either the first or second group of content. By training the classifier using the training set of content, the classifier may then be able to predict which additional content may fall into the first or second group. In some aspects, a third group of content may be identified by the classifier 405. This third group of content may include content that could be appropriate for sharing in a highlight reel, but that consent is unlikely to be provided by a user generating the content. To support classification of content into this group, the annotation of the training set of content may also include an indication, for content appropriate for inclusion in the highlight reel, but that consent for such inclusion was not provided by a user generating the content.
The dashboard component 406 provides a user interface for filtered user generated content submitted to the story component 404. In some aspects, the dashboard component may provide selective views of the submitted content. The views may be based on attributes of a user that is logged in to the dashboard component. For example, a user of the dashboard component 406 may be associated with a particular entity. At least a portion of the filtered user generated images may also be associated with the particular entity, as described above. Thus, in some aspects, the dashboard component may display a view to a user that displays the portion of filtered user generated images, as both the user and the images are associated with the entity. From the user interface, the user may be able to select one or more of the images. In some aspects, the user may select one or more of the images for further publication. In some aspects, the user select one or more of the images to restrict further publication.
The publishing component 408 may further publish content based on selection information from the dashboard component 406. In some aspects, content selected for further publication by the dashboard component 406 may be included in a “highlight reel” as described below, for example, with respect to
The consent component 409 may attempt to obtain consent from a user for inclusion of content they generated to a highlight reel. For example, the consent component 409 may be configured to communicate with a user of the social network system 116 via message, or by displaying a dialog on the user's client device. The message or dialog may identify the particular user generated content for which consent is sought, and request input from the user indicating whether consent is given or not.
As is understood by skilled artisans in the relevant computer and Internet-related arts, each functional component illustrated in
Furthermore, the various functional components depicted in
The messaging client application 104 is shown generating three user instances of user generated content 510a-c. In some aspects, one or more of the user generated content 510a-c may be generated as ephemeral messages or ephemeral content. In other words, one or more of the user generated content 510a-c may have a limited life, after which, the one or more ephemeral messages may be deleted by the social network system 116. The messaging client application 104 may then, via the image filtering component 402, selectively apply one or more filters 505a-b to the user generated content 510a-c. As shown in
The filters may be sponsored by or otherwise be associated with one or more 3rd party entities. For example, filters 505a may be owned by a first 3rd party entity, such as a first corporation, while filters 505b may be owned by a second 3rd party entity, such as a second corporation. The filters may be selectively applied to the user generated content 510a-c based on input from a user logged into the messaging client application 104. While
The messaging client application 104 may be further configured to selectively transmit the filtered content 512a and 512c to the messaging server application 114. The transmission of the filtered content 512a and/or 512c may be in response to particular input from a user interface of the messaging client application 104. For example, a user of the messaging client application 104 may select which of the filtered content 512a and/or 512c are to be sent to the messaging server application 114 and the story component 404. In some aspects, if a user selects to sent a particular filtered content to the messaging server application 114 and the story component 404, the messaging server application 114 may copy the content, but eliminate any ephemeral properties associated with the message (e.g. a scheduled deletion time or limited life time of the content). In some aspects, a warning dialog may be displayed to the user, notifying the user that in order to include the content in the story 404, the ephemeral properties must be cleared. Upon acceptance of this condition after receiving the warning, the ephemeral properties may be cleared and the content moved to the story component 404.
In some aspects, the messaging server application 114 may include at least a story component 404, the dashboard component 406, and the publishing component 408.
A user of the messaging client application 104 may provide input that causes the messaging client application 104 to transmit the filtered content 512a and 512c to the messaging server application 104, and to indicate the filtered content 512a and/or 512c is to be submitted to the story component 404 of the messaging server application 114. The story component 404 may form a physical or virtual collection of filtered content provided by one or more users via one or more respective instances of the messaging client application 104.
The dashboard component 406 may be configured to read the content accumulated by the story component 404. In some aspects, the dashboard component 406 may select portions of the content accumulated by the story component 404. For example, the dashboard component 406 may be configured to select content from the story component 404 based on which filters of the filters 505a-b were applied to the content by the messaging client application(s) 104. The selection may be based, in some aspects, on access rights or capabilities associated with a user session of the dashboard component 406. For example, in some aspects, a user logged into the dashboard component 406 may be associated with an entity, such as the first corporation or second corporation discussed above. The user may authenticate with the dashboard component 406, establishing an association between the user and the entity, for example, via a user profile defining the association and associated with the user session. The filtering by the dashboard component 406 may generate entity content 525, which may be a subset of the filtered content (e.g. 512a and 512c) stored in the story component 404. In some aspects, the dashboard component 406 may filter images collected by the story component 404 to those associated with one or more particular entities associated with a user session.
The dashboard component 406 may then select zero or more images included in the entity content 525 to form the selected content 530. The selection may be based, in some aspects, on whether an image meets one or more criteria. For example, in some aspects, automated image recognition methods, such as those employing convolutional neural networks, may be utilized to screen out one or more images in the entity content 525 that have inappropriate content. In some aspects, the user logged into the dashboard component 406 may not be provided with access to these screened out images. Instead, the user may manually review one or more of the entity content 525 images and determine whether they should be selected for further publication or not. The user may then indicate the results of the determination via a user interface provided by the dashboard component 406. The selected images form selected content 530.
The selected content 530 may then be further published. For example, the selected content may be utilized as images in a highlight reel, as illustrated below in
The messaging server application 114 may be configured to transmit the one or more items in the filtered content 530 to a content display window of the messaging client application(s) 114. In some aspects, a first user may submit filtered content 512a and/or 512c to the story component 404 via their respective messaging client application 104. One or more of the images 512a and/or 512c may then be included in the filtered content 530 and distributed to a content display window 540 within a different user's messaging client application 104. In some aspects, one or more of the user generated content 512a and/or 512c may be distributed to the content display window 540 of a plurality of different user's messaging client applications 104.
The applied filter table 610 includes an image identifier column 612 and a filter id column 604. The image identifier column 612 identifies an image in the image table 620. The filter identifier column 604 identifies a filter that was applied to the image identified in the image id column 612.
The image table 620 includes an image identifier column 612, image data 622, and an image selected column 624. The image identifier column 612 stores an identifier for an image. The image data column 622 stores image data defining the image identified in the image identifier column 612. The image selected column 624 indicates whether the image identified by the image id 620 has been selected or not. The selection may be based on input received from a user interface, as discussed further below. In some aspects, the dashboard component 406 may control whether the image is selected in column 624. The selection may determine whether the image identified by the image identifier 612 is consistent with a message of the entity 606. In some aspects, the applied filter table 610 and/or image table 620 may be included in the image table 308, discussed above with respect to
Process 700 discussed below provides a mechanism for creators of user generated content to indicate to an operator of a social network that they are granting to the operator certain access rights to the user generated content. For example, upon creation of the user generated content on the client devices, the user generated content may have a first set of intellectual property rights, such as copywrite privileges. For example, when the user generated content is created, the user may have exclusive copyright rights to the user generated content. These rights may restrict or prevent the distribution or access of the user generated content by others. For example, distribution of the user generated content by others, especially for commercial reasons, may be prohibited by the initial copyright.
The social network operator may provide a notice to the user that submission of the user generated content to a particular location on the social network, for example, the story component 404, described above with respect to
In block 705, data is received defining an image. In some aspects, the data may be received from an imaging sensor. For example, in some aspects, the client device 102 of
In block 710, an image filter is applied to the image received in block 705. For example, as described above with respect to
In block 715, user input is received indicating that the user has granted distribution rights to the filtered image. For example, as discussed with respect to
In block 720, the filtered image is transmitted over a network. In some aspects, the client messaging application 104 may transmit the filtered image to the server messaging application 114 of
In block 805, a filtered image is received. In some aspects, the filtered image may be received over a network. With respect to block 805, a filtered image is an image may have had one or more image filters applied to it. In some aspects, the filtered image may be received, over a network, from the client messaging application 104, discussed above with respect to
In some aspects, an indication of an entity associated with the image is also received in block 805. For example, as discussed above, in some aspects, a third party entity may sponsor or otherwise be associated with a filter applied to the filtered image.
In some aspects of block 805, a plurality of filtered images are received from a plurality of wireless devices. Each of the filtered images may have had one or more filters applied to it, with each of the filters sponsored or otherwise associated with a particular entity. Each of the filtered images may have identical or different combinations of filters applied to them. In these aspects, for each filtered image received, an indication of filters applied to the respective image is also received in block 805.
In block 810, the filtered image(s) is/are stored to a data store. For example, in some aspects, block 810 may populate one or more of the tables discussed above with respect to
In some aspects, the disclosed methods and systems may display a view to the database 120 shown in
In block 910, filtered images are selected from a database. In some aspects, the filtered images are selected from the database 120 discussed above with respect to
In some aspects, block 910 includes establishing a session with a user. For example, establishing the session may include receiving and verifying authenticating credentials for the user. (e.g. user name & password). One or more of the functions discussed with respect to process 900 may be performed under the security credentials established via the user session. The user may be associated with an entity. For example, during a user registration, input may be received establishing an association between the user and the entity. In some aspects, the selection of the images is based on the user and the association with the entity. For example, the session under which process 900 is performed may define the selection of images in block 910, in that the selected images are relevant to the session's user. In some other aspects, the user that establishes the session in block 910 may not be associated with the entity, but may instead be associated with the social network system 116 instead. For example, the functions discussed with respect to the first user session may be performed by a team member of the social network, to prepare some initial images for review by a member of the entity's team further below.
In block 920, the images are classified into a first set of images and a second set of images. In some aspects, the images may be classified based on the content of the images. For example, in some aspects, the images may be classified based on whether they contain inappropriate content or not. Inappropriate content may include content that may be objectionable to a threshold number of individuals within a population. For example, in some aspects, a not safe for work (NSFW) filter may be applied to classify the images into the first or second set of images. If the NSFW filter indicates the image is not safe for work, it may be included in the second set of images. Otherwise, the image may be included in the first set of images. In some aspects, the NSFW filter may include a convolutional neural network trained on a training set of images. A variety of image classification techniques may be employed in various embodiments to classify the images into the first and second set of images. For example, one or more of pre-pixel classification, sub-pixel classification, per-field classification, contextual classification, knowledge based classification, or a combination of one or more of these classifiers may be employed in the disclosed methods and systems.
In block 925, a user interface is generated over the first session. The user interface is configured to access images in the first set of images. The user interface may be configured such that it is unable to access images in the second set of images. Generating a user interface may include, in some aspects, generating control information that defines a user interface to be presented on a display screen of the client device 102. For example, in some aspects, generating the user interface may include generating html statements for display on the client device 102, with the html statements provided with access to the first set of images. In some aspects, other user interface technologies may result in alternative implementations of block 925. For example, in some implementations, generating a user interface may include signaling to the messaging client application 104 to display a particular user interface that the messaging client application 104 may be preconfigured to display. In these aspects, generating the user interface may include identifying the preconfigured user interface to the messaging client application 104, and passing the messaging client application 104 data indicating how it is to access the images in the first set of images.
In block 930, input is received indicating a selection of a subset of the first set of images. In some aspects, the subset encompasses the entire first set of images. As discussed above, the user may select a subset of the first set of images that are consistent with a positioning of a brand associated with the user.
In block 935, a second user interface is generated based on the subset. In some aspects, the second user interface may display images within only the subset. As shown below, in some aspects, the subset of images may comprise a highlight real, showcasing images that meet one or more criteria evaluated (either in an autonomous fashion and/or in combination with manual review by a user). In some aspects, block 935 may include establishing a second session with a second user by receiving user account credentials for a second user account. The user account credentials may include, for example, a user name and password for the second user account. The second user interface may then be generated over the second session. The second user account credentials may be associated with an account that is designated as associated with an entity. The entity may be associated with one or more image filters, with the subset of images having these one or more image filters applied to them.
In some aspects, controls may be provided to enable a user to page through multiple images within the selected content 530, only one of which is shown at a time in the embodiment of
In some other aspects, the content display 540 may be displayed on a non-touch display. In these aspects, the content display may be configured to display icons, such as arrows, when a pointing device hovers over a left or right portion of a displayed image. Clicking on the icon may move the highlight reel in a direction indicated by the icon.
In some aspects, the highlight reel shown in
In some aspects, the type of content displayed in the highlight reel may be limited. For example, in some aspects, only content passing through a specific process may be displayed by the user interface of
Thus, the highlight reel user interface may provide an ability to review particular images to which a set of image filters are applied. The image filters may be associated with an entity, such as a particular corporation, which may have, in some aspects, funded development of the associated image filters. The images accessible via the highlight reel interface may be created by social network users, who may consent to their inclusion in the highlight reel. By facilitating a mechanism to channel user generated images that use particular image filters for viewing by a user associated with the entity, the value provided by the particular image filters associated with the entity may be readily visible to the entity, while also protecting user privacy and ensuring the images shared with the entity are appropriate. Security access controls may be implemented to make the highlight reel viewing capability accessible only to those user accounts associated with the entity. In some aspects, only a subset of such users may have access to the highlight reel viewing. For example, access controls may define a separate capability for access to the highlight reel. Thus, the user must be associated with the entity and also have the separate capability indicated before they may access the highlight reel. This separate capability may be reserved for certain management personnel associated with the entity, for example, certain personnel with a marketing group of the entity.
Software Architecture
As used herein, the term “component” may refer to a device, a physical entity, or logic having boundaries defined by function or subroutine calls, branch points, APIs, and/or other technologies that provide for the partitioning or modularization of particular processing or control functions. Components may be combined via their interfaces with other components to carry out a machine process. A component may be a packaged functional hardware unit designed for use with other components and a part of a program that usually performs a particular function of related functions.
Components may constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. A “hardware component” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various exemplary embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware component that operates to perform certain operations as described herein. A hardware component may also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic that is permanently configured to perform certain operations.
A hardware component may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC). A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware components become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware component mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
A processor may be, or include, any circuit or virtual circuit (a physical circuit emulated by logic executing on an actual processor) that manipulates data values according to control signals (e.g., “commands,” “op codes,” “machine code,” etc.) and that produces corresponding output signals that are applied to operate a machine. A processor may, for example, be 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 ASIC, a Radio-Frequency Integrated Circuit (RFIC), or any combination thereof. A processor may further be a multi-core processor having two or more independent processors (sometimes referred to as “cores”) that may execute instructions contemporaneously.
Accordingly, the phrase “hardware component” (or “hardware-implemented component”) should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering embodiments in which hardware components are temporarily configured (e.g., programmed), each of the hardware components need not be configured or instantiated at any one instance in time. For example, where a hardware component comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware components) at different times. Software accordingly configures a particular processor or processors, for example, to constitute a particular hardware component at one instance of time and to constitute a different hardware component at a different instance of time. Hardware components can provide information to, and receive information from, other hardware components. Accordingly, the described hardware components may be regarded as being communicatively coupled. Where multiple hardware components exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware components. In embodiments in which multiple hardware components are configured or instantiated at different times, communications between or among such hardware components may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware components have access.
For example, one hardware component may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware component may then, at a later time, access the memory device to retrieve and process the stored output. Hardware components may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented component” refers to a hardware component implemented using one or more processors. Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components.
Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some exemplary embodiments, the processors or processor-implemented components may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other exemplary embodiments, the processors or processor-implemented components may be distributed across a number of geographic locations.
In the exemplary architecture of
The operating system 1102 may manage hardware resources and provide common services. The operating system 1102 may include, for example, a kernel 1122, services 1124, and drivers 1126. The kernel 1122 may act as an abstraction layer between the hardware and the other software layers. For example, the kernel 1122 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on. The services 1124 may provide other common services for the other software layers. The drivers 1126 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 1126 include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth depending on the hardware configuration.
The libraries 1120 provide a common infrastructure that is used by the applications 1116 and/or other components and/or layers. The libraries 1120 provide functionality that allows other software components to perform tasks in an easier fashion than by interfacing directly with the underlying operating system 1102 functionality (e.g., kernel 1122, services 1124, and/or drivers 1126). The libraries 1120 may include system libraries 1144 (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 1120 may include API libraries 1146 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), web libraries (e.g., WebKit that may provide web browsing functionality), and the like. The libraries 1120 may also include a wide variety of other libraries 1148 to provide many other APIs to the applications 1116 and other software components/modules.
The frameworks/middleware 1118 provide a higher-level common infrastructure that may be used by the applications 1116 and/or other software components/modules. For example, the frameworks/middleware 1118 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth. The frameworks/middleware 1118 may provide a broad spectrum of other APIs that may be utilized by the applications 1116 and/or other software components/modules, some of which may be specific to a particular operating system 1102 or platform.
The applications 1116 include built-in applications 1138 and/or third-party applications 1140. Examples of representative built-in applications 1138 may include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, and/or a game application. The third-party applications 1140 may include an application developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform, and may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or other mobile operating systems. The third-party applications 1140 may invoke the API calls 1108 provided by the mobile operating system (such as the operating system 1102) to facilitate functionality described herein.
The applications 1116 may use built-in operating system functions (e.g., kernel 1122, services 1124, and/or drivers 1126), libraries 1120, and frameworks/middleware 1118 to create user interfaces to interact with users of the system. Alternatively, or additionally, in some systems interactions with a user may occur through a presentation layer, such as the presentation layer 1114. In these systems, the application/component “logic” can be separated from the aspects of the application/component that interact with a user.
Exemplary Machine
The machine 1200 may include processors 1204, memory/storage 1206, and I/O components 1218, which may be configured to communicate with each other such as via a bus 1202. The memory/storage 1206 may include a memory 1214, such as a main memory, or other memory storage, and a storage unit 1216, both accessible to the processors 1204 such as via the bus 1202. The storage unit 1216 and memory 1214 store the instructions 1210 embodying any one or more of the methodologies or functions described herein. The instructions 1210 may also reside, completely or partially, within the memory 1214, within the storage unit 1216, within at least one of the processors 1204 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 1200. Accordingly, the memory 1214, the storage unit 1216, and the memory of the processors 1204 are examples of machine-readable media.
As used herein, the term “machine-readable medium,” “computer-readable medium,” or the like may refer to any component, device, or other tangible medium able to store instructions and data temporarily or permanently. Examples of such media may include, but are not limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Electrically Erasable Programmable Read-Only Memory (EEPROM)), and/or any suitable combination thereof. The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions. The term “machine-readable medium” may also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., code) for execution by a machine, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” may refer to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” excludes transitory signals per se.
The I/O components 1218 may include a wide variety of components to provide a user interface for receiving input, providing output, producing output, transmitting information, exchanging information, capturing measurements, and so on. The specific I/O components 1218 that are included in the user interface of a particular machine 1200 will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 1218 may include many other components that are not shown in
In further exemplary embodiments, the I/O components 1218 may include biometric components 1230, motion components 1234, environment components 1236, or position components 1238, as well as a wide array of other components. For example, the biometric components 1230 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion components 1234 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environment components 1236 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components 1238 may include location sensor components (e.g., a GPS receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
Communication may be implemented using a wide variety of technologies. The I/O components 1218 may include communication components 1240 operable to couple the machine 1200 to a network 1232 or devices 1220 via a coupling 1224 and a coupling 1222 respectively. For example, the communication components 1240 may include a network interface component or other suitable device to interface with the network 1232. In further examples, the communication components 1240 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices 1220 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).
Moreover, the communication components 1240 may detect identifiers or include components operable to detect identifiers. For example, the communication components 1240 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF4111, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 1240, such as location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth.
The dataflow 1300 begins at the client devices 102a-e. Any number of client devices may generate content, and store the content in the image table 308. In some aspects, one or more of the images generated by the client devices 102a-e
The classifier 405 may read images from the image table 308 and classify the images into at least two groups. A first group is images that may be appropriate for inclusion in a highlight reel. Another group may be other images not appropriate for inclusion in a highlight reel. In some aspects, the classifier 405 may be further configured to identify images of a third group, those appropriate for inclusion in a highlight reel but unlikely to receive user consent for such inclusion.
Images identified as appropriate the highlight reel may be passed from the classifier 405 to the dashboard component 406. The dashboard component may provide for additional screening of images identified by the classifier. For example, some images identified by the classifier may be judged to be inappropriate for the highlight reel and/or inappropriate to suggest to a user for consent. After any secondary screening is completed by the dashboard component 406, the remaining images are stored in the suggested table 320. Consent for inclusion in the highlight reel is then requested by the consent component 409. If consent is provided by the user, the consent for sharing of the image is recorded in the accepted table 330.
The classifier 405 may then read the model data 1520 to determine a probability that the content is in the first category, second category, or in some embodiments, the third category. For example, in some aspects, the classifier 405 may determine a probability that the content is in the first category 1540. In some aspects, the classifier 405 may determine a probability that the content is in the second category 1550. In some aspects, the first category 2040 and/or second category 1550 may be determined for each of the user generated content 512a and 512b, discussed above with respect to
The classifier 405 may base the determination of categories 1530 and/or 1550 based on characteristics of the user generated content 1555. As discussed above, characteristics considered include characteristics of the content itself 1560, characteristics of the user who generated the content 1570, characteristics of a channel 1580 over which the content may be presented, and/or temporal aspects of the content 1590.
Where a phrase similar to “at least one of A, B, or C,” “at least one of A, B, and C,” “one or more of A, B, or C,” or “one or more of A, B, and C” is used, it is intended that the phrase be interpreted to mean that A alone may be present in an embodiment, B alone may be present in an embodiment, C alone may be present in an embodiment, or any combination of the elements A, B, and C may be present in a single embodiment; for example, A and B, A and C, B and C, or A and B and C may be present.
Changes and modifications may be made to the disclosed embodiments without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure, as expressed in the following claims.
The application is a continuation of U.S. patent application Ser. No. 16/050,969, filed Jul. 31, 2018, which claims the benefit of priority to U.S. Provisional Application Ser. No. 62/539,316, filed Jul. 31, 2017. The contents of these prior applications are considered part of this application, and are hereby incorporated by reference in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
5754939 | Herz et al. | May 1998 | A |
6038295 | Mattes | Mar 2000 | A |
6158044 | Tibbetts | Dec 2000 | A |
6167435 | Druckenmiller et al. | Dec 2000 | A |
6205432 | Gabbard et al. | Mar 2001 | B1 |
6310694 | Okimoto et al. | Oct 2001 | B1 |
6484196 | Maurille | Nov 2002 | B1 |
6487586 | Ogilvie et al. | Nov 2002 | B2 |
6665531 | Soderbacka et al. | Dec 2003 | B1 |
6701347 | Ogilvie | Mar 2004 | B1 |
6711608 | Ogilvie | Mar 2004 | B1 |
6757713 | Ogilvie et al. | Jun 2004 | B1 |
6980909 | Root et al. | Dec 2005 | B2 |
7124164 | Chemtob | Oct 2006 | B1 |
7149893 | Leonard et al. | Dec 2006 | B1 |
7173651 | Knowles | Feb 2007 | B1 |
7243163 | Friend et al. | Jul 2007 | B1 |
7278168 | Chaudhury et al. | Oct 2007 | B1 |
7356564 | Hartselle et al. | Apr 2008 | B2 |
7376715 | Cunningham et al. | May 2008 | B2 |
7411493 | Smith | Aug 2008 | B2 |
7478402 | Christensen et al. | Jan 2009 | B2 |
7496347 | Puranik | Feb 2009 | B2 |
7519670 | Hagale et al. | Apr 2009 | B2 |
7535890 | Rojas | May 2009 | B2 |
7607096 | Oreizy et al. | Oct 2009 | B2 |
7703140 | Nath et al. | Apr 2010 | B2 |
7912896 | Wolovitz et al. | Mar 2011 | B2 |
8131597 | Hudetz | Mar 2012 | B2 |
8170957 | Richard | May 2012 | B2 |
8199747 | Rojas et al. | Jun 2012 | B2 |
8214443 | Hamburg | Jul 2012 | B2 |
8238947 | Lottin et al. | Aug 2012 | B2 |
8244593 | Klinger et al. | Aug 2012 | B2 |
8312097 | Siegel et al. | Nov 2012 | B1 |
8332475 | Rosen et al. | Dec 2012 | B2 |
8570907 | Garcia, Jr. et al. | Oct 2013 | B2 |
8718333 | Wolf et al. | May 2014 | B2 |
8724622 | Rojas | May 2014 | B2 |
8745132 | Obradovich | Jun 2014 | B2 |
8874677 | Rosen et al. | Oct 2014 | B2 |
8909679 | Root et al. | Dec 2014 | B2 |
8909714 | Agarwal et al. | Dec 2014 | B2 |
8909725 | Sehn | Dec 2014 | B1 |
8914752 | Spiegel | Dec 2014 | B1 |
8995433 | Rojas | Mar 2015 | B2 |
9040574 | Wang et al. | May 2015 | B2 |
9055416 | Rosen et al. | Jun 2015 | B2 |
9083770 | Drose et al. | Jul 2015 | B1 |
9094137 | Sehn et al. | Jul 2015 | B1 |
9100806 | Rosen et al. | Aug 2015 | B2 |
9100807 | Rosen et al. | Aug 2015 | B2 |
9113301 | Spiegel et al. | Aug 2015 | B1 |
9148424 | Yang | Sep 2015 | B1 |
9191776 | Root et al. | Nov 2015 | B2 |
9204252 | Root | Dec 2015 | B2 |
9225805 | Kujawa et al. | Dec 2015 | B2 |
9225897 | Sehn et al. | Dec 2015 | B1 |
9237202 | Sehn | Jan 2016 | B1 |
9264463 | Rubinstein et al. | Feb 2016 | B2 |
9276886 | Samaranayake | Mar 2016 | B1 |
9294425 | Son | Mar 2016 | B1 |
9385983 | Sehn | Jul 2016 | B1 |
9396354 | Murphy et al. | Jul 2016 | B1 |
9407712 | Sehn | Aug 2016 | B1 |
9407816 | Sehn | Aug 2016 | B1 |
9430783 | Sehn | Aug 2016 | B1 |
9443227 | Evans et al. | Sep 2016 | B2 |
9482882 | Hanover et al. | Nov 2016 | B1 |
9482883 | Meisenholder | Nov 2016 | B1 |
9489661 | Evans et al. | Nov 2016 | B2 |
9491134 | Rosen et al. | Nov 2016 | B2 |
9532171 | Allen et al. | Dec 2016 | B2 |
9537811 | Allen et al. | Jan 2017 | B2 |
9560006 | Prado et al. | Jan 2017 | B2 |
9628950 | Noeth et al. | Apr 2017 | B1 |
9652896 | Jurgenson et al. | May 2017 | B1 |
9659244 | Anderton et al. | May 2017 | B2 |
9693191 | Sehn | Jun 2017 | B2 |
9705831 | Spiegel | Jul 2017 | B2 |
9742713 | Spiegel et al. | Aug 2017 | B2 |
9785796 | Murphy et al. | Oct 2017 | B1 |
9825898 | Sehn | Nov 2017 | B2 |
9854219 | Sehn | Dec 2017 | B2 |
9961520 | Brooks et al. | May 2018 | B2 |
11216517 | Ahmed et al. | Jan 2022 | B1 |
20020047868 | Miyazawa | Apr 2002 | A1 |
20020144154 | Tomkow | Oct 2002 | A1 |
20030052925 | Daimon et al. | Mar 2003 | A1 |
20030126215 | Udell | Jul 2003 | A1 |
20030217106 | Adar et al. | Nov 2003 | A1 |
20040203959 | Coombes | Oct 2004 | A1 |
20050097176 | Schatz et al. | May 2005 | A1 |
20050198128 | Anderson et al. | Sep 2005 | A1 |
20050223066 | Buchheit et al. | Oct 2005 | A1 |
20060242239 | Morishima et al. | Oct 2006 | A1 |
20060270419 | Crowley et al. | Nov 2006 | A1 |
20070038715 | Collins et al. | Feb 2007 | A1 |
20070064899 | Boss et al. | Mar 2007 | A1 |
20070073823 | Cohen et al. | Mar 2007 | A1 |
20070214216 | Carrer et al. | Sep 2007 | A1 |
20070233801 | Eren et al. | Oct 2007 | A1 |
20080052945 | Matas | Mar 2008 | A1 |
20080055269 | Lemay et al. | Mar 2008 | A1 |
20080120409 | Sun et al. | May 2008 | A1 |
20080184139 | Stewart | Jul 2008 | A1 |
20080207176 | Brackbill et al. | Aug 2008 | A1 |
20080270938 | Carlson | Oct 2008 | A1 |
20080306826 | Kramer et al. | Dec 2008 | A1 |
20080313346 | Kujawa et al. | Dec 2008 | A1 |
20090042588 | Lottin et al. | Feb 2009 | A1 |
20090132453 | Hangartner et al. | May 2009 | A1 |
20100082427 | Burgener et al. | Apr 2010 | A1 |
20100131880 | Lee et al. | May 2010 | A1 |
20100185665 | Horn et al. | Jul 2010 | A1 |
20100306669 | Della Pasqua | Dec 2010 | A1 |
20110066743 | Hurley et al. | Mar 2011 | A1 |
20110099507 | Nesladek et al. | Apr 2011 | A1 |
20110145564 | Moshir et al. | Jun 2011 | A1 |
20110202598 | Evans et al. | Aug 2011 | A1 |
20110213845 | Logan et al. | Sep 2011 | A1 |
20110258560 | Mercuri et al. | Oct 2011 | A1 |
20110286586 | Saylor et al. | Nov 2011 | A1 |
20110320373 | Lee et al. | Dec 2011 | A1 |
20120028659 | Whitney et al. | Feb 2012 | A1 |
20120184248 | Speede | Jul 2012 | A1 |
20120209921 | Adafin et al. | Aug 2012 | A1 |
20120209924 | Evans et al. | Aug 2012 | A1 |
20120254325 | Majeti et al. | Oct 2012 | A1 |
20120278692 | Shi | Nov 2012 | A1 |
20120304080 | Wormald et al. | Nov 2012 | A1 |
20130071093 | Hanks et al. | Mar 2013 | A1 |
20130138735 | Kanter et al. | May 2013 | A1 |
20130191455 | Penumaka | Jul 2013 | A1 |
20130194301 | Robbins et al. | Aug 2013 | A1 |
20130290443 | Collins et al. | Oct 2013 | A1 |
20140032682 | Prado et al. | Jan 2014 | A1 |
20140122787 | Shalvi et al. | May 2014 | A1 |
20140143247 | Rathnavelu et al. | May 2014 | A1 |
20140201527 | Krivorot | Jul 2014 | A1 |
20140279061 | Elimeliah et al. | Sep 2014 | A1 |
20140282096 | Rubinstein et al. | Sep 2014 | A1 |
20140325383 | Brown et al. | Oct 2014 | A1 |
20140359024 | Spiegel | Dec 2014 | A1 |
20140359032 | Spiegel et al. | Dec 2014 | A1 |
20150199082 | Scholler et al. | Jul 2015 | A1 |
20150227602 | Ramu et al. | Aug 2015 | A1 |
20150334168 | Kosslyn | Nov 2015 | A1 |
20160085773 | Chang et al. | Mar 2016 | A1 |
20160085863 | Allen et al. | Mar 2016 | A1 |
20160086670 | Gross et al. | Mar 2016 | A1 |
20160099901 | Allen et al. | Apr 2016 | A1 |
20160180887 | Sehn | Jun 2016 | A1 |
20160267126 | Olson et al. | Sep 2016 | A1 |
20160277419 | Allen et al. | Sep 2016 | A1 |
20160321708 | Sehn | Nov 2016 | A1 |
20160359957 | Laliberte | Dec 2016 | A1 |
20160359987 | Laliberte | Dec 2016 | A1 |
20170046340 | Bhide | Feb 2017 | A1 |
20170070358 | Svendsen | Mar 2017 | A1 |
20170161382 | Ouimet et al. | Jun 2017 | A1 |
20170263029 | Yan et al. | Sep 2017 | A1 |
20170269819 | Pinpin et al. | Sep 2017 | A1 |
20170287006 | Azmoodeh et al. | Oct 2017 | A1 |
20170295250 | Samaranayake et al. | Oct 2017 | A1 |
20170323312 | Penumaka et al. | Nov 2017 | A1 |
20170351417 | Manico et al. | Dec 2017 | A1 |
20170374003 | Allen et al. | Dec 2017 | A1 |
20170374508 | Davis et al. | Dec 2017 | A1 |
20180089593 | Patel et al. | Mar 2018 | A1 |
Number | Date | Country |
---|---|---|
2887596 | Jul 2015 | CA |
WO-2012000107 | Jan 2012 | WO |
WO-2013008251 | Jan 2013 | WO |
WO-2014194262 | Dec 2014 | WO |
WO-2015192026 | Dec 2015 | WO |
WO-2016054562 | Apr 2016 | WO |
WO-2016065131 | Apr 2016 | WO |
WO-2016112299 | Jul 2016 | WO |
WO-2016179166 | Nov 2016 | WO |
WO-2016179235 | Nov 2016 | WO |
WO-2017176739 | Oct 2017 | WO |
WO-2017176992 | Oct 2017 | WO |
WO-2018005644 | Jan 2018 | WO |
Entry |
---|
“U.S. Appl. No. 16/050,969, Advisory Action dated Jan. 15, 2021”, 12 pgs. |
“U.S. Appl. No. 16/050,969, Final Office Action dated Oct. 28, 2020”, 16 pgs. |
“U.S. Appl. No. 16/050,969, Non Final Office Action dated Jun. 1, 2020”, 13 pgs. |
“U.S. Appl. No. 16/050,969, Notice of Allowance dated Mar. 24, 2021”, 16 pgs. |
“U.S. Appl. No. 16/050,969, Notice of Allowance dated Jul. 1, 2021”, 15 pgs. |
“U.S. Appl. No. 16/050,969, Response filed Jul. 27, 2020 to Non Final Office Action dated Jun. 1, 2020”, 9 pgs. |
“U.S. Appl. No. 16/050,969, Response filed Dec. 28, 2020 to Final Office Action dated Oct. 28, 2020”, 10 pgs. |
Castelluccia, Claude, et al., “EphPub: Toward robust Ephemeral Publishing”, 19th IEEE International Conference on Network Protocols (ICNP), (Oct. 17, 2011), 18 pgs. |
Fajman, “An Extensible Message Format for Message Disposition Notifications”, Request for Comments: 2298, National Institutes of Health, (Mar. 1998), 28 pgs. |
Leyden, John, “This SMS will self-destruct in 40 seconds”, [Online] Retrieved from the Internet: <URL: http://www.theregister.co.uk/2005/12/12/stealthtext/>, (Dec. 12, 2005), 1 pg. |
Melanson, Mike, “This text message will self destruct in 60 seconds”, [Online] Retrieved from the Internet: <URL: http://readwrite.com/2011/02/11/this_text_message_will_self_destruct_in_60_seconds>, (Feb. 18, 2015), 4 pgs. |
Sawers, Paul, “Snapchat for iOS Lets You Send Photos to Friends and Set How long They're Visible For”, [Online] Retrieved from the Internet: <URL: https://thenextweb.com/apps/2012/05/07/snapchat-for-ios-lets-you-send-photos-to-friends-and-set-how-long-theyre-visible-for/>, (May 7, 2012), 5 pgs. |
Shein, Esther, “Ephemeral Data”, Communications of the ACM, vol. 56, No. 9, (Sep. 2013), 3 pgs. |
Vaas, Lisa, “StealthText, Should You Choose to Accept It”, [Online] Retrieved from the Internet: <URL: http://www.eweek.com/print/c/a/MessagingandCollaboration/StealthTextShouldYouChoosetoAcceptIt>, (Dec. 13, 2005), 2 pgs. |
Number | Date | Country | |
---|---|---|---|
20220019637 A1 | Jan 2022 | US |
Number | Date | Country | |
---|---|---|---|
62539316 | Jul 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16050969 | Jul 2018 | US |
Child | 17449706 | US |