A MACHINE FOR GENERATING GRAPHIC CHARTS

Abstract: In the machine generation of graphic charts (185), the machine/operator interface (12) is constructed to enable the operator to create new charts or recall previously created charts from storage (24A) Because of an easily-used and widely-applied selector mechanism (26, 54, 56, 58), it is not necessary to use a keyboard (20), except for the manual entry of textual information employed on the charts and numeric data that are not otherwise available for machine entry. The selector mechanism of the machine/operator interface (50) cooperates with a chart update loop (64) and employs a set of selection menus (52, 82, 86, 90, 98, 102) that are displayed, and from which the operator can choose a desired mode of operation (82) for composing the graphs, charts and their objects, for selection (200, 204, 242, 272) among a variety of chart objects (170, 171, 172, 176, 179, 180) and for selection (202, 246, 250, 270) of various descriptors of the charts and chart objects. These selection menus are presented to the operator in sequential and interdependent relationships (320, 322, 324) to enable an unskilled operator to create and modify (86) charts with considerable facility.

Description: A MACHINE FOR GENERATING GRAPHIC CHARTS Background of the Invention This invention relates to a machine system for the generation of graphic charts and particularly to such a machine system that is adapted for ease of operation. The use of computer graphics for the automatic fabrication of business charts has been developing; see, for example, U. S. Patent No. 4,181,955 and the references cited therein for illustrations of microcomputer display terminals employed in the generation of various kinds of graphic charts. Such systems have had limitations in their potential use by requiring the operator to use a keyboard to direct the chart generation process. In addition, the operator may have to learn a set of standardized questions and answers or a certain computer language and syntax in order to operate the system effectively: The human/machine interface at computer display terminals has made use of various selector techniques, such as a light pen, joystick or tablet form of position digitizer, which points to and selects displayed informa¬ tion by producing a cursor symbol on the display. Examples of such devices are described in U. S. Patents Nos. 4,069,511; 3,927,948 and 3,879,722. Summary of the Invention It is among the objects of this invention to pro¬ vide a new and improved machine system for generating graphic charts. Another object is to provide an improved graphic chart generating machine which has a machine/operator BVΕ ■ ■■ . v -rτf OMPI interface that facilitates use by an unskilled operator. Another object is to provide a graphic chart generating machine which is particularly adapted for ease of use by unskilled operators, and which enables the operator to create new charts or recall old ones from storage and to select many types of chart manipulations, chart objects and their descriptors in orderly relation in order to compose a variety of charts. Another object is to provide a new and improved chart generating machine which enables an unskilled operator to create new charts and to modify existing charts, to convert from one chart format type to another, and to select among a variety of colors with ease of use by the operator. In accordance with one form of this invention, a graphic chart generating machine includes means for supplying to a display device pluralities of sets of signals for displaying generated charts and for displaying a plurality of selection menus used for controlling the generating of charts by an operator. The menu selection sets enable the operator to choose among different modes of operation, to compose and modify the graphic charts, to choose among the chart objects themselves, and to choose among descriptors of the charts and objects. These selec¬ tion menu signal sets are supplied in certain sequential and hierarchical interdependent relationships determined by the mode of operation in process and the results of the selection process itself. An operator-controlled means selects items from each of the display menus, and it in¬ cludes means fordetecting the selected men items. Amemory portion stores signal sets representative of the specifica¬ tion of the chart to be constructed in accordance with se¬ lected menu items, and a mechanism sets the memory specifi¬ cation of the chart in accordance with the selected menu items. The chart and menu signal supplying means includes means for directing the generation of the charts in accordance with the stored specification signals, and for changing the displayed menu in accordance with the selected menu item and in accordance with said menu relationships. Thereby, an operator might, by menu selection, direct the creation or recall of a large variety of charts and their modifica¬ tion. The menu selection process can generally control the complete generation of the chart, and the keyboard input can be limited in its use to the entry of detailed textual content information and numeric data. The selection menus enable selection among the modes of creating different types of charts and of recalling from storage a previously created chart; each followed- by a menu for the mode of modifying the displayed chart after its creation or recall. Modify-mode menus include modes of adding chart features, changing the color of f atures, and converting from one type to another chart type, as well as many other types of modifications. Brief Description of the Drawings The foregoing and other objects of the invention, the various features thereof, as well as the invention it¬ self may be more fully understood from the following descrip¬ tion when read together with the accompanying drawings in which: US81/00989 4 Fig. 1 is a schematic block diagram of a graphic chart generating apparatus embodying this invention; Fig. 2 is a schematic block and flow diagram of the microprocessor control display and store of the chart generating apparatus of Fig. 1; Figs. 3A and B are schematic block and flow diagrams of successive portions of the control of Fig. 2 for the chart creation mode of the machine; Fig. 4 is the display image of a selection menu for use in the diagram of Fig. 3; Fig. 5 is a schematic diagram of another display selection menu illustrative of the chart style menu of Fig. 3A; Fig. 6 is a schematic diagram of a portion of a chart plot-book of the chart types used as an adjunct or in place of the menu displays of Figs. 4 and 5; Fig. 7 is a schematic flow diagram showing the various segments of system operation from initial turn-on of the machine via the CREATE and RECALL modes to the initiation of the MODIFY mode; Fig. 8 is a schematic flow diagram of another segment of the system operation showing the ADD functionex¬ tending from the MODIFY menu of Fig. 7; Fig. 9 is a schematic flow diagram of the CONVERT function extending from the MODIFY menu of Fig. 7; Fig. 10 is a schematic flow diagram of the system operation for the COLOR function extending from the MODIFY men of Fig. 7; Fig. 11 is a schematic block diagram of the data structure used for the chart specification storageportion 66; Fig. 12 is a sample color chart created by the machine of this invention, and illustrative of the use of the data structure of Fig. 11; Fig. 13 is a schematic flow diagram for the REJECT and CANCEL functions of the machine; Fig. 14 is a schematic block and flow diagram of the control mechanism for the CONVERT function; Fig. 15 is a schematic block and flow diagram of the control mechanism for the automatic color scheme arid Color Consultant; Fig. 16 is a schematic diagram illustrating the color conflicts among chart objects resolved by the control mechanism for Color Consultant; and Fig. 17 is a schematic diagram illustrating the visual distinguishability between different colors, which is used in the Color Consultant control mechanism. Detailed Description of an Embodiment of the Invention In the drawing, corresponding parts are referenced throughout by similar numerals. In the system diagram of Fig. 1, a plurality of individual chart-display stations 10, 12, 14 and 16 are illustrated in broken line boxes. In station 10, the color display apparatus includes a keyboard 20, a microprocessor control 22 and a digital store or memory 24. Also, an operator-actuated selector control in the form of a pointer selector which may be a position digitizer 26 is provided for establishing a pointer cursor on the display 18; statable forms of such a selection (position digitizer) are a tablet, light pen, trackball and joystick, which an operator can use to- select from a finite set of displayed menu items. Other selector controls may be used, such as a voice recognition system, which with a reasonable size of recognized vocabulary canbe used as the selector. A signal bus ' 28 is connected to suitable output devices for producing hard copy of the image on the display 18. One such device is a film recorder 30 which produces color prints or transparencies 32. Another is a color printer 34 which produces color print copy 36. Other suitable devices for various output media are well known in the art. At station 12, there is a similar display and control, which may or may not have hard copy output devices as desired for the individual system. In addition, connect¬ ed by a bus 38, there is a color display 40 at station 14, which operates as a slave to the color display 18 at station 12. The display screen 40 has an associated set of push¬ button switches 42 which are respectivelymonitored by a pro¬ grammed microprocessor 43 to identify different ones of a specific set of graphic charts maintained in store 24 of station 12, and which can be transmitted by bus 38 for display on screen 40. Thus, each pushbutton 42 actuates the microprocessor 43 to call up a designated chart for display. A similar slave display * 40 (with its associated microprocessor) at station 16 is connected by way of a communication network 44 to one or more of the stations 10 and 12 to select from stores 24, by means of the selector pushbuttons 42, a desired one of the graphic charts there retained. Others of selector pushbuttons 42 in stations 14 or 16 may select items from a display of numbered menu items which are displayed on display screen 40; this is ■ ** " particularly useful where there are more charts available than buttons to select them. This communications network 44 may be by telephone wire or wireless or fiber optic communication line as appropriate for the circumstances . In operation, station 10 is controlled by the microprocessor control 22 to interface with the operator through the selector or position digitizer 26 and the key¬ board 20 in order to generate charts for display on the screen 18. The charts- ay be thos that have been previous¬ ly created and maintained in the store 24, so that the user may simply identify that chart by means of the keyboard 20 to. RECALL it for display. Also, as explained hereinafter in detail, the position digitizer 26 and keyboard 20 may be used to CREATE from the beginning such display charts and to MODIFY them after RECALL or CREATE. In addition, station 10 may use either of its hard-copy output devices 30, 34 for making a color reproduction of the displayed chart. Also, the operator may direct the machine to SAVE (store) a created chart for future RECALL. In a similar fashion, the station-12 apparatus may be used to CREATE, RECALL, SAVE and MODIFY such color charts. Station 12, since it does not have the hard-copy output apparatus 30, 34 can request such copy, via network 44, from station 10 by transmitting the complete set of layout steps thereto. Slave 14 may RECALL and display charts retained in the store-- 24 of master station 12. The slave station 16 (and the other stations 10 and 12) may RECALL and display any of the charts held in the stores 24 of other stations by accessing them through the communications network 44. In Fig. 2, relationships of control mechanisms of the microprocessor control 22 are diagrammed. The controls provide an operator-interface loop 50 for menu selection. This loop consists of a selection menu 52 dis¬ played on the screen of the display device 18 and the se¬ lector pointer 26 which supplies a set of coordinate and selection signals to menu selection detector and identifier 54. The latter also receives the menu signals, and oper¬ ates to identify the selected menu items corresponding to the coordinate signals received from the selector pointer 26. The identified menu item is used by a processor retriever 56 to obtain from mass storage 24A the appropriate proc¬ essors -1, -2, ... -n for menu and chart update which form loop controller 58. The loop controller 58 directs the ganged switches 60 and 62 to either of the two positions shown; in position -A, the controller 58 operates for menu updating. In addition, the controller 58 supplies to the portion of working storage 24B containing the chart specification data structure, via path 59, the information corre¬ sponding to the selected menu item. The chart-update loop 64 is repeatedly actuated in this fashion and consists of the working storage register 66, the process retriever 56 and the controller 58. In addition, the controller 58, at appropriate times in the operating cycle, moves ganged switches 60 and 62 to position -B to connect a chart lay¬ out reader 68 into the chart-update loop 64 and deactuating the loop 50. The reader 68 receives from working storage 70 suitable layout descriptors in a generic chart specifica¬ tion file, and supplies them to retriever 56, which passes them on to the controller 58; retriever 56 as well initiates the transfer to the controller 58 of the appropriate processor portions from mass storage 24A. The generic chart file 70 is loaded from mass storage 24A, as explained below, at an appropriate time in the loop control cycle. In addition, the generation of charts on the screen of the display device 18, such as that indicated in the display area 72, is controlled ultimately by the operator's selection of the chart style and other chart information that he wants to see displayed. For ease of operator selection, the operator/machine interface consists of a menu selection loop 50 that offers to the operator various selection menus 52 at successive stages of the chart generation process. Each time the operator is pre¬ sented with a displayed menu, he can select a particular item by a simple selection operation from the available menu options (e.g., by using pointer selector device 26) and that selected item is identified by detector 54. I e er " after, the retriever 56 obtains from mass storage 24A the update and loop-control processors -1, -2, ... -n of controller 58 to continue the selection and chart specification process. With the loop switches 60 and 62 in position -A, successive menus 52 are displayed, and the operator repeats the selec¬ tion process each time. Upon each selection, the chart specification working storage 66is updated to contain the chart specifications corresponding to the selected menu items. At an appropriate time in this selection process, a set of generic chart specifications are extracted from mass storage 24A, under direction of controller 58, and supplied to the associated working storage 70. In addition, the loop controller 58 actuates the loop switches 60 and 62 to posi¬ tion -B, and the chart layout reader 68 transfer the generic layout steps from working storage 70 to the retriever 56 to select the appropriate controller processors 58 from mass storage 24A and continue the operation. The latter can then complete the next stage of developing the chart specification data structure in working storage 66 in ac¬ cordance with the layout descriptors from storage 70. At an appropriate early stage of the process, the controller 58 supplies (for displaying the specified chart 78 in the image area 72 of the display device 18) the appropriate chart specification signals then established in working storage 66. The chart display painter 126 supplies the chart generating signals to display 18, where¬ upon the image of the chart specified at that point in the creation cycle is displayed on the screen of the display device 18 in the image area 72. Thereupon, the operator can go forward further with the chart creating process by selecting various func¬ tions of chart modification. In addition, at appropriate stages in the selection and generation process, a prompt message is displayed in display area 74, which requests the operator to supply appropriate chart information. The latter information may consist of the numerical data values to be graphically represented in the chart and various textual information, such as chart titles and axis identifiers and legends. The prompts 76 for such messages are set up in the generic chart specification file 70 at appropriate points. Thus, the system elements of Fig. 1 are controlled and coordinated by the 3-step cyclical mechanism shown in Fig. 2 consisting of the menu-selection detector and identifier 54, the processor retriever 56 and a library of processors 58. (In the drawing, information transfers are represented by unbroken lines and control transfers by broken lines). The mechanism's operation consists of execution of these 3 steps repeatedly for a hierarchical sequence of menus; the mechanism first displays a selec¬ tion menu 52 and detects the operator selection from the pointer selector 26. For each detection, the retriever 56 extracts processor modules 58 from said storage unit 24A and initiates the execution. Each retrieval of processors is also governed by the current specific descrip¬ tion 66of the chart being processed, which is contained in said working storage 24B of said storage unit. Execution of the various processors produces changes to the data structure 66 description of the chart, a new displayed menu 52, changes to the displayed chart 72, nad changes to the machine's control loops 50 and 64, where¬ upon the mechanism recycles again as just described herein. The repeated cycling of this mechanism in this manner employs the processors -1, -2 ... -n retrieved sequentially from mass storage 24A. With that accomplished, the execution of chart disposition and modification commands occurs in a partitioned sequence thatis capable of implementa¬ tion in a small microprocessor unit. When the system is turned on, the start-up processor (VFIRST) 80 (see Fig. 7 generally and Appendix I for details of the processors) sets up a menu 82 on the screen of the display device 18. Menu 82 offers to the operator the highest-level machine operating modes of CREATE, RECALL, LOGOFF, and ACQUIRE-DATA. If the RECALL _OMH mode is selected, the RECALL processor 84 is placed into operation, which calls up from storage 24A a chart as speci¬ fied by suitable descriptors by the operator, and which is painted on the chart display screen area 72. The storage RECALL may be in response to a series of menus and prompts for the file name, the chart storage date, the chart type, and any other suitable identifiers. After the chart is recalled, processor 84 sets up the MODIFY menu 86 in the menu display area 52, and the machine moves into the MODIFY mode of operation. If the operator selects the CREATE mode by using the pointer selector 26, the processor 88 (VCREATE-I) is called into operation via path 85, and that stores the selected mode and sets up in the menu display area 52 the menu 90 for tye type-of-chart. The menu may take the form of a list of different chart types, for example, the vertical bar, horizontal bar, pie, line, line and bar, XY plot, organization, etc. By selecting one of those types offered by menu 90, the user initiates a set of internal control operations for establishing the specifications of the selected type. As shown in Fig. 4, the menu may take the form of sequence of displays 91, 92, 93, 94 and 95 for the indicated variety of chart types that may be selected by the user. Upon selection of one of the chart types, the chart-type-ID processor 96 (VCREATE-2) comes into opera¬ tion, and it stores the selected type and sets up the next menu 98 for data set capacity. This menu may be in the form of a sequence of numbers, e.g., 1 to 4 for the user to identify the number of data sets to be displayed on the chart. Upon selecting that item from menu 98, the data-set ** - capacity-ID processor 100 (VCREATE-3) comes into operation ^-g j -_ and it stores the selected capacity and, in turn, sets up a menu 102 for chart styles. This menu may take the form show in Fig. 5, which illustrates in chart styles 101, 103, 105, 107 and 109 the variety of styles that would be available (by machine-stored chart layouts) for the operator to select. These chart styles of Fig. 5 are the ones that would be consistent with certain choices of chart type and data set capacity, namely, where the first two selections have been those of a vertical-bar-chart type having two data sets. A preferred selection process is that of the displayed selection menus, where the miniature versions of the charts are set up in menu fashion. Alternatively, a plot book may be used in which chart samples are organized hierarchically similar to the arrangement of the filed items in a file drawer, as shown in Fig. 6, which illustrates three of many pages that would make up such a plot book. These pages correspond to menus partitioned initially by type of charts and within each type by the number of data sets, and for each such number of data sets the variety of available styles. Such a plot book has been employed with this inven¬ tion to assist the operator in the selection-menu process. It should be understood that application of the present invention to other generic chart types is obvious and within the scope of the claims. Such additional chart types include, but are not limited to, XY plots in which data values are expressed and displayed as pairs of coordinate values, organization charts and other forms of block diagrams, maps, and artistic charts which include pictorial, cartooned or freeform objects of arbitrary shape. TUSEA" It shall also be understood that additionaltypes of chart* and chart object modifications may obviously be incorporated into the machine repertoire within the scope of the present invention. Such additional modifications may include, but are not limited to, rotation, perspective trans¬ formations, smoothing and interpolation of chart data, shading, shadowing and texturing. Upon selecting the desired stype of chart from menu 102, the processor 104 (VCREATE-4) comes into operation and it stores the selected chart-style selection. Thereupon, as next explained, the input process may require further steps, the selected chart is generated and displayed, and upon completion the MODIFYmenu 86 is set up for the operator's option. This sequence of operations is also shown in Figs. 3A and B. Upon selection of the CREATE mode from menu 82 (Fig. 7), the transfer of control via path 85 brings the mode storer processor 88 into operation which, in turn, sets up the chart-type menu 90, and establishes in working-storage register 106 the machine's operating mode CBEAIΞ. Thereupon, control transfers to a pause 108 until the menu selection identifier of the chart type is received via path 110, where¬ upon the chart type ID storer 96 operates to establish the information signals therefor in the appropriate part of register 112 of working storage. This completes loop cycle -1 as processor 96, in turn, sets up the data set capacity menu 98, and control is transferred via a pause 114 until the menu selection is made. Thereupon, the data-set-capacity ID storer 100 sets up the appropriate portion of register 112 with the selected information. This completes loop cycle -2 RIGINA-- O ?I as the processor 100 sets up the chart style menu 102 and transfers control via a pause 116 to the chart-style-ID storer 104, which upon receipt of the selection identifier establishes that information in the associated section of working storage 112. Thereupon, control is transferred to the processor 118 for the generic chart retriever which, in turn, takes the chart identifiers in register 112, and establishes a suitable selection address in mass storage 24A which transfers out the associated layout steps of the generic chart specified by those identifiers into working storage register 70. Thus, if the user had specified a vertical bar chart with two data sets and of the style shown in diagram-C of Fig. 5 (that for offset bars), the corresponding layout specifications for that style of chart is transferred out of mass storage 24A and set up in the file registers 70 of the generic chart file as required during processor cycles. Control transfers to the chart layout initiator 120 and it supplies the controls for setting switches 60 and 62 to the position -B, followed by a transfer of control to chart layout reader 68 (Figs. 2 and 3B) . The layout reader (identified as 68A-D) operates in successive cycles shown in Fig. 3B by the same numeral and the addition of successive letters to indicate the repeated cycles. The chart layout reader (as shown in Fig. 2) calls out the successive layout steps from working storage 70, and process retriever 56 sets up the appropriate processor in controller 58. As shown in Fig. 3B, these chart layout processors perform different types of operations. For a cycle-A type, chart layout reader 68A calls out a layout descriptor which is processed by chart layout processor 122 to set up that descriptor in the chart specification registers 66. There¬ after, this process continues until, in a cycle of type-B, the chart layout reader 68B calls out a layout step requiring a prompt, for which the appropriate processor 124 sends out a prompt message that is displayed in the area 74, and upon receipt of the message back by the keyboard (for textual or numerical information) , the processor establishes the in¬ formation as an item-B descriptor in register 66. This process repeats and in a type-C cycle, the chart layout reader 68C transfer control to a processor 126, the display painter, which, in turn, reads out the chart specification data structure from the register 66, and the corresponding chart is set up in display area 72. Thereafter, chart layout reader 68D for the end of the layout operation calls in chart layout terminator 128 which sets up the MODIFY mode menu 86 in the display area 52, and also supplies the controlsignal for setting switches 60 and 62 to position -A, via line 133, with a transfer of control (and data) via line 129 (and line 131) to detector 54. With the switches 60 and 62 set back to position -A, the operator interface loop is restored to full operation, so that the operator can again select from the MODIFY mode menu 86 which has been set up on the screen 18 together with the chart created in display area 72. If the operator is satisfied with the chart created in chart-display area 72, he can select END-MODIFY from the menu 86, whereupon the machine switches to the disposition menu 130 for the END-MODIFY mode (Fig. 7), which operation takes place via the VENMOD processor 132. At that time, the operator, if he wishes to have a copy, can select the COPY function, and a copy is automatically made via the VCOPY processor 134. The latter processor has menu selections (or prompts) to choose from among the available types of copying (e.g., transparencies, opqaue copy, etc.) and the number of copies. If the operator wishes to SAVE the created chart, he selects SAVE from within the disposition menu 130 for future RECALL. The chart specification data structure is then transferred from working storage 66 to mass storage 24A under control of the VSAVE processor 136 which sets up appropriate prompts and/or menus to establish suitable descriptors and/or identifiers for the particular chart (e.g. , file, name type of data, type and style of chart) . The operator may also elect to RESUME or SUSPEND the operation of optional automatic featuresof the machine by selecting RESUME or SUSPEND in the disposition menu 130, which invokes processor VRESUME 138 or VSUSPEND 140. An example of SUSPEND is to omit the feature of automatic scaling of chart axes to fit the data which is supplied. The operator may similarly change the automatic default settings (used in the absence of specific operator instruc¬ tions) of such features (which are established when power is first turned on) by selecting CHANGE-OPTIONS in the disposition menu 130, which invokes processor VCHGOPT 142. The operator may elect to return to the MODIFY menu 86 by selecting MODIFY, which invokes the processor VMDDIFY 144 which, in turn, sets up the desired menu 86. The operator may alternatively elect to terminate his use of the machine by selecting LOGOFF from disposition menu 130, in which case processor VLOGOFF 146 performs machine-usage and other conventional housekeeping operations and shuts down the machine in an orderly fashion. The operator may also select to acquire data for later use on a chart by selecting ACQUIRE-DATA from mode menu 82 (Fig. 7), which causes processorVMFTRUN 148 to be invoked. This processor issues prompts to the operator if necessary and establishes a conventional telecommunica¬ tions connection via a conventional data port of the micro¬ processor unit 22 to a remote computer. It then permits normal dialog in the form of alphanumeric and control characters to be exchanged between the machine operator and the remote computer, accepts conventionally encoded data in a standard format (such as US ASCII) and stores the data in mass storage 24A. User prompts may include requests for identification of the computer to be contacted, the name of the data files to be acquired and the format of those files. It should be understood that the preferred 3-step process shown in Fig. 3A, in which menus 90, 100 and 102 are sequentially displayed and items selected to accomplish - the desired chart-definition phase of the CREATE mode, can be altered to include either a greater or less number of menus. The process can also be altered to allow selection based upon any meaningful criteria other than chart type, data set capacity and chart style. For example, selection can be based upon the general topic or the subject matter of the data in the chart; such as, selection of financial charts versus personnel charts versus unit productioncharts or selection of charts for DIVISION A of a corporation versus those for DIVISION B of a corporation. As another example, a single selection step could be used in which every generic chart is given a unique number which can be selected from a single menu. This invention is readily adaptable to any particular selection approach or criteria. The latter are easily built into the system by simply adding additional menus and processors of similar con¬ struction and function which each further update the chart selection specifications following operator selection. The preferred process described for the chart con¬ struction phase of the CREATE mode (see Fig. 3B) can be altered so that the chart layout reader 68 accepts input from the chart specification data structure 66 instead of the chart layout file 76. In that case, the chart layout processor would be altered correspondingly so that it would search the data structure (instead of the layout file) in any orderly and thorough fashion, and issue prompts whenever an incom¬ plete record was encountered in the data structure. The disadvantage of this alternative approach is that an addi¬ tional mechanism is required for searching the data structure for missing information requiring prompting. Such addi¬ tional mechanism is not required with the preferred approach. In the preferred approach, by supplying input from a chart layout step file 70, the machine input maintains compatibility with human-operator input which the operator supplies in constructing a chart in the MODIFY mode. A mechanism for the processing in the MODIFY mode is already employed in the system; and that mechanism is oriented to the operator interface of menu selection and prompt-response. The transformation mechanism 68, 56, 58 permits , the operation of the machine with both kinds of chart specification, that of operator input (stored in registers 70) and machine data structure (stored in register 66. An additional advantage of the preferred approach is that the chart layout specification in registers 70 is more compressed and • more efficient for inter- erminal cc_am__nication via network 44. Chart Data Structure. The nature of the data structure in the chart specification memory 66 is shown in Fig. 11. Record blocks represent the linked data records corresponding to each type of object in a chart. Examples are frame record 150, field 151, frame title 152, data set -* 153, grid 154, data value ' 155; there are sane twenty different types of chart objects shown in Fig. 11. Records for other types of chart objects which might be used can be added in the same manner to the data structure. Specifically, the master record 156 includes the overall parameters of the chart not stored in other records, temporary working parameters of the chart and its type and style, and pointers to the frame record 150 of the chart and any general label record-157 drawn relative to that frame. The frame record includes the coordinates, color and drawing status parameters of the frame and pointers to a subordinate field 151, and title 152 (if any) . The frame title record 152 includes the color, font characteristics, Location, text, content and drawing status parameters of the title. The field record 151 includes the coordinates, color and draw¬ ing status parameters of the field and pointers to any next field, subordinate fill area 158, title 159 and dependent axis 160 (if any) . A fill area record 158 includes the color of the fill area and pointers to any next fill area 161 SUB STITUTE _ Ξ _rτ and to any axis 162 and/or data sets 163 which define the boundary of the fill area itself. A record for a dependent axis 160 or independent axis 162 includes the color, location and other drawing status parameters of the axis and pointers to any grid 154, title(s) 190, 191, tick marks 149, scale 192, label(s) 193 of the axis, any data set whichis defined relative to that axis, and any next axis within the same field. A data set record 153 includes the color, location and the many drawing status parameters of a data set object (such as a set ' of bars or lines or a pie) , as well as pointers to any legend 164, data values 194-198, dat ' labels 165, next data set 163 * , and relatively located (i.e., stacked or floating) data set 166. A legend record 164 includes the color, location, text content, and drawing status parameters of the legend. A data value record 155 includes the actual value of a data item in a data set 166. A data label record 165 includes the color, location drawing status parameters and text content of the labels. Fig. 12 illustrates a typical specific chart which happens to include one set of red bars 170, one set of black bars 171 stacked upon the red bars 170; one set of blue bars 172 offset from the red bars 170 and one green line 173. The background area 174 below the green line and above the horizontal axis (haxis) is filled with green. Various types of labels 175, 176 and titles 177, 178, 179, 180 typical of such a chart are also included. The chart also includes grids 181, 182 and tick marks 183, and is drawn with a white field 184 set within a yellow frame 185, BAD O and containing legends 186-189 for the four coloreddata sets. The blocks of Fig. 11 that diagram the tree-like format-free data structure for the particular chart of Fig. 12 are as follows: The frame record 150 defines the rectangular frame to be yellow with opposite corners being located at coordinates x * - ** 120, y - 000 and x = 510, = 440. (It should be understood that the entire display device and screen has a specific origin, distance scales and dimensions in the x and y directions withrespect to which all such coordinates are measured) . The frame title record 152 defines the frame title to be drawn in double-size italic-face black characters (horizontally) centered in the frame and reading "XYZ CORPORATION." The rectangular field is defined in record 151 to be white with opposite corners at x - 190, y - 069 and x = 460, y = * 355. The dependent vertical and independent horizontal axes are each defined in the records 160 and 162 to be black and originating at the corner of the field. The first, data set is defined in record 153 to be standard red bars. The legend for these red bars is defined in record 164 to be drawn as red single size standard face characters in centered (standard) position reading "PLAN 1". The values of the data which determine the height of the five red bars are defined in records 194-198 to be 1.2, 1.5, 1.5, 1.9 and 2.3. In a similar fashion to the representative records reviewed above, all other ob ects within the chart of Fig. 12 are defined by the contents of associated records in the data structure of Fig. 11. The following is a listing of the symbolic chart - layout step file for the typical example chart of Fig. 12: LAYOUT FILE EXAMPLE (STORAGE 70) FOR CHART OF FIG. 12 1: FILE2 2: END MODIFY 3: SUSPEND REPAINTING DONE 4: MODIFY 5: ADD FRAME YELLOW 6: 120 000 7: 510 440 ' 8: DONE 9: ADD FIELD WHITE 10: 190 065 11: 460 355 12: DONE 13: ADD AXES BLACK 14: 190 065 15: DONE 16: ADD VAXIS TITLE BLACK 1,7: MILLIONS OF DOLLARS 18: DONE 19: ADD BARS RED PLAN 1 20: OFFSET DONE NO 21: 5 22: 1.2 23: 1.5 24: 1.5 25: 1.9 26: 2.3 27: ADD BARS BLACK ACQUISITION 28i STACKED PLAN OFFSET DONE NO 29: 5 30: .2 31: .3 32: .1 33: .4 34: .1 35: ADD BARS BLUE PLAN 2 36: OFFSET DONE NO 37: 5 38: 1.3 39: 1.5 40: 1.6 41: 1.8 42: 2.3 43: ADD LINE GREEN ACTUAL 44: DONE NO 45: 5 46: 1.2 47: 1.6 48: 1.5 49: 2.0 50: 1.9 51: ADD HAXIS TITLE BLACK 52: FISCAL YEAR 53: DONE 54 ADDHAXIS LABELS BLACK 55 YEARS '56 1973 57 DONE 58 ADD TICKS BLACK VAXIS DONE 59 ADD GRID CYAN HORIZONTAL DONE 60 ADD GRID CYAN VERTICAL DASHED DONE 61 ADD FRAME TITLE BLACK 62 XYZ CORPORATION 63 DONE 64 TYPEFONT TYPE FACE FRAME TITLE ITALIC DONE 65 ADD FIELD TITLE BLACK 66 DOMESTIC REVENUES 67 DONE 68 ADD LABEL BLACK 69 330 247 70 PRELIMINARY DATA 71 DONE 72 ADD FILL GREEN BELOW GREEN LINE 73 HAXIS DONE 74 END MODIFY 75 CHANGE OPTION WRITING LEGENDS EXTERNAL DONE 76 RESUME REPAINTING DONE 77 MODIFY The above layout file is stored in addition to the tree-like data structure for each chart that is saved in the machine. It consists of exactly the menu selections, and responses to prompts, which a human operator would be re¬ quired to select in order to cause the chart to be composed by making chart menu selections (primarily set up by the ADD function) starting from the MODIFY menu 86 and the con¬ dition of a completely empty chart data structure (which is equivalent to a blank display screen, or a chart with no elements whatsoever) . This layout file constitutes a very compact definition of the chart in terms of the data storage capacity required to hold it. It is, therefore, useful as a form in which to save the chart or in which to transmit the chart to other remote similar machines or slave units, which machines are capable of executing the layout steps to re¬ create the chart, when their chart layout initiator 120 of Fig. 3A has actuated switches 60 and 62 to position -B. For the specific example in the above listing, following the standard prefix "FILE2" in line-1 which designates that the file is a chart layout file, the END-MODIFY item in line-2 (produced by a menu selection) readies the system to accept the "SUSPEND", "REPAINTING" and "DONE" selections in line-3, which causes operation of the display painter to be suspended (for time-saving purposes) until it is later resumed in line-76.of the above layout listing. "MODIFY" in line-4 then readies the machine to again accept chart modification function selections corresponding to the menu 86 in Fig. 7. The first such selection is "ADD" in line-5, immediately followed by "FRAME". "YELLOW" and coordinate value selection lines-6 through -8, exactly corresponding to the menu selection sequence permitted for the human operator for "ADD", "FRAME", etc. shown in Fig. 8. In similar fashion, a field, axes, titles, data sets, tick marks, grids, and labels and a fill "area are sequentially added in lines-9 through-73 of Fig. M2. Thereafter, the END-MODIFY selection is made and the drawing parameters of legends are changed in lines-74 and -75 corresponding to the CHANGE-OPTION selection in menu 130 of Fig. 7, and the display painter is reactived in line-76. Finally, the machine is restored to the MODIFY mode with menu 86 displayed via line-77, permitting operator interaction to be resumed. To provide the means for general automatic con¬ version of charts from one form to another and conversion of chart components from one representation to another, the machine organizes the specification 66 of a chart in the tree-like data structure in which each component of a chart is related to specific other components as shown by the directed arrows in Fig. 11. Each box of Fig. 11 rep¬ resents an information storage record, contained in the structure. Each storage record is of specific configura¬ tion and defines all of the descriptive parameters of a first chart component object and address information ef¬ fectively "pointing to" each subordinate chart ccmponent ob¬ ject and any other chart component objects which establish reference positions for the first chart component object. The arrangement of the tree-like data structure is totally independent of whether the chart is to be graphically drawn or displayed ("formatted") as a pie chart, a bar chart or any other type of chart. Using this novel feature, the ma¬ chine mechanizes color changes, chart format conversions and all other chart modification actions simply by performing changes to specific descriptive parameters within the com¬ ponent storage records of the data structure, or by adding and inserting parameters, or by removing ("pruning") specific component storage records from the data structure. This data structure is a mechanism used by all machinefunctions, including those of COLOR control, chart CONVERT, object ADD, and chart CREATE. All other chart modification actions operate in a similar manner. The detailed logic and con¬ figuration of all process control steps and all component storage records are provided in the program listings of Appendix I. It should be noted that this data structure is organized to describe the state of each chart object in a standard manner, universally applicable and to thereby efficiently locate any parameter of any object to accomplish modification functions. In addition, the specification of each chart is also stored in the form of a sequential procedure-oriented file of chart layout steps. Specifically, these steps are exactly the sequence of menu selections and prompt responses which an operator would be required to supply to generate the chart. This procedure file provides both a relatively compact description of the chart for transmissionand a form which can be processed by the same machine mechanism which _ * » process the operator's menu selections and prompt responses. ■ * • By the above dual stored representations of charts, the machine is endowed simultaneously with the two features of (1) operator input compatibility, and (2) efficiency in performing many kinds of chart modifications. When a chart is modified by the machine, the data structure 66 is modified and not the layout step procedure file 70, since the latter file is not required for any immediate purpose. However, when the chart is disposed of by selection of the SAVE orCOPY menu selection (see Fig. 7), a new chart layout step procedure fil»e 70 is reconstructed from the data structure 66 and saved or transmitted as re¬ quired for the SAVE or COPY function. CONVERT. As described previously, the machine is placed into the MODIFY mode by operator selection menu 130 (Fig. 7) of the "MODIFY" menu item, by action of the chart layout terminator 128 shown in Fig. 3B upon completion of the CREATE mode, or by completion of a chart recall opera¬ tion by processor 84 VRECALL in Fig. 7. Thereupon, the modify menu 86 in Fig. 7 is displayed to the operator. The operator may then select any of the numerous types of MODIFY functions named in that menu. One such modify function is CONVERT, which en¬ compasses all chart modifications which change the overall geometric layout of a chart (as opposed to color or detailed content characteristics of the chart modified by otherfunc¬ tions) . Fig. 9 illustrates the sequences of menus which can be displayed, and processors which can be activated, following the operator's selection of the CONVERT function from MODIFY menu 86. The sequences of menus in Fig. 9 follow a consistent general pattern in which the order is object menu 200, object descriptor menu 202 (repeated in¬ definitely), second object menu 204 (when required), and a numerica parameter menu 206 (when required, and repeated in¬ definitely if required) . After selection from the numeric parameter menu 206 (when required) , the control of the ma¬ chine loops back to the descriptor menu 208. Display of in¬ definitely repeated menus is terminated by selection of DONE from those menus. As an example of the operation of menu sequences in Fig. 9, the operator- may wish to CONVERT a set of red bars in the displayed chart from side-by-side (i.e., standard) form so that theybecame stacked upon a set of blue bars, which is also already in the chart. In this case, the sequence of menus and processors (of Fig. 9) which would be displayed and operated would be as follows: First, select CONVERT 209 from menu 86 in Fig. 7 thus operating processor VCONVΞHT 210 in Fig. 9, which causes object menu 200 to be displayed. Second, select RED BARS 212 in menu 200 which operates a first portion 214 of processor VC0NVER3, which causes descriptor menu 202 to be displayed. Third, select STACKED from menu 202 which operates a second portion 216 of process¬ or VC0NVER3, which causes the second object menu 204 to be displayed; this menu indicates upon which objects the red bars may be stacked. Fourth, select BLUE BARS from menu 204 which loops back to operate the first-mentioned portion 214 of processor VCONVER again, which causes the descriptor menu 202 to be displayed again (although this menu is first edited by VC0NVER3 as is described below). Fifth, select DONE from menu 202 (unless another conversion of red bars is desired) which operates a third portion 218 of VCONVER3, which causes the pointers in the chart data structure 66 (Fig. 11) for the red bars (record 153 of Fig. 11) and blue bars (record 163) to be adjusted to signify the new relation of stacking of the red bars upon the blue bars: that is, the pointer in red-bars data set record 153 to the next data set 163 is erased and the pointer in record 153 associated with any stacked data set 166 is changed to now point to the blue- bars data-set record 163 which, by these very pointer changes, becomes an instance of a stacked data set record like record 166. In addition, other pointers may have to be changed as a consequence of the particular CONVERT function selec¬ tions. Continuing the example, if a third green-bars data set had existed in the chart in addition to the red bars and blue bars, then a pointer in blue-bars record 163 would have pointed to the green-bars record 199 as its next data set, prior to this example of CONVERT operation. During the CONVERT operation, that next-data-set pointer in the blue bars record would be erased and the next-data-set pointer in the red bars record 153 which was erased, as disscussed above, would be changed to point to the green-bars record 199 as the new next-data-set. Sixth, the processor 220 ROOT receives control from * VC0NVER3 which causes the MODIFY menu 86 of Fig. 7 to be again displayed. This completes the operation of the machine for this example. The CONVERT function can be re- entered as indefinite number of times. In its operation, through any sequence following selection of the CONVERT men item from menu 86, the three portions of the retrieved VCONVER processor operate as shown in Fig. 14 to generate menus which are dependent upon the particular chart being processed. The specific VCONVER processor retrieved is determined by which types of object is selected from menu 200, as illustrated in Fig. 9, one is VC0NVER3 for (bars or lines or pies), VCCNVER2 (for grids), VC0NVER5 (for fill), or VC0NVER4 (for ticks). Specifically, when an object (or set of objects) to be converted is select¬ ed from menu 200 in Fig. 9, the look-up logic 215 applies a set of prestored data and rules in table 222 to determine which specific type of conversions are legitimate for the selected object (or objects) given the type of the object, its current descriptors, the other objects already in the chart and their descriptors. The legitimate conversions are then each named to correspond with the new object descriptor name that would apply to the object if that legitimate con¬ version were performed, and that name is displayed as an item in the descriptor menu 202. Then, when a descriptor is selected from descriptor menu 202, the legitimate conversion eliminator logic 217 of VCONVER removes the selected descriptor from menu 202 and also removes any other conversions which have been rendered illegitimate due to the particular selection of a conversion which was made. Further selections may be made from the NAL remaining legitimate conversion descriptors. When the DONE item is selected from menu 202, the third portion of VCONVER 219 receives control and only then is the data structure of the chart changed to implement the now fully-specified conversion action. The object menu 200 in actual use is specifically a menu in which the ' set of menu items includes every CONVERT-able object that currently exists in the chart as defined by data structure 66, and an actual menu 200 in¬ cludes no other other object. Each item in menu 200 includes two or more descriptive words that apply to the object. These words, when taken together, uniquely identify which object in the chart the menu item describes. Examples of such menu items, as shown in menu 200 (Fig 9), include all data-set objects plus grids, ticks and fill. The descriptor menu 202 contains menu items which include all other geometric descriptors which could be applied to the object selected from menu 200 which do not currently apply to that object, and to which the object or objects, by itself or themselves, can legitimately be converted at this point. For example, if "CONVERT" and "RED BARS" were se¬ lected from menu 86 and menu 200 respectively, and if another set of bars also currently existed in the same chart field, then PIES would not be included in menu 202 because pies cannot co-exist in the same chart field with bars. Another example of a specific CONVERT function operation is the conversion of single vertical- xis ticks to triple ticks (three ticks for each labeled axis interval) . This action is enabled by the menu selections "CONVERT", LE. VAXIS TICKS," "MULTIPLE", "3" , (and "DONE") from menus 86, 200, 226, 230 (and back to 226, respectively. It is assumed in this example that the vertical axis (VAXIS) is the dependentaxis of the displayed chart. In this CONVERT operation, processor VC0NVER4 is operated in three portions labeled as 224, 228 and 232 in Fig. 9. The first portion of VC0NVER4, executed twice, displays descriptor menu 226 including the item "DONE." The second portion of VC0NVER4, executed once, displays the multiplicity menu 230. The third portion of VC0NVER4, executed once, located the ticks records 149 in the data structure 66 of Fig. 11 and changes the multiplicity flag in that record to indicate "multiple" instead of "single".. It also enters the value "3" into the multiplicity value data field of record 149. If ALL BARS is selected in menu 200, then the descriptor menu 233 allows the selection of PIES or LINES (among others) . If GREEN FILL is selected in menu 200, descriptor menu 235 allows selection among different location relations and menus 237 and 239 allow selection of the objects which will bound the fill area. During the performance of CONVERT (or any other MODIFY or other function that involves communication with the operator by way of a menu) , the operator-interface loop 50 is activated by the controller 58 in the manner described above with respect to Fig. 2. The menus are generated and displayed, the operator selections are identified and the data structure 66 updated accordingly, all in a similar fashion. ADD. Another modify mode function selectable from modify menu 86 in Fig. 7 is the ADD function. Fig. 8 illustrates the sequences of menus which can be displayed, and processors which can be actuated, following the operator's selection of ADD from menu 86 in Fig. 7. As in the CONVERT function, the sequences of menus and processors in Fig. 8 follow a consistent general pattern. For the ADD function, this pattern is one in which the order is object menu, followed increasingly detailed specification of the object to be added using menus and prompts; namely, object color menu, object descriptormenu (if applicable and repeated in¬ definitely if necessary), second object menu (if necessary), name prompt (if necessary) , data or text content prompt (if necessary) , and individual data item descriptor menu (if "necessary). Looping of menus and.termination of loops using the DONE menu item selection are the same as describedabove for the CONVERT function. As an example of the operation of menu sequences in Fig. 8", the operator may wish to add a data set, to be presented as a red ρi r to the currently displayed chart, the pieces of the pie representing divisional revenues. Continuing the example, the operator may wish to define the pie to have 4 pieces corresponding to data values 1.1, 1.3, 1.0 and 0.2 which he has written on a note pad, and the operator may wish to "slice" out the last of these 4 pieces for purposes of emphasizing some point which he wishes to make. In this case, the sequence of menus which would be displayed, and processors which would be operated, would be as follows: First, select ADD from menu 86 in Fig. 7, thus operating a first portion 240 of processor VADD in Fig. 8 which causes object menu 242 to be displayed. Second, select PIE from menu 242 which operates a second portion 244 of the processor VADD which causes color menu 246 AD ORIGINAL to be displayed. Third, select RED from color menu 246 which operates processor 248, VADD-7 PIE which causes descriptor menu 250 to be displayed. Fourth, select SLICED from descriptor menu 250 which operates processor 252, VADD-7A, which causes the data-source menu 254 to be issued. Fifth, select NO to indicate that the data values are not already stored in a filewithin the machine. This selection operates processor 256, VADD3 which causes prompt message 258 to be issued asking for a name for the data set. Sixth, respond to the prompt by entering the name, such as REVENUES, which operates processor 260 VADD-7C which causes a pr ipt message 262 to be issued for the data values. Seventh, enter the four data values followed by selection of the DONE menu item which operates processor 264 VADDSLIC which causes data- items menu 266 to be displayed. Eighth, select itemnumber 4 (the data value 0.2) from menu 266,which operates processor 220 ROOT which constructs and links the record for the data set (red pie) to the correct part of the chart data structure 66 and causes the modify menu 86 to once again be displayed. The foregoing is one of the more complex examples. All other sequences within the ADD function utilize a similar pattern and mechanisms. . In a similar manner to that previously described for the CONVERT function, the processors operated subsequent to selection of the ADD function are so constructed that they generate menus whose contents are dependent upon the objects (and their descriptors) that are currently in the chart which is being processed. After selection of ADD, the object menu then displayed includes ali types of objects that can legitimately be added to the current chart. For example, if the chart already has a set of vertical bars in it, the object menu 242 which is displayed after selection of ADD will not include the item PIE, since bars and pies cannot meaningfully exist within the same chart field. To mechanize this menu generation for ADD, the processor 240 incorporates rules retrieved with it from mass storage 24A -which determine how many instances of each object type can exist in a- chart or chart field at one time (e.g. , only one frame can exist in a chart), which objects types re¬ quire other object types as prerequisites in the chart (e.g. , axes can be added only if a field exists with respect to which they will be placed), and which object types are not meaningful given the presence of other object types (e.g., vertical bars cannot be placed in the same field as a horizontal-line data set) . Processor 240 VADD screens all possible object types against these rules prior to including the object types in menu * 242. COLOR. A third function which is selected in the MODIFY mode starting with a selection from menu 86 is the COLOR function, in which the color of one or more objects in a displayed chart may be changed. Said color function mechanism operates, as shown in Figs. 10 and 15, in a hierarchy of three levels. The lowest, or basic level of said color control mechanism is initiated by a first portion 274 of processor VCOLOR which generates color selection menu 270 from which a color is selected. Thereafter, a second portion 276 of processor VCOLOR proceeds to set up obj ct-menu-272 from which the identity of the objects to be colored can be selected (as shown in Fig. 10) . A third portion 278 of processor VCOLOR then acts to change the color-identifierparameters in the tree-like data structure 66 for the selected chart objects to accomplish the desired color change. Control is then transferred to processor 220 ROOT which displays the MODIFY menu 86 once again. The intermediate level of said color function mechanism is initiated when the "SCHEME" item is selected in the color selection menu 270 of Fig. 10. Processor 280 VC0L0R1 (first portion) then acts to generate menu 282 in order to identify the particular color scheme that is de¬ sired. Each scheme is a combination of colors, one color associated with each type of possible chart object. Processor 284 VC0L0R1 (second portion) then re¬ trieves the parameter file 285 of the selected scheme from mass storage 24A; the processor 286 VC0L0R1 (both portions) is shown in Fig. 15 performing this operation. The color- scheme processor 286 VC0L0R1 then directs the basic color processor 288 VCOLOR (all portions) to sequentially color eachand every chart object as if the operator had selected each color and object sequentially; this operation of the basic COLORprocessor VCOLOR is described above for Fig. 10. COLOR CONSULTANT. In the highest level of operation of the color function mechanism, processor 290 VCOLOR 2 is enabled by interrupting the output of the basic color processor 288 VCOLOR by actuating the switch 292 to the ON position. Thereby, the processor " 288 VCOLOR does not directly accomplish changes of color parameters in the chart data structure 66, but the outputs are directed instead to Color Consultant processor 290 VC0L0R2. The latter 290 when ON performs the functions of processor 288 to update data structure 66 in addition to the control functions. The Color Consultant processor 290, when ON, may be set by means of the CHANGE OPTION menu selection in DISPOSITION menu 130 to either of two operating modes; in addition, it can be disabled entirely by switch 292 in OFF, as in the lower-level color mechanism levels discussed above. In the first operating mode, processor 290 VC0L0R2 provides an advisory message in display region 294 to the operator when a color selected from menu 270 of Fig. 10 violates a color constraint as defined below. In the second operating mode, processor 290 VC0L0R2 autonomously acts in an attempt to correct color constraint violations caused by operator selection of a color from menu 270. The Color Consultant processor 290 VC0L0R2 when enabled, examines the colorscheme of a chart and recommends or makes changes in specified chart, colors to eliminate certain usually undesirable color combinations which might otherwise either be missed by the operator or might require excessive user experimentation. The Color Consultant processor accommodates the different color-tonal characteristics of various output media, especially to ensure effective visual discrimination; in addition, rules for. reaching pleasing color schemes can be employed. The mechanism of the Color Consultant processor 290 VC0LOR2 is as follows: An object-color data structure is also defined in a record for each object on the chart, as follows: Object ~ object — is color operator — color -- specification # type specified speci- sequence nu - fied ber This object color record particularly indicates the color, if any, specified by the operator (as opposed to a default or automatically selected color) . A object interference -*-"'- - * file 296, also retrieved from storage 24A, defines which other types of objects may interfere with (when superimposed or adjacent to) each givenobject type according to the re¬ lationships of Fig. 16, which defines an "interference network". Through the relationships of Fig. 16, chart objects are thereby recognized- by the Color Consultant processor 290 VCOLOR 2 to have locational relationships in which each type of object is generally colocated with one or more other types of objects (see Fig. 16). For example, a grid 300 is related to a field 302, field labels 304, legends 306, field titles 308, and data set objects 310, as shown by connecting lines in Fig. 16. This relationship structure is similar to but not necessarily the same as that reflected in the data structure 66. Another portion of "color constraint" data structure 296 (Fig. 15) defines, for the display unit screen and for any other selected output media, constraints of two types on each color: (A) The colors which have poor contrast with each other, as set forth in the following tables of example- for a CRT display and a particular color printer. (B) The object types that are usually undesirable- in a particular color due to media-characteristic, aesthetic, or other constraints, as illustrated in the following tables: Color * .Constraint Table CRT A. Poor contrast in B. Undesirable Color Decreasing Order Object Types Black Black, Blue Blue Blue, Black Red Red, Magenta Green Green, Cyan, Yellow Magenta Magenta, Red Cyan Cya , Green Yellow Yellow, White, Green White White, Yellow Color Impact Printer A. Poor contrast in B. Undesirable Color Decreasing Order Object Types Black . Blue, Green, Magenta- Red Frame, field Blue Black, Green, Magenta, Red Frame, field Red Magenta, Black, Blue Green Blue, Cyan Magenta Red, Black, Blue Cyan Green, B'lack Yellow White White Yellow Lines The Color Consultant processor 290 VCOLOR 2 operates in the following five steps (switch 292 being ON): A) Object colors specified by the human operator are accepted and stored unchanged in the object color record described above. The operator is advised by prompt messages 294 of conflicts that exist among the colors he specifically called for, as defined by the color constraint specification 296 (which includes the above tables and the relations of the connected object types in Fig. 16 / . He can either maintain his specification or allow the Color Consultant 290 the freedom to change the colors of all of the conflicting objects. His selection is made by selec¬ tion from an option menu 310 generated by Color Consultant 290. 3) Colors of other obj ects are examined by Color Consultant 290 in an order that starts from the object which was last color-specified by the operator , and follows with obj ects previously color-specified by the operator. Color Consultant 290 examines all obj ects which are line- connected ob ects in the interference network of Fig . 16 to the operator-specified-color obj ects . • ■ > A list of all obj ects with constraint viola¬ tions (called "violators") is formed using the constraints so-far applied. This list is in the format of the following scratch table . Each violator is entered in the scratch table with its set of remaining allowable color choices . These re¬ maining allowable color choices are those which would violate no constraints given the current colors of all other objects : Color Scratch Table Object is color color specifica- remaining I.D. operated sϋeci- tion se- ■ available specified fied quence colors number This set of remaining allowable color choices in the color scratch table for violators is pruned as other objects connected to the violators in Fig. 16 are examined for color conflicts. Pruning of colors for each violator is done in order of increasing distinguishability as defined in the Color-Constraint Table above. C) The consultant examines all other objects which were not user specified but which are connected in Fig. 16 to violators. It removes from scratch table of the violator ' s set of rεπi≤dning allowable colors those colors that would interfere with these non-operator-specified obj ect colors . However , if such a removal would cause the last allowable color to be removed for a violator, the color is not removed and the currently considered obj ect of non- operator specified color is added to the color scratch table list of violators , which then offers a possible alternative for processor 290 investigation to reduce the violations . D) When the constraints , having been fully applied in C above , leave more than one color finally avail¬ able for an obj ect , another criterion for choosing among avail¬ able colors is employed by processor 290 , using the relations illustrated in a color-space diagram, such as that of Fig. 17 , which indicates the visual distinguishability of the set of available colors . In the color-space relations of that diagram, Color Consultant 290 considers the points 312 of remaining available colors ; identifies the geometric space for those points ; determines the centroid thereof as an approximation of the center of the acceptable color space; and selects the available color whose space point is closest to the centroid as the color to use . E) When the constraints , applied in the order described in C above , have reduced the available colors to only one colo.r , the color that is left is chosen . This would be a color that is less obj ectionable than those previous¬ ly eliminated, and would conflict , if at all , only with an obj ect that was not most recently specified by the operator (and perhaps only with objects which were not operator-specified at all) . It should be understood that the Color Consultant can also be enabled to operate when any other MODIFY mode BAD ORIGINAL function is selected which might change the interference among chart objects. These functions could include CONVERT and MOVE functions. When a COPY function is selected from DISPOSITION menu 130 (Fig. 7, the ColorConsultant processor 290 can be enabled to reevaluate colors in view of the particular color-tonal characteristics of the color output device which is selected. It should also be understood that the mechanism described applies to any number and variety of colors which may be available for selection by the operator and by the processor 290. As an example of the Color Consultant processor operator, assume that the operator has specified a two data set vertical bar chart. He has specified, in order, that he wants the first bar set to be red, the axis titles to be black, and the grid to be green. The scratch table would then be: Example Color Scratch Table Ob j ect Is color Color Specification I. D . operator speci¬ Sequence Number specified? fied Data Set 1 Yes Red 1 Vaxis Title Yes 3 lack 2 Haxis Title Yes Black 3 Grid Yes Green 4 Haxis No Black Not user specified Vaxis No Black I I M II Frame No White tt !! It Field No Yellow II I t It Frame Title No Black t« It tt Execution of the Color Consultant processor 290 for this example produces the following sequence of operations : 1. Starting from the (last specified) green grid, the mechanism first encounters the yellow field which violates the color constraint (yellow vs . green) . 2. VC0L0R2 logs the violation and lists the remaining available colors (black, blue , red, magenta, white) for the field. 3. VC0L0R2 then proceeds from the next last-specified object, the black HAXIS title, and encounters no conflict with the white FRAME. It also checks the violations to date and finds that the only one (namely, field) does not connect to it in the interference table, so it ignores it. 4. VC0L0R2 also encounters no conflict between the VAXIS title and frame. 5. VC0L0R2 proceeds next from the specified red data set 1 and finds no conflict with the yellow field. It checks the violoation list and finds field, which is connected, so it eliminates red and magenta from the remaining , available field colors, those which conflict with the red data-set color, leaving only black, blue and white. 6. Next VC0L0R2 would proceed from the axes,which were not operator-specified but are ' connected in the interference network to the (violating) field. In view of black being used for the axes, and the CRT color constraint table, blue and black would be removed from the remaining available field colors, leaving only white. The MODIFY mode menu 86 also includes other items which may be selected besides ADD, CONVERT and COLOR. These other selections, which are operated by similarlyconstructed hierarchical menu-selection mechanisms enable the following functions: DELETE causes the machine to remove anobject or objects from the chart data structure 66 and from the displayed image 72. MOVE causes the machine to move an object to a new specified position within the area boundaries of the chart. TURN-ON and TUEN-OFF cause the display painter 126 to paint or not paint, respectively, an object, while still retaining the object in the chart data structure 66 TURN-OFF temporarily can remove the object from the display, and TURN-ON would restore it. TYPEFONT causes machine to change the type size or type face of a text object. EDIT- DATA causes the machine to alter, append, insert, or remove data values in a data set. EDIT-TEXT causes the machine to change the content of the text in a text object such as title or label. CENTER causes the machine to nullify a previous MOVE selection by restoring an object to its standard painted position within the area boundaries of the chart. SCALE causes the machine to scale a numerical axis to cover a specified range and a specified number of divisions instead of using the scaling which would be de¬ termined by the machine's automatic scaling rules. RECOVER causes the machine to nullify a previous DELETE selection which was performed during the current session of machine usage, thereby restoring the deleted object to the data structure 66; RE-ORDER causes the machine to change the order in which data sets objects are relatively placed on the chart, for example, the operator can specify which is to be the left-most set of bars in a chart that includes a plurality of sets of side-by-side bars. The MODIFY mode has great effectiveness when used following the CREATE or RECALL modes. However, it can be used without going through either of those to create a chart from the beginning. The ADD functions can beused effective¬ ly to build charts having a wide variety of forms and quite different frcm those whose components are stored and cctnbined into charts, as explained above, in the CREATE mode. The REJECT and CANCEL mechanisms are shewn in Fig. 13; they enable the machine to REJECT the operator's most recent menu selection, or to CANCEL the entire sequence of menu selections which he has made to (partially) specify any machine function in the CREATE, RECALL, MODIFY or END-MODIFY modes of machine operation. Although not illustrated onother figures for reasons of simplicity of description, every menu displayed by the machine subordinate to mode menus 82, 86 or 130 in any mode or function thereof, as exemplified by menu 320 in Fig. 13, includes the menu items REJECT and CANCEL. Selection of the menu item REJECT in any such menu 320 operates processors 58 (Fig. 2) to nullify the previous menu selection and display the previous menu 322 which contains that previous selection. Thereby, the operator may take a different selection (or the same one again if he should decide to do so). Another selection, at that point, of REJECT would operate the machine so as to nullify the second-previous menu selection, and display the menu 324 which contained that second-previous selection, thus backing up the machine one more menu-selection loop cycle 50 (Fig. 2) and so forth. RJECT may be repeatedly selected, if desired, until the machine has backed up to the beginning of the previously selected sequence which is thereby nullified. This would result in the machine being restored to the mode menu 86, 82 or 130 wherever it began the sequence. Selection of the menu item CANCEL from any menu such as 320, 322 or 324 is equivalent to making enough sequential selections of REJECT to nullify the entire sequence which has been selected subordinate to mode menus 86, 82 or 130. That is, it is a single selection which CANCEL'S any partially specified function before it has been finally ex¬ ecuted. Selection of the menu item DONE in the last step of a menu selection sequence such as in menu 320 not only permits termination of an indefinitely recycling menu (see recycling loop 326) , but effectively allows the operator to confirm that he wishes the function he has specified by the sequence of menu selections to now be executed by the applicable execution processor 328 (various examples of which have been described above). Alternatively, he still has the opportunity at this point (instead of selecting DONE) to select CANCEL which causes CANCEL processor 330 to nullify the specified function without its being executed. HARDWARE. As indicated above, the hardware units employed in this machine system, namely,- those shown in Fig. 1, are generally known in the art; suitable forms are commercially available. The display 18 is preferably a color television monitorthat has suitable video-control and image-generating circuits and can be used with video recorders and slave television displays. The selector 26 may be a position digitizer unit formed of electromechanical devices which include a manually movable elementand electronic means for sensing two current position-coordinates of said element and transmitting electronic position-coordinate value signals defining the currentvalue of said position coordinates. The movable element may be a conventional component that preferably is enclosed in a . housing which is specifically contoured such that it comfortably fits in the palm of either hand of the terminal operator when seated with his hand resting comfortably on the position digitizer working surface. The movable element also preferably includes a small number of switches, such as three pushbutton switches, imbedded in the surf ce of said contoured housing at points such that each such pushbutton is rested upon by the thumb or a finger when the hand, fingers and thumb are naturally ' relaxed. The position-co¬ ordinates value signals are transmitted by electrical signal lines to the microprocessor 22, which establishes a cursor on the display 18 at these coordinates. The position coordinate values may be transmitted either periodically or, alternatively, only when requested by a control signal received by the position digitizer unit from the microprocessor or, as another alternative, only when the movable element has been moved from the position whose coordinates were most recently transmitted. The pushbutton switches on the movable element of said position digitizer when depressed, cause a unique digital signal to be transmitted to the microprocessor. A switch labeled "PICK" means that the displayed menu item or chart object nearest to said current cursor symbol position is selected. A switch labeled "REJ" can be used as an alternative to putting REJECT in the MODIFY menus; it rejects the most re¬ cent menu selection. By another alternative, by a switch labeled "DONE", the user can indicate completion of all menu selections that he wishes to select, and that the terminal should process the selections. When an object menu 200 (Fig. 9) or 272 (Fig. 10) is displayed during any MODIFY mode function, the operator can position the cursor on the object itself on the display screen, instead of on the menu at a position corresponding to the descriptive name of that object, so as to select the object. In that case, the machine recognizes selection of that cursor position (i.e. , the object at that position) as equivalent to selection of the object name from the menu. This machine function is achieved with the detector and identifier 54 (Fig. 2) , which detects the position coordinates of the cursor as established by the pointer selector 26. By search in, and comparison with the coordinates in, the data structure 66, the object located at the cursor's position is identi¬ fied. Similarly, the selector 26 of the type that serves as a position digitizer, as exemplified bythe electromechanical devices noted above, may also be used in the specific MODIFY function of MOVE. In this case, the chart object to be moved is identified by the position digitizer in a similar fashion. Thereafter, the position to which it is to be moved is identified by a second movement of the position selector 26 to establish the coordinate values of that new position; a prompt message instructs the operator to so position the selector. The cursor image on the display is part of the σperator-rπachine interface, and the ad¬ vantage of picking an object from the chart image directly in this fashion is that it avoids any ambiguity in the chart-object nomenclature used in the menus that could confuse an inex¬ perienced operator. The cursor symbol may consist of a single simple alphanumeric or graphical symbol such as a "dash", "cross" or "circle", but preferably is dynamically variable and BAD ORIGINAL OM ?i controllable in its size, shape and colors. The micro¬ processor, through conventional digital peripheral device control circuits as are well known in the art of digital - computers, controls an electronic cursor symbol controller which adds or preferably replaces a portion of the menu and chart image displayed on said display unit with the image of said cursor symbol. The shape, size and colors are thereby controlled and changed by the microprocessor in such a manner that at any one time they are controlled to be any one of a predetermined selection of shapes, sizes and colors which are stored in the storage unit associated with the microprocessor. Preferably, the controller selec¬ tion of said cursor symbol shape, size and colors is chosen to provide said user with reminders and visual cues concern¬ ing the chart modification, chart descriptor, or graphical chart element which is currently being processed. The variable cursor symbol controller is capable of generating a multiplicity of cursor symbols, with respect to both symbol color schemes and symbol shapes and sizes which can be brighter in displayed intensity than the menu and chart displayed images for any color combination on any background, including white. The cursor symbol may be positioned and displayed at any location on the screen of the display unit. The microprocessor 22 is preferably an integrated circuit system, which includes a central processor unit (CPU) , serial and parallel input/output control units (IOU) which can be connectedas desired to various peripheral devices. Examples of connectable devices include a keyboard, position digitizer, communications interface, display unit, or interface to another microprocessor. The CPU and one or more IOU's are interconnected by means of a conventional data and control channel or bus which may be a serial signal line but preferably consists of a multiplicity of parallel electrical signal lines which coordinate and transfer in¬ formation in the form of electrical voltage levels and pulses among the CPU, the IOU's and any other devices which are connected to the bus. The microprocessor also includes conventional random access imagememory, conventionalelectronic control circuits for the memory and electrical conversion circuits which convert the digital data in said memory in an orderly pre-specified manner into electrical video signals having standard signal level and timing characteristics re¬ quired as input to the display unit. The memory is organized to store a multiplicity of binary digits of digital data for each picture elementwhich can be displayed in the displayed image of said display unit, each such elementbeing commonly referred to as a "pixel". -Alternatively, the memory may store any larger number of said pixels than can be displayed by said display unit, the display unit being capable of displaying a selectable subset of said pixels. The multiple bits stored for each pixel encode the color (also called hue) and/or brightness (also called intensity) of that pixel. The particular encoding of the bits used may be any choice of codes which provide the choice of colors and brightness desired within the number of combinations that are possible given the number of binary digits employed per pixel. The microprocessor also includes digital interface and controller circuits which can control and communicate with film re¬ corders, color printers, electronic pen plotters, and copiers, according to industry signal and timing standards. The storage 24 associated with the microprocessor includes a randomly accessible digital data and program memory (RAM) , and may also include one or more rotating magnetic disk storagedevices or equivalent alternative drum or magnetic tape storage device capable of storing digital data. The storage device is capable of directly transmitting data and program codes to, and receiving data and program codes from, the RAM by means of a digital data "channel" or "bus" which is connected to the RAM, the storage device and the microprocessor. The bus may be a serial electrical signal line, but preferably will be a multiplicity of data and control signal lines in order to make feasible coordination of units and transmission and reception of data and program codes and very high rates through the bus. The microprocessor is controlled by stored programs which operate to control the interaction of the entire terminal system with the operator, and the operation of all units which are interconnected to the microprocessor. The programs consist of a conventional control program known as a "disk operating system", as well as a collection of subsidiary program modules. These modules are grouped into sets of modules, called "overlays", which can fit at one instant of time into said RAM portion of said instruction and data storage unit. These overlays are inter-related and organized under the supervision of a "ROOT program" which dispatches computing tasks and control of the microprocessor, to be executed in sequence, to one of the overlays based upon data reported from the previously executed program modules. A program module in an -— — — - * ξURE ;. BAD ORIGINA! OMP1 Λ;, IPO - — ■* " overlay may, during its execution, dispatch computing tasks and control of the microprocessor to a still-further subsidiary overlay program module. For example, the overlay named "VCREATE" may, during its execution, pass control to any of the overlays named "CREATE4","CREATE3","CREATE2", CREATE1", and others. The program modules, which are numerous, are stored in said instruction and data storage unit associated with said microprocessor unit. In the pre¬ ferred implementation, each of said program modules may be stored, when the overlay containing said program module is not being executed, in the rotating mempry portion of said storage unit. Each program module may be moved, by execu¬ tion of conventional program overlay techniques performed by the disk operating system, into the small RAM portion of the storage unit when said program module is dispatched for execution. By this means, the necessity for use of any large central computer is avoided. Those of said program modules which are directly dispatched by ROOT include one or more modules for each of the major types of chart modifications, chart disposition operations, and otheroperations which the operator user may select from a displayed menu. For example, the program module named "VSAVE" is the program module which is dispatched when the user selects the menu item "SAVE, thereby indicating that he wishes to save the currently displayed chart by storing the data defining the chart in said storage unit. The stored programs of this invention have been a preferred form of construction for the control system, particularly during the development thereof. It will be apparent to those skilled in the art that firmware and read-only-memory forms of construction may be used at least for part of the control system. It will also be apparent that, as the design is fixed and larger scale production is possible, integrated circuits, or chips may be used for some or all of the control system. In summary, and as exemplified by the typical color chart- illustrated in Fig. 12, the machine provides cost- effective mechanisms for creation and modification of graphic charts. In a time-span of about 10 minutes, an inexperienced operator can use the machine to create the chart of Fig. 12, knowing only his original data and desired titles. This high productivity of chart generation is due to the features of this invention. This Fig. 12 chart was machine con¬ structed in color (as indicated in Fig. 12 by conventional color symbols or linings) using the CREATE mode explained above with Figs. 2, 3A and B, and 7followed by the MODIFY mode to complete construction of this Fig. 12 chart. The ADD mechanism (exemplified by Fig. 8), the CO-WERT mechanism (Fig. 9) which served to stack the black bars, and the COLOR mechanism (Fig. 10) were all used and contributed to the efficient generation of the Fig. 12 chart. Thus, this invention provides a new and improved machine system for generating graphic charts, with a machine/ operator interface that facilitates use by those who are unskilled. The operator can create new charts from a large variety of stored chart information to create new charts or recall old ones from storage and to select many types and styles -of charts, chart objects and their descriptors in orderly relation to create new charts and to modify existing charts, to convert from one chart format type to another, and to select among a variety of colors with ease of use by the operator in order t.o compose a variety of charts. The un¬ skilled operator may perform all of the chart composing and modification from a menu-selection interface with the machine, except for the entry of data or textual information that may require input via keyboard or other special facility. While the invention has been described in connection with a preferred embodiment, it should be understood that it is intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.

Claims: What Is Claimed Is: 1. A machine system for generation of graphic charts comprising: a display device; means for supplying to said display device, pluralities of sets ' of signals for displaying generated charts and for displaying a plurality of selection menus for intercommunication between an operator and said ma¬ chine system; said menu signals including at least one menu signal set for enabling selection among a plurality of function modes for composing charts and their objects; a plurality of menu signal sets for selecting among chart objects; and a plurality of menu signal sets for selecting among descriptors of charts and chart objects, said menu signal supplying means including means for supplying said menus in certain sequential and interdependent hierarchical relationships; operato "controlled means for selecting items from each of the display menus, including means for detect- ing the selected menu item; - a memory portion for storing signal sets representative of the specification of the chart to be constructed in accordance with selected menu items; and means for setting the memory specifica¬ tion of the displayed chart in accordance with selected menu items; said means for supplying chart and menu signals to said display device including means for. direct¬ ing the generation of said charts in accordance with stored chart specification signals, and for changing the displayed menu in accordance with the selected menu item and in ac¬ cordance with said menu relationships; whereby an operator by menu selection can direct the generation of a variety of charts. 2. A chart generating machine system as in claim 1 wherein said function mode selection menu includes the mode of creating different types of charts and the mode of re- • calling from storage a previously created chart. 3. A chart generating machine system as in claim 2 wherein said function mode selection menus include a menu for the mode of modifying the display chart produced in either the said creating mode or said recall mode. 4. A chart generating machine system as in claim 3 wherein said modifying-mode menu includes the modes of adding chart features, changing the color of features, and converting from one type of chart to another. 5. A chart generating machine system as in claim 4 wherein said chart-object menus and said descriptor menus are displayed in said modifying modes. BAD ORIGINAk-^OREAl)-- * - 6. A chart generating machine system as in claim 1 wherein said signal supplying means includes means for supplying, in a mode for creating charts, successive ones of said selection menus including menus for selecting among chart types, and the capacity of data sets for the chart. 7. A chart generating machine system as in claim 6 wherein in said creating mode, said successive menus in¬ cludes a menu for selecting among chart styles. # * 8. A chart generating machine system as in claim 7 wherein, said signal supplying means includes means for supplying in said chart-creating mode, inquiries displayed on said display device for the operator to supply textual information and data values for said data sets, and said system further includes operator-controlled input means for supplying said textual information and data values. 9. A chart generating machine system as in claim 7 wherein said chart specification -memory-position includes a store of signals for chart layouts structured in accordance with a variable capacity of data sets, and each data set having fields for associated data values and selected chart objects and descriptors thereof. 10. A chart generating machine system as in claim 6 wherein said chart-specification memory-setting means in¬ cludes a store of signals for chart objects and descriptors in accordance with chart types, and means responsive to an operator's selections from said chart-type menu for generating from said signal store chart-specification signals for said memory portion. " " 11. A chart generating machine system as in claim 10 wherein said chart-signal store includes a plurality of sequences of signal sets fora plurality of chart-layout procedures to generate specified objects and descriptors corresponding to a plurality of chart types, and said means for setting the memory specification is operative in accordance with said chart-layout-procedure signal sets. 12. A chart generating machine system as recited in claim 1 wherein said operator controlled selectingmeans includes means for pointing to a chart object in a displayed chart for selection thereof. 13, A chart generating machine system as recited in claim 1 wherein said means for supplying menus in a certain relationship and for changing the displayed menu is operative to supply a menu of chart objects followed by a menu of descriptors of the object selected from said chartΞ-object menu. 14. A chart generating machine- system as recited in claim 13 wherein said menu supplying and changing means is operative in response to the selection of a certain function mode to supply a men of chart-objects consistent with the changes that can be made in the currently displayed chart. BAD 15. A chart generating machine system as recited in claim 14 wherein said menu supplying and changing means is operative in response to the selection of a chart converting mode to supply a menu of chart objects consistent with the chart type to which the currently displayed chart can be converted. 16. A chart generating machine system as recited in claim 14 wherein said menu supplying and changing means is operative in response to the selection of a mode of adding chart objects to supply a menu of chart objects that can be added consistent with the chart objects in the currently displayed chart. 17. A chart generating machine system as recited in claim 14 wherein said menu supplying and changing means is operative in response to the selection of a mode of changing colors of certain chart objects to supply a menu of chart colors consistent with the colors of chart objects to which the currently displayed chart can be changed. 18. A chart generating machine system as recited in claim 17 wherein said menu supplying and changing means is operative in response to said selection of a mode of a color changing mode to supply a menu of color schemes to which the currently displayed chart can be changed. 19. A color generating machine system as recited in claim 1 wherein said means for setting the memory specifica¬ tion in accordance with selected menu items includes means for automatically modifying undesirable color combinations selected by the operator. 20. A color generating machine system as recited in claim 19 wherein said color combination modifying means includes means operative to ensure effective visual dis¬ crimination among the colors for the chart objects of the displayed chart. - -

Inventors: BARKMAN F, BROZOVICH L, RILEY R, SWONGER C
Applicants: COMSHARE INC
Application year: 1981
Main classification: G06F3
IPC codes: G06T11