Automatic presentational level compositions of data visualizations

Embodiments of the invention provide for generating a data presentation artifact. In one aspect of the invention a first data presentation object and a second data presentation object are received from a repository. The first data presentation object defines a first data presentation artifact. The second data presentation object defines a second data presentation artifact. At least one mashup operation is identified that may be performed using the first data presentation object and the second data presentation object. One or more mashup operations are selected from the identified mashup operations. A third data presentation artifact is then generated by applying the selected mashup operations to the first and the second data presentation objects.

BACKGROUND

Embodiments of the invention relate to automatic presentational level compositions of data visualizations. Demands for visualizing and presenting large scale data on a display continue to increase as users have become more reliant on their computer systems in their business and everyday lives. Typically, the data is presented in the form of a chart, containing large volumes of data confined to the dimensions and composition of the display. A data chart is a type of diagram or graph that represents a set of numerical or qualitative data. Charts are often used to make it easier to understand large quantities of data and the relationship between different parts of the data. Charts can usually be read more quickly than the raw data they are derived from.

SUMMARY

Embodiments of the invention provide for generating a data presentation artifact. In one aspect of the invention a first data presentation object and a second data presentation object are received from a repository. The first data presentation object defines a first data presentation artifact. The second data presentation object defines a second data presentation artifact. At least one mashup operation is identified that may be performed using the first data presentation object and the second data presentation object. One or more mashup operations are selected from the identified mashup operations. A third data presentation artifact is then generated by applying the selected mashup operations to the first and the second data presentation objects.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that, while many applications for the analysis of data (data visualization applications) are available, such applications are primarily designed for specially trained expert users. The focus of known visualization methods is on providing a single visual design, or type of visual or graphical representation, to represent data. In other words, the focus may be, for example, to produce a single bar graph to be displayed, or a single pie chart to be printed. This is very limiting to a user who may want to show different aspects of the data in a single data presentation artifact. Consequently, most of the known BI tools are designed for specially trained expert users such as business analysts. These BI tools may not therefore empower non-expert users with the ability to create usable data presentation artifacts with ease.

Embodiments of the present invention further recognize that, because data is typically used by end users in the final presentational form as data presentation artifacts, defined further below, mastering the intricacy of creating data presentation artifacts from data is a requirement for using existing data visualization applications. The term “data presentation artifact”, as used herein, refers broadly to an object generated for visual data representation purposes. Examples of data presentation artifacts may include, but are not limited to, pie charts, bar charts, line charts, linear graphs, a non-linear graphs, tree graphs, spreadsheet charts, scatter plots, and tables.

The illustrative embodiments used to describe the invention generally address and solve the above-described problems and other problems related to visualization and presentation of large scale data. Generally, an embodiment enables users to selectively combine or correlate multiple previously generated data presentation artifacts representing different datasets to generate new data presentation artifacts. In one example, a user may select (e.g., “click” using a mouse, touchpad, or other input device) on one data presentation artifact, such as a chart, displayed visually on a screen, drag the chart across the display screen, and then drop the chart on another chart. In response to the selected chart being dropped on another chart, a visual representation of the two combined/correlated charts may be automatically generated on the display, in accordance with an embodiment of the present invention. Advantageously, an embodiment of the present invention, enables the combined visual representation to contain more information (e.g., new partitioning and/or combination of the existing datasets). Additionally, an embodiment enables incremental composition of complex visual presentations as well as collaborative generation of data presentation artifacts. Thus, various embodiments facilitate users at all levels of expertise to better utilize existing analytical instrumentation and to generate new insights from previously created data presentation artifacts.

Embodiments of the present invention will now be described with reference to the figures. Various embodiments of the present invention may be implemented generally within any distributed computing environment suited for allowing users to design data presentation artifacts. More specifically, embodiments of the present invention may be implemented in a presentation level mashup application that may be executed by one or more computing devices. The term “mashup”, as used herein, refers to an application that uses or combines different visual elements and data from multiple sources. As used herein, “presentation level mashup application” refers to a set of programming instructions which, when executed by one or more processors in one or more computing devices, is operable to provide the technique described herein for designing and generating data presentation artifacts. For example, embodiments of the present invention may supplement or be implemented within a mashup editor. The term “mashup editor”, as used herein, refers to a tool or platform for building mashups, which allow designers to visually construct mashups by connecting together mashup components. Exemplary mashup editors include IBM® Mashup Center (offered by International Business Machines Corporation, Armonk, N.Y.); IBM® is a registered trademark of International Business Machines Corporation, Armonk, N.Y. While some embodiments of the present invention are described with reference to an exemplary mashup designing platform interface, it should be appreciated that such embodiments are exemplary and are not intended to imply any limitation with regard to the environments or platforms in which different embodiments may be implemented.

FIG. 1is an illustration of a distributed data processing environment for generating data presentation artifacts in accordance with an embodiment of the present invention.FIG. 1is intended as an exemplary embodiment, not as an architectural limitation for different embodiments of the present invention, and therefore, the particular elements shown inFIG. 1should not be considered limiting with regard to the environments in which the illustrative embodiments of the present invention may be implemented. Distributed data processing environment100includes client computer120coupled to a server computer106and storage unit122via a network102such as the Internet. As will be discussed with reference toFIG. 6, server computer106includes internal components800aand external components900aand client computer120includes internal components800band external components900b. For simplicity purposes, only one client computer120is shown inFIG. 1, although in other embodiments, distributed data processing environment100can include additional client computers.

Network102represents a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages. Alternatively, the computers and other devices of distributed data processing environment100may be interconnected by different types of networks, such as an intranet, a local area network (LAN), or a wide area network (WAN). Network102may include communication connections, such as wire, wireless communication links, or fiber optic cables. Client computer120may be, for example, a mobile device, a telephone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing devices capable of hosting a user interface, such as an editor for designing a visual representation (e.g., presentation level mashup application described below).

In various embodiments, the presentation level mashup application129aand129bmay be implemented as a client/server program, in which some program components of the presentation level mashup application129a, such as mashup manager program132and DPObject search engine program130, are provided on server computer106, and other program components of the presentation level mashup application129b, such as mashup composer program128, is provided on the client computer120, respectively. According to various embodiments of the present invention, a presentation level mashup application129aand129bmay completely hide the integration mechanism from a user that is designing a mashup. For example, a user interface126in the presentation level mashup application129bmay allow the user to drag-and-drop data presentation artifacts and other mashup components, while hiding from the user the underlying complexity associated with the data presentation artifacts. In various embodiments, any code and other software elements, which may be needed to provide the integration and/or correlation of the data presentation artifacts, may be generated automatically by various components of the presentation level mashup application129aand129b. In this manner, according to the techniques described herein the data presentation artifacts integration and/or correlation may be provided transparently to the user that is designing and developing the data presentation artifacts, without the user being aware at all that the used data may be extracted from a variety of different data sources and may be conforming to a variety of different formats and/or standards.

In accordance with an embodiment of the present invention, users may directly interact with the mashup composer program128. In one implementation, the presentation level mashup application129aand129bmay encode information necessary to generate a data presentation artifact within a specific data structure called a Data Presentation Object (“DPObject”). While some embodiments of the present invention are described with reference to an exemplary DPObject data structure, it should be appreciated that such embodiments are exemplary and are not intended to imply any limitation with regard to the data structure type that may be used for implementation purposes. In addition, the distributed data processing environment100may provide facilities to store and index DPObjects.

The presentation level mashup application129aand129bmay preferably store DPObjects in the DPObject repository124. DPObject repository124may be kept in internal storage112of server computer106or in storage unit122, as shown inFIG. 1. In some embodiments the DPObject repository124may be a document repository in a cloud computing environment. In addition, the storage unit122may contain a plurality of data sources, such as a database118. For simplicity purposes, only one data source118and one storage unit122are shown inFIG. 1, although in other embodiments, distributed data processing environment100can include additional data sources and additional storage units.

As previously indicated, server computer106may include the presentation level mashup application program129a. Presentation level mashup application program129a, located in distributed data processing environment100, may comprise program instructions stored on one or more computer-readable tangible storage devices, which may include internal storage112on server computer106. Various components of the presentation level mashup application program129aand129bmay communicate via local and/or remote processes, such as in accordance with a signal having one or more data packets (for example, but not limited to, data from one program interacting with another program in a local system, distributed system, and/or across network102with other systems via the signal). Data gathered, generated, and maintained for use by the presentation level mashup application program129aand129bmay be kept in internal storage112of server computer106or in one or more databases118of storage unit122.

The presentation level mashup application program129amay include various programs or program components, such as the DPObject search engine program130and the mashup manager program132. DPObject search engine program130may be, for example, a computer program or program component for searching DPObjects in the DPObject repository124based on a user specified search criteria, as discussed below in conjunction withFIG. 3. In various embodiments, when searching, DPObject search engine program130may search for DPObjects satisfying the search criteria using indices, such as, for example, full-text index and/or an attribute index. Mashup manager program132may be, for example, a computer program or program component for generating data presentation artifacts by performing mashup operations, as discussed below in conjunction withFIG. 5. DPObject search engine program130and mashup manager program132reside within the presentation level mashup application program129aand may be localized on server106and/or distributed between two or more servers.

Mashup composer program128may be, for example, a computer program or program component capable of processing information stored within DPObjects, and rendering a data presentation artifact based on the corresponding DPObject information. Mashup composer128may be downloaded to client computer120over network102for use on client computer120and may include a user interface (UI)126. Typically, UI126displays information via a display device920(shown inFIG. 6) of external components900b(shown inFIG. 6), such as a monitor, a laptop screen, television, or the like, and receive input from the user (as described below, for example) via one or more input devices of external components900b, which can include, without limitation, a keyboard930, a mouse934, a trackball, a digitizing tablet, or the like. Client computer120may receive, process, display and/or otherwise render data presentation artifacts based on corresponding DPObjects.

In the illustrated example, data is communicated between server computer106and client computers120using a standard protocol such as Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Object Access Protocol (SOAP) over HTTP, or the like. Distributed data processing environment100may include additional server computers, client computers, displays and other devices not shown. Client computer120is client to server computer106in this example. Server computer106may contain an input device108and an output device110.

Information necessary to render a data presentation artifact may be stored in a data structure, called a DPObject (data presentation object).FIG. 2is a schematic diagram illustrating an exemplary structure of a DPObject, according to an embodiment of the present invention. A DPObject represents a data presentation artifact. In other words, a DPObject encapsulates a definition of a corresponding data presentation artifact. A data presentation artifact definition is a set of data that includes the information that is needed to deploy and render the data presentation artifact, including, but not limited to, any information regarding graphical elements and data sets that may be employed to generate the data presentation artifact. For example, a bar chart318depicted inFIG. 3may be represented by an exemplary DPObject202shown inFIG. 2.

The DPObject202may be implemented as a set of data in various formats. For example, in an embodiment illustrated inFIG. 2, the DPObject202may have a tree structure. Furthermore, in one embodiment, the DPObject202may be implemented as a JavaScript Object Notation (JSON) document. JSON is a lightweight data-interchange format. It is based on a subset of the JavaScript programming language. If DPObjects, such as DPObject202, are implemented as JSON documents, DPObject search engine program130may be implemented as JSON search Application Programming Interface (“API”) which may implement an internal indexing system. In some embodiments, DPObject202may be implemented in an extensible markup language (XML) format. In other embodiments, data presentation artifact definitions may be implemented as one or more data records in one or more files or datasets. Thus, the techniques described herein for representing data presentation artifacts are not limited to any particular type, format and/or data structure in which data presentation artifact definitions are stored.

In an embodiment, the DPObject202may include two components that encode properties of a corresponding data presentation artifact: a data component204and a display component206. The data component204may encode information describing a data source and the specification of the data set that should be visualized by the data presentation artifact. As shown inFIG. 2, in one implementation the data component204may include a source attribute208describing the data source118, which may further include two attributes: definition214and variables216. Furthermore, the definition attribute214may be represented as a set of attributes, for example, but not limited to, a query attribute218and a type attribute220. It should be noted that the presentation level mashup application program129aand129bmay retrieve data necessary to generate a data presentation artifact from a variety of data sources118including any combination of, but not limited to, a relational data source, a multi-dimensional data source, an XML-based document, a plain text file, and the like.

The DPObject202abstract enables the presentation level mashup application program129aand129bto connect a data presentation artifact to heterogeneous and distributed sources of data. In an embodiment, the query attribute218may store, for example, a data access statement222that may be used by the presentation level mashup application program129aand129bto access the required data. The type attribute220may store a string corresponding to the format of the data access statement222. The exemplary DPObject202shown inFIG. 2illustrates a usage of relational data source. Thus, the type attribute220stores a string224indicating that the data access statement222represents a Structured Query Language (SQL) statement. Consequently, the data access statement222may store a string that may be used to retrieve the data from the corresponding data source118. By way of example, the string222may include the following SQL statement:

SELECT revenue

FROM revenue_table

It should be noted that the syntax of the string222, at least in one implementation, may be data format agnostic. In other words, in an embodiment, the data type of the string222representing the query attribute218may be a plain string.

Since the DPObject202is at a higher level of abstraction than the underlying data, it may have a data model tailored for data visualization. In an embodiment of the present invention, an implementation of the DPObject202may use a vector space data model to categorize information necessary to render a data presentation artifact. Under the vector-space data model, the DPObject202can be conceptually viewed as a set of object-variable mappings. For illustrative purposes, the vector space data model may be expressed conceptually as a data table, where the DPObject202represents a row of the table and a variable represents a column of the table. However, the vector space model is less rigid than the relational model. For example, a variable of a DPObject may have multiple values. The implementation of the DPObject202using the vector-space model, advantageously, provides a spatial representation for information. This type of representation conveys significant structural information which may be important to many data transformation operations such as grouping or clustering or projecting.

In one embodiment, variables may be defined in the variables attribute216of the data component204. The exemplary DPObject202shown inFIG. 2defines two variables: quarter226and revenue228. A variable may be a scalar variable or array variable. The details of the variables attribute216may vary between different implementations of the DPObject structure202. Generally, it is contemplated that the variables attribute defines characteristics of a particular subset of data. These characteristics may include data type, data length, and the like and may be stored, for example, as text strings223and225shown inFIG. 2. It should be noted that in some embodiments, variables may also serve as data aggregators. For example, the data retrieved by the data access statement222from a data source118such as a data warehouse may be in a raw form. In an embodiment of the present invention, the variables component216may be used to translate the raw data stored within a data source into information (i.e. aggregate data points) that is more meaningful for visual presentation purposes. By way of example, and not of limitation, the variables component may transform the retrieved data into aggregate values such as a mean, average, minimum value, maximum value, standard deviation, variance, sum, product, and the like, and may be computed from the values retrieved by the data access statement222.

In an embodiment of the present invention, the display component206of the DPObject202may be used to store display specifications of a corresponding data presentation artifact. It should be noted that, at least in one implementation of the DPObject202, variables may not be used directly for display purposes. Instead, in accordance with one embodiment, a dimensions attribute210may be defined in the display component206. By implementing this additional level of abstraction, the presentation level mashup application program129aand129bmay be enabled to display the results of arbitrary calculations involving the defined variables. For example, a DPObject, such as the DPObject202, may include a “profit” dimension, which may be defined as the difference between the two defined variables: “revenue”228and “expense” (not shown inFIG. 2). In another example, a “value” dimension may represent the results of expressing a “value” variable in terms of a logarithmic scale. Referring back toFIG. 2, dimensions “q”230and “r”232may represent the results of performing identity transformations on variables “quarter”226and “revenue”228, respectively. As used herein, the term “identity transformation” refers to a data transformation that copies the source data into the destination data without change.

In addition to the dimensions attribute210, the display component206of the DPObject202may include, according to an embodiment of the present invention, an element attribute212, which may be used to describe a set of graphical elements that could be used to generate a data presentation artifact. Furthermore, the element212may consist of, for example, but not limited to, a geometry attribute238and aesthetics attribute240. According to an embodiment of the present invention, the geometry attribute238may define the overall shape of the defined graphical element. As previously indicated, the DPObject202represents the data presentation artifact318shown inFIG. 3. The data presentation artifact318depicts the bar graph element which has the geometry type interval. Accordingly, the geometry attribute238of the DPObject202stores “interval” value242, as shown inFIG. 2. Other exemplary values of geometry attribute238may include, but not limited to, a point, line, area, link, path, contour, tile, schema, and the like.

In an embodiment of the present invention, the aesthetics attribute240may define perceivable characteristics of a graphical element that would be mapped to the dimensions attribute210. The aesthetics attribute240may include, for example, but not limited to, the following perceivable characteristics: position, color, transparency, size, label, and the like. In other words, the aesthetics attribute240maps perceivable characteristics to data being represented by a corresponding dimension attribute of a data presentation artifact. According to an embodiment of the present invention, a label may be implemented as a text object associated with one or more elements of the data presentation artifact. It should be noted that a label may be included as the aesthetics attribute240, because in a data presentation artifact a label functions like a color, transparency, or other characteristic to make the data presentation artifact perceivable to a reader.

In various embodiments, the DPObject202could contain an arbitrarily complex mapping of the aesthetics attribute240to the dimensions attribute210. In some embodiments, a set of algebraic operators may be used for the mapping operation. For example, the following algebraic operations may be employed to describe the mapping of various attributes: span (*), juxtapose (|), concatenate (+), and divide (/). As used herein, “span” operator is analogous to mathematical Cartesian product operator. For example, span (*) operator may be used to visually present to a reader that one higher dimensional attribute is spanned by multiple lower dimensional attributes, such as “show profit by quarter”, where “profit” is the higher dimensional attribute and “quarter” is the lower dimensional attribute. According to an embodiment of the present invention, the juxtaposition operator (|) may be used to indicate the placement of multiple elements near each other. For instance, the juxtaposition operator may be used in the DPObject202if certain values of multiple dimensions need to be placed side by side in the corresponding data presentation artifact, resulting in a special two dimensional space, such as “show profits of year 2008, 2009 and 2010”. In this case, the generated data presentation artifact would include three different graphical elements representing profits of years 2008, 2009, and 2010, displayed adjacent to each other. According to an embodiment of the present invention, the concatenation operator (+) may join the values of multiple dimensions to form a new dimension. For example, the (+) operator may combine the values of, for instance, 2009 and 2010 populations to create a new 2009/2010 dimension. According to an embodiment of the present invention, the division operator (/) may be used to generate a new, more granular dimension, where the values of one dimension are repeated in each value of another dimension, such as “month/year”. In this scenario, data representing one or more years would be transformed into more granular data representing each month of each year.

As previously indicated, one of the perceivable characteristics that may be represented by the aesthetics attribute240is position. In the DPObject202shown inFIG. 2, the aesthetics attribute240is further categorized into a position attribute244and a label attribute246. The position attribute244specifies the coordinates of displayed geometry. In other words, the position attribute244in combination with a coordinate system specification (two dimensional Cartesian coordinate system may be used by default) describes how the underlying data specified by the data component204should be shaped in the generated data presentation artifact. For example, the value248of the position attribute244of the DPObject202shown inFIG. 2is represented by an expression “q*r”. The value248indicates to the presentation level mashup application program129aand129bprocessing the DPObject202that the “r” dimension232correlated with the revenue variable228should be used as a measure of the data presentation artifact, occupying the Y axis, and the “q” dimension230correlated with the quarter variable226should be displayed as the category, occupying the X axis.

In accordance with an embodiment of the present invention, a new DPObject representing a desirable data presentation artifact may be generated by the presentation level mashup application program129aand129bby combining an existing DPObject, such as the DPObject202with another DPObject using one or more mashup operations.

FIG. 3illustrates an exemplary graphical user interface126of a mashup composer program128, according to an embodiment of the present invention. For illustrative purposes, the various embodiments of the present invention are described in connection with a mechanism for searching the DPObject repository124within a user interface300of the mashup composer program128.

In one embodiment, mashup composer program's128UI126layout may include a search UI panel302and a mashup composer panel316. The search UI panel302may be used for initiating a search function according to one embodiment of the present invention. The exemplary embodiment of the present invention enables a user to find a particular data presentation artifact that may be combined with one or more other data presentation artifacts to generate a new desirable data visualization in the form of a data presentation artifact. This process of selectively merging multiple data presentation artifacts is referred to hereafter as the “presentation level mashup” process. In an embodiment of the present invention, the mashup composer program128enables users to use simple keyword queries to search for existing DPObjects representing corresponding data presentation artifacts. The mashup composer program128may receive query text308forming at least part of a search query entered by the user in a search field306. As the user enters the query text308and presses the “Search” button310, the mashup composer program128sends the search query to the DPObject search engine program130, as described below in conjunction withFIG. 5. After performing the search of the DPObject repository124, the DPObject search engine program130sends back search results in the form of one or more DPObjects.

In response to receiving the search results, the mashup composer program128processes the received one or more DPObjects and renders the search results312in the form of one or more data presentation artifacts314. In the example shown inFIG. 3, the user has entered “revenue order method”308. The search UI panel302includes the search results312that visually present the “revenue by order method” data. In the example shown inFIG. 3, the search results312are represented by a pie chart314showing the relationship between revenue and sales methods in a particular year. It should be noted that for some of the listed search results312, one or more faceted search options304are shown, to help the user to understand the data organization structure so that he or she can better locate the needed information in the future without necessarily performing another search. For example, the faceted search options304indicate that the data underlying the data presentation artifact314includes profit by region information. This tells the user that the retrieved data presentation artifact314may be combined with another data presentation artifact, such as “divisions by region” to generate a new data presentation artifact visually showing the relationship between the profit and various divisions within an organization.

In the example shown inFIG. 3, the mashup composer panel316includes another data presentation artifact318. The data presentation artifact318displayed in the mashup composer panel316is a bar chart showing the revenue by quarters for a particular year. This data presentation artifact318may have been obtained by user during a previous search. In an embodiment of the present invention, the mashup composer panel316may include historical search information320. For example, a first tab322within the mashup composer panel316may enable the user to view previously submitted search queries322and a second tab324may enable the user to retrieve the previously generated data presentation artifacts. It should be noted that mashup composer program's128UI126may enable a user to move a data presentation artifact from the search UI panel302to the mashup composer panel316by, for example, a drag and drop technique. Therefore,FIG. 3illustrates one embodiment of the present invention where one DPObject (the data presentation artifact314) rendered by the mashup composer program128in response to the submitted keyword search request is displayed in the search UI panel302and where another DPObject (the data presentation artifact318) have been previously placed by the user into the mashup composer panel316.

FIG. 5illustrates steps performed by the mashup manager program132and by the mashup composer program128for generating data presentation artifacts, according to one embodiment of the present invention. At502, the mashup composer program128may wait until it detects a search request submitted by the user. For example, the mashup composer program128may check periodically whether the user entered a search query in a search field of the mashup composer program's128UI300, such as the search query308entered into the search field306, depicted inFIG. 3. In response to receiving the search request, the mashup composer program128may send the search criteria, at504, to the mashup manager program132. In an embodiment of the present invention, the sending the search criteria (504) may involve the mashup composer program128sending a search query, such as the query308, to the mashup manager program132. In various embodiments of the present invention, the DPObject search engine program130may be integrated with the mashup manager program132. According to an embodiment of the present invention, the DPObject search engine program130may be operable to search against the DPObject Repository124for DPObjects associated with the search criteria. For example, the DPObject search engine program130may perform the search, at506, on each attribute in each DPObject contained in the DPObject repository124. At least in some embodiments, the DPObject search engine program130may search for DPObjects satisfying the search criteria using indices, such as, for example, full-text index and/or an attribute index.

Subsequently to obtaining search results from the DPObject search engine program130, the mashup manager program132may send the obtained results back to the mashup composer program128, at508. In an embodiment of the present invention, the search results may include one or more documents, such as JSON and/or XML documents, containing one or more DPObjects. In response to receiving the search results, the mashup composer program128may, at510, process the received DPObjects, generate, and render one or more corresponding data presentation artifacts, such as the data presentation artifact314, shown inFIG. 3.

Next, at a decision block512, the mashup composer program128may determine whether it received a user request to perform a presentation level mashup dynamically. It should be noted that the mashup composer program128may also move to the decision block512in response to determining that a search request has not been received (decision block502, no branch). In accordance with an embodiment of the present invention, each presentation level mashup involves one or more mashup operations (described in detail below) performed on two DPObjects selected by a user. Therefore, to initiate the request to perform a presentation level mashup, in accordance with an embodiment of the present invention, the user selects a pair of data presentation artifacts that should be involved in the generation of a new data presentation artifact. In an embodiment of the present invention, the user may choose the data presentation artifacts with a drag and drop technique. For example, the user may first select a source data presentation artifact by clicking and dragging the data presentation artifact314displayed in the search UI panel302, using a mouse934, a trackball, or other pointing device. Then the user may select a target data presentation artifact by dropping the data presentation artifact314onto the data presentation artifact318displayed in the mashup composer panel316. In this example, the latter data presentation artifact318becomes a target data presentation artifact. Therefore, at least in some embodiments of the present invention, the drag and drop operation performed by the user may serve as a request to perform a dynamic presentation level mashup in the decision block512.

Since mashup operations are performed on DPObjects rather than data presentation artifacts, in response to detecting the request in the decision block512, the mashup composer program128may identify two DPObjects representing the selected data presentation artifacts. In an embodiment of the present invention, the mashup composer program128may use the DPObject representing the first data presentation artifact314as a source DPObject and may use the DPObject representing the second data presentation artifact318as a target DPObject. At514, in response to detecting a request to perform a presentation level mashup (decision block512, yes branch) the mashup composer program128may send the identified source and target DPObjects to the mashup manager program132. On the other hand, in response to detecting no request to perform a presentation level mashup (decision block512, no branch) the mashup composer program128may return back to the decision block502.

It should be noted that, an embodiment of the present invention contemplates that dynamic presentation level mashup may be implemented as a plurality of mashup operations applied to a pair of DPObjects. Each mashup operation, according to the embodiment, takes two DPObjects as input (i.e., the source DPObject and the target DPObject). The application of one or more mashup operations generates a third DPObject, referred to herein as the result DPObject. Generally, the dynamic presentation level mashup can be viewed as the following formula:
Osourceop→Otarget=Oresult(1)
where Osourcerepresents the source DPObject, Otargetrepresents the target DPObject, Oresultrepresents the result DPObject, and op→represents one or more mashup operations.

According to an embodiment of the present invention, the plurality of contemplated mashup operations may be categorized into two types of mashup operations: data mashup operations and display mashup operations. The term “data mashup operation”, as used herein, refers to a mashup operation that modifies the data component of the target DPObject based on the data component specification of the source DPObject. As previously indicated, the data component portion of each DPObject contains encoded information describing a data source and the specification of the data set supporting the data visualization contained in the corresponding data presentation artifact. For instance, the data component204shown inFIG. 2illustrates the data component of the target DPObject (Otarget) representing the target data presentation artifact318, shown inFIG. 3.

The set of available data mashup operations, in accordance with an embodiment of the present invention, may further be categorized into query expansion operations and query relocation operations. The term “query expansion operation”, as used herein, refers to a mashup operation that expands the original data selection. In accordance with an embodiment of the present invention, the mashup manager program132may use the query expansion operation to merge data in the corresponding attributes of the source and target DPObjects when it attempts to combine/correlate those DPObjects. In the example shown inFIG. 3, the source DPObject (representing the first data presentation artifact314) and the target DPObject (representing the second data presentation artifact318) have different dimension attributes. Specifically, the source DPObject has the revenue and order method attributes, while the target DPObject has the revenue228and the quarter226dimensions. The query expansion operation applied to the data sets representing the source and target DPObjects, at least in some implementations, may expand the original queries to generate, for example, “order method by quarter” dataset. Therefore, the query expansion operation modifies the original data selection specification for the target DPObject based on the data selection specification of the source DPObject.

In contrast, the term “query relocation operation”, as used herein, refers to a mashup operation that changes the original data selection. In accordance with an embodiment of the present invention, the mashup manager program132may use the query expansion operation to resolve ambiguity in the corresponding attributes of the source and target DPObjects when it attempts to combine those DPObjects. For example, if the source and target DPObjects have the following pairs of dimensions, respectively, “quarter and revenue for 2002”, and “quarter and profit for 2003”. Simple merge of data represented by the source and target DPObject would result in ambiguous data set. By applying the query relocation operation, the mashup manager program132may, for example, generate the new DPObject containing either “revenue and profit for 2002” dimensions or “revenue and profit for 2003” dimensions, thus resolving the ambiguity of the merged data. In this case, the application of the query relocation operation by the mashup manager program132changes the original data selection. It should be noted that in a preferred embodiment, the mashup manager program132may automatically select whether the result DPObject should contain the “revenue and profit for 2002” dimensions or the “revenue and profit for 2003” dimensions based on the heuristic analysis of historical user preference information, as described below.

According to an embodiment of the present invention, the plurality of contemplated mashup operations may also include display mashup operations. The term “display mashup operation”, as used herein, refers to a mashup operation that modifies the display component of the target DPObject based on the display component specification of the source DPObject. It should be noted that all the attributes under the display attribute206shown inFIG. 2can be modified. According to one implementation, similarly to the data mashup operations, the display mashup operations may further be categorized into display expansion operations and display relocation operations. For instance, if the display component of the target DPObject contains a bar chart attribute and the display component of the source DPObject contains a line attribute, the display mashup operation that adds the line element to the bar chart of the target DPObject illustrates the display expansion operation. On the other hand, if the display component of the target DPObject contains a bar chart attribute and the display component of the source DPObject contains a line chart, the display mashup operation that changes the geometry of the bar chart into the line chart geometry of the source DPObject illustrates the display expansion operation.

Referring back toFIG. 5, in response to receiving the source and target DPObjects, at516, the mashup manager program132may dynamically infer all possible mashup operations based on the information provided in the data and display components of the received source and target DPObjects as well as based on the retrieved data. In other words, at516, the mashup manager program132may utilize the specification of the source DPObject to infer possible modifications over the specification of the target DPObject. The possible mashup operations include the data mashup operations and the display mashup operations described above. At518, the mashup manager program132may order the inferred operations in a precedence order. In accordance with an embodiment of the present invention, the precedence order may be determined by the heuristic analysis of the historical user preference data that may be maintained by the mashup manager program132.

It should be noted that not all mashup operations are possible between an arbitrary pair of the source and target DPObjects. Furthermore, the precedence order of the inferred mashup operations may be ambiguous. At decision block520, the mashup manager program132may determine whether the precedence order of the inferred mashup operations is ambiguous. In response to determining that the precedence order of the inferred mashup operations is ambiguous (decision block520, yes branch), at522, the mashup manager program132may send a request to the mashup composer program128soliciting input from the user. In an embodiment of the present invention, the request may include the source and target DPObjects combined with the list of inferred possible mashup operations. In response to receiving such request, the mashup composer program128, at524, may render a menu requesting a mashup operator selection by the user.

FIG. 4illustrates an exemplary pop-up window for mashup operator selection in the exemplary graphical user interface126of the mashup composer program128, according to an embodiment of the present invention. As shown inFIG. 4, the pop-up window400lists all the possible mashup operations as determined by the mashup manager program132. In one implementation, the pop-up window400may include an “action” field402. A user may select a desirable action from a drop down menu404. The drop down menu may include a list of actions, such as, for example, but not limited to merge, juxtapose, overlap. In addition, the pop-up window400may include a data selection panel408and a display specification panel410. As can be seen in the data selection panel408, the mashup manager program132, at516, may have determined that both query expansion operation (i.e., changing “year=2007” into “year=2007 or year=2008”) and query relocation operation (i.e. changing “year=2007” into “2008”) are possible. Since the mashup manager program132has not been able to determine precedence of the identified operations, it has sent a request for user selection (at522). Therefore, the data selection panel408asks the user to choose between the query expansion operation and the query relocation operation. Similarly, the display specification panel410may ask the user between the possible display mashup operations as determined by the manager program132at516.

In the example shown inFIG. 4, the mashup manager program132has determined that revenue dimension may be used as a measure412of the result DPObject. In addition, at516, the mashup manager program132has inferred that it is possible to combine the corresponding dimensions414by visually presenting in the result data presentation object that the order method attribute is spanned (*) by quarter (i.e. “order method by quarter” serves as a category occupying the X axis) (selection411). Alternatively, it is possible to combine the order method and quarter dimensions by visually concatenating the order method and quarter attributes (i.e. “order method plus quarter” serves as a category occupying the X axis) (selection413). In yet another alternative, the mashup manager program132may have inferred that it is possible to replace the order method dimension with the quarter dimension (selection415). In the data selection panel408and the display specification410the user is asked to make explicit cheeses. In accordance with the embodiment of the present invention illustrated inFIG. 4, the mashup composer program128may also render a preview of the result data presentation artifact418that may be generated based on the user's selections of the mashup operations to derive the result DPObject. The preview of the result data presentation artifact418may be presented in a preview mashup panel416. Once the user is satisfied with the selected mashup operations, he or she may press a button, such as “Accept Mashup” button406to confirm the selected mashup operations.

Referring back toFIG. 5, in response to receiving the user's selection of the desired mashup operations, at526, the mashup composer program128may send the obtained information back to the mashup manager program132. In an embodiment of the present invention, at528, the mashup manager program may store the user selected mashup operations for the purposes of the future heuristic analysis (described above in conjunction with518).

Next, at530, the mashup manager program132may generate a new DPObject (result DPObject) based on automatically determined or user-specified mashup operations applied to the source and target DPObjects. In other words, the mashup manager program132may apply the user selected (or automatically determined) mashup operation over the target DPObject to create an updated target DPObject, i.e. the result DPObject. It should be noted that if the mashup manager program132determines in the decision block520that the precedence list is unambiguous (decision block520, no branch), at least in one embodiment, the mashup manager program132automatically selects the operation having the highest precedence to generate the result DPObject at530.

At532, the mashup manager program132may save the result object generated in530in the DPObject repository124. This result object may serve as either a source DPObject or a target DPObject for future data presentation artifacts generations. At534, the mashup manager program132may send the result DPObject to the mashup composer program128. At536, the mashup composer program128may render a result data presentation artifact based on the specifications provided in the result DPObject. It should be noted that at least in some embodiments of the present invention, if the result DPObject was generated automatically (i.e. without the user input with regards to the mashup operations) once the mashup composer program128generates the data presentation artifact based on the result DPObject, the user may have an option of overriding the automatic selection of the mashup operation. For example, the mashup composer program128may provide a menu item which the user may select to choose a different mashup operation. In response to the user's selection of such menu item, the mashup composer program128may render a pop-up menu, similar to the pop-up menu400shown inFIG. 4, displaying all possible mashup operations and soliciting user selection.

In summary, various embodiments of the present invention facilitate users at all levels of expertise to better utilize existing analytical instrumentation and to generate new insights from previously created data presentation artifacts. Advantageously, by leveraging data structures representing previously generated data presentation artifacts, mashup operations, and heuristic analysis of user preferences, the various embodiments of the present invention enable, among other things, automatic generation of data presentation artifacts. For example, the automatically created new data presentation artifacts intelligently combine the data of the existing data presentation artifacts and visually present new insights that cannot be gathered from the original data presentation artifacts. Various specific details are set forth herein and in the Figures, to aid in understanding various embodiments of the present invention. However, such specific details are intended to be illustrative, and are not intended to restrict in any way the scope of embodiments of the present invention as claimed herein. In addition, the particular screen layouts, appearance, and terminology as depicted and described herein, are intended to be illustrative and exemplary, and in no way limit the scope of embodiments of the invention as claimed.

Referring now toFIG. 6, computing/processing devices106and120include respective sets of internal components800a,band external components900a,b, illustrated inFIG. 6. Each of the sets of internal components800a,bincludes one or more processors820, one or more computer-readable RAMs822and one or more computer-readable ROMs824on one or more buses826, one or more operating systems828and one or more computer-readable tangible storage devices830. The one or more operating systems828and DPObject search engine software component130, mashup manager component (for server computer106), and program mashup composer component128(for client computer120) are stored on one or more of the respective computer-readable tangible storage devices830for execution by one or more of the respective processors820via one or more of the respective RAMs822(which typically include cache memory). In the illustrated embodiment, each of the computer-readable tangible storage devices830is a magnetic disk storage device of an internal hard drive. Alternatively, each of the computer-readable tangible storage devices830is a semiconductor storage device such as ROM824, EPROM, flash memory or any other computer-readable tangible storage device that can store but does not transmit a computer program and digital information.

Each set of internal components800a,balso includes a R/W drive or interface832to read from and write to one or more portable computer-readable tangible storage devices936that can store but do not transmit a computer program, such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk or semiconductor storage device. The programs DPObject search engine130and mashup manager132(for server computer106) and mashup composer program128(for client computer120) can be stored on one or more of the respective portable computer-readable tangible storage devices936, read via the respective R/W drive or interface832and loaded into the respective hard drive or semiconductor storage device830.

Each set of internal components800a,balso includes a network adapter or interface836such as a TCP/IP adapter card or wireless communication adapter (such as a 4G wireless communication adapter using OFDMA technology). The programs DPObject search engine130and mashup manager132(for server computer106), and mashup composer program128(for client computer120) can be downloaded to the respective computing/processing devices from an external computer or external storage device via a network102(for example, the Internet, a local area network or other, wide area network or wireless network) and network adapter or interface836. From the network adapter or interface836, the programs are loaded into the respective hard drive or semiconductor storage device830. The network may comprise copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.

Each of the sets of external components900a,bincludes a display screen920, a keyboard930or keypad, and a computer mouse934or touchpad. Each of the sets of internal components800a,balso includes device drivers840to interface to display screen920for imaging, to keyboard930or keypad, to computer mouse934or touchpad, and/or to display screen for pressure sensing of alphanumeric character entry and user selections. The device drivers840, R/W drive or interface832and network adapter or interface836comprise hardware and software (stored in storage device830and/or ROM824).

The description above has been presented for illustration purposes only. It is not intended to be an exhaustive description of the possible embodiments. One of ordinary skill in the art will understand that other combinations and embodiments are possible.