Smart template for predictive analytics

A framework for improving user interfaces, and in particular for improving user interfaces for displaying and interacting with predictive analytics, is described herein. In one embodiment, a user interface template renders predictive models and enables visually interacting with data to discover hidden insights and relationships in the data. The user interface template determines, based on the metadata and data annotations, how to display the supplied data. By encapsulating complex code necessary to render predictive models and enable visually interacting with data, the amount of frontend code required to implement predictive analytic functionality is reduced, defect rates are reduced, while design consistency is improved.

BACKGROUND

Complicated software systems are challenging to develop and maintain. As different modules of a software system are implemented, a given piece of functionality may be implemented multiple times, often by different individuals or organizations. Different implementations are problematic, as inconsistent user experiences, increased defect rates, higher development costs, and increased maintenance costs all negatively impact the project.

Predictive analytics is a particularly complicated scenario that is challenging to implement correctly and consistently. Predictive analytics encompasses a variety of statistical techniques and data mining solutions. Examples of such statistical models include descriptive models, which classify customers or prospects into groups; decision models, which predict the results of decision involving many variables; and predictive models generally, which analyze historical data to determine how likely a specific behavior is to be expected. Example uses of predictive models include forecasting, key influencer determination, trend identification, relationship analysis, and anomaly identification.

Therefore, there is a need for an improved framework that addresses the abovementioned challenges.

SUMMARY

The disclosed user interface templates define user interface patterns and components that render a user interface at run-time based on an interpretation of metadata and/or data annotations. In one embodiment, metadata and data annotations are stored in data service views in line with or adjacent to data query commands. Data query commands may be defined in any programming language, but are particularly suited to data centric languages such as Structured Query Language (SQL). Data service views may be translated into native database views, such as a SQL view, for execution by a database. Another type of data service view, which also is associated with metadata, initiates and then returns the result of a predictive analytics operation. Metadata consumed by the disclosed user interface templates may also be obtained from web services such as Open Data protocol (OData) or other Representation State Transfer (REST) web services, configuration files, and the like.

In one embodiment, a user interface template renders predictive models and enables visually interacting with data to discover hidden insights and relationships in the data. The user interface template determines, based on the metadata and data annotations, how to display the supplied data. By encapsulating complex code necessary to render predictive models and enable visually interacting with data, the amount of frontend code required to implement predictive analytic functionality is reduced, defect rates are reduced, while design consistency is improved.

With these and other advantages and features that will become hereinafter apparent, further information may be obtained by reference to the following detailed description and appended claims, and to the figures attached hereto.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present frameworks and methods and in order to meet statutory written description, enablement, and best-mode requirements. However, it will be apparent to one skilled in the art that the present frameworks and methods may be practiced without the specific exemplary details. In other instances, well-known features are omitted or simplified to clarify the description of the exemplary implementations of the present framework and methods, and to thereby better explain the present framework and methods. Furthermore, for ease of understanding, certain method steps are delineated as separate steps; however, these separately delineated steps should not be construed as necessarily order dependent in their performance.

FIG. 1is a block diagram illustrating an exemplary architecture100that may be used to implement the predictive analytics user interface template described herein. Generally, architecture100may include a template for predictive analytics system102, a data repository116, and a business logic server118.

The template for predictive analytics system102can be any type of computing device capable of responding to and executing instructions in a defined manner, such as a workstation, a server, a portable laptop computer, another portable device, a touch-based tablet, a smart phone, a mini-computer, a mainframe computer, a storage system, a dedicated digital appliance, a device, a component, other equipment, or a combination of these. The system may include a central processing unit (CPU)104, an input/output (I/O) unit106, a memory module120and a communications card or device108(e.g., modem and/or network adapter) for exchanging data with a network (e.g., local area network (LAN) or a wide area network (WAN)). It should be appreciated that the different components and sub-components of the system may be located on different machines or systems. Memory module120may include predictive analytics template110.

The template for predictive analytics system102may be communicatively coupled to one or more other computer systems or devices via the network. For instance, the system may further be communicatively coupled to one or more data repository116and/or business logic server118. The data repository116may be, for example, any database (e.g., relational database, in-memory database, etc.), an entity (e.g., set of related records), or a data set included in the database. In some implementations, data repository116stores data over which predictive analytics may be performed. Additionally or alternatively, data repository116may perform queries, analysis, or other processing to perform the predictive analytics.

The business logic server118may be a server computer, desktop computer, cloud computer, virtual computer, or any other type of computing device capable of processing network requests to store, retrieve, or process content. In one embodiment, the template for predictive analytics system102operates as a client computer (e.g., desktop, laptop, mobile), with which business logic server118communicates to perform the steps described herein.

Predictive analytics template110includes a logic for receiving and processing user input related to a predictive analytics template. In one embodiment, predictive analytics template110enables a user to select a type of predictive analytics and an entity or data set on which to perform the analysis. Predictive analytics template110may then invoke a data service view, either directly, or via a remoting architecture such as a web service. The data service view is associated with metadata usable by predictive analysis template110to determine how to layout data returned from the data service view.

FIG. 2is a block diagram200illustrating exemplary components arranged in three software layers.FIG. 2depicts a user interface202, which in some embodiments is implemented by the template for predictive analytics system102.FIG. 2also depicts business logic layer204, which in some embodiments is implemented by business logic server116.FIG. 2also depicts a database layer206, which in some embodiments is implemented by data repository116.

User interface202includes a template for predictive analytics208and patterns & freestyle210. Business logic204includes web service112, which is used to invoke data service views and return the associated metadata and resulting data to user interface202. In one embodiment, web service212is implemented in Open Data Protocol (OData), and itself makes metadata available to user interface202, regardless of which data service view is executed.

Business logic204also includes data service view214and predictive view216. Predictive view216may optionally invoke a data service view. As discussed in further detail below with regard toFIG. 6, data service view214and predictive view216expose data and metadata for consumption by user interface202. Data service view214invokes a database view, such as database view220, which in turn is based on application table222. In some embodiments, database view220is created from data service view214by stripping metadata from data service view214. Predictive view216directly invokes unified model management layer224, which in turn invokes predictive model226.

FIG. 3is a meta model300for a predictive analytics template.FIG. 3depicts predictive analytics template302, which is typically implemented by the template for predictive analytics system102. In one embodiment, predictive analytics template302generates object view floorplan304user interface. Object view floorplan304, in one embodiment, enables a user to select an object or a set of data upon which to execute predictive analytics.

Once the type of predictive analytics is selected, predictive query view306(example depicted inFIG. 4) is invoked, which may in turn invoke predictive view308(example depicted inFIG. 5). Upon completion of predictive query view306, the data is returned, and as is any metadata associated with the predictive query view306. This metadata is used by predictive analytics template302to display an interactive predictive analytics user interface. For example, predictive analytics template302may graph the results of the predictive analytics automatically. The type of graphs, e.g., a line graph, the range of values chosen to be graphed, a list of other graph types the user may choose to render the same data with, and the like, may be rendered based on the metadata returned by predictive query view306and/or predictive view308. Additionally or alternatively, metadata may be retrieved from configuration data312. In one embodiment, when the resulting data returned comprises a tree or other hierarchy, the data is displayed with list view table tree310. However, if the data returned comprises a flat list, then list view floorplan310is used to display the data.

FIG. 4is a source code and metadata listing400of a data service prediction query view402.

FIG. 5is a source code and metadata listing500of a data service prediction view502.

FIG. 6is a flow chart illustrating an exemplary process600invoking an action associated with generating a predictive analytics user interface. The process may be performed automatically or semi-automatically by the template for predictive analytics system102, described above with reference toFIG. 1.

At block602, a selection of an entity upon which to perform predictive analytics is received. For example, if a list of a business's cost centers is displayed to a user, the user may select one or more of the cost centers on which to perform predictive analytics.

At block604, a selection of a type of predictive analytics to perform on the selected entity is received. Continuing the example, for the selected cost center, an analytic report such as “sales & presales”, for predicting future costs, may be selected.

At block606, execution of the selected type of predicted analytics for the selected entity is initiated. In one embodiment, execution is initiated by invoking a data service view, such as predictive query view306or data service view214. In one embodiment, the data service view214or predictive query view306defines a result data schema and is associated with at least one piece of metadata used to determine how to layout the resulting data.

In one embodiment, a data service view includes computer code, whether interpreted or compiled, and metadata. The associated metadata may be global to the data service view or adjacent to a particular lines) of computer code. In one embodiment, a data service view214is a wrapper around a relational database view, in that invoking the data service view in turn invokes an underlying relational database view. This underlying relational database view may be a SQL view, meaning a live projection of data from one or more tables into a queryable form. In one embodiment, the relational database view is generated from the data service view by stripping out the metadata associated with the data service view.

In another embodiment, the data service view includes a predictive view, such as predictive view216, which when executed wraps execution of a predictive analytics module. In one embodiment, the predictive analytics module executes within a database where the data being analyzed is located, eliminating unnecessary data marshaling and remoting overhead.

At block608, at least one piece of metadata associated with the selected type of predictive analytics is received. In another embodiment, metadata associated with the template is obtained from a configuration file, e.g., configuration data312, directly from the configuration file or from service and annotation URLs contained within the configuration file. Additionally or alternatively, metadata may be retrieved from configuration tables in data repository116.

At block610, a data result is received. In one embodiment, the received data results include the result of executing the data service view, and conforms to the result data schema.

At block612, the received result data and the received metadata are used to generate an interactive user interface displaying the results of executing the predictive analytics on the selected data set.

At block614, the process600ends.