Abstract:
Automatic orientation of predefined chemical structures in conjunction with a computer terminal employs respective protocols corresponding to a system state. The system states can include a chain state, ring state, library state, and retrieve state. Upon orientation, the object is attached according to a specified attachment command to a parent graph. The protocols corresponding to connection of the object to the parent includes rules regarding angles at which the structures can be attached to one another, and another protocol governs rules respecting rotation of the stored object through predetermined angles. Nodes of the object recalled are automatically provided with markers in alphabetic order from the most recently used marker corresponding to a letter of alphabet. Multiple alphabet sequences are used. Specification of position is indicated by inputting the lower case letter of the alphabet corresponding to the location desired. Bonds can be specified between two markers.

Description:
BACKGROUND OF THE INVENTION 
     1. The Technical Field 
     This invention is an improvement in display encoding, and deals in particular with the orientation of the objects by the addition of which a diagram is built up. As described herein, the invention relates to chemical structures, but the concept is usable with other applications, such as drafting and composition. 
     This invention is also to an improvement in display encoding, a technique for interactively entering graphic data into a computer. The improvement is due to a simplification in the orientation, marking, and display of structures on the screen of a CRT computer terminal. As described herein, the invention relates to chemical structures, but the concept is applicable to other types of diagrams, such as logical and electrical diagrams. 
     A computer may be used not only to process data, but also to facilitate the entry of these data into the computer With text input, for example, the user seemingly enters depictions of characters. In reality, he enters bit patterns, which are the codes that the computer needs. The machine translates these to graphic characters which are displayed. The input of visible graphics instead of arcane code is known as &#34;display encoding&#34;. The term, however, is usually not applied to the input of common text, but is reserved for two-dimensional constructions, such as a diagram. 
     In display encoding, an entity is entered, as is text, by being assembled--on the face of a graphic computer 13 terminal--from smaller constituents. Ease of input, however, is not the sole advantage of display encoding. Throughout the process of assembly, the unfinished entity is visible, so that it can be determined, at a glance, what has been completed, and what remains to be done. The coupling between code and display further ensures that the visible structure accurately reflects the corresponding machine code. If one is correct, so will be the other. Any errors are apparent, and may be corrected prior to the entity&#39;s completion. A further, and not insignificant advantage, is that the input structure can be saved for re-display. Coded text is always translatable into visible, legible graphics; but with other applications, reconstruction of the display may require more than the data whose entry the display facilitated. Saving the code generating the display in addition to these data, will make it possible, in subsequent retrieval, to always view the graphic representation of these data, instead of their arcane codes. 
     A characteristic facilitating the graphic encoding of chemical structures is their flexibility. The appearance of a chemical structure bears as little resemblance to the shape of the molecule as does an electric wiring diagram to the layout of the actual wires This leaves such diagrams insensitive to the distortions, that are unavoidable in display encoding. There is, however, a limit. In FIG. 1, two diagrams are shown, representing the molecule, adamantane. Both diagrams are chemically correct, as they show all the atoms and all their bonds. But this identity will not be revealed by a casual glance, nor even by closer scrutiny. Considerable practice, or pencil and paper, will be required. This difficulty is normally circumvented by an artificial similarity, a &#34;traditional&#34; appearance, that has been adopted for many classes of chemical compounds. Very subtle, and often very personal considerations, determine what distortions are innocuous, and what distortions are objectionable. 
     Display encoding offers considerable latitude in the manner an entity is assembled. A diagram might wholly be constructed line by line. But it is more efficient to use simple lines only as a last resort, and to construct an entity, when possible, with larger building blocks. Indeed, the efficiency of the typewriter results from its capability of composing text with ready made and well formed characters, which are building blocks preassembled from simple lines. 
     A computer may be used not only to process data, but also to facilitate the entry of these data into the computer. This is commonly done for the input of graphic data, such as diagrams. The data are entered by seemingly being drawn on the face of the screen of a graphic computer terminal. This is an interactive process, in which the human user repeatedly issues commands, which the machine executes, and in so doing builds the diagram. Able to work with visible graphics instead of arcane code, the user&#39;s task is facilitated. Even so, the specification to the computer of the graphic elements (or objects) to be displayed, and of the location of these elements on the face of the screen, together with the orientation of these elements, is not a trivial matter. A variety of methods have been developed to facilitate these tasks. The present invention represents an improvement in two of these, namely orientation of these elements, and screen addressing. 
     The locations on a display can be specified precisely by means of Cartesian or other coordinates. This is one form of screen addressing. It would however be tedious to have to determine the value of these coordinates, and to have to key them in. Coordinates may, however, be obtained implicitly, thereby avoiding the necessity of keying them in, relieving even the operator from having to know their values. A number of approaches have been developed for obtaining coordinates implicitly. On a typewriter, for example, the type-guide indicates the location where a typed character will be printed. This location can be changed by depressing certain keys, called &#34;function&#34; keys: the space bar, the back space, the carriage-return, and others. On computer terminals, these same keys move a cursor. The cursor&#39;s coordinates can be determined by the computer&#39;s program as needed, without the human operator having to be importuned, or even being aware of this. 
     The drawing of a diagram, positioning all lines and characters by means of the above keys, would still be very cumbersome, even-though coordinates are obtained implicitly. The cause is the limited range of motions allowed by the above function keys. These permit the operator to progress only horizontally or vertically, usually in increments not exceeding the width or the height of a character. Graphic terminals, therefore, are often provided with additional function keys, called &#34;cursor&#34; keys. There are several of these, each engraved with an arrow, one pointing up, one down, one left and one right. If one is depressed, the cursor moves continuously, until the key is released, in the direction of the arrow. 
     More sophisticated yet is the &#34;light pen&#34;. The computer senses the motion of the &#34;pen&#34; on the face of the terminal. Internally, it detects and computes the corresponding coordinates. It then displays a trace at the pen&#39;s location, the process being executed so rapidly that the input operator is under the impression of drawing free-hand. The user may also use the light pen to point at items (these are called &#34;primitives&#34; or &#34;fragments&#34; or &#34;building blocks&#34;) on the screen, thereby selecting one of them, and even to drag it to another location on the screen While this goes on, the computer records, unobtrusively, both the identity and the new coordinates of the repositioned item. 
     Notwithstanding such sophistication, the light pen is not ideal. For example, keeping the hand raised to the screen for any length of time causes fatigue. Consequently, a number of alternatives to the light pen have developed: &#34;Rand&#34; or &#34;graphic tablet&#34;, &#34;joy stick&#34;, &#34;mouse&#34;, &#34;thumbwheel&#34;, &#34;knee controls&#34;, &#34;track ball&#34;, &#34;touch pad&#34;, &#34;touch screen&#34;, etc. The variety of these approaches is evidence of the effort to the facilitation of graphic input. 
     And yet, none of these devices overcomes all the problems inherent in the light pen. Because a character can be typed faster than it can be drawn with a pen, the keyboard cannot be dispensed with. Yet keyboard and light pen (or its equivalents) do not, from the ergonomics point of view, mix well. The alternation between light pen and keyboard taxes the operator. Typing, often done blindly, by &#34;touch&#34;, must be interrupted to pick up the pen, requiring the typist to look away from the screen. The keyboard is a digital device, whereas the light pen is an analog device. Touch typists are able to type blindly because typewriter keys are located at fixed positions, evenly spaced, not too far apart yet sufficiently separated to be distinct. With the light pen, in contrast, the target that must be reached on the screen can have many positions It cannot be reached blindly; it requires hand-eye coordination. Unlike the keys, it cannot be reached with a simple motion. Studies in human factor analysis have revealed that subjects waver when pointing at an object. Initially, the target is overshot or undershot, requiring a number of adjustments to &#34;zero in&#34; on it with the required precision. 
     A difficulty in the construction of graphs from various predefined objects is the fitting of such objects to the parent graph. An object is not allowed to come too near, nor to touch, any part of the graph except through its point of attachment. Therefore, a fit may not always be possible, no matter what the object&#39;s orientation. 
     With complex graphs such as those used in chemistry, parameters can be used which are hereinafter referred to as N4 parameters, which define the orientation of objects to be attached to the parent graph, and are the most troublesome to specify. Commands such as `rotate by 30 degrees` may not provide sufficient flexibility; if expanded to permit specification of the actual number of degrees, the user is generally unable to estimate that number, so that multiple trials may be necessary. Nudging an object with a light pen is slow and requires skill. The same object may be made available in different orientations, but, the larger the number of objects shown, the more extensive will be the menu wanderings required to locate any object. If, to reduce clutter, fewer objects are offered in menus, more of the input will have to be entered by means of simple lines or simple objects, thereby reducing the speed of the input process and rendering it more tedious. All these difficulties increase with the complexity of the graphs. 
     2. The Prior Art 
     U.S Pat. No. 4,085,443 to Dubois et al relates to a keyboard operated apparatus for coding and display of chemical structure and other graphical information. A cursor indicates on the display the part of a structural formula which is subject to the next keyboard operation. Alphanumeric characters identify atoms at nodes. The type of bond in any of eight directions from a node toward another node can be registered and displayed. Registering a bond at a particular node, by character and direction, causes the cursor to relocate to the node at the other end of the designated bond. Other movements of the cursor can be effected by the space bar, with the use of directional keyed instructions. FIG. 4 is noteworthy. This patent does suggest entering of graphical information on the keyboard of chemical structures, position by position, by operation of a direction key 5. This would evidently permit attachment of additional input figures, element-by-element, from a predetermined initial cursor position. 
     U.S Pat. No. 4,205,391 to Ulyano et al teaches inputting to a computer alphabetic as well as topological graphic data, and in particular, the structural formula of chemical compounds. An encoding tablet is provided, as well as an electronic writing means. FIG. 2 is noteworthy. In this device, graphical data is obtained by inputting the graphical data using a pickup sensor 5, symbol generator 17, coordinate pickup 4, and changeable writing member 38. The sensor 24 is used to check that the changeable writing member 38 touches the surface of the writing tablet 1. Other sensors 41,42 indicate axial position of the writing member 38. 
     U.S. Pat. No. 3,256,422 to Meyer et al relates to an apparatus for automatic encoding and retrieval of topological structures, such as chemical structures. In Meyer, as seen in FIG. 6, a scanning means is employed for coding the structures desired. A coded sheet having a standardized grid is required in order to encode the structures. Optical or light-sensitive scanning means are employed in this patent. 
     U.S Pat. No. 4,473,890 Araki, teaches a method and device for storing stereochemical information about chemical compounds. Three-dimensional structures of compounds are stored by supplying the coordinates of the atoms in a three-dimensional space represented by X,Y, and Z coordinates. 
     The entire disclosure of U.S. Pat. No. 4,476,462 to Feldman, issued Oct. 9, 1984 and filed on Nov. 16, 1981, which has been assigned to the U.S. Department of Health and Human Services, as described hereinabove, is expressly incorporated herein by reference in its entirety. 
     SUMMARY OF THE INVENTION 
     Automatic orientation is shown of chemical structures in conjunction with a computer terminal or the like. The invention is not limited to use with a computer terminal nor to use with chemical compounds, but can be extended to any computer-driven display for displaying any type of graphical information wherein graphical units (i.e. predetermined structures, such as for electrical diagrams, architectural diagrams, and the like) are stored, and detailed rules are provided regarding the angles at which such structures can be attached to one another. Such rules also determine the precise location at which additional structures can be added. 
     In this invention, each object specified has a &#34;standard&#34; orientation. Orientations are then automatically rotatable by 90 degrees as required for the computer to fit the object selected to the attachment points specified. All 90 degree rotations possible are tried by the computer before selection of a new, alternative shape for the structure will be specified. In chemistry especially, this is possible since there usually are a variety of ways of showing a particular chemical structure, other than the &#34;standard&#34; shape. 
     Furthermore, once a site has been selected for adding an object, a computer list is maintained of the angle pairs possible with the new structure. This permits precise determination of preferred orientations of chemical structures in readily identifiable standard manner. Automatic orientation takes into account all of the rules specified for each of the stored structures. Furthermore, user-defined structures are used within the program by reference thereto. Flipping of such structures is permitted to make mirror-images thereof. 
     Thus, a graphical display is made by positioning a cursor, whether by a light pen, cursor control from a keyboard, or the like, to move a cursor to a particular position, and an object is then selected. Automatically, the cursor is re-positioned at a predetermined point on the object specified. Alternatively, predetermined attachment points can be readily moved to by cursor control if necessary. From any predetermined attachment point, a new object can be specified and added, while being automatically oriented, without additional input from the user. 
     Another aspect of the invention shown herein relates to storage of icons or figures, each of which has labels thereon. Once recalled from storage, the stored figure permits positioning of the cursor thereon at selected locations thereof, by depression of a keyboard character, which corresponds to an identical character on the stored figure. Upon depression of the character, the cursor relocates there and permits attachment of the figure to another entity or figure selected. This permits precise attachment of one entity to the following entity, the attachment being automatic and precise. 
     This invention is particularly useful for specifying chemical structures, but is also useful in mechanical diagrams, electrical diagrams, and logical diagrams among many other uses. 
     An actual example of display encoding is the input of chemical structures. A chemical structure is a labeled graph, representing the architecture of a molecule in that each of its nodes represent an atom--each denoted by a chemical symbol--and each of its edges represents a chemical bond. It has been found that, in chemical structures, particular groupings of atoms tend to recur more frequently than others. Notable examples are rings and chains. These can be made into building blocks for the purpose of display encoding. 
     Dealing with a larger number of &#34;objects&#34; than the letters of the alphabet, dealing with two-dimensional space rather than with the linear arrangement of text, display encoding must surmount difficulties that can be far greater. These difficulties are reflected in the parameters that must be specified. These parameters define specific functions. They are listed below and numbered for later reference. 
     N1-This parameter defines identity. The potential variety of subassemblies or objects from which graphs may be constructed is very large. Furthermore, different sets of subassemblies are likely to be useful. To be selected in the construction of a diagram, these must all be identified. 
     N2-This parameter defines the intended location at which the above objects are to be placed. With text input, one letter usually follows the preceding one. In display encoding, the desired location must usually be specified explicitly. Requiring x- and y-coordinates, this is an example of a parameter using multiple items of data. 
     N3-This parameter defines the connection at the locus given by N2. Implied is the rigidity of the connection. The junction between the characters of text is rigid; only one orientation is acceptable. But the subassemblies of a graph can be connected with the parent graph through a single point, or by sharing a line, or in a number of other ways. There are degrees of rigidity, or degrees of attachment; several orientations may be compatible with the specified connection. 
     N4-This represents one or more parameters that indicate the orientation of the subassembly. In text, the normal orientation of a character is assumed. But if the character should be part, for example, of a caption that labels the y-coordinate of a graph, then its orientation will be changed by 90 degrees from the horizontal. This will have to be explicitly indicated. 
     Given a character, the purpose of its orientation is to make it agree with the orientation of the other characters on its line of text. In display encoding, as mentioned, the connection specified by N3 may be so rigid, that it allows for but a single orientation. But frequently, the connection specified by N3 is loose enough to allow for several orientations. The purpose of orientation then becomes different. Its purpose then is to fit the irregular contour of an object into the space available for it on the parent graph. 
     N5-This is required in systems that allow users to define objects for subsequent use. Such objects may be constructed normally, and may be identified with a N1 type parameter. But it is necessary to indicate, in addition, that they be stored for recall, and how they should attach to the parent graph. This requires additional parameters. 
     It is evident that the potential difficulties inherent in the specification of so many and so diverse a set of parameters may be formidable. Considerable ingenuity has been devoted to facilitate their specification. 
     The input of text is so common, that much of the logic required for the translation of key codes to character depictions is &#34;hard wired&#34; in terminals. So far, this has not been done for the capabilities required for display encoding. The required logic is normally implemented by means of programs running on a computer. 
     With simple displays, such as text, it is often possible to use &#34;default&#34; values for the required parameters. Default values are assigned beforehand, and take effect unless explicitly changed. Thus, in text, a character will always be placed to the right of the preceding character (parameter N2), unless a carriage-return, a tabulator, or similar command is used to override it. 
     Where the use of default values is impractical, other stratagems may be resorted to. A typewriter facilitates the selection of characters (parameter N1) by providing one key to each, and by further arranging these keys in such a manner that the most frequently used ones will be located in the most accessible part of the keyboard. 
     Because of their numbers, their variety, and their volatility, it is generally not practical to assign &#34;dedicated&#34; keys to all the objects used in the construction of a chemical structure or other graph. An alternative is to designate them by name or by code. A more ingenious approach is to allow the user to &#34;pick&#34; such objects from a &#34;menu&#34; that appears on the terminal&#39;s screen. 
     The N2 parameter may be specified by keying in actual coordinates. It may also be done by pointing at the desired location with a light pen, or by keying the symbol of a marker that has previously been positioned there. 
     The values used to specify the N4 parameters exhibit, perhaps, the widest variety. There are specific commands, such as &#34;rotate&#34; and &#34;flip&#34;. An object may also be oriented by nudging it with the light pen, not unlike a tugboat maneuvering a large vessel into its berth. For a line whose starting point has been specified, both length and orientation are determined by its end point. And an object may appear on a menu in multiple orientations, so that one has to pick the desired object in the desired orientation. 
     One aspect of the invention is a method to facilitate the specification of one of the above parameters, namely N4, which specifies the orientation and to orient recalled objects with sequentially indicated nodes. 
     The orientation method performed automatically according to one aspect of the present invention has the following advantages. 
     The command structure, as described below, is simpler. With simpler and fewer commands, the encoding process is faster. Because of the symmetry inherent in automatic orientation, the layout of the graphs obtained with the method of the present invention tends to be more regular, hence more esthetically pleasing, than graphs generated by the usual methods. 
     The present inventive improvement in screen addressing takes advantage of the fact that, in display encoding, diagrams are constructed by attaching new entities to those already in place on the screen. A graph is begun by bringing up on the screen an entity, a character, a line, or any other building block. This first entity, of necessity a standalone, need not be positioned with the maximum precision afforded by the resolution of which the display is capable. Usually, the entity is placed roughly either in the center of the display, or in the top left quadrant. But the entities entered subsequently must be attached, and therefore need to be positioned with precision. 
     Another aspect of the present invention relates to marking of potential attachment sites, use of the markers for positioning of the cursor, and use of the markers for automatic replacement by a chemical symbol. 
     If an entity is to be attached to a point of the graph on display, then that point&#39;s coordinates are already known to the computer program that manages this display. As described below, the present invention implements a strategy for marking each potential attachment site. To attach an entity at a particular site on a diagram, it is then necessary only to identify that entity, and to specify the marker indicating the site of the attachment. That specifies the corresponding coordinates with precision. 
     The marker is a character, and it is selected by depressing, on the keyboard, the key bearing that character. Depressing this key will not, as is normal, cause that character to print. Instead, the computer program will cause the cursor to jump to the site marked with that character. The user next identifies the entity to be placed there. For example, if a four-atom chain is wanted, that chain--assuming everything else to be set up correctly--can be specified by entering the number 4. That will cause a four-atom chain to be drawn, attached to the site indicated by the cursor. In this manner, that chain (or other entity) is accomplished with precision, quickly, without wavering, without requiring the operator to remove either the hands from the keyboard, or the not least, the expensive hardware that is associated with the light pen, or, its equivalents, is superfluous. 
     The automatic system of the present invention is capable of fitting more objects into a graph than systems currently available for including chemical structure. This is due to the fact that, in the event of a failed test, the system of the present invention may make available an alternate object which, though diagramatically equivalent, has a different shape. The system will try to fit this by orienting it, as it did for the primary object. Therefore, the chances of achieving a fit are improved. 
     No manual system can practically have recourse to this solution, since even if objects were to be supplied in a menu in alternate shapes, it would be very difficult to translate and rotate an object mentally to gauge which shape, if any, and in what orientation, the shape is likely to fit. 
     Should the system of the present invention fail to fit an object onto the parent structure, an apologetic message will be issued. The user is still then able, by means of single bonds and atoms, to enter the object although in a distorted but chemically correct manner. 
     Although the orientation of objects is automatic, the system of the present invention produces structures in their traditional appearance. When generated directly from code, structures tend to lose their traditional appearance. That is because a structure&#39;s code, which is a connection table, is devoid of information concerning what constitutes a traditional appearance. The present inventive method works because it merely orients objects that tend to correspond to traditional subassemblies. It thereby retains the traditional appearance of chemical structures. FIG. 1 illustrates the difference. 
     FIG. 1 illustrates two equally correct representations of the molecule adamantane. FIG. 1(a) shows an unconventional but correct representation of the molecule; FIG. 1(b) illustrates a more conventional and recognizable representation of the same molecule. As discussed above, the identity of these two figures (a) and (b) is not apparent at a single glance. 
     The system of the present invention requires a &#34;graphic&#34; computer terminal, discussed in detail hereunder, of medium or high resolution. It does not require accessories such as a &#34;light pen&#34; or a &#34;mouse&#34;, which are available on only some terminals, and then usually as expensive options. 
     The system of the present invention provides two types of objects for attachment to the parent graph. These are objects which are supplied by the system, and objects that have been created by the user which are stored in anticipation of future use. The objects supplied by the system include chains of atoms and rings of atoms. Some of the objects stored have alternate permissible shapes, which are also stored and selected by the system when the primary object will not fit, or cannot be fitted. The chains, at one of their extremities, have a bond, called the &#34;merging&#34; bond. That is, the bond is unattached at one end. Through this bond, these chains will connect to the parent graph. 
     Users can also create partial structures and store them in anticipation of future need, thereby increasing the variety of objects available for attaching to the parent graph. These are called &#34;user-defined&#34; or &#34;predesigned&#34; objects. These objects are of necessity entered with only a single orientation. This becomes their &#34;standard orientation&#34;. 
     The system alters neither stored objects nor their orientation. In attempting to attach an object to the parent graph, it will manipulate only a copy of the object. The original remains available for subsequent use. 
     While system-supplied objects and user-defined objects differ in their origin. they do not differ in their interactions with the parent graph. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1(a)-(b) shows two representations of a molecule; 
     FIGS. 2(a)-(c) illustrates system-supplied objects; 
     FIGS. 3(a)-(c) illustrates computation of angle-pairs; 
     FIGS. 4(a) and (b) illustrate the imaginary bond of spiro connections; 
     FIGS. 5(a), (b), and (c) illustrate three similar angle-pairs which are obtained with different ring orientations or attachment points; 
     FIGS. 6(a) and (b) illustrate implied commands; 
     FIGS. 7(a)-(d) illustrate unconstrained orientation in the &#34;ring&#34; state where the object has no merging bond and the connection code is 0; 
     FIGS. 8(a)-(d) illustrate unconstrained orientation when the system is in the ring state where the object has no merging bond and the connection code is 1; 
     FIGS. 9(a)-(c) illustrate unconstrained orientation in the ring state where the object has no merging bond and the connection code is 2; 
     FIGS. 10(a)-(e) illustrate unconstrained orientation where the object has a merging bond in a chain state; 
     FIGS. 11(a)-(h) illustrate constrained orientation with a bond-interfacing object in a chain state; 
     FIGS. 12(a)-(p) illustrate constrained orientation in a ring state with an atom-interfacing object; 
     FIGS. 13(a)-(c) illustrate constrained orientation in a ring state with an atom-interfacing object and a different connection code from FIG. 12; 
     FIGS. 14(a)-(c) illustrate correction of automatic orientation in a ring state; 
     FIGS. 15(a)-(c) illustrate use of a &#34;flip&#34; command; 
     FIG. 16 illustrates a chain before addition; 
     FIG. 17 illustrates movement of the cursor to marker &#34;b&#34;; 
     FIG. 18 illustrates attachment of a four-atom chain at marker &#34;b&#34; of FIG. 17; 
     FIG. 19 illustrates connection of a line between two specified locations; 
     FIG. 20 shows addition of a bond to a marker; 
     FIG. 21 shows alteration of a diagram to include a chemical symbol; 
     FIG. 22 shows substitution of markers by atoms; 
     FIG. 23 shows assignment of markers upon request; 
     FIG. 24 shows automatic assignment of alphabetic letters to recalled chains; and 
     FIG. 25 shows a flowchart illustrating the choices available to the user. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The present invention is disclosed in a preferred embodiment utilizing a standard version of the Model HP 2623A Graphics Terminal Keyboard manufactured by the Hewlett-Packard Company of Palo Alto, Calif. in conjunction with a DEC SYSTEM 10 computer manufactured by the Digital Equipment Corporation. A listing of instructions for a specific program embodying the present invention with the aforementioned equipment is provided in Appendix I attached hereto. It is to be understood that the equipment and program specifically described and illustrated herein are examples of a preferred embodiment only; in other words, the present invention can be performed with other equipment and other programs and should not be limited to the specific embodiment disclosed herein. 
     FIG. 2(a) illustrates system supplied objects having standard ring shapes. The number of atoms in a ring ranges from 3-8 atoms connected by corresponding bonds, and includes one element having seven atoms and two double-length bonds. Other ring-shaped objects could also be used, and the addition of any such ring-shaped objects as system supplied objects are contemplated as being within the scope of the present invention. 
     FIG. 2(b) illustrates secondary ring shapes for the three atom ring, the four atom ring, and the five atom ring. These secondary ring shapes are to be used by the computer in the present invention when the standard ring having the same number of atoms cannot be placed or added to the parent graph in a proper fashion, e.g. without touching other structures except at the connection point, or without going off the page, etc. Thus, it is seen that these secondary ring shapes are rotated through an angle relative to the corresponding shapes of the preceding FIG. 2(a). 
     FIG. 2(c) illustrates system-supplied objects having chain form. Both short (linear) and long (jagged) chains are stored in the computer system. Upon recall, as described hereunder, the dots appearing between the dashed bonds would be replaced by alphanumeric characters. This replacement is discussed hereunder with respect to FIGS. 16-24. 
     Before an object can be attached to the parent graph, the common boundary between them, called an &#34;interface&#34;, must be specified. A number of parameters must be specified, among them the N2 and N3 parameters. 
     Interfaces can range from simple to complex. The simplest ones consist of a bond, the more complex ones share one or more atoms. If the interface is constituted solely of a bond, then all the atoms of the parent graph lie to one extremity of this bond, and all the atoms of the object lie to its other extremity. If one or more atoms participate in the interface, then these atoms, as well as any bonds connecting them, will have belonged, before the connection was made, separately to both parent graph and object. The connection was made by overlapping, or &#34;fusing&#34; these atoms and bonds. Atom interfaces involving a single atom are referred to, in common chemical parlance, as &#34;spiro&#34;; atom interfaces involving two or more atoms are denoted as &#34;fused&#34;. 
     
                       TABLE I______________________________________Interactions between objects and parent graphs               objectparent-graph     connection               inter-   interface                               illustratedinterface code      face     obtained                               in FIG.______________________________________bond      --        bond     jointed                               11, 15atom      --        bond     jointed                               10bond      0         atom     jointed                               12atom      1 or 2    atom     hinged 13, 14atom      0         atom     spiro  7atom      1 or 2    atom     hinged 8, 9______________________________________ 
    
     As for the site of the interface, the N2 parameter, it must be specified independently both for the parent graph, and for the stored object. For the stored object, this specification could be made either at the time it is used, or when it is stored. The former renders these objects more versatile, because any atom or bond then can serve as interface; the latter simplifies their use, because it avoids the necessity of specifying that interface when requesting the object. In the present system, the location of the interface--the N2 parameter--is specified when a predefined object is stored, but the nature of the interface--the N3 parameter--is specified when the object is used. 
     A. ORIENTATION OF OBJECTS 
     When recalled from storage, objects can be oriented. The number of potential orientations varies. It depends, in part, on what the specified interface, the N3 parameter, allows. Atom interfaces that consist of two points permit the object to be placed only against either one side or the other of the hinge line connecting these points. Bond and spiro interfaces, which consist of a point, accommodate orientations obtainable by rotating the object around this point. Rotations, however, are performed only in increments that are multiples of 90 degrees. Potential orientations are further limited by available space; as mentioned, an object is not allowed to come too near, nor to touch, any part of the graph except through its point of attachment. Automatic orientation consists of the selection of one orientation from these potential ones. 
     The system of the present invention selects one of the potential orientations on the basis of coupling rules. There are two such rules. One is applicable to objects that are rotated around a point or joint, hereafter called a &#34;jointed&#34; interface, the other is applicable to objects that have a &#34;hinged&#34; interface. Not all orientations are automatic. In addition to being rotated or hinged, objects may be changed into their mirror-images, or flipped, as illustrated in FIG. 15. The user accomplishes this by entering a &#34;flip&#34; command, as described hereunder. Flips, useful only with asymmetric objects, are rarely executed, however. Most orientations are automatic. 
     B. COUPLING RULES 
     B1. Coupling Rules for Jointed Interfaces 
     FIGS. 3(a)-(c) illustrate computation of angle-pairs. The order in which angle pairs are selected is governed by a preference list (protocol), as follows: 
     Preference List for angle-pairs (in degrees) 
     180,180 
     135,225 or 225,135 
     135,135 
     90,90 
     135,90 or 90,135 
     135,180 or 180,135 
     As an example, in FIGS. 3b and 3c, the two joints shown yield the angle-pairs 135,135 and 45,225, respectively. The former, being higher on the preference list, determines the corresponding orientation. This is an example of the use of a protocol. 
     If, because of an obstruction, the object, in the orientation determined from the preference list (protocol), cannot be fitted on the parent graph, then the system will attempt another orientation, provided it has the same angle-pairs. Failing that, it will attempt to use an alternate object, if available. Failing that, it will issue an apologetic message. Under no circumstance will it use an orientation with an angle-pair lower than the best. 
     With jagged chains, interpretation of the protocol becomes somewhat more complex, as the system will attempt not only to orient the chain in the appropriate direction, but will also try to keep the pucker regularly alternating, avoiding any discontinuities. 
     On system-supplied rings, the interface is not indicated. Any atom may be used, as they are all equal members of the rings. Nevertheless, because of graphic considerations, the appearance of the rings&#39; sides and angles is uneven. The rings, consequently, can be oriented according to evaluation by the preference list. Should the same angle-pairs be obtained with different orientations, as in FIGS. 5 and 10(d), secondary considerations are deciding, namely equality of length of the adjoining sides (FIG. 5b) and, should that not suffice, the preference criteria of the list of rotations, below. Arbitrary considerations, based merely on aesthetics, may additionally be used (see FIG. 5). 
     B2. Coupling Rules for Hinged Interfaces 
     Hinged interfaces are obtained by rotating the object (a ring or ring system) until the designated side is lined up with the corresponding side of the parent graph. 
     The order in which successive orientations are attempted by the system is also governed by a preference list, which follows: 
     Preference list for rotations: 
     first, try standard orientation 
     rotate standard object by 180 degrees 
     rotate standard object by -90 degrees 
     rotate standard object by 135 degrees 
     Note that the object may appear on either side of the hinge line (cf FIG. 14). In the absence of impediments, placement of the object against either side is at the system&#39;s discretion. If the wrong side was selected by the system, the user may remedy this with the retry command. The retry command, which is described below, rejects the current orientation, then allows the same rules to apply again while preventing rejected orientations from appearing. 
     C. THE COMMANDS 
     C1. Implied Commands 
     It is the burden of commands used in display encoding that not only must they convey the many parameters mentioned above, with their diversity, their multiple elements of data, and their complex definitions; but they must further do this efficiently, minimizing the inconvenience to the user. 
     The explicit specification of all necessary parameters is consequently intolerable. Prominent among the alternatives that have been devised is the already mentioned use of default values. Further, since the selection of an object is easier by pointing at it on a display than by alternative N1 specifications, many systems offer the use of a &#34;light pen&#34;, or an equivalent. 
     With orientation being performed automatically, the parameter load according to the present invention is reduced. For the remaining conventional commands, default values are, of course, provided. In addition, the system of the present invention offers the use of &#34;implied&#34; commands. 
     Implied commands are defined by the position of the cursor relative to an atom or a bond. They work as follows. If the cursor&#39;s position adjoins an atom, that expresses an &#34;S1&#34; command, resulting in a requested object becoming oriented in a particular manner. If the cursor&#39;s position adjoins the unattached end of a bond, that expresses an &#34;S2&#34; command, resulting in a requested object becoming oriented in a different manner (see FIG. 6). The S1 and S2 commands convey N4 parameters. Their meaning is explained hereunder. 
     To be executed, implied commands must be activated. They are activated by another command that requires depressing a key, such as a request for an object. This is also discussed hereunder. 
     These implied commands have been devised in the present invention because, on the average, they will require fewer keystrokes than conventional commands. If, for example, an N4 parameter--specified by implied command--requires the cursor to be located at the unattached end of a particular bond, it may not be necessary to place it there deliberately. The cursor may already be there, having gotten there as a consequence of entering that particular bond. If now this bond is to be used as a jointed interface to a chain, it will be necessary only to depress the key that calls the chain; no further command will have to be entered to specify its N4 parameter. Similarly, if the cursor is to be located next to an atom, there is at least a probability that it did not have to be placed there on purpose, but got there as a consequence of the preceding command. In these instances, the depression of a single key, to obtain, say, a system-supplied object, triggers a series of automatic operations that result in the assignment of default values to command, and consequently in the selection, interfacing, orientation and display of the requested object. 
     C2. Express Commands Requesting Objects 
     Inasmuch as one aspect of the present application is concerned with the orientation of objects, and not with an entire system of coding chemical compounds, detail on the N1 and other parameter specifications is provided here only insofar as it relates to the description of automatic orientation. 
     Basically, the system has a &#34;Ground&#34; state, a &#34;Ring&#34; state, a &#34;Chain&#34; state, a &#34;Library&#34; state, which is entered when an object is stored for future use, and a &#34;Retrieve&#34; state, which is entered when requesting a user-defined object. 
     A state is entered by depressing a particular key. The nature of this key is immaterial; on keyboards provided with these, it is preferably a programmable function key. On the HP-2623A computer terminal, for which this system is implemented, such keys are not available, because all the available programmable function keys are used for the entry of bonds. On this machine, a particular state is entered by depressing a particular key, which then does not print--the &#34;meaning&#34; of the key is changed--but causes the system to enter the particular state. The Library state, for example, is entered by depressing the &#34;underline&#34; ( -- ) key, and the Retrieve state is entered by depressing the colon (:) key. Actuating the carriage-return key returns the system to the Ground state. 
     The interpretation of meanings that the system of the present invention gives to the keys is defined by the &#34;state&#34; of the system. In the same state, the same keystrokes produce the same results. In different states, at least one, and possibly more than one key, is interpreted differently. Typing the digits 3 through 8 in the Ring state produces a display of rings of corresponding sizes; in the Chain state, typing the digits 1 through 9 produces chains of corresponding lengths. In neither case are these digits displayed. 
     User defined objects are retrieved in a similar manner, except that the user defines the designations that recall the objects 
     C3. Commands Specifying the Connecting Site 
     The system of the present invention allows the use of &#34;cursor&#34; keys, which are usually provided on graphic terminals, and which allow the user to move the cursor to the locations where an object is to be placed. The present inventive system provides additionally a method of using &#34;markers&#34; to move the cursor to such positions. Either way, selection of the desired connecting site is indicated on the display by the vicinity of the cursor. 
     The N2 parameter must be specified for both the parent graph and the predefined objects. On the parent graph, this specification is made just before the object is requested; on the object, it is done prior to storage. 
     C4. Commands Specifying the Interface 
     The N3 parameter specifies the nature or degree of the interface joining object to parent graph. As already mentioned and as summarized in TABLE I, this interface can consist of a bond or of one or more shared atoms. 
     The N3 parameter is specified by means of a numerical code. With a value of &#34;0&#34; it specifies a bond or spiro attachment, with value &#34;1&#34; it specifies the fusion of one side, and with value &#34;2&#34; it specifies the fusion of at least two adjacent sides. FIGS. 7, 8, and 9 illustrate the use of these connection codes. 
     The N3 parameter is always entered immediately preceding the object3 s N1 specification, as shown in FIGS. 7-9. If omitted, a default value takes effect. Default values for the N3 parameter are 0 and 1, depending upon the N4 command, which is addressed next. 
     An explanation is useful about the extension of the interface. If jointed or spiro, the interface has no extension, but if fused, it will encompass two or more atoms. In the first instance, the position of the cursor, set by the N2 parameter, specifies the location of the interface adequately, but in the second instance, the cursor shows only one point along an interface with greater extension. This point, however, can be chosen so that it defines the entire interface. As also described in U.S. Pat. No. 4,476,462 to Feldman, the bonds in the present system have &#34;direction&#34;. It is therein possible to distinguish the bonds leading into an atom, from those leading away from it. By placing the cursor next to the atom situated at the &#34;base&#34; of the interface--defined in the present system as the atom into which the interface bonds lead--the interface is specified. It may be specified ambiguously, as more than one bond may lead into the same atom. Such instance, however, are not too common. They can be resolved by using the retry command. 
     With an interface consisting of 3 atoms or more, the location of the interface is determined solely by the bond adjoining the base atom. The direction of the second bond is irrelevant. That again leaves room for ambiguity, as shown in FIG. 14. But, as this figure further illustrates, this too can be resolved by using the retry command. 
     C5. Commands Specifying the Orientation of Requested Objects 
     Since the objects in the system of the present invention are oriented automatically, the commands used to specify N4 parameters, in the main, serve not to orient objects, but to specify the degree of autonomy granted to the system. One command is used to flip objects. The following are the available N4 commands. 
     
                       TABLE II______________________________________Command     Operation______________________________________S1          Orient object without constraints.S2          Orient object within the limits of certain       constraintsS3          Retry. Orient object in accordance with       last specifications, but avoid       orientations already attempted.S4          Flip. Transform object into its mirror       image.______________________________________ 
    
     S1 and S2 are implied commands. The &#34;retry&#34; command works through the &#34;delete&#34; key which, when depressed, erases the most recently entered object. The &#34;delete&#34; key is indicated throughout as the letter &#34;DE&#34;. If next requested, that object will assume a different orientation. The flip command is made available when a user-defined object is requested. Use of the &#34;flip&#34; command is illustrated in FIG. 15. 
     Unconstrained orientation means that no restrictions are being imposed by the user. The system, of course, is subject to the several constraints already discussed: those imposed by the N3 parameter, and those resulting from the limits of the available space. 
     The (implied) S1 command is invoked by requesting an object while the cursor is either alone (i.e. located more than one space away from the nearest character or bond), or adjoins an atom of the parent graph. 
     Requesting an object with invocation of the S1 command has the following effect. If the requested object does not possess a merging bond, then a hinged interface will result, specified by the value of the N3 parameter. The object will be oriented according to the preference criteria of the list for rotations (FIGS. 7, 8, and 9). If the requested object has a merging bond, then that bond will participate in a jointed interface, and the object will be oriented according to the preference criteria of the list for angle-pairs (FIG. 10.). If the cursor is alone, then the object is displayed in its standard orientation, not connected to the parent graph, if any. If it possesses a merging bond, this bond will be lost. 
     With unconstrained orientation, the default value of the N3 parameter is 1. This means that typing 15, for example, would produce the same display as typing 5. 
     In the system of the present invention, automatic orientation can be partially or fully inhibited. This improves its versatility. In general, automatic systems are more flexible to the extent that their automatic features can be overridden. 
     Constrained orientation is invoked by means of the (implied) S2 command. This is activated when an object is requested while the cursor adjoins the unattached end of a bond. This bond is called a &#34;pointer&#34; bond. It is the direction of this bond that restricts the orientation that objects may assume. 
     The pointer bond can be used to connect with objects that either have a merging bond, or that do not have one. The effects are as follows. 
     When connecting with objects possessing a merging bond, this bond and the pointer bond must overlap. That will force a corresponding orientation of the object. As an object, however, can be rotated only in increments of 90 degrees, an incompatibility will exist where one of the bonds is horizontal or vertical, and the other bond diagonal. As shown in FIG. 11, this incompatibility is resolved in favor of the pointer bond, whose direction cannot change. The system rotates the merging bond, and the object attached to it, so as to minimize the difference with the pointer bond, discards the merging bond and connects the object to the pointer bond where the merging bond had been attached. 
     The object with the incompatible merging bond may be rotated so that this bond would have lain to one side or the other of the pointer bond. Consideration of fit will govern this choice which, otherwise, is resolved at the system&#39;s discretion. 
     If a connection needs to be made between a pointer bond and a merging bond whose lengths differ, the length of the pointer bond prevails; if their bond types differ (i.e. if the pointer bond is single, and the merging bond is double) then the merging bond type takes precedence. This is true whether the pointer bond overlaps the merging bond, or replaces it. 
     With constrained orientation, the default value of the N3 parameter is zero. The possession of a merging bond precludes objects from being connected to the parent graph except through a jointed interface. In the presence of a merging bond then, other N3 values are meaningless. 
     When a pointer bond connects with objects that do not possess a merging bond, and the value of the N3 parameter is zero, a jointed connected ensues, and the preference criteria of the list of angle-pairs govern the orientation of the object. FIG. 12 shows a number of examples. Other values of N3 produce a hinged interface, with the preference criteria of the list of rotations determining the orientation of the object. 
     As with overlapping pointer and merging bonds, the constraints imposed by such an interface are so severe, that it is meaningless to speak even of partially inhibited orientation. In fact, the hinged specification can be used to force an otherwise unattainable orientation, one, for example, that joins an object to the parent graph by a sharp angle, as illustrated in FIG. 13. 
     Whether it was automatic or constrained, the user can override the orientation selected by the system. This is done by depressing the &#34;delete&#34; key, which causes the latest single entry--a single atom, or a bond, or an entire object--to be deleted. If the user then repeats the last command, the system will attempt to orient the last addition in a different manner, using the applicable order of preference. This is illustrated in FIG. 14. After all alternatives have been exhausted, the system will issue an apologetic message. The user can then complete the graph in other ways. 
     The retry command is another instance of a N4 parameter specification characteristic of automatic orientation, in that its purpose is not to orient objects, but to restrict or, in this case, to revise, the autonomy granted to the system. 
     In the system of the present invention, system-supplied objects, being symmetrical, need only to be rotated. User-defined objects, however, may have to be rotated, or flipped. The Flip command is made available as an option when requesting a predefined object--which is done by entering the Retrieve state. The option is specified by typing either the letter &#34;A&#34; (for axial symmetry) or the letter &#34;P&#34; (for point symmetry). If the user then enters the letter P, the system will rotate the object in attempting a fit. If the user enters the letter A, the object first is flipped, i.e. its mirror-image is used. An example of a flipped object is shown in FIG. 15. 
     FIG. 4 illustrates the imaginary bond of spiro connections. FIG. 4(a) illustrates an imaginary line at right angles to an imaginary bond between a parent graph and an object which has been added. FIG. 4(b) shows an imaginary bond which overlaps one side of a parent graph, and a dotted line separating the parent graph from the object at the point of attachment and which is generally perpendicular to the imaginary bond line. 
     FIG. 11 illustrates constrained orientation with a bond-interfacing object. Here, the S2 command, while the system is in the chain state, uses the &#34;pointer&#34; bond. A number of examples are illustrated as FIGS. 11(a)-(h). 
     FIGS. 12(a)-(p) illustrate constrained orientation with an atom-interfacing object with the connection code being Zero (default value). Here, the system is in a ring state. As can be seen, in each of the figures (a)(p), the &#34;pointer&#34; bond from the parent graph orients the object which has been called or retrieved. The result is a connected graph in a conventional form. 
     D. INTERACTIVE ADDRESSING OF TWO-DIMENSIONAL COMPUTER DISPLAYS 
     The steps just described are illustrated in FIGS. 16, 17, and 18. FIG. 16 shows the diagram before the addition. The user, to specify the attachment site, depresses key `b`. This causes the cursor to jump to marker `b` (FIG. 17). The user next specifies the entity to be attached, a four-atom chain, by depressing key `4`. This causes a four-atom chain to attach itself at marker `b` (FIG. 18). 
     In the context of chemical display encoding at least, all the operations that can be performed with the light pen, the drawing, the selecting, the dragging, can be performed by positioning the cursor in the above manner. 
     To draw an unusually placed or exceptional line, an instruction must be entered to indicate that, as the cursor jumps from one marker to another, a line (bond) is to be drawn. This function is not frequently necessary, as the system supplies bond lines where appropriate. This instruction is entered by typing of the character `%`. Thus, by typing `e % a %`, a line is drawn from marker `e` (in FIGS. 18 and 19) to marker `a`. FIG. 19 shows the result. The second `%` is required to confirm the last marker, since that marker may appear more than once if more than one alphabet series or character is used. 
     In chemical diagrams encoded as above, a marker always indicates the location of an atom. The markers are preferably lower-case letters of the alphabet. There is no need to mark the location of a bond, as each bond is always attached to at least one atom. This arrangement limits the number of markers, so that they do not clutter the screen, nor interfere with the visual apprehension of the diagram. If a bond is entered, it attaches to a marker (or to an atom); if an atomic symbol is entered, it replaces a marker if there is one at that site. At an atom location, there is thus either a marker or an atom symbol, never both. It is good practice to make all attachments first, and to replace the markers (with element symbols) last. Generally, it is not necessary to replace all markers. Once the diagram has been completed, the program replaces all remaining markers with the symbol of the atom most commonly occurring in diagrams, namely carbon. The markers thus represent a temporary feature, characteristic of a diagram under construction. In the final diagram, they won&#39;t be present. 
     FIG. 20 shows the addition of a bond to a marker. The original diagram is that of FIG. 16 in which the cursor is located at marker `c`. When depressing a special key that is programmed to enter a horizontal bond directed to the right, the bond appears at the marker location, which is shown in FIG. 20. That bond can then either be lengthened, by again depressing the last key, or it can be followed by a marker or element symbol. 
     FIG. 21 shows the substitution of a marker by an atom. The original diagram again is tht of FIG. 16, with the cursor at marker `c`. The key bearing the letters P, @ and b are depressed, resulting in the display of the chemical symbol &#34;Pb&#34;. 
     If this is the last alteration, the letter Q is typed, indicating that the structure has been completed. This causes all remaining markers to be changed to carbon atoms, and H&#39;s to be added as illustrated in FIG. 22. 
     As markers, single lower case letters are used because, on a keyboard, there is a large number of keys bearing them, and because, in chemical diagrams, they are used rather infrequently. These letters need not be specified by the user. They are automatically assigned in sequence, as needed. After the end of the alphabet has been reached, the alphabet will repeat, the next letter being an `a` again. The system resolves the ambiguity resulting from the presence of two or more alphabets by confining jumps to the last alphabet used. By actuating the same letter again, the preceding alphabet is accessed In this manner, all alphabets used are cycled through. 
     Until it is replaced, the operator may return to any marker as often as desired. 
     Although lower case characters have relatively little use in chemical structures, there are times when they must be printed. To preclude a lower case character from causing a jump when intending to let it print, such a character must be preceded by a specific code. This is the character @. It was typed, when obtaining the diagram in FIG. 21 above, to avoid jumping to marker `b`. 
     The foregoing describes the use of markers. It remains now to indicate how they are created, and how they are placed into their strategic locations. 
     Entities that are entered on the screen, either as standalones or as attachments, are either primitives or composites. A primitive is a single, a double or a triple line (or bond), or the symbol of a chemical element. A composite, which may be a chain or a ring or a more complex fragment of a structure, is composed of a number of primitives. The operator may enter chemical symbols directly, or markers, which will be converted to chemical symbols later. To request a marker, the operator types a particular symbol, preferably the symbol `#`. The program will thereupon supply the next available marker, displaying it at the current cursor location. As already mentioned, markers are assigned by the program in alphabetical order. If the last assigned marker was an `a`, the marker next to be assigned will be a `b`. 
     FIG. 23 shows the assignment of markers upon request. The user types a `C`, then depresses the key printing a horizontal right-oriented bond, whereupon the program inserts the necessary hydrogens. The user then types a `#` whereupon the program prints an `a`. The user than types another bond then another `C`. Wishing to return to the marker, the user then types an `a`. This causes the necessary hydrogens to be added to the last C, and the cursor to jump to marker `a`. The user can then either attach another bond at this site, or replace the marker, and go on. 
     If composites are used, the library, which supplies these, cannot predict where branch points may occur. Because of this, a composite, upon being displayed on the diagram, will have all its atoms represented by markers. That is illustrated in FIG. 18. (Exceptions--atoms represented as elements are, of course, readily accomodated). The same composite, requested a second time, will receive different markers. For example, if, in FIG. 18, the cursor is jumped to marker `c` (by depressing key `c`), and another four-atom chain is requested (by depressing key `4`), that chain will have the markers h through k, as shown in FIG. 24. 
     The flowchart of FIG. 25 shows the choices available to a user. Specification of required parameters permits automatic orientation of objects. 
     While preferred embodiments have been shown and discussed, it will be understood that the present invention is not limited thereto, but may otherwise be embodied within the scope of the following claims. ##SPC1## ##SPC2## ##SPC3##