BACKGROUNDIndividuals often communicate or exchange information electronically, for example, using electronic mail (email), instant messaging (IM), forums, blogs, social networking sites, and text messaging. These types of electronic communication make it easy to transmit information and content between individuals and among groups.
As individuals communicate via electronic media more frequently, it becomes increasingly difficult to track the source(s) and destination(s) of the content that is communicated. In particular, it becomes difficult for a user to remember who sent the content to them initially, and to whom they have forwarded the content. Also, for content that originates with the user, it becomes difficult to remember whether or not certain content has been sent to another individual.
The difficulty in tracking content sources and destinations can have detrimental effects on the user. Congestion is one potential disadvantage to not tracking from whom content is received and to whom content is sent. In particular, the inability to effectively track such content can result in various copies of the content residing in different places among one or more communication clients. These extra copies make it more cumbersome to search through communications because the copies increase the number of items that are sorted during a search.
Additionally, potential embarrassment is another disadvantage to not tracking the source and destination of content. For example, when the source of specific content is unknown, or not tracked, it is possible for a user to send the content back to the original sender, without realizing that the content is not new to the original sender. In this example, the user may be embarrassed to learn that the user sent the content back to the person from whom the content was initially received. As another example, a user may repeatedly send the same content to a recipient, without realizing that the user has sent the same content to the same recipient already. In this example, the user may be embarrassed to learn that the user has repeatedly sent the same content to the same recipient over and over.
SUMMARYEmbodiments of a computer program product are described. In one embodiment, the computer program product includes a computer useable storage medium to store a computer readable program for tracking media object data that, when executed on a computer, causes the computer to perform operations. The operations may include storing usage data for a media object used in a first message. The usage data indicates historical usage of the media object by a user. The operations may also include recalling the stored usage data for the media object in response to associating the media object with a second message. The operations may also include communicating to the user the stored usage data corresponding to the media object prior to sending the second message with the media object to a recipient. Other embodiments of the computer program product are also described.
Embodiments of a system for tracking media object usage are also described. In one embodiment, the system includes display device and a communication client. The display device displays messages to a user. The communication client is coupled to the display device. The communication client includes a message composer and a media object tracker. The message composer facilitates composing a message from the user. The media object tracker generates usage data corresponding to the media object associated with a first message. The usage data indicates historical usage of the media object by the user. The media object tracker also recalls usage data for the media object and sends the usage data to the display device for viewing by the user in response to an association of the media object with a second message. Other embodiments of the system are also described.
Embodiments of an apparatus for tracking media object usage are also described. In one embodiment, the apparatus includes a detection engine, an entry update engine, and a lookup engine. The detection engine detects an association between a media object and a first message. The entry update engine is coupled to the detection engine. The entry update engine stores usage data in a media object directory within a data repository. The usage data indicates the association between the media object and the first message. The lookup engine is coupled to the detection engine. The lookup engine recalls the stored usage data for the media object and communicates the stored usage data to a user in response to detection of an association between the media object and a second message. Other embodiments of the apparatus are also described.
Embodiments of a computer-implemented method are also described. In one embodiment, the computer-implemented method is a method for tracking usage data for a media object. The method includes generating a log to track usage data for a media object used in a first message. The method also includes storing the usage data log on an electronic storage device coupled to a communication device. The method also includes recalling the stored usage data for the media object in response to association the media object with a second message. The method also includes communicating the user the stored usage data corresponding to the media object prior to sending the second message with the media object to a recipient. Other embodiments of the computer-implemented method are also described.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example of the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 depicts a schematic diagram of one embodiment of a system for communication between a first communication device and a second communication device.
FIG. 2 depicts a schematic diagram of one embodiment of the first communication device ofFIG. 1.
FIG. 3 depicts a schematic diagram of one embodiment of the media object tracker ofFIG. 2.
FIG. 4 depicts a schematic diagram of one embodiment of the directory ofFIG. 2.
FIGS. 5A and 5B depict embodiments of alternative arrangements of the data repository and media object tracker ofFIGS. 1 and 2.
FIG. 6 depicts one embodiment of a message pane within a graphical user interface.
FIG. 7 depicts a flowchart diagram of one embodiment of a method for generating data for a media object ofFIG. 2.
FIG. 8 depicts a flowchart diagram of one embodiment of a method for managing a media object ofFIG. 2.
FIG. 9 depicts a flowchart diagram of one embodiment of a method for tracking data for the media object ofFIG. 2.
Throughout the description, similar reference numbers may be used to identify similar elements.
DETAILED DESCRIPTIONIt will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated. The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
While many embodiments are described herein, at least some of the described embodiments track data corresponding to a media object within a communication. In certain embodiments, a media object tracker stores a history of a media object used in communication such as email, text messaging, or instant messenger. For example, a media object may be a moving gif, a sound, music, a video clip, or picture, or an emoticon, or commonly used phrase. The history of the media file may include times and dates or other data relevant to the use and history of the media file. In certain embodiments, the tracker communicates data to a user for the media file which describes the usage of the media file. For example, the data communicated to the user may include data related to a frequency of use with respect to a certain contact, data corresponding to a source from which the user received the media object, etc.
FIG. 1 depicts a schematic diagram of one embodiment of asystem100 for tracking media object data. Thesystem100 includes afirst communication device102, asecond communication device104, adata repository106, and anetwork108. In some embodiments, thenetwork108 is an internet, intranet, LAN, WAN, or wireless network. In other embodiments, thenetwork108 is any other type of network to link at least two electronic devices. In some embodiments, the first andsecond communication devices102 and104 communicate across thenetwork108. In some embodiments, the first andsecond communication device102 and104 communicate directly. In other embodiments, thecommunication devices102 and104 communicate wirelessly, through, for example, short-range technology, or other forms of wireless or wired electronic communication. In the illustrated embodiment, thedata repository106 is coupled to thenetwork108. In one embodiment, thedata repository106 stores data in a central location for access from thenetwork108. In some embodiments, thedata repository106 is a server or other location to store data. In other embodiments, thedata repository106 is located in at least one of the first andsecond communication devices102 and104. Thesecond communication device104 is coupled to thenetwork108 and is similar to thefirst communication device102. Thefirst communication device102 is described in further detail below.
FIG. 2 depicts a schematic diagram of one embodiment of thefirst communication device102 ofFIG. 1. Thefirst communication device102 includes acommunication client110, adata repository106, and adisplay116 coupled to thecommunication client102.
Although the depictedfirst communication device102 includes thecommunication client110, other embodiments of thefirst communication device102 may include fewer or more clients. Additionally, at least some of the resources of each client may be shared among multiple clients. For example, some embodiments of thefirst communication device102 store email, IM, text messages and related data on a single data repository (e.g., data repository106). As another example, the messages and related data of thefirst communication device102 may be stored on more than one data repository. Other configurations also may be implemented.
Thedata repository106 is coupled to thecommunication client110. In some embodiments, thedata repository106 is a random access memory (RAM) or another type of dynamic storage device. In other embodiments, thedata repository106 is a read-only memory (ROM) or another type of static storage device. In other embodiments, the illustrateddata repository106 is representative of both RAM and static storage memory within asingle communication device102. In other embodiments, thedata repository106 is an electronically programmable read-only memory (EPROM) or another type of storage device. Additionally, some embodiments store the instructions as firmware such as embedded foundation code, basic input/output system (BIOS) code, or other similar code.
Thedisplay116 of thefirst communication device102 is coupled to thecommunication client110. In some embodiments, thedisplay116 is configured to generate audio tones to communicate with a user. In other embodiments, thedisplay116 is a graphical display such as a cathode ray tube (CRT) monitor, a liquid crystal display (LCD) monitor, or another type of display device. In one embodiment, thedisplay116 is configured to convey a representation of a media object history, a confirmation message, or a media object data interface. Additionally, thedisplay116 may be configured to communicate to the user, through audio, video, or other perceptible communications. Other functions related to themedia object120 are discussed below in further detail.
The media objecttracker114 is coupled to thecommunication client110. The media objecttracker114 is configured to track and organize data for amedia object120 used in amessage118 such as text, IM, email, etc. The media objecttracker114 is described in further detail below with reference toFIG. 2.
Thecommunication client110 is coupled to thedisplay116, thedata repository106, and the media objecttracker114. In some embodiments, thecommunication client110 is an instant messenger, email, text, or other type of synchronous or asynchronous communication between thefirst communication device102 and thesecond communication device104. Thecommunication client110 includes amessage composer112. Themessage composer112 is configured to facilitate the generation of amessage118. For example, themessage composer112 may allow a user to insert text, drag-and-drop amedia object120, or compose a message through other actions.
Themessage118 is a form of communication that corresponds to themessage composer112 of thecommunication client110. For example, themessage118 may be an email, instant message, text message, or other type of electronic communication that corresponds to thecommunication client110. In some embodiments, themessage118 is a synchronous message. In other words, in one embodiment, themessage118 is an instant communication to be sent to a recipient and received directly after the user sends themessage118. One example of a synchronous message is an instant message (IM). In another embodiment, themessage118 is an asynchronous message. In other words, in another embodiment, themessage118 is a message that is sent to a recipient without the requirement that the recipient be online or otherwise ready to immediately receive themessage118. One example of an asynchronous message is an email that is sent to a recipient and then read by the recipient the day after themessage118 was sent.
Themessage118 includes amedia object120. In one embodiment, themedia object120 is attached to themessage118. In another embodiment, themedia object120 is embedded within themessage118. Other embodiments include other manners of connecting the media object120 with themessage118. In some embodiments, themedia object120 is stored in a central location on thenetwork108 for access from multiple electronic devices that can be coupled to thenetwork108. In another embodiment, themedia object120 is stored locally on thefirst communication device102. In some embodiments, themedia object120 is added to themessage118 by typing a string into themessage118. In another embodiment, themedia object120 is added to themessage118 by dragging the media object120 from a storage location and dropping it onto themessage composer112. Other embodiments include other ways of associating the media object120 with themessage118.
FIG. 3 depicts a schematic diagram of one embodiment of the media objecttracker114 ofFIG. 2. In the illustrated embodiment, the media objecttracker114 includes alookup engine124, adetection engine126, and anentry update engine128. Thedetection engine126 is configured to detect themedia object120 in themessage118. Thedetection engine126 activates thelookup engine124 upon detection of themedia object120. In one embodiment, thedetection engine126 is configured to use a recognition protocol to detect themedia object120. For example, thedetection engine126 might communicate with software that is attaching themedia object120. The attaching software recognizes that the media object is stored as a separate part of themessage118 and reports the information to thedetection engine126. In other embodiments, thedetection engine126 is configured to recognize a file type or extension, for example, .gif, .jpeg, .bmp, etc.
Thelookup engine124 is coupled to thedetection engine126 and is configured to access data from thedirectory122 upon detection of amedia object120 by thedetection engine126. In some embodiments, thelookup engine124 is configured to verify that themedia object120 has data corresponding to themedia object120 stored in thedirectory122. In some embodiments, the data for themedia object120 is stored after themedia object120 has been received, when the user enters data corresponding to themedia object120, or when themedia object120 is detected in amessage118.
In one embodiment, the media objecttracker114 may be incorporated into thefirst communication device102 separately from thecommunication client110. In this embodiment, the first communication device may include a client interface (not shown) to facilitate communication between thecommunication client110 and the media objecttracker114. The client interface might be coupled to thelookup engine124. The client interface is configured to interface with thecommunication client110. In this embodiment, the client interface is configured to notify a user of a detection of the media object120 associated with themessage118. An exemplary configuration of the client interface might display a visual notification corresponding to themedia object120 on adisplay116 in a separate window or a separate viewing space within a graphical-user interface of thecommunication device102. For example, media objecttracker114 may be configured to display an instant message on thedisplay114, via the client interface. For example, the instant message may be shown in a pop-up window. Alternatively, the instant message may be shown in a pane, or tile, of another viewing space such as the email viewing space. In some embodiments, the client interface is configured to display a notification on the header of the email client or a column of the header to indicate to the user the history of themedia object120. In one embodiment, the instant message is a short messaging service (SMS) text message, or some other type of message, that is sent to and displayed on thedisplay116 of a computer, (not shown), cell-phone (not shown), personal digital assistant (PDA, not shown), or some other similar communication device.
FIG. 4 depicts a schematic diagram of one embodiment of thedirectory122 ofFIG. 2. In one embodiment, as described previously with respect toFIG. 2, it may be advantageous to store thedirectory122 locally in thedata repository106 of thefirst communication device102 to allow for quicker access to thedirectory122 or to compose themessage118 before accessing thenetwork108 to send themessage118. In contrast, the embodiment in which thedirectory122 is stored in the data repository106 (connected to thenetwork108 as depicted inFIG. 1) may facilitate a user to have access to data stored in thedirectory122 from multiple communication devices connected to thenetwork108. Thedirectory122 contains data pertaining to themedia object120.
The illustrated embodiment ofFIG. 4, thedirectory122 includes themedia object120,usage data130,metadata132, anduser preferences134. Embodiments of thedirectory122 may include fewer or more types of data stored in thedirectory122. In some embodiments, themedia object120 is stored to thedirectory122 by the media objecttracker114. Other embodiments allow the user to store the media object120 to thedirectory122. In some embodiments, themedia object120 is an image, sound, or movie. Other embodiments may include other types of media objects120. Theusage data130 includes data corresponding to the usage of themedia object120. For example,usage data130 may include data corresponding to a frequency of use of themedia object120, a frequency in which themedia object120 has been sent to a given recipient, and time and date data corresponding to when themedia object120 was received. Other embodiments may include other types ofusage data130.
Themetadata132 includes data corresponding to themedia object120. In some embodiments, themetadata132 is identifier data. For example,metadata132 for amedia object120 that is a .gif of a butterfly may include identifier tags such as insect, bug, spring, summer, suitable for children, girl, happy, etc. Other embodiments of themetadata132 include other types of metadata corresponding to themedia object120. Theuser preferences134 is data stored in thedirectory122 that corresponds to at least one user preference for themedia object120. In some embodiments, theuser preferences134 are specific to themedia object120. In other embodiments, theuser preferences134 apply to more than one media object or type of media object. In some embodiments, theuser preferences134 might include, for example, sending rules like “Don't send this to Bill,” “Sally doesn't like moving gifs,” “Tell me when I have sent this jpg to more than four people,” etc. Other embodiments include other types ofuser preferences134.
FIGS. 5A and 5B depict schematic drawings of alternative embodiments for thedata repository106 ofFIGS. 1 and 2.FIG. 5A depicts one embodiment in which thedata repository106 is unique to each media objecttracker114 of anIM136 and anEmail138 or shared by both media objecttrackers114 ofFIG. 5A. Other embodiments implement other arrangements of thedata repository106.FIG. 5B illustrates one embodiment in which the media objecttracker114 is shared by theIM136 andEmail138. In this embodiment, the media objecttracker114 ofFIG. 5B is coupled to thedata repository106. Other embodiments include other arrangements of the media objecttracker114 anddata repository106.
FIG. 6 depicts one embodiment of amessage pane152 within agraphical user interface150.FIG. 6 includes amessage pane152, amedia object120, acursor154, and adisplay box156. The illustrated embodiment of thegraphical interface150 ofFIG. 6 depicts what a user might see on thedisplay116 of thefirst communication device102. In particular, themessage pane152, for example, may be an instant messenger chat pane, an email composition window, a text window, or other message generation space. In the depicted embodiment, themedia object120 is embedded into the text portion of themessage pane152. Thecursor154 is depicted as hovering over themedia object120. In some embodiments, thedisplay box156 is generated in response to the user hovering thecursor154 over themedia object120. In another embodiment, thedisplay box156 is generated by clicking on themedia object120. In another embodiment, thedisplay box156 is generated by dragging themedia object120 into themessage pane152. In another embodiment, thedisplay box156 is generated upon detection of themedia object120 in themessage pane152.
FIG. 7 depicts a flowchart diagram of one embodiment of amethod160 for generating data for amedia object120 ofFIG. 2. In the depicted embodiment, thedetection engine126 detects162 themedia object120. Thelookup engine124 then determines164 if data exists in thedirectory122 for themedia object120. If data is determined164 to exist for the media object120 theentry update engine128updates166 the data stored for themedia object120 in thedirectory122. If it is determined164 that no data exists for the media object120 theentry update engine128 creates168 an entry for themedia object120 in thedirectory122. Theentry update engine128 then adds169 media object data to thedirectory122.
FIG. 8 depicts a flowchart diagram of one embodiment of amethod170 for managing amedia object120 ofFIG. 2. In the illustrated embodiment, thedetection engine126 detects162 the presence of themedia object120. Thelookup engine124 then retrieves172 data for the media object120 from thedirectory122. Thelookup engine124 then determines174 if there is a rule for themedia object120 stored in thedirectory122. If there is no rule stored for themedia object120, the display communicates179 the usage data of the media object120 to the user. If it is determined174 that there is a rule for themedia object120, then it is determined176 if the rule corresponding to themedia object120 will be followed. In one embodiment, the option to comply with the rule governing themedia object120 is displayed to the user. In another embodiment, thelookup engine124 determines whether to comply with the rule. If it is determined176 to not comply with the rule, the display communicates179 the usage data of the media object120 to the user. If it is determined176 to comply with the rule, the rule is applied178. Then the display communicates179 the usage data of the media object120 to the user.
FIG. 9 depicts a flowchart diagram of one embodiment of amethod180 for tracking data for amedia object120. Themethod180 includes generating182 a log to track usage data for amedia object120 used in afirst message118. The usage data indicates historical usage of themedia object120 by a user. Themethod180 also includes storing184 the usage data log on an electronic storage device couple to a communication device. Themethod180 also includes recalling186 the stored usage data for themedia object120 in response to associating the media object120 with the second message. Themethod180 also includes communicating188 to the user the stored usage data corresponding to themedia object120 prior to sending the second message with the media object120 to a recipient.
Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
Embodiments of the invention can take the form of a combination of hardware and software elements. In one embodiment, the invention is implemented in an electronic storage device containing software, which includes but is not limited to firmware, resident software, microcode, etc. Furthermore, embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable storage medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable storage medium can be any apparatus that can contain or store the program for use by or in connection with the instruction execution system, apparatus, or device. Further, the computer-useable or computer-readable storage medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device). Examples of a computer-readable storage medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include a compact disk with read only memory (CD-ROM), a compact disk with read/write (CD-R/W), and a digital video disk (DVD).
An embodiment of a data processing system suitable for storing and/or executing program code includes at least one processor coupled directly or indirectly to memory elements through a system bus such as a data, address, and/or control bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Additionally, network adapters also may be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.