Method and system for retrieval of stored graphs

Abstract: Automation of graph image storage and retrieval in a multi-user system having a central processing facility with performing processes that create (40) and translate (40a,40b) graphical image representations in varying levels of readable expression. The created, translated representations are stored in system storage in the form of graph image files (41,42). The method tabularizes stored graph image representations by table entries, each identifying a specific graph and including a listing of the corresponding graph image files. When a user of the system identifies a graph by table entry and specifies a machine output or modification function to be performed on the identified graph, the tabularized entries are searched to locate an entry for the identified graph. Once the correct table entry is found, the graph file listing is searched according to a user-specified representation preference ordering to determine whether a specified output function can be performed by any of the stored graph image files produced for the identified graph. If a match is found between one of the representations stored for the graph and one of the representations in the preference ordering the matched file is retrieved from storage and translated (40a,40b) to the level required for the function (46,48,50). The translated file is then dispatched (45,56,58) to the user for performance of the function.

Description: BACKGROUND OF THE INVENTION The invention relates to a new method and system for storing and retrieving graphical image representations according to a specified representation preference order. More specifically, it relates to storage and retrieval of graphical image representations according to a procedure which seeks to match one of the available representations of an identified graph with a representation level specified by a requester of the graph. The invention operates in the environment of a general purpose computer connected through a communications system including plural communication channels that provide data interchange capability between the general purpose computer and a plurality of user terminals. The terminals are understood to refer to a typical terminal device including a keyboard, a display, and a limited computation facility together with one or more graphical output devices. Since a terminal possesses the capability to provide a visual output, terminals are included in the category of devices referred to as output devices. Existing graphics application programs, together with other prior art programs, are available to operate on the general purpose computer to create graphs in response to commands, parameters, and data received from users through the terminals communicatively connected to the computer. Created graphs are output by transmission of graphical image data from the computer to the terminals. A graph is output when a visual representation of its image is produced either on a screen or a hardcopy medium such as paper or photographic slide material at a terminal. Typically, in the posited multi-user scenario, a number of terminals share the computer, using it simultaneously to do different things with it. In the situation of interest, the system is used for the creation of graphs for end users. End use of a graph can involve the satisfaction of a plethora of user needs; for example, different users may retrieve a graph for viewing, printing, or alteration. As is known, the levels of representation of a graphical image, also called levels of abstraction, correspond generally to the position between human understandability and machine understandability occupied by the expression of the graph. Thus, at the highest level of abstraction, graphs are represented by human verbal descriptions such as English language text. At the lowest level of abstraction, the graph is stored in a machine-language format that can be comprehended only by the device upon which the graph is to be produced. At an intermediate level graphs can be represented by a string of graphics primitives consisting of straightforward figure elements such as lines, polylines, circles, ellipses, circle segments, text, and filled polygons. Such strings also include graphics attributes which further modify the graphics primitives. The attributes include location coordinates, size, color, and typeface. Conventionally, the highest expression of a graph in human understandable form is referred to as a source file; the intermediate level is termed a metafile; while the lowest level of abstraction is a device specific file. Characteristically, once a graph is created it will be expressed in one or more levels of abstraction in order to support certain functions which are human-initiated machine performances of particular work on a graph to achieve a definite purpose. For the purposes of this application, it is understood that a plethora of processes exist which translate the expression of a graphical image at one level to an equivalent expression at a lower level As is known, the different uses to which a graph is put require that the machine-understandable image representation of the graph be available at differing levels of machine abstraction. For example, in text processing the terms "final form" and "revisable form" are used to indicate two different levels of abstraction, each particularly designed for a specific function: the final form is that to be printed or viewed only, the revisable form is intended to be changed prior to printing. In graphics, there are more than just these two levels: the graphics image representation corresponding to the final form of text may be more or less tailored to the output processor of a certain graphical production device; and the revisable form, having a representation in a higher level of abstraction than the final form, is usually intended to allow different kinds of revision to the graph. The different kinds of graphical image representations imply different performance requirements for the centrally-operated graphical production system. Some representations provide cheap retrieval of the graph's image but limited flexibility in terms of choice of output device or modification. Other representations are flexible in terms of being adaptable to a variety of output devices, however, their maintenance by a centralized system usually entails a high cost. An archival problem in a centrally organized graphic system is characterized by the interplay of function and graphical representations. For example, retrieval of a graph image from storage for viewing on a CRT is most quickly accomplished and requires the least amount of computer processing if the graph is stored in the lowest level representation possible. For a CRT this would consist of the actual bit map of the image. The bit map is easily retrieved from storage and formatted for transmission through a communications channel to the output device by conversion to a bit or byte sequence that is transmitted through the communications channel to the output device. This lowest-level representation requires no computer processing of the stored information but only transmission of the data to the graphics device. Any higher level of representation, such as metafile format, would require additional processing for translation of the metafile to the bit map required by the device. However, if all graphical images were represented in their lowest level of abstraction, the variety of output devices would proliferate the device-specific files, since different output devices require different information. Therefore, support of several different output devices with a single device specific representation would not be possible. As the output device configurations proliferate, so do the device-specific representations of each graph. As the representations proliferate and are multiplied by the number of graphs, one can appreciate that the storage requirements of the centrally-organized system increase correspondingly. Moreover, system operating costs are increased because of the processing cost of creating all of the files, and because of the administrative difficulty in keeping the different representations coordinated. From the user standpoint, another disadvantage of device-specific file storage is that the low level expression of a graph is very difficult to modify. Modification of a graph at this level of representation requires access to the graph figure elements, which are nothing more than patterns of bits in the device data stream. Storage of graphs in representations at a higher level than device-specific (such as in metafiles) requires processing of the representations to translate the primitives compounding the metafile to device-specific data. This processing increases the cost of sending the graph to an output device, but has the fundamental advantage that one representation is sufficient to handle a great number of devices. Storage of graphs in the form of metafiles brings diminishing reward if the ambition of a system is to support all different classes of output devices. As is known, groups or families of devices provided by specific manufacturers are often characterized in having processing or operational characteristics which are reduced to a set of fundamental primitive expressions that do not support the operations of other families of devices. In this case, more sophistication would be required in processing, increasing the complexity of the translation task and nullifying to a great extent the efficiencies that can be achieved with metafile expression storage. Another disadvantage of metafile representation is that the original graph creation process, when operated to create a metafile, is unaware of the intended output device and thus cannot apply a procedure that optimizes the graphical layout to the output device characteristics. Translation of a device-independent metafile to a device-specific representation can result in a graph having an appearance of a lower quality than a graph designed with the attributes of the output device in mind. Such a process can be understood by reference to United States Patent No. 4,800,510 which is assigned to the assignee of the present invention, and which is incorporated herein by reference. The process of adapting a graph to the characteristics of a specific output device requires the ability to modify the graph in non-geometric ways. This is possible only if the graph is described in very high level terms: the title, the axis scaling, and the legend annotation, for example, all need to be recognized as such to be modifiable in a graphically intelligent manner. The axis scale annotation, for example, cannot be modified intelligently if the text is known only as arbitrary text strings, as it would be in a metafile representation. This high level representation is called a source file and contains specifications such as graph type, graph data, annotation, etc. A source file is in effect an English language description of a graph, even though the actual format of the file may be more technical. A source file is often created by a human being and is most often human-readable. A straightforward translation of the human-readable graph description into some high-level internal data structure for use by a graph creation program in recreating the graph is referred to hereinafter as a chart primitive file. Although not all graph creation systems recognize the existence of this file, the "parsing" of a user-entered specification usually creates this data structure at some point in a graph creation process. For the purposes of this specification, chart primitive files are considered equivalent to source files in terms of their capabilities of being processed. It should be evident that storage of graphs in the very high level representation corresponding to a source file offers great flexibility to a centralized graph creation system and permits intelligent handling of modifications to the graph, but it requires the provision of a substantial amount of sophisticated processing resources. Retrieval of a graph stored in source file representation for output on a specific device becomes equivalent to the creation of the graph, requiring a large amount of processing power and time. However, such high level representations are very compact for storage and require very little processing to create. It will be appreciated from the preceding discussion that the problem of creating a graphical archive to serve the needs of many users requiring access to many graphs which are to be produced on a variety of output devices demands a flexible system permitting the storage of graphs in a variety of representational levels which can be retrieved quickly and efficiently. The provision for storage of a plurality of representational levels permits the system to be adapted to the specific functional needs of particular graph image applications, while the feature of rapid retrieval heightens the responsivity of the system to user needs. Known storage and retrieval systems do not adequately meet these objectives. For example, in the system disclosed in WO/84/02022 ("Dynamic Database Representation," Weythman), data records are represented in two different formats, one for storage purposes and another for data processing purposes. A single storage format is chosen for convenient maintenance of the database and translation programs are used to convert retrieved data into the format required by the particular processing software being used. Thus, the system in Weythman does not address the problem of archiving and retrieving graphic data stored in a plurality of representational formats. In the apparatus disclosed in EP 0138064 A2 ("Tomographic Image Processing Apparatus," Komori), tomographic image data is added to a storage medium in both compressed and non-compressed formats until the storage medium is filled to capacity, after which stored, non-compressed representations of images are replaced by new compressed image data. In this way, expansion processing of compressed image data is not required unless the storage medium is completely filled and the non-compressed data for the selected image has been deleted. However, the compressed representation of an image may not be retrieved unless the corresponding non-compressed representation has been deleted. This system therefore does not provide a means for archiving and retrieving a multiplicity of available data representations corresponding to a single graph. Therefore, it is a primary objective of the subject invention to provide an archive system supporting the maintenance of graphical images in a plurality of representations that reduces the system resources and operations required to store, retrieve, and produce a graph. The invention is based upon the critical observation that in a graphical archiving system the strategy for retrieving a particular stored representation of a graph can take into account the function intended to be performed on the retrieved image. According to a first aspect of the present invention as defined in claim 1, there is provided a method for retrieving stored graphical representations in a system including: a central computing facility with storage, processes in the computing facility for creating source file graph representations in response to user-provided specifications, processes for producing specified graph files containing representations of the created graphs in predetermined levels of machine readable expressions by translating the source file graph representations, and processes for storing graph representation files, a plurality of user terminal facilities communicatively linked to the computing facility for providing user-initiated graph creation specifications and for providing user-initiated requests which identify graphs and specify machine output or modification functions to which an identified graph is to be subjected, and a plurality of graph output devices communicatively linked to the computing facility and responsive to said graph representations for producing visible images of said graphs, the method comprising the steps of: creating and storing under user control a plurality of source file graph representations; producing and storing specified graph representation files by translating the source file graph representations; forming a table, with each of the table entries including identification of a specific graph and a listing of graph files produced and stored for the identified graph; receiving a user-generated request which identifies a graph and specifies a machine output function or a modification function to which the requested graph is to be subjected; searching to find a table entry corresponding to the requested graph, and, if the entry is found, searching the listing of graph files in the found entry according to a predetermined priority schedule to determine whether the specified function can be performed using any of the listed graph files; retrieving a useable graph file, if found, from said priority schedule; and translating the retrieved graph file to a preferred level of representation in the event that said translation is necessary. According to a second aspect of the present invention as defined in claim 7, there is provided a system for retrieving stored graphical representations, characterised by a computer with storage and including processes for creating source file graph representations in response to user-provided specifications, processes for producing specified graph files containing representations of the created graphs in predetermined levels of machine readable expressions by translating the source file graph representations, and processes for storing graph representation files; a plurality of user terminals communicatively linked to the computer for providing user-initiated graph creation specifications and for providing user-initiated requests which identify graphs and specify machine output or modification functions to which an identified graph is to be subjected; a plurality of graph output devices communicatively linked to the computer and responsive to said graph representations for producing visible images of said graphs; and retrieval process means in the computer for: creating and storing under user control a plurality of source file graph representations; producing and storing specified graph representation files by translating the source file graph representations; forming a table, with each of the table entries including identification of a specific graph and a listing of graph files produced and stored for the identified graph; receiving a user-generated request which identifies a graph and specifies a machine output or modification function to which the requested graph is to be subjected; searching to find a table entry corresponding to the requested graph and, if the entry is found, searching the listing of graph files in the found entry according to a predetermined priority schedule to determine whether the specified function can be performed using any of the listed graph files; retrieving a useable graph file, if found, from said priority schedule; and translating the retrieved graph file to a preferred level of representation in the event that said translation is necessary. Therefore, the method and system described in the specification permit the user of a graph creation system to create graph image files capable of supporting anticipated graph output requirements and to make the allocation of system storage and processing resources best suited to the user's particular needs. The preferred embodiment of the invention not only meets the stated objective but also provides other advantages and efficiencies which will become more apparent when the following description of the invention is read in conjunction with the drawings summarized below, in which: Figure 1 is a block diagram of a multi-user graph creation system in which graph creation resources are allocated to a central processing facility. Figure 2 illustrates the hierarchical level of graph image representations supported by the present capabilities of the computer graphics field. Figure 3A is an illustration representing the tabularization of created graphs by table entry. Figure 3B illustrates the tabularization of graphical output devices allocated to a user by entries identifying a device and associating a preferred file class priority with each device. Figure 4 illustrates how graph tables are used to access graph image file storage in the central computing facility of Figure 1. Figure 5 illustrates the location of the storage and retrieval process in the functional interconnection between a user terminal and the central computing facility resources. Figure 6 is a flow chart illustrating how the storage and retrieval process of the invention is invoked. Figure 7 is a flow chart illustrating the operation of the storage and retrieval process. Figure 8 is a flow chart illustrating how graph image files are searched according to a user-determined priority. Figure 9 illustrates the use of the storage and retrieval process in response to a graph modification function selected by a user. Figure 10 illustrates the operation of the retrieval process in response to a graph modification function selected by a user. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT A general purpose computer graphics system representing the operational environment of the invention is illustrated in Figure 1. In Figure 1 a central computing facility 10 includes a general purpose computer 12 and an on-line storage facility 14. The computer 12 includes software that implements graphics application and graphics production programs. As is known, graphics application and production processes respond to commands, parameters, and data specified by the creator of a graph to produce graphs on one or more output devices. User access to the centralized system 10 is had through a plurality of remote terminals such as the terminals 16 and 18. The terminals 16 and 18 are conventional data entry and monitor apparatus, each having an alphanumeric keyboard for entry of data, commands, parameters, and responses to system-generated prompts. It is understood that other methods of data entry such as graphical input devices (cursor, mouse, etc.) may also be employed by a user. Each of the terminals 16 and 18 includes a CRT display on which information from the central facility 10 can be provided to the user. The CRT permits a user to interact with the processes in the computer 12 by displaying function menus, requests for action or information, or other prompts generated by the processes, as well as representations of graphs. Graphs are also produced on hardcopy devices 20 and 22. As used in this description, the term "hardcopy device" means any computer-controlled device capable of producing a graph on paper or any other permanent hardcopy medium. Hardcopy devices can include, for example, plotters, printers, and film recorders. The hardcopy devices 20 and 22 are linked to the central system 10 through the terminals 16 and 18, respectively. It is also the case that hardcopy devices 24 and 26 can be linked directly to the facility 10. Communications between the central facility 10 and terminals or output devices are effected through communications controllers 28-34, which can comprise I/O communications processes in the computer 12 or discrete communications apparatuses such as modems. It is understood that communications controllers 28 and 30 can operate on an interactive basis with corresponding resources in the terminals 16 and 18 for interactive bidirectional communications between those terminals and the system 10. Communications with the devices 24 and 26 are essentially unidirectional, with the only interaction consisting of standard handshaking signals for initiating communications from the computer 12 to the devices 24 and 26. The graphics design application and production processes in the computer 12 permit a user to design and produce a graph. When used herein, the term "graph" includes many kinds of synthesized pictorial representations that have one or more symbols. As is known, graphs include but are not limited to, line charts, area charts, scatter grams, horizontal and vertical bar charts, pie charts, maps, tables, text pages, and other text displays, lists, and symbol diagrams, and combinations of these. Interactive computer graphics processes are well known in the art. Examples of such constructs are found in FUNDAMENTALS OF INTERACTIVE COMPUTER GRAPHICS by Foley and Van Dam, Addison-Wesley, 1982. Commercial graph creation processes are also available and include the system marketed under the trademark TELLAGRAF by the assignee of this application. In addition, the SASGRAPH system available from SAS Institute, Cary, North Carolina, provides interactive computer-assisted graph creation. A structural concept of computer graphics process systems can be understood with reference to Figure 2. In Figure 2 a first interactive graph creation process, Process 1, includes processing modules 40, 40a, and 40b. The module 40 includes an interactive graph creation process invoked by a user to create a graph. The image of the graph resulting from the process 40 is the high level source file representation discussed above. In turn, a source file produced by process 40 is translated by a translation processing module (PM) 40a to a device-independent metafile consisting of graphical primitives and attributes. In turn, the metafile representation of a graph image is translated by another processing module 40b to a device-specific file useful only for a specific output device identified by a user. A device-specific file is translated by a particular file transfer process such as the process module 42 into format adapted for transfer of the file to the output device 46. Transfer of the process to a user according to a particular communications protocol may require further translation of the processed file resulting from the transfer processor 42 by a communications controller 44 before the file can be transferred to the output device 46. Although not shown in Figure 2, it is understood that the transmission from the communications controller 44 to the output device 46 may involve an intermediate transfer through an interactive terminal or may consist of direct transfer to the output device 46. In a system comprehending a plurality of different kinds of output devices, for example, the devices 48 and 50 in addition to the device 46, dedicated file transfer processors 52 and 54 will be required to translate device specific storage files into formats designed specifically for transmission of the files to the respective output devices 48 and 50. Communications controllers 56 and 58 may also be required for further communications for formatting of the output of the processors 52 and 54. The proliferation of families of graph output devices has led to a corresponding expansion of specialized interactive processing systems that are designed to work with the families. In many cases the graph creation systems consist of process module hierarchies that are designed to produce graph image files only for the ultimate use of output devices of a certain family. Thus, for example, the graph creation system including the process 44 and the process modules 44a and 44b may create a hierarchy of files whose formats adhere to standards specifically designed to support the characteristics of a certain family of output devices and terminals. However, the proliferation of output device families and supporting graph creation processes has also led to the design of graph creation systems whose processing modules can create files that satisfy the format requirements of different graph design systems. For example, the system comprising the process 40 and the process modules 40a and 40b has the ability to create device-specific files specific to different families of output devices and also intermediate-level files that are specific to other graph creation systems. For example, the TELLAGRAF graph creation system of the assignee creates source files corresponding to high-level representations of graphs that are translated by a process module corresponding to the process module 40a into metafiles that are generic to the TELLAGRAF system as well as to other commercially-available computer graphics systems. Process products corresponding to the process module 40a are available from the assignee under the trademark DISSPOP. Translation of metafiles created by the process modules at the grapb translation level including process modules 40a to device-specific files are also available commercially. Such process modules are included in the horizontal portion of the Figure 2 hierarchy occupied by the process module 40b. The assignee provides one such product, trademarked GDFPOP. The device-specific image representations created by the third vertical level of processing in the structure of Figure 2 correspond to files created by processes known as ADMSAVE and ADMPRINT, which are trademarks registered to International Business Machines Corporation, Armonk, New York. Processing of device-specific files for transfer to output devices, corresponding to the hierarchical level of Figure 2 including the process module 42 are available from International Business Machines Corporation under the names FSSHOW and ADMOPUV. It is evident therefore that computer 12 can employ available process systems for creation of graphs in the form of source files and translation of source file graphs to various levels of representational abstraction. Further, the prior art includes many instantiations of data base management processes that accept the image representations created during graphics processing, enter them into a storage file format, and store the files in a storage facility such as the facility 14. Where used herein, the term image file refers to an abstract representation of a graph image formatted and stored by a data base process. Within the context of the invention, image files of various levels of abstraction will be retrieved from the storage facility 14 and forwarded by the computer 12 to be subjected to various functions. The functions are summarized as follows: viewing; hardcopy; editing; and data modification. These functions are to be performed on one or more specifically-identified graphs. It is further posited that there will be a preferred representation associated with each function having to do with a quality determination made by the user. The function of VIEWING consists of displaying an identified file on a CRT terminal. The preferred representation of the image would, for example, be a device-specific file consisting of a bit map. The reason for storing a device-specific bit map for viewing is to provide the speediest possible response to specification of the VIEWING function because the requesting user will be present at the terminal upon which the graph image is to be displayed. However, it is to be understood that a higher-level representation of the image can be stored, retrieved, and translated into a device specific bit map, without requiring production of a bit map for storage. The hardcopy function refers, for example, to production of a hard copy consisting of a graph on paper, a viewgraph transparency on some form of clear base, or 35 millimeter slide from an appropriate output device. Computer resource management policy might deem that graph image source files are most appropriate to fulfilling this request for the reason that a translation procedure incorporating a process that optimizes a graph layout to the particular characteristics of a selected hard copy production device operates only on source files. Management policy might specify that a metafile is the recommended representation to be obtained when the EDITING function is invoked by a user. Metafiles are generally in a form that can be displayed intelligibly to a skilled user for editing. The only practical alternate representation would be a source file, which is easily edited simply by changing the English language statements of the file. Finally, the data modification function is most efficiently performed on the human language representation embodied in the source file. Data modification refers generally to alteration of data contained in a graph, which is not easily extracted from the graph primitives and attributes of a metafile, and is even less easily comprehended in the machine-language form of a device-specific file. For data modification then, there are no practical alternatives to the source file. Figure 3A illustrates the form of a graph directory upon which operation of the invention is based. The graph directory represented in Figure 3A can be constructed as a standard multi-dimensional table that is fixed in a machine-understandable format, stored in storage that is accessible to the computer 12, and consulted whenever a user-generated function request is made for a specific graph. The directory is used in conjunction with the particular process selected for management of the image file database created by the computer graphics processes in the computer 12. The graph directory represented by Figure 3A includes a plurality of entries, each consisting of a series of consecutive fields in one dimension and, in another dimension, the representational levels into which the graph image has been translated. Each table entry in its first three fields contains a unique identification (ID) of a graph, a description summarizing the graph and the information it presents, and a field in which comments relative to the graph for its application or use are made. These initial three fields are connected by any well-known data management technique such as pointing, to another dimension containing a second group of table entry segments that are also associated with the identified graph. Each of these table entry segments includes a FILE CLASS field specifying the level of representation into which the graph image has been rendered, a NAME field uniquely identifying the file containing the specified representation, a LOCATION field pointing to the file's location in storage, and a DATE field indicating the last date on which the file was generated or altered. With respect to this latter dimensional aspect of a table entry, it might be the case that a certain identified graph has source file and metafile images. In this case the S in the FILE CLASS field of the first table entry segment represents the source file representation, while the M in the FILE CLASS field of the next table entry segment represents the metafile. Reference to Figure 3B illustrates a second table, called a Function List, available to the storage and retrieval process of the invention, which is also created and filled by a user. The Figure 3B table represents a mapping from an invoked function to a representation selection preference priority determined by the user. It is understood that overall control of the multi-user graph system of Figure 1 permits a user to identify a device which the system will have understood is invoked by selection of a function corresponding to the device. In this regard, selection by user N of the function VIEW is taken by the computer 12 to refer to scanning of an image on a CRT terminal. The DEVICE field in the first table entry of Figure 3B identifies the location of the output device invoked by selection of a function. The LOCATION field contains information relative to graph layout control parameters that optimize the production of a graph from a certain level of abstraction in a layout optimized for the particular terminal. The final field in the first table entry of Figure 3B is a priority schedule corresponding to an image level representation preference ordering determined by user N for the VIEW function. In the example, the priority specified for the first table entry is DS, M. This corresponds to looking first for a device-specific file of a graph to be viewed, followed by retrieval of a metafile representation of the graph to be viewed if the device-specific (DS) file is not available or does not exist. It is to be understood that user determined file class priority will be entered into the appropriate field for each table entry in the user's function list. Preferably, the first priority for each function would correspond to the resource management policy considerations discussed hereinabove with regard to description of the functions. As shown in Figure 4, there may exist more than one graph directory in the system of Figure 1. For example, each user may construct his own directory and make it available only to himself or to other users qualified by him. In addition, there may be a centrally controlled open directory having entries for graphs intended to be made available to all users of the system. As shown in Figure 4, table entries in a directory, such as the directory for user N, will point to specific locations in the storage facility 14 of the system 10 where the representations of the graph identified by the table entry are stored in files. The storage facility 14 will consist of real, virtual, on-line, or off-line storage devices or any combination of these. Thus, in Figure 4 the storage resource 14 is shown to encompass at least two storage devices, STORAGE 1 and STORAGE M. Use of the invention in the context of Figure 1 is represented by the diagram of Figure 5. In Figure 5, a user operating the terminal 90 and associated output device 91 will enter a request for retrieval of a graph to be subjected to a specified function. Both the identification of the graph and the specified function are forwarded to the central computer 12 which receives the request through the storage and retrieval process 94. The storage and retrieval process 94 responds to the user's identification of himself to draw upon a user profile available to the computer 12. The user profile corresponds essentially to an identitication of the requesting user and a copy of a function list such as that illustrated in Figure 3B. The function list, in addition to the information represented in Figure 3B, will also contain a list of user selection of devices for performance of specific functions. Once the priority schedule for the indicated function is retrieved from the user profile 95, a storage and retrieval process will consult a graph directory 96 corresponding to the directory represented by Figure 3A. The process 94 will scan the entries in the directory 96 until it finds the table entry for the graph identified by the user. When the proper table entry is found, the process will search the file class fields of the located table entry to determine whether there is a match between one of the representations in the user's priority schedule and a file created for the identified graph and stored in the storage 14. If a match is found, the process 94 will retrieve the stored representation at the file name location specified in the table entry for the matched class, perform whatever processing or translation is necessary to enable the specified function to be performed. The translated file will then be returned to the user through the terminal 90. Figure 6 illustrates the procedural flow for the operations described above for Figure 5. Initially an interactive process initiated by the user at terminal 90 will result in the display on the terminal of the graph directory and the provision to the user of the opportunity to make a directory request. If the user fails to find a particular graph or decides to submit no request, he will provide an EXIT request to the computer 12, which will cause the process of Figure 6 to follow the positive route from the EXIT decision. If, on the other hand, the user identifies an entry in the graph directory and makes a function request corresponding to one of the decisions 100-104 below the EXIT decision, the procedure will exit to the appropriate one of retrieval modules 106-108 and attempt to retrieve a file storing a representation of the identified graph at a level included in the priority schedule specified by the user. For example, assume the user has identified a graph and specified the HARDCOPY function. In Figure 6, the process will enter the HARDCOPY decision block 100 and take a positive exit to the retrieval module 106 labelled HARDCOPY. The HARDCOPY retrieval module 106 is shown in greater detail in Figure 7. In Figure 7, the HARDCOPY retrieval module addresses the user function list to determine the file class priority determined by the user for the HARDCOPY function. Next, the Figure 7 module enters the block titled FILE DETERMINATION. Refer now to Figure 8 for the FILE DETERMINATION procedure. When the FILE DETERMINATION module of Figure 8 is entered, the calling routine (in this example, the HARDCOPY module) has obtained from the user profile, the list of preferred file classes making up the priority schedule for the specified function (hereinafter "priority list"). The priority list is then traversed in the order determined by the user by setting a pointer to the first element of the priority list and then making a determination whether the priority list element is blank or an end of list indicator. Assuming that the priority list element is not blank and that the Figure 8 module has not yet traversed to the end of the priority list, the priority list element is compared against the entries in the FILE CLASS fields contained in the graph directory table entry for the identified graph. If the current priority list element matches a FILE CLASS field entry in the graph directory table entry for the identified graph, the associated file name of the graph is obtained from the FILE NAME field corresponding to the matched FILE CLASS entry. After obtaining the file name, an attempt to retrieve the named file from the storage resource 14 is made. Assuming the file exists, the file name and file class are retained, a file indicator is set to found, and the module returns to the calling HARDCOPY process of Figure 7. If the element in the priority list is not matched by a class listed in the graph directory table entry or if a match directory table entry file does not exist, the Figure 8 procedure pointer is incremented to the next element in the priority list and the process is iterated. If the end of the priority list is reached without finding a match, the file indicator is set to indicate that no file has been found and the module returns to the calling HARDCOPY routine of Figure 7. When the FILE DETERMINATION module causes the search and retrieval process to return to the HARDCOPY function procedure of Figure 7, the function procedure inspects the file indicator to determine whether the identified graph is contained in a file embodying a representation level meeting the user-determined priority criteria for the specified function. It the indicator informs that a file is not found, the central system 10 returns an error retrieval message to the user through terminal 90. Assume on the other hand that the graph image exists in a level of representation specified by the user priority. In this case, a retrieval procedure is called. A retrieval procedure consists essentially of a determination whether the retrieved file is in the representation level that is preferred for the invoked function. If the retrieved file is in a representation level that is in the priority schedule, but is not that preferred for the specified function, the retrieval procedure calls the translation process module required to convert the retrieved representation into the preferred level of abstraction. Thus, if the HARDCOPY module results in retrieval of a source level file, the retrieved file will be processea for the specific device upon which the HARDCOPY function is to be performed. The processing can include the layout optimization described in the incorporated patent application. Once the layout optimization is completed, the optimized source file will be translated to the device-specific file necessary to drive the identified hardcopy output device. If, however, a source-level file is not found but a device-specific file exists and is included in the user's priority listing for the function, the device-specific file, without the layout optimization process, will be forwarded for operation of the HARDCOPY output device. Reference to Figure 9 will provide an understanding of response in the context of the invention to a user request identifying a graph and specifying the VIEW function. The request specifying the graph and the function are forwarded to the storage and retrieval process 94, which obtains the list of preferred file classes from the user profile, scans the directory to find a table entry for the requested graph, and calls the FILE DETERMINATION routine. As explained above, the FILE DETERMINATION routine will return a file indicator set to flag whether any of the files produced and stored for the identified graph are contained in the preference priority of the user. After return of the FILE DETERMINATION routine, the state of the file indicator is inspected and, if no file has been produced and stored that is included in the user's preference priority, a negative branch is taken and an error message indicating retrieval failure is returned to the user. Assuming that a file meeting the user preference priority has been found, the file is retrieved, translated to device-specific bit map format, formatted for communication, and forwarded to the user. Each retrieval routine provides the user to invoke the well-known HELP function. If no help is requested by the user, the routine returns to the Figure 6 routine. If the HELP function is invoked by the user, provision is made for a conventional software editor-control function that provides the user with the ability to obtain link-level information relating to various aspects of the graph image represented by the retrieved file. The EDIT function procedure, illustrated in Figure 9, is normally invoked to permit a user to alter a graph image by direct modification of representational data contained in the file. When a graph is identified in the EDIT function invoked, the FILE DETERMINATION routine is followed. Preferably, as explained above, only source-level files are retrieved for editing. Therefore, it would be expected that the user's priority schedule for the EDIT function would be limited to the source file level, and that the EDIT procedure would return only source level representation files. However, it should be evident that a graphics programmmer having an extraordinary level of skill or intimate familiarity with graphics image representation may also desire to edit metafiles by altering graphical primitives and attributes, or data patterns in a device-specific file. In this case, the user's priority schedule would include source and metafile level entries, with source representations being preferred for retrieval, but with metafiles being also returned when no source files exist. Therefore, the invention is not necessarily limited to the practice of the EDIT function illustrated in Figure 9. It should be evident that the graph files, graph directories, and profile tables may be shared or centralized to varying degrees, without materially affecting the method or means of the invention. Thus, the graph files and directories may be shared among many users. Function ordering can be either user determined or ordained by the policy of an organization managing a system including the invention. Finally, for each table, profile, or directory that is alterable by a user, there can be a default priority schedule maintained in a central system area. Further, the different file image representations may be stored in some storage format other than simple files. This may change the mechanism for storing and retrieving an image, and may affect performance, reliability, security and other characteristics of the process, but it will not materially affect the operation or benefits of the invention. Graph representations other than those here described may also be used. As long as there is a processor capable of translating a representation, and there are benefits of the representation that would lead a user to include it on his preference list, the invention would not be materially altered. Functions other than those described here may be available for application on the graph image. Different functions would not materially affect the operation or benefits of the invention as long as there is a processor capable of performing the function and at least one representation to support the processor. The storage and retrieval method and system of the invention can include or be included in other functions, such as linked graphs, hierarchical, network, or other directory structures, searches of the directory based on data contents, exception flags, data currency, key words, or retrieval of several graphs at once. These functions would be complementary to the invention and would not affect its merits or performance as long as the basic function of identifying a graph and applying a certain function to it remained.

Claims: A method for retrieving stored graphical representations in a system including: a central computing facility (10) with storage (14), processes (40, 60, 62) in the computing facility for creating source file graph representations (41) in response to user-provided specifications, processes (40a, 40b, 60a, 60b) for producing specified graph files (42, 43, 62, 64) containing representations of the created graphs in predetermined levels of machine readable expressions by translating the source file graph representations (41), and processes for storing graph representation files (42, 43, 62, 64), a plurality of user terminal facilities (16, 18) communicatively linked to the computing facility for providing user-initiated graph creation specifications and for providing user-initiated requests which identify graphs and specify machine output or modification functions to which an identified graph is to be subjected, and a plurality of graph output devices (24, 26, 46, 48, 50) communicatively linked to the computing facility (10) and responsive to said graph representations (42, 43, 62, 64) for producing visible images of said graphs, the method comprising the steps of: creating and storing under user control a plurality of source file graph representations (41); producing and storing specified graph representation files (42, 43, 62, 64) by translating the source file graph representations (41) ; forming a table (fig 3a), with each of the table entries including identification of a specific graph (41) and a listing of graph files (42, 43, 62, 64) produced and stored for the identified graph; receiving a user-generated request which identifies a graph (41) and specifies a machine output function or a modification function to which the requested graph is to be subjected; searching to find a table entry corresponding to the requested graph (41), and, if the entry is found, searching the listing of graph files (42, 43, 62, 64) in the found entry according to a predetermined priority schedule (fig 3b) to determine whether the specified function can be performed using any of the listed graph files (42, 43, 62, 64); retrieving a useable graph file, if found, from said priority schedule; and translating the retrieved graph file to a preferred level of representation in the event that said translation is necessary. A method according to claim 1, characterised by forwarding the translated graph file to one or more output devices (24, 26, 46, 48, 50) prespecified by the user. A method according to claim 2, characterised in that the output function includes producing a copy of a graph on a hard-copy output device (24, 26, 46, 48). A method according to claim 2, characterised in that the output function includes producing a copy of a graph on a terminal display (50). A method according to claim 2, characterised in that the modification function includes altering data in a graph file. A method according to claim 2, characterised in that the modification includes altering the graph representation. A system for retrieving stored graphical representations, characterised by:- a computer (10) with storage (14) and including processes (40, 60, 62) for creating source file graph representations in response to user-provided specifications, processes (40a, 40b, 60a, 60b) for producing specified graph files (42, 43, 62, 64) containing representations of the created graphs in predetermined levels of machine readable expressions by translating the source file graph representations (41), and processes for storing graph representation files (42, 43, 62, 64); a plurality of user terminals (16, 18) communicatively linked to the computer for providing user-initiated graph creation specifications and for providing user-initiated requests which identify graphs and specify machine output or modification functions to which an identified graph is to be subjected; a plurality of graph output devices (24, 26, 46, 48, 50) communicatively linked to the computer (10) and responsive to said graph representations (42, 43, 62, 64) for producing visible images of said graphs; and retrieval process means in the computer for: creating and storing under user control a plurality of source file graph representations (41); producing and storing specified graph representation files (42, 43, 62, 64) by translating the source file graph representations (41); forming a table (fig 3a), with each of the table entries including identification of a specific graph (41) and a listing of graph files (42, 43, 62, 64) produced and stored for the identified graph; receiving a user-generated request which identifies a graph (41) and specifies a machine output or modification function to which the requested graph is to be subjected; searching to find a table entry corresponding to the requested graph (41), and, if the entry is found, searching the listing of graph files (42, 43, 62, 64) in the found entry according to a predetermined priority schedule (fig 3b) to determine whether the specified function can be performed using any of the listed graph files; retrieving a useable graph file, if found, from said priority schedule; and translating the retrieved graph file to a preferred level of representation in the event that said translation is necessary. A system according to claim 7, characterised in that the retrieval process means further includes means for forwarding the translated graph file to one or more specified output devices (24, 26, 46, 48, 50), if a produced graph file is included in the priority schedule. A system according to claim 7 or claim 8, characterised in that the graph representations and associated graph table entries are stored in a database management system and its associated directory. A system according to any of claims 7 to 9, characterised in that the priority schedule is predetermined by a centralized system maintenance staff. A system according to any of claims 7 to 9, characterised in that the priority schedule is user-determined. A system according to any of claims 7 to 11, characterised in that stored graph representations and associated graph table entries are shared among all users or groups of users of a computer facility.

Inventors: LEHMAN KENNETH A, VINBERG ANDERS B, WRIGHT THOMAS J, LEHMAN, KENNETH A., VINBERG, ANDERS B., WRIGHT, THOMAS J.
Applicants: COMPUTER ASSOCIATES INTERNATIO, COMPUTER ASSOCIATES INTERNATIONAL, INC.
Application year: 1987
Main classification: G06F17
IPC codes: G06T1, G06F17