CONSTRUCTING STRUCTURED DATABASE QUERY LANGUAGE STATEMENTS FROM NATURAL LANGUAGE QUESTIONS
First Claim
1. A method, comprising:
- obtaining a parse tree of a natural language question;
based on the parse tree, identifying a plurality of routes in a domain knowledge graph, each route of the plurality of routes encompassing one or more respective nodes of the domain knowledge graph;
accessing a predefined set of a plurality of wirings to determine a plurality of coverage wirings for the plurality of routes, each coverage wiring of the plurality of coverage wirings being in the predefined set of the plurality of wirings, each coverage wiring of the plurality of coverage wirings mapping a route in the plurality of routes to a column pair, the column pair pairing a primary key of a respective structured database table with a non-primary key column of the respective structured database table;
constructing a structured database query language statement based on the plurality of coverage wirings; and
causing the structured database query language statement to be executed against a structured database.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer-implemented techniques for constructing structured database query language statements from natural language questions are disclosed. In some embodiments, a knowledge graph-based approach is employed to construct a structured database query language statement such as, for example, a Structure Query Language (SQL) statement, from a natural language question. The approach encompasses a domain knowledge graph model and a database schema wiring model. The domain knowledge graph model represents domain-specific knowledge about the underlying database data in the form of a graph having nodes and directed edges between the nodes. The database schema wiring model maps routes in the domain knowledge graph to database schema elements. The techniques allow a natural language interface system to accurately translate domain-specific natural language questions posed by users to structured database query language statements that can be executed against a structured database to answer the natural language question.
20 Citations
21 Claims
-
1. A method, comprising:
-
obtaining a parse tree of a natural language question; based on the parse tree, identifying a plurality of routes in a domain knowledge graph, each route of the plurality of routes encompassing one or more respective nodes of the domain knowledge graph; accessing a predefined set of a plurality of wirings to determine a plurality of coverage wirings for the plurality of routes, each coverage wiring of the plurality of coverage wirings being in the predefined set of the plurality of wirings, each coverage wiring of the plurality of coverage wirings mapping a route in the plurality of routes to a column pair, the column pair pairing a primary key of a respective structured database table with a non-primary key column of the respective structured database table; constructing a structured database query language statement based on the plurality of coverage wirings; and causing the structured database query language statement to be executed against a structured database. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory computer-readable media storing one or more programs for execution by a computing system having one or more processors and storage media, the one or more programs comprising instructions configured for:
-
obtaining a parse tree of a natural language question; based on the parse tree, identifying a plurality of routes in a domain knowledge graph, each route of the plurality of routes encompassing one or more respective nodes of the domain knowledge graph; accessing a predefined set of a plurality of wirings to determine a plurality of coverage wirings for the plurality of routes, each coverage wiring of the plurality of coverage wirings being in the predefined set of the plurality of wirings, each coverage wiring of the plurality of coverage wirings mapping a route in the plurality of routes to a column pair, the column pair pairing a primary key of a respective structured database table with a non-primary key column of the respective structured database table; constructing a structured database query language statement based on the plurality of coverage wirings; and causing the structured database query language statement to be executed against a structured database. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computing system, comprising:
-
one or more processors; storage media; and one or more programs stored in the storage media and configured for execution by the one or more processors, the one or more programs comprising instructions configured for; obtaining a parse tree of a natural language question; based on the parse tree, identifying a plurality of routes in a domain knowledge graph, each route of the plurality of routes encompassing one or more respective nodes of the domain knowledge graph; accessing a predefined set of a plurality of wirings to determine a plurality of coverage wirings for the plurality of routes, each coverage wiring of the plurality of coverage wirings being in the predefined set of the plurality of wirings, each coverage wiring of the plurality of coverage wirings mapping a route in the plurality of routes to a column pair, the column pair pairing a primary key of a respective structured database table with a non-primary key column of the respective structured database table; constructing a structured database query language statement based on the plurality of coverage wirings; and causing the structured database query language statement to be executed against a structured database. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification