# US 2013/0254221 A1 · Knowledge storage and retrieval system and method

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

- Number: US 2013/0254221 A1
- Document ID: US20130254221A1
- Status: Published application
- Kind: A1
- Application number: 13/896,857
- Filed: 2013-05-17
- Published: 2013-09-26
- Earliest claimed: 2001-11-21
- Assignees: Evi Technologies Limited
- Applicants: Evi Technologies Limited
- Inventors: William Tunstall-Pedoe
- Web page: https://patentgrep.com/patent/US20130254221A1

## CPC

- G06F 40/237: Lexical tools
- G06F 16/24534: {Query rewriting; Transformation}
- G06F 16/3329: Natural language query formulation
- Y10S 707/955: Object-oriented
- Y10S 707/99933: Query processing, i.e. searching
- Y10S 707/99935: Query augmenting and refining, e.g. inexact access
- Y10S 707/99943: Generating database or data structure, e.g. via user interface
- Y10S 707/99944: Object-oriented database structure
- Y10S 707/99945: Object-oriented database structure processing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A system and method for representing, storing and retrieving real-world knowledge on a computer or network of computers is disclosed. Knowledge is broken down into permanent atomic “facts” which can be stored in a standard relational database and processed very efficiently. It also provides for the efficient querying of a knowledge base, efficient inference of new knowledge and translation into and out of natural language. Queries can also be processed with full natural language explanations of where the answers came from. The method can also be used in a distributed fashion enabling the system to be a large network of computers and the technology can be integrated into a web browser adding to the browser's functionality.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving a natural language question comprising a sequence of words;
identifying a first translation template of a plurality of translation templates using at least a first word of the sequence of words, the first translation template including a first query and a second query;
identifying a first object in a knowledge base using a second word of the sequence of words and the first query of the first translation template; and
generating one or more results using the knowledge base, the first object, and the second query of the first translation template.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the one or more results comprises rejecting a first result of the one or more results where the first result is incompatible with an object class corresponding to the first object.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more results comprise a plurality of results, the method further comprising generating a request for further information including natural language representations of the plurality of results.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first translation template includes a third query, the method further comprising:
identifying a first relation in the knowledge base using a third word of the sequence of words and the third query of the first translation template; and
wherein generating the one or more results comprises using the first relation.

### Claim 5 (depends on 1)

The method of claim 1, wherein identifying the first object comprises:
substituting the second word of the sequence of words into the first query;
executing the first query with reference to the knowledge base thereby generating one or more intermediate results corresponding to the first object; and
substituting the one or more intermediate results corresponding to the first object into the second query.

### Claim 6 (depends on 1)

The method of claim 1, further comprising generating an explanation representing how the one or more results were generated, the explanation including a natural language translation of the second query and one or more processing steps of the second query with reference to the knowledge base.

### Claim 7 (depends on 1)

The method of claim 1, wherein generating the one or more results comprises inferring new knowledge not statically stored in the knowledge base from knowledge that is statically stored in the knowledge base.

### Claim 8

A computing system for responding to natural language input, comprising:
one or more data stores having a knowledge base stored therein; and
one or more computing devices configured to:
receive a natural language question comprising a sequence of words;
identify a first translation template of a plurality of translation templates using at least a first word of the sequence of words, the first translation template including a first query and a second query;
identify a first object in the knowledge base using a second word of the sequence of words and the first query of the first translation template; and
generate one or more results using the knowledge base, the first object, and the second query of the first translation template.

### Claim 9 (depends on 8)

The computing system of claim 8, wherein the one or more computing devices are configured to generate the one or more results by rejecting a first result of the one or more results where the first result is incompatible with an object class corresponding to the first object.

### Claim 10 (depends on 8)

The computing system of claim 8, wherein the one or more results comprise a plurality of results, and wherein the one or more computing devices are further configured to generate a request for further information including natural language representations of the plurality of results.

### Claim 11 (depends on 8)

The computing system of claim 8, wherein the first translation template includes a third query, and wherein the one or more computing devices are configured to:
identify a first relation in the knowledge base using a third word of the sequence of words and the third query of the first translation template; and
generate the one or more results using the first relation.

### Claim 12 (depends on 8)

The computing system of claim 8, wherein the one or more computing devices are configured to identify the first object by:
substituting the second word of the sequence of words into the first query;
executing the first query with reference to the knowledge base thereby generating one or more intermediate results corresponding to the first object; and
substituting the one or more intermediate results corresponding to the first object into the second query.

### Claim 13 (depends on 8)

The computing system of claim 8, wherein the one or more computing devices are further configured to generate an explanation representing how the one or more results were generated, the explanation including a natural language translation of the second query and one or more processing steps of the second query with reference to the knowledge base.

### Claim 14 (depends on 8)

The computing system of claim 8, wherein the one or more computing devices are configured to generate the one or more results by inferring new knowledge not statically stored in the knowledge base from knowledge that is statically stored in the knowledge base.

### Claim 15

A computer program product for responding to natural language input, comprising one or more non-transitory computer-readable media having computer program instructions stored therein, the computer program instructions being configured such that, when executed, the computer program instructions cause one or more computing devices to:
receive a natural language question comprising a sequence of words;
identify a first translation template of a plurality of translation templates using at least a first word of the sequence of words, the first translation template including a first query and a second query;
identify a first object in a knowledge base using a second word of the sequence of words and the first query of the first translation template; and
generate one or more results using the knowledge base, the first object, and the second query of the first translation template.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computer program instructions are configured such that, when executed, the computer program instructions cause the one or more computing devices to generate the one or more results by rejecting a first result of the one or more results where the first result is incompatible with an object class corresponding to the first object.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the one or more results comprise a plurality of results, and wherein the computer program instructions are further configured such that, when executed, the computer program instructions cause the one or more computing devices to generate a request for further information including natural language representations of the plurality of results.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein the first translation template includes a third query, and wherein the computer program instructions are further configured such that, when executed, the computer program instructions cause the one or more computing devices to:
identify a first relation in the knowledge base using a third word of the sequence of words and the third query of the first translation template; and
generate the one or more results using the first relation.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein the computer program instructions are configured such that, when executed, the computer program instructions cause the one or more computing devices to identify the first object by:
substituting the second word of the sequence of words into the first query;
executing the first query with reference to the knowledge base thereby generating one or more intermediate results corresponding to the first object; and
substituting the one or more intermediate results corresponding to the first object into the second query.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein the computer program instructions are further configured such that, when executed, the computer program instructions cause the one or more computing devices to generate an explanation representing how the one or more results were generated, the explanation including a natural language translation of the second query and one or more processing steps of the second query with reference to the knowledge base.

### Claim 21 (depends on 15)

The computer program product of claim 15, wherein the computer program instructions are configured such that, when executed, the computer program instructions cause the one or more computing devices to generate the one or more results by inferring new knowledge not statically stored in the knowledge base from knowledge that is statically stored in the knowledge base.
