IP Library Granted Patent US 10,726,071
Granted Patent B2
US 10,726,071 · App. 15/477,964 · Granted Jul 28, 2020

Content search engine

Inventors: Leonid Taycher (Newton, MA); Samantha Whitmore (Cambridge, MA); Predrag Gruevski (Cambridge, MA); Colin Carroll (Andover, MA); Carolyn Ranti (Somerville, MA); Benjamin Cohen (Cambridge, MA); Eugene Yurtsev (Cambridge, MA); Matthew Taylor (Belmont, MA); Adam Broun (Lexington, MA)
Assignee: Kensho Technologies, LLC
G06F16/9024G06F16/24568G06F16/9535G06N5/022G06N5/04G06Q30/0269
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 10,726,071
App. No.
15/477,964
Filed
Apr 3, 2017
Granted
Jul 28, 2020
Kind
B2
Art Unit
2167
USPC
707/694
Abstract

Methods, systems, apparatus, including computer programs encoded on computer storage medium, for predicting an outcome in response to a detected event. In one aspect, the method includes actions of maintaining a database of data records with a knowledge graph, receiving a stream of real-time data that includes data records, and from time-to-time as the real-time data is received: identifying a set of one or more attributes associated with a real-time event represented by one of the data records received, identifying a data record in the knowledge graph representing an event-outcome pair, determining that an event of the event-outcome pair has historically been associated with triggering an outcome of the event-outcome pair, and, executing a set of rules defining logic associated with the event-outcome pair specifying that the outcome will occur at a time that is subsequent to a time in which the one of the data records is received.

Claims (88)

1. A method performed by a data processing apparatus, comprising:

maintaining a database of data records with a knowledge graph, wherein the knowledge graph comprises a main stem graph and a plurality of child graphs, wherein each child graph corresponds to a particular area of knowledge, wherein each child graph has its own overlay on top of the main stem graph, and wherein each child graph overlay belonging to a particular child graph is not shared with other child graphs;

receiving a stream of real-time data that includes data records; and

from time to time as the stream of real-time data is received:

identifying, based on the stream of real-time data, a set of one or more attributes associated with a real-time event represented by one of the data records received;

determining a particular child graph of the plurality of child graphs that include data representing one or more data records related to a same area of knowledge as the real-time event;

identifying, based on the one or more attributes and by searching only a portion of the knowledge graph corresponding to the particular child graph, a data record in the particular child graph representing an event-outcome pair;

determining whether an event of the event-outcome pair identified in the particular child graph has historically been associated with triggering an outcome of the event-outcome pair; and

in response to determining that the event of the event-outcome pair identified in the particular child graph has historically been associated with triggering the outcome in the event-outcome pair, executing a set of rules defining logic associated with the event-outcome pair, wherein execution of the set of rules generates one or more parameter values indicating that the outcome will occur at a time that is subsequent to a time in which the one of the data records is received.

2. The method of claim 1 , the method further comprising:

in response to determining that the event of the event-outcome pair has not historically been associated with triggering the outcome in the event-outcome pair, providing negative feedback that weakens the relationship between the occurrence of the event in the event-outcome pair and the outcome entity in the event-outcome pair.

3. The method of claim 1 , the method further comprising:

generating an alert for output on the display of a user device that includes data indicative of the specified outcome.

4. The method of claim 1 , the method further comprising:

adding a new entity to the knowledge graph using a template, the template including a field for each attribute of a particular entity type.

5. The method of claim 1 , wherein the set of rules define logic for generating an alert that includes data indicative of the specified outcome.

6. The method of claim 1 , the method further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, a relationship between at least a first entity and a second entity in the knowledge graph that did not previously exist;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining whether the first entity has historically been associated with triggering the occurrence of the second entity, storing the first entity and the second entity as an event-outcome pair.

7. The method of claim 1 , the method further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, that a relationship should not exist between at least a first entity and a second entity in the knowledge graph, wherein a relationship previously existed between the first entity and the second entity;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining that the first entity has not historically been associated with triggering the second entity, removing the relationship between the first entity and the second entity in the knowledge graph.

8. The method of claim 1 , wherein determining whether an event of the event-outcome pair has historically been associated with triggering an outcome of the event-outcome pair further includes:

determining whether the event of the event-outcome pair has been determined to trigger the particular outcome of the event-outcome pair more than a threshold amount of times.

9. The method of claim 1 , the method further comprising:

determining that a second portion of the knowledge graph is to be divided to create a new child graph based on operations performed using the first portion of the knowledge graph; and

creating a new child graph using the second portion of the knowledge graph.

10. The method of claim 9 , wherein the operations performed using the first portion of the knowledge graph include receiving updates, storing updates, and one or more knowledge graph maintenance operations.

11. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform the operations comprising:

maintaining a database of data records with a knowledge graph, wherein the knowledge graph comprises a main stem graph and a plurality of child graphs, where each child graph corresponds to a particular area of knowledge, wherein each child graph has its own overlay on top of the main stem graph, and wherein each child graph overlay belonging to a particular child graph is not shared with other child graphs;

receiving a stream of real-time data that includes data records; and

from time to time as the stream of real-time data is received:

identifying, based on the stream of real-time data, a set of one or more attributes associated with a real-time event represented by one of the data records received;

determining a particular child graph of the plurality of child graphs that include data representing one or more data records related to a same area of knowledge as the real-time event;

identifying, based on the one or more attributes and by searching only a portion of the knowledge graph corresponding to the particular child graph, a data record in the particular child graph representing an event-outcome pair;

determining whether an event of the event-outcome pair identified in the particular child graph has historically been associated with triggering an outcome of the event-outcome pair; and

in response to determining that the event of the event-outcome pair identified in the particular child graph has historically been associated with triggering the outcome in the event-outcome pair, executing a set of rules defining logic associated with the event-outcome pair, wherein execution of the set of rules generates one or more parameter values indicating that the outcome will occur at a time that is subsequent to a time in which the one of the data records is received.

12. The system of claim 11 , the operations further comprising:

in response to determining that the event of the event-outcome pair has not historically been associated with triggering the outcome in the event-outcome pair, providing negative feedback that weakens the relationship between the occurrence of the event in the event-outcome pair and the outcome entity in the event-outcome pair.

13. The system of claim 11 , the operations further comprising:

generating an alert for output on the display of a user device that includes data indicative of the specified outcome.

14. The system of claim 11 , the operations further comprising:

adding a new entity to the knowledge graph using a template, the template including a field for each attribute of a particular entity type.

15. The system of claim 11 , the operations further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, a relationship between at least a first entity and a second entity in the knowledge graph that did not previously exist;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining whether the first entity has historically been associated with triggering the occurrence of the second entity, storing the first entity and the second entity as an event-outcome pair.

16. The system of claim 11 , the operations further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, that a relationship should not exist between at least a first entity and a second entity in the knowledge graph, wherein a relationship previously existed between the first entity and the second entity;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining that the first entity has not historically been associated with triggering the second entity, removing the relationship between the first entity and the second entity in the knowledge graph.

17. The system of claim 11 , wherein determining whether an event of the event-outcome pair has historically been associated with triggering an outcome of the event-outcome pair further includes:

determining whether the event of the event-outcome pair has been determined to trigger the particular outcome of the event-outcome pair more than a threshold amount of times.

18. A non-transitory computer-readable medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform the operations comprising:

maintaining a database of data records with a knowledge graph, wherein the knowledge graph comprises a main stem graph and a plurality of child graphs, where each child graph corresponds to a particular area of knowledge, wherein each child graph has its own overlay on top of the main stem graph, and wherein each child graph overlay belonging to a particular child graph is not shared with other child graphs;

receiving a stream of real-time data that includes data records; and

from time to time as the stream of real-time data is received:

identifying, based on the stream of real-time data, a set of one or more attributes associated with a real-time event represented by one of the data records received;

determining a particular child graph of the plurality of child graphs that include data representing one or more data records related to a same area of knowledge as the real-time event;

identifying, based on the one or more attributes and by searching only a portion of the knowledge graph corresponding to the particular child graph, a data record in the particular child graph representing an event-outcome pair;

determining whether an event of the event-outcome pair identified in the particular child graph has historically been associated with triggering an outcome of the event-outcome pair; and

in response to determining that the event of the event-outcome pair identified in the particular child graph has historically been associated with triggering the outcome in the event-outcome pair, executing a set of rules defining logic associated with the event-outcome pair, wherein execution of the set of rules generates one or more parameter values indicating that the outcome will occur at a time that is subsequent to a time in which the one of the data records is received.

19. The computer-readable medium of claim 18 , the operations further comprising:

in response to determining that the event of the event-outcome pair has not historically been associated with triggering the outcome in the event-outcome pair, providing negative feedback that weakens the relationship between the occurrence of the event in the event-outcome pair and the outcome entity in the event-outcome pair.

20. The computer-readable medium of claim 18 , the operations further comprising:

generating an alert for output on the display of a user device that includes data indicative of the specified outcome.

21. The computer-readable medium of claim 18 , the operations further comprising:

adding a new entity to the knowledge graph using a template, the template including a field for each attribute of a particular entity type.

22. The computer-readable medium of claim 18 , wherein the set of rules define logic for generating an alert that includes data indicative of the specified outcome.

23. The computer-readable medium of claim 18 , the operations further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, a relationship between at least a first entity and a second entity in the knowledge graph that did not previously exist;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining whether the first entity has historically been associated with triggering the occurrence of the second entity, storing the first entity and the second entity as an event-outcome pair.

24. The computer-readable medium of claim 18 , the operations further comprising:

obtaining data indicative of facts related to one or more real-time events;

determining, based on the obtained data indicative of facts related to the one or more real-time events, that a relationship should not exist between at least a first entity and a second entity in the knowledge graph, wherein a relationship previously existed between the first entity and the second entity;

determining whether first entity has historically been associated with triggering the occurrence of the second entity; and

in response to determining that the first entity has not historically been associated with triggering the second entity, removing the relationship between the first entity and the second entity in the knowledge graph.

25. The computer-readable medium of claim 18 , wherein determining whether an event of the event-outcome pair has historically been associated with triggering an outcome of the event-outcome pair further includes:

determining whether the event of the event-outcome pair has been determined to trigger the particular outcome of the event-outcome pair more than a threshold amount of times.

Assignments (3)
MERGER Recorded Jun 12, 2018
From: KENSHO TECHNOLOGIES INC.
To: KENSHO TECHNOLOGIES, LLC
Reel/Frame 046057/0501 →
MERGER Recorded Jun 8, 2018
From: AUTUMN MERGER SUB, INC.
To: KENSHO TECHNOLOGIES INC.
Reel/Frame 046027/0226 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2018
From: TAYCHER, LEONID; WHITMORE, SAMANTHA; GRUEVSKI, PREDRAG; CARROLL, COLIN; RANTI, CAROLYN; COHEN, BENJAMIN; YURTSEV, EUGENE; TAYLOR, MATTHEW; BROUN, ADAM
To: KENSHO TECHNOLOGIES INC.
Reel/Frame 045979/0137 →
Continuity (2)
Provisional Application 62454039 · Feb 2, 2017
Related Publication 20180218011A1 · Aug 2, 2018