This disclosure relates generally to a system, apparatus, and method for displaying a multi-dimensional nested table that can support scalable real-time querying of large data volumes and visualization of the results of the data query. Data from a multi-dimensional nested table is displayable in such a manner that data corresponding to a particular dimension or dimensions of data are expandable and collapsible via a sub-manipulator, and where less than all of the data corresponding to a particular dimension or dimensions are initially displayed.
In the current information age there are various forms of tables for visualizing data from a database. One such data visualization tool is a basic data table. A basic data table is comprised of rows and columns of information, which often times includes numerical calculations based on the combination of certain rows and columns of information. A basic EXCEL® data table 100a is illustrated in
In the context of data summary tools hosted on servers, database size and query speed can become of particular concern at least because of: (1) the additional time that may be required to load the visual representation of the pivot tables because of bandwidth limitations; and (2) the fact that data summary tools hosted on servers tend to be based on large and complex databases. Web based data summarization tables (hereinafter “web tables”) are known in the prior art and operate in a manner similar to pivot tables in that they include dimensions and metrics which are used to summarize data for a user. Web tables may be hosted on a local server or remote server (e.g., one hosted on the Internet) and may be directly linked to an online data base that can be edited in real time by hundreds or even thousands of users. The web table may also be linked directly to another database and configured to summarize data in real-time based on the database. Consequently, the web table is capable of being constantly updated based on information entered by users in remote locations or by automation. Web tables often times include massive amounts of data, including tens of dimensions and thousands of rows of information. Consequently, the time required to query information in a web table, as well as the amount of time required to display that information to a user, can be significant. Additionally, the amount of data may very well overwhelm a user given the sheer volume of information being queried and displayed. A web table 200 is illustrated in
Consequently, there remains a need for a method, system, and apparatus for querying and displaying data in real-time in a manner that does not overwhelm the user or require a significant amount of querying and display time. There further remains a need to display data that is of particular importance to a user, while minimizing the amount of data displayed that is not of particular importance. There further remains a need for an individual to be able select specific rows of information in a web table and summarize the metrics corresponding to the selected rows of information.
Referring to
The multi-dimensional nested table 300 is comprised of two dimensions: “Publisher” 302 and “Country” 304. While “Publisher” 302 and “Country” 304 are both dimensions, only “country” 304 is a sub-dimension in the illustrated configuration because it is a secondary dimension 304 to dimension 302. The hierarchy of dimensions in nested table 300 may be configured in any manner desired by a user. For example, the hierarchy of nested table 300 may be rearranged such that “Publisher” 302 is a sub-dimension of “Country” 304. In one or more embodiments, the hierarchy of the dimensions determines how the data related to those dimensions is displayed, or whether the data is displayed. There are no limitations or restrictions regarding how a user may reconfigure the hierarchy of dimensions, even if such hierarchy causes the nested table to display data organized in a nonsensical fashion.
The nested table 300 is also comprised of four metrics: “Revenue” 306, “Uniques” 308, “Impressions” 310, and “Clicks” 312. As would be apparent to one of ordinary skill in the art, any number of dimensions and metrics can be incorporated into the nested table 300 interface. A calculated total value 314 for each metric 306-312 is displayed on the top row 314 of the table 300 based on the sum of the metrics corresponding to the values of each dimension 302 value. For example, the calculated value 316 in the top row 314 for the metric “Revenue” 306 is based on the aggregation of the metrics 318, 320, 322, and 324 which correspond to the dimension 302 values. While the calculated value 316 is based on a summation of metric values in the illustrated embodiment, those having ordinary skill in the art would understand that any type of calculation could be performed using the metrics. For example, instead of aggregating the metric values, the average of the metric values could be calculated. Each value of dimension 302 includes a manipulator 326-330, such as manipulator 326 next to publisher value 334 (i.e., “NOA Networks”). The manipulator may appear as a “+” or “-” symbol, where a “+” indicates that the sub-dimension values 338 corresponding to dimension value 334 may be expanded from a collapsed mode, and a “−” indicates that the sub-dimension values 338 may be collapsed from an expanded mode. While “+” and “−” symbols represent the manipulators in
While
Yet another feature of nested table 300 is the utilization of sub-manipulators, 332, 340 and 342. Like manipulators 326-330, sub-manipulators may be utilized to expand or collapse dimension values at the discretion of the user. However, a sub-manipulator can allow a user to expand or collapse dimension values within the same dimension as the sub-manipulator itself. For example, sub-manipulator 332 may be selected to expand dimension 302 to show additional dimension values 408 for dimension 302. However, when manipulator 326 is selected only sub-dimension values 338 corresponding to sub-dimension 304 are expanded or collapsed. The displayed metrics corresponding to collapse sub-dimension value 344 in
Referring to both
Turning to
Yet another feature of the nested table 300 is the ability of a user to seamlessly add or subtract additional dimensions to the nested table 300. For example, a user may elect to add the additional dimension “Ad Size” to the table displayed in
A user may also reconfigure the hierarchy of dimensions in the nested table 300. For example, a user may select element 348 corresponding to the “Publisher” dimension 302 and drag it to the right of element 350 corresponding to the “Country” dimension 304. Conversely, a user may select element 350 corresponding to the “Country” dimension 304 and drag it to the left of element 348 corresponding to the “Publisher” dimension 302. As a result, the nested table 300 will be rearranged such that the data is summarized first by dimension 304 and then by dimension 302. Dimension 302 would then be a sub-dimension to dimension 304. Those of ordinary skill in the art would recognize that any number of elements corresponding to a particular dimension may be rearranged by dragging the elements to a particular location on the user's display. This feature can allow a user to quickly and easily rearrange the hierarchy of the dimensions in a nested table.
Turning now to
Turning to the example of
Yet another feature of the nested table 300 is the ability to display only the subset of data that meets a specific criteria and hide data that does not fit that criteria using a filter. Such filters may automatically be applied each time the nested table 300 table is reconfigured, for example when the hierarchy of dimensions is rearranged as discussed in ¶ 0019. Such filters may be, for example, filters based on text so that a user may filter the table based on a specific text value. A user may, for instance, desire to only see data from the table corresponding to a particular country such as the “United States”, so the text filter value entered by the user would be “United States.” The nested table 300 would then only display data corresponding to the United States and hide all other data. Similarly, a user may only desire to see a particular metric, such as “Revenue” 306. In that case, a user would utilize the “Revenue” 306 metric as the filter and only the revenue for each dimension would be displayed. Those of ordinary skill in the art would recognize that there are a countless number of types of filters known in the art that may be applied to the nested table 300, such as filters for date or time if such values are part of the nested table summary. It would also be recognized that the filters may be additive, meaning that additional filters may be used and that each additional filter may be based on the current filter, thereby reducing the amount of data displayed in the table.
In the foregoing description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, to one skilled in the art that the disclosed embodiments may be practiced without these specific details. Moreover, the language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one disclosed embodiment, and multiple references to “one embodiment” or “an embodiment” should not be understood as necessarily all referring to the same embodiment.
It is also to be understood that the above description is intended to be illustrative, and not restrictive. For example, above-described embodiments may be used in combination with each other and illustrative process steps may be performed in an order different than shown. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, terms “including” and “in which” are used as plain-English equivalents of the respective terms “comprising” and “wherein.”
Referring now to
System unit 610 may be programmed to perform methods in accordance with this disclosure. System unit 610 comprises one or more processing units (represented by PU 620), input-output (I/O) bus 650, and memory 630. Memory access to memory 630 can be accomplished using the communication bus 650. Processing unit 620 may include any programmable controller device including, for example, a mainframe processor, a cellular phone processor, or one or more members of the INTEL ATOM®, CORE®, PENTIUM® and CELERON® processor families from Intel Corporation and the CORTEX® and ARM® processor families from ARM Limited Corporation. (INTEL®, INTEL ATOM®, CORE®, PENTIUM®, and CELERON® are registered trademarks of the Intel Corporation. CORTEX® is a registered trademark of the ARM Limited Corporation. ARM® is a registered trademark of the ARM Limited Company). In one or more embodiments, processing unit 620 follow a program sequence of computer-executable instructions, such as instructions stored in the storage device 680. In one or more embodiments, PU 620 may be configured to perform instructions, such as generating a visual representation of a table based on data stored, for example, on program storage device 680 or some other storage device; causing to be displayed on display device 670, detecting that a user has placed a first dimension value manipulator corresponding of the first dimension value into an expand mode, and in response, expanding the first dimension value in the displayed visual representation of the table such that the sub-dimension values for the first dimension value are visible. In this manner, processing unit (PU) 620 is transformed during execution of the instructions. Further, display 670 is also transformed to display the changing graphical user interface that includes the visual representation of the table.
Display 670 may be any kind of display device that connects to a computer system. For example, display 670 may include a cathode ray tube (CRT) display, plasma display, liquid crystal display (LCD), light-emitting diode (LED) display, or any other kind of display device. Memory 630 may include one or more memory modules and comprise random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), programmable read-write memory, and solid-state memory. PU 620 may also include some internal memory including, for example, cache memory or memory dedicated to a particular processing unit and isolated from other processing units for use in data display techniques used, for example, to display data on display 670.
Processing device 600 may have resident thereon any desired operating system. Embodiments of disclosed data display techniques may be implemented using any desired programming language, and may be implemented as one or more executable programs, which may link to external libraries of executable routines that may be supplied by the provider of the data display software/firmware, the provider of the operating system, or any other desired provider of suitable library routines. As used herein, the term “a computer system” can refer to a single computer or a plurality of computers working together to perform the function described as being performed on or by a computer system.
In preparation for performing disclosed embodiments on processing device 600, program instructions to configure processing device 600 to perform disclosed embodiments may be provided stored on any type of non-transitory computer-readable media, or may be downloaded from a server onto program storage device 680. It is important to note that even though PU 620 is shown on a single processing device 600 it is envisioned and may be desirable to have more than one processing device 600 in a device configured according to disclosed embodiments.
It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments may be used in combination with each other. Many other embodiment will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Number | Name | Date | Kind |
---|---|---|---|
5953707 | Huang et al. | Sep 1999 | A |
6879729 | Kamath et al. | Apr 2005 | B2 |
7506243 | Kotler | Mar 2009 | B2 |
7568211 | Mai et al. | Jul 2009 | B2 |
7747465 | Srinivasan et al. | Jun 2010 | B2 |
7761346 | Cooper et al. | Jul 2010 | B2 |
7925989 | Hofmann | Apr 2011 | B2 |
8112425 | Baum et al. | Feb 2012 | B2 |
8204301 | Xiao et al. | Jun 2012 | B2 |
8515862 | Zhang et al. | Aug 2013 | B2 |
9002854 | Baum et al. | Apr 2015 | B2 |
9069824 | Pompey et al. | Jun 2015 | B2 |
9508082 | Mannix et al. | Nov 2016 | B1 |
9524223 | Brew | Dec 2016 | B2 |
20020038384 | Khan | Mar 2002 | A1 |
20020099600 | Merriman et al. | Jul 2002 | A1 |
20030026493 | Kamath et al. | Feb 2003 | A1 |
20050028188 | Latona et al. | Feb 2005 | A1 |
20060282771 | Vinci | Dec 2006 | A1 |
20070260582 | Liang | Nov 2007 | A1 |
20070300144 | Naick | Dec 2007 | A1 |
20080117213 | Cirit et al. | May 2008 | A1 |
20080282189 | Hofmann | Nov 2008 | A1 |
20090119172 | Soloff | May 2009 | A1 |
20090319543 | Danton | Dec 2009 | A1 |
20100082705 | Ramesh et al. | Apr 2010 | A1 |
20100205024 | Shachar et al. | Aug 2010 | A1 |
20110119100 | Ruhl et al. | May 2011 | A1 |
20110218978 | Hong et al. | Sep 2011 | A1 |
20120109917 | Comeau | May 2012 | A1 |
20130103657 | Ikawa et al. | Apr 2013 | A1 |
20130123131 | Purvis et al. | May 2013 | A1 |
20130150253 | Deciu et al. | Jun 2013 | A1 |
20140078163 | Cammert et al. | Mar 2014 | A1 |
20140101093 | Lanphear et al. | Apr 2014 | A1 |
20140108640 | Mathis | Apr 2014 | A1 |
20140122022 | Chen et al. | May 2014 | A1 |
20140172867 | Lin et al. | Jun 2014 | A1 |
20140279824 | Tamayo | Sep 2014 | A1 |
20140279927 | Constantinescu et al. | Sep 2014 | A1 |
20140280032 | Kornacker et al. | Sep 2014 | A1 |
20140324745 | Leppanen et al. | Oct 2014 | A1 |
20150007115 | Kleser | Jan 2015 | A1 |
20150032775 | Yang et al. | Jan 2015 | A1 |
20150033086 | Sasturkar et al. | Jan 2015 | A1 |
20150073894 | Leaute et al. | Mar 2015 | A1 |
20150112874 | Serio et al. | Apr 2015 | A1 |
20150120749 | Phanishayee et al. | Apr 2015 | A1 |
20150186434 | Eichinger et al. | Jul 2015 | A1 |
20150379050 | Yanacek et al. | Dec 2015 | A1 |
20150379065 | Yoshizawa et al. | Dec 2015 | A1 |
20160147583 | Ben Simhon et al. | May 2016 | A1 |
20160253381 | Kim et al. | Sep 2016 | A1 |
20170178309 | Rakhshanfar et al. | Jun 2017 | A1 |
20170220938 | Sainani et al. | Aug 2017 | A1 |
20170230229 | Sasturkar et al. | Aug 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20150178339 A1 | Jun 2015 | US |
Number | Date | Country | |
---|---|---|---|
61918482 | Dec 2013 | US |