Computer systems and methods for the query and visualization of multidimensional databases
First Claim
Patent Images
1. A method for producing graphics comprising:
- (A) determining a hierarchical structure of a first database;
(B) constructing a visual table, comprised of a plurality of panes, by providing a specification that is in a language based on the hierarchical structure of the first database;
(C) querying the first database to retrieve a set of tuples in accordance with said specification;
(D) associating a subset of said set of tuples with a pane in said plurality of panes; and
(E) encoding a tuple in said subset of tuples in said pane as a graphical mark.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for producing graphics. A hierarchical structure of a database is determined. A visual table, comprising a plurality of panes, is constructed by providing a specification that is in a language based on the hierarchical structure of the database. In some cases, this language can include fields that are in the database schema. The database is queried to retrieve a set of tuples in accordance with the specification. A subset of the set of tuples is associated with a pane in the plurality of panes.
-
Citations
196 Claims
-
1. A method for producing graphics comprising:
-
(A) determining a hierarchical structure of a first database;
(B) constructing a visual table, comprised of a plurality of panes, by providing a specification that is in a language based on the hierarchical structure of the first database;
(C) querying the first database to retrieve a set of tuples in accordance with said specification;
(D) associating a subset of said set of tuples with a pane in said plurality of panes; and
(E) encoding a tuple in said subset of tuples in said pane as a graphical mark. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
2. The method of claim 1 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
3. The method of claim 1 wherein said querying step (C) further comprises deriving a new tuple from said set of tuples;
- and
incorporating said new tuple into said set of tuples.
- and
-
4. The method of claim 1 wherein said specification organizes said plurality of panes into a plurality of rows and a plurality of columns.
-
5. The method of claim 4 wherein said plurality of rows and said plurality of columns are hierarchically organized.
-
6. The method of claim 1 wherein said specification organizes said plurality of panes into a plurality of layers.
-
7. The method of claim 6 wherein said plurality of layers is hierarchically organized.
-
8. The method of claim 1 wherein said specification organizes said plurality of panes into a plurality of pages.
-
10. The method of claim 1 wherein said specification comprises an algebraic expression that includes an operand, wherein said algebraic expression represents an operation on said hierarchical structure of said first database.
-
11. The method of claim 10 wherein said operand in said algebraic expression is a type that appears in said hierarchical structure.
-
12. The method of claim 10 wherein said constructing said visual table step (B) comprises:
-
evaluating said algebraic expression thereby obtaining an ordered set of tuples; and
mapping said ordered set of tuples to a row, a column, or a layer in said visual table.
-
-
13. The method of claim 12 wherein said row, said column, or said layer comprises a plurality of panes that is ordered based on an order in said ordered set of tuples.
-
14. The method of claim 10 wherein said algebraic expression includes a relational operator.
-
15. The method of claim 14 wherein said relational operator is a cross product, a union, a selection or a sorting.
-
16. The method of claim 14 wherein a precedence of said relational operator is specified by a nesting operation.
-
17. The method of claim 1 wherein
said specification organizes said plurality of panes into a plurality of rows and a plurality of columns; - and
said specification comprises a first algebraic expression for said plurality of rows and a second algebraic expression for said plurality of columns and wherein at least one of said first algebraic expression and said second algebraic expression represents an operation on said hierarchical structure of said first database.
- and
-
18. The method of claim 17 wherein
said specification further organizes said plurality of panes into a plurality of layers; -
said specification further comprises a third algebraic expression for said plurality of layers; and
said third algebraic expression represents an operation on said hierarchical structure of said first database.
-
-
19. The method of claim 1 wherein
said determining step (A) further comprises determining a hierarchical structure of a second database; - and wherein
said specification comprises an element of the hierarchical structure of said first database and an element of the hierarchical structure of said second database, and wherein said first element includes an operand encoded as a type tuple that is derived from said first database and said second element includes an operand encoded as a type tuple that is derived from said second database.
- and wherein
-
20. The method of claim 1 wherein a tuple in said subset of tuples comprises a field, the method further comprising mapping said field to a graphical attribute.
-
21. The method of claim 20 wherein said graphical attribute is a color, a value, a size, a shape, a phrase, or a symbol.
-
22. The method of claim 1 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as quantitative or ordinal, the method further comprising:
-
mapping said field to a first graphical attribute when said field is classified as quantitative; and
mapping said field to a second graphical attribute when said field is classified as ordinal.
-
-
23. The method of claim 22 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
24. The method of claim 1 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as independent or dependent, the method further comprising:
-
mapping said field to a first graphical attribute when said field is classified as independent; and
mapping said field to a second graphical attribute when said field is classified as dependent.
-
-
25. The method of claim 24 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
26. The method of claim 1, the method further comprising:
-
forming a group with all or a portion of the tuples in said set of tuples; and
forming a graphic based on said group.
-
-
27. The method of claim 26 wherein said graphic is a line that connects each tuple in said group or said graphic is an area that encloses each tuple in said group.
-
28. The method of claim 1 wherein said querying step (C) comprises creating a query based upon said specification.
-
29. The method of claim 28, wherein said querying step (C) further comprises:
mapping said query to a relational algebra operator.
-
30. The method of claim 29 wherein said relational algebra operator is a structured query language (SQL) query.
-
31. The method of claim 29 wherein said relational algebra operator is a datacube query.
-
32. The method of claim 31 wherein said datacube query is an MDX query.
-
33. The method of claim 28, the method further comprising processing said specification thereby reducing a number of queries that is performed by said querying step (C).
-
34. The method of claim 28 wherein said processing comprises:
-
crossing an expression in said specification;
converting an expression in said specification to a sum-of-terms; and
forming a query from a term in said sum-of-terms.
-
-
35. The method of claim 28 wherein said querying step (C) includes accessing said first database using a network.
-
36. The method of claim 28 wherein
said determining step (A) comprises determining a hierarchical structure of each database in a plurality of database, wherein said plurality of databases includes said first database; -
said specification is written in a language based on a hierarchical structure of one or more databases in said plurality of databases; and
said querying step (C) further comprises accessing all or a portion of the databases in said plurality of databases.
-
-
37. The method of claim 1 wherein
said determining step (A) comprises determining a hierarchical structure of each database in a plurality of database wherein said plurality of databases includes said first database; -
said language is based on a hierarchical structure of all or a portion of the databases in said plurality of database;
said querying step (C) comprises querying all or said portion of said plurality of databases including said first database; and
said set of tuples includes tuples derived from said all or said portion of said plurality of databases.
-
-
38. The method of claim 37 wherein said specification organizes said plurality of panes into a plurality of layers and each layer in said plurality of layers is assigned to a tuple from a different database in said plurality of databases.
-
39. The method of claim 37 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each column in said plurality of columns is assigned to a tuple from a different database in said plurality of databases.
-
40. The method of claim 37 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each row in said plurality of rows is assigned to a tuple from a different database in said plurality of databases.
-
41. The method of claim 37 wherein said specification organizes said plurality of panes into a plurality of pages and each page in said plurality of pages is assigned to a tuple from a different database in said plurality of databases.
-
42. The method of claim 1 wherein
said hierarchical structure includes a plurality of schema fields; -
said constructing a visual table step (B) further comprises assigning a schema field in said plurality of schema fields to a pane in said plurality of panes based on said specification; and
said subset of said tuples associated with said pane in said associating step (D) is determined by a selection function.
-
-
43. The method of claim 42 wherein said selection function uses an identity of said schema field to form said subset of tuples.
-
44. The method of claim 42 wherein said selection function uses a relational operator to form said subset of tuples.
-
45. The method of claim 44 wherein said relational operator is a selection operator or a grouping operator.
-
46. The method of claim 42 wherein said selection function uses a relational operator to create a new tuple from said subset of tuples that is associated with said pane.
-
47. The method of claim 46 wherein said relational operator is a sorting operator, an aggregation operator, or a transforming operator.
-
48. The method of claim 1, the method comprising repeating said constructing step (B), said querying step (C), and said associating step (D) using a specification that is determined by said subset of tuples associated with said pane.
-
49. The method of claim 1, the method comprising repeating said constructing step (B), said querying step (C), and said associating step (D) using a specification that is determined by one or more tuples in said subset of tuples associated with said pane that are selected by a user.
-
50. The method of claim 1 wherein said visual table comprises a plurality of axes and each axes is represented by a shelf.
-
51. The method of claim 1 wherein
said first database comprises a schema, said language comprises a plurality of fields in said schema, said visual table comprises a plurality of axes and each axis in said plurality of axes is represented by a shelf, said specification comprises one or more algebraic expressions, and wherein said providing said specification comprises dragging a field in said plurality of fields onto a shelve that represents an axis of said visual table thereby constructing an algebraic expression in said specification. -
52. The method of claim 1, the method further comprising displaying said hierarchical structure of said first database.
-
53. The method of claim 1, the method further comprising storing said specification.
-
54. The method of claim 53 wherein said stored specification is made available as a bookmark.
-
55. The method of claim 53 wherein said stored specification facilitates an undo or redo operation.
-
56. The method of claim 1 wherein said hierarchical structure of said first database is derived from a database schema for said first database and wherein said database schema includes a schema field.
-
57. The method of claim 56 wherein said schema field is a base type or an array type.
-
58. The method of claim 56 wherein said base type is a character string, an integer, a short integer, a double integer, a single precision floating point number, a double precision floating point number, and an object handle.
-
59. The method of claim 56 wherein said array type is an array of integers, an array of long integers, an array of short integers, an array of single precision floating point numbers, an array of double precision floating point numbers, an array of object handles.
-
60. The method of claim 1 wherein said visual table is displayed in a web page.
-
61. The method of claim 1 wherein said first database is a flat file, a relational database, or an on-line analytical processing database.
-
62. The method of claim 1 wherein said first database is a hierarchical on-line analytical processing data cube.
-
63. The method of claim 1 wherein said first database does not have an explicitly defined hierarchy and wherein said determining step (A) comprises analyzing data fields in said first database to determine said hierarchical structure.
-
64. The method of claim 1 wherein said first database has a star schema and said determining step (A) comprises analyzing said star schema to determine said hierarchical structure.
-
65. The method of claim 1 wherein said first database is hosted by remote computer.
-
66. The method of claim 1 wherein an attribute file is associated with said first database.
-
2. The method of claim 1 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
-
9. The method of 8 wherein said plurality of pages is hierarchically organized.
-
67. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
-
a first database;
a database hierarchy module comprising instructions for determining a hierarchical structure of said first database;
a user interface module comprising instructions for constructing a visual table, said visual table comprised of a plurality of panes, by obtaining a specification that is in a language based on the hierarchical structure of the first database;
a data interpreter module comprising instructions for querying the first database to retrieve a set of tuples in accordance with said specification;
a visual interpreter module comprising instructions for associating a subset of said set of tuples with a pane in said one or more panes; and
instructions for encoding a tuple in said subset of tuples in said pane as a graphical mark. - View Dependent Claims (68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131)
-
68. The computer program product of claim 67 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
69. The computer program product of claim 67 wherein said data interpreter module further comprises:
-
instructions for deriving a new tuple from said set of tuples; and
instructions for incorporating said new tuple into said set of tuples.
-
-
70. The computer program product of claim 67 wherein said instructions for constructing a visual table comprise instructions for using said specification to organize said plurality of panes into a plurality of rows and a plurality of columns.
-
71. The computer program product of claim 70 wherein said plurality of rows and said plurality of columns are hierarchically organized.
-
72. The computer program product of claim 67 wherein said instructions for constructing said visual table comprise instructions for using said specification to organize said plurality of panes into a plurality of layers.
-
73. The computer program product of claim 72 wherein said plurality of layers is hierarchically organized.
-
74. The computer program product of claim 67 wherein said instructions for constructing said visual table comprise instructions for using said specification to organize said plurality of panes into separate pages.
-
75. The computer program product of claim 74 wherein said pages are hierarchically organized.
-
76. The computer program product of claim 67 wherein said specification comprises an algebraic expression that includes an operand, wherein said algebraic expression represents an operation on said hierarchical structure of said first database.
-
77. The computer program product of claim 76 wherein said operand in said algebraic expression is a type that appears in said hierarchical structure.
-
78. The computer program product of claim 76 wherein said user interpreter module comprises:
-
instructions for evaluating said algebraic expression thereby obtaining an ordered set of tuples; and
instructions for mapping said ordered set of tuples to a row, a column, or a layer in said visual table.
-
-
79. The computer program product of claim 78 wherein said row, said column, or said layer comprises a plurality of panes that is ordered based on an order in said ordered set of tuples.
-
80. The computer program product of claim 76 wherein said algebraic expression includes a relational operator.
-
81. The computer program product of claim 80 wherein said relational operator is a cross product, a union, a selection or a sorting.
-
82. The computer program product of claim 80 wherein a precedence of said relational operator is specified by a nesting operation.
-
83. The computer program product of claim 67, wherein
said specification organizes said plurality of panes into a plurality of rows and a plurality of columns; - and
said specification comprises a first algebraic expression for said plurality of rows and a second algebraic expression for said plurality of columns and wherein at least one of said first algebraic expression and said second algebraic expression represents an operation on said hierarchical structure of said first database.
- and
-
84. The computer program product of claim 83 wherein
said specification further organizes said plurality of panes into a plurality of layers; -
said specification further comprises a third algebraic expression for said plurality of layers; and
said third algebraic expression represents an operation on said hierarchical structure of said first database.
-
-
85. The computer program product of claim 67 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of a second database; - and wherein
said specification comprises an element of the hierarchical structure of said first database and an element of the hierarchical structure of said second database, and wherein said first element includes an operand encoded as a type tuple that is derived from said first database and said second element includes an operand encoded as a type tuple that is derived from said second database.
- and wherein
-
86. The computer program product of claim 67 wherein a tuple in said subset of tuples comprises a field and wherein said visual interpreter module further comprises instructions for mapping said field to a graphical attribute.
-
87. The computer program product of claim 86 wherein said graphical attribute is a color, a value, a size, a shape, a phrase, or a symbol.
-
88. The computer program product of claim 67 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as quantitative or ordinal and wherein the visual interpreter module further comprises:
-
instructions for mapping said field to a first graphical attribute when said field is classified as quantitative; and
instructions for mapping said field to a second graphical attribute when said field is classified as ordinal.
-
-
89. The computer program product of claim 88 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
90. The computer program product of claim 88 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as independent or dependent and wherein said visual interpreter module further comprises:
-
instructions for mapping said field to a first graphical attribute when said field is classified as independent; and
instructions for mapping said field to a second graphical attribute when said field is classified as dependent.
-
-
91. The computer program product of claim 90 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
92. The computer program product of claim 91, the visual interpreter module further comprising:
-
instructions for forming a group with all or a portion of the tuples in said set of tuples; and
instructions for forming a graphic based on said group.
-
-
93. The computer program product of claim 92 wherein said graphic is a line that connects each tuple in said group or said graphic is an area that encloses each tuple in said group.
-
94. The computer program product of claim 67 wherein said data interpreter module further comprises instructions for creating a query based upon said specification.
-
95. The computer program product of claim 94, wherein said data interpreter module further comprises instructions for mapping said query to a relational algebra operator.
-
96. The computer program product of claim 95 wherein said relational algebra operator is a structured query language (SQL) query.
-
97. The computer program product of claim 95 wherein said relational algebra operator is a datacube query.
-
98. The computer program product of claim 97 wherein said datacube query is an MDX query.
-
99. The computer program product of claim 94 wherein said data interpreter module further comprises instructions for processing said specification thereby reducing a number of queries that are performed by said instructions for querying.
-
100. The computer program product of claim 99 wherein said instructions for processing comprise:
-
instructions for crossing an expression in said specification;
instructions for converting an expression in said specification to a sum-of-terms; and
instructions for forming a query from a term in said sum-of-terms.
-
-
101. The computer program product of claim 94 wherein said data interpreter module includes instructions for accessing said first database using a network.
-
102. The computer program product of claim 67 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of each database in a plurality of database, wherein said plurality of databases includes said first database; -
said specification is written in a language based on a hierarchical structure of one or more databases in said plurality of databases; and
said data interpreter module further comprises instructions for accessing all or a portion of the databases in said plurality of databases.
-
-
103. The computer program product of claim 67 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of each database in a plurality of database wherein said plurality of databases includes said first database; -
said language is based on a hierarchical structure of all or a portion of the databases in said plurality of database;
said data interpreter module further comprises instructions for querying all or said portion of said plurality of databases including said first database; and
said set of tuples includes tuples derived from said all or said portion of said plurality of databases.
-
-
104. The computer program product of claim 103 wherein said specification organizes said plurality of panes into a plurality of layers and each layer in said plurality of layers is assigned to a tuple from a different database in said plurality of databases.
-
105. The computer program product of claim 103 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each column in said plurality of columns is assigned to a tuple from a different database in said plurality of databases.
-
106. The computer program product of claim 103 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each row in said plurality of rows is assigned to a tuple from a different database in said plurality of databases.
-
107. The computer program product of claim 103 wherein said specification organizes said plurality of panes into a plurality of pages and each page in said plurality of pages is assigned to a tuple from a different database in said plurality of databases.
-
108. The computer program product of claim 67 wherein
said hierarchical structure includes a plurality of schema fields; -
said user interface module further comprises instructions for assigning a schema field in said plurality of schema fields to a pane in said plurality of panes based on said specification; and
said visual interpreter module further comprises instructions for using a selection function to determine said subset of said tuples that are associated with said pane.
-
-
109. The computer program product of claim 108 wherein said selection function uses an identity of said schema field to form said subset of tuples.
-
110. The computer program product of claim 108 wherein said selection function uses a relational operator to form said subset of tuples.
-
111. The computer program product of claim 110 wherein said relational operator is a selection operator or a grouping operator.
-
112. The computer program product of claim 108 wherein said selection function uses a relational operator to create a new tuple from said subset of tuples that is associated with said pane.
-
113. The computer program product of claim 112 wherein said relational operator is a sorting operator, an aggregation operator, or a transforming operator.
-
114. The computer program product of claim 67, the computer program mechanism further comprising instructions for repeating the instructions of said user interface module, the instructions of said data interpreter module and the instructions of said visual interpreter module using a specification that is determined by said subset of tuples associated with said pane.
-
115. The computer program product of claim 67, the computer program mechanism further comprising instructions for repeating the instructions of said user interface module, the instructions of the data interpreter module, and the instructions of the visual interpreter module using a specification that is determined by one or more tuples in said subset of tuples associated with said pane that are selected by a user.
-
116. The computer program product of claim 67 wherein said visual table comprises a plurality of axes and each axes is represented by a shelf.
-
117. The computer program product of claim 67 wherein
said first database comprises a schema, said language comprises a plurality of fields in said schema, said visual table comprises a plurality of axes and each axis in said plurality of axes is represented by a shelf, said specification comprises one or more algebraic expressions, and wherein said user interface module further comprises: instructions for allowing a user to drag a field in said plurality of fields onto a shelve that represents an axis of said visual table thereby constructing an algebraic expression in said specification.
-
118. The computer program product of claim 67, wherein said computer program mechanism further comprises instructions for displaying said hierarchical structure of said first database.
-
119. The computer program product of claim 67 wherein said computer program mechanism further comprises instructions for storing said specification.
-
120. The computer program product of claim 119 wherein said stored specification is made available as a bookmark.
-
121. The computer program product of claim 119 wherein said stored specification facilitates an undo or redo operation.
-
122. The computer program product of claim 67 wherein said hierarchical structure of said first database is derived from a database schema for said first database and wherein said database schema includes a schema field.
-
123. The computer program product of claim 122 wherein said schema field is a base type or an array type.
-
124. The computer program product of claim 123 wherein said base type is a character string, an integer, a short integer, a double integer, a single precision floating point number, a double precision floating point number, and an object handle.
-
125. The computer program product of claim 123 wherein said array type is an array of integers, an array of long integers, an array of short integers, an array of single precision floating point numbers, an array of double precision floating point numbers, an array of object handles.
-
126. The computer program product of claim 67 wherein said visual table is displayed in a web page.
-
127. The computer program product of claim 67 wherein said first database is a flat file, a relational database, or an on-line analytical processing database.
-
128. The computer program product of claim 67 wherein said first database is a hierarchical on-line analytical processing data cube.
-
129. The computer program product of claim 67 wherein said first database does not have an explicitly defined hierarchy and wherein said database hierarchy module further comprises instructions for analyzing data fields in said first database to determine said hierarchical structure.
-
130. The computer program product of claim 67 wherein said first database has a star schema and said database hierarchy module comprises instructions for analyzing said star schema to determine said hierarchical structure.
-
131. The computer program product of claim 67 wherein said first database is hosted by remote computer.
-
68. The computer program product of claim 67 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
-
132. A computer system for producing graphics, the computer system comprising:
-
a central processing unit;
a memory, coupled to the central processing unit, the memory storing;
a first database;
a database hierarchy module comprising instructions for determining a hierarchical structure of said first database;
a user interface module comprising instructions for constructing a visual table, said visual table comprised of a plurality of panes, by obtaining a specification that is in a language based on the hierarchical structure of the first database;
a data interpreter module comprising instructions for querying the first database to retrieve a set of tuples in accordance with said specification;
a visual interpreter module comprising instructions for associating a subset of said set of tuples with a pane in said plurality of panes; and
instructions for encoding a tuples in said subset of tuples s in said pane as a graphical mark. - View Dependent Claims (133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196)
-
133. The computer system of claim 132 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
134. The computer system of claim 132 wherein said data interpreter module further comprises:
-
instructions for deriving a new tuple from said set of tuples; and
instructions for incorporating said new tuple into said set of tuples.
-
-
135. The computer system of claim 132 wherein said instructions for constructing said table comprises instructions for using said specification to organize said plurality of panes into a plurality of rows and a plurality of columns.
-
136. The computer system of claim 135 wherein said plurality of rows and said plurality of columns are hierarchically organized.
-
137. The computer system of claim 132 wherein said instructions for constructing said table comprises instructions for using said specification to organize said plurality of panes into a plurality of layers.
-
138. The computer system of claim 137 wherein said plurality of layers is hierarchically organized.
-
139. The computer system of claim 132 wherein said instructions for constructing said visual table comprises instructions for using said specification to organize said plurality of panes into separate pages.
-
140. The computer system of claim 139 wherein said pages are hierarchically organized.
-
141. The computer system of claim 132 wherein said specification comprises an algebraic expression that includes an operand, wherein said algebraic expression represents an operation on said hierarchical structure of said first database.
-
142. The computer system of claim 141 wherein said operand in said algebraic expression is a type that appears in said hierarchical structure.
-
143. The computer system of claim 141 wherein said user interpreter module comprises:
-
instructions for evaluating said algebraic expression thereby obtaining an ordered set of tuples; and
instructions for mapping said ordered set of tuples to a row, a column, or a layer in said visual table.
-
-
144. The computer system of claim 143 wherein said row, said column, or said layer comprises a plurality of panes that is ordered based on an order in said ordered set of tuples.
-
145. The computer system of claim 141 wherein said algebraic expression includes a relational operator.
-
146. The computer system of claim 145 wherein said relational operator is a cross product, a union, a selection or a sorting.
-
147. The computer system of claim 145 wherein a precedence of said relational operator is specified by a nesting operation.
-
148. The computer system of claim 132, wherein
said specification organizes said plurality of panes into a plurality of rows and a plurality of columns; - and
said specification comprises a first algebraic expression for said plurality of rows and a second algebraic expression for said plurality of columns and wherein at least one of said first algebraic expression and said second algebraic expression represents an operation on said hierarchical structure of said first database.
- and
-
149. The computer system of claim 148 wherein
said specification further organizes said plurality of panes into a plurality of layers; -
said specification further comprises a third algebraic expression for said plurality of layers; and
said third algebraic expression represents an operation on said hierarchical structure of said first database.
-
-
150. The computer system of claim 132 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of a second database; - and wherein
said specification comprises an element of the hierarchical structure of said first database and an element of the hierarchical structure of said second database, and wherein said first element includes an operand encoded as a type tuple that is derived from said first database and said second element includes an operand encoded as a type tuple that is derived from said second database.
- and wherein
-
151. The computer system of claim 132 wherein a tuple in said subset of tuples comprises a field and wherein said visual interpreter module further comprises instructions for mapping said field to a graphical attribute.
-
152. The computer system of claim 151 wherein said graphical attribute is a color, a value, a size, a shape, a phrase, or a symbol.
-
153. The computer system of claim 132 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as quantitative or ordinal and wherein the visual interpreter module further comprises:
-
instructions for mapping said field to a first graphical attribute when said field is classified as quantitative; and
instructions for mapping said field to a second graphical attribute when said field is classified as ordinal.
-
-
154. The computer system of claim 153 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
155. The computer system of claim 153 wherein a tuple in said subset of tuples comprises a field, wherein said field is classified as independent or dependent and wherein said visual interpreter module further comprises:
-
instructions for mapping said field to a first graphical attribute when said field is classified as independent; and
instructions for mapping said field to a second graphical attribute when said field is classified as dependent.
-
-
156. The computer system of claim 155 wherein said first graphical attribute and said second graphical attribute are each independently a color, a value, a size, a shape, a phrase, or a symbol.
-
157. The computer system of claim 156, the visual interpreter module further comprising:
-
instructions for forming a group with all or a portion of the tuples in said set of tuples; and
instructions for forming a graphic based on said group.
-
-
158. The computer system of claim 157 wherein said graphic is a line that connects each tuple in said group or said graphic is an area that encloses each tuple in said group.
-
159. The computer system of claim 132 wherein said data interpreter module further comprises instructions for creating a query based upon said specification.
-
160. The computer system of claim 159, wherein said data interpreter module further comprises instructions for mapping said query to a relational algebra operator.
-
161. The computer system of claim 160 wherein said relational algebra operator is a structured query language (SQL) query.
-
162. The computer system of claim 160 wherein said relational algebra operator is a datacube query.
-
163. The computer system of claim 162 wherein said datacube query is an MDX query.
-
164. The computer system of claim 159 wherein said data interpreter module further comprises instructions for processing said specification thereby reducing a number of queries that are performed by said instructions for querying.
-
165. The computer system of claim 164 wherein said instructions for processing comprise:
-
instructions for crossing an expression in said specification;
instructions for converting an expression in said specification to a sum-of-terms; and
instructions for forming a query from a term in said sum-of-terms.
-
-
166. The computer system of claim 159 wherein said data interpreter module includes instructions for accessing said first database using a network.
-
167. The computer system of claim 132 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of each database in a plurality of database, wherein said plurality of databases includes said first database; -
said specification is written in a language based on a hierarchical structure of one or more databases in said plurality of databases; and
said data interpreter module further comprises instructions for accessing all or a portion of the databases in said plurality of databases.
-
-
168. The computer system of claim 132 wherein
said database hierarchy module further comprises instructions for determining a hierarchical structure of each database in a plurality of database wherein said plurality of databases includes said first database; -
said language is based on a hierarchical structure of all or a portion of the databases in said plurality of database;
said data interpreter module further comprises instructions for querying all or said portion of said plurality of databases including said first database; and
said set of tuples includes tuples derived from said all or said portion of said plurality of databases.
-
-
169. The computer system of claim 168 wherein said specification organizes said plurality of panes into a plurality of layers and each layer in said plurality of layers is assigned to a tuple from a different database in said plurality of databases.
-
170. The computer system of claim 168 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each column in said plurality of columns is assigned to a tuple from a different database in said plurality of databases.
-
171. The computer system of claim 168 wherein said specification organizes said plurality of panes into a plurality of columns and a plurality of rows and each row in said plurality of rows is assigned to a tuple from a different database in said plurality of databases.
-
172. The computer system of claim 168 wherein said specification organizes said plurality of panes into a plurality of pages and each page in said plurality of pages is assigned to a tuple from a different database in said plurality of databases.
-
173. The computer system of claim 132 wherein
said hierarchical structure includes a plurality of schema fields; -
said user interface module further comprises instructions for assigning a schema field in said plurality of schema fields to a pane in said plurality of panes based on said specification; and
said visual interpreter module further comprises instructions for using a selection function to determine said subset of tuples that are associated with said pane.
-
-
174. The computer system of claim 173 wherein said selection function uses an identity of said schema field to form said subset of tuples.
-
175. The computer system of claim 173 wherein said selection function uses a relational operator to form said subset of tuples.
-
176. The computer system of claim 175 wherein said relational operator is a selection operator or a grouping operator.
-
177. The computer system of claim 173 wherein said selection function uses a relational operator to create a new tuple from said subset of tuples that is associated with said pane.
-
178. The computer system of claim 177 wherein said relational operator is a sorting operator, an aggregation operator, or a transforming operator.
-
179. The computer system of claim 132, the memory further comprising instructions for repeating the instructions of said user interface module, the instructions of said data interpreter module and the instructions of said visual interpreter module using a specification that is determined by said subset of tuples associated with said pane.
-
180. The computer system of claim 132, the memory further comprising instructions for repeating the instructions of said user interface module, the instructions of the data interpreter module, and the instructions of the visual interpreter module using a specification that is determined by one or more tuples in said subset of tuples associated with said pane that are selected by a user.
-
181. The computer system of claim 132 wherein said visual table comprises a plurality of axes and each axes is represented by a shelf.
-
182. The computer system of claim 132 wherein
said first database comprises a schema, said language comprises a plurality of fields in said schema, said visual table comprises a plurality of axes and each axis in said plurality of axes is represented by a shelf, said specification comprises one or more algebraic expressions, and wherein said user interface module further comprises: instructions for allowing a user to drag a field in said plurality of fields onto a shelve that represents an axis of said visual table thereby constructing an algebraic expression in said specification.
-
183. The computer system of claim 132 wherein said memory further comprises instructions for displaying said hierarchical structure of said first database.
-
184. The computer system of claim 132 wherein said memory further comprises instructions for storing said specification.
-
185. The computer system of claim 184 wherein said stored specification is made available as a bookmark.
-
186. The computer system of claim 184 wherein said stored specification facilitates an undo or redo operation.
-
187. The computer system of claim 132 wherein said hierarchical structure of said first database is derived from a database schema for said first database and wherein said database schema includes a schema field.
-
188. The computer system of claim 187 wherein said schema field is a base type or an array type.
-
189. The computer system of claim 188 wherein said base type is a character string, an integer, a short integer, a double integer, a single precision floating point number, a double precision floating point number, and an object handle.
-
190. The computer system of claim 188 wherein said array type is an array of integers, an array of long integers, an array of short integers, an array of single precision floating point numbers, an array of double precision floating point numbers, an array of object handles.
-
191. The computer system of claim 132 wherein said visual table is displayed in a web page.
-
192. The computer system of claim 132 wherein said first database is a flat file, a relational database, or an on-line analytical processing database.
-
193. The computer system of claim 132 wherein said first database is a hierarchical on-line analytical processing data cube.
-
194. The computer system of claim 132 wherein said first database does not have an explicitly defined hierarchy and wherein said database hierarchy module further comprises instructions for analyzing data fields in said first database to determine said hierarchical structure.
-
195. The computer system of claim 132 wherein said first database has a star schema and said database hierarchy module comprises instructions for analyzing said star schema to determine said hierarchical structure.
-
196. The computer system of claim 132 wherein said first database is hosted by remote computer.
-
133. The computer system of claim 132 wherein a plurality of tuples in said set of tuples is encoded in said graphical mark.
-
Specification
- Resources
Thank you for your request. You will receive a custom alert email when the Litigation Campaign Assessment is available.
×
-
Current AssigneeBoard of Trustees of the Leland Stanford Junior University (Stanford University)
-
Original AssigneeBoard of Trustees of the Leland Stanford Junior University (Stanford University)
-
InventorsStolte, Chris, Tang, Diane L., Hanrahan, Patrick
-
Granted Patent
-
Time in Patent OfficeDays
-
Field of Search
-
US Class Current707/100
-
CPC Class CodesG06F 16/212 with details for data model...G06F 16/221 Column-oriented storage; Ma...G06F 16/2282 Tablespace storage structur...G06F 16/248 Presentation of query resultsG06F 16/252 between a Database Manageme...G06F 16/26 Visual data mining; Browsin...G06F 16/282 Hierarchical databases, e.g...G06F 16/283 Multi-dimensional databases...G06F 2216/03 Data miningG06F 3/0482 Interaction with lists of s...G06F 3/04842 Selection of displayed obje...G06F 3/04847 Interaction techniques to c...G06F 40/177 of tables; using ruled linesG06F 40/18 of spreadsheets form-fillin...Y10S 707/954 RelationalY10S 707/956 HierarchicalY10S 707/959 NetworkY10S 707/99942 Manipulating data structure...Y10S 707/99943 Generating database or data...Y10S 707/99944 Object-oriented database st...Y10S 707/99945 : Object-oriented database st...