IP Library Granted Patent US 12,019,996
Granted Patent B2
US 12,019,996 · App. 17/445,665 · Granted Jun 25, 2024

Conversational syntax using constrained natural language processing for accessing datasets

Inventors: Jignesh Patel (Madison, WI); Junda Chen (Madison, WI); Dylan Paul Bacon (Madison, WI); Jiatong Li (Madison, WI); Ushmal Ramesh (Madison, WI); Rogers Jeffrey Leo John (Middleton, WI)
Assignee: DataChat.ai
G06F40/40G06F16/2282G06F16/3329G06F16/3344G06N20/20
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 12,019,996
App. No.
17/445,665
Granted
Jun 25, 2024
Kind
B2
Abstract

In general, techniques are described for various aspects of accessing datasets. A device comprising a memory configured to store the dataset, and a processor may be configured to perform the techniques. The processor may expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces. The processor may receive a query to access the dataset, the query conforming to a portion of the natural language provided by the exposed language sub-surface. The processor may transform the query into one or more statements that conform to a formal syntax associated with the dataset, access, based on the one or more statements, the dataset to obtain a query result, and output the query result.

Claims (104)

1. A device configured to access a dataset, the device comprising:

a memory configured to provide a formal database that stores the dataset, the formal database accessible via one or more statements that conform to a formal syntax defined by a database programming language; and

one or more processors configured to:

expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces to enable a conversational natural language dialogue with the device;

receive a query to access the dataset stored to the formal database, the query conforming to a portion of the natural language provided by the exposed language sub-surface;

transform, based on execution of one or more pattern parsers associated with the exposed language sub-surface, the query into the one or more statements that conform to the formal syntax associated with the formal database that stores the dataset, the one or more statements adhering to the formal syntax defined by the database programming language that is different than the portion of the natural language provided by the exposed language sub-surface;

access, based on the one or more statements, the formal database that stores the dataset to obtain a query result; and

output the query result; and

wherein the query includes a multi-part query having multiple query statements, wherein the exposed language sub-surface removes ambiguity in defining the query such that the multiple query statements forming the multi-part query are definable in any order, and wherein the one or more processors are configured to transform, based on the execution of the one or more pattern parsers associated with the exposed language sub-surface, the multi-part query into the same one or more statements regardless of the order in which the multiple query statements are defined to form the multi-part query.

2. The device of claim 1 , wherein the one or more processors are configured to:

receive the query that identifies one or more dimensions of the dataset to keep;

transform, based on the execution of one or more pattern parsers associated with the exposed language sub-surface, the query into one or more select statements that conform to the formal syntax defined by the database programming language; and

access, based on the one or more select statements, the formal database that stores the dataset to obtain the query result that includes the one or more dimensions of the dataset identified by the query.

3. The device of claim 1 , wherein the one or more processors are further configured to:

receive an additional query to access the dataset, the additional query conforming to the portion of the language provided by the exposed language sub-surface and identifying a dimension in the dataset that is not present in the query result;

determine that the identified dimension is not present in the query result;

transform, based on the execution of the one or more pattern parsers associated with the exposed language sub-surface, the additional query into one or more additional statements that conform to the formal syntax;

access, based on the one or more additional statements and responsive to determining that the identified dimension is not present in the query result, the formal database that stores the dataset to obtain an additional query result; and

output the additional query result along with an indication that the additional query result was obtained from the dataset rather than the query result.

4. The device of claim 1 ,

wherein the dataset is a dataset of a plurality of datasets,

wherein the one or more processors are further configured to:

determine whether the query applies to multiple datasets of the plurality of datasets; and

output, responsive to determining that the query applies to the multiple datasets of the plurality of datasets, an indication that the query applies to the multiple datasets.

5. The device of claim 1 ,

wherein the dataset is a first dataset of a plurality of datasets, and

wherein the one or more processors are further configured to:

determine whether the query includes query statements that identify dimensions of a second dataset of the plurality of datasets;

automatically join, responsive to determining that the query includes query statements that identify dimensions of the second dataset, the first dataset and the second dataset to obtain a joined dataset; and

access, based on the one or more statements, the joined dataset to obtain the query result.

6. The device of claim 1 ,

wherein the dataset is a dataset of a plurality of datasets, and

wherein the one or more processors are further configured to:

identify relationships between one or more dimensions of the plurality of datasets;

generate a diagram illustrating the relationships between the one or more dimensions of the plurality of datasets; and

output the diagram.

7. The device of claim 1 ,

wherein the dataset is a dataset of a plurality of datasets, and

wherein the one or more processors are further configured to:

identify relationships between one or more dimensions of the plurality of datasets;

generate, based on the identified relationships, a graph data structure having nodes representative of each of the plurality of datasets and edges representative of the relationships between the one or more dimensions of the plurality of datasets;

traverse, based on the query, the graph data structure to identify a shortest path through the graph data structure by which to satisfy the query;

automatically join the dataset and one or more additional datasets of the plurality of datasets identified along the shortest path to obtain a joined dataset; and

access, based on the one or more statements, the joined dataset to obtain the query result.

8. The device of claim 7 , wherein the one or more processors are further configured to:

traverse, based on the query, the graph data structure to identify an additional path through the graph data structure that would satisfy the query; and

output an indication identifying the additional path through the graph data structure.

9. The device of claim 8 , wherein the indication is a link for a revised query that would result in traversing the additional path through the graph data structure.

10. The device of claim 1 , wherein the database programming language includes a structure query language syntax or a Pandas dataframe syntax.

11. A method of accessing a dataset, the method comprising:

providing a formal database that stores the dataset, the formal database accessible via one or more statements that conform to a formal syntax defined by a database programming language

exposing a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces to enable a conversational natural language dialogue with a device hosting the hierarchical arrangement of the plurality of language sub-surfaces;

receiving a query to access the dataset, the query conforming to a portion of the language provided by the exposed language sub-surface;

transforming, based on execution of one or more pattern parsers associated with the exposed language sub-surface, the query into the one or more statements that conform to the formal syntax associated with the formal database that stores the dataset, the one or more statements adhering to the formal syntax defined by the database programming language that is different than the portion of the natural language provided by the exposed language sub-surface;

accessing, based on the one or more statements, the formal database that stores the dataset to obtain a query result; and

outputting the query result; and

wherein the query includes a multi-part query having multiple query statements, wherein the exposed language sub-surface removes ambiguity in defining the query such that the multiple query statements forming the multi-part query are definable in any order, and wherein transforming the query comprises transforming, based on the execution of the one or more pattern parsers associated with the exposed language sub-surface, the multi-part query into the same one or more statements regardless of the order in which the multiple query statements are defined to form the multi-part query.

12. The method of claim 11 ,

wherein receiving the query comprises receiving the query that identifies one or more dimensions of the dataset to keep,

wherein transforming the query comprises transforming, based on the execution of one or more pattern parsers associated with the exposed language sub-surface, the query into one or more select statements that conform to the formal syntax defined by the database programming language, and

wherein accessing the dataset comprises accessing, based on the one or more select statements, the formal database that stores the dataset to obtain the query result that includes the one or more dimensions of the dataset identified by the query.

13. The method of claim 11 , further comprising:

receiving an additional query to access the dataset, the additional query conforming to the portion of the language provided by the exposed language sub-surface and identifying a dimension in the dataset that is not present in the query result;

determining that the identified dimension is not present in the query result;

transforming, based on the execution of the one or more pattern parsers associated with the exposed language sub-surface, the additional query into one or more additional statements that conform to the formal syntax;

accessing, based on the one or more additional statements and responsive to determining that the identified dimension is not present in the query result, the formal database that stores the dataset to obtain an additional query result; and

outputting the additional query result along with an indication that the additional query result was obtained from the dataset rather than the query result.

14. The method of claim 11 ,

wherein the dataset is a dataset of a plurality of datasets, and

wherein the method further comprises:

determining whether the query applies to multiple datasets of the plurality of datasets; and

outputting, responsive to determining that the query applies to the multiple datasets of the plurality of datasets, an indication that the query applies to the multiple datasets.

15. The method of claim 11 ,

wherein the dataset is a first dataset of a plurality of datasets, and

wherein the method further comprises:

determining whether the query includes query statements that identify dimensions of a second dataset of the plurality of datasets;

automatically joining, responsive to determining that the query includes query statements that identify dimensions of the second dataset, the first dataset and the second dataset to obtain a joined dataset; and

accessing, based on the one or more statements, the joined dataset to obtain the query result.

16. The method of claim 11 ,

wherein the dataset is a dataset of a plurality of datasets, and

wherein the method further comprises:

identifying relationships between one or more dimensions of the plurality of datasets;

generating a diagram illustrating the relationships between the one or more dimensions of the plurality of datasets; and

outputting the diagram.

17. The method of claim 11 ,

wherein the dataset is a dataset of a plurality of datasets, and

wherein the method further comprises:

identifying relationships between one or more dimensions of the plurality of datasets;

generating, based on the identified relationships, a graph data structure having nodes representative of each of the plurality of datasets and edges representative of the relationships between the one or more dimensions of the plurality of datasets;

traversing, based on the query, the graph data structure to identify a shortest path through the graph data structure by which to satisfy the query;

automatically joining the dataset and one or more additional datasets of the plurality of datasets identified along the shortest path to obtain a joined dataset; and

accessing, based on the one or more statements, the joined dataset to obtain the query result.

18. The method of claim 17 , further comprising:

traversing, based on the query, the graph data structure to identify an additional path through the graph data structure that would satisfy the query; and

outputting an indication identifying the additional path through the graph data structure.

19. The method of claim 18 , wherein the indication is a link for a revised query that would result in traversing the additional path through the graph data structure.

20. The method of claim 11 , wherein the database programming language includes a structure query language syntax or a Pandas data frame syntax.

21. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors to:

provide a formal database that stores the dataset, the formal database accessible via one or more statements that conform to a formal syntax defined by a database programming language

expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces to enable a conversational natural language dialogue with a device hosting the hierarchical arrangement of the plurality of language sub-surfaces; receive a query to access the dataset, the query conforming to a portion of the language provided by the exposed language sub-surface;

transform, based on execution of one or more pattern parsers associated with the exposed language sub-surface, the query into the one or more statements that conform to the formal syntax associated with the formal database that stores the dataset, the one or more statements adhering to the formal syntax defined by the database programming language that is different than the portion of the natural language provided by the exposed language sub-surface;

access, based on the one or more statements, the formal database that stores the dataset to obtain a query result; and

output the query result; and

wherein the query includes a multi-part query having multiple query statements, wherein the exposed language sub-surface removes ambiguity in defining the query such that the multiple query statements forming the multi-part query are definable in any order, and wherein transforming the query comprises transforming, based on the execution of the one or more pattern parsers associated with the exposed language sub-surface, the multi-part query into the same one or more statements regardless of the order in which the multiple query statements are defined to form the multi-part query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2021
From: PATEL, JIGNESH; CHEN, JUNDA; BACON, DYLAN PAUL; LI, JIATONG; RAMESH, USHMAL; LEO JOHN, ROGERS JEFFREY
To: DATACHAT.AI
Reel/Frame 057288/0489 →