This section is intended to introduce the reader to various aspects of art, which are related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Graphical visualizations, such as bar charts or line charts are commonly used to display data streams. Financial data such as stock market information and status information about a computer network are two examples of data that a user may desire to view graphically. For large amounts of data, first layer visualizations are typically not detailed enough to effectively display the data stream. For this reason, second layer, third layer, or even lower layer (i.e. more detailed) visualizations can also be created to provide increased resolution of the data within the data stream. For complex or large data streams, the creation of meaningful visualizations is often difficult and burdensome.
The visualizations mentioned above are created many ways. First, the lower layer visualizations can be created by pre-programming a software program to display a pre-defined sequence of visualizations. For example, in a financial context, the user programs the software to display a first layer visualization of stock market performance and then to display lower layer visualizations of certain pre-selected stocks. While this technique permits display of detailed information from the data stream, it disadvantageously limits the display to only the pre-selected data (i.e., the specific stocks pre-selected by the user). A second type of sequence of visualizations permits a user to manually drill down to a lower layer visualizations by selecting a portion of the first layer (or lower layer) visualization to expand. While this technique permits the creation of lower layer visualizations that display the specific information desired by a user, this technique often involves manual interaction with the first layer visualization and thus is not often suitable for automated reporting.
Advantages of one or more disclosed embodiments will become apparent upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments of the present technique will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming but would nevertheless be a routine understanding of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
The present application is directed towards a system that can create visualizations based on interaction rules instead of pre-selected data. These interaction rules interact with the data in the data stream to create a sequence of visualizations that are customized to the particular data in the data stream. This feature is particular advantageous in the context of automated, periodic reporting because the system interacts with the data with each periodic reporting to create visualizations that display the information that is most important to a particular user.
As will be described in greater detail below, the intelligent interface 12 interacts with the visualization constructor 14 to generate a sequence of data-driven multi-layered visualizations. The intelligent interface 12 is configured to import incoming data at a specified time interval. The intelligent interface 12 also interfaces with the visualization constructor 14 to set a color scale for the visualization and to lay out for the visualizations. In one embodiment, application interfaces (“APIs”) within the intelligent interface 12 perform this task. Further, the intelligent interface 12 generates a set of interaction rules to guide the visualization constructor 14 in creating the sequence of data-driven visualizations
The visualization constructor 14 constructs a sequence of multi-layered data-driven graphs and images for real-time data exploration without user interaction. This visualization technique is driven by the data instead of the user. In particular, the visualization constructor 14 generates the sequence of graphical visualizations by simulating window-like properties, such as window height, window width, window framing, and window panels. In one embodiment, the visualization constructor 14 creates the sequence of graphical visualizations with a default window configuration that is based on the origin and dimensions of the computer screen. For example, the visualization constructor 14 can create the sequence of visualization as a rectangle with an origin and dimensions of 10, 50, 1000, and 6000. In alternate embodiments, however, other window configuration based on the incoming data can be used. The visualization constructor 14 can also use drilldowns, filtering, or zooming to generate different types and levels of visualization to most efficiently display the data stream.
The image compositor 16 transforms the visualizations generated by the visualization constructor 14 into an image file, such as JPG file. In one embodiment, the image compositor 16 also exports the image files to a storage medium. In another embodiment, the image compositor 16 composes the image files into a computer slideshow. In yet another embodiment, the image compositor 16 creates an image file that permits a user to get more detailed information by pointing a graphical pointer at part of the image. In still another embodiment, the image compositor 16 composes the image files on a web page.
Those skilled in the art will appreciate that the intelligent interface 12, the visualization constructor 14, and the image compositor 16 can be hardware, firmware, software, or some combination of hardware, firmware, and software. In alternate embodiments, the intelligent interface 12, the visualization constructor 14, and the image compositor 16 do not necessarily solely comprise the functions as illustrated. In other words, the functions attributed to the intelligent interface 12, the visualization constructor 14, and the image compositor 16 are merely one example and other embodiments can be envisaged wherein the functions described above are split up differently or wherein some components are not included or other components are included.
Once the data in the data stream has been imported, the process 50 continues with data selection, as indicated in block 54 of
Once data selection is complete, the intelligent interface 12 generates a set of interaction rules, as indicated in block 56. The interaction rules specify which visualizations will comprise the sequence of visualizations and in what order the sequence of visualizations will be displayed. The interaction rules are based both on the structure of the selected data and the selected data itself. In one embodiment, the interaction rules are generated by accessing a list of stored user preferences, determining how the data corresponds to the stored user preferences, and generating the interaction rules based on the correspondence between the data and the stored user preferences. For example, in a stock market reporting context, the user preferences could specify creating a sequence of visualizations comprising a graphical visualization of overall performance of the stock market and creating lower layer graphical visualizations for the three stocks that increased in value the most during the previous 24 hours. The intelligent interface 12 employs these user preferences to generate the interaction rules, which provide a framework that permits the visualization constructor 14 to create visualizations that are based on the data itself. This sequence of visualizations displays detailed information that is of interest to the user (i.e., information about the three stocks with the greatest increase in value) without the user having to manually select the particular stocks to be displayed.
Once generated, the interaction rules provide detailed information about what data is to be displayed in the sequence of visualizations, and thus, the interaction rules serve as a guide to the visualization constructor 14 in constructing the sequence of visualizations. In one embodiment, the interaction rules can be generated based on instructions pre-programmed into the intelligent interface 12. In alternate embodiments, the interaction rules are generated by the intelligent interface 12, itself based on the data selected.
After the interaction rules have been generated, the visualization constructor 14 simulates a window in which to construct the sequence of visualizations. In one embodiment, the visualization constructor 14 simulates a window that resembles windows created in the Microsoft Windows™ operating system. In one embodiment, this window has a height and a width that corresponds to the edges of a display and includes frames and panels that create boundaries for the window. In one embodiment, all of the visualizations in the sequence of visualizations employ windows that have similar properties. In alternate embodiments, however, the properties of the individual window will vary depending on the properties of the data being displayed in the particular graphical visualization.
Once the first layer visualization has been created, the visualization constructor 14 can create the lower level visualizations, as indicated by block 62. As stated above, the visualization constructor 14 employs the set of interaction rules generated by the intelligent interface 12 to guide the construction of the lower level visualizations. Specifically, the visualization constructor 14 creates lower level visualizations to display any data or class of data specified in the interaction rules.
Next, returning to the process 50 in
In regards to the exemplary data stream 70 illustrated in
In particular, the volume of service is arrayed along a y-axis 102, and the two service providers are displayed as graphical bars 104 and 106. Each of the graphical bars 104 and 106 is subdivided into two regions to represent the number of service requests to each provider that resulted in SLO violations versus the number of requests that did not result in an SLO violation. For example, the graphical bar 104 is divided into a region 108 which displays the number of requests that resulted in an SLO violation and a region 110 which represents the number of requests that were provided service. Similarly, graphical bar 106 is divided into regions 112 and 114. Those skilled in the art will appreciate that dividing the graphical bars 104 and 106 into visually distinctive regions merely adds an additional dimension to the first layer visualization 100. In alternate embodiments, the graphical bars 104 and 106 are subdivided differently or are not subdivided.
The first layer visualization 100 also comprises a legend 116 which indicates to a viewer of the first layer visualization 100 what the sub-regions of the graphical bars 104 and 106 represent. In some embodiments, the legend 116 is omitted from the first layer visualization 100. In one embodiment, the first layer visualization 100 is also configured to support pointer-driven value display. In one embodiment, when a pointer is pointed at the sub-section of the visualization, the value of a sub-section of the visualization is displayed. For example,
Those skilled in the art will also appreciate that the graphical bars 104 and 106 shown in the first layer visualization 100 are merely one technique for displaying the data stream. In alternate embodiments, other types of visualizations, such as pistol charts, line charts or pie charts, can be employed to represent the data stream. In still other embodiments, the first layer visualization is arranged hierarchically with different levels of the hierarchy displayed through differing shades or colors.
In one embodiment, the second layer visualization 150 expands on one of the graphical bars displayed in the first layer visualization 100. This expansion is also referred to also drilling down or creating a drilldown visualization. In the case of the second layer visualization 150, it is a drilldown graphical visualization from the graphical bar 104. As with the first layer visualization 100, the second layer visualization 150 comprises a y-axis 152, which represent the number of service requests. In the second layer visualization 150, the three websites with highest volume of service requests for provider 1 are arrayed along the x-axis. Those skilled in the art will appreciate that three websites are shown illustrative purposes only, and in alternate embodiments, the interaction rules could have specified that any one number of a number of sub-elements from the graphical bar 104 comprise the second layer visualization 150.
The second layer visualization 150 comprises graphical bars 154, 156, and 158 which represent service requests to each of the three websites. As with the graphical bars 104 and 106 shown in
The visualization constructor 14 (
In further example,
The visualization constructor 14 is also capable of creating more detailed first layer visualizations than the first layer visualization 100, if so specified in the interaction rules. For example,
After the visualization constructor 14 has created the sequence of visualizations, the visualization constructor 14 ranks the sequence of visualizations and places the visualizations into an order, e.g. ascending, descending, and the like, based on the relative position of the data represented in each of the visualizations in the data stream 70. In one embodiment, this ranking is used to order the sequence of visualizations for automated display in computer slide show.
Returning to
While the invention can be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5581797 | Baker | Dec 1996 | A |
5623590 | Becker | Apr 1997 | A |
5659768 | Forbes | Aug 1997 | A |
5742778 | Hao et al. | Apr 1998 | A |
5801688 | Mead | Sep 1998 | A |
5828866 | Hao et al. | Oct 1998 | A |
5929863 | Tabei | Jul 1999 | A |
5986673 | Martz | Nov 1999 | A |
6222547 | Schwuttke et al. | Apr 2001 | B1 |
6269325 | Lee | Jul 2001 | B1 |
6301579 | Becker | Oct 2001 | B1 |
6330685 | Hao et al. | Dec 2001 | B1 |
6377287 | Hao et al. | Apr 2002 | B1 |
6400366 | Davies | Jun 2002 | B1 |
6429868 | Dehner | Aug 2002 | B1 |
6658358 | Hao et al. | Dec 2003 | B2 |
6700575 | Bovarnick et al. | Mar 2004 | B1 |
6700590 | DeMesa | Mar 2004 | B1 |
6704016 | Oliver et al. | Mar 2004 | B1 |
6711577 | Wong et al. | Mar 2004 | B1 |
6727926 | Utsuki | Apr 2004 | B1 |
6937238 | Hao | Aug 2005 | B2 |
7038680 | Pitkow | May 2006 | B2 |
7046247 | Hao | May 2006 | B2 |
7051284 | Uemura | May 2006 | B2 |
7218325 | Buck | May 2007 | B1 |
7221474 | Hao | May 2007 | B2 |
20020054158 | Asami | May 2002 | A1 |
20020067381 | Hugh | Jun 2002 | A1 |
20020078086 | Alden et al. | Jun 2002 | A1 |
20020174087 | Hao et al. | Nov 2002 | A1 |
20030011601 | Itoh et al. | Jan 2003 | A1 |
20030071815 | Hao et al. | Apr 2003 | A1 |
20030128212 | Pitkow | Jul 2003 | A1 |
20030152288 | Balmelli | Aug 2003 | A1 |
20030169295 | Becerra, Jr. | Sep 2003 | A1 |
20030208323 | Hao et al. | Nov 2003 | A1 |
20030214504 | Hao et al. | Nov 2003 | A1 |
20030227484 | Hao et al. | Dec 2003 | A1 |
20040078378 | Bala | Apr 2004 | A1 |
20040085316 | Malik | May 2004 | A1 |
20040169654 | Walker et al. | Sep 2004 | A1 |
20040183799 | Hao et al. | Sep 2004 | A1 |
20040205450 | Hao et al. | Oct 2004 | A1 |
20040252128 | Hao et al. | Dec 2004 | A1 |
20050088441 | Hao | Apr 2005 | A1 |
20060059439 | Hao | Mar 2006 | A1 |
20060156246 | Williams et al. | Jul 2006 | A1 |
20070101268 | Hua | May 2007 | A1 |