# US 9,519,681 B2 · Enhanced knowledge repository

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,681 B2
- Document ID: US9519681B2
- Status: Granted
- Kind: B2
- Application number: 14/456,324
- Filed: 2014-08-11
- Published: 2014-11-27
- Granted: 2016-12-13
- Earliest claimed: 2007-10-04
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: William Tunstall-Pedoe
- Web page: https://patentgrep.com/patent/US9519681B2

## CPC

- G06F 16/24522: {Translation of natural language queries to structured queries}
- G06N 5/02: Knowledge representation; Symbolic representation
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Embodiments of the present invention relate to knowledge representation systems which include a knowledge base in which knowledge is represented in a structured, machine-readable format that encodes meaning.

## Claims

### Claim 1

A system, comprising:
a data store having a knowledge base stored therein comprising first knowledge represented in a structured, machine-readable format, the data store also having a plurality of generators stored therein, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts; and
one or more computing devices configured to:
generate second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators;
determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base;
store the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred;
respond to a first query using the second knowledge, the first query having been received subsequent to storage of the second knowledge in the knowledge base;
identify a second generator of the plurality of generators for which the included fact pattern is compatible with a second query;
dynamically generate third knowledge not represented in the knowledge base in response to the second query by inferring the third knowledge from the second knowledge using the second generator;
store the third knowledge in a cache;
retrieve the third knowledge from the cache as part of recursive processing of the second query;
respond to the second query using the third knowledge;
determine that the first knowledge from which the second knowledge was inferred is no longer valid; and
remove the second knowledge from the knowledge base using the related knowledge information.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more computing devices are further configured to generate one or both of the first and second queries by translating one or more corresponding natural language questions.

### Claim 3 (depends on 1)

The system of claim 1, wherein the one or more computing devices are further configured to generate the second knowledge with reference only to the first knowledge.

### Claim 4 (depends on 1)

The system of claim 1, wherein the one or more computing devices are further configured to generate the second knowledge with reference to previously generated knowledge inferred from the first knowledge.

### Claim 5 (depends on 1)

The system of claim 1, wherein the code for generating the facts included in the first generator includes an executable query, and wherein the one or more computing devices are configured to generate the second knowledge by determining that at least part of a matching query matches the fact pattern included in the first generator, executing the executable query using values derived from the matching query as input to the executable query to generate one or more results, and deriving the second knowledge from the one or more results.

### Claim 6 (depends on 1)

The system of claim 1, wherein the one or more computing devices are configured to identify the second generator by determining that the fact pattern included in the second generator matches a pattern of objects in the second query.

### Claim 7 (depends on 1)

The system of claim 1, wherein the one or more computing devices are configured to determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base by:
identifying a first fact corresponding to the second knowledge, the first fact including two entity objects and a first relation object representing a first relationship between the two entity objects; and
determining that there are no facts in the knowledge base that include the two entity objects and a different relation object representing a different relationship that conflicts with the first relationship.

### Claim 8 (depends on 1)

The system of claim 1, wherein the one or more computing devices are configured to determine that the first knowledge is no longer valid by determining that a first knowledge base fact corresponding to the first knowledge has changed state from true to false, and wherein the one or more computing devices are configured to remove the second knowledge from the knowledge base by identifying a second knowledge base fact corresponding to the second knowledge using a related facts table corresponding to the second knowledge base fact, the related facts table representing the related knowledge information and identifying the first knowledge base fact.

### Claim 9

A computer-implemented method, comprising:
storing a knowledge base in a data store, the knowledge base comprising first knowledge represented in a structured, machine-readable format;
storing a plurality of generators in the data store, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts;
using one or more computing devices, generating second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators;
using one or more computing devices, determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base;
using the one or more computing devices, storing the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred;
using the one or more computing devices, responding to a first query using the second knowledge, the first query having been received subsequent to storage of the second knowledge in the knowledge base;
using the one or more computing devices, identifying a second generator of the plurality of generators for which the included fact pattern is compatible with a second query;
using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the second query by inferring the third knowledge from the second knowledge using the second generator;
storing the third knowledge in a cache;
using the one or more computing devices, retrieving the third knowledge from the cache as part of recursive processing of the second query;
using the one or more computing devices, responding to the second query using the third knowledge;
using the one or more computing devices, determining that the first knowledge from which the second knowledge was inferred is no longer valid; and
using the one or more computing devices, removing the second knowledge from the knowledge base using the related knowledge information.

### Claim 10 (depends on 9)

The method of claim 9, further comprising generating one or both of the first and second queries by translating one or more corresponding natural language questions.

### Claim 11 (depends on 9)

The method of claim 9, further comprising generating the second knowledge with reference only to the first knowledge.

### Claim 12 (depends on 9)

The method of claim 9, further comprising generating the second knowledge with reference to previously generated knowledge inferred from the first knowledge.

### Claim 13 (depends on 9)

The method of claim 9, wherein the code for generating the facts included in the first generator includes an executable query, and wherein generating the second knowledge includes determining that at least part of a matching query matches the fact pattern included in the first generator, executing the executable query using values derived from the matching query as input to the executable query to generate one or more results, and deriving the second knowledge from the one or more results.

### Claim 14 (depends on 9)

The method of claim 9, further comprising identifying the second generator by determining that the fact pattern included in the second generator matches a pattern of objects in the second query.

### Claim 15 (depends on 9)

The method of claim 9, wherein determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base includes:
identifying a first fact corresponding to the second knowledge, the first fact including two entity objects and a first relation object representing a first relationship between the two entity objects; and
determining that there are no facts in the knowledge base that include the two entity objects and a different relation object representing a different relationship that conflicts with the first relationship.

### Claim 16 (depends on 9)

The method of claim 9, wherein determining that the first knowledge is no longer valid includes determining that a first knowledge base fact corresponding to the first knowledge has changed state from true to false, and wherein removing the second knowledge from the knowledge base includes identifying a second knowledge base fact corresponding to the second knowledge using a related facts table corresponding to the second knowledge base fact, the related facts table representing the related knowledge information and identifying the first knowledge base fact.

### Claim 17

A system, comprising:
a data store having a knowledge base stored therein comprising first knowledge represented in a structured, machine-readable format, the data store also having a plurality of generators stored therein, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts; and
one or more computing devices configured to:
generate second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators;
determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base;
store the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred;
generate a first query, a second query, and a third query, including translating one or more corresponding natural language questions;
respond to the first query using the first knowledge;
respond to the second query using the second knowledge;
identify a second generator of the plurality of generators for which the included fact pattern is compatible with the third query;
dynamically generate third knowledge not represented in the knowledge base in response to the third query by inferring the third knowledge from one or both of the first knowledge and the second knowledge using the second generator;
store the third knowledge in a cache;
retrieve the third knowledge from the cache as part of recursive processing of the third query;
respond to the third query using the third knowledge;
determine that the first knowledge from which the second knowledge was inferred is no longer valid; and
remove the second knowledge from the knowledge base using the related knowledge information.

### Claim 18 (depends on 17)

The system of claim 17, wherein the one or more computing devices are further configured to generate the second knowledge with reference only to the first knowledge.

### Claim 19 (depends on 17)

The system of claim 17, wherein the one or more computing devices are further configured to generate the second knowledge with reference to previously generated knowledge inferred from the first knowledge.

### Claim 20 (depends on 17)

The system of claim 17, wherein the code for generating the facts included in the first generator includes an executable query, and wherein the one or more computing devices are configured to generate the second knowledge by determining that at least part of a matching query matches the fact pattern included in the first generator, executing the executable query using values derived from the matching query as input to the executable query to generate one or more results, and deriving the second knowledge from the one or more results.

### Claim 21 (depends on 17)

The system of claim 17, wherein the one or more computing devices are configured to identify the second generator by determining that the fact pattern included in the second generator matches a pattern of objects in the third query.

### Claim 22 (depends on 17)

The system of claim 17, wherein the one or more computing devices are configured to determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base by:
identifying a first fact corresponding to the second knowledge, the first fact including two entity objects and a first relation object representing a first relationship between the two entity objects; and
determining that there are no facts in the knowledge base that include the two entity objects and a different relation object representing a different relationship that conflicts with the first relationship.

### Claim 23 (depends on 17)

The system of claim 17, wherein the one or more computing devices are configured to determine that the first knowledge is no longer valid by determining that a first knowledge base fact corresponding to the first knowledge has changed state from true to false, and wherein the one or more computing devices are configured to remove the second knowledge from the knowledge base by identifying a second knowledge base fact corresponding to the second knowledge using a related facts table corresponding to the second knowledge base fact, the related facts table representing the related knowledge information and identifying the first knowledge base fact.

### Claim 24

A computer-implemented method, comprising:
storing a knowledge base in a data store, the knowledge base comprising first knowledge represented in a structured, machine-readable format;
storing a plurality of generators in the data store, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts;
using one or more computing devices, generating second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators;
using one or more computing devices, determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base;
using the one or more computing devices, storing the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred;
using the one or more computing devices, generating a first query, a second query, and a third query, including translating one or more corresponding natural language questions;
using the one or more computing devices, responding to the first query using the first knowledge;
using the one or more computing devices, responding to the second query using the second knowledge;
using the one or more computing devices, identifying a second generator of the plurality of generators for which the included fact pattern is compatible with the third query;
using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the third query by inferring the third knowledge from one or both of the first knowledge and the second knowledge using the second generator;
storing the third knowledge in a cache;
using the one or more computing devices, retrieving the third knowledge from the cache as part of recursive processing of the third query;
using the one or more computing devices, responding to the third query using the third knowledge;
using the one or more computing devices, determining that the first knowledge from which the second knowledge was inferred is no longer valid; and
using the one or more computing devices, removing the second knowledge from the knowledge base using the related knowledge information.

### Claim 25 (depends on 24)

The method of claim 24, further comprising generating the second knowledge with reference only to the first knowledge.

### Claim 26 (depends on 24)

The method of claim 24, further comprising generating the second knowledge with reference to previously generated knowledge inferred from the first knowledge.

### Claim 27 (depends on 24)

The method of claim 24, wherein the code for generating the facts included in the first generator includes an executable query, and wherein generating the second knowledge includes determining that at least part of a matching query matches the fact pattern included in the first generator, executing the executable query using values derived from the matching query as input to the executable query to generate one or more results, and deriving the second knowledge from the one or more results.

### Claim 28 (depends on 24)

The method of claim 24, further comprising identifying the second generator by determining that the fact pattern included in the second generator matches a pattern of objects in the third query.

### Claim 29 (depends on 24)

The method of claim 24, wherein determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base includes:
identifying a first fact corresponding to the second knowledge, the first fact including two entity objects and a first relation object representing a first relationship between the two entity objects; and
determining that there are no facts in the knowledge base that include the two entity objects and a different relation object representing a different relationship that conflicts with the first relationship.

### Claim 30 (depends on 24)

The method of claim 24, wherein determining that the first knowledge is no longer valid includes determining that a first knowledge base fact corresponding to the first knowledge has changed state from true to false, and wherein removing the second knowledge from the knowledge base includes identifying a second knowledge base fact corresponding to the second knowledge using a related facts table corresponding to the second knowledge base fact, the related facts table representing the related knowledge information and identifying the first knowledge base fact.
