Producing a single-image view of a multi-image table using graphical representations of the table data5883635Abstract A method for operating a processor-controlled machine produces a single-image compressed view of a multi-image table by replacing the character image information in each cell of the multi-image table with a graphical representation of the information. Each cell in an original multi-image table is respectively paired with a source data value of a source data item stored in memory. In a multi-image table, the entire table image cannot be accommodated at one time in the display area of a display device because of the size of the cell regions required to represent the character image information; a machine user must scroll or navigate through portions of the table in order to view all of the data. In response to an image display request signal, the data represented directly as character image information in each cell of all portions of the multi-image table is replaced by an indirect, graphical representation of that data that compactly represents the source data values thereof. This compact, tabular graphical view of the data facilitates visual inspection and identification of patterns and trends in the data. Claims What is claimed: Description The present invention is related to an invention that was the subject matter of a commonly assigned U.S. patent application, application Ser. No. 08/123,174, now abandoned, entitled "Method and System for Producing a Table Image Having Focus and Context Areas Showing Direct and Indirect Data Representations", which is hereby incorporated by reference herein. The present application is also related to application Ser. Nos. 08/748,759, now abandoned and 08/749,131, which are also division applications of application Ser. No. 08/611,013.
TABLE 1
______________________________________
Detailed Description Table of Contents
______________________________________
A. Definitions
B. Description of the Method of the Present Invention.
1. Producing a table image including graphical display
objects representing information in an nD data array . . .
a. The components of the table image.
b. The underlying information data structure.
c. The operation of the method for producing the
table image.
2. Defining and displaying focus plus context cell regions
according to the method of the present invention.
a. The layout of table image 80 in FIG. 7.
b. A degree of interest (DOI) function determines the
cell region sizes in table image 80.
c. The operation of the method for producing focal
regions in the table image.
d. The operation of the method for combining focal
regions with graphical data representations in the
table image.
3. Application of the method of the present invention to
large data structures that produce large multiple-
image table images.
4. The user interface.
C. The system environment, system and software product of
the present invention.
1. The system environment.
2. The system and software product.
D. Additional Considerations
1. Application in a 3D environment
______________________________________
A. Definitions The present invention relates to method steps for operating a system including a processor, and to processing electrical or other physical signals to produce other desired physical signals. The detailed descriptions which follow are presented largely in terms of display images and symbolic representations of operations of data within the memory of the system. These descriptions and representations, which are algorithmic in nature, are the techniques used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self consistent sequence of acts leading to a desired result. These acts are those requiring physical manipulations of physical quantities such as electrical or magnetic signals that are capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals by a variety of terms, including bits, values, elements, pixels, symbols, characters, terms, numbers, items, or the like. However, all of these terms and the additional terms defined below are convenient labels applied to appropriate physical quantities. Further, the manipulations performed are often referred to in terms, such as adding, comparing, or determining, which are commonly associated with mental operations performed by a human user. The capability of a human user is neither necessary nor desirable in the operations described herein which form part of the present invention. In some aspects of the present invention, however, the system operations are performed in response to operation request signals produced by a human user. In addition, the algorithmic descriptions presented herein of the acts of the present invention for operating a system are not inherently related to any particular processor, machine, or other apparatus. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices configured as described below and in the claims. The present invention also relates to a system for performing these operations. This system may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. In particular, various general purpose machines may be used with programs in accordance with the teachings herein, or it may prove more convenient to construct more specialized apparatus to perform the required acts of the method. The required structure for a variety of these machines will appear from the description given below. Preliminary to describing the embodiment of the claimed invention illustrated in the accompanying drawings, the terms defined below have the meanings indicated throughout this specification and in the claims. The term "data" refers herein to physical signals that indicate or include information. The term "data" includes data existing in any physical form, and includes data that are transitory or are being stored or transmitted. For example, data could exist as electromagnetic or other transmitted signals or as signals stored in electronic, magnetic, or other form. An "item of data" or a "data item" is a quantity of data that a processor can access or otherwise operate on as a unit. For example, an eight-bit byte is a data item in many data processing systems. Data can be combined into a "data structure". A "data structure" is any combination of interrelated data. A data structure may also include other data structures. An "array of data" or "data array" or "array" is a combination of data items that can be mapped into an array. A "processor-controlled machine", "processor-controlled system" or "processor" is any machine, component or system that can process data, and may include one or more central processing units or other processing components. Any two components of a machine or system are "connected" when there is a combination of circuitry that can transfer data from one of the components to the other. The component from which the data is transferred "provides" the data, and the other component "receives" the data. For example, two processing units are "connected" by any combination of connections between them that permits transfer of data from one of the processing units to the other. A processor "accesses" an item of data in memory by any operation that retrieves or modifies the item, such as by reading or writing a location in memory that includes the item. A processor can be "connected for accessing" an item of data by any combination of connections with local or remote memory or input/output devices that permits the processor to access the item. A processor "uses" data in performing an operation when the result of the operation depends on the value of the data. An "instruction" is an item of data that a processor can use to determine its own operation. A processor "executes" a set of instructions when it uses the instructions to determine its operations. "Memory" is any component, combination of components, circuitry, or system that can store data, and may include local and remote memory and input/output devices. An example of memory is a storage medium access device with a data storage medium that it can access. A "data storage medium" or "storage medium" is a physical medium that can store data. Examples of data storage media include magnetic media such as floppy disks and PCMCIA memory cards, optical media such as CD-ROMs, and semiconductor media such as semiconductor ROMs and RAMs. As used herein, "storage medium" covers one or more distinct units of a medium that together store a body of data. For example, a set of floppy disks storing a single body of data would be a storage medium. A "storage medium access device" is a device with circuitry that can access data on a data storage medium. Examples include floppy disk drives and CD-ROM readers. An item of data "indicates" a thing, an event, or a characteristic when the item has a value that depends on the existence or occurrence of the thing, event, or characteristic or on a measure of the thing, event, or characteristic. When an item of data can indicate one of a number of possible alternatives, the item of data has one of a number of "values". In addition, a first item of data "indicates" a second item of data when the second item of data can be obtained from the first item of data, when the second item of data can be accessible using the first item of data, when the second item of data can be obtained by decoding the first item of data, or when the first item of data can be an identifier of the second item of data. For example, when the data type value of a data type data item can be obtained from a source data item, such as when the source data item has a pointer to the data type data item or otherwise has information related to the location of a second item of data in the memory, then the source data item indicates the data type data item. In the figures herein, such a relationships between the data in memory is illustrated by an arrow from the first item of data to the second item of data, as shown, for example by arrow 818 in FIG. 2. An "image" is a pattern of light. An image may include characters, words, and text as well as other features such as graphics. An "image output device" is a device that can provide output defining an image. A "display" or "display device" is an image output device that provides information in a visible, human viewable form. A display may, for example, include a cathode ray tube; an array of light emitting, reflecting, or absorbing elements; a device or structure that presents marks on paper or another medium; or any other device or structure capable of defining an image in a visible form. To "present an image" on a display is to operate the display so that a viewer can perceive the image. A "display area" is the portion of the display in which an image is presented or the medium which receives an image. The display area may include one or more "workspaces" wherein display features appear to have respective relative positions, and "presenting" a workspace in the display area that includes plural display features produces the human perceptions of the display features in respective positions relative to each other. A window is an example of a workspace. Data "defines" an image when the data includes sufficient information to directly produce the image, such as by presenting the image on a display. Data defining an image will also be referred to herein as an "image definition" or "image definition data". For example, a two-dimensional array is an image definition that can define all or any part of an image, with each item of data in the array providing a value indicating the color of a respective location of the image. Each such image location is typically called a "pixel", and the two-dimensional array of data is typically called "image pixel data" or an "image pixel data structure". While image pixel data is the most common type of image definition data, other image definitions, such as vector list data, are intended to be included within the meaning of data defining an image. The term "display feature" refers to any human perception produced by a display in a processor-controlled machine or system. A "display object" or "object" is a display feature that is perceptible as a coherent unity. A "shape" is a display object that has a distinguishable and perceptible outline; for example, a circular display object is a shape. A shape having a bounded area may be called a "region". An image "includes" a display feature or object if presentation of the image can produce perception of the feature or object. Similarly, a display object "includes" a display feature if presentation of the display object can produce perception of the display feature. For example, display object 30 in FIG. 1 is a rectangular display object having a black-filled interior of a certain height and width (or length) relative to the cell region 26 in which it is included. The rectangularity, the color of the interior space, the width, and the height of display object 30 are all perceptible display features included in the display object. A display feature or display object is not limited to a strictly pictorial representation. An image may include "character display features". When presented in image form in the display area of a display device, "characters" may be referred to as "character display features". "Character" as used herein means a discrete element that appears in a written or printed form of a particular language, and is a symbolic representation of information directly perceivable by a human who understands the particular language. Characters in the English language, for example, include alphabetic and numerical elements, punctuation marks, diacritical marks, mathematical and logical symbols, and other elements used in written or printed English. Character information is also often referred to generally as "text". The "table image" produced by the method of the present invention includes a plurality of row identifier regions, a plurality of column identifier regions, and a plurality of cell regions. The cell regions are arranged in the table image in row and column order such that the width of the cell region in any one column is the same as the width of the column's respective column identifier region; the height of the cell region in any one row is the same as the height of the row's respective row identifier region; the range of x locations of a cell region in the display area is the same as the range of x locations of the cell region's respective column identifier region; and the range of y locations of a cell region in the display area is the same as the range of y locations of the cell region's respective row identifier region in the display area. A common characteristic of processor-controlled systems operated by the method of the present invention is a mapping between items of data within the system and display features included in images presented by the system. A display feature "represents" a body of data when the display feature can be mapped to one or more items of data in the body of data, or, stated in another way, a display feature "represents" the item or items of data to which it can be mapped. For example, in a table image, the character display features that are presented in the image as an entry in a cell region typically "directly represent", and can be mapped to, an item of data in a data structure such as a data array. The character display features in an image "directly represent" an item of data when each character display feature is a one-to-one mapping of an item of data, or a portion of an item of data, having a character data value to which it can be mapped; the character display features are a direct representation of the character data values. Thus, for example, a conventional application program typically produces a table image including character display features in the cell regions that directly represent the alphanumeric information included in the underlying data structure, as shown in FIG. 14. Cell regions 23 shows character display features which are direct mappings from data items in the data array. The method of the present invention produces a "graphical" display object for display in the table image. As used herein, a graphical display object is an "indirect" representation of the information included in the underlying data structure. Generally, but not necessarily, a graphical display object will include display features other than character display features when the underlying data from which the graphical display object is mapped is character information. Examples of graphical display objects include, but are not limited to, circular, rectangular, and triangular shapes with or without interior fill color, lines of various thicknesses, combinations of shapes and lines, features perceivable as images of physical objects, and the like. Thus, a graphical display object is more of a pictorial representation of information than the directly symbolic representation of information that is conveyed by characters. However, as discussed in more detail below, there are instances when the underlying data is effectively indirectly represented by a graphical display object that includes character display features. For example, when a data item is a composite object or a bit map or other complex data structure, a single character display feature may indirectly represent the complex data structure in the cell region of the table image. When used in this sense, character display features are used as graphical elements in an essentially graphical image. Table 3 below and FIG. 3 provide examples of the use of character display features as indirect graphical representations of data items. The mapping of one or more items of data to a display feature or object is performed by an "operation" which is used herein to mean a set of instructions (instruction data items) accessible and executable by the processor in a system, defining the mapping relationship or function between one or more items of data (an input of the operation) and a display feature or object in an image (an output of the operation). An operation "produces" a display feature or object in an image when the operation begins without the data defining the display feature or object in the image and performing the operation results in the data defining the display feature or object in the image. When the operation uses items of data as input to produce data defining a display feature or object in an image, the display feature or object is "produced from" those input data items. One way of categorizing an operation is to distinguish it by the type of data the operation uses as input. The method of the present invention is a "model-based operation". A model-based operation uses "model data" as input and may produce image definition data defining an image as output. A data item other than image definition data, for example, a data item other than an image pixel data item, is an "information model data item" or "information data". A combination of interrelated information data items is referred to herein as an "information model data structure", or a "information data structure". A model-based operation maps one or more information data items in an information data structure to a display feature included in the image produced by the operation. An information data structure is not limited to a combination of data items physically located in a substantially contiguous part of a system's memory, but may include individual model data items diversely located in memory and accessible by the processor when it performs the operation. A model-based operation is distinguishable from an image-based operation that maps one or more image definition data items, such as pixels, to a display feature included in the image produced by the operation. B. Description of the method of the present invention. 1. Producing a table image including graphical display objects representing information in an nD data array. a. The components of the table image. FIG. 1 illustrates an example of a table image 10 produced by the method of the present invention. Table image 10 is displayed in display area 180 of display device 170 (FIG. 20), and includes a number of column identifier regions 18, row identifier regions 22, an optional dimension identifier region 14, shown in dotted lines, and a number of cell regions 26. The wavy lines and breaks in the table indicate that the size of table image 10 is not a fixed size, but is determined by several factors discussed in more detail below. Each of the row and column identifier regions 18 and 22 may contain character label information respectively identifying the contents of the information in the row and columns. Dimension identifier region 14 may contain character label information identifying a common characteristic or property about the information contained in the rows or in the columns, or the table generally. Each cell in the table image is paired with a respective source data item stored in the memory of the system, and, in a conventional table image, the information in a respectively paired data item is presented in the respectively paired cell. Such information typically includes numeric data such as quantities and dates, text data, and various types of alphanumeric encoded data which, when decoded, indicates one of two or more categories of information. Typically, the data appearing in the group of cells in a single row represents related elements of information governed by some relation or concerning a common subject (sometimes called the "invariant" or the "case") identified in the row identifier region, and the data appearing in the group of cells in a single column are instances of the same type of information common to all subjects (sometimes called the "component" or the "variable") and identified in the column identifier region. The use of rows and columns in this manner may of course be reversed depending on the organization of the underlying data. Each of the cell regions in table image 10 produced by the method of the present invention contains, in place of the character information typically presented in a conventional table image, a graphical display object, illustrated examples of which include, but are not limited to, black-filled bar 30, small rectangular black-filled object 32, color-filled bar 36, color-filled square 40, and black- or white-filled square 42. At least one of the display features of each graphical display object appearing in a cell represents a "cell presentation type" that has been determined by a data type associated with, or indicated by, the character, or nongraphical, data of the respectively paired source data item. Generally, although not necessarily, all of the source data items in a single column have the same data type, and thus all of the graphical display objects in the column will be of the same presentation type. In addition, another display feature of each graphical display object appearing in a cell may graphically represent the source data value of the respectively paired source data item, so that a single graphical display object will represent both the data type and data value of the underlying respectively paired source data item. With continued reference to FIG. 1, the presentation types shown by the graphical display object examples illustrated therein are summarized in Table 2 below:
TABLE 2
______________________________________
FIG. 1 Columns 1-5: Cell Presentation Types
Col. Data Type/Value
Presentation Type
______________________________________
1 Quantity Data;
black-filled bar; bar length in cell determined
numeric quantity
by quantity data value;
value
2 Category Data;
black-filled rectangular object; size of object
alphanumeric
determined by number of categories; cell
category value
position of object determined by category data
value;
3 Quantity and
color-filled bar; bar length in cell determined
Category Data
by quantity data value; fill color determined by
category value and number of categories;
4 Category Data
color-filled square object (color swatch); fill
color and cell position determined by category
data value; object size determined by number
of categories;
5 Category Data
black- or white-filled square object; fill color
(Boolean) determined by category data value
______________________________________
The examplary presentation types listed in Table 2 are not intended in any way to be limiting. Numerous variations of these presentation types and many other presentation types are possible. For example, the variable display features, or parameters, of a graphical display object produced from a cell presentation type include object length or width; object color variation, such as variations in hue, saturation, lightness or density; object position in the cell area; the area of the object; the slope of the object; and the angle of the object. In general, the design of a cell presentation type uses principles of graphic design to select the graphical features most suited for the particular data type and range of data values, and that take advantage of human cognitive skills for most effectively decoding graphical information. Table 3 below provides additional examples of cell presentation types for more complex data types and data values. Upon inspecting the examples in Table 3, it can be seen that many of the complex data structures contain combinations of quantity and category components.
TABLE 3
______________________________________
Other Cell Presentation Type Examples
Data Type/Value
Cell Presentation Type Examples
______________________________________
Date data (e.g., in form
For practical year range (e.g., 10 year period),
of mm/yy) color-filled square object (color swatch); fill
(Category data)
color determined by year (category) data value;
cell position determined by month (category)
data value;
A set of data items, or
1. character display feature (numeral)
objects; contains
represents data type and number of items in set;
individual set members
cell position of character display feature
each having a quantity
determined by whether a certain set member
value; number of items
exists in each set (Boolean catgegory value);
in set is numeric quantity
2. black- or white-filled square object; fill color
that can be determined;
determined by whether a certain set member
exists in each set (Boolean category value);
Composite Document
Any one or more components of the composite
data type; contains data
document information may be graphically
about author, title, date
represented. For example:
of publication,
1. color-filled bar; bar length in cell determined
document type (e.g.,
by length of title (computed quantity data
spreadsheet, word
value); fill color determined by author
processing, illustrator
(category value);
etc.) full text; multi-
2. black-filled bar; bar length in cell determined
media components, etc.
by length of document (computed quantity data
value); OR numeric character display features,
where number is computed length of document;
3. black-filled bar; bar length in cell determined
by number of occurences of a keyword in
document;
4. color-filled square object (color swatch);
fill color and cell position determined by
document type (category data value); object
size in cell determined by total number of
categories;
______________________________________
In the illustrated embodiment, each graphical display object that is produced from a mapped cell presentation type has at least two distinguishing display features: one display feature represents the data type of the source data item (discussed in more detail below), and another display feature represents the data value of the data item. In other implementations, each graphical display object produced from a selected presentation type has at least one distinguishing display feature representing the data type of the source data item. b. The underlying information data structure. FIG. 2 schematically illustrates the data structures used to produce table image 10 of FIG. 1 in the illustrated embodiment. The model data is organized in an n-dimensional ("nD") data array of at least two dimensions, shown by way of example in FIG. 2 as 2D data array 810. As noted above with respect to the organization of cell regions 26 in table image 10, and as is conventionally understood with respect to data capable of being represented in tabular form, the data organized in individual instances of one dimension, such as in row 812, represents related information about an instance of the invariant. Data appearing in individual instances of a second dimension, such as in column 814, represents the same component type of information about each instance of invariant. Each individual data item in nD data array 810 will be referred to herein as a "source data item". In general, any model data having these characteristics and suitable for organizing in an n-dimensional (nD) data array may take advantage of the method of the present invention. In addition, any of a number of conventional array indexing programming techniques may be used by the system processor to access and obtain individual source data items in nD data array 810 for further processing, such as for display in a cell region 26 in table image 10. For purposes of display and presentation of the information in nD data array 810 in table image 10, each source data item is matched to a respective cell region 26 in table image 10 also using a conventional array indexing programming technique, and the source data item accessed and obtained via an indexing technique for a respective cell region 26 in table image 10 is referred to hereafter as a "respectively paired" source data item. Data array 810 indicates, as shown via arrow 818, a data structure 820 of data type data items, each of which has a value that describes the data type of one or more source data items, such that each source data item indicates a respectively paired data type data item. The data type describes how to interpret the value of the data (called the "source data value") in the source data item. The source data values of the data in data array 810 will typically directly include character information or include one or more signals (e.g., bits) that are able to be decoded into character information. However, data array 810 may also include, as individual source data values, complex computer objects such as a simple or composite document object, a set, or a bit map. For example, data array 810 may define a collection of composite documents suitable for organizing in interrelated rows and columns, or a collection of bit maps representing pictures suitable for organizing in interrelated rows and columns. Data type information will vary according to the particular data in nD data array 810, and examples of data types are included in Table 2 above (e.g., "quantity" and "category"). Category data is typically implemented as an encoding scheme where a character, numeric, or bit value in the source data item indicates one of several possible data values a data item may take on. For example, in a nD array of baseball statistics about baseball players, a source data item may contain a value indicating one of nine field positions the player currently plays. This source data item would therefore have a data type equal to "category", with the nine possible values following a decoding scheme whereby each value indicates a field position. Other data types may include descriptions, for example, of "text", "(calendar) date", and "composite object" source data items. Typically, since data organized in an instance of a second dimension of nD data array 810, for example, in one column, represents the same component type of information about each instance of an invariant, data type data structure 820 will contain one data type per data component, or column, as illustrated by arrow 824 and the similar unmarked arrows in FIG. 2. As will be seen from the discussion below in part B.3, table images produced from data in the nD data array organized so as to have one data type per column according to the method of the present invention produce very effective graphical overviews of the underlying data. However, the method of the present invention may also be useful for, and is therefore intended to encompass, the use of an input nD data array where each component (column) of data does not have a single data type and where each individual source data item indicates its own data type. With continued reference to FIG. 2, cell presentation type data structure 830 contains presentation type information for each defined presentation type sufficient to produce a graphical display object for display in a cell region 26 including the first and second display features determined respectively by the data type and source data value for a respectively paired source data item. In FIG. 2, pictorial elements of various graphical display objects representing presentation types and organized in a linear one-dimensional array are merely symbolic of cell presentation type data structure 830. In the illustrated embodiment, cell presentation type data structure 830 is actually a set of software routines, or pointers to software routines, entry to which is controlled by a one-to-one mapping of a data type to a presentation type routine, illustrated by arrow 850 in FIG. 2. Those of skill in the programming arts will appreciate that a variety of other conventional programming techniques may be used to implement cell presentation type data structure 830. Finally, data accessed by the system may also include row and column identifier data structure 840. This data structure contains the optional heading or label information that appears in row identifier regions 22 and column identifier regions 18 of table image 10. In many applications that display conventional table images, such as spreadsheet and relational data base applications, label information is routinely provided because of its critical nature in conveying valuable information about the invariant and component data in the table. As will be explained in more detail below, in the illustrated embodiment, the ability to control the display and suppression of visible label information, especially in the environment of large table images, is a feature of the method of the present invention that further enhances the effective communication of the information in table image 10. Table 3 presents examples of cell presentation types for source data items having more complex data structures, such as sets and composite data objects. FIG. 3 schematically illustrates the mapping from data array 860 of source data items 816 and 817 which are sets of data items, and have a data type of "set". Set 816 has n members, while set 817 has m members. Cell presentation type data structure 830 contains the cell presentation type for a "set" data type. Cell regions 26 in table image 10 show graphical display objects 44 and 46 as being character display features representing the number of members in each set. Thus, the entire complex source data item 816 of a set of member data items is indirectly and graphically represented in a cell region 26 of table image 10 as graphical display object 44. The data structures of the present invention as described above and schematically shown in FIG. 2 illustrate the minimum connections and correspondences required between the data items. Various commonly used data structures may be suited for this purpose. For example, a relational data base may supply the source data items from which table image 10 is constructed. Relational databases provide support for automatically maintaining multiple data relations and generating static snapshots of the data in table format. Typically, a relational data base has one or more base tables associated with it consisting of a row of column identifiers (headings or labels) together with rows of data values. Data type information is also generally available or may be easily derived. The method of the present invention provides a relational database application with tools for dynamically visualizing and manipulating the data presented. Similarly, the data structure provided in a conventional spreadsheet program may supply the source data items from which table image 10 is constructed. Typically, a spreadsheet data structure includes row and column identifier information, data type information, and table image layout information as well as the source data values for the cell contents. Source data items in a typical spreadsheet may include equations, and a cell presentation type for such cells may either graphically represent the source data value computed from the equation, or the equation itself. c. The operation of the method for producing the table image. FIG. 4 illustrates the general steps of method 200 of the present invention for producing table image 10 of FIG. 1. In box 240, the overall table image layout is determined and image definition data defining the table border or outline, the grid lines for the row and column identifier regions and for the cell regions, and the contents (labels) of the row and column identifier regions is produced. For each cell region included in the table image, the source data items in nD data array 810 are accessed, in box 280, and the data type and source data value of each source data item is obtained. Then, in box 300, the image definition data defining the graphical display objects to be presented in the included cell regions are produced using the cell presentation type for the data type and data value of each respective source data item. The image definition data defining table image 10 and the graphical display objects is then provided to the output circuitry of the system, in box 340 for presentation in display area 180 of the system's display device. FIG. 5 is a flowchart illustrating an expanded set of steps, in method 202, for presenting table image 10 in such a manner that it presents a cell region and graphical representation for every source data item in nD data array 810 in a single image, in response to an input signal indicating an image display request to display table image 10. Method 200 of FIG. 4 may be effectively used to display a portion of an entire table with indirect, graphical representations for the data in the included cell regions. However, an even more powerful use for the method of the present invention is to take advantage of the display space compression offered by an indirect graphical representation of the source data items in nD data array 810 by computing the table layout of table image 10 so as to accommodate all of the cell regions necessary to display the complete table, as shown in box 250. Boxes 280, 310, 314 and 316 then show the processing loop for accessing all source data items for every cell to be displayed and for producing the image definition data defining the graphical display object to be presented in the each cell region using the cell presentation type for the data type and data value of each respectively paired source data item. It will be clear to those of skill in the programming art that, when nD data array 810 is organized so that all of the source data items in each column 814 (FIG. 2) have the same data type, the efficiency and performance of the processing loop beginning with box 280 in FIG. 5 can be significantly improved by traversing nD data array 810 by row within column. FIG. 6 illustrates still another aspect of the method of the present invention that is useful when integrating the present method into an existing spreadsheet or relational data base application or the like where conventional table images, showing directly represented data, are displayed. In method 204, a conventional first table image is displayed in box 220. A system user uses an input device to produce signals indicating an image display request to display table image 10. In method 204, table image 10 includes cell regions for indirectly representing every source data item in the underlying nD data array 810 of the application. In response to the image display request by the system user, image definition data is produced, in box 320, defining a second table image having graphical display objects in the cell regions as indirect representations of the respectively paired source data items in the underlying data structure such that all cell regions are displayable in one image. Method 204 provides the system user of a conventional spreadsheet or relational data base program with the ability to compress an entire table that may require several table images to view by conventional scrolling or paging techniques into a single table image and to view the data in graphical form. The graphical view provides the ability to see patterns and trends in the data more easily and viewing the entire table in one image permits easier location of information of interest to the system user. 2. Defining and displaying focus plus context cell regions according to the method of the present invention. Conventional table image processing applications, especially spreadsheet applications, typically provide roughly uniform amounts of display space for individual cells in the rows and columns. The amount of space for each cell is constrained by factors such as the space needed to adequately represent the data value of a respectively paired source data item and the total space available in the display area or workspace. The table layout, including the size of the cell regions, is often predefined and may not be easily varied by a system user. Roughly uniform cell regions provide few visual clues for quickly locating a particular cell region in the table image. In the case of a large table that occupies most of the display area, the area of each cell region may be necessarily computed to be small, and a system user may find the data representation in one or more cell regions of particular interest difficult to locate, access, read or understand. Still another aspect of the present invention, then, provides for user control of the sizing of the cell regions of a table image to reflect the system user's level of interest in one or more cell regions. This aspect of the method of the present invention will be referred to herein as the "focus plus context" table image feature. Cell regions that the system user is currently using, by either reading or updating, become larger, and other cells, not currently being used and of current lesser interest, become smaller in response to a user signal invoking the focus plus context feature, without the overall size of the table image necessarily changing. a. The layout of table image 80 in FIG. 7. Table image 80 in FIG. 7 illustrates how the cell regions of a table image may be altered according to the focus plus context feature of the method of the present invention. As used herein, the size of table image 80 prior to the operation of the focus plus context feature of the method of the present invention on table image 80 will be referred to as its "natural" size, and is not necessarily shown in FIG. 7. The natural size of the table image may be predetermined by the application program or may be under the control of the system-user. The natural size of table image 80 is relevant to the operation of the focus plus context feature of the method only to the extent that it provides a natural size for each cell region in which the respectively paired data from the underlying data array may be directly represented in a meaningful form. In contrast to the natural size of table image 80, which is its input size to the method of the present invention, the "output" size of table image 80, shown in FIG. 7 is a predetermined size used by the processing steps of the method to compute the proper allocation among the different types of cell regions. The output size of table image 80 may be its natural size, the current window size, a system determined size, a user-determined size, or the size of the entire display area. In the illustrated embodiment, the output size of the table is governed by a current window size, shown as the size of display area 180. Four types of cell regions are created, each of which has been marked by darker boundaries in FIG. 7 for ease of recognition only. Area 84 is the "focal region", having at least one cell region, called a "focal cell region" included therein; the size of each of the six focal cell regions in illustrated focal region 84 is computed using a number of factors, described in more detail below, including the natural size of each focal cell region and and the number of cell regions to be included in the focal region. Region 87 is called a "context cell region" or "context region"; a context region is a cell region that is in a row and column that is not the same row or column of a cell region in the focal region. A context cell region has the smallest cell size of the four types of cell regions created by the focus plus context method. Region 85 is a "row-focal region", having a cell width dimension along the x axis equal to the cell width of a context region located in the same column, and having a cell height dimension along the y axis equal to the cell height dimension of the focal cell region located in the same row. Region 86 is a "column-focal region", having a cell height dimension along the y axis equal to the cell height of a context region located in the same row, and having a cell width dimension along the x axis equal to the cell width dimension of the focal cell region located in the same column. b. A degree of interest (DOI) function determines the cell region sizes in table image 80. Cell regions selected to be in focal region 84 are cell regions that have a higher "level of interest" than other cell regions. For example, a system user may select a focal region of cells because those cells have data represented therein that are of a higher level of interest to the system user than the other cell regions in the table image at a particular time. The level of interest in cell regions is represented in each dimension by a "degree of interest" ("DOI") function that indicates the interest level of each cell region in that dimension. The DOI function can be implemented in any manner suitable for taking as an argument a cell number in a given dimension and returning the interest level of that cell. A simple implementation of the DOI function is an array that is as long as the number of cells in that dimension. In its initial state, each entry has an initial value of zero, indicating that each cell has the same interest level, and therefore the amount of space, in table image 80 in that dimension. When a focal region is selected, then the array representing the DOI function for each dimension is changed to reflect the interest level for that cell. For example, the cells that are selected as part of the focal region are updated to have a value of one (1). There is a DOI function for each dimension of an n-dimensional table, and each function is independent of all of the others. FIG. 8 schematically represents degree of interest function 90 for one dimension (the row dimension) of table image 92. DOI function 90 is aligned with the x axis of graph 95. Table image 92 has twelve rows, represented by region array 91, also aligned with DOI function 90 the x axis of graph 95. Pulse 93 of DOI function 90 indicates the level of interest for a focal cell region in the row dimension of table image 92, and spans three rows. Graph 95 represents a "transfer function" for allocating the proper size for each row focal cell region, and for determining the size of the remaining cell regions in the row. The results of the allocation can be seen in the single column 96, and table image 92 shows the results of the propagation of the allocated cell region sizes in column 96 across all columns. Using a degree of interest function to represent a level of interest in a cell region in one dimension permits introducing multiple levels of interest in each dimension. FIG. 9 shows three-level DOI function 97 having interest levels 98 and 99 to be applied to the same 12-row table image represented by region array 91. For any level DOI functions, the "level" corresponds to the number of different-sized "interest" cell regions that will be produced, plus one for the context, or non-focal, region. Thus, in the case of DOI function 90 in FIG. 8, there are a total of two cell sizes in one dimension: focal and context. In three-level DOI function 97, there will be three cell sizes in the dimension to which the DOI function applies: the largest focal cells representing the highest level of interest, intermediate-sized focal cells for the second level of interest, and the smallest context or non-focal, cells for the third level of interest. Use of a degree of interest function also allows for convenient manipulation of focal cells once produced in a table image. Three forms of manipulation are supported in the illustrated embodiment, and they are schematically illustrated in FIGS. 10A, 10B and 10C. In FIG. 10A, DOI function 94 is a square pulsed, single level DOI function similar to DOI function 90 in FIG. 8. A "zoom" focal region manipulation, represented by chart 500, changes the amount of space allocated to the focal region without changing the number of cell contained in the focal region, thus increasing the width and height of the focal region. An "adjust" focal region manipulation, represented by chart 502 in FIG. 10B, changes the amount of contents viewed within the focal region without changing the size, or amount of space allocated to, the focal region, thus "pulling" more cells into the focal region. A "slide" focal region manipulation, represented by chart 504 in FIG. 10C, changes the position of the focal region within the table image while keeping the size, or amount of space allocated to, the focal region the same, thus giving the perception of "sliding" the focal region around the table image in the manner analogous to an optical magnifying lens. In addition, a coordinated adjust-zoom operator has also been implemented. It provides for increasing or decreasing the number of cells in the focal region without affecting their individual size, meaning that the total focal region expands or contracts sufficiently to fit a new number of focal cell regions each having the same size as before the operator was invoked. c. The operation of the method for producing focal cells in the table image. FIG. 11 is a flowchart illustrating the general steps of the focus plus context method 520 of the present invention. The implementation illustrated in FIG. 11 assumes that a first table image is displayed in the display area, and that an input signal interacts with the first table image for selecting at least one cell region to become the focal region. However, the focus plus context method of the present invention may operate independent of a prior-displayed table image. In addition to having information about the available display space for the output table image, the identification of a single cell region that is to become the focal region is sufficient input for operation of the method, and this may be accomplished without actual display of a first table image. Moreover, the computations performed with respect to laying out the output table produced by the method of the present invention may be independent of a table layout for a currently displayed table, especially when a predetermined "natural" focal cell region size and output table size are assumed by the method. A signal is received from a signal source in box 522 indicating a request to display a second table image having a focal region selected by indicating at least one cell region of a first table image displayed in the display area. In response to the image display request, the DOI function data for each dimension is updated, in box 526, to show the at least one selected cell region as having a first level of interest. Then, the four cell region sizes for the new table layout of the second table image are determined using the updated degree of interest function and natural cell size data for each dimension of the table, in box 530. In box 534, the image definition data defining the new table layout including the selected focal region is produced for the second table image. Box 538 includes traversing the underlying nD data array and rendering the source data values in the focal cell regions of the second table image. In box 542, the image definition data defining the second table image is provided to the output circuitry of the system for display. Which additional source data values are rendered is an implementational choice. Depending on the nature of the underlying data, non-focal cells may now be too small to adequately hold source data values rendered as character display features, and so they may be omitted on the assumption that the selection of the focal region indicated the only cells of interest. Or the character display features of the source data values may be revised in order to fit into the respective destination cell region size. Or as noted below in part B.2.d, focus plus context method 520 may be combined with any of the graphical representation methods 200, 202, or 204 in such a way as to render each source data value as a graphical representation in the non-focal cell regions. Table 4 provides pseudo-code for the illustrated embodiment describing the component steps of box 530 for determining the cell sizes in one dimension according to the DOI function and the "natural" measurement of the cell in the given dimension. Essentially, the process described in table 4 allocates the cells proportionally across the dimension. First, how many cells at the focal level of interest is determined, and each of those cells is allocated its natural size. Then the total space required by the focal cell regions is subtracted from the total amount of space in the given dimension. The space remaining in the dimension is divided equally among the rest of the cells in that dimension.
TABLE 4
______________________________________
Pseudo Code For Laying Out A Dimension
______________________________________
doi-seqr:
a DOI-seqr that describes the warping on a given
axis.
sizes (N):
a vector of N cells, where N is the number of cells in
the given dimension. The values contained are the "natural"
measurement of the cell in the given dimension (i.e. width for
horizontal and height for vertical)
array (N):
a vector of the position along the given axis that the
cell should be positioned at.
BODY: integrate the DOI function
determine how to allocate are based on available space and
user options
assign a location to first cell
for each cell in order
examine the "natural" space requirement of the cell
examine the level of interest in the cell
determine how much space to give to the cell
assign a location to the next cell at least this much space
further on
______________________________________
Table 5 below provides pseudo code for drawing the new table layout,as represented in box 534.
TABLE 5
______________________________________
Pseudo Code For Draw-Table Procedure
______________________________________
x-positions: a vector of length N + 1
widths: a vector of length N
y-positions: a vector of length M + 1
heights: a vector of length M
x-positions = layout-dimension (x-doi-seqr, widths(n))
y-positions = layout-dimension (y-doi-seqr, heights(m))
iterate x in x-positions
draw-horizontal-line(x)
iterate y in y-positions
draw-vertical-line(y)
iterate j from 1 to N
iterate i from 1 to M
draw.sub.-- cell (i, j, widths›i!, widths›j!
______________________________________
Table 6 provides pseudo code implementing a DOI function.
TABLE 6
______________________________________
Specific Implementation: 2-Level DOI
______________________________________
*The specific doi-seqr can keep track of location and size of
each foci, and do straightfoward integration, etc.
DOI-Seqr:
number.sub.-- of.sub.-- pixels.sub.-- available: number
number.sub.-- of.sub.-- cells: number
foci: list of (start, stop)
Layout Procedure:
determine the total space requirement of all focus cells
subtract this from total space available
divide this leftover by the number of context cells and
truncate
iterate through cells in order:
give focus cell its requested space
give context space the calculated amount for context cells
______________________________________
Although not shown in table image 80 of FIG. 7 because of limitations in rendering drawings showing grey level values, visual differentiation between the focal, context, and the row- and column-focal regions may be further enhanced in the display area by using different grey level values as background color in the appropriate cell regions on display devices that support this feature. For example, focal regions can be shown with a white background, context areas may have a medium to dark grey background, and the row- and column-focal regions may have a light to medium grey background. Alternatively, different saturation, chroma or lightness variations of a single hue color, or of harmonious hue colors may also be used as background in the appropriate cell regions to provide such visual differentiation, although the use of color should be selected carefully if the focus plus context method is combined with the graphical representation method, as described in part B.2.d below. d. The operation of the method for combining focal cells with graphical data representations in the table image. The advantages of producing table image 10 of FIG. 1 presenting graphical representations of the source data items in nD data array 810 may be further enhanced by integrating method 520 of FIG. 11 with any of methods 200, 202, and 204 of FIGS. 4, 5, and 6, respectively. In combination, the resulting method, shown in the flowchart of FIG. 12, provides a novel table image presentation technique having a wide variety of applications and contexts. Since the steps shown in FIG. 12 have been discussed in detail earlier with respect to each individual method, they will not be discussed in further detail here. Those of skill in the art will appreciate that, when both focus plus context and graphical representation features are combined, processing performance efficiencies can be obtained by caching a table image that is entirely in context form showing only graphical representations. For processes such as changing focal regions and where only the display of a single column is affected, such as some of those available through the user interface described below in part B.4, a cached table image in context form significantly reduces the amount of computation and graphic formatting necessary to repaint the table image in the display area. Such user controlled processes include hiding and revealing columns, and changing cell presentation type parameters. The application of the method of the present invention combining the focus plus context technique with the use of graphical representations of data is particularly useful for large table images representing large nD data array structures, as is described in more detail in part B.3 below. The application of the combined method may also be useful for complex data structures, such as data structure 860 illustrated in FIG. 3, regardless of the size of the data structure, when the direct symbolic representation of the underlying data occupies more space than a single display area. It has already been noted that the graphical representation of complex data structures provides a space-efficient utilization of the display area. The system user's ability to control the presentation of focal regions where the complex underlying data can be directly represented only as needed, according to the user's interest level, further enhances the utility of the present invention. 3. The application of the method of the present invention to large data structures that produce large multiple-image table images. The method of the present invention is particularly suited for producing table images representing large bodies of data. In conventional table-processing applications such as spreadsheet applications, the data in a very large data array cannot be completely represented in one image, and various techniques are provided to the system user to gain access to data in portions of the spreadsheet or table image that are not currently visible in the display area. Techniques such as scrolling through a table image to bring new cells into the display area or paging through multiple images require excessive amounts of time, and may result in the loss of column and row identifiers that provide navigational clues for efficiently locating a desired item of data. In a simple computation it can be shown that, in a spreadsheet having individual cells of 100 pixels by 15 pixels, a maximum of 660 cells can be displayed on a 19-inch display. Graph 50 in FIG. 13 shows the advance in the size of a table image as more cells become context cells and use an indirect graphical method for representing the underlying source data. The y axis 52 shows the 660 cells computed for a typical 19-inch display. Grey strip 54 shows the displayable regions of typical spreadsheet where all cells are focal, containing a direct representation of the underlying data. Line 56 shows the progressive advancement in the number of displayable cells as more cells are converted from focal to non-focal. It can be seen from graph 50 that the method of the present invention can show about 68,400 cells in a single table image, or over two orders of magnitude more cells than in a conventional spreadsheet table image. FIGS. 14 and 15 show table images 60 and 70, respectively, produced by the method of the present invention. Each table contains 323 rows by 23 columns, for a total of 7429 cells. This is 11 times, or an order of magnitude, more than the estimated maximum of 660 cells for a conventional table, as shown in graph 50 of FIG. 13. The data used and presented in table images 60 and 70 are performance and classification baseball statistics for all major league baseball players from 1986 and 1987. FIG. 14 shows table image 60 in display area 180 with several features of the user interface of the illustrated embodiment. Table Image 60 shows several focal regions such as focal region 62. To assist in understanding the data presented in focal region 62, column identifier "Avg." and row identifiers 23 showing player names have entries, while column identifiers and row identifiers are omitted in non-focal and semi-focal regions. Two cell regions 26 and 27 are marked in FIG. 14 as examples of the direct symbolic representation of data in the cell region 27 of the focal region and the indirect, graphical representation of data in the cell region 26 of the context area. Table image 60 also shows column 64 as a sorted column, sorted in descending order by "career average". Table image 70 in FIG. 15 illustrates some of the exploratory data analysis techniques that may be accomplished using the method of the present invention. The quantitative performance of the baseball players is explored by sorting column 74 ("Hits") and then col. 72 ("Position"). This shows the distribution of hits within each field position. By understanding and decoding the graphical representation used for each of the field positions in column 72, the relationship between field position and hits is immediately apparent. In addition, other relationships in the data between field position and other components (variables) also emerge, as can be seen by the aggregation of high numbers of "put outs" and "assists" in columns 78 and 79, respectively. Thus, upon visual inspection of table images 60 and 70 in FIGS. 14 and 15, the human perceptual and cognitive abilities of a system user permit, or may even require, the aggregation of individual graphical display objects in individual cells into global patterns and shapes, typically but not necessarily by columns. If cell presentation types have been carefully designed and selected for the data types of the underlying data, the patterns and shapes will "emerge" from the display of the individual graphical display objects as the system user manipulates the arrangement of the rows or columns according to the facilities provided by the features of the user interface. This provides the system user with the ability to detect, understand, and appreciate information about the underlying data that in fact is likely not to be directly contained in the data. Note, however, that the graphical patterns that emerge from the aggregation of individual graphical display objects in no way affect the basic definitions of display feature and display object as referring to any human perception produced by the display. The individual graphical display object in each cell may not be directly perceptible by the system user because of the limits of human perceptual ability to perceive small details, but each display feature of each graphical object is physically represented by signals in the image, and thus the graphical display object and its associated display features are still "included" in the image. 4. The user interface. The illustrated embodiment of the method of the present invention has been implemented with a multi-functional user interface to enable the system user to manipulate components of table image 10 so as to reveal patterns in the data and to control the selection and location of focal regions within the table image. The combined user interface features enable the system user to perform exploratory data analysis in a highly interactive and natural manner. The user interface features also permit fluidly adjustment of the single coherent view of the table between the symbolic, or direct, and graphical, or indirect, data representations, which is an especially important advantage with respect to large table applications. In the illustrated embodiment, interaction is based on a small number of keyboard commands and a pointer gesture scheme. Two mouse buttons are used respectively for touching functions and grasping functions. Pointer gestures are performed using the touch button, and objects are dragged using the grasp button. Focal manipulation is supported using control points on the cells and pointer gestures. Table 7 below summarizes the major features of the user interface. The flowchart in FIG. 16 presents the general processing steps for accomplishing five of the supported operations on table columns (or table rows if the rows contain the components, members, or variables of the data.) The processing steps shown in FIG. 16 will not be discussed in further detail here.
TABLE 7
______________________________________
Summary of User Interface Features in the Illustrated Embodiment
Image Display Requests
Function
By User System Response
______________________________________
Focal: Add
Grasp a cell in the context;
Displays New Focal region;
system responds with
re-displays Table Image
permitting drag of control
point; user drags control
point for adjust-sooming
new focal region;
Focal touch any region in the
Changes location of focal
change context area (slides current
region in Table Image; re-
(slide) focus to new location)
displays Table Image
touch any region in the
context area (slides current
focal region to new
location)
Zoom Grasp the control point at
Recomputes cell size from a
Focal the upper-left corner cell
new DOI function to zoom all
Region of the table image
displayed cells; re-displays
Table Image
Adjust Grasp the control point on a
Changes the number of cells
Focal selected focal region
viewed within selected focal
Region region without changing focal
region size; re-displays Table
Image
Column Hold down mouse button
Resizes, hides, or makes
Hide/Re-
and drag mouse to left
visible selected column and
Size within a selected column
re-displays Table Image
reduce size or hide column;
to right to enlarge or reveal
hidden column
Column User grasps column
Reorders Column to requested
Reorder identifier region and moves
new position and re-displays
it to new table position
Table Image
Column User initiates by entering
Adds Column with specified
Add cell contents specification
contents in requested new
data in display area, and
position and re-displays Table
touching requested column
Image
position
Column User holds down mouse
Sorts the selected column
Sort button and drag mouse
using requested sorting order
upwardly within a selected
and re-displays Table Image
column for ascending order
sort; downwardly for
descending order sort
Change User initiates by double
Changes cell presentation type
Column clicking on a column;
for requested column using re-
Display System presents Dialog
quested parameter and re-
Parameter
Box showing parameter
displays Table Image
options; user selects
parameters in box;
see e.g, FIG. 17
Spotlight
User initiates by double
Searches data array for
Data clicking on a column;
requested data values; changes
System presents Dialog
presentation type, and re-
Box; see e.g., FIG. 18
displays Table Image.
Spotlight
Keyboard command to
Performs focal routines for
to Focal
display spotlighted data in
defining a new focal region
region focal region. and re-displays Table Image.
______________________________________
Two additional focal manipulation techniques are also provided. One, requested using keyboard commands, allows for hiding or removing all focal spans in each dimension. Another is a function combining the zoom feature with the adjust feature in a coordinated manner. This coordinated adjust-zoom function was found to be a useful and very efficient operator thorugh actual use of the illustrated implementation of the present invention. It provides for increasing or decreasing the number of cells in the focal region without affecting their size, meaning that the total focal region expands or contracts sufficiently to fit a new number of focal cell regions each having the same size as before the operator was invoked. The function labeled "Change Column Display Parameter" in Table 7 provides the system user with the ability to alter certain display features, or parameters, of the cell presentation type. For example, for quantity data types where the cell presentation type uses a black bar having a length representative of the source data value, the system user may choose how the bar is to be scaled to fit the available space in the cell region, including whether the left edge is set at zero or the minimum value of the source data values of the respectively paired source data items. For category data types, the user may, for example, control the number of colors used for the categories and how the colors are used to map from category values. The example popup dialogue box 460 in FIG. 17 is produced in the illustrated embodiment for the baseball statistics table images 60 (FIG. 14) and 70 (FIG. 15) when the user initiates the change parameter function. The term "spotlight" in table 7 is used to identify a highlighting function permitting the system user to provide data value criteria or a computation specification that may be used to search the underlying data array for source data items having data values matching the data value criteria or computation specification. The matching source data items are then presented in respective cell regions using a new cell presentation type that is similar to but sufficiently different from the cell presentation type used for the remaining data of the same data type so as to provide a visual distinction between highlighted and nonhighlighted data in the table image. Thus, the system user may search for quantity values that match some numerical specification provided, and, in response, the graphical representation of the source data values of the matching source data items will include a display feature that is changed from the graphical representation of the source data values of the non-matching source data items having the same data type. For example, if quantity data in a particular column of the table image is displayed using a black bar, quantity data matching quantities over one hundred (100) may be displayed with a red bar. As a further example, special individual values such as medians or quartiles in the data values may be "spotlighted" according to the system user's data value criteria or a computation specification. The example popup dialogue box 470 in FIG. 18 is produced in the illustrated embodiment for the baseball statistics table images 60 (FIG. 14) and 70 (FIG. 15) when the user initiates the change parameter function. C. The system environment, system and software product of the present invention. 1. The system environment. The method of the present invention operates a variety of processor-controlled systems, each of which has the common components, characteristics, and configuration of system 100 illustrated in FIG. 19. System 100 includes input circuitry 152 for receiving input "request" signals from one or more signal sources 154 indicating image display requests. An image display request may include a request for an operation and information identifying the requested operation, wherein the signal or signals indicate one or more actions by a system user intended to cause performance of the operation. An operation is performed by the system "in response" to a request when the signals received are for indicating a valid request for a valid operation and for causing the operation to be performed. Signals indicating a single complete request may include a combination of any number of actions indicated by the user necessary for indicating a valid request for | ||||||
