WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Window system with independently replaceable window functionality    

Get related patents on CD
United States Patent5121478   
Link to this pagehttp://www.wikipatents.com/5121478.html
Inventor(s)Rao; Ramana B. (Palo Alto, CA)
AbstractA workspace data structure, such as a window hierarchy or network, includes functional data units that include data relating to workspace functionality. These functional data units are associated with data units corresponding to the workspaces such that a functional data unit can be replaced by a functional data unit compatible with a different set of functions without modifying the structure of other data units. Each workspace data unit may have a replaceably associated functional data unit called an input contract relating to its input functions and another called an output contract relating to its output functions. A parent workspace's data unit and the data units of its children may together have a replaceably associated functional data unit, called a windowing contract, relating to the windowing relationship between the parent and the children. The data structure may also include an auxiliary data unit associated between the data units of the parent and children windows, and the windowing contract may be associated with the auxiliary data unit. The contracts can be accessed and replaced by a processor in a system that includes the data structure. The contracts can be instances of classes in an object-oriented programming language, and can be replaceably associated by pointers associated with the system objects. Alternatively, a contract can be replaceably associated through dynamic multiple inheritance, with the superclasses of each workspace class including one or more contract classes such that changing the class of an instance of a workspace class serves to replace the contract.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 5121478
Window system with independently replaceable window functionality - US Patent 5121478 Drawing
Window system with independently replaceable window functionality
Inventor     Rao; Ramana B. (Palo Alto, CA)
Owner/Assignee     Xerox Corporation (Stamford, CT)
Patent assignment
All assignments
Company News
Publication Date     June 9, 1992
Application Number     07/614,957
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 15, 1990
US Classification     715/804 715/744 715/835 715/853 715/854
Int'l Classification     G06F 015/20
Examiner     Harkcom; Gary V.
Assistant Examiner     Zimmerman; Mark K.
Attorney/Law Firm    
Address
Parent Case     This is a continuation of application Ser. No. 07/242,087, filed Sep. 8, 1988, now abandoned.
Priority Data    
USPTO Field of Search     364/518 364/521 364/900 MS File
Patent Tags     window independently replaceable window functionality
   
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
5008853
Bly

Apr,1991

[0 after 0 votes]
4982344
Jordan
715/804
Jan,1991

[0 after 0 votes]
4974173
Stefik
715/751
Nov,1990

[0 after 0 votes]
4962475
Hernandez
715/515
Oct,1990

[0 after 0 votes]
4914568
Kodosky
715/763
Apr,1990

[0 after 0 votes]
4914607
Takanashi
715/790
Apr,1990

[0 after 0 votes]
4890098
Dawes
715/800
Dec,1989

[0 after 0 votes]
4890257
Anthias
715/807
Dec,1989

[0 after 0 votes]
4829294
Iwami
715/803
May,1989

[0 after 0 votes]
4827404
Barstow
703/20
May,1989

[0 after 0 votes]
4806919
Nakayama
715/790
Feb,1989

[0 after 0 votes]
4807142
Agarwal
718/100
Feb,1989

[0 after 0 votes]
4783648
Homma
715/794
Nov,1988

[0 after 0 votes]
4769636
Iwami
715/790
Sep,1988

[0 after 0 votes]
4713754
Agarwal
707/100
Dec,1987

[0 after 0 votes]
4688167
Agarwal
715/803
Aug,1987

[0 after 0 votes]
4658351
Teng
718/103
Apr,1987

[0 after 0 votes]
4598384
Shaw
358/1.18
Jul,1986

[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

[0 market size comments]
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%

[0 market share comments]
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%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
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]
[0 license availability comments]
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]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



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

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



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

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed:

1. A system comprising:

a display;

a user input device for providing input signals from a user;

memory for storing data; the memory storing a plurality of display system data units; and

a processor connected for receiving the input signals from the user,for accessing the display system data units, and for providing output signals to the display;

the display system data units comprising:

workspace data units, each being for use in presenting a respective workspace on the display, each respective workspace including, when presented, respective display features that are perceptible as having respective relative positions; the workspace data units including a first workspace data unit for use in presenting a first one of the respective workspaces on the display; and

a first functional data unit that includes first function data for use in performing a first characteristic function in relation to the first workspace;

the processor comprising:

first function means for using the first function data in performing the first characteristic function in relation to the first workspace;

second function means for using second function data in performing a second characteristic function in relation to the first workspace, the second characteristic function being different than the first characteristic function; the first and second characteristic functions being alternative functions, the first and second characteristic functions both being:

input functions according to which input signals are received from the user while the first workspace is presented;

output functions according to which output signals are provided to the display while the first workspace is presented; or

relationship functions according to which the first workspace is related to another of the respective workspaces when both workspaces are presented; and

replacing means for replacing the first functional data unit by a second functional data unit without structurally modifying other display system data units stored in the memory, the second functional data unit including the second function data so that before the replacing means replaces the first functional data unit the first function means uses the first function data to perform the first characteristic function in relation to the first workspace and so that after the replacing means replaces the first functional data unit the second function means uses the second function data to perform the second characteristic function in relation to the first workspace.

2. The system of claim 1 in which the memory further stores a hierarchy of node data units, the node data units including the workspace data units.

3. The system of claim 1 in which the first workspace data unit includes, before the replacing means replaces the first functional data unit, a pointer to the first functional data unit and includes, after the replacing means replaces the first functional data unit, a pointer to the second functional data unit.

4. The system of claim 1 in which the display system data units further include an auxiliary data unit, the first workspace data unit including a pointer to the auxiliary data unit; the auxiliary data unit including, before the replacing means replaces the first functional data unit, a pointer to the first functional data unit and including, after the replacing means replaces the first functional data unit, a pointer to the second functional data unit.

5. The system of claim 1 in which the first and second characteristic functions are alternative input functions according to which input signals are received from the user while the first workspace is presented.

6. The system of claim 1 in which the first and second characteristic functions are alternative output functions according to which output signals are provided to the display while the first workspace is presented.

7. The system of claim 1 in which the first and second characteristic functions are alternative relationship functions according to which the first workspace is related to another of the respective workspaces when both workspaces are presented.

8. A system comprising:

a display;

a user input device for providing input signals from a user;

memory for storing data; the memory storing a plurality of display system data units; and

a processor connected for receiving the input signals from the user, for accessing the display system data units, and for providing output signals to the display;

the display system data units comprising:

workspace data units, each being for use in presenting a respective workspace on the display, each respective workspace including, when presented, respective display features that are perceptible as having respective relative positions; the workspace data units including a first workspace data unit for use in presenting a first one of the respective workspaces on the display; and

a first functional data unit that includes first function data for use in performing a first characteristic function in relation to the first workspace;

the processor being for:

using the first function data in performing the first characteristic function in relation to the first workspace;

using second function data in performing a second characteristic function in relation to the first workspace, the second characteristic function being different than the first characteristic function; the first and second characteristic functions being alternative functions, the first and second characteristic functions both being:

input functions according to which input signals are received from the user while the first workspace is presented;

output functions according to which output signals are provided to the display while the first workspace is presented; or

relationship functions according to which the first workspace is related to another of the respective workspaces when both workspaces are presented; and

replacing the first functional data unit by a second functional data unit without structurally modifying other dispaly system data units stored in the memory;

the second functional data unit including the second function data so that before the processor replaces the first functional data unit the processor uses the first function data to perform the first characteristic function in relation to the first workspace and so that after the processor replaces the first functional data unit the processor uses the second function data to perform the second characteristic function in relation to the first workspace.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates to a system that presents windows or other workspaces on a workstation's display to provide a graphical user interface. More specifically, the present invention relates to a window system that can present plural windows at a time, each window providing a user interface for a respective application.

A wide variety of graphical user interfaces are available for personal computers and other computer workstations. Rao, R., "Towards Interoperability and Extensibility in Window Environments via Object Oriented Programming," Master's Thesis, Dept. of Electrical Eng. and Computer Science, Massachusetts Institute of Technology, June, 1987, examines existing window environments in chapters 1 and 2 and provides a preliminary design for an object-oriented window environment in chapter 3. Section 2.2 analyzes the functionality of a window system into window management, input handling, output handling, and window environment support; pages 32-33 discuss a hierarchical arrangement of windows, also called a window tree, and the use of nesting of windows. Section 2.3 discusses issues in window environment design; pages 51-52 discuss how Smalltalk, X, NeWS, and User Interface Management Systems (UIMS) separate user interface from underlying services; pages 55-56 discuss window placement, including the tradeoff between tiling and overlapping windows. Section 3.2.1 discusses the windowing model of the proposed design, describing at pages 66-67 a transformation mapping points in each child visual plane to points in its parent visual plane and a hierarchy of visual planes connected by visual worlds called a visual plane tree or a visual universe; the parent, the children, and the transformations are the elements of a visual world, and a set of constraints on how the elements are related, together with policies for maintaining these constraints, is called the visual world's contract. Section 3.2.2 discusses application of the visual world model, with pages 72-73 comparing tiling and overlapping. Section 3.3 discusses design issues, including the choice to design for Common Lisp Object System (CLOS). Section 3.4 discusses window management; section 3.4.1 describes visual planes; section 3.4.2 describes visual worlds, explicitly representing a relationship between a parent visual plane and a set of children visual planes; and section 3.4.3 describes contracts distributed between the parent and the child visual planes, considers whether contracts should be reified, and notes that explicity representations of contracts could be useful as points to attach functionality such as error recovery. Sections 3.7.1-3.7.4 describe contracts for bordering a viewer, for managing overlapping viewers, for managing tiling viewers, and for maintaining a scrollable viewer. Chapter 4 discusses obtaining flexibility through object-oriented programming.

Scheifler, R. W. and Gettys, J., "The X Window System," ACM Transactions on Graphics, Vol. 5, No. 2, April 1986, pp. 79-109, describe the X Window System's system substrate, which provides device-independent graphics. The system includes a hierarchy of windows, described in section 4. Within a window, its subwindows can be stacked in any order, with arbitrary overlaps. Although a window can extend outside the boundaries of its parent, those portions are never displayed.

NeWS Preliminary Technical Overview, Sun Microsystems, Mountain View, Calif., October 1986, describes NeWS, another window system. Pages 37-38 discuss how clients with different conventions can coexist in NeWS. Pages 42-43 describe canvases that exist in a hierarchy, with a child of a canvas having the capabilities of its parent.

"Window," ViewPoint Programmer's Manual, Xerox Corporation, September 1985, pp. 50-1 to 50-16, describes a tree of windows, in section 50.1.2, within which a window may have an ordered list or stack of its child windows. Each window has a pointer to its parent, a pointer to the next sibling of its parent, and a pointer to the window's topmost child. Section 50.2.4 describes window tree manipulation.

Bantz et al., EP-A 210,554, describe a method of windowing image data maintained in a hierarchical data tree structure. The complete image is defined at the root node and sub-images of the complete image are defined at lower order nodes, with the primitive images being defined at the leaf nodes. FIG. 4 shows a traverse function that searches the tree structure.

Kikuchi et al., EP-A 247,827, describe a computer system with a multiwindow presentation manager that displays overlapping windows on a screen. As shown and described in relation to FIG. 1, a section of memory connected to the display device stored window coordinate data specifying the positions and sizes of the independent windows on the screen; another section of memory connected to a cursor display unit stores present-cursor position data representing the latest coordinates of the cursor on the screen. If the present-cursor position data and the window coordinate data indicate that the cursor moves into one of the windows, that window is automatically moved in front of the other windows, as shown and described in relation to FIG. 3.

Noguchi et al., EP-A 249,399, describe multiwindow control techniques that provide an icon window display area with precedence over other display areas, as shown and described in relation to FIGS. 1 and 9. When a window is concealed by one or more other windows, it is reduced to a predetermined size and displayed in the icon window display area, as shown and described in relation to FIG. 8. The windows are controlled in accordance with a window control table and other tables and buffers as shown and described in relation to FIGS. 3 and 4a-4d. The window control table includes an item corresponding to each window and indicating its position and other information.

Agarwal et al., U.S. Pat. No. 4,713,754, describe a data structure for a document processing system, within which each page is subdivided into nonoverlapping areas, each comprised of one or more types of layers. FIGS. 6 and 7 show the document files structure.

SUMMARY OF THE INVENTION

The present invention makes it possible to provide a window system in which window functionality, including each window's input and output functions and the functions that manage the relationship between related windows, may be selected independently of the window hierarchy. This facilitates the integration into a single user interface of applications with graphical user interfaces that depend on incompatible sets of functions, with the graphical user interface of each application being presented to a user in its own window according to its own functionality. Furthermore, if an application presents subwindows within its window, the relationships of those subwindows to the application's window and to each other can be governed by a set of functions that is incompatible with the sets of functions governing the relationships of subwindows within other application windows.

One aspect of the invention is based on the recognition of a basic problem in managing multiple windows or other workspaces. Some conventional systems provide multiple windows using a data structure that includes a respective data unit corresponding to each window. Each window's respective data unit conventionally has the same underlying structure as other window data units, to facilitate production of the data structure, and the underlying structure of window data units conventionally includes or provides for inclusion of data relating to functionality, whether that of a single window or of a set of related windows. A window data unit having a particular structure can only be used with sets of functions with which that structure is compatible. Therefore, the underlying structure of window data units limits the extent to which functionality can be changed: A different set of functions cannot be selected that is incompatible with the structure of the window data units.

This problem can be solved by including data relating to window functionality in data units that can be replaced independently of the underlying structure of window data units and also independently of the underlying structure of the data structure that includes the window data units. This aspect is based on the discovery of techniques for including functional data units in the data structure; each functional data unit includes data relating to functionality of a set of windows and is replaceably associated with the data units of those windows. The data in each functional data unit can then be used in providing functionality of the set of windows with whose data units it is associated. Functionality can be selected by accessing and replacing a functional data unit by another functional data unit that is compatible with a different set of functions.

One technique according to the invention is applicable to data relating to a single window's functionality, such as its sets of input and output functions. A functional data unit that includes data relating to a window's sets of input or output functions can be replaceably associated with that window's data unit within the data structure. The window's data unit can provide a placeholder within the data structure that has little or no data that restricts the window's functionality. As a result, functionality can be changed by replacing the functional data unit with another functional data unit compatible with a different set of functions, independently of the underlying structure of the window's data unit and of the window system data structure.

Another technique according to the invention is applicable to data relating to functionality of a set of windows, such as a windowing relationship in which a set of windows called children are related by being nested in another window called the parent. A functional data unit that includes data relating to a set of functions that manage a windowing relationship or other relationship between windows can be replaceably associated with the data units of all of the related windows. Furthermore, if the data structure includes an auxiliary data unit associated with the data units of all the windows in the set, the functional data unit can be replaceably associated with the auxiliary data unit. The auxiliary data unit can thus provide a neutral relationship so that data units of the related windows need not include data restricting the relationship. As a result, the functionality can be changed by replacing the functional data unit with another functional data unit compatible with a different set of functions managing relationships, independently of the underlying structure of the related windows' data units and of the window system data structure.

The following description, the drawings and the claims further set forth these and other objects, features and advantages of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a workstation presenting windows in accordance with the invention.

FIG. 2 is a schematic diagram representing a data structure that includes an auxiliary data unit and functional data units according to the invention.

FIG. 3 is a schematic diagram showing components of a system including a data structure according to the invention.

FIG. 4 is a schematic block diagram showing structure and relations between data units within the data structure in FIG. 3.

DETAILED DESCRIPTION

A. General Features

General features of the invention can be understood from FIGS. 1 and 2. FIG. 1 shows windows that can have independently replaceable functionality on a workstation's display. FIG. 2 shows a data structure with an auxiliary data unit to facilitate windows that can have independently replaceable functionality.

FIG. 1 shows workstation 10 with display 12 and keyboard/mouse 14. Display 12 is shown presenting a number of windows. Window 20 is outermost, and can, for example, present the graphical user interface provided by a special purpose application called a desktop manager. Within window 20 are windows 30 and 40, each of which is a subwindow of window 20 and each of which can present the graphical user interface of a respective application that makes use of the window system. In other words, the user can provide inputs to the respective application of one of windows 20 and 30 through signals directed to that window, with the respective application providing output for display in that window.

FIG. 1 also illustrates how different sets of windowing functions could be independently selected and used. The windowing functions governing windows 20, 30, and 40 could be different from the windowing functions governing windows 30, 32, and 34 or governing windows 40, 42, and 44. For example, the windowing functions of window 20 and its children could simulate the windowing calls of the X Window System ("X"), so that a desktop manager designed for X could be readily ported to this environment. On the other hand, the windowing functions of window 40 and its children could simulate the windowing calls of the Interlisp-D window system, which has a built-in desktop manager. And the windowing functions of window 30 and its children could be lightweight functions for providing tiled subwindows. Any of these sets of windowing functions could be selected and used independently of the other windowing functions.

In addition, each window in FIG. 1 could have different functionality. Windows 34 and 44 could each have a simple output service capable only of providing text output, for example a TTY output service, while windows 32 and 42 have a more complete output service that supports geometric shapes and curves. Windows 34 and 44 could have input services that only notify them of keyboard events, while windows 32 and 42 could have input services that also notify them of mouse events. The input or output functionality of each window could similarly be selected independently of the functionality of other windows.

FIG. 2 is a schematic representation of data structure 50, which could be used to provide windows with independently selected functionality as in FIG. 1. Data structure 50 is hierarchical, with nodes corresponding generally to each window in FIG. 1. The uppermost node in data structure 50 is workspace data unit 52, corresponding to window 20. Associated between it and the next level of workspace data units is auxiliary data unit 54, with which are associated workspace data units 56 and 58, corresponding to windows 30 and 40, respectively. Auxiliary data units 60 and 62 are in turn associated with workspace data units 56 and 58, respectively. Finally, auxiliary data units 60 and 62 are associated respectively with workspace data units 64 and 66 and with workspace data units 68 and 70, corresponding to windows 32, 34, 42 and 44, respectively.

In addition to this hierarchy of workspace and auxiliary data units, data structure 50 includes associated data, some of which is shown in FIG. 2. Workspace data unit 56 illustratively has associated functional data units 80 and 82, respectively including data relating to input and output functions of window 30. Auxiliary data unit 60 has associated functional data unit 84, illustratively including data relating to a first windowing relationship among windows 30, 32, and 34. Similarly, auxiliary data unit 62 has associated functional data unit 86, illustratively including data relating to a second windowing relationship among windows 40, 42, and 44.

Data units 80, 82, 84, and 86 are merely illustrative, of course, and each workspace data unit and auxiliary data unit could have associated functional data units similar to those shown associated with workspace data unit 56 and with auxiliary data units 60 and 62.

The manner in which associated functional data units 80, 82, 84, and 86 are shown in FIG. 2 also illustrates that any one of them could be replaced, without other modifications to the data structure, whether workspace data units, auxiliary data units, or other functional data units. Furthermore, each of these functional data units can be successfully utilized by a corresponding set of functions, and each could be replaced by a different functional data unit that could be utilized by a different set of functions. In other words, functional data units 80, 82, 84, and 86 are independently replaceable.

Generalizing from the features illustrated in FIGS. 1 and 2, the following conceptual framework is helpful in understanding the broad scope of the invention. This conceptual framework is a modification and extension of that set forth in the following copending, coassigned U.S. patent applications, all of which are incorporated herein by reference (collectively "the workspace applications"). Ser. No. 030,766, entitled "User Interface with Multiple Workspaces for Sharing Display System Objects," filed Mar. 25, 1987; Ser. No. 127,997, entitled "Multiple Shared Virtual Workspaces," filed Dec. 2, 1987; Ser. No. 195,230, entitled "Accelerating Link Creation," filed May 18, 1988, now issued as U.S. Pat. No. 4,982,344; and Ser. No. 241,525, entitled "Private Regions within a Shared Workspace," filed Sept. 7, 1988. The terms defined below have the meanings indicated throughout the specification and in the claims.

A wide variety of display systems for data processing systems are available including, for example, various graphical user interfaces, but, despite their diversity, these systems tend to have certain common characteristics. One fundamental common characteristic is that a display produces human perceptions. In this application, the term "display feature" refers to any human perception produced by a display.

A "workspace" is a display feature within which other display features appear to have respective relative positions. A window is an example of a workspace. A workspace can have a visible boundary on the display, as windows 20, 30, 32, 34, 40, 42, and 44 illustrate. On the other hand, a workspace need not have a visible outer boundary and need not be contiguous. "Presenting" a workspace that includes plural display features produces the human perception of the display features in respective positions relative to each other.

As used herein, the term "workspace" includes a "virtual workspace," defined in some of the workspace applications as a workspace that is not completely viewed at a given time. Presentation of a virtual workspace produces the human perception of a workspace that exists but is only partially viewed or is not always viewed. The size of workspaces within a given display system may thus range from the smallest extent within which the system's display can present other display features in respective relative positions to the largest extent that can be managed by the system.

A workspace or set of workspaces can have several kinds of "functionality." For example, inputs directed to a workspace by the user can be delivered in accordance with a characteristic input service. Similarly, outputs can be presented within a workspace in accordance with a characteristic output service. Also, a relationship between members of a set of workspaces can be managed according to a characteristic service for managing that relationship. In general, workspace functionality includes all of the characteristic services a workspace or set of workspaces may have. Each service could, for example, be a set of functions that can be called by an application.

Workspaces can be "related" in various ways. One workspace can be "presented within" another workspace, meaning that a display feature within it appears to have a respective position relative to other display features within that other workspace. Two workspaces can "overlap," meaning that a part of one of them obscures a part of the other. Two workspaces can be "tiled," meaning that both are presented within some third workspace, but in mutually exclusive parts of the third workspace, one for each of the tiled workspaces. The workspaces in a set of virtual workspaces can be "alternatives," meaning that one of the set can be displayed even though the others are not visible. Two sets, each including one or more virtual workspaces, can be "linked," in the sense that a user viewing one set can make a request to view the other set. In short, the variety of relationships between workspaces is practically unlimited.

A workspace is "nested" in another workspace when it is only presented within the extent of that other workspace, with no part of it outside that other workspace, and when, if presentation of the other workspace ceases, presentation of the nested workspace also ceases. A special type of relationship between workspaces is a "windowing relationship," meaning a relationship that governs a workspace, called the "parent," and a set of other workspaces nested within it, called its "children." A windowing relationship, for example, governs how the space within the parent is divided among the children, including the ordering, positioning, and sizing of the children. An "ancestral relationship" is a relationship among a set of workspaces, each of which is a parent of at most one other workspace in the set and a child of at most one other workspace in the set; for example, a grandparent, parent, and child could have an ancestral relationship. A "sibling relationship" is a relationship between two or more children that are in a windowing relationship.

Another common characteristic of display systems is a correspondence between data within the data processing system and display features. In this appli