IP Library Granted Patent US 8,458,183
Granted Patent B2
US 8,458,183 · App. 13/361,900 · Granted Jun 4, 2013

System and method for identifying unique and duplicate messages

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,458,183
App. No.
13/361,900
Granted
Jun 4, 2013
Kind
B2
Abstract

A system and method for identifying unique and duplicate messages is provided. Messages are maintained, and a header and message body are extracted from each of the messages. A hash code is calculated for each message over at least part of the header and the body of that message. The messages with matching hash codes are grouped. One message in each group with two or more messages is randomly selected as a unique message. The remaining messages in the group are marked as exact duplicate messages.

Claims (102)

1. A system for identifying unique and duplicate messages, comprising:

a database of messages;

an extractor module to extract a header and a message body from each message;

a parser module to calculate a hash code for each message over at least part of the header and the body of that message and to group the messages having matching hash codes;

a deduper module to randomly select one message in each group with two or more messages as a unique message and to mark the remaining messages in the group as exact duplicate messages;

an attachment parser module to calculate a hash code over at least a portion of an attachment to two or more of the messages; and

a concatenator module to generate a compound hash code for each of the two or more messages by concatenating the hash code for that message and the hash code for the attachment; and

a processor to execute the modules.

2. A system according to claim 1 , further comprising:

a grouper module to group the two or more messages having matching compound hash codes;

a selection module to randomly select a single message in each group with two or more messages as a unique message; and

a message marker module to mark the remaining messages in the group as exact duplicate messages.

3. A system according to claim 1 , further comprising:

an identification module to identify the messages that are not unique and not exact duplicates and to group the identified messages by conversation thread; and

an order module to order the identified messages in order of length of the message body.

4. A system according to claim 3 , further comprising:

a comparison module to compare a longest identified message with each of the other identified messages in the conversation thread; and

a message marker module to mark at least one of the other identified messages in the conversation thread as a near duplicate of the longest identified message when the message body of the at least one other identified message is contained within the message body of the longest identified message.

5. A system according to claim 4 , wherein the message deduper marks the longest identified message as unique.

6. A system according to claim 3 , further comprising:

a comparison module to compare a longest identified message with each of the other identified messages in the conversation thread; and

a message marker module to mark at least one of the other identified messages in the conversation thread as unique when the message body of the at least one other identified message is not contained within the message body of the longest identified message.

7. A system according to claim 1 , further comprising:

an identification module to identify the messages that are not unique and not exact duplicates and to group the identified messages by conversation thread;

a calculation module to calculate a hash code over at least a portion of an attachment to one or more of the identified messages;

an order module to order the identified messages in order of length of the message body;

a message comparison module to compare a longest identified message with each of the other identified messages in the conversation thread;

a determination module to determine that the message body of at least one of the other identified messages is contained within the message body of the longest identified message;

an attachment comparison module to compare the attachment hash codes for the longest identified message and the at least one other identified message; and

a message marker module to mark the at least one other identified message as a near duplicate of the longest message when the attachment hash codes match.

8. A system according to claim 1 , wherein each hash code is calculated using a one-way function to generate a unique alphanumeric value comprising one of a purely numeric and purely alphabetic value.

9. A system according to claim 1 , wherein the message extractor parses metadata from each of the messages, which is stored with the hash code for that message.

10. A method for identifying unique and duplicate messages, comprising the steps of:

maintaining messages;

extracting a header and a message body from each message;

calculating a hash code for each message over at least part of the header and the body of that message;

grouping the messages having matching hash codes;

randomly selecting one message in each group with two or more messages as a unique message; and

marking the remaining messages in the group as exact duplicate messages;

calculating a hash code over at least a portion of an attachment to two or more of the messages; and

concatenating the hash code for each of the two or more messages with the hash code for the attachment into a compound hash code,

wherein the steps are performed by a suitably-programmed computer.

11. A method according to claim 10 , further comprising:

grouping the two or more messages having matching compound hash codes;

randomly selecting a single message in each group with two or more messages as a unique message; and

marking the remaining messages in the group as exact duplicate messages.

12. A method according to claim 10 , further comprising:

identifying the messages that are not unique and not exact duplicates and grouping the identified messages by conversation thread; and

ordering the identified messages in order of length of the message body.

13. A method according to claim 12 , further comprising:

comparing a longest identified message with each of the other identified messages in the conversation thread; and

marking at least one of the other identified messages in the conversation thread as a near duplicate of the longest identified message when the message body of the at least one other identified message is contained within the message body of the longest identified message.

14. A method according to claim 13 , further comprising:

marking the longest identified message as unique.

15. A method according to claim 12 , further comprising:

comparing a longest identified message with each of the other identified messages in the conversation thread; and

marking at least one of the other identified messages in the conversation thread as unique when the message body of the at least one other identified message is not contained within the message body of the longest identified message.

16. A method according to claim 10 , further comprising:

identifying the messages that are not unique and not exact duplicates and grouping the identified messages by conversation thread;

calculating a hash code over at least a portion of an attachment to one or more of the identified messages;

ordering the identified messages in order of length of the message body;

comparing a longest identified message with each of the other identified messages in the conversation thread;

determining that the message body of at least one of the other identified messages is contained within the message body of the longest identified message;

comparing the attachment hash codes for the longest identified message and the at least one other identified message; and

marking the at least one other identified message as a near duplicate of the longest message when the attachment hash codes match.

17. A method according to claim 10 , wherein each hash code is calculated using a one-way function to generate a unique alphanumeric value comprising one of a purely numeric and purely alphabetic value.

18. A method according to claim 10 , further comprising:

parsing metadata from each of the messages; and

storing the metadata with the hash code for that message.

19. A method for identifying unique and duplicate messages, comprising the steps of:

maintaining messages;

extracting a header and a message body from each message;

calculating a hash code for each message over at least part of the header and the body of that message;

grouping the messages having matching hash codes;

randomly selecting one message in each group with two or more messages as a unique message; and

marking the remaining messages in the group as exact duplicate messages;

identifying the messages that are not unique and not exact duplicates and grouping the identified messages by conversation thread; and

ordering the identified messages in order of length of the message body,

wherein the steps are performed by a suitably-programmed computer.

20. A method according to claim 19 , further comprising:

comparing a longest identified message with each of the other identified messages in the conversation thread; and

marking at least one of the other identified messages in the conversation thread as a near duplicate of the longest identified message when the message body of the at least one other identified message is contained within the message body of the longest identified message.

21. A method according to claim 20 , further comprising:

marking the longest identified message as unique.

22. A method according to claim 19 , further comprising:

comparing a longest identified message with each of the other identified messages in the conversation thread; and

marking at least one of the other identified messages in the conversation thread as unique when the message body of the at least one other identified message is not contained within the message body of the longest identified message.

23. A method for identifying unique and duplicate messages, comprising the steps of:

maintaining messages;

extracting a header and a message body from each message;

calculating a hash code for each message over at least part of the header and the body of that message;

grouping the messages having matching hash codes;

randomly selecting one message in each group with two or more messages as a unique message; and

marking the remaining messages in the group as exact duplicate messages;

identifying the messages that are not unique and not exact duplicates and grouping the identified messages by conversation thread;

calculating a hash code over at least a portion of an attachment to one or more of the identified messages;

ordering the identified messages in order of length of the message body;

comparing a longest identified message with each of the other identified messages in the conversation thread;

determining that the message body of at least one of the other identified messages is contained within the message body of the longest identified message;

comparing the attachment hash codes for the longest identified message and the at least one other identified message; and

marking the at least one other identified message as a near duplicate of the longest message when the attachment hash codes match,

wherein the steps are performed by a suitably-programmed computer.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2019
From: KAWAI, KENJI; MCDONALD, DAVID T
To: ATTENEX CORPORATION
Reel/Frame 050707/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2019
From: ATTENEX CORPORATION
To: FTI TECHNOLOGY LLC
Reel/Frame 050707/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2018
From: FTI CONSULTING TECHNOLOGY LLC
To: NUIX NORTH AMERICA INC.
Reel/Frame 047237/0019 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS AT REEL/FRAME 036031/0637 Recorded Sep 12, 2018
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: FTI CONSULTING TECHNOLOGY LLC
Reel/Frame 047060/0107 →
CHANGE OF NAME Recorded Apr 20, 2018
From: FTI TECHNOLOGY LLC
To: FTI CONSULTING TECHNOLOGY LLC
Reel/Frame 045785/0645 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 29, 2015
From: BANK OF AMERICA, N.A.
To: FTI CONSULTING, INC.; FTI CONSULTING TECHNOLOGY LLC
Reel/Frame 036029/0233 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Jun 29, 2015
From: FTI CONSULTING, INC.; FTI CONSULTING TECHNOLOGY LLC; FTI CONSULTING TECHNOLOGY SOFTWARE CORP
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036031/0637 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 10, 2012
From: FTI CONSULTING, INC.; FTI CONSULTING TECHNOLOGY LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 029434/0087 →