Sign In to Follow Application
View All Documents & Correspondence

"Diagrammatic Access And Arrangement Of Data"

Abstract: Customizable data diagrams are provided by a data diagram software facility. The facility receives a reference to a multidimensional data set on which to base an initial data diagram. Based, at least in part, on this information, the facility generates a data diagram providing a graphical representation of nodes corresponding to data from the multidimensional data set. The facility displays the data diagram, which can be modified by a user. For example, the facility may provide tools that allow the user to change the order of the nodes of the data diagram, change the shape of the nodes of the data diagram, change the color or format of the nodes of the data diagram, etc. The facility may also provide functionality that allows the user to drill down on aspects of the data diagram based on a breakdown scheme.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
20 December 2005
Publication Number
40/2009
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

MICROSOFT CORPORATION
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052, U.S.A

Inventors

1. DAVID G.BRADLEE
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052, U.S.A
2. DILLON NUGENT
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052, U.S.A
3. WILLIAM MOREIN
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052, U.S.A

Specification

DIAGRAMMATIC ACCESS AND ARRANGEMENT OF DATA TECHNICAL FIELD [0001] The described technology relates generally to accessing and manipulating data via diagrams and other graphical representations. BACKGROUND [0002] Current data management tools provide users with a wide variety of data storage and access techniques that allow users to enter, modify, and access data. More advanced data management techniques, such as pivot tables, custom reports, and other technologies such as Lotus Symphony™, provide users with a flexible way to aggregate, break down, and analyze sets of data. In general, a pivot table is a data table that contains data derived from another table (e.g., aggregation or summarization). An example of a pivot table is shown in Figure 1. In addition to a pivot table 104, Figure 1 also shows an example of a raw data list 102 (e.g., data in an Excel table) used to generate the pivot table 104. The raw data list 102 contains information relating to sales of types of grocery products (e.g., dairy, beverages, produce, and meat). According to the raw data list, the sales take place in one of four regions (e.g., north, south, east, and west) over a period of time. The raw data list 102 also shows unit infonnation for the sale of grocery products. Once converted into the pivot table 104, the information of the raw data list 102 is organized according to region and type of grocery product. The pivot table 104 shows totals for each grocery product type and for each region. Also, the pivot table 104 displays grand totals for all the regions and for all the types of grocery products. [0003] As illustrated in Figure 1, pivot tables can be a useful tool for presenting data. Customizable report tables may provide similar advantages. Some data tools even provide a graphical or diagrammatical display of raw and/or manipulated data based on output provided by a previously generated pivot table or report. However, pivot tables, report filters, and similar tools are often difficult to use. For example, users may have to go through several steps to specify parameters for the pivot table or report, especially in cases involving large data sets. In addition, users may have trouble conceptualizing the contents and organization of data to be presented in the pivot table or report, making it even more difficult to specify parameters. Also, due to limitations in current software, it may be difficult to produce a visually compelling output. SUMMARY [0004] In some embodiments, a data diagram software facility provides customizable data diagrams. The facility may receive a reference to a multidimensional data set on which to base an initial data diagram. Based, at least in part, on this information, the facility may generate a data diagram providing a graphical representation of a node or nodes corresponding to data from the multidimensional data set. The facility may display the data diagram, which can be modified by a user. For example, the facility may provide tools that allow the user to change the order of the nodes of the data diagram, change the shape of the nodes of the data diagram, change the color or format of the nodes of the data diagram, etc. The facility may also provide functionality that allows the user to drill down on aspects of the data diagram based on a breakdown scheme. DETAILED DESCRIPTION [0005] The invention will now be described with respect to various embodiments. The following description provides specific details for a thorough understanding of, and enabling description for, these embodiments of the invention. However, one skilled in the art will understand that the invention may be practiced without these details. In other instances, well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the invention. [0006] It is intended that the terminology used in the description presented be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. I. Overview [0007] A data diagram software facility provides users with a tool for accessing and presenting data from a multidimensional data source, such as an OLAP (on-line analytical processing) database or a relational data source. In some embodiments, the data diagram facility provides users with flexible and dynamic data diagrams that can be customized according to a user's needs. A data , diagram is a graphical representation of the data in a data set. For example, the raw data list 102 of Figure 1 may be presented graphically as a tree structure with a title of the data diagram at the root node, the regions represented as second-level nodes, and the types of products represented as third-level nodes. By selecting various nodes of the data diagram, the user can view various levels of detail of the underlying data set. [0008] The data diagrams may be displayed in multiple formats with a tree structure being one example. The data diagram facility may then allow a user to customize data diagrams using techniques such as selection, dragging and dropping, and cutting and pasting. For example, the data diagram facility may allow a user to combine the beverages and dairy nodes under the north region by selecting those nodes and selecting a "combine" option. The facility may then adjust the displayed data diagram to show that the nodes have been combined. In this way, the user can manipulate and customize a data diagram so that it meets a desired (e.g., presentation-quality) format. The customized data diagram may retain active links to the underlying data. Accordingly, the user can continue to manipulate the customized data diagram (e.g., during a second session) while still retaining an accurate portrayal of the underlying data. Also, by retaining active links to the underlying data, the data diagram facility can refresh information in the customized data diagram, ensuring that the most recent data is presented. [0009] In some embodiments, the data diagram facility is implemented within a framework of a drawing application (e.g., Microsoft Visio). To create an initial data diagram, in some embodiments, a user connects to an appropriate data source (e.g., an OLAP database (or other multidimensional data source) or a relational database). A user interface associated with the data diagram facility allows ^he user to select parameters of interest for the initial data diagram. For example, the user may select that the initial data diagram should include a node for each region of Figure 1 at the second level and a node for each type of grocery product at the third level. The data diagram facility then generates the initial data diagram. The user may customize the initial data diagram using tools, including drawing tools. Later, the user may go back and refresh the data while still retaining any visual effects and data organization schemes created using the drawing tools. II. ' User Interface [0010] Figure 2 shows an initial data diagram 200 generated by the data diagram facility. For the purpose of illustration, the initial data diagram is based on information from a data source, such as the raw data list 102 of Figure 1. As illustrated in Figure 2, the data diagram may include an information box 202 that indicates the data source (e.g., "Raw Data List (104)") and a last-updated time and date (e.g., "10/13/04 10:30 A.M."). [0011] In some embodiments, the data diagram 200 is shown as a hierarchy with a root node 204 at the top. Alternatively, the node at the top of the hierarchy may be a title node, indicating a title for the information in the data diagram. In some embodiments, the data diagram facility provides a dimension shape 206 that indicates a particular dimension of the hierarchy. For example, the dimension shape 206 may specify the breakdown scheme for the next level of the hierarchy (e.g., if the dimension node specifies "region," the next level of the hierarchy shows the regions "north," "south," "east," and "west"). [0012] In the illustrated example, the data diagram 200 is broken down by region (e.g., north, south, east, and west). Accordingly, region information is displayed one level below the root node 204. For example, a node 208 corresponds with a north region, a node 210 corresponds with a south region, a node 212 corresponds with an east region, and a node 214 corresponds with a west region. In some embodiments, the user may select a node (e.g., east), then break that single node down. The user may also do the same for the entire level or set of nodes. For example, in the illustrated embodiment, the next level down in the data diagram 200 consists of nodes representing grocery product types. For example, a node 216 represents a beverages type, a node 218 represents a dairy type, a node 220 represents a meat type, and a node 222 represents a produce type. These same nodes are repeated for each of the respective regions. However, whether this type of symmetry is present may depend on the underlying data set and on the parameters that the user selects. For example, if no meat is sold in the north region, then the data diagram might have no meat node under the north node. [0013] In some embodiments, the facility may provide two general categories of functions: functions that affect the entire data diagram and functions that affect only selected portions of the data diagram. Examples of functions that the data diagram facility may perform on the whole data diagram include a REFRESH function 224 that refreshes information displayed in the data diagram 200 based on any changes that may have taken place in the underlying data. In most cases, executing this function does not alter any user changes to the data diagram. [0014] A HIDE DETAIL function 226 may hide details in the data diagram so that the user can simplify the view. An UNHIDE DETAIL function 228 displays detailed information in the data diagram 200 that has been hidden (e.g., as a result of performing the HIDE DETAIL function 226). For example, the user may select the HIDE DETAIL function 226 to remove the display of the grocery product type nodes and the UNHIDE DETAIL function 228 to redisplay the details. [0015] An ADD MEASURE function 230 allows users to display database measures, which are currently not being shown in the display diagram 200. Measures may consist of numbers in a spreadsheet (e.g., dollars, profit, hours, etc.) to which different types of aggregations can be applied (e.g., sum, average, minimum, maximum, etc.). For example, a user may want to add the "sales" measure of the raw data list to the region nodes to display the total sales for that region. In some embodiments, measures can be combined into calculated measures that allow users to view data across different time periods or calculate percentage type data. Calculated measures (sometimes called "calculated members" in OLAP databases) typically involve applying formulas to multidimensional data. For example, a user may add a calci^lated measure to the region nodes that display the percentage of the total sales that are from that region. In some embodiments, the invention may allow a user to add or remove measures from nodes in a diagram at any time. In some embodiments, a user interface of the data diagram facility is configured such that users do not need to understand the difference between dimensions (e.g., columns) and measures. Instead, a user may click on a button to get the information he or she wants, including both measure information and dimension information. [0016] Via a drill down window, the user may select the columns (i.e., dimensions) that the he or she would like to view on the data diagram (e.g., month, year, type, salesperson, sales, units, region, etc.). For example, if a user would like to display the sales people in each region, the user may provide a select a salesperson dimension from the drill down window. A CONFIGURE COLUMN function 232, when selected, provides facilities for further customization of selected dimensions. [0017] In some embodiments, a CREATE PIVOT TABLE function 234 allows the user to create a pivot table based on the information as it is displayed in the data diagram 200. For example, a single click allows a user to automatically generate pivot tables that represent a non-diagrammatic view of the same underlying data. In another example, the CREATE PIVOT TABLE function 234 includes an option to display information in an Excel spreadsheet. [0018] Figure 3 shows the data diagram 200 after it has been modified by a user from its initial form. As shown, the user has modified the north region node 208 to resemble a star configuration using, for example, a drawing tool. In this way, the user can, for example, emphasize that the north region has the highest sales relative to the other regions. While the user, in some embodiments, may modify one or more of the shapes in the data diagram 200 for visual effect, the underlying data and its internal relationships remain unchanged. Other changes that the user may make to the data diagram 200 (e.g., using drawing tools) may Include the rearranging of nodes (e.g., using drag and drop techniques), the addition or modification of color, the addition or modification of labels, the addition of animation effects, the addition or modification of fonts or styles, etc. [0019] As shown using a selection box 302 illustrated in Figure 3, in some embodiments, the user may select one or more of the nodes of the data diagram 200 on which to perform specific functions or operations. The user may select these nodes via a variety of techniques such as dragging the selection box 302 over the selected nodes (as shown in Figure 3), clicking on select nodes to highlight them, etc. In the illustrated embodiment, the user has selected the beverages node 216, the dairy node 218, the meat node 220, and the produce node 222 by using the selection box 302. [0020] As described above with respect to Figure 2, in some embodiments, the facility may provide two general categories of functions: functions that affect the entire data diagram and functions that affect only selected portions of the data diagram. Some of the actions that the data diagram facility may perform on selected portions of the data diagram include a SORT PRESENTED DATA function 304, a MERGE function 306, an UNMERGE function 308, a COLLAPSE function 310, and a DRILL DIMENSION function 312. For example, if the data diagram is displaying grocery type Information for both a first region and a second region, but the user only wishes to view grocery type information for the second region, the user may select the node corresponding to the first region and then select the COLLAPSE function 310. [0021] The data diagram facility may also provide tools that allow the user to copy one or more nodes in the data diagram 200 to create a new instance of the data diagram 200. In this way, the user can easily manipulate the same data diagram in many different ways. In some embodiments, the new instance of the diagram may be displayed in the same view or window as the original instance or in a separate view or window. [0022] In accordance with the DRILL DIMENSION function 312, the data diagram facility may allow the user to manipulate how the data diagram presents dimensions of a multidimensional database. Dimensions generally include the categories used for columns and/or rows of the data table. Examples of dimensions include month, year, type, salesperson, region, product, time, store, customer age, customer income, employee, etc. In some cases, dimensions have levels (or subcategories). For example, the dimension of time may have a year level, a month level, a day level, an hour level, a minute level, and a second level. The levels of a dimension allow users to drill down with respect to that dimension. For example, if the user notices that sales are higher in a particular month, the user may want to drill down to a week or day level to see if sales were higher in a particular part of the month. Similarly, the user may want to drill up to a higher level (e.g., year), to see if data patterns are valid on a wider scale. For example, to drill up, the user may change the level he or she originally drilled on frorri week to year. In many cases, the levels of a dimension may be organized into hierarchies. [0023] Figure 4 shows the result of the DRILL DIMENSION function 312 of Figure 3, as applied to the selection of nodes 302. The selected nodes in this case include the beverages node 216, the dairy node 218, the meat node 220, and the produce node 222. In some embodiments, the data diagram facility provides the user with a dialog box or other input tool (not shown) that allows the user to select desired dimensions and levels. [0024] When the DRILL DIMENSION function 312 is applied to the selected nodes (216, 218, 220, and 222) as spedfied by the user, the result is a display of the next level of the dimensions associated with the selected nodes. For example, in the illustrated embodiment, the data diagram 200 displays nodes showing monthly sales in each region for each of the respective grocery type categories. For example, a sales representative named Davis sold 5,611 units of dairy in January as represented in node 402. Likewise, a sales representative named Jones sold 744 units of meat in the month of February as shown in node 404. A sales representative named Smith sold 2,861 units of produce in January as shown in node 406, and a sales representative named Butterworth sold 1,450 units of produce in February as shown in node 408. [0025] In some embodiments, multiple drill down instances may be created for a single data diagram, and each instance may be maintained and updated separately. III. Data Structures [0026] Figure 5 shows a collection of underlying data structures that may be used to implement the data diagram facility. For illustrative purposes, the data structures are shown as they would be configured to produce the data diagram 200 of Figure 2. However, one skilled in the art would understand that the invention could be implemented using different data structures, or the same data structures in different combinations. [0027] The data structures used to generate a .data diagram of the illustrated embodiment may include shape objects 502, breakdown shape objects (504 and 514), recordset objects (506 and 516), and information shape objects 510. [0028] The shape objects 502 may be used to implement the nodes that the data diagram displays. For example, the shape objects (502, 503, 505, 507, 509, and 511) may be used to display the root node of the data diagram of Figure 2, as well as the region nodes (e.g., north, south, east, west) and the grocery product type nodes (beverages, dairy, meat, produce). The shape objects (502, 503, 505, 507, 509, and 511) may each include a Boolean value about whether the shape is a root shape, a reference to a data diagram information shape 510 (described below), a Boolean value that represents whether the shape has children or not, a reference to a breakdown shape if the shape has children, a Boolean value that shows whether the shape is an aggregate of shapes on the same breakdown level, a Boolean value that shows whether the shape is part of a merge shape (indicating that the shape is hidden on the data diagram), and a reference to a merge shape (if the shape is part of a merge). [0029] The shape objects (502, 503, 505, 507, 509, and 511) may also contain references to the information (e.g., the particular set of dimensions, measures, and relational information) that the shape displays when implemented as a node in a data diagram. For example, each shape may contain a reference or pointer to a recordset object (506 or 516). The recordset object (506 or 516) may include a set of data from an underlying data source 508, such as row and column information. In some embodiments, the set of data that the recordset object (506 or 516) contains may be based on a query performed by a corresponding breakdown shape object (504 or 514). In some implementations, each row of the recordset object (506 or 516) m£(v pertain to one shape object (502, 503, 505, 507, 509, or 511) in the data diagram. The recordset object (506 or 516) may provide a flexible way to manipulate select data from the data source 508, as it can be easily refreshed and includes a set of methods that allow access to its data. However, it is possible to implement the inve.ntion using other techniques. [0030] As described above, the breakdown shape objects (504 and 514) may provide queries to generate recordset objects (506 and 516). In general, each breakdown shape object (504 and 514) provides information about one breakdown (e.g., sales by region, sales by product type) in a data diagram. Accordingly, the data diagram may have one breakdown shape object (504 or 514) for each level in the data diagram (in addition to the root). For example, the breakdown shape object 504 corresponding to the root node 204 in the data diagram of Figure 2 may provide an indication of what the next level down in the hierarchy should be (e.g., regions). After performing the query results in a recordset object 506 corresponding to the breakdown shape object 504, the breakdown shape object 504 may include a pointer or reference to the corresponding recordset object 506. In general, while the breakdown shape objects (504 and 514) may not be displayed or visible as shapes or nodes on the data diagram itself, an indication of the breakdown scheme that a breakdown node represents may be displayed. [0031] An information shape object 510 may be used to hold information about the data diagram as a whole. This information may include, for example, information about the layout of the data diagram and about the data source of the data diagram. In addition, the types of data in a data diagram information shape object 510 may include a shape reference identifying the root shape for the data diagram 502, an instance index 512 for the data diagram, and connection information (not shown) that may be used to create a new data diagram via a copy/paste action. The instance index 512 may facilitate separate dispjayable instances of the data diagram, so that a user is allowed to manipulate multiple instances separately. Accordingly, the instance index 512 may include a reference or pointer to one or more data diagram instances. IV. Process Flows [0032] Figures 6 and 7 are representative flow diagrams that show""processes of the data diagram facility. These flow diagrams do not show all functions or exchanges of data but, instead, provide an understanding of commands and data exchanged under the system. Those skilled in the relevant art will recognize that some functions or exchanges of commands and data may be repeated, varied, omitted, or supplemented, and other aspects not shown may be readily implemented. [0033] Figure 6 is a flow diagram showing an example of a routine 600 for creating a data diagram based on multidimensional data in an embodiment of the invention. At block 601, the routine 600 receives a request to create a new data diagram. The request may include information provided by a user, such as a designation of a data source and information relating to the general contents and format of the data diagram. At block 602, the routine 600 opens a template in an associated drawing application and applies initial settings according to the provided information. For example, the template may provide a view in which the data diagram can be graphically displayed and manipulated and may provide a set of stencils, macros, and page settings configured especially for manipulating data diagrams. [0034] At block 603, the routine 600 sets the data source for the new data diagram according to the designation of the user. At block 604, the routine 600 generates a summary query for performing on the data source. In some embodiments, the summary query may be based, at least in part, on metadata provided by the data source. [0035] At block 605, the routine 600 calls a function to create the data diagram, passing In the summary query and the data source as parameters. The create data diagram function may create the diagram by perfomning a series of steps. For example, the create data diagram function may first instantiate an information shape object, a title shape object, and a data diagram instance object. The create data diagram function may then specify one or more data sets for the data diagram by querying the designated data source. Once the data set is specified, the create data diagram function may generate one or more child shape objects thatare each !inl

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 3406-DEL-2005-GPA-(17-06-2010).pdf 2010-06-17
1 Other Patent Document [24-03-2017(online)].pdf 2017-03-24
2 3406-DEL-2005-Correspondence-Others-(17-06-2010).pdf 2010-06-17
2 3406-DEL-2005_EXAMREPORT.pdf 2016-06-30
3 Abstract [30-12-2015(online)].pdf 2015-12-30
3 3406-DEL-2005-Form-1-(15-12-2010).pdf 2010-12-15
4 Claims [30-12-2015(online)].pdf 2015-12-30
4 3406-DEL-2005-Correspondence-Others-(15-12-2010).pdf 2010-12-15
5 Correspondence [30-12-2015(online)].pdf 2015-12-30
5 3406-del-2005-gpa.pdf 2011-08-21
6 Description(Complete) [30-12-2015(online)].pdf 2015-12-30
6 3406-del-2005-form-5.pdf 2011-08-21
7 Examination Report Reply Recieved [30-12-2015(online)].pdf 2015-12-30
7 3406-del-2005-form-3.pdf 2011-08-21
8 OTHERS [30-12-2015(online)].pdf 2015-12-30
8 3406-del-2005-form-2.pdf 2011-08-21
9 3406-del-2005-form-18.pdf 2011-08-21
9 Other Document [28-12-2015(online)].pdf 2015-12-28
10 3406-del-2005-form-1.pdf 2011-08-21
10 Petition Under Rule 137 [28-12-2015(online)].pdf 2015-12-28
11 3406-del-2005-drawings.pdf 2011-08-21
11 Details under section 8.pdf 2015-06-24
12 3406-del-2005-description (complete).pdf 2011-08-21
12 new covering letter.pdf 2015-06-24
13 3406-DEL-2005-Correspondence-Others.pdf 2011-08-21
13 new covering letter.pdf_4416.pdf 2015-06-24
14 3406-del-2005-claims.pdf 2011-08-21
14 FORM-6-601-700(PRS).64.pdf 2015-03-13
15 3406-del-2005-assignment.pdf 2011-08-21
15 MS to MTL Assignment.pdf 2015-03-13
16 3406-del-2005-abstract.pdf 2011-08-21
16 MTL-GPOA - PRS.pdf 2015-03-13
17 MTL-GPOA - PRS.pdf 2015-03-13
17 3406-del-2005-abstract.pdf 2011-08-21
18 3406-del-2005-assignment.pdf 2011-08-21
18 MS to MTL Assignment.pdf 2015-03-13
19 3406-del-2005-claims.pdf 2011-08-21
19 FORM-6-601-700(PRS).64.pdf 2015-03-13
20 3406-DEL-2005-Correspondence-Others.pdf 2011-08-21
20 new covering letter.pdf_4416.pdf 2015-06-24
21 3406-del-2005-description (complete).pdf 2011-08-21
21 new covering letter.pdf 2015-06-24
22 3406-del-2005-drawings.pdf 2011-08-21
22 Details under section 8.pdf 2015-06-24
23 3406-del-2005-form-1.pdf 2011-08-21
23 Petition Under Rule 137 [28-12-2015(online)].pdf 2015-12-28
24 Other Document [28-12-2015(online)].pdf 2015-12-28
24 3406-del-2005-form-18.pdf 2011-08-21
25 OTHERS [30-12-2015(online)].pdf 2015-12-30
25 3406-del-2005-form-2.pdf 2011-08-21
26 Examination Report Reply Recieved [30-12-2015(online)].pdf 2015-12-30
26 3406-del-2005-form-3.pdf 2011-08-21
27 Description(Complete) [30-12-2015(online)].pdf 2015-12-30
27 3406-del-2005-form-5.pdf 2011-08-21
28 Correspondence [30-12-2015(online)].pdf 2015-12-30
28 3406-del-2005-gpa.pdf 2011-08-21
29 Claims [30-12-2015(online)].pdf 2015-12-30
29 3406-DEL-2005-Correspondence-Others-(15-12-2010).pdf 2010-12-15
30 Abstract [30-12-2015(online)].pdf 2015-12-30
30 3406-DEL-2005-Form-1-(15-12-2010).pdf 2010-12-15
31 3406-DEL-2005-Correspondence-Others-(17-06-2010).pdf 2010-06-17
31 3406-DEL-2005_EXAMREPORT.pdf 2016-06-30
32 3406-DEL-2005-GPA-(17-06-2010).pdf 2010-06-17
32 Other Patent Document [24-03-2017(online)].pdf 2017-03-24