Providing a natural language based application program interface
First Claim
1. A system comprising:
- a knowledge base and a natural language front end, wherein the knowledge base and the natural language front end are implemented on one or more computers and one or more storage devices;
wherein the knowledge base stores structured content items according to a data schema and provides a structured application program interface (API) and not a natural language interface for receiving queries of and updates to the knowledge base from software applications;
wherein the natural language front end is configured to (i) enable multiple software applications to interact with the knowledge base using a natural language interface provided by the natural language front end and (ii) interact with the knowledge base using the structured API of the knowledge base, and wherein the natural language front end includes;
a natural language input interface to receive, from the software applications, natural language queries and natural language update statements;
a conversion database and a conversion subsystem that are configured to;
convert natural language queries to structured API query operations of the structured API of the knowledge base;
convert natural language update statements to structured API update operations of the structured API of the knowledge base;
perform the structured API query operations on the structured API of the knowledge base to obtain one or more structured content items from the knowledge base;
perform the structured API update operations on the structured API of the knowledge base to cause the knowledge base to update structured content items of the knowledge base;
convert structured content items obtained by performing the structured API query operations to natural language output statements; and
perform at least one of (i) augmenting at least one of the natural language queries by adding, to the natural language query, an identifier for one or more objects in the knowledge base that are referenced in the natural language query, or (ii) providing, with at least one of the natural language output statements, one or more identifiers that are recognized by the software application that provided the natural language query that corresponds to the natural language output statement; and
a natural language output interface to provide the natural language output statements to the software applications.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for providing a natural language based program interface to software applications. One of the methods includes, obtaining, via a natural language front end, a natural language query or a natural language update statement issued by a software application; converting the natural language query or natural language update statement into structured operations to be performed on APIs of a knowledge base; performing the structured operations on the APIs to produce a natural language output statement; and providing, via a natural language output interface, the natural language output statement to the software application. The knowledge base stores entity information according to a data schema and has structured APIs for use by software applications to query the knowledge base; the software applications are limited to communicating with the knowledge base through the interfaces provided by the natural language front end.
23 Citations
23 Claims
-
1. A system comprising:
-
a knowledge base and a natural language front end, wherein the knowledge base and the natural language front end are implemented on one or more computers and one or more storage devices; wherein the knowledge base stores structured content items according to a data schema and provides a structured application program interface (API) and not a natural language interface for receiving queries of and updates to the knowledge base from software applications; wherein the natural language front end is configured to (i) enable multiple software applications to interact with the knowledge base using a natural language interface provided by the natural language front end and (ii) interact with the knowledge base using the structured API of the knowledge base, and wherein the natural language front end includes; a natural language input interface to receive, from the software applications, natural language queries and natural language update statements; a conversion database and a conversion subsystem that are configured to; convert natural language queries to structured API query operations of the structured API of the knowledge base; convert natural language update statements to structured API update operations of the structured API of the knowledge base; perform the structured API query operations on the structured API of the knowledge base to obtain one or more structured content items from the knowledge base; perform the structured API update operations on the structured API of the knowledge base to cause the knowledge base to update structured content items of the knowledge base; convert structured content items obtained by performing the structured API query operations to natural language output statements; and perform at least one of (i) augmenting at least one of the natural language queries by adding, to the natural language query, an identifier for one or more objects in the knowledge base that are referenced in the natural language query, or (ii) providing, with at least one of the natural language output statements, one or more identifiers that are recognized by the software application that provided the natural language query that corresponds to the natural language output statement; and a natural language output interface to provide the natural language output statements to the software applications. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method performed by a natural language front end running on a system of one or more computers, the method comprising:
-
receiving, by a natural language interface of the natural language front end, from multiple software applications, natural language queries and natural language update statements directed to a knowledge base that stores structured content items according to a data schema and provides a structured application program interface (API) and not a natural language interface for receiving queries of and updates to the knowledge base from software applications, wherein the natural language front end is configured to (i) enable multiple software applications to interact with the knowledge base using a natural language interface provided by the natural language front end and (ii) interact with the knowledge base using the structured API of the knowledge base; performing, by a conversion subsystem using a conversion database, operations comprising; converting the natural language queries to one or more structured API query operations of the structured API of the knowledge base; converting the natural language update statements to structured API update operations of the structured API of the knowledge base; performing the structured API query operations on the structured API of the knowledge base to obtain one or more structured content items from the knowledge base; performing the structured API update operations on the structured API of the knowledge base to cause the knowledge base to update structured content items of the knowledge base; converting structured content items obtaining by performing the structured API query operations to natural language output statements; performing at least one of (i) augmenting at least one of the natural language queries by adding, to the natural language query, an identifier for one or more objects in the knowledge base that are referenced in the natural language query, or (ii) providing, with at least one of the natural language output statements, one or more identifiers that are recognized by the software application that provided the natural language query that corresponds to the natural language output statement; and providing, by a natural language output interface of the natural language front end, the natural language output statements to the software applications. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. One or more non-transitory computer storage media encoded with a computer program, the computer program comprising instructions that when executed by a natural language front end running on a system of one or more computers cause the natural language front end to perform operations comprising:
-
receiving, from multiple software applications, natural language queries of a knowledge base and natural language update statements to the knowledge base, wherein the knowledge base stores structured content items according to a data schema and provides a structured application program interface (API) and not a natural language interface for receiving queries of and updates to the knowledge base from software applications; converting the natural language queries into one or more structured API query operations for the structured API of the knowledge base; converting the natural language update statements to structured API update operations of the structured API of the knowledge base; performing the structured API query operations on the structured API of the knowledge base to obtain one or more structured content items from the knowledge base; performing the structured API update operations on the structured API of the knowledge base to cause the knowledge base to update structured content items of the knowledge base; converting structured content items obtained by performing the structured API query operations to natural language output statements; performing at least one of (i) augmenting at least one of the natural language queries by adding, to the natural language query, an identifier for one or more objects in the knowledge base that are referenced in the natural language query, or (ii) providing, with at least one of the natural language output statements, one or more identifiers that are recognized by the software application that provided the natural language query that corresponds to the natural language output statement; and providing the natural language output statements to the multiple software applications; wherein the natural language front end is configured to (i) enable multiple software applications to interact with the knowledge base using a natural language interface provided by the natural language front end and (ii) interact with the knowledge base using the structured API of the knowledge base. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification