The implementations disclosed herein relate generally to throttling the display of electronic messages on a user interface.
The average user of an email application receives many electronic messages a day. For ease of reference, it may be preferred that messages containing a particular type of content (e.g., emails relating to travels, such as rental car bookings, flight tickets, and hotel reservations) are automatically organized together, even though these messages themselves do not appear related to one another. As another example, users often like to have messages relating to social network updates (e.g., Jane, a law school friend, recently joined a GOOGLE+ group for young alumni; and Tim, a co-worker, has just published a vacation photo on his GOOGLE PICASA website), grouped together and visually presented together in a listing of the user's electronic messages.
Problems exist with offering such a feature, however. One problem is that constant updating of a group of messages can cause the group of messages to constantly appear at the top of a list of messages (e.g., an email inbox). For example, displaying “Travel” emails in a group and promoting the “Travel” email group to the top of a user's inbox every time a new email is added to the group. Another problem is that a user may wish to promote particular groups of electronic messages to the top of a listing of electronic messages, based on time (e.g., the day of the week, the time of day, the month of the year), quantity of messages (e.g., after the group has 5 or more messages) or quality (e.g., importance of the group or importance of the most recent message received and assigned to the group).
The above identified technical problems are reduced or eliminated by the systems and methods disclosed herein.
The implementations disclosed herein are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. Like reference numerals refer to corresponding parts throughout the drawings.
Technical solutions (e.g., computing systems, methods, and non-transitory computer readable storage mediums) for throttling display of clustered electronic messages are provided in the present application.
In some implementations, a method for throttling display of electronic messages grouped into a message cluster includes, at a computing device, detecting occurrence of one or more cluster throttling trigger events for a first message cluster, of a first cluster type, in an email application. The method further includes, updating a set of properties for the first message cluster in accordance with the one or more cluster throttling trigger events and comparing the updated set of properties for the first message cluster to one or more cluster display throttling rules associated with the first message cluster. The method includes, in accordance with a determination that the set of properties for the first message cluster satisfies the one or more cluster display throttling rules, refreshing display of the first message cluster within a listing of electronic messages.
In some implementations, refreshing display of the first message cluster within a listing of electronic messages comprises displaying the first message cluster at the top of the listing or re-ranking the first message cluster within the listing based upon one or more re-ranking criteria. In some implementations, one of the one or more re-ranking criteria is a function of a time of occurrence of the one or more cluster throttling trigger events.
In some implementations, a cluster display throttling trigger event of the one or more cluster throttling trigger events is receipt of an incoming electronic message corresponding to the first message cluster. In some implementations, a cluster throttling trigger event of the one or more cluster throttling trigger events is the detection of passage of a predetermined amount of time since refreshing display of the first message cluster.
In some implementations, a cluster display throttling trigger event of the one or more cluster throttling trigger events is detection of the occurrence of a particular time of day and/or the occurrence of a predetermined date.
In some implementations, a cluster display throttling rule of the one or more cluster display throttling rules comprises receipt by the first message cluster of a predefined number of new electronic messages since previously refreshing display of the first message cluster. In some implementations, a cluster display throttling rule of the one or more cluster display throttling rules comprises receipt by the first message cluster of at least one new electronic message since previously refreshing display of the first message cluster, and occurrence of a particular time of day.
In some implementations, a cluster display throttling rule of the one or more cluster display throttling rules comprises the first message cluster receiving at least one new electronic message since previously refreshing display of the first message cluster and passage of a predetermined amount of time since previously refreshing display of the first message cluster.
In some implementations, a cluster display throttling rule of the one or more cluster display throttling rules comprises the first message cluster receiving at least one new electronic message since previously refreshing display of the first message cluster, where the at least one new electronic message is identified as having priority.
In some implementations, at least a subset of the one or more cluster display throttling rules is user-generated. In some implementations, one cluster display throttling rule of the one or more cluster display throttling rules is a default rule for message clusters of the first cluster type. In some implementations, one cluster display throttling rule of the one or more cluster display throttling rules is a default rule for all message clusters displayed in the listing of electronic messages. In some implementations, the default rule for all message clusters displayed in the listing of electronic messages overrides all other cluster display throttling rules.
In some implementations, satisfaction of the one or more cluster display throttling rules is based on a weighted combination of the one or more cluster display throttling rules.
In other aspects of the present disclosure, computing systems and non-transitory computer storage mediums for executing one or more steps of any of the above-described methods or any of the methods disclosed herein are also disclosed.
The implementations described herein provide various technical solutions to improve display of electronic messages, and in particular to the above-identified problems, by providing techniques for throttling or adjusting display of clustered electronic messages within a listing of electronic messages. Details of implementations are now described in relation to the Figures.
In some implementations, the computing system 100 includes one or more devices 102 (e.g., device 102A, 102B, 102C, 102D . . . , and 102N), a communication network 104, and a cluster throttling system 106. In some implementations, a device 102 is a phone (mobile or landline, smart phone or otherwise), a tablet, a computer (mobile or otherwise), a fax machine, or an audio/video recorder.
In some implementations, a device 102 obtains an electronic message from (e.g., drafted or generated by) a user of the device 102, and transmits the electronic message to the cluster throttling system 106 for clustering with (e.g., grouping with or separating from) other electronic messages. For example, after determining that user Jack sends an email to user Mary, the device 102 transmits the email to the cluster throttling system 106, which clusters messages for Mary. In some implementations, the electronic message acts as an incoming trigger event 111 for cluster throttling system 106, that governs the display of the various message clusters 120 (e.g., moving a message cluster to the top of an email inbox).
In some implementations, a trigger event is message-based trigger event, comprising a file transfer 111-a (e.g., a photo, document, or video download/upload), an email 111-b, an instant message 111-c (e.g., a GOOGLE HANGOUT message), a fax message 111-d, a social network update 111-e (e.g., a GOOGLE PLUS update), or a voice message 111-f. In some implementations, an incoming trigger event 111 is a time-based trigger event, such as the occurrence of a particular time of day (e.g., 5 PM) or particular time of the week (e.g., 12:01 AM, Saturday morning). In some implementations, an incoming trigger event 111 is a duration of time (e.g., 1 day), and in some implementations, this duration of time is measured since the last time the message cluster was updated.
In some implementations, a device 102 includes a messaging application 150 and optionally an analysis module 110 (similar to the analysis module 170 included in the cluster throttling system 106). In some implementations, the messaging application 150 processes incoming and outgoing electronic messages into and from the device 102, such as an outgoing email sent by a user of the device 102 to another user, and a chat message by another user to a user of the device 102. In some implementations, the analysis module 110 resident on the device 102 balances processing load with the analysis module 170 resident on the cluster throttling system 106.
In some implementations, the communication network 104 interconnects one or more devices 102 with each other, and with the cluster throttling system 106. In some implementations, the communication network 104 optionally includes the Internet, one or more local area networks (LANs), one or more wide area networks (WANs), other types of networks, or a combination of such networks.
In some implementations, the cluster throttling system 106 includes an analysis module 170, a trigger queue 112, a collection of cluster throttling rules 114 (e.g., user or system-provided rules), and optionally a rule customization module 118.
As a non-limiting example, a cluster throttling system 106 analyzes incoming trigger events 111, such as receiving incoming electronic messages corresponding to one or more message clusters 120, where a message cluster is one or more electronic messages having a collective, content-based association (e.g., a “Promotions” cluster of promotional emails, or a “Social Network” cluster of social network posts) and a common message type. In some instances, incoming trigger events 111 get queued up for analysis by analysis module 170 of the cluster throttling system 106, in trigger queue 112.
In some cases, starting with Trigger One 113-1, the cluster throttling system 106 identifies one or more message clusters (e.g., message cluster 120-1) associated with Trigger One 113-1. In some instances, a single trigger event corresponds to more than one message cluster (e.g., a time-based trigger event detecting occurrence of 12:01 AM on Saturday morning). In some cases, cluster throttling system 106 and/or analysis module 170 updates a set of properties for the one or more message clusters associated with Trigger One 113-1. For example, if Trigger One 113-1 is receipt of a new message associated with message cluster 120-1, the properties for message cluster 120-1 are updated to reflect receipt of this additional message. In another example, if Trigger One 113-1 is detection of occurrence of a particular day of the week (e.g., Saturday), the properties for message cluster 120-1 (and/or other message clusters) are updated to reflect that the particular day of the week has occurred. In another example, if Trigger One 113-1 is detection of the passage of time since message cluster 120-1 had its display refreshed, the properties for message cluster 120-1 are updated to reflect this passage of time. In some cases, these message cluster properties are updated and stored in the respective message clusters (e.g., the cluster properties for message cluster 120-1 stored with message cluster 120-1). In some cases, cluster properties for some or all of the message clusters in cluster throttling system 106 are updated and stored in cluster properties module 116.
In some cases, after cluster throttling system 106 analyzes a trigger event and determines the corresponding message cluster, analysis module 170 determines which one or more cluster throttling rules apply to the respective message cluster. For example, if Trigger One 113-1 corresponds to Message Cluster 120-1, analysis module 170 determines that cluster throttling rules Rule One 114-1 and Rule Three 114-3 control display throttling of the cluster.
In some cases, cluster throttling system 106 and/or analysis module 170 analyzes the updated set of properties for the one or more identified message clusters against one or more cluster throttling rules applied to the respective message clusters (e.g., Rule One 114-1 and Rule Three 114-3 for message cluster 120-1). In some cases, the same cluster throttling rule is applied to more than one message cluster. In some cases, a message cluster of a particular type (e.g., a travel message cluster) is automatically assigned one or more cluster throttling rules by the system upon generation of the cluster. In some cases, one or more of the cluster throttling rules are user-generated, using rule customization module 118. In some cases, the one or more user-generated rules are created for only one particular message cluster, while in some cases the one or more user-generated rules can be applied to more than one message cluster. In some cases, there is one default cluster throttling rule for all message clusters, or for all message clusters of a particular type. In some cases one cluster throttling rule has superseding authority over all other cluster throttling rules in cluster throttling system 106.
In some cases, cluster throttling system 106 and/or analysis module 170 determines that the refreshed set of properties for a respective message cluster (e.g., message cluster 120-1) satisfies the one or more cluster display throttling rules associated with the respective message cluster (e.g., Rule One 114-1, Rule Three 114-3). For example, if Trigger One 113-1 is a new message corresponding to message cluster 120-1, and Rule One 114-1 is satisfied if the properties of message cluster 120-1 indicate that a new message has been received at the message cluster.
In some cases, if one or more rules associated with a respective message cluster are satisfied, cluster throttling system 106 refreshes display of the message cluster within a listing of email messages (e.g., an email inbox). Cluster throttling system 106 sends this information to communication network 104 to transmit to a device 102. These approaches are advantageous, because a user may be able to quickly and more efficiently view messages of greater importance within a listing of electronic messages.
In some implementations, the analysis module 110 is a software or hardware component resident on the device 102, such as a software package/application or a hardware chipset, for throttling display of clustered messages, and analysis module 170 on server 106 is not used. In some implementations, the analysis module 110 is not present and analysis module 170, which exists separate from or independent of the device 102 is used (e.g., a GOOGLE mail cluster throttling/processing server that is connected with but not part of the device 102, e.g., in the manner depicted in
In some implementations, the trigger queue 112 stores one or more electronic messages awaiting analysis by the analysis module 170. In some implementations, the trigger queue 112 includes different types of electronic messages, such as a file transfer 111-a (e.g., a photo, document, or video upload), an email 111-b, an instant message 111-c (e.g., a Google HANGOUT message), a fax message 111-d, a social network update 111-e (e.g., a GOOGLE PLUS update), or a voice message 111-f. In some implementations, the trigger queue 112 includes various events, such as a passage of time since a respective message cluster was displayed, occurrence of a particular time of day or date, or activation of a new device 120 within computing system 100.
In some implementations, the collection of cluster throttling rules 114 include system and user-specified clustering rules. In some implementations, system-provided rules are determined by the cluster throttling system 106 (e.g., default cluster throttling rules), and user-specified rules are customized (e.g., added, removed, or modified) by a user.
In some implementations, a rule customization module 118 enables a user to customize (e.g., add, remove, and modify) cluster throttling rules within the collection of cluster throttling rules 114. These approaches enable customizing cluster throttling results to a user's specific needs.
In some implementations, the user interface 205 includes an input device (e.g., a keyboard, a mouse, a touchpad, a track pad, and a touch screen) for a user to interact with the device 102.
In some implementations, one or more of the above identified elements are stored in one or more of the previously mentioned memory devices, and correspond to a set of instructions for performing a function described above. The above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, the memory 206 optionally stores a subset of the modules and data structures identified above. Furthermore, the memory 206 may store additional modules and data structures not described above.
In some implementations, one or more of the above identified elements are stored in one or more of the previously mentioned memory devices, and correspond to a set of instructions for performing a function described above. The above identified modules or programs (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, the memory 256 optionally stores a subset of the modules and data structures identified above. Furthermore, the memory 256 may store additional modules and data structures not described above.
Although
Table 400 also comprises row 418 and row 420, illustrating an exemplary message cluster “Google+ Updates,” of a social network updates cluster type. This exemplary message cluster has two cluster throttling rules assigned to it, namely rule 4 and rule 15. In this example, rule 4 is set as the default rule, to refresh display of the message cluster after accumulation of 3 new messages, and responds to the trigger event of receiving a new social network post. In this example, rule 15 is a user-generated cluster throttling rule that refreshes display of the cluster immediately upon receipt of a message from Andy, a particular friend of the user of the email application. In some embodiments, rule 15 supersedes rule 4 with respect to display of the “Google+ Updates” message cluster, because it is a user-generated rule. In some embodiments, the most recently assigned rule to a message cluster has the highest priority for the respective message cluster (i.e., it supersedes all other rules assigned to the respective message cluster).
Table 400 also comprises row 422 and row 424, illustrating an exemplary message cluster “Airfare Deals,” of a travel cluster type. This exemplary message cluster has two cluster display throttling rules assigned to it, namely rule 1 and rule 8. In this example, rule 1 is set as the default rule, and is also a rule applied to the “Black Friday Sales” cluster in row 414. This shows that in some embodiments, a respective cluster display throttling rule can be applied to more than one message cluster. Rule 8 illustrates a cluster display throttling rule associated with a keyword-based trigger event (e.g., refresh display immediately upon receipt of a message containing flights to Hawaii).
Row 426 of table 400 illustrates another time-based trigger event (e.g., detect time to be 6:00 PM on a Friday) and corresponding cluster display throttling rule, Rule 10. In some embodiments, a message cluster has only one associated cluster display throttling rule. In some embodiments, if the message cluster is a user-generated message cluster, it also requires a user-generated cluster display throttling rule. In some embodiments, a message cluster does not have a cluster display throttling rule, and display of that message cluster is not throttled or adjusted within a listing of electronic messages.
Row 428 and row 430 of table 400, illustrate an exemplary message cluster “Gardening Tips,” of a newsletters cluster type. This exemplary message cluster has two cluster display throttling rules assigned to it, namely Rule 17 and Rule 18. Row 428 and row 430 illustrate that the same cluster throttling trigger event can correspond to more than one cluster display throttling rule, even for a single, respective message cluster. For example, in row 428 and row 430, the trigger event is receiving a new message corresponding to the “Gardening Tips” message cluster. Rule 17 and Rule 18 are “seasonal” time-based rules that are set to refresh display of the “Gardening Tips” message cluster much more frequently in the warmer months (e.g., March to September), than the colder months (e.g., October to February). In some embodiments, a pair or a set of cluster throttling rules work together in tandem, therefore there is no default cluster display throttling rule among them. For example, neither Rule 17 nor Rule 18 is set to be the default cluster display throttling rule for the “Gardening Tips” message cluster.
Row 432 and row 434 of table 400, illustrate an exemplary message cluster “Grocery and Pharmacy” of the sales/promotions cluster type and essentials cluster sub-type. This exemplary message cluster has two cluster display throttling rules assigned to it, namely Rule 2 and Rule 21. Row 432 and row 434 illustrate an example of a message cluster having two cluster display throttling rules that have some contradiction to each other. Rule 2 refreshes display immediately upon receipt of a new message by the “Grocery and Pharmacy” message cluster, but Rule 21 ceases to refresh display of the message cluster during the hours of 9:00 AM and 5:00 PM, Monday to Friday. This example illustrates that in some embodiments, a message cluster has conflicting or contradictory cluster display throttling rules. In some embodiments, the most recently applied cluster throttling rule takes precedence and supersedes the older rule or rules associated with the message cluster. In some embodiments, if a message cluster has a user-specified cluster display throttling rule associated with it, that user-specified (or user-generated) rule takes precedence. In some embodiments, when one rule takes precedence over other cluster display throttling rules, it only takes precedence during conditions where there is a conflict between the rules (e.g., the condition of detecting 9:00 AM to 5:00 PM, Monday to Friday with respect to Rule 2 and Rule 21). In some embodiments, when one rule takes precedence over other cluster display throttling rules, it renders the other conflicting rule or rules inactive.
Row 436 of table 400 illustrates a master default cluster display throttling rule that applies to all message clusters. In this example, Rule 3 applies to all message clusters, and ceases to refresh display of all message clusters while the email application's auto-away response has been activated by the user. In some embodiments, there can only be one master default cluster display throttling rule for all message clusters in the email application, or for all message clusters in a particular listing of electronic messages (e.g., all clusters in the inbox, or all clusters in a folder). In some embodiments, there can be more than one master default cluster display throttling rule within the email application, or for all message clusters in a particular listing of electronic messages.
In some embodiments, a cluster throttling trigger event (508) of the one or more cluster throttling trigger events is detection of the occurrence of a particular time of day (e.g., 5:00 PM or Friday at 5:00 PM). In some embodiments, a cluster throttling trigger event (510) of the one or more cluster throttling trigger events is detection of the occurrence of a date (e.g., October 31).
The method further includes updating (512) a set of properties for the first message cluster in accordance with the one or more cluster throttling trigger events. For example, updating a set of properties for a respective message cluster with the number of new electronic messages since previously refreshing display of the respective message cluster. In another example, the set of properties for a respective message cluster is updated to include the passage of time since previously refreshing display of the respective message cluster.
The method further includes comparing (514) the refreshed set of properties for the first message cluster to one or more cluster display throttling rules associated with the first message cluster. In some embodiments, a cluster display throttling rule (516) of the one or more cluster display throttling rules comprises receipt by the first message cluster of a predefined number of new electronic messages since previously refreshing display of the first message cluster (e.g., Rule 1 in
In some embodiments, a cluster display throttling rule (520) of the one or more cluster display throttling rules comprises the first message cluster receiving at least one new electronic message since previously refreshing display of the first message cluster and passage of a predetermined amount of time since previously refreshing display of the first message cluster. For example, the rule requires a respective message cluster to have received at least one new message within the last 24 hours, to allow refreshing display of the message cluster. In some embodiments, a cluster display throttling rule (522) of the one or more cluster display throttling rules comprises the first message cluster receiving at least one new electronic message since previously refreshing display of the first message cluster, where the at least one new electronic message is identified as having priority. For example, an electronic message is identified as having priority because it is a flagged or starred (e.g., user designated priority) message, or it is from a particular sender or it comprises one or more key words.
In some embodiments, at least a subset of the one or more cluster display throttling rules (524) is user-generated (e.g., Rule 15 for the Google+ Updates message cluster in
The method further includes, in accordance with a determination that the set of properties for the first message cluster satisfies the one or more cluster display throttling rules, refreshing (532) display of the first message cluster within a listing of electronic messages. For example, in accordance with a determination that the set of properties for a respective cluster indicate that at least one new electronic message has been received in the last 24 hours, the respective message cluster is displayed at the top of a list of email messages in an email inbox if it is assigned a cluster display throttling rule requiring receipt of at least one new electronic message within the last 24 hours.
In some embodiments, refreshing display (534) of the first message cluster within a listing of electronic messages comprises displaying the first message cluster at the top of the listing (e.g., cluster 304 in
In some embodiments, satisfaction of the one or more cluster display throttling rules (540) is based on a weighted combination of the one or more cluster display throttling rules. For example, display of the respective message cluster is refreshed based on how well it met a weighted combination of its assigned rule satisfaction (e.g., 50% of Rule 1 satisfaction and 50% of Rule 2 satisfaction). In this example, even if the respective message cluster only satisfies one of its two rules, its display is still refreshed within the listing of electronic messages if the threshold for satisfaction of the weighted combination is a score or value of 0.4 (e.g., since the message cluster attained a score or value of 0.5).
In some embodiments, refreshing display of the first message cluster within a listing of electronic messages is based on a rule-satisfaction score. For example, a respective message cluster receives a “score” based on a weighted combination of its two cluster display throttling rules, one that requires at least 3 newly received electronic messages since previously refreshing display of the message cluster and the other requiring receipt of one or more newly received electronic messages indicating a priority (e.g., starred messages). In this example, if the message cluster receives 7 new electronic messages since previously refreshing display of the message cluster and 3 of those electronic messages are marked as having a high priority, this particular message cluster receives a high “score” and is correspondingly promoted within the listing of electronic messages when display of the respective message cluster is refreshed.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the implementation(s). In general, structures and functionality presented as separate components in the example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the implementation(s).
It will also be understood that, although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first message cluster could be termed a second message cluster, and, similarly, a second message cluster could be termed a first message cluster, without changing the meaning of the description, so long as all occurrences of the “first message cluster” are renamed consistently and all occurrences of the “second message cluster” are renamed consistently. The first message cluster and the second message cluster are both message clusters, but they are not the same message cluster.
The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting of the claims. As used in the description of the implementations and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined (that a stated condition precedent is true)” or “if (a stated condition precedent is true)” or “when (a stated condition precedent is true)” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
The foregoing description included example systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative implementations. For purposes of explanation, numerous specific details were set forth in order to provide an understanding of various implementations of the inventive subject matter. It will be evident, however, to those skilled in the art that implementations of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures and techniques have not been shown in detail.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles and their practical applications, to thereby enable others skilled in the art to best utilize the implementations and various implementations with various modifications as are suited to the particular use contemplated.
This application is a continuation of U.S. patent application Ser. No. 14/145,005, filed Dec. 31, 2013, entitled “Systems and Methods for Throttling Display of Electronic Messages,” which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4914650 | Sriram | Apr 1990 | A |
5948040 | DeLorme et al. | Sep 1999 | A |
5948058 | Kudoh et al. | Sep 1999 | A |
6044260 | Eaton et al. | Mar 2000 | A |
6057841 | Thurlow et al. | May 2000 | A |
6147977 | Thro et al. | Nov 2000 | A |
6232972 | Arcuri et al. | May 2001 | B1 |
6252597 | Lokuge | Jun 2001 | B1 |
6333973 | Smith et al. | Dec 2001 | B1 |
6351764 | Voticky et al. | Feb 2002 | B1 |
6421709 | McCormick et al. | Jul 2002 | B1 |
6507866 | Barchi | Jan 2003 | B1 |
6700591 | Sharpe | Mar 2004 | B1 |
6704772 | Ahmed et al. | Mar 2004 | B1 |
6725228 | Clark et al. | Apr 2004 | B1 |
6778642 | Schmidt, Jr. et al. | Aug 2004 | B1 |
6961341 | Krishnan | Nov 2005 | B1 |
7120865 | Horvitz et al. | Oct 2006 | B1 |
7167910 | Farnham et al. | Jan 2007 | B2 |
7194516 | Giacobbe et al. | Mar 2007 | B2 |
7359947 | Kelley et al. | Apr 2008 | B2 |
7386535 | Kalucha et al. | Jun 2008 | B1 |
7415504 | Schiavone et al. | Aug 2008 | B2 |
7421690 | Forstall et al. | Sep 2008 | B2 |
7429993 | Hui | Sep 2008 | B2 |
7475120 | Ngo et al. | Jan 2009 | B1 |
7506263 | Johnston et al. | Mar 2009 | B1 |
7536652 | Uemura et al. | May 2009 | B2 |
7539732 | Kelso et al. | May 2009 | B2 |
7568011 | Bocking et al. | Jul 2009 | B2 |
7689656 | McCarthy et al. | Mar 2010 | B2 |
7707255 | Satterfield et al. | Apr 2010 | B2 |
7730137 | Toomey | Jun 2010 | B1 |
7765212 | Surendran et al. | Jul 2010 | B2 |
7788329 | Barrett et al. | Aug 2010 | B2 |
7814155 | Buchheit et al. | Oct 2010 | B2 |
7895279 | Forstall et al. | Feb 2011 | B2 |
7895537 | Gruen et al. | Feb 2011 | B2 |
7958099 | Kang et al. | Jun 2011 | B2 |
7979501 | Coleman et al. | Jul 2011 | B1 |
7996900 | Gillum et al. | Aug 2011 | B2 |
8010613 | Oral et al. | Aug 2011 | B2 |
8031845 | Gruen et al. | Oct 2011 | B2 |
8041745 | Newton et al. | Oct 2011 | B2 |
8065369 | Turski et al. | Nov 2011 | B2 |
8095400 | Herde et al. | Jan 2012 | B2 |
8108469 | Kent, Jr. et al. | Jan 2012 | B2 |
8140703 | Morris et al. | Mar 2012 | B2 |
8150926 | Sundararajan et al. | Apr 2012 | B2 |
8150930 | Satterfield et al. | Apr 2012 | B2 |
8176130 | Daniell | May 2012 | B2 |
8224902 | Glasser et al. | Jul 2012 | B1 |
8230350 | Dodsworth | Jul 2012 | B2 |
8233885 | Kansal et al. | Jul 2012 | B2 |
8239874 | Anderson et al. | Aug 2012 | B2 |
8281382 | Sanyal et al. | Oct 2012 | B1 |
8286089 | Hardy et al. | Oct 2012 | B2 |
8307029 | Davis et al. | Nov 2012 | B2 |
8375307 | Kim | Feb 2013 | B2 |
8375400 | Sutedja et al. | Feb 2013 | B2 |
8402096 | Affronti et al. | Mar 2013 | B2 |
8448084 | Brichter | May 2013 | B2 |
8499042 | Brown et al. | Jul 2013 | B2 |
8499048 | Malik et al. | Jul 2013 | B2 |
8533274 | Buchheit et al. | Sep 2013 | B2 |
8560619 | Huston et al. | Oct 2013 | B1 |
8572277 | Morris et al. | Oct 2013 | B2 |
8577967 | Chavez et al. | Nov 2013 | B1 |
8583747 | Buchheit et al. | Nov 2013 | B2 |
8626851 | Buchheit et al. | Jan 2014 | B2 |
8656289 | Dodsworth | Feb 2014 | B1 |
8701018 | Keel et al. | Apr 2014 | B1 |
20020143871 | Meyer et al. | Oct 2002 | A1 |
20020160757 | Shavit et al. | Oct 2002 | A1 |
20030020749 | Abu-Hakima et al. | Jan 2003 | A1 |
20030154212 | Schirmer et al. | Aug 2003 | A1 |
20030177190 | Moody et al. | Sep 2003 | A1 |
20030195811 | Hayes, Jr. et al. | Oct 2003 | A1 |
20030214534 | Uemura et al. | Nov 2003 | A1 |
20030233419 | Beringer | Dec 2003 | A1 |
20040078190 | Fass et al. | Apr 2004 | A1 |
20040153456 | Charnock et al. | Aug 2004 | A1 |
20040199529 | Clark et al. | Oct 2004 | A1 |
20040254998 | Horvitz | Dec 2004 | A1 |
20050004990 | Durazo et al. | Jan 2005 | A1 |
20050018819 | Schmidt, Jr. et al. | Jan 2005 | A1 |
20050080851 | Kent, Jr. et al. | Apr 2005 | A1 |
20050080862 | Kent, Jr. et al. | Apr 2005 | A1 |
20050102366 | Kirsch | May 2005 | A1 |
20050114781 | Brownholtz et al. | May 2005 | A1 |
20050138552 | Venolia | Jun 2005 | A1 |
20050193076 | Flury et al. | Sep 2005 | A1 |
20050193345 | Klassen et al. | Sep 2005 | A1 |
20050228790 | Ronnewinkel et al. | Oct 2005 | A1 |
20050246658 | Uemura et al. | Nov 2005 | A1 |
20050256968 | Johnson | Nov 2005 | A1 |
20060010215 | Clegg et al. | Jan 2006 | A1 |
20060031340 | Mathew et al. | Feb 2006 | A1 |
20060031347 | Sahi | Feb 2006 | A1 |
20060059238 | Slater et al. | Mar 2006 | A1 |
20060064410 | Razza et al. | Mar 2006 | A1 |
20060069734 | Gersh et al. | Mar 2006 | A1 |
20060075044 | Fox et al. | Apr 2006 | A1 |
20060095466 | Stevens et al. | May 2006 | A1 |
20060123360 | Anwar et al. | Jun 2006 | A1 |
20060173824 | Bensky et al. | Aug 2006 | A1 |
20060173961 | Turski et al. | Aug 2006 | A1 |
20060206495 | Van Gageldonk et al. | Sep 2006 | A1 |
20060277504 | Zinn | Dec 2006 | A1 |
20070005592 | Kender et al. | Jan 2007 | A1 |
20070038718 | Khoo et al. | Feb 2007 | A1 |
20070106729 | Adams et al. | May 2007 | A1 |
20070156669 | Marcisio et al. | Jul 2007 | A1 |
20070203991 | Fisher | Aug 2007 | A1 |
20070262861 | Anderson et al. | Nov 2007 | A1 |
20070277113 | Agrawal et al. | Nov 2007 | A1 |
20070299923 | Skelly et al. | Dec 2007 | A1 |
20080215687 | Madnani | Sep 2008 | A1 |
20090037350 | Rudat | Feb 2009 | A1 |
20090089798 | Anderson et al. | Apr 2009 | A1 |
20100017492 | Reistad | Jan 2010 | A1 |
20100030798 | Kumar et al. | Feb 2010 | A1 |
20100049806 | Haynes et al. | Feb 2010 | A1 |
20100056221 | Park | Mar 2010 | A1 |
20100114855 | Li et al. | May 2010 | A1 |
20100199180 | Brichter | Aug 2010 | A1 |
20100262922 | Fan et al. | Oct 2010 | A1 |
20100278453 | King | Nov 2010 | A1 |
20100306249 | Hill et al. | Dec 2010 | A1 |
20110010182 | Turski et al. | Jan 2011 | A1 |
20110072363 | Mandel et al. | Mar 2011 | A1 |
20110231499 | Stovicek et al. | Sep 2011 | A1 |
20110289106 | Rankin et al. | Nov 2011 | A1 |
20110307804 | Spierer | Dec 2011 | A1 |
20120013805 | Mihara et al. | Jan 2012 | A1 |
20120102037 | Ozonat | Apr 2012 | A1 |
20120110085 | Malik | May 2012 | A1 |
20120131095 | Luna et al. | May 2012 | A1 |
20120149342 | Cohen et al. | Jun 2012 | A1 |
20120180021 | Byrd et al. | Jul 2012 | A1 |
20120185781 | Guzman et al. | Jul 2012 | A1 |
20120185797 | Thorsen et al. | Jul 2012 | A1 |
20120198053 | Ozhan et al. | Aug 2012 | A1 |
20120204191 | Shia et al. | Aug 2012 | A1 |
20120210334 | Sutedja et al. | Aug 2012 | A1 |
20120271908 | Luna et al. | Oct 2012 | A1 |
20120272160 | Spivack et al. | Oct 2012 | A1 |
20130024440 | Dimassimo et al. | Jan 2013 | A1 |
20130055099 | Yao et al. | Feb 2013 | A1 |
20130055105 | Spierer | Feb 2013 | A1 |
20130110953 | Sutedja et al. | May 2013 | A1 |
20130159879 | Affronti et al. | Jun 2013 | A1 |
20130165165 | Macek et al. | Jun 2013 | A1 |
20130166280 | Quast et al. | Jun 2013 | A1 |
20130212189 | Velissarakos | Aug 2013 | A1 |
20130297604 | Sutedja et al. | Nov 2013 | A1 |
20130305187 | Phillips et al. | Nov 2013 | A1 |
20130325705 | Laird et al. | Dec 2013 | A1 |
20130332850 | Bovet et al. | Dec 2013 | A1 |
20140046945 | Deolalikar et al. | Feb 2014 | A1 |
20140047050 | Kim | Feb 2014 | A1 |
20140052797 | Lessard et al. | Feb 2014 | A1 |
20140096032 | Mayblum et al. | Apr 2014 | A1 |
20140096033 | Blair | Apr 2014 | A1 |
20140115495 | Wetherell et al. | Apr 2014 | A1 |
20140279016 | Capel et al. | Sep 2014 | A1 |
20140280619 | Banatwala | Sep 2014 | A1 |
20140280635 | Bengochea et al. | Sep 2014 | A1 |
20140310324 | Branton et al. | Oct 2014 | A1 |
20140344711 | Hallerstrom Sjostedt et al. | Nov 2014 | A1 |
20140359480 | Vellal et al. | Dec 2014 | A1 |
20150088784 | Dhara et al. | Mar 2015 | A1 |
Entry |
---|
Soni, “An automatic email mining approach using semantic non-parametric K—means++ clustering”, May 2013, 104 pgs. |
Kandogan et al., “Avatar Semantic Search: A Database Approach to Information Retrieval”, 2006, 3 pgs. |
Cohen, Learning Rules that classify E-mail, Feb. 22, 2002, 8 pgs. |
Number | Date | Country | |
---|---|---|---|
20150358269 A1 | Dec 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14145005 | Dec 2013 | US |
Child | 14829587 | US |