Define data visualization calculations across multiple rows of data in a database using natural language expressions
By analyzing natural language discourse and using intermediate language to generate processable queries, combining session operations and refinement of widgets, the problem of inefficient interaction between natural language and visual analysis system is solved, and more efficient data visualization interaction and user experience is achieved.
Patent Information
- Application Number
- CN202080077457.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-12
- Filing Date
- 2020-09-08
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2040-09-08
AI Technical Summary
The prior art is difficult to effectively support and refine the interaction between natural language and visual analysis systems, resulting in users facing cognitive burdens and inefficient interactions when analyzing data using natural language expressions.
By parsing natural language discourses that include table computation expressions, using intermediate language (ArkLang) to impose syntactic and semantic constraints, processing can be generated, thereby improving the effectiveness of natural language interfaces. At the same time, session operations and refinement widgets are provided to enable users to update existing data visualizations.
It reduces the cognitive burden on users, improves the interaction efficiency of natural language interfaces, enhances the flexibility and user experience of data visualization, saves power and extends the time between battery charging.
Smart Images

Figure CN114651258B_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims priority to U.S. Provisional Application Serial No. 62 / 897,187, filed on September 6, 2019, entitled “Interface Defaults for Vague Modifiers in Natural Language Interfaces for Visual Analysis,” which is incorporated herein by reference in its entirety.
[0003] This application is related to the following applications, each of which is incorporated herein by reference in its entirety: (i) U.S. Patent Application No. 15 / 486,265, filed on April 12, 2017, entitled “Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set”; (ii) U.S. Patent Application No. 15 / 804,991, filed on November 6, 2017, entitled “Systems and Methods of Using Natural Language Processing for Visual Analysis of a Data Set”; (iii) U.S. Patent Application No. 15 / 978,062, filed on May 11, 2018, entitled “Applying Natural Language Pragmatics in a Data Visualization User Interface”; (iv) U.S. Patent Application No. 16 / 219,406, filed on December 13, 2018, entitled “Identifying Intent in Visual Analytical Conversations”; (v) U.S. Patent Application No. 16 / 219,406, filed on December 13, 2018, entitled “Analyzing Natural Language No. 16 / 134,892, entitled “Language Expressions in a Data Visualization User Interface”; (vi) No. 15 / 978,066, filed on May 11, 2018, entitled “Data Visualization User Interface Using Cohesion of Sequential Natural Language Commands”; (vii) No. 15 / 978,067, filed on May 11, 2018, entitled “Updating Displayed Data Visualizations According to Identified Conversation Centers in Natural Language Commands”;(viii) U.S. Patent Application No. 16 / 166,125, entitled “Determining Levels of Details for Data Visualizations Using Natural Language Constructs,” filed on October 21, 2018; (ix) U.S. Patent Application No. 16 / 134,907, entitled “Natural Language Interface for Building Data Visualizations, Including Cascading Edits to Filter Expressions,” filed on September 18, 2018; (x) U.S. Patent Application No. 16 / 234,470, entitled “Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface,” filed on December 27, 2018; (xi) U.S. Patent Application No. 16 / 601,437, entitled “Incremental Updates to Natural Language Expressions in a Data Visualization User Interface,” filed on October 14, 2019; (xii) U.S. Patent Application No. 16 / 601,437, entitled “Using U.S. Patent Application No. 16 / 680,431, entitled “Refinement Widgets for Data Fields Referenced by Natural Language Expressions in a Data Visualization User Interface,” and U.S. Patent Application No. 14 / 801,750, filed on July 16, 2015, entitled “Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization.” Technical Field
[0004] The disclosed embodiments relate generally to data visualization, and more particularly to systems, methods, and user interfaces that enable users to interact with data visualizations and analyze data using natural language expressions.
[0005] background
[0006] Data visualization applications enable users to intuitively understand data sets. Visual analysis of data sets, including distribution, trends, outliers, and other factors, is important for making business decisions. Some data sets are very large or complex and include many data fields. A variety of tools are available to help understand and analyze data, including dashboards with multiple data visualizations and natural language interfaces that help perform visual analysis tasks.
[0007] Overview
[0008] Using natural language expressions to generate data visualizations provides users with greater accessibility to data visualization features, including updating fields and changing how data is filtered. Natural language interfaces enable users to develop valuable data visualizations with little or no training.
[0009] Improved systems and methods are needed to support and refine the interaction of natural language with visual analysis systems. The present disclosure describes a data visualization platform that improves the effectiveness of a natural language interface by parsing natural language utterances including table calculation expressions. The data visualization application uses syntactic and semantic constraints imposed by an intermediate language (also referred to herein as ArkLang) to parse natural language utterances. The intermediate language translates natural language utterances into queries processed by the data visualization application to generate useful data visualizations. Therefore, the intermediate language reduces the cognitive burden of the user and produces a more effective man-machine interface. The present disclosure also describes a data visualization application that enables users to use session operations and refinement widgets to update existing data visualizations. Therefore, such methods and interfaces reduce the cognitive burden of the user and produce a more effective man-machine interface. For battery-powered devices, such methods and interfaces save power and increase the time between battery charging. Such methods and interfaces can supplement or replace traditional methods for visualizing data. According to the description and drawings in this specification, other embodiments and advantages may be obvious to those skilled in the art.
[0010] According to some embodiments, a method is performed at a computing device including a display. The computing device includes one or more processors and a memory. The memory stores one or more programs configured to be executed by the one or more processors. The method includes receiving a user input for specifying a data source. The method includes receiving a first user input in a first area of a graphical user interface, the first user input specifying a natural language command related to the data source. The device determines based on the first user input that the natural language command includes a table calculation expression. The table calculation expression specifies the change in the aggregated value of a first data field from the data source over a continuous time period. Each time period represents the same amount of time. Based on the determination, the device identifies a second data field in the data source. The second data field is different from the first data field. The second data field spans a date range including a time period. The device aggregates the value of the first data field for each time period in the date range according to the second data field. The device calculates the corresponding difference between the aggregated values for each consecutive pair of time periods. The device generates a data visualization including a plurality of data markers. Each data marker corresponds to one of the calculated differences for each time period in the date range. The device also displays the data visualization.
[0011] In some embodiments, the time period is: year, quarter, month, week, or day.
[0012] In some implementations, the method further includes displaying the field names from the data source in a graphical user interface.
[0013] In some embodiments, calculating the respective differences between the aggregated values for each consecutive pair of time periods comprises calculating the absolute differences between the aggregated values. In some embodiments, calculating the respective differences between the aggregated values for each consecutive pair of time periods comprises calculating the percentage differences between the aggregated values.
[0014] In some examples, the absolute difference and the percentage difference are displayed as user-selectable options in the graphical user interface.
[0015] In some implementations, the first data field is a metric.
[0016] In some implementations, determining that the natural language command includes a table calculation expression includes parsing the natural language command and forming an intermediate expression according to a context-free grammar, including identifying a calculation type in the natural language command.
[0017] In some instances, the intermediate expression includes a calculation type (e.g., "year over year difference" or "year over year percentage difference"), an aggregate expression (e.g., "sum of Profit"), and an addressed field from a data source.
[0018] In some instances, the method further includes: based on determining that the intermediate expression omits sufficient information for generating a data visualization, inferring omitted information associated with the data source using one or more inference rules based on syntactic and semantic constraints imposed by the context-free grammar.
[0019] In some examples, the second data field is an addressing field.
[0020] In some instances, the method also includes: receiving a second user input to modify the continuous time period from a first time period (e.g., "year over year") to a second time period (e.g., "month over month"). Each of the first time periods represents the same first amount of time (e.g., year), and each of the second time periods represents the same second amount of time (e.g., month). In response to the second user input: for each of the second time periods, the device aggregates the values of the first data field within the second amount of time. The device calculates corresponding first differences between the aggregated values for consecutive pairs of second time periods. The device also generates a second data visualization including multiple second data markers. Each second data marker corresponds to a first difference calculated for each of the second time periods within the date range. The device also displays the second data visualization.
[0021] In some examples, the second user input includes a user command to replace the time period from the first amount of time to the second amount of time.The method also includes receiving the second user input in the first area of the graphical user interface.
[0022] In some examples, the second user input includes a user selection of the first amount of time at a second area of the graphical user interface that is different from the first area.
[0023] In some embodiments, the method further includes: receiving a third user input in the first area, the third user input specifying a natural language command related to partitioning the data visualization with a third data field. The third data field is a dimension. In response to the third user input, the device classifies the data values of the first data field by the third data field. For each different value of the third data field, the device aggregates the corresponding value of the first data field. The device calculates the difference between the aggregated values for each consecutive time period pair. The device generates an updated data visualization including a plurality of third data markers. Each third data marker is based on a corresponding calculated difference. The device also displays the updated data visualization.
[0024] In some instances, the data visualization has a first visualization type (eg, a line chart). The updated data visualization includes a plurality of visualizations, each visualization having the first visualization type.
[0025] In some embodiments, the computing device includes one or more processors, a memory, a display, and one or more programs stored in the memory. The program is configured to be executed by the one or more processors. The one or more programs include instructions for executing any method described herein.
[0026] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by a computing device having one or more processors, a memory, and a display. The one or more programs include instructions for executing any of the methods described herein.
[0027] Thus, methods, systems, and graphical user interfaces are disclosed that enable users to easily interact with data visualizations and analyze data using natural language expressions. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] In order to better understand the aforementioned systems, methods and graphical user interfaces, as well as additional systems, methods and graphical user interfaces that provide data visualization analysis, reference should be made to the following description of the embodiments in conjunction with the accompanying drawings, in which like reference numerals refer to corresponding parts throughout the drawings.
[0030] Figure 1 A graphical user interface used in some implementations is shown.
[0031] Figure 2A and Figure 2B is a block diagram of a computing device according to some implementations.
[0032] Figure 3A and Figure 3BA series of screenshots of a graphical user interface according to some implementations are provided.
[0033] Figure 4A and Figure 4B A series of screenshots are provided regarding updating an existing data visualization according to some implementations.
[0034] Figure 5A-5E A series of screenshots are provided regarding updating data visualizations according to some implementations.
[0035] Figure 6A-6F A series of screenshots are provided regarding updating a data visualization using session operations according to some implementations.
[0036] Figure 7A-7J A series of screenshots are provided regarding updating a data visualization using a refinement widget according to some implementations.
[0037] Figure 8A-8Q A series of screenshots are provided regarding updating a data visualization using a refinement widget according to some implementations.
[0038] Figure 9A-9G A series of screenshots are provided regarding saving and interacting with a data visualization according to some implementations.
[0039] Figure 10A-10E A flow chart of a method for visually analyzing a data set using natural language according to some implementations is provided.
[0040] Reference will now be made to the embodiments of which examples are shown in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention can be practiced without these specific details.
[0041] Description of Embodiments
[0042] Various methods and devices disclosed in this specification improve the effectiveness of natural language interfaces on data visualization platforms by parsing table calculation expressions pointing to data sources. As described in U.S. Patent Application No. 16 / 234,470, entitled "Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface" filed on December 27, 2018 (the U.S. Patent Application is incorporated herein by reference in its entirety), an intermediate language (also referred to herein as ArkLang) is designed to parse natural language input into formalized queries that can be executed against a database. The present disclosure describes the use of ArkLang to parse natural language input pointing to table calculations (e.g., table calculation expressions). Various methods and devices disclosed in this specification further improve data visualization methods by performing session operations on table calculation expressions. Session operations add, remove and / or replace phrases that define existing data visualizations and create modified data visualizations. Such methods and devices improve user interaction with natural language interfaces by providing faster and easier incremental updates to natural language expressions in data visualizations.
[0043] Figure 1 A graphical user interface 100 for interactive data analysis is shown. According to some embodiments, the user interface 100 includes a data tab 114 and an analysis tab 116. When the data tab 114 is selected, the user interface 100 displays a schema information area 110, also referred to as a data pane. The schema information area 110 provides named data elements (e.g., field names) that can be selected and used to build data visualizations. In some embodiments, the list of field names is divided into a set of dimensions (e.g., categorical data) and a set of metrics (e.g., numeric quantities). Some embodiments also include a list of parameters. When the analysis tab 116 is selected, the user interface displays a list of analysis functions instead of a list of data elements (not shown).
[0044] The graphical user interface 100 also includes a data visualization area 112. The data visualization area 112 includes multiple tool shelf areas, such as a column tool shelf area 120 and a row tool shelf area 122. These are also referred to as column tool shelves 120 and row tool shelves 122. As shown herein, the data visualization area 112 also has a large space for displaying visual graphics (also referred to as data visualizations herein). Because the data element has not yet been selected, the space initially has no visual graphics. In some embodiments, the data visualization area 112 has multiple layers referred to as sheets. In some embodiments, the data visualization area 112 includes an area 126 for data visualization filters.
[0045] In some embodiments, the graphical user interface 100 also includes a natural language input box 124 (also referred to as a command box) for receiving natural language commands. The user can interact with the command box to provide commands. For example, the user can provide natural language commands by typing in the box 124. In addition, the user can indirectly interact with the command box by speaking to the microphone 220 to provide commands. In some embodiments, the data elements are initially associated with the column tool shelf 120 and the row tool shelf 122 (e.g., using a drag and drop operation from the mode information area 110 to the column tool shelf 120 and / or the row tool shelf 122). After the initial association, the user can use natural language commands (e.g., in the natural language input box 124) to further explore the displayed data visualization. In some instances, the user uses the natural language input box 124 to create the initial association, which causes one or more data elements to be placed on the column tool shelf 120 and on the row tool shelf 122. For example, the user can provide a command for creating a relationship between data element X and data element Y. In response to receiving the command, the column shelf 120 and the row shelf 122 may be populated with data elements (eg, the column shelf 120 may be populated with data element X, while the row shelf 122 may be populated with data element Y, or vice versa).
[0046] Figure 2A is a block diagram illustrating a computing device 200 that can display the graphical user interface 100 according to some implementations. Various examples of computing device 200 include desktop computers, laptop computers, tablet computers, and other computing devices with a display and a processor capable of running a data visualization application 230. Computing device 200 typically includes one or more processing units (processors or cores) 202, one or more network or other communication interfaces 204, memory 206, and one or more communication buses 208 for interconnecting these components. Communication buses 208 optionally include circuits (sometimes referred to as chipsets) that interconnect system components and control communications between system components.
[0047] The computing device 200 includes a user interface 210. The user interface 210 typically includes a display device 212. In some embodiments, the computing device 200 includes an input device, such as a keyboard, a mouse, and / or other input buttons 216. Alternatively or in addition, in some embodiments, the display device 212 includes a touch-sensitive surface 214, in which case the display device 212 is a touch-sensitive display. In some embodiments, the touch-sensitive surface 214 is configured to detect various sliding gestures (e.g., continuous gestures in the vertical and / or horizontal directions) and / or other gestures (e.g., single / double click). In a computing device with a touch-sensitive display 214, a physical keyboard is optional (e.g., a soft keyboard can be displayed when keyboard input is required). The user interface 210 also includes an audio output device 218, such as a speaker or an audio output connection connected to a speaker, earphones, or headphones. In addition, some computing devices 200 use a microphone 220 and voice recognition to supplement or replace the keyboard. In some embodiments, the computing device 200 includes an audio input device 220 (e.g., a microphone) to capture audio (e.g., voice from the user).
[0048] In some embodiments, the memory 206 includes a high-speed random access memory, such as DRAM, SRAM, DDRRAM or other random access solid-state memory devices. In some embodiments, the memory 206 includes a non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. In some embodiments, the memory 206 includes one or more storage devices located away from the processor 202. The memory 206 or alternatively a non-volatile memory device within the memory 206 includes a non-temporary computer-readable storage medium. In some embodiments, the memory 206 or a computer-readable storage medium of the memory 206 stores the following programs, modules, and data structures, or a subset or superset thereof:
[0049] An operating system 222, which includes procedures for handling various basic system services and for performing hardware-related tasks;
[0050] A communication module 224 for connecting the computing device 200 to other computers and devices via one or more communication interfaces 204 (wired or wireless) (e.g., the Internet, other wide area networks, local area networks, metropolitan area networks, etc.);
[0051] A web browser 226 (or other application capable of displaying web pages), which enables a user to communicate with a remote computer or device over a network;
[0052] An audio input module 228 (e.g., a microphone module) for processing audio captured by the audio input device 220. The captured audio can be sent to a remote server and / or processed by an application (e.g., a data visualization application 230 or a natural language processing module 236) executing on the computing device 200;
[0053] Data visualization application 230, which generates data visualization and related features. In some embodiments, data visualization application 230 includes:
[0054] o A graphical user interface 100 for a user to construct a visual graphic. In some embodiments, the graphical user interface includes a user input module 232 for receiving user input through a natural language box 124. For example, a user enters a natural language command or expression into the natural language box 124 that identifies one or more data sources 258 (which may be stored on the computing device 200 or stored remotely) and / or data fields from a data source. In some embodiments, the natural language expression is a voice utterance captured by an audio input device 220. The selected fields are used to define the visual graphic. The data visualization application 230 then displays the generated visual graphic in the user interface 100. In some embodiments, the data visualization application 230 is executed as a stand-alone application (e.g., a desktop application). In some embodiments, the data visualization application 230 is executed within a web browser 226 or within another application that uses a web page provided by a web server;
[0055] o a data visualization generation module 234 that uses user input (e.g., natural language input) to automatically generate and display corresponding visual graphics (also referred to as “data visualization” or “data viz”);
[0056] o Natural language processing module 236, which receives and parses natural language input provided by the user. In some embodiments, natural language processing module 236 can identify analysis expressions 238, such as aggregation expressions 240, group expressions 242, filter expressions 244, restriction expressions 246, sort expressions 248, and table calculation expressions 249, such as Figure 2B as stated;
[0057] o The natural language processing module 236 may also include a dependency determination module 250 that looks up dependencies in a database 258 to determine how certain terms and / or phrases are related (e.g., dependent);
[0058] o In some implementations, the natural language processing module 236 includes a filter generation module 252 that determines whether one or more filters are associated with a field that has been modified by a user. The filter generation module 252 generates one or more filters based on the changes to the field;
[0059] o A widget generation module 254 that generates a widget that includes user-selectable options. For example, a "sort" widget is generated in response to a user selecting (e.g., hovering) on a sort field (e.g., a natural language term identified as a sort field). The sort widget includes user-selectable options such as "ascending," "descending," and / or "alphabetical," so that the user can easily select from the widget how to sort the selected field; and
[0060] o A visual specification 256 that is used to define characteristics of a desired data visualization. In some embodiments, information provided by a user (e.g., user input) is stored as a visual specification. In some embodiments, the visual specification 256 includes a previous natural language command received from a user or a property specified by a user via a natural language command. In some embodiments, the visual specification 256 includes two or more aggregations based on different levels of detail. Further information about levels of detail can be found in U.S. patent application Ser. No. 14 / 801,750, filed on July 16, 2015, entitled “Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization,” and U.S. patent application Ser. No. 16 / 166,125, filed on October 21, 2018, entitled “Determining Levels of Detail for Data Visualizations Using Natural Language Constructs,” each of which is incorporated herein by reference in its entirety; and
[0061] Zero or more databases or data sources 258 (e.g., a first data source 258-1 and a second data source 258-2) used by the data visualization application 230. In some implementations, the data sources are stored as spreadsheet files, CSV files, XML files, flat files, or JSON files, or are stored in a relational database. For example, a user selects one or more databases or data sources 258 (which may be stored on the computing device 200 or stored remotely), selects data fields from the data source(s), and uses the selected fields to define a visual graphic.
[0062] Figure 2B is a block diagram illustrating components of the analysis expression 238 of the natural language processing module 236 according to some embodiments. In some embodiments, the natural language processing module 236 can recognize the analysis expression 238 and its canonical form in the ArkLang dialect, for example:
[0063] Aggregate expressions 240: These take the canonical form [agg att], where agg∈aggregate and att is an attribute. An example of an aggregate expression is "average Sales", where "average" is agg and "Sales" is att;
[0064] Group expressions 242: These take the canonical form [grp att], where grp∈group and att is an attribute. An example of a group expression is "by Region", where "by" is grp and "Region" is att;
[0065] Filter expressions 244: They take the canonical form [att filter val], where att is an attribute, filter∈filter, and val∈value. An example of a filter expression is "Customer Name starts withJohn", where "Customer Name" is att, "starts with" is filter, and "John" is val;
[0066] · Restriction expressions 246: These take the canonical form [limit val ge ae], where limit∈limit, val∈value, ge∈groupexpression, and ae∈aggregateexpression. An example of a restriction expression is "top 5Wineries by sumofSales", where "top" is the limit, "5" is the val, "Wineries" is the attribute to group by, and "sum ofSales" is the aggregate expression;
[0067] · Sorting expressions 248: These take the canonical form [sort ge ae], where sort∈ sort, ge∈ group expression, and ae∈ aggregate expression. An example of a sorting expression is “sort Products in ascending orderby sum of Profit”, where “ascending order” is the sort, “Products” is the attribute to group by, and “sum of Profit” is the aggregate expression; and
[0068] Table calculation expression 249. In some embodiments, a table calculation expression in Arklang is defined as:
[0069] TableCalculationExp{
[0070] TableCalculation
[0071] AggregationExp
[0072] []GroupExps
[0073] }
[0074] Wherein, "TableCalculation" refers to the table calculation type, "AggregationExp" refers to the aggregation expression component, and "[]GroupExps" refers to a portion of a group expression and represents an addressing field. In some embodiments, the table calculation expression also includes a partition field. The table calculation expression has a specification template: {[time period][function (diff, %diff)] in [metric + aggregation] over [addressing field] by [partition field]}. An example of a table calculation expression is "year over year difference in sum of sales over order date by region". In this example, "year over year" represents consecutive time periods, each time period representing the same amount of time (e.g., years), "difference" (e.g., absolute difference) is the "diff" function, "Sales" is a metric used to calculate the difference based on it, "sum" is an aggregation operation performed on the metric "Sales", "order date" is the addressing field and spans a date range that includes the time period, and "region" is the partition field.
[0075] In some embodiments, the computing device 200 also includes an inference module (not shown) for using one or more inference rules to parse unspecified (e.g., omitted information) or ambiguous (e.g., vague) natural language commands (e.g., expressions or utterances) directed to the database or data source 258. Further information about the inference module can be found in U.S. Patent Application No. 16 / 234,470, filed on December 27, 2018, entitled “Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface,” which is incorporated herein by reference in its entirety.
[0076] In some embodiments, the computing device 200 also includes a grammar dictionary for supporting the formation of intermediate expressions and zero or more data source dictionaries, each data source dictionary being associated with a corresponding database or data source 258. The grammar dictionary and the data source dictionary are described in U.S. Patent Application No. 16 / 234,470, filed on December 27, 2018, entitled “Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface,” which is incorporated herein by reference in its entirety.
[0077] In some embodiments, a canonical representation is assigned to the analysis expression 238 (e.g., by the natural language processing module 236) to address the proliferation of ambiguous syntactic parses inherent to natural language queries. From the parser's perspective, the canonical structure is unambiguous, and the natural language processing module 238 is able to quickly select between multiple syntactic parses to form an intermediate expression. Further information about canonical representations can be found in U.S. patent application Ser. No. 16 / 234,470, filed on Dec. 27, 2018, entitled “Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface,” which is incorporated herein by reference in its entirety.
[0078] In some embodiments, the computing device 200 also includes other modules, such as an auto-completion module that displays a drop-down menu with multiple candidate options when the user begins typing into the input box 124, and an ambiguity module (not shown), which is used to resolve syntactic and semantic ambiguities between natural language commands and between data fields. The details of these sub-modules are described in U.S. Patent Application No. 16 / 134,892, entitled "Analyzing Natural Language Expressions in a Data Visualization User Interface," filed on September 18, 2018, which is incorporated herein by reference in its entirety.
[0079] Each of the executable modules, applications or procedures identified above can be stored in one or more memory devices, and corresponds to an instruction set for performing the above functions. The modules or programs (i.e., instruction sets) identified above do not need to be implemented as independent software programs, processes or modules, and therefore the various subsets of these modules can be combined or otherwise rearranged in various embodiments. In some embodiments, memory 206 stores a subset of the modules and data structures identified above. In addition, memory 206 can store additional modules or data structures not described above.
[0080] although Figure 2A Computing device 200 is shown, but Figure 2A It is intended more as a functional description of various features that may be present rather than as a schematic diagram of the architecture of the embodiments described herein. In practice and as recognized by one of ordinary skill in the art, items shown separately may be combined and some items may be separated.
[0081] Figure 3A and Figure 3B A series of screen shots of a graphical user interface 100 according to some embodiments are provided. In this example, a user is interacting with a data source (e.g., database / data source 258). The schema information area 110 provides named data elements (e.g., field names) from the data source 258 that can be selected and used to build a data visualization.
[0082] In some embodiments, and as Figure 3AAs shown, the data visualization area 112 displays a guide 302 (e.g., a prompt or instruction) to assist the user in interacting with the data source. Further details about the guide 302 are described in U.S. patent application Ser. No. 16 / 601,437, filed on Oct. 14, 2019, entitled “Incremental Updates to Natural Language Expressions in a Data Visualization User Interface,” which is incorporated herein by reference in its entirety.
[0083] Figure 3A A user interaction with the graphical user interface 100 is shown. In this example, the user enters (e.g., enters or types) a natural language expression (e.g., a natural language command) 304 "year over yearsales" in the command box 124. The user can also enter the natural language expression by voice, and then capture the natural language expression using an audio input device 220 (e.g., a microphone) coupled to the computing device 200. Typically, the natural language expression includes one or more terms that identify data fields from the data source 258. A term can be a dimension (e.g., categorical data) or a measure (e.g., a numeric quantity). As shown in the example, the natural language input typically includes one or more terms (e.g., the term "sales" identifies a data field from the data source).
[0084] In some implementations, when the user enters a table calculation type, parsing of the table calculation (eg, table calculation expression) is triggered. In this example, the natural language command 304 includes the term "year over year" that specifies the table calculation type.
[0085] In response to the natural language command 304, the graphical user interface 100 displays an explanation 306 (also referred to as a suggested action) in a drop-down menu 308 of the graphical user interface 100. In some embodiments, and as Figure 3A As shown, the field names “Sales” and “Order Date” are displayed in a visually distinct manner (eg, in bold) relative to the other words included in interpretation 306 .
[0086] In some implementations, a table calculation expression is specified by a table calculation type (e.g., "year over year difference" or "year over year % difference"), a measure (e.g., Sales) over which the difference is calculated, and an addressing field. In some implementations, a table calculation includes a partitioning field (e.g., a dimension such as "Region" or "State").
[0087] In some implementations, the addressing field is limited to a date field (or date / time field). The partitioning field includes a dimension field. Therefore, the difference defined in the table calculation type (e.g., "year over year difference" or "year overyear% difference") is always calculated along the date (e.g., date range) defined by the addressing field.
[0088] In some embodiments, the user does not have to specify all components that define a table calculation expression. Missing components can be inferred (e.g., using an inference module as described in U.S. Patent Application No. 16 / 234,470, filed on December 27, 2018, entitled "Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface," which is incorporated herein by reference in its entirety). In this example, no date range is specified. Therefore, the data visualization application infers a default date field "Order Date" in explanation 306.
[0089] Figure 3B A data visualization 310 (eg, a line graph) is shown that responds to a user selecting Figure 3A 306 “year over year difference in sum of Sales over Order Date” in the example is automatically generated and displayed in the graphical user interface 100. In this example, the data visualization 310 is a line chart that includes “Difference in Sales” on the y-axis 312 and “Year of Order Date” on the x-axis 314. The data visualization 310 also includes data markers 316-1, 316-2, and 316-3. Each of the data markers 316 corresponds to a corresponding calculated difference in the absolute sum of sales for two consecutive years. In this example, the data marker 316-1 represents the difference in sales (e.g., sum of sales) between 2016 and 2015, and the data marker 316-3 represents the difference in the sum of sales between 2019 and 2018. In this example, the date field “Order Date” spans a date range that includes 2016, 2017, and 2018. That is, there is no data for order dates earlier than 2015, and orders for the future 2020 have not yet occurred.
[0090] like Figure 3B, the graphical user interface 100 also displays a phrase 318, "year over year difference in sum of Sales over Order Date," that defines the data visualization 310 in an area 320 that is distinct from the command box 124 (e.g., above the command box 124). In this example, the phrase 318 includes the terms "Sales" and "OrderDate," which correspond to field names of data fields in the data set. These terms are visually distinguished (e.g., in bold) from other words included in the phrase 318. In some implementations, the phrase 318 is enclosed in a box alone, as shown here.
[0091] In some embodiments, and as described in U.S. Patent Application No. 16 / 601,437, filed on October 14, 2019, entitled “Incremental Updates to Natural Language Expressions in a Data Visualization User Interface” (which is incorporated herein by reference in its entirety), session operations such as “add,” “remove,” and / or “replace” can be performed on an existing data visualization to create a modified data visualization. In some embodiments, session operations can be used to further refine an existing table calculation. Figure 4A and Figure 4B This function is shown.
[0092] Figure 4A and Figure 4B A series of screenshots are provided regarding updating an existing data visualization according to some implementations.
[0093] Figure 4A Shows the user and Figure 3B . In this example, the user enters a natural language command 402 “month over month instead” in the command box 124. In response to the natural language command 402, the graphical user interface 100 displays an explanation 404 “month over month difference in sum of Sales over Order Date instead of” in the drop-down menu 308. Explanation 404 corresponds to the suggested action of replacing the existing table calculation type "yearover year" with a different table calculation type "month over month".
[0094] Figure 4BAn updated data visualization 406 (line chart) is shown in response to the user selecting to explain 404 “month over month difference in sum of Sales over Order Date instead of ” is automatically generated and displayed in the graphical user interface 100. The line chart 406 and Figure 3B A comparison between line graph 310 in FIG. 406 and FIG. 41 shows that both line graph 406 and line graph 310 include "Difference in Sales" on y-axis 408. However, line graph 406 differs from line graph 310 in that line graph 406 includes "Month of Order Date" instead of "Year of Order Date" on x-axis 410. The difference occurs because the calculation type is changed from "year over year" to "month over month."
[0095] like Figure 4B As further shown in FIG. 4 , data visualization 406 includes a greater number of data markers 412 (e.g., 412-1 through 412-45) than the number of data markers 316 in line chart 310. Each of data markers 412 corresponds to a respective calculated difference (e.g., an absolute difference in $) between the sums of sales for two consecutive months. Figure 4B Also shown is updated phrase 414 defining data visualization 406 as “month over month difference in sum of Sales over Order Date.”
[0096] Figure 5A-5E A series of screenshots are provided regarding updating data visualizations according to some implementations.
[0097] Figure 5A Shows the user and Figure 4B . In some implementations, a user can further decompose a table calculation (e.g., partition a table calculation) across multiple dimensions (e.g., by "Region" or by "Category"). In this example, a user enters a natural language command 502 "by region" in the command box 124. In response to the natural language command 502, the graphical user interface 100 displays an explanation 504 "by Region". The explanation 504 corresponds to a suggested action of partitioning and grouping values by the data field (e.g., dimension) Region.
[0098] Figure 5BAn updated data visualization 506 is shown, which is automatically generated and displayed in the graphical user interface 100 in response to the user selecting the interpretation 504 "by Region". In this example, the data visualization 506 includes four line charts 508-1, 508-2, 508-3, and 508-4, which correspond to the region 512-1 "Central", the region 512-2 "East", the region 512-3 "South", and the region 512-4 "West", as depicted by the legend 510. Each of the line charts 508 represents the month over month difference in sum of Sales over Order Date for the corresponding region. In this example, "Order Date" is the addressing field and "Region" is the partitioning field. The partitioning field "Region" "splits" the data rows in the data source into different partitions (e.g., "East", "West", "Central", and "South"). Then, a table calculation is applied to the data markers within each partition. Thus, for each pair of values from a partition (eg, "East"), the difference in aggregated sales is calculated between the months of each order date.
[0099] exist Figure 5B , data visualization 506 is defined by updated phrases 514. Updated phrases 514 include phrase 414 "month over month difference in sum of Sales over Order Date" and phrase 514-1 "byRegion".
[0100] In some embodiments, each of the descriptors 512 in the legend 510 corresponds to an option that can be selected by the user. The user's selection of a descriptor allows the visualization corresponding to the descriptor to be visually emphasized while other visualizations are deemphasized. Thus, the user is able to identify the visualization that the user wants in a faster, simpler, and more efficient manner. This is Figure 5C is shown in .
[0101] Figure 5C Shows the user and Figure 5B 508 - 1 . In this example, the user selects descriptor 512 - 1 “Central” on legend 510 . In response to the user selection, graphical user interface 100 highlights (e.g., visually emphasizes) line chart 508 - 1 for region “Central” and dims (e.g., visually fades) line charts for other regions (e.g., “Eastern,” “Western,” and “Southern”).
[0102] like Figure 5CAs further shown in FIG. 5 , graphical user interface 100 also displays window 516 in response to the user selection. Window 516 includes an identifier 518 corresponding to the descriptor “middle”, an option 520 to select (e.g., keep only) the visualization corresponding to the descriptor “middle”, and an option 522 to deselect (e.g., exclude) the visualization corresponding to the descriptor “middle”.
[0103] In some implementations, table calculation expressions may coexist with other analysis expressions 238 . Figure 5D Shown with Figure 5B 24. In this example, the user enters a natural language command 524 "filter region to west or east" in the command box 124. The natural language command 524 is the filter expression 244. In response to the natural language command 524, the graphical user interface 100 displays an explanation 526 "filter Region to West orEast". The explanation 526 corresponds to a suggested action of filtering the attribute (e.g., dimension) Region to the value "West" or "East".
[0104] Figure 5E An updated data visualization 528 is shown that is automatically generated and displayed in the graphical user interface 100 in response to the user selecting the interpretation 526 "filter Region to West or East". In this example, the updated data visualization 528 has two line graphs 508-2 and 508-4, which represent the "month over month difference in sum of Sales over Order Date" for the East region and the West region, respectively. The phrases 530 defining the data visualization 528 include the phrase 414 "month over month difference in sum of Sales over Order Date", the phrase 514-1 "by Region", and the phrase 530-1 "Filter Region to West or East".
[0105] In some embodiments, and as FIG. 3A to FIG. 5E As shown, session operations can be used to refine the various components of the table calculation expression (e.g., table calculation type, aggregate expression, and addressing field). In some implementations, the user can also replace one or more components with natural language commands. Figure 6A-6F This function is shown.
[0106] Figure 6A-6F A series of screenshots are provided regarding updating a data visualization using session operations according to some implementations.
[0107] Fig. 6A Shows the user and Figure 5E . In this example, the user enters a natural language command 602 in the command box 124, "replace with month over month profit". In response to the natural language command 602, the graphical user interface 100 displays an explanation 604, "month over month difference in sum of Profit over Order Date instead of Explanation 604 corresponds to the suggested action, namely: using the new aggregate measure “Sum of Profits” to calculate the corresponding differences within the date range defined by the date field “Order Date”, thereby performing a table calculation of the type “month over month difference” (e.g., the same calculation type as data visualization 528).
[0108] Figure 6B An updated data visualization 606 is shown that is automatically generated and displayed in the graphical user interface 100 in response to the user selecting the interpretation 604. In this example, the data visualization 606 includes two line graphs 608-1 and 608-2 corresponding to the regions "East" and "West", respectively. The updated data visualization 606 includes "Difference in Profit" on the y-axis 610 and "Month of Order Date" on the x-axis 612. Each of the data markers 614-1 corresponds to a corresponding calculated difference in the sum of profits for two consecutive months in the East region. Each of the data markers 614-2 corresponds to a corresponding calculated difference in the sum of profits for two consecutive months in the West region. (Note that in Figure 6B , only a subset 614-1-1, 614-1-2, 614-1-3, 614-2-1, 614-2-2, and 614-2-3 of data tags 614-1 and 614-2 are labeled). Phrases 616 defining the updated data visualization 606 include phrase 616-1 "month over month difference insum of Profit over Order Date", phrase 514-1 "by Region", and phrase 530-1 "Filter Region to West or East".
[0109] Figure 6C Shows the user and Figure 6B. In this example, the user enters a natural language command 618 “Ship Date instead of order date” in the command box 124. In response to the natural language command 618, the graphical user interface 100 displays an explanation 620 “month over month difference in sum of Profit over Ship Date instead of order date” in the drop-down menu 308. ”. Explanation 620 corresponds to the suggested action, namely: perform a table calculation with the same calculation type (e.g., “month over month difference”) and the same aggregate expression (e.g., “sum of Profit”) within the date range defined by the new date field “Ship Date” instead of the date field “Order Date”. In response to the natural language command 618, the graphical user interface 100 also displays in the drop-down menu 308 an explanation 622 “month over month difference in count of Ship Date over Order Date instead of Explanation 622 corresponds to the suggested action of performing a table calculation with the same calculation type (eg, monthover month difference) and the same date range defined by the date field “Order Date”, but using a different aggregation operator “count” for the field “Ship Date”.
[0110] Fig.6D An updated data visualization 624 is shown in response to the user selecting explanation 620 of “month over month difference in sum of Profit over Ship Date instead of ” is automatically generated and displayed in the graphical user interface 100. The updated data visualization 624 includes “month over month difference insum of Profit over Ship Date” on the y-axis 626 and “month of Ship Date” on the x-axis 628. The data visualization 624 includes two line graphs 630-1 and 630-2 for the Eastern region and the Western region, respectively. Each data marker of the line graph 630-1 represents the corresponding calculated difference in the sum of profits for two consecutive months in the Eastern region within the date range defined by the Ship Date. Each data marker of the line graph 630-2 represents the corresponding calculated difference in the sum of profits for two consecutive months in the Western region within the date range defined by the Ship Date. The phrases 632 defining the data visualization 624 include the phrase 632-1 “month over month difference insum of Profit over Ship Date”, the phrase 514-1 “by Region”, and the phrase 530-1 “Filter Region to West or East”.
[0111] Fig. 6E Shows the user and Fig.6D , . In this example, the user enters a natural language command 634 “yoy % instead” in the command box 124. In response to the natural language command 634, the data visualization application (e.g., using an inference module and one or more of a grammar dictionary and a data source dictionary described in U.S. patent application Ser. No. 16 / 234,470, filed on Dec. 27, 2018, and entitled “Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface”) infers that “yoy” has the same meaning as “year over year”. The graphical user interface 100 displays the explanation 636 “year over year % difference in sum of Profit over Ship Date instead of ” in the drop-down menu 308. Explanation 636 corresponds to the suggested action of performing a table calculation with a different calculation type (e.g., “year over year % difference” instead of “month over month difference”), using the same aggregate expression (e.g., sum of Profit), and within the same date range defined by the addressing field “Ship Date”.
[0112] Fig. 6FAn updated data visualization 638 is shown that is automatically generated and displayed in the graphical user interface 100 in response to the user selecting the interpretation 636. The data visualization 638 includes two line graphs 644-1 and 644-2 for the Eastern region and the Western region, respectively. Each data marker of the line graph 644-1 represents a corresponding calculated percentage difference in the sum of profits for two consecutive years in the Eastern region within the year range defined by the shipping date. Each data marker of the line graph 644-2 represents a corresponding calculated difference in the sum of profits for two consecutive months in the Western region within the year range defined by the shipping date.
[0113] like Fig. 6F As further shown in FIG. 6 , the updated data visualization 638 includes “% Difference in Profit” on the y-axis 640 and “Year of Shipment Date” on the x-axis 642 . Fig. 6F The marks on the y-axis 640 are expressed in percentage values (e.g., %), while the marks on the x-axis 642 are expressed in years, which is consistent with the calculation type "year overyear % difference" in the selected suggested action 636. Phrases 646 defining the data visualization 638 include phrase 646-1 "year overyear % difference in sum of Profit over Ship Date", phrase 514-1 "by Region", and phrase 530-1 "Filter Region to West or East".
[0114] In some embodiments, in addition to Figures 4A-6F In addition to using session operations to refine table calculation components, users can also interact directly with components through refinement widgets. Figure 7A-7J This function is shown.
[0115] Figure 7A-7J A series of screenshots are provided regarding updating a data visualization using a refinement widget according to some implementations.
[0116] Fig. 7A Shows the user and Fig. 6F In some examples, a user selects (e.g., via a mouse click, hover, or other input) a first term in one of a plurality of phrases defining the data visualization. For example, Fig. 7AThe user is shown hovering over the term 702 (e.g., a calculation type component) "year over year % difference" in the phrase 646-1 "year over year % difference in sum of Profit over Ship Date". In some implementations, the term is visually distinguished within the natural language input in response to the user's selection. For example, the selected term 702 "year over year % difference" is underlined in response to the user hovering over the term.
[0117] In some embodiments, in response to a user selecting a term (e.g., a term including a table calculation type), a widget 704 is generated (e.g., generated using the widget generation module 254) and displayed in the graphical user interface 100, such as Figure 7B In some examples, the widget 704 is also referred to as a refinement widget or a table calculation refinement widget.
[0118] exist Figure 7B , widget 704 displays the components that define a table calculation expression (including a table calculation type, an aggregate expression, and an addressing field). In this example, the current table calculation type "year over year % difference" can be determined from widget 704 using a combination of label 706 "Calculate the difference of...", label 710 "As a percentage", and a user-selectable time period 714 (currently set to "Year"). The check mark in box 712 next to label 710 indicates that label 710 is currently selected. The user can switch between "% difference" (e.g., a percentage difference) and "difference" (e.g., an absolute difference) by selecting or deselecting box 712. That is, when box 712 is not selected (e.g., when there is no check mark therein), the calculation type in this example becomes "year over year difference". The aggregate expression is determined from the user-selectable aggregate expression field 708, which is currently set to "sum of Profit". The addressing field is determined from the user selectable addressing field 716, which is currently set to "Ship Date".
[0119] Figure 7CA user interaction with an aggregate expression field 708 "sum of Profit" is shown (e.g., by clicking on field 708). In response to the user interaction, the widget 704 displays a menu 722 that includes a partial view of the field names from the data source (e.g., "Profit Ratio", "Quantity", "Region", "Sales", "Segment", and "ShipDate"). The widget 704 also displays icons indicating the field type next to each field name. For example, a hash icon 726 (e.g., "#") next to the field "Quantity" indicates that "Quantity" is a measure (e.g., a numeric quantity). The "Abc" icon 728 next to the field "Segment" indicates that "Segment" is a dimension (e.g., categorical data). The calendar icon 730 next to the field "Ship Date" indicates that "Ship Date" is a date field (e.g., a date / time field). The widget 704 further displays the field 718 "Profit" and the aggregation type 720 "Sum" that define the aggregate expression "sum of Profit".
[0120] Fig.7D A user interaction is shown that changes the field to be aggregated from "Profit" to "Sales" 732. In response to the user interaction, the computing device automatically updates the aggregation component 734 of phrase 646-1 to "sum of Sales". Note that the change is reflected in the phrase (one or more phrases), but the data visualization 638 is not displayed in the data visualization. Fig.7D , because the changes have not been committed. The changes are applied to the visualization only when the user clicks "Accept".
[0121] Fig.7D Also shown is a user selection of a drop-down icon 724 corresponding to an aggregation type (e.g., "Sum"). In response to the user selection, the widget 704 displays a list of available aggregation types (e.g., operators), including "Sum", "Average", "Median", "Count", "Distinct Count", "Cheapest", "Minimum", "Most expensive", and "Maximum".
[0122] Fig. 7E shows the response to the user Fig.7DIn the example, when the aggregation type “Average” is selected in the formula, the computing device automatically updates the term 734 (eg, the aggregation component) of the phrase 646 - 1 to “average Sales.” The computing device also automatically updates the aggregation expression field 708 to “average Sales.”
[0123] Figure 7F A user input is shown deselecting box 712 next to label 710 “as a percentage” (eg, by removing a mark from a check box). In response to the user input, the computing device automatically updates term 702 in phrase 646 - 1 to “year over year difference”.
[0124] Figure 7G A user selection of a drop-down icon 736 is shown next to the time period selection 714. In response to the user selection, the widget 704 displays a list 738 of user-selectable options for the time period, including "Year", "Quarter", "Month", "Week", and "Day".
[0125] Figure 7H Shows the response to Figure 7G In response to the user's selection of the time period “Quarter”, the computing device automatically updates the term 702 in phrase 646 - 1 to “quarter over quarter difference”.
[0126] Figure 7H Also shown is a user selection of a drop-down icon 740 next to the addressing field 716. In response to the user selection, the widget 704 displays a list 742 of possible addressing fields (eg, date fields or date / time fields), such as "Order Date" and "Ship Date."
[0127] Fig.7I Shows the response to Figure 7H In response to the user's selection of the field “Order Date” in the flow chart, the computing device automatically updates the term 744 (eg, the addressing field) in phrase 646 - 1 to “Order Date”.
[0128] Figure 7J An updated data visualization 746 is shown, which is responsive to the user submitting the change (e.g., the user clicks Fig.7I) and is automatically generated and displayed in the graphical user interface 100. The data visualization 746 includes "quarter over quarter difference in average Sales over Order Date" on the y-axis 748 and "quarter of Order Date" on the x-axis 750. The data visualization 746 includes two line graphs 752-1 and 752-2 for the Eastern region and the Western region, respectively. Each data marker of the line graph 752-1 represents the corresponding calculated difference (e.g., absolute difference) in the average sales in the Eastern region for two consecutive quarters within the quarter range defined by the Order Date. Each data marker of the line graph 752-2 represents the corresponding calculated difference in the average sales in the Western region for two consecutive quarters within the quarter range defined by the Order Date. The phrases 646 defining the data visualization 746 include the updated phrase 646-1 "quarter over quarter difference in average Sales over Order Date", the phrase 514-1 "by Region", and the phrase 530-1 "Filter Region to West or East".
[0129] like Figure 7J As shown, by clicking on the term 702 corresponding to the table calculation type, the terms corresponding to the aggregate expression and the addressing field can be refined from the table calculation widget (e.g., widget 704). In some embodiments, the terms corresponding to the aggregate expression and the addressing field can also be refined via their respective field widgets, which are triggered by clicking on their own terms in phrase 646-1. Figure 8A-8Q This function is shown.
[0130] Figure 8A-8Q A series of screenshots are provided regarding updating a data visualization using a refinement widget according to some implementations.
[0131] FIG. 8A to FIG. 8D Shows the use of Figure 7A-7J The widget 704 and process described in 704 updates the user interaction of the term 702 (eg, a calculation type component) from "quarter over quarter difference" to "quarter over quarter % difference".
[0132] Fig. 8E A user interaction with term 734 “average Sales” is shown. In some implementations, in response to the user selecting term 734 in phrase 646-1, widget 802 is generated (e.g., using widget generation module 254) and displayed in graphical user interface 100, as shown in FIG. Fig. 8EWidget 802 displays a partial view of field names from a data source (e.g., "Region," "Sales," "Segment," "Ship Date," "Ship Mode," and "State"). The user can access additional fields by scrolling up and / or down 804 (see Fig.8F ). In this example, the field “Sales” that defines the aggregate expression “average Sales” is highlighted in the widget 802. The widget 802 also displays the aggregate type “average” that defines the aggregate expression “average Sales”.
[0133] Fig.8F User interaction with widget 802 is shown to change the aggregate field from "Sales" to "Profit". Fig.8F Also shown are user interactions that change the aggregation type (eg, operator) from “average” to “Sum.” In response to these user interactions, the computing device automatically updates term 734 in phrase 646 - 1 to “sum of Profit.”
[0134] Figure 8G A user selection of term 744 (e.g., addressing field) "Order Date" in phrase 646-1 is shown (e.g., by clicking on term 744). In response to the user selection, widget 806 is generated and displayed in graphical user interface 100. Widget 806 displays a list of date fields (e.g., date / time fields) "Order Date" and "Ship Date" that the user can select as addressing fields.
[0135] Figure 8H A user selection of the field “Ship Date” is shown. In response to the user selection, the computing device automatically updates the term 744 in phrase 646 - 1 to “Ship Date”.
[0136] Figure 8I An updated data visualization 808 is shown, which is responsive to Figure 8H, and displayed in the graphical user interface 100 in response to the user's selection of the "Accept" button in . The data visualization 808 includes "% Difference in Profit" on the y-axis 810 and "Quarter of Ship Date" on the x-axis 812. The data visualization 808 includes two line graphs 814-1 and 814-2 for the Eastern region and the Western region, respectively. Each data marker of the line graph 814-1 represents the corresponding calculated percentage difference in profit in the Eastern region for two consecutive quarters within the quarter range defined by the Ship Date. Each data marker of the line graph 814-2 represents the corresponding calculated percentage difference in profit in the Western region for two consecutive quarters within the quarter range defined by the Ship Date.
[0137] Figure 8J to Figure 8K It is shown that the user uses the table calculation widget 704 to modify the calculation type from "quarter over quarter % difference" to "week over week % difference".
[0138] Figure 8L An updated data visualization 816 is shown, which is responsive to Figure 8K , and displayed in the graphical user interface 100 in response to the user's selection of the "Accept" button in . The data visualization 816 is defined by the phrase 646-1 "week over week % difference in sum of Profit over Ship Date", the phrase 514-1 "byRegion", and the phrase 530-1 "filter Region to West or East". The data visualization 816 includes "% difference in profit" on the y-axis 818 and "week of shipment date" on the x-axis 820. The data visualization 816 includes two line graphs 822-1 and 822-2. Each data marker of the line graph 822-1 represents the corresponding calculated percentage difference in profit in the eastern region for two consecutive weeks within the range of weeks defined by the shipment date. Each data marker of the line graph 822-2 represents the corresponding calculated percentage difference in profit in the western region for two consecutive weeks within the range of weeks defined by the shipment date.
[0139] Figure 8MA user interaction with a data marker 824 of the line graph 822-1 is shown (e.g., hovering over the data marker 824). In response to the user interaction, the graphical user interface 100 displays a data widget 826. The data widget 826 includes information corresponding to the data marker 824, including the region (e.g., "East"), the week of the shipping date (e.g., "May 7, 2017"), the percentage difference in profit from the week before the shipping date (e.g., "8,997%"), and the number of records for the week (e.g., "17").
[0140] Figure 8N A user interaction using widget 704 is shown to change the calculation type from "week over week % difference" to "day over day difference".
[0141] Fig.8O An updated data visualization 828 is shown, which is responsive to Figure 8N , and is automatically generated and displayed in the graphical user interface 100 in response to the user's selection of the "Accept" button in . The data visualization 828 includes "Difference in Profit" on the y-axis 830 and "Day of Ship Date" on the x-axis 832. The data visualization 828 includes two line graphs 834-1 and 834-2. Each data marker of the line graph 834-1 represents the corresponding calculated difference (e.g., absolute difference) in profit for two consecutive days in the eastern region within the range of days defined by the ship date. Each data marker of the line graph 834-2 represents the corresponding calculated difference in profit for two consecutive days in the western region within the range of days defined by the ship date.
[0142] Fig.8O Another user interaction with data marker 836 of line graph 834-1 is shown (e.g., hovering over data marker 836). In response to the user interaction, graphical user interface 100 displays data widget 838, which includes information corresponding to data marker 836, including region (e.g., "East"), day of shipment date (e.g., "September 26, 2016"), difference in profit from the day before shipment date (e.g., "$313"), and number of records for that day (e.g., "4").
[0143] Figure 8P A user interaction using the table calculation widget 704 is shown to modify the calculation type from "day over day difference" to "month over month % difference".
[0144] Figure 8Q An updated data visualization 840 is shown, which is responsive to Figure 8P 846-1 and 846-2. Each data marker of line graph 846-1 represents the corresponding calculated percentage difference in profit in the eastern region for two consecutive months within the range of months defined by the shipping date. Each data marker of line graph 846-2 represents the corresponding calculated percentage difference in profit in the western region for two consecutive months within the range of months defined by the shipping date.
[0145] Figure 9A-9G A series of screenshots are provided regarding saving and interacting with a data visualization according to some implementations.
[0146] Fig.9A A user is shown selecting a “Save As” button 902 in the graphical user interface 100 to save the data visualization 840 generated and displayed in the graphical user interface 100 (eg, as a workbook).
[0147] Fig. 9B Shows the response to Fig.9A Window 904 automatically displayed in response to a user's selection of a "Save As" button 902 in FIG. In this example, the user saves data visualization 840 under the workbook name "TableCalculations".
[0148] Fig. 9C User interaction with “Edit” button 906 (eg, clicking “Edit” button 906 ) is shown to modify data visualization 840 .
[0149] In some embodiments, in response to the user selecting the “Edit” button 906, the graphical user interface 100 displays, in addition to the data visualization 840, a mode information area 110, a column tool shelf 120, a row tool shelf 122, and an area 126 for data visualization filters, such as Fig.9D shown.
[0150] like Fig.9DAs further shown, the column tool shelf 120 and the row tool shelf 122 include automatically generated fields "MONTH(Ship Date)" 908 and "SUM(Profit)" 910, respectively. In other words, the data visualization 840 is a visual representation that includes the month of the shipping date on one axis (e.g., the x-axis) and an aggregation ("sum") of a measure ("Profit") on another axis (e.g., the y-axis). In this example, the dimension associated with the data visualization 840 is level of detail (LOD) 1. Further details regarding levels of detail are described in U.S. patent application Ser. No. 16 / 166,125, filed on Oct. 21, 2018, entitled “Determining Levels of Detail for Data Visualizations Using Natural Language Constructs,” and U.S. patent application Ser. No. 14 / 801,750, filed on Jul. 16, 2015, entitled “Systems and Methods for using Multiple Aggregation Levels in a Single Data Visualization,” each of which is incorporated herein by reference in its entirety.
[0151] like Fig.9D As further shown in FIG. 1 , the graphical user interface 100 displays a pill-shaped “Region” 909 in the filter area, indicating that the line chart is filtered by Region.
[0152] Fig.9E A user interaction with data marker 912 of line graph 846-2 is shown (e.g., hovering over data marker 912). In response to the user interaction, graphical user interface 100 displays data widget 914 that includes information corresponding to data marker 912. Data widget 914 includes information about the region (e.g., "West"), the month of the shipping date (e.g., "August 2016"), the percentage difference in profit from the month before the shipping date (e.g., "1,242%), and the number of records in the month of August 2016 (e.g., "38").
[0153] As previously Figure 8Q As discussed in , data visualization 840 has a table calculation type of “month over month % difference in sum of profit”. In some embodiments, the table calculation type can be modified via user selection (e.g., by right-clicking) of the pill corresponding to the field “SUM(Profit)” 910, such as Fig.9FIn response to the user selection, graphical user interface 100 displays window 916 including options that the user can select.
[0154] Figure 9G Shows the response to Fig.9F 916 selects the option “Edit table calculation” in window 916 to generate and display a table calculation widget 918 in user interface 100. Table calculation widget 918 displays the current calculation type “% difference in profit” corresponding to data visualization 840 on header 920. The user can modify the calculation type by changing option 922 (e.g., from “Percent Difference from” to “Difference from”). Table calculation widget 918 also includes other user-selectable options, such as a “Compute Using” option, a “Relative to” option, and a “Sort order” option, which the user can modify to refine the data visualization that has been saved as a workbook.
[0155] Figure 10A-10E A flow chart of a method 1000 for visually analyzing a data set using (1002) natural language is provided in accordance with some implementations. The method 1000 is also referred to as a process.
[0156] The method 1000 is performed (1004) at a computing device 200 having a display 212, one or more processors 202, and a memory 206. The memory 206 stores (1006) one or more programs configured to be executed by the one or more processors 202. In some implementations, Figures 3A to 9G The operations shown in correspond to instructions stored in memory 206 or other non-transitory computer-readable storage media. Computer-readable storage media may include magnetic disk storage devices or optical disk storage devices, solid-state storage devices such as flash memory, or one or more other non-volatile storage devices. The instructions stored on the computer-readable storage medium may include one or more of the following items: source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in method 1000 may be combined and / or the order of some operations may be changed.
[0157] Computing device 200 receives ( 1008 ) user input specifying data source 258 .
[0158] The computing device 200 receives (1010) a first user input in a first area of the graphical user interface, the first user input specifying a natural language command related to a data source. Figure 3A, the computing device receives user input in command box 124 of graphical user interface 100 that specifies a natural language command 304 “year over year sales” associated with a data source.
[0159] The computing device 200 determines (1012) based on the first user input that the natural language command includes a table calculation expression. The table calculation expression specifies changes in the aggregated values of the first data field from the data source over consecutive time periods. Each time period represents the same amount of time. For example, Figure 3A , the computing device determines that the natural language command 304 includes a table calculation expression based on the term "year over year" in the natural language command 304. The computing device returns an interpretation 306 corresponding to the table calculation expression "year over year difference in sum of Sales over Order Date". The table calculation expression "year over year difference in sum of Sales over Order Date" specifies the change in the aggregate value (e.g., "sum") of the first data field "Sales" from the data source within the continuous time period "Year". Each time period represents the same amount of time (e.g., one year).
[0160] In some embodiments, the time period is (1014): year, quarter, month, week, or day. Figure 7G is shown in .
[0161] In some embodiments, the first data field is (1016) a metric. For example, in Figure 3A , the first data field "Sales" is a measure (eg, a numeric quantity).
[0162] In some embodiments, determining (1018) that a natural language command includes a table calculation expression includes parsing (1020) a natural language command. The computing device 200 forms (1022) an intermediate expression based on a context-free grammar, including identifying a calculation type in the natural language command. For example, the computing device 200 uses the natural language processing module 236 to parse the natural language command 304 "year over year sales". As described in U.S. patent application Ser. No. 16 / 234,470, entitled "Analyzing Underspecified Natural Language Utterances in a Data Visualization User Interface" filed on December 27, 2018 (which patent application is incorporated herein by reference in its entirety), an unspecified (e.g., omitted information) or ambiguous (e.g., vague) natural language utterance (e.g., expression or command) pointing to a data source can be parsed using the intermediate language Arklang. The natural language processing module 236 can use the canonical form of the table calculation expression 249 to identify that the natural language command includes the calculation type "year over year".
[0163] In some examples, the intermediate expression includes (1024) a calculation type, an aggregate expression, and an addressing field from a data source. Figure 3A , explanation 306 “year over year difference in sum of Sales over Order Date” includes the calculation type “year over year difference”, the aggregate expression “sum of Sales”, and the addressing field “Order Date”.
[0164] In some examples, method 1000 further includes: in accordance with determining (1026) that the intermediate expression omits sufficient information for generating a data visualization, inferring the omitted information associated with the data source using one or more inference rules, the one or more inference rules being based on syntactic and semantic constraints imposed by the context-free grammar. Figure 3A , the aggregate expression "sum of Sales" and the addressing field "Order Date" are inferred.
[0165] Based on (1028) determining that the natural language command includes a table calculation expression, computing device 200 identifies (1030) a second data field in the data source. The second data field is different from the first data field. The second data field spans a date range that includes a time period.
[0166] In some examples, the second data field is (1032) an addressing field.
[0167] The computing device 200 aggregates (1034) the value of the first data field for each time period within the date range according to the second data field. Figure 3A , the field "Order Date" is the addressing field.
[0168] Computing device 200 calculates ( 1036 ) the respective difference between the aggregated values for each consecutive pair of time periods.
[0169] In some embodiments, calculating the respective difference between the aggregated values for each pair of consecutive time periods includes (1038) calculating the absolute difference between the aggregated values or calculating the percentage difference between the aggregated values. Figure 3B , Figure 4B , Figure 5B , Figure 6B , Fig.6D , Fig. 6F and Figure 7J Shown in.
[0170] In some examples, the absolute difference and the percentage difference are displayed (1040) as user-selectable options in the graphical user interface. Figure 7B , (eg, widget 704).
[0171] The computing device 200 generates (1042) a data visualization including a plurality of data markers. Each data marker corresponds (1044) to one of the differences calculated for each time period within the date range. Figure 3B and Figure 4B Shown in.
[0172] The computing device 200 displays (1046) the data visualization. Figures 3A to 8Q Shown in.
[0173] In some implementations, method 1000 also includes displaying (1048) field names from the data source in the graphical user interface. Figure 3A (eg, mode information area 110).
[0174] In some examples, method 1000 also includes receiving (1050) a second user input to modify the continuous time period from a first time period to a second time period. Each first time period represents the same first amount of time, and each second time period represents the same second amount of time. For example, in Figure 4A, the computing device receives a natural language command 402 to modify the consecutive time periods from "year over year" to "month over month." Each first time period represents the same first amount of time (e.g., year), and each second time period represents the same second amount of time (e.g., month).
[0175] In some examples, the second user input includes (1052) a user command to replace the time period from the first amount of time to the second amount of time. The method 1000 also includes receiving (1054) the second user input in the first area of the graphical user interface. For example, in Figure 4A , the user input to modify the continuous time period from "year over year" to "month over month" is the natural language command 402. The natural language command is received in the command box 124 of the graphical user interface 100.
[0176] In some examples, the second user input includes (1056) a user selection of the first amount of time at a second area of the graphical user interface, the second area being different from the first area. Figure 7G to Figure 7J A user interaction using widget 704 is shown updating the calculation type from "year over year difference" to "quarter over quarter difference."
[0177] In some examples, in response to (1058) the second user input: for each second time period, computing device 200 aggregates (1060) the values of the first data field over the second amount of time. Computing device 200 calculates (1062) respective first differences between the aggregated values for consecutive pairs of second time periods. Computing device 200 generates (1064) a second data visualization including a plurality of second data markers. Each of the second data markers corresponds to the first difference calculated for each of the second time periods within the date range. Computing device 200 displays (1066) the second data visualization. This is in contrast to the example of FIG. 1058 . Figure 3B to Figure 4B The transition is shown.
[0178] In some embodiments, method 1000 further includes receiving (1068) a third user input in the first region, the third user input specifying a natural language command related to partitioning the data visualization by a third data field. The third data field is (1068) a dimension. In response to (1070) the third user input, computing device 200 classifies (1072) data values of the first data field by the third data field. For each different value of the third data field, computing device 200 performs (1074) a series of actions. Computing device 200 aggregates (1076) corresponding values of the first data field. Computing device 200 calculates (1078) a difference between the aggregated values for each consecutive pair of time periods. Computing device 200 (1080) generates an updated data visualization including a plurality of third data markers. Each of the third data markers (1080) is based on a corresponding calculated difference. Computing device 200 displays (1082) the updated data visualization.
[0179] For example, in Figure 5A , the computing device receives a natural language command 502 “by region” in command box 124. The natural language command 502 is related to partitioning the data visualization 406 according to the data field “Region”. The third data field “Region” is a dimension (e.g., categorical data). In response to the natural language command 502, the computing device classifies the data values of the data field “Sales” into the Central, East, South, and West regions. For each different value of Region (e.g., “Central,” “East,” “South,” and “West”), the computing device sums the values of sales. The computing device calculates the difference between the total sales for each consecutive two months. The computing device generates an updated data visualization 506 including multiple data markers. Each data marker is based on a corresponding calculated difference. The computing device 200 displays the updated data visualization 506, such as Figure 5B shown.
[0180] In some instances, the data visualization has a first visualization type (1084). The updated data visualization includes a plurality of visualizations, each of which has the first visualization type (1084). For example, in Figure 4B In FIG. 4 , data visualization 406 is a line graph. Updated data visualization 506 includes four line graphs, such as Figure 5B shown.
[0181] Each of the executable modules, applications or process concentrations identified above can be stored in one or more of the aforementioned memory devices, and corresponds to an instruction set for performing the above functions. The modules or programs (i.e., instruction sets) identified above do not need to be implemented as independent software programs, processes or modules, and therefore the various subsets of these modules can be combined or otherwise rearranged in various embodiments. In some embodiments, memory 214 stores the subset of the modules and data structures identified above. In addition, memory 214 can store additional modules or data structures not described above.
[0182] The terms used in the description of the present invention are only for the purpose of describing specific embodiments, and are not intended to limit the present invention. As used in the description of the present invention and the appended claims, the singular forms "a", "an", and "the" are intended to also include plural forms, unless the context clearly indicates otherwise. It is also to be understood that the term "and / or" as used herein refers to any and all possible combinations of one or more of the associated listed items and includes these combinations. It should be further understood that the terms "comprises" and / or "comprising" when used in this specification specify the presence of stated features, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, elements, components and / or their groups.
[0183] For the purpose of explanation, the foregoing description is described with reference to specific embodiments. However, the above illustrative discussion is not intended to be exhaustive or to limit the invention to the precise form disclosed. In view of the above teachings, many modifications and variations are possible. The embodiments are selected and described in order to best explain the principles of the invention and its practical application, so that other technical personnel in the art can best utilize the present invention and various embodiments with various modifications suitable for the specific purpose envisioned.
[0184] Aspects of the invention may be disclosed in one or more of the following embodiments:
[0185] Item 1) A method for visually analyzing a data set using natural language, comprising:
[0186] The following operations are performed at a computing device having a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors:
[0187] Receive user input from a specified data source;
[0188] receiving, in a first area of the graphical user interface, a first user input specifying a natural language command associated with the data source;
[0189] determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time;
[0190] According to the determination:
[0191] identifying a second data field in the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period;
[0192] aggregating the value of the first data field for each of the time periods within the date range based on the second data field;
[0193] calculating, for each consecutive pair of time periods, respective differences between the values of the aggregation;
[0194] generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and
[0195] Display the data visualization.
[0196] Item 2) The method according to Item 1), wherein the time period is: year, quarter, month, week or day.
[0197] Item 3) The method according to Item 1) further includes displaying field names from the data source in the graphical user interface.
[0198] Item 4) The method according to item 1), wherein calculating the corresponding difference between the aggregated values for each consecutive time period pair comprises:
[0199] computing the absolute difference between the values of said aggregates; or
[0200] Calculates the percentage difference between the values of the aggregation.
[0201] Item 5) A method according to item 4), wherein absolute difference values and percentage difference values are displayed as user-selectable options in the graphical user interface.
[0202] Item 6) A method according to item 1), wherein the first data field is a metric.
[0203] Item 7) The method according to Item 1), wherein determining that the natural language command includes a table calculation expression includes:
[0204] parsing the natural language command; and
[0205] An intermediate expression is formed according to a context-free grammar, including identifying a computation type in the natural language command.
[0206] Item 8) The method according to Item 7), wherein the intermediate expression includes the calculation type, the aggregate expression and the addressing field from the data source.
[0207] Item 9) The method according to Item 8) further includes:
[0208] Based on determining that the intermediate expression omits sufficient information for generating the data visualization, one or more inference rules are used to infer the omitted information associated with the data source, the one or more inference rules being based on syntactic and semantic constraints imposed by the context-free grammar.
[0209] Item 10) The method according to item 8), wherein the second data field is the addressing field.
[0210] Item 11) The method according to Item 1) further includes:
[0211] receiving a second user input to modify the continuous time periods from a first time period to a second time period, wherein each of the first time periods represents a same first amount of time and each of the second time periods represents a same second amount of time; and
[0212] In response to the second user input:
[0213] for each of the second time periods, aggregating the values of the first data field over the second amount of time;
[0214] calculating respective first differences between the aggregated values for consecutive pairs of second time periods;
[0215] generating a second data visualization including a plurality of second data markers, each of the second data markers corresponding to a first difference value calculated for each of the second time periods within the date range; and
[0216] The second data visualization is displayed.
[0217] Item 12) A method according to item 11), wherein the second user input comprises a user command for replacing the time period from the first amount of time to the second amount of time; and
[0218] The method also includes receiving the second user input in the first area of the graphical user interface.
[0219] Item 13) A method according to item 11), wherein the second user input comprises a user selection of the first amount of time at a second area of the graphical user interface, the second area being different from the first area.
[0220] Item 14) The method according to Item 1) further includes:
[0221] receiving, in the first region, a third user input specifying a natural language command related to partitioning the data visualization by a third data field, wherein the third data field is a dimension; and
[0222] In response to the third user input:
[0223] classifying the data value of the first data field according to the third data field;
[0224] For each different value of the third data field:
[0225] aggregating corresponding values of the first data field; and
[0226] For each consecutive pair of time periods, calculate the difference between the aggregated values;
[0227] generating an updated data visualization including a plurality of third data markers, each of the third data markers being based on a respective calculated difference value; and
[0228] A data visualization showing the update.
[0229] Item 15) The method of Item 14), wherein the data visualization has a first visualization type, and the updated data visualization comprises a plurality of visualizations, each visualization having the first visualization type.
[0230] Item 16) A computing device comprising:
[0231] one or more processors;
[0232] a memory coupled to the one or more processors;
[0233] Display; and
[0234] One or more programs, the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:
[0235] receiving user input for specifying a data source;
[0236] receiving, in a first area of the graphical user interface, a first user input specifying a natural language command associated with the data source;
[0237] determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time;
[0238] According to the determination:
[0239] identifying a second data field in the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period;
[0240] aggregating the value of the first data field for each of the time periods within the date range based on the second data field;
[0241] calculating, for each consecutive pair of time periods, respective differences between the values of the aggregation;
[0242] generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and
[0243] Display the data visualization.
[0244] Item 17) A computing device according to Item 16), wherein the one or more programs further include instructions for displaying field names from the data source in the graphical user interface.
[0245] Item 18) A computing device according to Item 16), wherein the instructions for calculating the respective differences between the aggregated values for each consecutive pair of time periods include instructions for:
[0246] computing the absolute difference between the values of said aggregates; or
[0247] Calculates the percentage difference between the values of the aggregation.
[0248] Item 19) A computing device according to Item 16), wherein the instructions for determining that the natural language command includes a table calculation expression include instructions for the following operations:
[0249] parsing the natural language command; and
[0250] An intermediate expression is formed according to a context-free grammar, including identifying a computation type in the natural language command.
[0251] Item 20) A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by a computing device, cause the device to perform the following method:
[0252] receiving user input for specifying a data source;
[0253] receiving, in a first area of the graphical user interface, a first user input specifying a natural language command associated with the data source;
[0254] determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time;
[0255] According to the determination:
[0256] identifying a second data field in the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period;
[0257] aggregating the value of the first data field for each of the time periods within the date range based on the second data field;
[0258] for each pair of consecutive time periods, calculating the corresponding difference between the values of the aggregation;
[0259] generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and
[0260] Display the data visualization.
Claims
1. A method for visually analyzing a data set using natural language, comprising: The following operations are performed at a computing device having a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors: Receive user input from a specified data source; receiving, in a first area of the graphical user interface, a first user input specifying a natural language command associated with the data source; determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time; According to the determination: identifying a second data field from the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period; aggregating the value of the first data field for each of the time periods within the date range based on the second data field; calculating, for each consecutive pair of time periods, the respective differences between the aggregated values; generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and Display the data visualization.
2. The method according to claim 1, wherein: The time period is: year, quarter, month, week or day. 3 . The method of claim 1 , further comprising displaying field names from the data source in the graphical user interface.
4. The method according to claim 1, wherein: Calculating the respective difference between the aggregated values for each consecutive pair of time periods comprises: Calculate the absolute difference between the values being aggregated; or Calculates the percentage difference between the aggregated values.
5. The method according to claim 4, wherein: The absolute difference value and the percentage difference value are displayed as user-selectable options in the graphical user interface.
6. The method according to claim 1, wherein: The first data field is a metric.
7. The method according to claim 1, wherein: Determining that the natural language command includes a table calculation expression includes: parsing the natural language command; and An intermediate expression is formed according to a context-free grammar, including identifying a computation type in the natural language command.
8. The method according to claim 7, wherein: The intermediate expression includes the calculation type, an aggregate expression, and an addressing field from the data source.
9. The method according to claim 8, further comprising: Based on determining that the intermediate expression omits sufficient information for generating the data visualization, one or more inference rules are used to infer the omitted information associated with the data source, the one or more inference rules being based on syntactic and semantic constraints imposed by the context-free grammar.
10. The method according to claim 8, wherein: The second data field is the addressing field.
11. The method according to claim 1, further comprising: receiving a second user input to modify the time periods from a first time period to a second time period, wherein each of the first time periods represents a same first amount of time and each of the second time periods represents a same second amount of time; and In response to the second user input: for each of the second time periods, aggregating the values of the first data field over the second amount of time; calculating respective first differences between the aggregated values for consecutive pairs of second time periods; generating a second data visualization including a plurality of second data markers, each of the second data markers corresponding to a first difference value calculated for each of the second time periods within the date range; and The second data visualization is displayed.
12. The method according to claim 11, wherein: the second user input comprising a user command to replace the time period from the first amount of time to the second amount of time; and The second user input is received in the first area of the graphical user interface.
13. The method according to claim 11, wherein: The second user input comprises a user selection of the first amount of time at a second area of the graphical user interface, the second area being different from the first area.
14. The method according to claim 1, further comprising: receiving, in the first region, a third user input specifying a natural language command related to partitioning the data visualization by a third data field, wherein the third data field is a dimension; and In response to the third user input: classifying the data value of the first data field according to the third data field; For each different value of the third data field: aggregating corresponding values of the first data field; and For each consecutive pair of time periods, calculate the difference between the aggregated values; generating an updated data visualization including a plurality of third data markers, each of the third data markers being based on a respective calculated difference value; and A data visualization showing the update.
15. The method according to claim 14, wherein: The data visualization has a first visualization type, and the updated data visualization includes a plurality of visualizations, each visualization having the first visualization type.
16. A computing device comprising: one or more processors; a memory coupled to the one or more processors; monitor; as well as One or more programs, the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: receiving user input for specifying a data source; receiving, in a first area of a graphical user interface, a first user input specifying a natural language command associated with the data source; determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time; According to the determination: identifying a second data field from the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period; aggregating the value of the first data field for each of the time periods within the date range based on the second data field; calculating, for each consecutive pair of time periods, the respective differences between the aggregated values; generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and Display the data visualization.
17. The computing device of claim 16, wherein: The one or more programs also include instructions for displaying field names from the data source in the graphical user interface.
18. The computing device of claim 16, wherein: The instructions for calculating, for each consecutive pair of time periods, the respective differences between the aggregated values include instructions for: Calculate the absolute difference between the values being aggregated; or Calculates the percentage difference between the aggregated values.
19. The computing device of claim 16, wherein: The instructions for determining that the natural language command includes a table calculation expression include instructions for: Parsing the natural language command; and An intermediate expression is formed according to a context-free grammar, including identifying a computation type in the natural language command.
20. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by a computing device having one or more processors, a memory, and a display, the one or more programs comprising instructions for: receiving user input for specifying a data source; receiving, in a first area of a graphical user interface, a first user input specifying a natural language command associated with the data source; determining, based on the first user input, that the natural language command comprises a table calculation expression, wherein the table calculation expression specifies a change in an aggregated value of a first data field from the data source over consecutive time periods, and each of the time periods represents the same amount of time; According to the determination: identifying a second data field from the data source, wherein the second data field is different from the first data field and the second data field spans a date range that includes the time period; aggregating the value of the first data field for each of the time periods within the date range based on the second data field; For each consecutive pair of time periods, calculate the corresponding difference between the aggregated values; generating a data visualization including a plurality of data markers, each of the data markers corresponding to one of the difference values calculated for each of the time periods within the date range; and Display the data visualization.
Citation Information
Patent Citations
Systems and methods of using natural language processing for visual analysis of a data set
US10515121B1
Applying natural language pragmatics in a data visualization user interface
US10795902B1
Systems and methods of using natural language processing for visual analysis of a data set
US10817527B1
Identifying intent in visual analytical conversations
US10896297B1
Natural language interface for building data visualizations, including cascading edits to filter expressions
US10902045B2