CPC G06F 40/279 (2020.01) [G06F 40/186 (2020.01); G06F 40/205 (2020.01)] | 20 Claims |
1. A method, comprising:
at a computing device having a display, one or more processors, and memory storing one or more programs configured for execution by the one or more processors:
receiving, in a graphical user interface, a first natural language query directed to a first data source;
in response to receiving the first natural language query:
parsing the first natural language query, including identifying from the first natural language query one or more keywords corresponding to one or more data fields and/or data values of the first data source;
comparing the one or more keywords corresponding to the one or more data fields and/or data values to respective trigger text for each data analysis template of a plurality of data analysis templates for the first data source, wherein;
the plurality of data analysis templates includes a first data analysis template having first trigger text that includes one or more variable terms; and
comparing the one or more keywords corresponding to the one or more data fields and/or data values to the first trigger text of the first data analysis template includes determining whether the one or more keywords corresponding to the one or more data fields and/or data values match a respective predefined set of data fields and/or data values designated for each of the one or more variable terms;
selecting a data analysis template from the plurality of templates in accordance with the comparing, the selected data analysis template including a plurality of first predefined data visualizations for the first data source;
generating a first data dashboard including the plurality of first predefined data visualizations using (i) the selected data analysis template and (ii) the one or more keywords corresponding to the one or more data fields and/or data values, the generating including:
for each of the plurality of first predefined data visualizations:
forming a respective intermediate expression according to a context-free grammar and one more semantic models of data fields in the first data source;
translating the respective intermediate expression into one or more executable database queries referencing the one or more data fields and/or data values;
executing the one or more database queries to retrieve data from the first data source; and
generating the first data dashboard that includes the plurality of first predefined data visualizations using the retrieved data; and
displaying the first data dashboard in the graphical user interface.
|