Interactive workflow for data analysis

JP2024530604A5Pending Publication Date: 2025-07-25ALTERYX INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024504919
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-07-28
Filing Date
2022-07-21
Publication Date
2025-07-25

AI Technical Summary

Technical Problem

Current data analysis workflows are limited to run-and-quit applications, requiring users to create new workflows for each data processing task, making it inefficient for handling large datasets.

Method used

Implementing interactive elements within data analysis workflows that allow user input to trigger tool operations, enabling the workflow to be updated and rerun based on user interactions, thus generating new results without the need to recreate the workflow.

Benefits of technology

Facilitates more efficient and convenient data analysis by allowing users to manipulate data processing results through user interactions, enhancing the flexibility and efficiency of data analysis tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A data analysis application receives a workflow including a sequence of tools. Each tool in the sequence performs a data analysis function. The data analysis application generates interactive elements for the tools in the sequence based on the data analysis functions of the tools in the workflow. The interactive elements are applied to the tools to update the workflow. The interactive elements may be associated with the tools or may be added to the analysis workflow as new tools. The updated workflow is provided for processing the data file. The updated analysis workflow generates result items representing the results of processing the data file. The interactive elements applied to the tools are adapted to receive user input and trigger operation of the tools based on the user input to generate different result items.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The described embodiments relate generally to data analysis, and more particularly, to interactive analytical workflows. [Background technology]

[0002] With the growth of data analytics platforms such as big data analytics, data processing has expanded to tools that process large amounts of data to extract information of business value. For example, small businesses may utilize third-party data analytics environments that use dedicated computing and human resources to collect, process, and analyze vast amounts of data from various data sources, such as external data providers, internal data sources (e.g., files on a local computer), big data stores, and cloud-based data (e.g., social media information). Processing such large data sets used in data analytics in a way that extracts useful quantitative and qualitative information typically requires complex software tools implemented on powerful computing devices.

[0003] Currently, analytical workflows are widely used to perform data processing. However, currently available workflow tools are limited for run-and-quit applications. That is, these tools execute a workflow to perform a data processing task and then quit when the task is completed. It is difficult to perform another data processing task without creating and running a new workflow. Given the limitations of current data analysis techniques, improved analysis techniques are needed for more efficient processing of large datasets. Summary of the Invention

[0004] The above and other problems are addressed by a computer-implemented method, computer system, and computer-readable storage medium for managing memory in a computer. An embodiment of the computer-implemented method includes receiving an analytical workflow including a sequence of tools. Each tool in the sequence performs a data analysis function. The method further includes generating interactive elements for the tools in the sequence based on the data analysis function of the tools in the analytical workflow. The interactive elements are adapted to receive user input and trigger an operation of the tool based on the user input. The method further includes applying the interactive elements to the tools to update the analytical workflow. The method also includes providing an updated analytical workflow for processing the data file. The updated analytical workflow is adapted to generate result items representing a result of processing the data file.

[0005] An embodiment of a computer system includes a computer processor for executing computer program instructions. The system also includes a non-transitory computer readable storage medium storing computer program instructions that, when executed, cause the computer processor to perform operations. The operations include receiving an analytical workflow including a sequence of tools. Each tool in the sequence performs a data analysis function. The operations further include generating interactive elements for the tools in the sequence based on the data analysis function of the tools in the analytical workflow. The interactive elements are adapted to receive user input and trigger an operation of the tool based on the user input. The operations further include applying the interactive elements to the tools to update the analytical workflow. The operations also include providing an updated analytical workflow for processing the data file. The updated analytical workflow is adapted to generate result items representing a result of processing the data file.

[0006] An embodiment of a non-transitory computer readable memory stores executable computer program instructions, the instructions being executable to perform operations. The operations include receiving an analytical workflow including a sequence of tools. Each tool in the sequence performs a data analysis function. The operations further include generating interactive elements for the tools in the sequence based on the data analysis function of the tools in the analytical workflow. The interactive elements are adapted to receive user input and trigger an operation of the tool based on the user input. The operations further include applying the interactive elements to the tools to update the analytical workflow. The operations also include providing an updated analytical workflow for processing the data file. The updated analytical workflow is adapted to generate result items representing a result of processing the data file. [Brief description of the drawings]

[0007] [Figure 1] FIG. 1 is a block diagram illustrating a data analysis environment including a data analysis system, according to one embodiment. [Diagram 2] FIG. 1 is a block diagram illustrating a workflow created using a data analysis system for processing data, according to one embodiment. [Diagram 3] FIG. 1 is a block diagram illustrating a data analysis application, according to one embodiment. [Figure 4A] FIG. 1 is a schematic diagram illustrating an interactive workflow created using a data analysis application, according to one embodiment. [Figure 4B] FIG. 2 is a schematic diagram illustrating result items produced by an interactive workflow, according to one embodiment. [Diagram 5] FIG. 1 is a schematic diagram illustrating another interactive workflow created using a data analysis application, according to one embodiment. [Figure 6] 1 is a flowchart illustrating a process for generating an interactive workflow, according to one embodiment. [Figure 7]2 is a high-level block diagram illustrating a functional view of a typical computer system for use as the data analysis system of FIG. 1, in accordance with one embodiment.

[0008] The drawings depict various embodiments for illustrative purposes only. Those skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be utilized without departing from the principles of the invention described herein. Like reference symbols and designations in the various drawings refer to like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] 1 is a block diagram illustrating a data analysis environment 100 including a data analysis system 110 according to one embodiment. The environment 100 further includes multiple data sources 120 connected to the data analysis system 110 via a network 130. Although the illustrated environment 100 includes only one data analysis system 110 coupled to multiple data sources 120, embodiments can have multiple data analysis systems and a single data source.

[0010] The data analysis system 110 is a computer-based system utilized to process large amounts of data. The data is collected, gathered, or accessed from multiple data sources 120 via a network 130. The data analysis system 110 can implement scalable software tools and hardware resources used for data processing tasks from a wide variety of data sources. A data processing task (also called a task or a data analysis task) is a computing operation for processing data. Data processing tasks include, for example, accessing data, preparing data, blending data, packaging data, analyzing data, other types of operations on data, or some combination thereof. The data analysis system 110 can execute multiple tasks in parallel. When having available computer resources (e.g., memory), the data analysis system 110 can select a task and execute from multiple tasks ready to execute.

[0011] 1, data analysis system 110 includes memory 140 and data analysis application 150. Memory 140 stores data used in data analysis operations and provides access to data storage. In some embodiments, memory 140 includes random access memory (RAM), a hard disk drive (HDD), a solid state drive (SSD), other forms of computer memory, or some combination thereof. In some embodiments, memory 140 includes primary memory 140, which provides relatively fast access to a relatively small data storage area, and secondary memory 150, which provides relatively slower access to a relatively large data storage area.

[0012] The data analysis application 150 is a software application that supports the execution of data analysis tasks by using workflows, such as the workflow illustrated in FIG. 2. A workflow (also called an "analysis workflow") is a sequence of data processing tools (also called tools) through which a data analysis task progresses from initiation (e.g., input of a data file) to completion (e.g., output of the results of the task). Each tool in the sequence performs a specific processing operation or data analysis function, such as input, output, preparation, combination, prediction, spatial, exploration, analysis, transformation, etc. Execution of a workflow involves the operation of the tools in the workflow and produces result items that represent the results of the task. In one example, the result items are charts that provide a visual representation of the results of the task.

[0013] The data analysis application 150 provides an environment that facilitates the creation of workflows. For example, the data analysis application 150 provides a visual workflow environment supported by the GUI of the data analysis application 150. The visual workflow environment enables a set of drag-and-drop tools that eliminate the need to provide software code for designing a workflow and eliminate the need to identify complex mathematical formulas implemented by the workflow. In another embodiment, the workflow 200 is created and described in a document, such as an Extensible Markup Language (XML) document.

[0014] The environment also facilitates the creation of interactive workflows, such as the workflows shown in Figures 4A and 5. An interactive workflow is a workflow that includes an interactive element that is coupled with a particular tool in the workflow. The data analysis application 150 generates the interactive element based on the data analysis capabilities of the particular tool. The data analysis application 150 applies the interactive element to a particular tool by associating the interactive element with the particular tool or by adding the interactive element to the workflow as a new tool that precedes the particular tool.

[0015] An interactive workflow can be executed with or without user input or with different user input. Execution of an interactive workflow generates an interface icon and a result item. The interface icon is defined by and in communication with the interactive element. The interface icon is adapted to receive user input and send the user input to the interactive element. After receiving the user input, the interactive element triggers the operation of a particular tool based on the user input and may also trigger the operation of other tools that follow the particular tool in the workflow, if present. At least a portion of the workflow is executed in response to the user input. Execution of the workflow generates a new result item that incorporates the user input.

[0016] For illustration, take an interactive element coupled with a filter tool in a workflow as an example, the interactive element defines its interface icon as a clickable button that allows a user to click to select a date. The interactive element is adapted to manipulate the operation of the filter tool by using the date selected by the user as a filtering parameter. In this example, the result item of the workflow is a chart showing data for different dates. The chart includes clickable icons corresponding to the dates. A user interested in data for a particular date can click on the corresponding clickable icon in the chart. The user's click is sent to the interactive element. The interactive element sends the particular date to the filter tool, triggering the filter tool to filter data based on the particular date, e.g., the selected data associated with the particular date. Subsequent tools are also triggered to process the selected data, which generates a new chart representing the data for the particular date. The new chart may replace the previous chart or may be presented to the user in addition to the previous chart.

[0017] The interactive workflows generated by the data analysis application 150 are advantageous because they allow users to manipulate data processing results by simply interacting with the interface icons, without having to create new workflows or modify data inputs to the workflows. Such interactive workflows do not simply run and finish. Instead, they re-run as the user manipulates the interface icons, generating new results based on the user's manipulations. Thus, the data analysis application 150 provides a more convenient and efficient data analysis tool compared to traditional data analysis techniques.

[0018] In some cases, the data analysis application 150 provides software that supports networked or cloud-based access to data analysis tools and macros for multiple end users. As an example, the data analysis application 150 supports the creation of workflows in the form of dashboards, web applications, mobile applications, and the like. As another example, the data analysis application 150 allows users to share, view, and consume analyses in a manner similar to a mobile application store or other cloud-based services. The analysis data, macros, and workflows can be packaged and executed as smaller, customizable analysis applications (i.e., apps) that can be accessed by other users of the data analysis system 110, for example. In some cases, access to published analysis apps can be managed by the data analysis system 110, i.e., granting or revoking access, thereby providing access control and security features. The data analysis application 150 can perform functions associated with analysis apps, such as creating, deploying, publishing, iterating, updating, and the like.

[0019] Further, the data analysis application 150 can support functions performed at various stages involved in data analysis, such as functions of accessing, preparing, blending, analyzing, and outputting analytical results. In some cases, the data analysis application 150 can access various data sources, for example, obtain raw data in a stream of data. The data stream collected by the data analysis application 150 can include multiple records of raw data, where the raw data is in different formats and structures. After receiving at least one data stream, the data analysis application 150 can perform operations that enable the records of the data stream to be used as input for data analysis operations. Furthermore, analytical functions involving statistical, qualitative, or quantitative processing of records, such as predictive analysis (e.g., predictive modeling, clustering, data exploration), can be implemented by the data analysis application 150.

[0020] As described above, the data sources 120 provide electronic data to the data analysis system 110. The data sources 120 may be computers, databases, network APIs (Application Programming Interfaces), or cloud storage systems. The data sources 120 may also be computer systems that can retrieve data from another source. The data sources 120 may be remote from the data analysis system 110 and provide data via the network 130. Additionally, some or all of the data sources 120 may be directly coupled to the data analysis system and provide data without passing the data via the network 130. The data provided from the data sources 120 is typically organized into data records, each data record including one or more values. For example, a data record provided by a data source may include a series of comma-separated values. The data describes information related to an enterprise using the data analysis system. For example, the data from the data sources 120 may describe content accessible on a website and / or computer-based interactions with a social media application (e.g., click tracking data).

[0021] Network 130 represents a communication pathway between data analysis system 110 and data sources 120. In one embodiment, network 130 is the Internet and uses standard communication technologies and / or protocols. Data exchanged over network 130 can be represented using technologies and / or formats including HyperText Markup Language (HTML), Extensible Markup Language (XML), etc. In another embodiment, the entities can use custom and / or proprietary data communication technologies instead of or in addition to the above technologies.

[0022] 2 is a block diagram illustrating a workflow 200 created using data analysis system 110 to process data, according to one embodiment. Workflow 200 is executed by a computing device of data analysis system 110. However, in other embodiments, workflow 200 is deployed on a separate computing device that may be communicatively connected to data analysis system 110 via a network (e.g., network 130).

[0023] A workflow may include a set of tools that perform specific processing operations or data analysis functions. The tools are arranged in a sequence. As a common example, the tools in a workflow may perform one or more of the following data analysis functions: input / output, preparation, participation, prediction, spatial, exploration, and analysis and transformation operations. Implementing a workflow includes defining, executing, and automating a data analysis process, where data is passed to each tool in the workflow, and each tool performs its respective processing operation on the received data. Records, including aggregated groups of individual records, may be passed through the tools in the workflow, which allows the individual processing operations to operate more efficiently on the data. Such data aggregation techniques may increase the speed of workflow development and execution, even when processing large amounts of data. A workflow may define or otherwise structure a repeatable sequence of operations and specify the order of operation of the specified tools. In some cases, the tools included in a workflow are executed in a linear order. In other cases, multiple tools are executed in parallel.

[0024] As shown, the workflow 200 of FIG. 2 includes input / output tools shown as input tools 205 and 206 and browse tool 230. The input tools 205 and 206 function to access records from a particular data source 120. The input tools 205 and 206 bring the accessed records into the workflow and provide the records to subsequent tools in the workflow 200. In this example, the input tool 205 provides the accessed records to the filter tool 210 and the input tool 206 provides the accessed records to the select tool 211. The browse tool 230 is located at the end of the workflow 200 and receives the output resulting from the execution of each of the upstream tools in the workflow 200. Although the browse tool 230 is located at the end of the workflow 200 in this example, the browse tool 230 may be added at any point in the workflow to review and verify the results from the execution of the upstream tools in the workflow.

[0025] Continuing with the example of FIG. 2, the workflow 200 includes preparation tools shown as filter tool 210, select tool 211, formula tool 215, and sample tool 212. The filter tool 210 queries records based on an expression and separates the data into two streams: a true stream containing records that satisfy the expression and a false stream containing records that do not satisfy the expression. The select tool 211 can be used to select, deselect, sort and rename fields, change field type or size, and assign descriptions. The formula tool 215 creates or updates fields using one or more expressions and performs a wide variety of calculations and / or operations. The sample tool 212 limits the received stream of records to a number, percentage, or random set of records.

[0026] The workflow 200 also includes a join tool 220 that blends multiple data sources. Specifically, the join tool 220 combines two input data streams based on a common field (or record position). The workflow 200 of FIG. 2 is shown to include a summarization tool 225, which is an analysis and transformation tool that can restructure and reshape the data into a format used for further analysis. The summarization tool 225 can perform summarization of the data by grouping, summing, counting, spatial operations, and string concatenation. In one embodiment, the output generated by the summarization tool 225 includes the results of the calculations.

[0027] In some embodiments, execution of the workflow 200 will result in the input tool 205 passing records one at a time through the filter tool 210 and formula tool 215 until all records have been processed and reach the combine tool 220. The input tool 206 then begins passing records one at a time through the select tool 211 and sample tool 212 until they are passed to the same combine tool 220. Some individual tools of the workflow 200 may implement their own parallel operations, such as beginning to read a block of data while still processing the last block of data, or splitting a computationally intensive operation, such as a sort tool, into multiple parts.

[0028] FIG. 3 is a block diagram illustrating a data analysis application 300 according to one embodiment. The data analysis application 300 facilitates the creation and execution of interactive workflows. The data analysis application 300 is an embodiment of the data analysis application 150 of FIG. 1. In the embodiment of FIG. 3, the data analysis application 300 includes a data reception module 310, a tools module 320, an interactive element module 330, and a workflow execution module 340. Those skilled in the art will recognize that other embodiments may have different and / or other components than those described herein, and functionality may be distributed among the components in a different manner.

[0029] The data reception module 310 receives data files from a data source, such as data source 120, and provides the data files to other modules in the data analysis application 300. In one embodiment, the data reception module 310 acts as an interface between tools in the data analysis application, such as the input tool 206 shown in Figure 2. In another embodiment, the data reception module 310 is not present and the functions of the data reception module 310 are performed by the tools.

[0030] The tool module 320 provides a set of tools for creating a workflow. Each tool performs a specific data analysis function. In some embodiments, the tool module 320 provides tools included in the workflow 200 described in conjunction with FIG. 2. One or more tools of the tool module 320 may execute in parallel while processing the data records of the workflow. The tools may run as multiple separate threads, each thread running on a separate core of the processor of the data analysis system 110. For example, an embodiment of a join tool distributes the tasks associated with the join operation among multiple threads to leverage the parallel processing power of the processor. The tool creates a task to perform its operation. The operation of the tool includes one or more tasks. Each task is assigned to a thread of the tool for execution by the thread.

[0031] In some embodiments, the set of tools is provided in a user interface (e.g., a GUI) supported by user interface module 350. Each tool has an icon that indicates the tool's data analysis functionality. The user interface allows a user, e.g., a workflow designer, to select tools and define relationships (e.g., logical or sequential relationships) between the selected tools to create a workflow. The user interface may provide a description of each tool, including, for example, information describing the tool's data analysis functionality to help the designer understand the tool's functionality.

[0032] The interactive element module 330 provides interactive elements for creating interactive workflows. An interactive element is applicable to one or more tools, and when applied to a tool, the interactive element is adapted to receive user input and use the user input to modify the behavior of the tool. An interactive element is generated through the execution of an interactive workflow and defines an interface icon that receives user input via the interface icon. An interactive element manipulates the behavior of the tool and / or other tools in the workflow. An interactive element supports various means of receiving user input using various types of interface icons. Examples of interface icons include checkboxes, clickable buttons, text fields, list boxes, drop lists, date fields, etc. In some embodiments, one interactive element corresponds to multiple interface icons.

[0033] In some embodiments, the interactive element module 330 generates an interactive element for a particular tool in a workflow based on a data analysis function of the particular tool in the workflow. The interactive element module 330 analyzes the data analysis function of the particular tool in the workflow and selects an interactive element from a plurality of candidate interactive elements based on the analysis. For example, the interactive element module 330 determines parameters used in the operation of the particular tool to perform its data analysis function and selects an interactive element based on the parameters. Taking a filter tool as an example, the interactive element module 330 determines that the data analysis function of the tool is filtering data and that the tool requires filtering parameters to perform its function. Based on the determination, the interactive element module 330 generates an interactive element for the tool that defines an input box that allows a user to input the filtering parameters. In some embodiments, the interactive element module 330 generates the interactive element further based on a data file that is processed by the tool. In the example of a filter tool, the interactive element module 330 determines that the data file includes multiple variables. The interactive element module 330 identifies the variables in the data file and generates an interactive element that defines a drop-down list that includes the variables. The user can select a variable from a drop-down list, which will be used as a filtering parameter by the filter tool.

[0034] In some other embodiments, the interactive element module 330 provides the workflow designer with a number of candidate interactive elements, for example in a GUI, and receives a selection of an interactive element from the candidate interactive elements from the workflow designer. Each candidate interactive element may have a symbol or description indicating a type of interaction supported by the interactive element. The workflow designer can drag an interactive element from the candidate interactive elements based on the interactive element's symbol or description. The user interface also allows the workflow designer to define a relationship between the interactive element and the tool, for example, by connecting the interactive element to a tool to associate the interactive element with the tool, or by inserting the interactive element into the workflow as a new tool that precedes the tool in the workflow.

[0035] In some embodiments, the user interface supported by the interactive element module 330 and the user interface supported by the tools module 320 are integrated. For example, tools and interactive elements are provided in the same user interface. A workflow designer may select either a tool or an interactive element and define the relationship between them. Using such a user interface, a workflow designer may create a new interactive workflow (e.g., add a tool to a workflow and associate an interactive element with the tool before adding another tool to the workflow) or apply an interactive element to an existing workflow to make the existing workflow interactive (e.g., create / get the workflow before associating an interactive element with one of the tools in the workflow).

[0036] The workflow execution module 340 facilitates the execution of workflows (including interactive workflows). The workflow execution module 350 receives data files from the data reception module 310 and sends the data files to the workflow. Execution of the workflow generates result items. For interactive workflows, execution also generates interface icons. The interface icons are adapted to receive user input. The interface icons can be checkboxes, clickable buttons, text fields, list boxes, drop-down lists, date fields, etc. The interactive elements facilitate the transmission of user input from the interface icons to specific tools in the interactive workflow. The interactive elements also trigger the operation of the specific tools. The specific tools process the data based on the user input. If there are tools following the specific tool in the workflow, the data is further processed by these subsequent tools. In this manner, at least a portion of the workflow is executed based on the user input.

[0037] In one example, the workflow execution module 350 initially executes the interactive workflow without user input. The first execution of the interactive workflow generates a first result item and interface icons defined by interactive elements in the interactive workflow. The interface icons receive user input and transmit the user input to the interactive elements. In response to receiving the user input, the interactive elements trigger a re-execution (second execution) of at least a portion of the interactive workflow based on the user input. The re-execution includes, for example, specific tools and tool actions following specific tools, if any. The re-execution of the workflow incorporates the user input and generates a second result item that is different from the first result item. The workflow execution module 340 provides the second result item for display to the user, either as a replacement for the first result item or separately from the first result item.

[0038] In some embodiments, the workflow execution module 340 also logs information generated during the execution of the workflow, such as error messages, the status of data processing, etc. In some embodiments, the workflow execution module 340 facilitates a preview mode that allows a workflow designer to test the workflow. The preview mode illustrates how the workflow will function during actual execution.

[0039] Figure 4A is a schematic diagram illustrating an interactive workflow 400 created using data analysis application 150, according to one embodiment. Figure 4B is a schematic diagram illustrating result items generated by interactive workflow 400, according to one embodiment. Interactive workflow 400 is a workflow that includes an interactive element 450 associated with one of the tools in the workflow. Interactive workflow 400 processes a data file and generates result items 405 (shown in Figure 4B) that represent the results of the processing.

[0040] Interactive workflow 400 has a sequence of tools including an input tool 410, a filter tool 420, a formula tool 430 associated with an interactive element 450, and a browse tool 440. Interactive element 450 is not part of the sequence. Rather, interactive element 450 and filter tool 420 form a branch of interactive workflow 400. In other embodiments, interactive workflow 400 may include different tools and / or more interactive elements. Also, interactive elements may be associated with different tools.

[0041] The input tool 410 receives a data file, for example from a data source 120 shown in FIG. 1. The input tool 410 sends the data file to a filter tool 420. The filter tool 420 filters the data in the data file based on one or more filtering parameters and generates a new data file. The filter tool 420 sends the new data file to a formula tool 430. In some embodiments, the filter tool 420 receives the filtering parameters via an interactive element 450.

[0042] The interactive element 450 includes an interface module 460 and an action module 470. The interface module 460 defines an interface icon that the user can interact with to provide filtering parameters. For example, the interface module 460 specifies that the interface icon is an input box, a clickable button, a drop-down list, or other type of icon that the user can interact with to provide filtering parameters. The interface module 460 communicates with the interface icon and receives the filtering parameters provided by the user from the interface icon. In response to the interface module 460 receiving the filtering parameters, the action module 470 provides the filtering parameters to the filter tool 420 and triggers an operation of the filter tool 420 based on the filtering parameters. The formula tool 430 and the browse tool 440 that follow the filter tool in the sequence can be triggered by the action module 470 or the filter tool 420.

[0043] The formula tool 430 converts the data in the new data file into result data based on the formula. The browse tool 440 receives the result data from the formula tool 430 and generates result items 405 that represent the new data. The result items are graphical representations of the new data, such as charts or diagrams. In FIG. 4B, the result items are charts that include multiple bars. Each bar indicates the number of times the application was downloaded on a corresponding day. The browse tool 440 also generates the interface icons 415 based on instructions from the interface module 460, which defines the interface icons, for example. In the embodiment of FIG. 4B, the interface module 460 defines that the interface icon 415 is an input box into which a user can enter a text string, and in response, the browse tool 440 generates the input box. The interface icons 415 are separate from the result items 405. However, in other embodiments, the browse tool 440 may integrate the interface icons 415 with the result items. For example, a result item may include a symbol (eg, a bar, a curve, a box, or a text string within the result item) that serves as an interface icon.

[0044] The browse tool 440 provides the result items 405 and the interface icon 415 for display to the user. The user can define new filtering parameters by interacting with the interface icon, for example, by specifying a specific day or specific days in an input box. As shown in FIG. 4B, the new filtering parameter is "weekdays". The new filtering parameter is sent to the interface module 460 of the interactive element 450 and further to the filter tool 420. The filter tool 420 is triggered by the action module 470 to filter the data based on the new filtering parameter, thereby outputting the data associated with the weekdays. The data associated with the weekdays is sent to the formula tool 430 for further processing. The formula tool 430 generates new result data that is sent to the browse tool 440. The browse tool 440 generates a new result item 425 that indicates the number of downloads of the application on the weekdays.

[0045] 4A and 4B, interactive element 450 is associated with filter tool 420. In other embodiments, such as the embodiment of FIG. 5, the interactive element is applied to the workflow as a new tool within the workflow.

[0046] 5 is a schematic diagram illustrating another interactive workflow 500 created using the data analysis system 110, according to one embodiment. The interactive workflow 500 has a sequence of tools including an input tool 510, an interactive tool 520, a filter tool 530, a formula tool 550, and a browse tool 570. In other embodiments, the interactive workflow 400 may include different tools and / or more interactive elements.

[0047] Similar to input tool 410, input tool 510 receives data files from, for example, data source 120 shown in Figure 1. Input tool 510 transmits the data files to interactive tool 520.

[0048] The interactive tool 520 receives user input and manipulates the execution of the interactive workflow 500. Unlike the interactive element 450 of FIG. 4A, the interactive tool 520 is part of the sequence of tools of the interactive workflow 500. The interactive tool 520 generates interactive items (e.g., interactive tables, charts, etc.) based on the data file and provides the interactive table for display to the user. The interactive items show the data in the data file to the user and allow the user to interact with the components in the interactive table. For example, the user can select a variable in the interactive table. The interactive tool 520 receives the user's interaction and sends it to the filter tool 530, which triggers the operation of the filter tool 530 based on the user's interaction, e.g., the user's selection of a variable. The filter tool 520 uses the variable selected by the user to filter the data in the data file and generate a new data file. The filter tool 520 then sends the new data file to the formula tool 550, which applies a formula to the new data file and generates a result data file. The browse tool 560 receives the result data file from the formula tool 550 and generates result items.

[0049] Although both interactive workflows 400 and 500 are adapted to manipulate the operation of filter tools 420 and 530 based on user input, the two interactive workflows 400 and 500 are created and operate in different ways: interactive workflow 400 is applied to and includes an interactive element associated with filter tool 420 (i.e., interactive element 450), whereas interactive workflow 500 includes an interactive tool that precedes filter tool 530 in interactive workflow 500 (i.e., interactive tool 520).

[0050] The difference between the two interactive workflows 400 and 500 results in different experiences for designers and users. Because the interactive tool is one of the tools in a sequence, the designer can create the interactive workflow 500 in a more linear manner. For example, the designer can create the interactive workflow 500 through linear programming. Also, the user of the interactive workflow 500 can provide input before the operation of the filter tool 530, the formula tool 540, and the browse tool 550 and before the result items are generated, whereas the user of the interactive workflow 400 waits until the result items 405 and the interface icons 415 are generated to provide input. In one embodiment, the designer changes how the user input is received in the interactive workflow 400. The designer can make the change by changing the interactive elements 450, without having to modify the sequence of tools. Also, the interactive workflow 400 allows the interface icons 415 to be integrated with the result items 405, making it more convenient for the user to provide input by interacting with the result items 405 without switching to different items. The data analysis application 150 facilitates the creation and execution of both interactive workflows 400 and 500 to meet the different needs of designers and users.

[0051] 6 is a flow chart illustrating a process for generating an interactive workflow 600 according to one embodiment. In some embodiments, process 600 is performed by data analysis application 150, although some or all of the operations in process 600 may be performed by other entities in other embodiments. In some embodiments, the operations of process 600 may be performed in a different order and may include different and / or additional steps.

[0052] The data analysis application 150 receives an analysis workflow comprising a sequence of tools, each of which performs a data analysis function such as input, output, preparation, join, prediction, spatial, exploration, analysis, transformation, etc.

[0053] The data analysis application 150 generates interactive elements for the tools in the sequence based on the data analysis functions of the tools in the analysis workflow. The interactive elements are adapted to receive user input and trigger the operation of the tools based on the user input. The interactive elements define interface icons through which a user can provide input to operate the analysis workflow. The data analysis application 150 may also use data files that the analysis workflow processes to generate the interactive elements.

[0054] In some embodiments, the data analysis application 150 selects an interactive element from a plurality of interactive elements based on the data analysis capabilities of the tools in the analysis workflow. In some other embodiments, the data analysis application 150 selects a plurality of interactive elements based on the data analysis capabilities of the tools in the analysis workflow and provides the plurality of interactive elements to the user for the user to select one or more interactive elements from the plurality of interactive elements. The data analysis application 150 receives the user's selection of an interactive element.

[0055] The data analysis application 150 applies an interactive element to a tool to update the analysis workflow. An interactive element applied to a tool is adapted to receive a user interaction and modifies the operation of the tool in the analysis workflow. For example, the interactive element receives a user interaction from an interface icon, sends the user interaction to the tool, and triggers the tool to perform a data analysis function based on the user interaction. In some embodiments, the data analysis application 150 associates the interactive element with the tool in the analysis workflow. In some other embodiments, the data analysis application 150 adds the interactive element to the data analysis workflow as a new tool. The new tool is before the tool in the sequence.

[0056] The data analysis application 150 provides an updated analysis workflow for processing the data file. The updated analysis workflow is adapted to generate result items representing the results of processing the data file. In some embodiments, the data analysis application 150 provides an updated analysis workflow for processing the data file on a client device. In some other embodiments, the data analysis application 150 provides the updated analysis workflow to a third party server (e.g., a server operating in the cloud) that communicates with the client device, and the data file is processed on the third party server using the updated analysis workflow. In embodiments where the interactive element receives user input, for example, via an interface icon that communicates with the interactive element, the updated analysis workflow generates result items based on the user input. The interface icon allows the user to modify the input such that the result items generated by the updated analysis workflow can also be modified.

[0057] Re-running the updated analytical workflow also includes the operation of tools following the tool in the sequence. Re-running the updated analytical workflow generates a new result item that is different from the result item and reflects the user input. The new result item can be provided to the display instead of or in addition to the result item. The user can change the input via an interface icon to obtain another, different result item that reflects the changed input.

[0058] FIG. 7 is a high-level block diagram illustrating a functional view of an exemplary computer system 700 for use as the machine learning server 110 of FIG. 1, according to one embodiment.

[0059] The illustrated computer system includes at least one processor 702 coupled to a chipset 704. The processor 702 may include multiple processor cores on the same die. The chipset 704 includes a memory controller hub 720 and an input / output (I / O) controller hub 722. The memory 706 and the graphics adapter 712 are coupled to the memory controller hub 720, and the display 718 is coupled to the graphics adapter 712. The storage device 708, the keyboard 710, the pointing device 714, and the network adapter 716 are coupled to the I / O controller hub 722. In some alternative embodiments, the computer system 700 may have additional, fewer, or different components, and the components may be coupled differently. For example, an embodiment of the computer system 700 may lack a display and / or a keyboard. Additionally, the computer system 700 may be instantiated as a rack mounted blade server or as a cloud server instance in some embodiments.

[0060] The memory 706 holds instructions and data used by the processor 702. In some embodiments, the memory 706 is a random access memory. The storage device 708 is a non-transitory computer-readable storage medium. The storage device 708 may be a HDD, SSD, or other type of non-transitory computer-readable storage medium. Data processed and analyzed by the machine learning server 110 may be stored in the memory 706 and / or the storage device 708.

[0061] Pointing device 714 may be a mouse, trackball, or other type of pointing device and may be used in combination with keyboard 710 to input data into computer system 700. Graphics adapter 712 displays images and other information on display 718. In some embodiments, display 718 includes touch screen capabilities for receiving user input and selections. Network adapter 716 couples computer system 700 to network 170.

[0062] The computer system 700 is adapted to execute computer modules for providing the functions described herein. The term "module" as used herein refers to computer program instructions and other logic for providing a particular function. A module can be implemented in hardware, firmware, and / or software. A module can include one or more processes and / or can be provided by only a portion of a process. A module is typically stored in a storage device 708, loaded into memory 706, and executed by the processor 702.

[0063] The particular naming of components, capitalization of terms, attributes, data structures, or other programming or structural aspects are not required or important, and mechanisms for implementing the described embodiments may have different names, formats, or protocols. Furthermore, the system may be implemented through a combination of hardware and software as described, or entirely with hardware elements. Also, the particular division of functionality between various system components described herein is merely exemplary and not required. Functions performed by a single system component may instead be performed by various components, and functions performed by various components may instead be performed by a single component.

[0064] Some portions of the above description are characterized in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described in functional or logical terms, will be understood to be implemented by computer programs. Further, without loss of generality, it is sometimes convenient to refer to the arrangement of these operations in terms of modules or functional names.

[0065] As will be apparent from the above description, unless otherwise stated, throughout the description, descriptions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" relate to the actions and processes of a computer system or similar electronic computing device that manipulate and transform data represented as physical (electronic) quantities in the memory or registers of the computer system, or other information storage, transmission or display device.

[0066] Certain embodiments described herein include process steps and instructions that are described in the form of algorithms. It should be noted that the process steps and instructions of the embodiments may be implemented in software, firmware, or hardware, and if implemented in software, may be downloaded to reside on and operate from different platforms used in real-time network operating systems.

[0067] Finally, it should be noted that the language used in the specification has been selected primarily for ease of reading and explanatory purposes, and not to delineate or limit the subject matter of the present invention. Thus, the disclosure of the embodiments is intended to be illustrative, but not limiting.

Claims

1. A computer-implemented method, comprising: receiving, at a computing device, an analysis workflow that includes a sequence of tools, wherein each tool in the sequence of tools is configured to perform a data analysis function; generating, based on the data analysis function of the tools, interactive elements for the tools in the sequence of tools, wherein the interactive elements for the tools in the sequence of tools are not included in the analysis workflow when the analysis workflow is received by the computing device, and the interactive elements are configured to change at least one operation of the tools in the sequence of tools based on user input to the interactive elements; receiving user input at the interactive elements and updating the analysis workflow by changing the at least one operation of the tools in the sequence of tools based on the received user input; outputting the updated analysis workflow for processing a data file, wherein the updated analysis workflow is adapted to generate a result item representing a result of the processing of the data file; A computer-implemented method, comprising the steps above.

2. The computer-implemented method according to claim 1, further comprising: generating an interface icon for the interactive elements and displaying the interface icon on a user interface, wherein the user input is transmitted via the interface icon.

3. The computer-implemented method according to claim 2, further comprising: outputting the interface icon together with the result item to represent a part of the result of the processing of the data file obtained from the updated analysis workflow.

4. The step of generating, based on the data analysis function of the tools, the interactive elements for the tools in the sequence of tools in claim 1 comprises: selecting the interactive elements from a plurality of interactive elements based on the data analysis function of the tools in the analysis workflow. The computer-implemented method according to claim 1.

5. Based on the data analysis function of the tool, the step of generating the interactive element of the tool within the sequence of the tool is as follows: Selecting a plurality of interactive elements based on the data analysis function of the tool; Displaying the plurality of interactive elements via a user interface and prompting the user to select one or more interactive elements from the plurality of interactive elements; Receiving an input for selecting at least one of the plurality of interactive elements via the user interface; Generating the interactive element of the tool based on at least one of the selected plurality of interactive elements. The computer-implemented method according to claim 1 includes these steps.

6. The computer-implemented method according to claim 1 further includes adding the interactive element as a new tool preceding the tool within the sequence of the tool to the analysis workflow.

7. The interactive element is adapted to trigger the operation of another tool following the tool within the sequence of the tool and generate different result items. The computer-implemented method according to claim 1.

8. A non-transitory computer-readable memory storing executable computer program instructions, wherein the computer program instructions cause a processor to: Receive, in a computing device, an analysis workflow including a sequence of tools, wherein each tool within the sequence of the tools is configured to execute a data analysis function; Generate, based on the data analysis function of the tool, an interactive element of the tool within the sequence of the tool, wherein the interactive element for the tool within the sequence of the tool is not included in the analysis workflow when the analysis workflow is received by the computing device, and the interactive element is configured to change at least one operation of the tool within the sequence of the tool based on user input to the interactive element; Receive user input with the interactive element and update the analysis workflow by changing the at least one operation of the tool within the sequence of the tool based on the received user input. Outputting the updated analysis workflow for processing the data file, the updated analysis workflow being adapted to generate result items representing the results of the processing of the data file A non-transitory computer-readable memory enabling the execution of operations including Claim 9 The operations include Generating an interface icon for the interactive element and displaying the interface icon on a user interface, wherein the user input is received via the interface icon, further comprising the non-transitory computer-readable memory according to claim 8 Claim 10. The operations include Outputting the interface icon together with the result item to represent a part of the result of the processing of the data file obtained from the updated analysis workflow, further comprising the non-transitory computer-readable memory according to claim 9 Claim 11. Generating the interactive element of the tool within the sequence of the tool based on the data analysis function of the tool Comprises selecting the interactive element from a plurality of interactive elements based on the data analysis function of the tool within the analysis workflow, further comprising the non-transitory computer-readable memory according to claim 8 Claim 12. Generating the interactive element of the tool within the sequence of the tool based on the data analysis function of the tool Selecting a plurality of interactive elements based on the data analysis function of the tool Displaying the plurality of interactive elements via a user interface and prompting the user to select one or more interactive elements from the plurality of interactive elements Receiving an input for selecting at least one of the plurality of interactive elements via the user interface Generating the interactive element of the tool based on at least one of the selected plurality of interactive elements, further comprising the non-transitory computer-readable memory according to claim 8 Claim 13. The operations include Adding the interactive element to the analysis workflow as a new tool preceding the tool within the sequence of the tool, further comprising the non-transitory computer-readable memory according to claim 8 Claim 14 The non - transitory computer - readable memory according to claim 8, wherein the interactive element is adapted to trigger the operation of another tool following the tool within the sequence of the tools and generates different result items.

15. A computer system comprising: a computer processor for executing computer program instructions; a non - transitory computer - readable memory storing computer program instructions executable by the computer processor to perform operations; wherein the operations include: receiving an analysis workflow including a sequence of tools, wherein each tool within the sequence of tools is configured to perform a data analysis function; generating an interactive element of a tool within the sequence of tools based on the data analysis function of the tool within the analysis workflow, wherein the interactive element of the tool within the sequence of tools is not included in the analysis workflow when the analysis workflow is received, and the interactive element is configured to change at least one operation of the tool within the sequence of tools based on user input to the interactive element; receiving user input at the interactive element and updating the analysis workflow by changing the at least one operation of the tool within the sequence of tools based on the received user input; applying the interactive element to the tool to update the analysis workflow, wherein the interactive element is adapted to receive user input and trigger the operation of the tool based on the user input; outputting the updated analysis workflow for processing a data file, wherein the updated analysis workflow is adapted to generate a result item representing the result of the processing of the data file; A computer system including the above.

16. The operations further include: generating an interface icon for the interactive element and displaying the interface icon on a user interface, wherein the user input is received via the interface icon. The computer system according to claim 15.

17. Generating the interactive element of the tool within the sequence of the tool based on the data analysis function of the tool is selecting the interactive element from a plurality of interactive elements based on the data analysis function of the tool within the analysis workflow, the computer system according to claim 15, comprising.

18. Generating the interactive element of the tool within the sequence of the tool based on the data analysis function of the tool is selecting a plurality of interactive elements based on the data analysis function of the tool displaying the plurality of interactive elements via a user interface and prompting the user to select one or more interactive elements from the plurality of interactive elements receiving an input for selecting at least one of the plurality of interactive elements via the user interface generating the interactive element of the tool based on at least one of the selected plurality of interactive elements, the computer system according to claim 15, comprising.

19. The operation is further comprising adding the interactive element to the analysis workflow as a new tool preceding the tool within the sequence of the tool, the computer system according to claim 15.

20. The interactive element is adapted to trigger the operation of another tool following the tool within the sequence of the tool and generates different result items, the computer system according to claim 15.