IP Library Granted Patent US 11,580,291
Granted Patent B2
US 11,580,291 · App. 16/922,141 · Granted Feb 14, 2023

Ambiguous date resolution for electronic communication documents

Inventor: Vladyslav Andrusenko (Kharkov, UA)
Assignee: RELATIVITY ODA LLC
G06F40/103G06F16/93G06F40/123G06F40/205G06F40/258
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 11,580,291
App. No.
16/922,141
Granted
Feb 14, 2023
Kind
B2
Abstract

A computer-implemented method for resolving date ambiguities in electronic communication documents includes identifying, within the documents, date field values each associated with a different instance of a communication segment. The method also includes resolving a candidate date for each different communication segment instance, with each candidate date being associated with a respective priority level indicative of a level of certainty with which the candidate date was resolved, and determining a final date from among the candidate dates at least by comparing the respective priority levels. The method further includes determining, based on the final date, an ordered relationship between the electronic communication documents, and storing metadata indicating the ordered relationship between the electronic communication documents.

Claims (57)

1. A computer-implemented method for resolving date ambiguities in electronic communication documents, the computer-implemented method comprising:

identifying, by one or more processors of a computing system and within the electronic communication documents, a plurality of date field values each associated with a different instance of a communication segment, wherein each different instance of the communication segment occurs in a different one of the electronic communication documents;

resolving, by the one or more processors, a candidate date for each different instance of the communication segment, wherein each candidate date is associated with a respective priority level indicative of a level of certainty with which the candidate date was resolved;

determining, by the one or more processors, a final date from among the candidate dates, at least by comparing the respective priority levels associated with the candidate dates;

determining, by the one or more processors and based on the final date, an ordered relationship between the electronic communication documents; and

storing, by the one or more processors, metadata indicating the ordered relationship between the electronic communication documents.

2. The computer-implemented method of claim 1 , wherein determining the final date includes, for each candidate date:

determining whether another candidate date was already resolved for the communication segment based on another one of the identified date field values; and

when determining that another candidate date was already resolved for the communication segment, comparing a priority level associated with the resolution of the candidate date to a priority level associated with the resolution of the other candidate date.

3. The computer-implemented method of claim 2 , wherein determining whether the other candidate node was already resolved for the communication segment, and comparing the priority levels, both include inspecting a data structure within a cache.

4. The computer-implemented method of claim 3 , wherein determining the final date further includes, for each candidate date, and when the priority level associated with the resolution of the candidate date is higher than the priority level associated with the resolution of the other candidate date, updating the data structure within the cache by replacing the other candidate date with the candidate date.

5. The computer-implemented method of claim 3 , wherein:

resolving the candidate date for each different instance of the communication segment includes applying one or more of a plurality of available date resolution mechanisms to the identified date field value associated with the instance of the communication segment.

each of the available date resolution mechanisms is associated with a respective mechanism-specific priority level; and

comparing the respective priority levels associated with the candidate dates includes iteratively comparing (i) a mechanism-specific priority level associated with a most recently resolved candidate date to (ii) a mechanism-specific priority level associated with a candidate date that is currently stored in the data structure.

6. The computer-implemented method of claim 5 , wherein at least some of the available date resolution mechanisms determine which of a plurality of date formats to apply to the identified date field value.

7. The computer-implemented method of claim 5 , wherein: one of the available date resolution mechanisms resolves dates with substantially 100% certainty for any date field values that can be resolved; and

another one of the available date resolution mechanisms resolves dates with substantially less than 100% certainty for at least some date field values that can be resolved, the other one of the available date resolution mechanisms having a lower mechanism-specific priority level than the one of the available date resolution mechanisms.

8. The computer-implemented method of claim 7 , wherein another one of the available date resolution mechanisms resolves dates with substantially less than 100% certainty for at least some date field values that can be resolved, the other one of the available date resolution mechanisms having a lower mechanism-specific priority level than the one of the available date resolution mechanisms.

9. The computer-implemented method of claim 7 , wherein:

another one of the available date resolution mechanisms resolves dates by, for a given date field value in a given communication segment of a given electronic communication document,

(i) identifying which communication segment, of all other communication segments in the given electronic communication document that include an unambiguous date field value, is the fewest number of communication segments away from the given communication segment, and

(ii) resolving a date for the given date field value using a date format that results in a smallest time distance between the date resolved for the given date field value and a date resolved for the unambiguous date field value of the identified communication segment; and

the other one of the available date resolution mechanisms is associated with a lower mechanism-specific priority level than the one of the available date resolution mechanisms.

10. The computer-implemented method of claim 7 , wherein:

another one of the available date resolution mechanisms resolves dates by, for a given date field value in a given communication segment of a given electronic communication document,

(i) determining that no communication segments in the given electronic communication document include an unambiguous date field value,

(ii) identifying a first date format that results in a smallest time distance between a first other communication segment of the given electronic communication document and a second other communication segment of the given electronic communication document,

(iii) identifying which communication segment, of the first and second other communication segments, is the fewest number of communication segments away from the given communication segment, and

(iv) resolving a date for the given date field value using a second date format that results in a smallest time distance between (a) the date resolved for the given date field value and (b) a date resolved for the date field value of the identified communication segment using the first date format; and

the other one of the available date resolution mechanisms is associated with a lower mechanism-specific priority level than the one of the available date resolution mechanisms.

11. The computer-implemented method of claim 1 , wherein identifying the plurality of date field values each associated with a different instance of the communication segment includes:

generating a separate hash for all communication segments within the electronic communication documents; and

comparing the generated hashes to identify all instances of the communication segment.

12. The computer-implemented method of claim 11 , wherein the data structure includes the hash generated for the communication segment.

13. The computer-implemented method of claim 1 , wherein each of the plurality of date field values is included in a respective embedded header.

14. A computing system comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing system to

identify, within electronic communication documents, a plurality of date field values each associated with a different instance of a communication segment, wherein each different instance of the communication segment occurs in a different one of the electronic communication documents,

resolve a candidate date for each different instance of the communication segment, wherein each candidate date is associated with a respective priority level indicative of a level of certainty with which the candidate date was resolved,

determine a final date from among the candidate dates, at least by comparing the respective priority levels associated with the candidate dates,

determine, based on the final date, an ordered relationship between the electronic communication documents, and

store metadata indicating the ordered relationship between the electronic communication documents.

15. The computing system of claim 14 , wherein determining the final date includes, for each candidate date:

determining whether another candidate date was already resolved for the communication segment based on another one of the identified date field values; and

when determining that another candidate date was already resolved for the communication segment, comparing a priority level associated with the resolution of the candidate date to a priority level associated with the resolution of the other candidate date.

16. The computing system of claim 15 , wherein determining whether the other candidate node was already resolved for the communication segment, and comparing the priority levels, both include inspecting a data structure within a cache.

17. The computing system of claim 16 , wherein determining the final date further includes, for each candidate date, and when the priority level associated with the resolution of the candidate date is higher than the priority level associated with the resolution of the other candidate date, updating the data structure within the cache by replacing the other candidate date with the candidate date.

18. The computing system of claim 16 , wherein:

resolving the candidate date for each different instance of the communication segment includes applying one or more of a plurality of available date resolution mechanisms to the identified date field value associated with the instance of the communication segment.

each of the available date resolution mechanisms is associated with a respective mechanism-specific priority level; and

comparing the respective priority levels associated with the candidate dates includes iteratively comparing (i) a mechanism-specific priority level associated with a most recently resolved candidate date to (ii) a mechanism-specific priority level associated with a candidate date that is currently stored in the data structure.

19. The computing system of claim 18 , wherein at least some of the available date resolution mechanisms determine which of a plurality of date formats to apply to the identified date field value.

20. The computing system of claim 18 , wherein:

one of the available date resolution mechanisms resolves dates with substantially 100% certainty for any date field values that can be resolved; and

another one of the available date resolution mechanisms resolves dates with substantially less than 100% certainty for at least some date field values that can be resolved, the other one of the available date resolution mechanisms having a lower mechanism-specific priority level than the one of the available date resolution mechanisms.

Assignments (7)
SECURITY INTEREST Recorded Jan 30, 2026
From: RELATIVITY ODA LLC; TEXT IQ, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 074537/0402 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 056218/0822 Recorded Jan 30, 2026
From: BLUE OWL CAPITAL CORPORATION, AS COLLATERAL AGENT F/K/A OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
To: RELATIVITY ODA LLC
Reel/Frame 074539/0099 →
SECURITY INTEREST Recorded May 12, 2021
From: RELATIVITY ODA LLC
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 056218/0822 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 053154 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jul 21, 2020
From: ANDRUSENKO, VLADYSLAV
To: AGILEENGINE, LLC
Reel/Frame 053264/0116 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED AT REEL: 053154 FRAME: 0989. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jul 21, 2020
From: AGILEENGINE, LLC
To: RELATIVITY ODA LLC
Reel/Frame 053263/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2020
From: ANDRUSENKO, VLADYSLAV
To: AGILEENGINE LLC
Reel/Frame 053154/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2020
From: AGILEENGINE
To: RELATIVITY ODA LLC
Reel/Frame 053154/0989 →