WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Automatic interface layout generator for database systems    
United States Patent5495567   
Link to this pagehttp://www.wikipatents.com/5495567.html
Inventor(s)Iizawa; Atsushi (Tokyo, JP); Yoshiura; Yukari (Kanagawa, JP); Pizano; Arturo (Milpitas, CA)
AbstractAn automatic interface layout generator for database systems is disclosed herein. The automatic generator includes a specification tool for specifying a set of block descriptions representative of specified portions of a database. A block layout generator produces interface objects to be included within an interface of the database, wherein each of the interface objects corresponds to one of the block descriptions and includes a plurality of layout fields. A layout quality parameter is determined for each of the interface objects based on arrangement of the layout fields within the interface objects. A block placement generator arranges sets of the interface objects into block configurations within the interface. A placement quality parameter for each of the block configurations is derived based on a set of block placement rules and on the layout quality parameters, and a final block configuration is selected by comparing the placement quality parameters corresponding to particular block configurations.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5495567
Automatic interface layout generator for database systems - US Patent 5495567 Drawing
Automatic interface layout generator for database systems
Inventor     Iizawa; Atsushi (Tokyo, JP); Yoshiura; Yukari (Kanagawa, JP); Pizano; Arturo (Milpitas, CA)
Owner/Assignee     Ricoh Company Ltd. (Tokyo, JP); Ricoh Corporation (San Jose, CA)
Patent assignment
All assignments
Publication Date     February 27, 1996
Application Number     08/095,105
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 20, 1993
US Classification     715/762 707/102 715/967 715/968
Int'l Classification     G06F 017/00
Examiner     Zimmerman; Mark K.
Assistant Examiner     Burwell; Joseph R.
Attorney/Law Firm     Flehr, Hohbach, Test, Albritton & Herbert
Address
Parent Case     This is a continuation-in-part of application Ser. No. 07/973,057, filed Nov. 6, 1992, U.S. Pat. No. 5,353,401.
Priority Data    
USPTO Field of Search     395/155 395/156 395/159 395/161 395/921
Patent Tags     automatic interface layout generator database
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5404441
Satoyama
715/762
Apr,1995

[0 after 0 votes]
5379373
Hayashi
715/513
Jan,1995

[0 after 0 votes]
5335320
Iwata

Aug,1994

[0 after 0 votes]
5327529
Fults
715/762
Jul,1994

[0 after 0 votes]
5311443
Crain
716/10
May,1994

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An automatic interface layout generator for database systems comprising:

means for specifying a set of block descriptions representative of specified portions of a database;

means for generating interface objects to be included within an interface of said database wherein each of said interface objects corresponds to one of said block descriptions and includes a plurality of layout fields;

means for determining a layout quality parameter for each of said interface objects based on layout of said layout fields within said interface objects;

block placement means for arranging sets of said interface objects into block configurations within said interface; and

means for determining a placement quality parameter for each of said block configurations based on a set of block placement rules and on said layout quality parameters, including means for selecting a final block configuration by comparing said placement quality parameters.

2. The automatic interface layout generator of claim 1 wherein said block placement rules include guidelines relating to geometry of said block configurations.

3. The automatic interface layout generator of claim 2 wherein said block placement rules include constraints relating to geometry of said block configuration relative to geometry of said interface.

4. The automatic interface layout generator of claim 1 wherein said layout quality parameters are determined in accordance with layout guidelines relating to distribution of said layout fields within said interface objects.

5. The automatic interface generator of claim 4 wherein said layout guidelines include:

a wasted space guideline corresponding to the ratio of area occupied by a first set of said layout fields included within one of said interface objects to area occupied by said one interface object, and

a balance guideline related to uniformity of distribution of said first set of layout fields over predefined regions of said one interface object.

6. The automatic interface generator of claim 1 wherein said means for generating interface objects includes means for generating a set of interface objects for each of said block descriptions by varying placement of said layout fields among said objects included within said set of interface objects.

7. The automatic interface generator of claim 6 wherein each of said layout fields corresponds to one of a plurality of widget types, and wherein said means for generating a set of interface objects for each of said block descriptions includes means for assigning a widget type to each of said layout fields.

8. The automatic interface generator of claim 1 wherein said block placement means includes means for iteratively arranging sets of said interface objects into block configurations on the basis of a simulated annealing procedure in which a pair of said placement quality parameters corresponding to a pair of said block configurations generated during successive iterations of said annealing procedure are compared so as to determine which of said pair of placement quality parameters is utilized in a subsequent iteration of said annealing procedure.

9. The automatic interface generator of claim 8 further including means for perturbing said simulated annealing procedure in accordance with a perturbation function.

10. The automatic interface generator of claim 1 further including code generator means for generating code corresponding to a display representation of said final block configuration.

11. The layout generator of claim 1 wherein said means for specifying a set of block descriptions includes means for generating, based on information included within said database, a schema diagram representative of relationships and attributes associated with a set of database entities defined within said database.

12. The layout generator of claim 11 further including schema editor means for transforming said schema diagram into an application specification diagram.

13. The layout generator of claim 12 further including interpreter means for generating said block descriptions in accordance with said application specification diagram.

14. A method for automatically generating an interface layout for a database comprising the steps of:

specifying a set of block descriptions representative of specified portions of said database;

generating interface objects, based on said block descriptions, for inclusion within an interface of said database wherein each of said interface objects has a plurality of layout fields and each of said block descriptions has associated therewith a set of said interface objects;

determining a layout quality parameter for each of said interface objects based on layout of said layout fields within said interface objects;

arranging first and second groups of said interface objects into first and second block configurations, respectively, within said interface wherein each of said groups includes an interface object from each of said sets of interface objects; and

determining first and second placement quality parameters for said first and second block configurations, respectively, based on a set of block placement rules and on said layout quality parameters, and selecting a final block configuration by comparing said first and second placement quality parameters.

15. The method of claim 14 wherein said step of specifying a set of block descriptions includes the step of generating, based on information included within said database, a schema diagram representative of relationships and attributes associated with a set of database entities defined within said database.

16. The method of claim 15 further including the step of transforming said schema diagram into an application specification diagram.

17. The method of claim 14 further including the step of generating said block descriptions in accordance with said application specification diagram.
 Description Submit all comments and votes
 


The present invention relates generally to layout planning systems for interface displays, and particularly to automatic methods and systems for generating user interface layouts.

BACKGROUND OF THE INVENTION

As is well known, computer programs have become easier to use as a consequence of the development of graphical user interfaces. The proliferation in the number of applications programs with graphical user interfaces is partly the result of the advent of windowed user environments (e.g., Microsoft Windows). Unfortunately, the creation of a graphical user interface generally requires the utilization of user interface "toolkits" by highly-skilled programmers. While user interface toolkits enable a programmer to specify the manner in which a particular data structure is displayed, such toolkits do not address the task of designing the entire interface. Instead, design of the overall interface generally requires an application programmer to:

(1) become knowledgeable about the toolkit and its virtual devices, e.g., text fields, scrolled text windows, push buttons, pull-down menus and the like.

(2) select appropriate virtual devices based on the input and output requirements of the application,

(3) customize the devices for the particular application,

(4) lay out the selected devices on the interface display, and

(5) write code which initiates the interface and integrate it with the application.

Although this creates an interface for an existing application, changing the application typically requires corresponding changes to be made to the interface. It follows that parallel development of an application and its interface requires repeated and costly revisions. Hence, increased interest has developed in the development of tools to automate the design of graphical user interfaces.

In the field of database applications there exist several types of tools used to facilitate the design of user interfaces. Among these are included stand-alone form managers, fourth generation languages, graphical user interface builders, automatic graphical user interface generation systems, and automatic layout designers. -In addition, application specification languages and visual tools based on what has become known as the "EntityRelationship" model are also used in the development of user interfaces.

Stand-Alone Form Managers

Commercially available stand-alone form managers (e.g., INGRES/QBF by Ask Computer Systems Inc., INFORMIX/PERFORM by INFORMIX Software Inc., and ORACLE/SQL*FORMS by ORACLE Corp.) enable the generation of complete database applications with a minimum programming effort. Developers design the layout of the application screens with a graphics editor, then link the fields in the display with their database counterparts using an interactive mechanism or a simple script language. This mode of interaction grants the user access to the database through screen layouts resembling business forms. Although form managers shorten development through automatic generation of database calls, these were originally intended to be used in devices with limited graphical capabilities (e.g., ASCII terminals). Hence, form managers are incapable of taking advantage of graphical user environments; A further disadvantage of stand-alone form generators is that the creation of sophisticated applications typically requires the use of script languages, which are often unfamiliar to inexperienced users. Moreover, stand-alone form generators require the application developer to customize the interface for each application and for each environment in which it is to run.

Fourth Generation Languages

Fourth generation languages combine the screen layout facilities of a form manager with a programming language that supports database calls, controls the interaction between the user and the application interface, and allows general purpose computations. Fourth generation languages (e.g., INGRES/4GL by Ask Computer Systems Inc., and INFORMIX/4GL by INFORMIX Software Inc.) remove some of the limitations exhibited by stand-alone form managers by enabling applications developers to add specialized code. An editor is still used to design the layout of the interface, but code must be provided to control the flow of data between the interface display, i.e., computer screen, and the database. Fourth generation languages are advantageous in that a portion of the dialog control code is generated automatically, and in that modification may be made to the layout of the interface without rewriting code.

Like stand-alone form managers, fourth generation language systems lack graphical interface capability except when combined with graphical user interface builder routines. Moreover, fourth generation languages generally require that more detailed programming be performed than with stand-alone form managers.

Graphical User Interface (GUI) Builders

A series of user interface management systems (UIMS) and interactive design tools (IDTs) have recently been developed. These development aids, commonly referred to as graphical user interface (GUI) Builders, can be used in conjunction with fourth generation languages to produce application programs having relatively sophisticated user interfaces. GUI Builders allow for more flexibility in interface design than do form managers, since users may interact with the database in a manner not dictated by the style of a typical business form.

GUI Builders generally include several visual design tools, including a What-You-See-Is-What-You-Get (WYSIWYG) Editor, which enable:

(1) interactive selection and placement of the graphical objects (defined by blocks of code known as "widgets") comprising the interface, and

(2) assignment of values to various attributes, e.g., size, color and font type, of each graphical object. In addition, UIMS also allow for the selection of callback functions, the attachment of user-defined code, and the generation of code used to realize the interface screen display. Unfortunately, the format of interfaces designed using GUI Builders depends exclusively upon knowledge possessed by the application developer. That is, information relating to desirable design practice is not embedded within GUI Builders. It follows that the quality and consistency of interface layouts produced using GUI Builders will vary considerably.

Intelligent GUI Generation Systems

Recent research has yielded several systems capable of automatically generating application programs having graphical user interfaces. These systems use high-level descriptions of the behavior and appearance of data objects included within the application program to produce either an executable program, or source code which is to be edited and refined by the developer prior to generation of the program.

Since the intelligent GUI systems listed above have been developed for general-purpose applications, such systems tend to be incapable of utilizing information specific to particular applications. For example, in database applications such information would include parameters stored within a database dictionary. As a consequence, the code produced by automatic GUI systems generally must be edited so as to be in conformance with the requirements of specific applications. Alternatively, a detailed specification of the database structure could be provided to the automatic system.

Automatic Layout Generators

These systems employ heuristics and rule-based methodologies from expert systems in order to determine an appropriate arrangement for the group of objects represented in the interface. Automatic layout generators are used to automate the portion of the interface design process associated with positioning each interface object, but are generally not utilized in other aspects of interface design. One example of this type of system is disclosed in U.S. Pat. No. 4,700,317 entitled AUTOMATIC LAYOUT PLANNER AND METHOD FOR AUTOMATICALLY CREATING A LAYOUT PLAN, issued Oct. 13, 1987.

Application Specification Languages

Application specification languages allow an application and its interface to be represented using high-level descriptions. These languages enable utilization of a higher level of abstraction than is possible using standard programming languages, e.g., C or C++. This shortens programming time, and tends to reduce the occurrence of errors arising when application developers are forced to keep track of an excessive number of details relating to the application. Unfortunately, however, existing application specification languages have typically been tailored to address the needs of general-purpose applications rather than to specific applications such as, for example, those relating to databases. Accordingly, existing application specification languages have been incapable of efficiently utilizing the information available in the data dictionaries of database applications.

Visual Tools Based on the Entity-Relationship (ER) Approach

ER diagrams are commonly used by application developers as visual tools for modeling data. However, because of limitations in the graphical capabilities of computers in existence at the time that data modeling based on ER diagrams was conceived, it has only recently become possible to fully realize the potential utility of ER diagrams. In this regard numerous commercial data modelers and computer aided software engineering tools based on the ER model or one of its many variations have recently been developed. These systems can be used to create and manipulate graphical representations of a database schema, in some instances producing the textual descriptions needed to create or to modify the database.

ER diagrams have also been utilized within the visual query language field, where graphics are employed in the provision of user requests to the system. Specifically, ER diagrams enable graphical description of the data of interest, but enable results to be presented in only a fixed, pre-determined form.

OBJECTS OF THE INVENTION

It is an object of the present invention to provide an interface layout generator capable of producing interfaces, particularly interfaces for database applications, in a manner requiring minimal user specification and operation.

It is a further object of the present invention to integrate information stored within a database dictionary with expert knowledge relating to user interface design into predefined design criteria utilized during generation of such interfaces.

SUMMARY OF THE INVENTION

In summary, the present invention is an automatic interface layout generator for database systems operative to simplify the process of creating graphical user interfaces by performing tasks (e.g., screen layout design and virtual device selection) in the absence of human intervention. The automatic generator includes a specification tool for specifying a set of block descriptions representative of specified portions of a database. A block layout generator produces interface objects to be included within a database interface, wherein each of the interface objects corresponds to one of the block descriptions and includes a plurality of layout fields. A layout quality parameter is determined for each of the interface objects based on arrangement of the layout fields within the interface objects. A block placement generator arranges sets of the interface objects into block configurations within the interface. A placement quality parameter for each of the block configurations is derived based on a set of block placement rules and on the layout quality parameters, and a final block configuration is selected by comparing the placement quality parameters corresponding to particular block configurations.

In a preferred implementation the specification tool operates to identify a set of objects of interest in an ER diagram. This specification operation may be considered akin to defining a view of the database. In particular, the specification tool transforms the objects of interest in the ER diagram into statements descriptive of application components suitable for immediate use by a screen generator.

BRIEF DESCRIPTION OF THE DRAWINGS

Additional objects and features of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which:

FIG. 1A is a block diagram of a preferred embodiment of the inventive automatic interface layout generator for database systems.

FIG. 1B is a more detailed representation of an interface specification tool included within the automatic layout generator of FIG. 1A.

FIG. 2 depicts an example of a display of a database schema.

FIG. 3A depicts an application specification diagram produced by editing the schema shown in FIG. 2 using a schema editor.

FIG. 3B depicts the screen layout of a typical database application.

FIG. 4A provides a generalized representation of a data structure within a primary memory representative of the database schema of FIGS. 2 and 3.

FIG. 4B shows one example of a data structure in the form of an Operations Table which may be employed to represent the status of the operations panel.

FIG. 5 represents a database dictionary with which are associated the entries within the Operations Table of FIG. 4B.

FIG. 6 depicts an interface in which multiple occurrences of the entities ITEM and ORDER are shown simultaneously.

FIG. 7 represents an interface in which relationships between the multiple displayed entities must be inferred by the user of the interface.

FIGS. 8A-8C illustratively represent pull-down menus associated with the `File,` `Edit,` and `Schema` commands available to an interface designer in an exemplary embodiment.

FIG. 9 depicts a graphics window used to prompt an interface designer for the name of a database for which an interface is to be generated.

FIG. 10 illustratively represents a pull-down menu associated with the `Interpret` command available to an interface designer in an exemplary embodiment.

FIG. 11 shows a block diagrammatic representation of a particular implementation of the display code generator and compiler operative to process the final block placement file derived from the block description files.

FIG. 12 depicts a screen display corresponding to a particular application specification diagram (ASD).

FIG. 13 shows a block precedence tree (BPT) having nodes and branches respectively corresponding to entities and relationships depicted within the ASD of FIG. 12.

FIG. 14 shows an interface screen generated in accordance with the BPT of FIG. 13 from which the entity "School" has been selected from a menu screen displaying a plurality of entities.

FIG. 15 is a functional block diagram representative of a preferred manner of generating an interface layout in accordance with the present invention.

FIG. 16 is a block diagrammatic representation of the components comprising a block layout generator included within the present invention.

FIG. 17A shows an example of a template which, together with a block description file, are utilized by the block layout generator to produce a set of three object blocks depicted in FIGS. 17B-17D.

FIG. 18A is a sliced tree representation of a set of object blocks included within a block configuration shown in FIG. 18B.

FIG. 18C shows an initial block placement corresponding to the sliced tree representation of the initial placement depicted in FIG. 18B.

FIG. 19A depicts an initial interface placement of object blocks corresponding to each of N block description files.

FIG. 19B is a sliced tree data representation corresponding to the initial interface placement of FIG. 19B.

FIGS. 20A and 20B depict changes occurring to a block configuration as a consequence of execution of a Replace operation performed during a simulated annealing block placement procedure.

FIGS. 21A and 21B depict the effects on a block configuration resulting from a Swap operation.

FIGS. 22A and 22B depict the effects on a block configuration due to a Move operation.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Introduction

Referring to FIG. 1A, there is shown a block diagram of a preferred embodiment of the inventive automatic interface layout generator 10 for database systems. The automatic layout generator 10 of the present invention includes a general purpose computer system 100 having a central processing unit 102 that is interconnected by a system bus 104 to primary memory 106 (i.e., high speed, random access memory), to secondary memory 107, and to one or more input units 108. Each input unit 108 typically includes a keyboard 110, and a mouse pointer device 114 with item selection button 116. Stored in primary memory 106 are an interface generation program 120, as well as a display code generator and compiler 122. As is described hereinafter, the interface generation program 120 is operative to automatically design a user interface for a database stored in secondary memory 104 when appropriate instructions are received from a user via input unit 108. In particular, a diagram representative of the database resident in memory 104 is initially displayed on a display unit 128 using information included within the dictionary of the database and standard graphic layout techniques. An interface specification software tool 129 allows the user, i.e., the interface designer, to select portions of the database structure of interest. This selection is accomplished through a series of point and click operations using pointer device 114 in which the user removes from the database diagram those entities, entity attributes and entity relationships not intended to be represented within the user interface. An interpreter module (not shown) creates a block description file 130 for each entity and relationship included within the database structure selected using the interface specification tool 129.

As employed hereinafter, the term "entity" refers to an object recognizable by the user of an application program (e.g., an object, location or the like) which is described by information stored within an application database. An "attribute" refers to a particular characteristic of an entity (e.g. color, shape, distance), and are represented in the database by attribute values. This allows a specific "entity occurrence", or simply "occurrence", to be defined by the set of information resulting from selection of an attribute value for each attribute associated with the entity. Finally, a "relationship" represents an association between two or more entities.

Again referring to FIG. 1A, the interface generation program 120 includes a block layout generator 134 for synthesizing a set of graphical object blocks of varying geometry for each of the entities defined within the block description files 130. A block placement routine 136 is used to determine a preferred placement of object blocks within the user interface in accordance with a combinatorial optimization routine. In this routine the quality of the user interface resulting from various combinations of object blocks is evaluated based on predefined criteria, wherein each combination includes one object block corresponding to each block description file 130. The block combination of highest quality is stored within a final block placement file 140. Referring to FIG. 1, code generator 122 then generates display code based on the user interface design defined by the final block placement file 140. This code is stored in display code memory 144, and is accessed by an interface display driver 146 during display of the user interface via display unit 128.

Detailed Description

As mentioned above, the interface specification tool 129 enables the interface designer to specify which portions of a database stored in secondary memory 104 are to be represented in the user interface created by the interface generation program 120. An application is typically characterized by specifying:

(1) a list of the entities, relationships and attributes of interest; and,

(2) a set of indicators describing the number of occurrences to be displayed for each entity.

Referring to FIG. 1B, there is shown a more detailed representation of the interface specification tool 129. The interface specification tool 129 is an interactive mechanism which provides an interpreter module with the information necessary to synthesize the block description files 130. This is done through a series of operators that enable the systematic transformation of a schematic representation of a semantic database schema diagram (SSD) into a second type of representation, termed an application specification diagram (ASD), defining the entities and relationships of interest.

The following description of the interface specification tool 129 is intended to describe one manner in which a database structure for which an interface is to be generated may be specified. At the conclusion of this database specification process the block description files 130 are created by the interpreter. It is understood, however, that such block description files may be created by the direct entry of information relating to the structure of the portion of a database for which an interface is to be designed.

In a preferred implementation the interface specification tool 129 is coded in a standard programming language (e.g., C or C++) and includes the following components: (i) a database schema (SSD) generator 150, (ii) a schema editor 152, and (iii) an application specification diagram (ASD) interpreter 154.

As noted above, one way in which a given database schema (SSD) may be graphically represented is in terms of an ER diagram. FIG. 2 depicts one manner in which an SSD representative of a database relating to the organization of a company could be displayed via an ER diagram. The SSD generator 150 extracts information about the structure of the database from the database dictionary and converts it into an ER diagram. The SSD generator 150 includes an SSD layout generator 156 which determines the position of each entity, relationship and attribute in the ER diagram. The ER diagram of FIG. 2 allows the interface designer to select objects representative of entities of interest (e.g., EMPLOYEES, DEPARTMENTS, ITEMS, SUPPLIERS, ORDERS and CUSTOMERS).

The schema editor 152 is used by application developers to transform an SSD of the database, as represented by an ER diagram, into an application specification diagram (ASD) such as is shown in FIG. 3A. In effecting this transformation four operations are performed by the schema editor: (1) specification of occurrence indicators, (2) diagram trimming, (3) diagram labeling, and (4) definition of master-slave relationships. With regard to operation (1), entities may be further categorized as either single-occurrence (S) or multiple-occurrence (M) entities. When defined in a given ASD as a single-occurrence entity, a single occurrence of the entity would appear in the interface generated on the basis of the given ASD. Similarly, multiple occurrences of entities specified within an ASD as being of the multiple-occurrence type would be made to appear within interfaces derived from the particular ASD. As is described hereinafter, the present invention provides a method for generating a graphical user interface (GUI) exemplified by, for example, the screen layout of FIG. 3B, on the basis of an ASD such as depicted in FIG. 3A.

FIG. 4A provides a generalized representation of a data structure within primary memory 106 representative of the database schema of FIGS. 2 and 3A. As shown in FIG. 4A, information pertaining to a plurality of entities, i.e., Entity.sub.-- 1, Entity.sub.-- 2, . . . , Entity.sub.-- m, is stored in an Entity List. Specifically, stored within a data field F1 corresponding to Entity.sub.-- 1 are the following values: (1) a string (Label) indicative of the name of the entity; (2) a pair of integers (Position) specifying the (x,y) coordinates in the display where the entity is to be shown; and (3) three indicator values (Al, M, O) used by the schema editor 152 and interpreter 154 to keep track of the entity status during the specification process. Also included in field F1 is numerical pointer P11 corresponding to the memory location of the field associated with the first attribute, i.e., Attribute.sub.-- 11, of Entity.sub.-- 1. Similarly, the value of numerical pointer P12 indicates the location of data field F2 associated with Entity.sub.-- 2. A null pointer NP indicates the end of the Entity List.

An Attribute List includes sets of data fields corresponding to the attributes of each entity within the Entity List. For example, if Entity.sub.-- 1 corresponds to the DEPARTMENT entity within the database schema of FIG. 2, then Attribute.sub.-- 11 would refer to Id, Attribute.sub.-- 12 to Name, and so on. Each entry in the attribute list possesses values for the text associated with the attribute name (Label) and its position in the display (Position). A single indicator value (Al) is used by the schema editor 152 and interpreter 154 to keep track of the attribute status during the specification process. The value of the pointer PA 11 included within the field of Attribute.sub.-- 11 is indicative of the memory location of Attribute.sub.-- 12. As shown in FIG. 4A, a Relationship List includes a plurality of linked data fields defining the relationship between entities displayed via the schema editor. As in the case of entities, each relationship may have associated therewith a set of attributes defined within a Relationship Attribute List. If the database schema of FIG. 2 is used as an example, the data field Relationship.sub.-- 1 could be used to define the "supply" relationship between ITEMS and SUPPLIER. The Label, Position and Al values within Relationship.sub.-- 1 specify the position and status of the "supply" text within FIG. 2, while the Cardinality value of M:N indicates the ratio of the number entries within ITEMS and SUPPLIERS.

The schema editor facilitates selection of the entity relationships depicted in FIG. 3A by modifying the entries within the data structure of FIG. 4A on the basis of information provided by the interface designer. For example, assume that in FIG. 2 that the entity EMPLOYEES corresponds to Entity.sub.-- 2 (FIG. 4A). Upon deletion of the Birthdate attribute associated with EMPLOYEES (FIG. 2) using a point and click operation, the schema editor would change the value of the pointer PA21 of Attribute.sub.-- 21 so as to reflect the memory location of Attribute.sub.-- 23.

The interface specification tool 129 will also preferably include an operations panel in which graphical icons in the form of "buttons" or the like representative of common database operations are made available to the interface designer during the database specification process. Included among these common operations are RETRIEVE, UPDATE, INSERT, DELETE, PREVIOUS, NEXT, and EXIT. The icons representative of these operations can be toggled by the interface designer using a series of point and click operations in order to select/de-select particular operations. FIG. 4B shows one example of a data structure in the form of an Operations Table which may be employed to represent the status of the operations panel. The specification tool 129 considers all operations to be selected by default, and imposes the following constraints upon the chosen set of operations:

(1) EXIT cannot be de-selected,

(2) if DELETE is selected, then RETRIEVE must also be selected, and

(3) if UPDATE is selected, then RETRIEVE must also be selected.

As is described hereinafter, the application specification tool and the layout generator of the invention utilize information stored within the dictionary of a selected database used to create the block description files (BDFs) 130. The manner in which the BDFs are synthesized may be more readily explained by making reference to the structure of such a database dictionary. Accordingly, FIG. 5 illustratively represents the structure of a typical database dictionary. An explanation of each of the records included within the dictionary of FIG. 5 is set forth below:

Directory

One record is created for each directory.

______________________________________ Id Directory number Name Directory name Parent Parent directory number Area Default value for the area number of the UNIX directory under which files related to the database are created. Primary key (Id) Secondary key (Parent, Name) ______________________________________

Database

One record is created for each database.

______________________________________ Id Database number Name Database name Parent Parent directory number Note Comments Area Default value for area in which files related to this database are created. Primary key (Id) Secondary key (Parent, Name) ______________________________________

Record

One record is created for each record type.

______________________________________ Id Record type number Name Record type name Parent Database number Note Comments File Record file number Heap Heap file number Key Array of field numbers comprising primary key Primary key (Id) Secondary key (Parent, Name) ______________________________________

Field

One record is created for each field.

______________________________________ Id Field number Name Field name Parent Record type number Note Comments Order The logical field number within the record Type Encoded data type Dim Number of elements in array Offset Field position within record Init Test representation of initial value Integ Integrity information NullOk Allows or disallows null values. Primary key (Id) Secondary keys (Parent, Name) (Parent, Offset) ______________________________________

Index

One record is created for each index.

______________________________________ Id Index number Parent Record type number Note Comments File Index file number Key Array of field numbers comprising keys Unique Allows or disallows duplicates. Primary key (Id) Secondary keys (Parent) (Key) ______________________________________

RLink

One record is created for each real-link type.

______________________________________ Id Real-link type number Name Link name (null value for unnamed inverse link types) Parent Database number Note Comments File Real-link file number Inverse Inverse link type number Term Terminal record type number Integ Integrity information Primary key (Id) Secondary keys (Parent, Name) (Term) (Inverse) ______________________________________

VLink

One record is created for each virtual-link type.

______________________________________ Id Virtual-link type number Name Link name (null value for unnamed inverse link types) Parent Database number Note Comments Inverse Inverse link type number Term Terminal record type number Termkey Array of field numbers comprising key of terminal table Integ Integrity information Primary key (Id) Secondary keys (Parent, Name) (Term) (Inverse) ______________________________________

Area

One record is created for each area in which files are created.

______________________________________ Id Area number Name Absolute pathname within UNIX filesystem Primary key (Id) Secondary key (Name) ______________________________________

File

One record is created for each file.

______________________________________ Id File number Name Logical name of file (does not match UNIX file name) Parent ID number of the area in which file is stored Object ID number of the record type, index or real- link type this file defines Db Database number Type Classification as sequential file or B-tree, and as fixed length or variable length FkSize Number of bytes in fixed-length key section VkSize Number of bytes in variable-length key section FvSize Number of bytes in fixed-length data section VvSize Number of bytes in variable-length data section Primary key (Id) Secondary keys (Parent) (Db) ______________________________________

User

One record is created for each user.

______________________________________ Id User number Name User name Type Classification as UNIX user, UNIX group member or as user administered solely by GraphBase using password Osid UNIX user number of group number Passwd Encoded password Primary key (Id) Secondary keys (Type, Name) (Type, Osid) ______________________________________

Access Permissions

One record is created for each permission granted.

______________________________________ User User number Object Access object number Type Type of access indicated using bit pattern Primary key (User, Object) Secondary key (Object, User) ______________________________________

Statistics

One record is created for each access object.

______________________________________ Object Access object number Ctime Date and time that data definition was first made for access object. Mtime Date and time that data definition was last made for access object. Account Array containing number of times processing was carried out for each access type. Primary key (Object) ______________________________________

The database dictionary of FIG. 5 includes the following virtual links between the indicated records to facilitate queries made by the interpreter module during generation of the block description files 130:

DirectoryDirectory Sub-directories belonging to directory

DirectoryDatabase Sub-databases belonging to directory

DatabaseRecord Record types belonging to database

RecordField Record fields belonging to record type

RecordIndex Indexes belonging to record type

DatabaseRLink Real link types belonging to database

DatabaseVLink Virtual link types belonging to database

RecordRLink Real links connected to record type

RecordVLink Virtual links connected to record type

RLinkRLink Inverse link type corresponding to real-link type

VLinkVLink Inverse link type corresponding to virtual-link type

RecordFile Re