IP Library Granted Patent US 8,719,318
Granted Patent B2
US 8,719,318 · App. 13/896,857 · Granted May 6, 2014

Knowledge storage and retrieval system and method

Inventor: William Tunstall-Pedoe (Cambridge, GB)
Assignee: Evi Technologies Limited
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,719,318
App. No.
13/896,857
Granted
May 6, 2014
Kind
B2
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 (50)

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 sequence of known and unknown strings, a first query and a second query, a first known string of the known and unknown strings corresponding to the first word;

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

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 sequence of known and unknown strings, a first query and a second query, a first known string of the known and unknown strings corresponding to the first word;

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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

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 sequence of known and unknown strings, a first query and a second query, a first known string of the known and unknown strings corresponding to the first word;

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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

21. 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.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE INADVERTENTLY OMITTED THE SIGNATURE OF ASSIGNEE INSIDE THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED AT REEL: 032886 FRAME: 0325. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 12, 2016
From: EVI TECHNOLOGIES LIMITED
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 039321/0393 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: EVI TECHNOLOGIES LIMITED
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 032886/0325 →
Continuity (5)
Continuation 12269707 · Nov 12, 2008
Continuation 11318316 · Dec 23, 2005
Division 09990188 · Nov 21, 2001
Provisional Application 60253679 · Nov 28, 2000
Related Publication 20130254221A1 · Sep 26, 2013