Patent ID: 12235834

DETAILED DESCRIPTION

The present disclosure describes various tools and techniques for generating intelligent data reports based on insight into key aspects of the data to provide reports that include identified trends.

One key challenge in data analysis and report generation is how to determine and select the right data fields from a data model for a data set to provide meaningful results. In some cases, without prior knowledge of correlation between the data fields, a report generation task can be cumbersome and may require multiple trials until the fields that are selected for the report can yield a report that shows a trend or pattern in the data. In today's data driven world, the vast amount of accumulated data makes it difficult to choose the right data (and the most relevant data) quickly to generate a report in an efficient and accurate way to provide meaningful results for different use cases. For example, if a database stores data for sales of various products at various locations that are associated with various providers, generating a report that includes relevant trends in the sales associated with a particular product can be difficult. Such a report can be associated with multiple possible selections of combinations of fields (e.g., combining one product with a particular location and various providers, combining all products with a particular location and presenting information for sales revenue, etc.) before a meaningful report (i.e., a report that includes a trend or pattern in the association between data fields) is generated. For example, a meaningful report can be a report that shows a particular trend in the months with the highest sales in a particular geographical location.

In some cases, when a data set is associated with multiple data fields (e.g., attributes), generation of a report by a user based on a selection of a set of the data fields can be associated with manual and time-consuming processes of sifting through the data to select those data fields related to a particular report or analysis goal (e.g., trends in sales of apple juice) that can result in an output showing trends in the data set. A user may struggle to determine which data fields are the most relevant and important for a particular analysis or report. Furthermore, the selection of data fields can also be a complex task, as users need to consider a range of factors such as the data type, role, and relevance of each data field. This can be particularly challenging when dealing with a large pool of potential data fields, leading to suboptimal analysis and reporting. Without an effective tool for data field selection, generation of reports that support an organization's performance may be associated with high costs as well as poor user experience for those working on the report generation. For example, users, and the stakeholders who can benefit from the data analysis, may experience significant delays in the data analysis result generation and the reporting process in general. This can result in missed business opportunities, incorrect decisions, and a lack of visibility into key data metrics that can be associated with the business performance.

In accordance with the present implementation, a smart selector is proposed that leverages predictive analytics and machine learning algorithms to provide an insightful and more efficient way to select data fields for analysis and reporting. In some instances, when a user selects a data field for generating a report, the smart selector can intuitively propose other data fields related to the selected data field that may result in a data report that includes trends identified in the data set for the first selected data field. Further, the inclusion of further data fields can be based on an analysis of historically requested reports that include the user-selected data field to infer at least one other field that is used for generating a report based on a data field inclusion criterion. In some cases, a combination of (1) knowledge about correlation between fields and (2) knowledge about any prior usages of fields to generate past reports can be used to determine a proposed new data field to be included for a newly generated report based on an initial selection of a data field (or multiple selected initial data fields).

For example, the smart selector can be implemented as part of an analytical tool (e.g., a cloud analytical tool or an on-premises tool) that is used for analyzing data such as sales data of a company. A user, such as a sales manager, or other user roles defined in the analytical tool such as a planner, operations specialist, for example, can be provided with an interface to select and filter data to generate a report. For example, the sales manager may want to create a report to see how the sales quantities for different products vary by region and by salesperson or sales representative. For example, the sales manager can use data from data source(s) that are accessible to the user and to the analytical tool. In that example, the user can start creating the report by selecting data fields presented for selection at the user interface. For example, a sales quantity measure or a particular product (e.g., sport shoes) can be selected to initiate the report generation. A smart selector component can obtain the selected data field and use machine-learning algorithms to analyze historical data trends to identify the most relevant dimensions associated with the initially selected data field. For example, if a salesperson has selected “Sales Quantity” as a dimension of type measure to focus on analyzing sales volumes, the smart selector can use predictive logic to analyze available historical data trends in the data that is available for the user and for the report generation to identify one or more other data fields (corresponding to dimensions in the data) that can be relevant for a report that includes “Sales Quantity.” The analysis of historical data trends can be performed by recognizing correlations between data fields associated with the data, and/or analyzing available reports generated based on the same data that also includes the selected data field (i.e., “Sales Quantity”). The selector can suggest using, or can actively and automatically select, further data fields such as data field “Product” and/or “Sales Region” as fields associated with data values that are correlated with the data for the “Sale Quantity.”

For example, the selector can analyze the correlation between the sales quantity and other dimensions associated with the data, and can then provide as suggested those data fields that correspond to dimensions that are highly correlated. For example, the data for the sales quantities can be highly correlated with the type of products, with the locations where the sales are executed, with a particular time period (e.g., months, years, seasons, etc.), or with the salesperson who is associated with the sales execution, among other example data fields that can be associated with the sales execution.

In some instances, the data associated with sales quantities can be associated with data trends when considered with data for the salesperson. For example, a particular salesperson can sell extremely high quantities compared to others, and thus the distribution of the sales and the performance of the salespeople may not be balanced. Other example relations between data of different data fields (and respective dimensions) can also be identified. For example, sales quantities can exhibit surprisingly low values for a particular product (e.g., alcohol) or geographical region, at a particular time. In that example, such trends may be evaluated and interpreted by a sales manager to make further business decisions for supply and demand of alcohol in those areas during such time periods. Thus, a smart selector can propose the selection of data fields such as “Alcohol”, “Location X”, and “Month” in addition to the “Sales Quantity” field. In contrast, if the report generation is not supported by a smart selector to identify such trends and to propose such selection, a sales manager who needs to identify such a trend may be required to generate multiple reports and review data associated with various products and locations, and browse through different time dimensions to identify a specific trend in the sales of alcohol.

In some instances, the selector can automatically select one of the fields “Product” and “Sales Region,” or both together, and can generate a report based on the selection. Further, the user interface may allow for further interaction with the data fields to filter the report even further. For example, the sales manager may select the “Electronics” product category and/or the “West” sales region to request a report to see how sales of electronics products vary in the western region. Alternatively, the sales manager may select a specific salesperson within the “Salesperson” dimension to see how their sales performance compares to others in the same region or product category. The selection of the “Salesperson” dimension and the specific salesperson may be a user-defined selection once the selector has provided suggestions for further data fields to be included in the report. In this way, the sales manager can iteratively navigate the definition of fields to be included in a report based on consecutive selections by the user and the selector. During the selection process, either done by the user or the selector, a report can be visualized.

In accordance with implementations of the present disclosure, the selector can perform the selection of data fields by relying on predictive analytics capabilities, which can support the sales manager (or other example users) in quickly identifying the most relevant dimensions for analysis of data related to “Sales Quantity”. The data fields suggested by the selector can be associated with specific values in the dimensions corresponding to the data fields that can further support the generation of a report focused on the analysis of data related to sales quantities (as indicated with the initial user selection). The suggestion of further data fields that can be used to generate reports which include trends in data can support accurate and fast report generation that supports informed decision-making processes.

In some instances, the smart selector can rely on understanding of correlation between data fields of a data set to propose a data field(s) to be included, in addition to generating a data report when one or more data fields have already been initially selected. In other instances, the smart select can rely on analysis of historical data to identify the most relevant data fields that can be included. For example, during a data selection process to build a report, a user may be provided with real-time insights into the most relevant fields for generating the report based on an initially selected one or more data fields. The real-time insight can be based on a predictive analysis performed over data for a plurality of data fields (e.g., analysis of relationship between data fields such as product type, country, time, distributor, or else). If reports are generated based on insight into correlation between data fields, the reports' generation can be performed faster and with fewer interactions to provide results that can support informed decisions and ultimately lead to better outcomes. This can in turn improve the performance of the processes and the entities associated with the data used for the predictive analysis and report generation.

In some instances, reports can be generated based on data from one or more data sources and according to a predefined set of data manipulation operations. In some instances, a data source may support different data manipulation operations natively. The execution of the data manipulation operations that are not natively supported by a data source can be performed based on an extraction of data from the data source according to a defined query execution plan that supports the subsequent execution of the data manipulation operation outside of the data source technology stack. In some instances, extracted data from data sources can undergo further data manipulations such as aggregation based on data extraction, transformation, and loading techniques.

FIG.1is a block diagram depicting an example computer-implemented system100that can execute implementations of the present disclosure in accordance with implementations of the present disclosure. In the depicted example, the example system100includes a client device102, a client device104, a network110, a computing environment106, and a computing environment108. The computing environment(s)106and/or108can be cloud computing environments that can include one or more server devices and databases (for example, processors, memory). In the depicted example, a user114interacts with the client device102, and a user116interacts with the client device104.

In some examples, the client device102and/or the client device104can communicate with the environment106and/or environment108over the network110. The client device102can include any appropriate type of computing device, for example, a desktop computer, a laptop computer, a handheld computer, a tablet computer, a personal digital assistant (PDA), a cellular telephone, a network appliance, a camera, a smart phone, an enhanced general packet radio service (EGPRS) mobile phone, a media player, a navigation device, an email device, a game console, or an appropriate combination of any two or more of these devices or other data processing devices. In some implementations, the network110can include a large computer network, such as a local area network (LAN), a wide area network (WAN), the Internet, a cellular network, a telephone network (for example, PSTN), or an appropriate combination thereof connecting any number of communication devices, mobile computing devices, fixed computing devices and server systems.

In some implementations, the environment106(and/or the environment108) can include at least one server and at least one data store120. In the example ofFIG.1, the environment106is intended to represent various forms of servers including, but not limited to, a web server, an application server, a proxy server, a network server, and/or a server pool. In general, server systems accept requests for application services and provide such services to any number of client devices (for example, the client device102over the network110).

In accordance with implementations of the present disclosure, and as noted above, the environments106and/or the environment108can host applications and databases running on the host infrastructure. In some instances, the environment106can include multiple cluster nodes that can represent physical or virtual machines that can represent web node clusters. A hosted application and/or service can run on virtual machines (VMs) hosted on cloud infrastructure.

In some instances, the environment106and/or the environment108can provide infrastructure for hosting an analytical tool in accordance with the present disclosure.

In some instances, the environments106or108can host a smart selective analytical tool (e.g., the Smart Selective Analytical tool201ofFIG.2) or a smart selector service (e.g., the Selector225ofFIG.2).

In some instances, at least one of the environments106or108can host a service component that employs predictive analytics and machine learning algorithms to facilitate efficient and insightful data field selection for analysis and reporting based on user-provided selection of at least one data field for the data analysis and report generation. In some instances, the service component can expose a user interface including a query panel to provide options for defining a report and a viewer panel to present the report as generated.

In some implementations, when a user selects a data field from a data set (e.g., the data field is mapped to a model entity of a data model defining the data set) through the query panel, the service component can analyze historical data trends using correlation analysis and pattern recognition to identify the most relevant data fields for the analysis or report.

FIG.2is a block diagram of an example computing environment200including a smart selective analytical tool201to support report generation in accordance with implementations of the present disclosure.

The smart selective analytical tool201can be an analytical service or application, running in a cloud computing environment or on-premises environment. The smart selective analytical tool201can communicate with one or more users to provide analytical services based on data provided from a database layer250or from an external data source that is communicatively coupled to the smart selective analytical tool201. Further, the database layer250can include user data265that can be used for aggregating data for generated reports based on user roles and association with an account (e.g., when multiple accounts can be defined as authorized to use the smart selective analytical tool201).

In some instances, the smart selective analytical tool201can be provided as part of a report builder solution, data explorer solution, planning and forecasting service, or a dashboard builder, among other example analytics software solutions that can incorporate the logic of a smart selector to improve the experience and efficiency during report generation.

In some instances, a user205can interact with a query panel210provided by a user interface associated with the smart selective analytical tool201to obtain user selections and/or other input for defining a query to generate a report that can be visualized at a viewer220. In some instances, the query panel210can provide a list of data fields associated with a data source, such as a data source from data sources260of the database layer250. The data fields from the list can correspond to dimensions identified in the data of the data source. In some instances, the data fields are defined based on a data model215associated with the data that is to be used for the report (e.g., data from the data sources260or other data set). In some instances, the data model215can be generated as a live data model where the smart selective analytical tool201is provided with information about the type of data and categories of the data in a data source that is to be used for a report. In some other instances, the data model215can be obtained, for example, as an imported data model for a data set that is provided to the smart selective analytical tool201. In the case of a live data model, the analytical tool does not have access to the data and does not understand the volume of the data that may be associated with executing a query to generate a report. In the case of an offline data model, the analytical tool has access to the data and real-time data analysis can be performed, stored, reused, and updated to support the analytical services provided by the smart selective analytical tool.

In some instances, the query panel210can display the list of data fields in a hierarchical structure (e.g., a tree structure), where various dimensions are defined as parent nodes and other dimensions are defined as sub-nodes (or child nodes). For example, the dimension “Products” can be defined as a parent node, where the child nodes can correspond to various products that are identified in the data such as trousers, t-shirts, skirts, shoes, accessories, other product types. The dimensions can be of different types and can include categorical, transactional, and numerical data in the data set of the data source. For example, a data source can include data for executed sales in relation to various products, various locations, associated with various brands, retailors, or time periods, among other example categories of the data that can be stored at the data source. The data source can be used for generation of various data reports that can look into specifics of the data from different perspectives. For example, a report can be directed to sales revenue, to performance of a salesperson, to performance at a particular location (e.g., a town or a country), or to a particular product and a period of time of high/low demand, or other criteria or goal for the report generation.

When a user initiates a report generation and selects a data field, the query panel210can communicate with a selector225. The selector225can be such as the smart selector previously discussed that can facilitate the report generation by identifying related data fields to already selected data field(s) to provide reports that include identified historical patterns. The selector225can obtain a selection as defined at the query panel210and can execute predictive logic240to determine correlations between data associated with the selected data field(s) and each or some of the other data fields associated with the data. In some instances, the prediction logic240can be executed as part of the selector225or as an externally implemented component. The prediction logic240can calculate correlation coefficients (e.g., Pearson coefficients) between different pairs (or other tuples) of data fields including the user selected data field to measure correlation strength and further use pattern recognition algorithms (e.g., k-nearest-neighbors (KNN) algorithm) to identify relevant data fields based on historical patterns that can be identified in historical data230. The Selector225can provide users with real-time insights into the most important data fields, allowing them to select and organize those fields for analysis and reporting quickly and easily.

In some instances, the selector225and the predictive logic240can be customized to meet specific needs for supporting the data field selection during the process of defining a report. In some instances, customizations can be defined on a user level, user role level, or organizational level, among others, and can be stored as data270at the database layer250. For example, based on identifying a role of the user205, a suggestion for one data field over another data field can be made based on customized preferences or needs of the user, role, or entity. In some examples, two data fields can be related to an initially requested data field from the user, and based on the customizations, a selection of one field over the other can be made. In some more examples, the determination of which data field to be selected can be based on other criteria such as user scenario, account to which the user is associated, historical data, user input, or external application or system input, among other examples. In some instances, the predictive logic240can be customized and trained to learn specific patterns in data field selection for a particular user or an account associated with the user, thus to adapt the suggestions for further data fields based on patterns identified during past report generations. In some instances, the predictive logic240can include predictive analytics and machine learning techniques to train a model that based on an input of one or more data fields can output predicted additional data fields that could potentially be relevant for the report generation that is requested by the user205. The model may be trained based on historical data230including stored past reports executed by used at the tool201, or based on stored interaction data for users requesting reports at the tool201.

In some instances, the selector225and the prediction logic240, whether implemented separately or as a single component, can be deployed on-premises or in the cloud, and can be integrated with a variety of data sources, such as databases, data warehouses, and data lakes. The selector225can be integrated into various solution-providing features within an analytics or planning software.

In some instances, the selector225and the prediction logic240can support the identification of an additional data field from the data of the data source used for the report generation as requested by the user205. The additional data field can be a dimension of a different type, including a generic dimension (e.g., product), a measure (e.g., sales revenue, sales quantity), or a time dimension (e.g., year, month, season, quarter, etc.). The prediction logic240(whether implemented separately or incorporated in the selector225) can use machine learning algorithms to analyze historical data trends in the data and identify the most relevant data fields for analysis to generate the report.

In some instances, to determine the most relevant data field, the prediction logic240can use correlation analysis to identify how strongly each field is correlated to a data field selected by the user205. In some instances, correlation can be measured using a Pearson correlation coefficient, which is calculated as the covariance between the two variables divided by the product of their standard deviations, as shown in formula (1) below:
r=cov(X,Y)/(std(X)*std(Y))  (1)where X and Y are the two variables being compared, cov(X, Y) is their covariance, and std(X) and std(Y) are their standard deviations.

In addition to correlation analysis, the prediction logic240can use pattern recognition to identify which data fields are most relevant for the data field selected by the user. This can involve analyzing historical data trends in historical data230to identify patterns that are specific to the selected data field (e.g., in 90% of the generated reports the sales quantities are observed in relation to regions) and then use those patterns to identify other data fields that are likely to be relevant (e.g., look whether there is a correlation between a particular region or set of regions are sales quantities). Pattern recognition can be implemented using a variety of machine learning algorithms, such as decision trees, neural networks, or support vector machines.

In some instances, a pattern recognition algorithm that can be employed by the prediction logic240component can be the KNN algorithm, which works by identifying the k data points in the training set (e.g., the historical data230or else) that are closest to the input data point, and then using the labels of those data points to make a prediction about the label of the input data point. Mathematically, the KNN algorithm can be expressed as follows in formula (2) below:
y=mode({y1,y2, . . . ,yn})  (2)where y is the predicted label of the input data point, mode is the most common label among the k-nearest neighbors, and y1, y2, . . . yn are the labels of the k-nearest neighbors.

By combining correlation analysis and pattern recognition when performing the selection (smart selection) of additional data fields, accurate identification of the most relevant data fields for a given data analysis and report can be achieved. This can allow users to quickly and easily select the most prominent data fields to propose a report that includes identified data trends and specifics (correlations) identified in the data prior to the report generation.

For example, the selector225can be implemented to execute the process300ofFIG.3. The selector225can support data field selection that ensures that a planning and/or forecasting activity based on the report can be based on accurate and up-to-date data. Further, the smart selection of further data fields to rapidly generate reports based on identified insight for trends in the data can be used to automate the report generation process and reduce resource expenditures. The use of predictive analytics and machine learning algorithms can allow users to save time and effort in data field selection by performing the data field selection not solely based on user input but in a data-driven approach based on analysis of the data used for the report and/or historical data for past report generations.

In some instances, the selector225can obtain a suggestion for one or more additional data fields to be used for a report from the prediction logic240. The selector225can provide the obtained one or more additional data fields together with a user-selected data field at the query panel210to a report generator245to generate a report and output the report result at the viewer220. The report generator245can be used in the context of building reports or data exploration scenarios where the selector225can be used to generate one or multiple reports based on instructions from the user to support business decisions and/or to execute data exploration that can be used as input for further processes (e.g., further data collection or data acquisition, inclusion of more data sources for generating a report, etc.).

Once the report is generated, the query panel210can be updated to include the data fields used for the report and also to be open for further filtering of the data used for the report or modification of the query to adjust a used field or to focus on a particular narrower data field category (e.g., when data fields are defined in hierarchical manner, a user can select a particular sub-category such as “Shoes” from the data field “Product”).

In some implementations, once a report is generated for a particular user request from user205and the selector225has facilitated the report generation by suggesting some of the data fields, the report can be stored, for example, at the database layer250and/or as part of the historical data230that can be further used to train the machine learning algorithms implemented at the predictive logic240.

FIG.3is a flow diagram of a method300for report generation based on smart selection of data fields for identifying trends in the data in accordance with implementations of the present disclosure. In some instances, the method300can be executed at a computing environment such as the one provided by the example computing environment200ofFIG.2. The method for report generation can be executed at an analytical tool such as the smart selective analytical tool201ofFIG.2and/or based on an analytical tool that incorporates smart selection logic as described throughout the present disclosure and for example implemented at selector225and prediction logic240of the tool201ofFIG.2.

At310, a first user selection of a first data field from a list of data fields exposed for report generation is received. The selection is received at an interface associated with an analytical tool, for example, at a query panel210ofFIG.2. The query panel210can include a list of data fields that can be presented in a hierarchical manner to present different data objects representing categorical, transactional, or numerical data in the data that is to be used for the report generation. A data source can be defined as relevant for the report generation. A data model can be defined for the data in the data source. The data model can include model entities that can be provided as data fields at the user interface for selection and filtering of the data in the data source for generating a report.

In some instances, prior to the first user selection of the first data field, the user may request to connect to a data source. For example, a request for connection of the data source through the interface (e.g., graphical user interface) of the analytical tool can be received. In response to the request for the connection, the data source can be connected, and a data model associated with the data source can be used for generating a report. The model entities of the data model can be provided for user selection as data fields at the interface (e.g., as discussed in relation toFIG.2).

At320, in response to the first user selection, predictive logic to identify trends in data from the data source is executed. The predictive logic can be substantially similar to the discussed predictive analytics and machine learning algorithms that can be executed in relation to the selector225and the predictive logic240ofFIG.2. The identified trends are determined as associated with a first dimension of the data corresponding to the selected first data field and at least one additional dimension corresponding to at least one additional data field.

For example, a high correlation between sales quantities (where sales quantity is the selected first data field) and a location can be identified in the data from the data source, and/or trends in requesting reports based on sales quantities and a salesperson can be determined. Based on such determination, the location and/or the salesperson can be suggested for generating a report (or multiple reports for the combinations). For example, based on identifying various combinations, more than one option for suggestion of data fields to form a query for a report can be defined.

In some instances, the predictive logic execution can include computing correlations between data associated with the first dimension and at least one more dimension of other dimensions of the data from the data source. In some instances, the correlation between the data for the various data fields can be pre-computed or can be generated live, depending on the availability of the data to the analytical tool. In some instances, if the correlations have to be calculated for vast amount of data that is not previously available to the analytical tool, the data that can be used for the predictive execution can be restricted, for example, focused on the latest data up to a threshold value to support assisted discovery of relevant data fields for the report in a timely yet reliable manner (e.g., focused on latest trends). In can be understood that the portion of the data that can be used to assist in the selection of relevant data fields can be determined during the process300execution or can be pre-configured.

At330, a second data field from the set of at least one additional data field(s) is identified for report generation. For example, and in the context of the above example, the location can be identified as an additional data field, and the sales quantities and the location can be used to query the data to generate a report. Also, an identification of both location and a salesperson can be used to define the query for the report generation. As described, the second data field corresponds to a second dimension (location or salesperson as generic type dimensions) correlated with the first dimension to define trends in measurements (in the example, those are the sales quantities) from the data from the data source. For example, the report can be defined as a bar chart, graph, or other two- or three-dimensional graphic to represent the relationship between the data associated with the different data fields, e.g., sales quantities and a location.

At340, in response to identifying the second data field, the user is provided with an updated selection and a report at the interface. The user is provided with i) a selection (as an updated selection to the initial selection of the first data field) of the first and the second data fields from the list of data fields and ii) a first report generated based on data associated with the selected first and second data fields.

In some instances, a second user selection can be received at the interface from the user. The second user selection can be an interaction to modify the selection of the first and second data fields from the list of data fields. The second user selection modifies the selection of the second data field to a selection of a sub-dimension of the second data field as a new second data field. For example, if the first selected data field is “Sales Quantity” and the second data field as proposed by the selector is “Products,” the second user selection can modify the selection of “Products” to a particular product, e.g., “Shoes”. The “Shoes” dimension is a sub-dimension of the dimension “Products” and can be visualized as a child node in a hierarchical structure presenting the dimensions from the list used for the selection.

In some instances, based on the modification, a third data field from the data fields can be identified (e.g., by the selector) based on executing the predictive logic to identify trends in the data between i) the first data field and the new second data field and ii) other data fields. In this way, the selector logic and the user can iteratively modify the definition of a report in a selector-guided manner to generate useful report results.

FIG.4is a schematic diagram of an example computer system400that can be used to execute implementations of the present disclosure. For example, the computer system400may be included in any or all of the server components discussed herein. The computer system400includes a processor410, a memory420, a storage device430, and an input/output device440. The components410,420,430, and440are interconnected using a system bus450. The processor410is capable of processing instructions for execution within the computer system400. In some implementations, the processor410is a single-threaded processor. In some implementations, the processor410is a multi-threaded processor. The processor410is capable of processing instructions stored in the memory420or on the storage device430to display graphical information for a user interface on the input/output device440.

The memory420stores information within the computer system400. In some implementations, the memory420is a computer-readable medium. In some implementations, the memory420is a volatile memory unit. In some implementations, the memory420is a non-volatile memory unit. The storage device430is capable of providing mass storage for the system400. In some implementations, the storage device430is a computer-readable medium. In some implementations, the storage device430may be a floppy disk device, a hard disk device, an optical disk device, or a tape device. The input/output device440provides input/output operations for the computer system400. In some implementations, the input/output device440includes a keyboard and/or pointing device. In some implementations, the input/output device440includes a display unit for displaying graphical user interfaces.

The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations of these. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier (for example, in a machine-readable storage device, for execution by a programmable processor), and method operations can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or another unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory, or both. Elements of a computer can include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer can also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files. Such devices include magnetic disks, such as internal hard disks and removable disks, magneto-optical disks, and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as sPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features can be implemented on a computer having a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of these. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, for example, a LAN, a WAN, and the computers and networks forming the Internet.

The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the one described. The relationship between client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship with each other.

In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other operations may be provided, or operations may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

A number of implementations of the present disclosure have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.

In view of the above-described implementations of subject matter, this application discloses the following list of examples, wherein one feature of an example in isolation or more than one feature of said example taken in combination and, optionally, in combination with one or more features of one or more further examples are further examples also falling within the disclosure of this application.

EXAMPLES

Although the present application is defined in the attached claims, it should be understood that the present invention can also be (alternatively) defined in accordance with the following examples:

Example 1. A computer-implemented method comprising:receiving, at an interface associated with an analytical tool, a first selection by a user of a first data field from a list of data fields exposed for report generation;in response to receiving the first selection, executing predictive logic to identify trends in data from a data source associated with i) a first dimension of the data corresponding to the selected first data field and ii) at least one additional dimension corresponding to at least one additional data field;identifying a second data field from the at least one additional data field from the data fields for report generation, wherein the second data field corresponds to a second dimension correlated with the first dimension to define trends in one or more measurements from the data from the data source; andin response to identifying the second data field, presenting, at the interface associated with the analytical tool, i) a selection of the first and the second data fields from the list of data fields and ii) a first report generated based on data associated with the selected first and second data fields.

Example 2. The method of Example 1, further comprising:updating the interface for generating reports based on the data from the data source, wherein the interface provides the list of data fields comprising data fields corresponding to model entities of a data model for the data from the data source.

Example 3. The method of any one of the preceding Examples, wherein the data fields of the list are model entities of a data model representing dimensions of the data from the data source, wherein the dimensions refer to data objects representing categorical, transactional, and numerical data in the data from the data source, and wherein the list of data fields are presented in a hierarchical structure corresponding to relationships of respective dimensions at the data model.

Example 4. The method of any one of the preceding Examples, wherein the data fields of the list are model entities representing different types of dimensions including generic dimensions, aggregate measures, and time dimensions defined in the data from the data source.

Example 5. The method of any one of the preceding Examples, wherein executing the predictive logic comprises:

computing at least one correlation between data associated with the first dimension and at least one more dimension of other dimensions of the data from the data source.

Example 6. The method of any one of the preceding Examples, wherein executing the predictive logic comprises identifying historical data trends identified in a plurality of stored reports generated based on past report generation executed by a plurality of users based on the data source.

Example 7. The method of any one of the preceding Examples, further comprising:storing the generated first report in a report repository based on receiving instructions from the user.

Example 8. The method of any one of the preceding Examples, further comprising:receiving a second user selection at the interface to modify the selection of the first and second data fields from the list of data fields, wherein the second user selection modifies the selection of the second data field to a selection of a sub-dimension of the second data field as a new second data field; anddynamically identifying a third field from the data fields based on executing the predictive logic to identify trends in the data between i) the first data field and the new second data field and ii) other data fields.

Example 9. The method of any one of the preceding Examples, further comprising:receiving a request for connection to the data source through the interface; andgenerating the data model associated with the data source for data to be used for generating a report.

Example 10. A system comprising:one or more processors; andone or more computer-readable memories coupled to the one or more processors and having instructions stored thereon that are executable by the one or more processors to perform the method of any of Examples 1 to 9.

Example 11: A non-transitory, computer-readable medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform the method of any of Examples 1 to 9.