WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Document display system using documents having ephemeral attributes for sharing information regarding the location of the display of each document on multiple display devices    
United States Patent5613134   
Link to this pagehttp://www.wikipatents.com/5613134.html
Inventor(s)Lucus; Peter (Pittsburgh, PA); Senn; Jeffrey A. (Pittsburgh, PA); Brown; Andrew D. (New York, NY)
AbstractA computer controlled information management system is disclosed, including one or more documents. Documents in the system consist of attributes, each attribute having a name and a value. Attributes that are permanently stored with a document are permanent attributes. Attributes which are created only when a document is currently being displayed are ephemeral attributes. Ephemeral attributes store information regarding the visual display of the documents. Ephemeral attributes may be converted into permanent attributes and stored with the documents after the user is done referencing or modifying them. Ephemeral attributes may also be transferred between multiple simultaneous users of a common document through system communications channels. Documents are stored in repositories for long term storage, and are only sent to a client user interface when needed. The repositories are typically on server devices or secondary storage, but may also be in the same unit as the server. Ephemeral attributes may be converted into permanent attributes and stored with their associated documents in the repositories.
   














 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 5613134
Document display system using documents having ephemeral attributes for

     sharing information regarding the location of the display of each

     document on multiple display devices - US Patent 5613134 Drawing
Document display system using documents having ephemeral attributes for sharing information regarding the location of the display of each document on multiple display devices
Inventor     Lucus; Peter (Pittsburgh, PA); Senn; Jeffrey A. (Pittsburgh, PA); Brown; Andrew D. (New York, NY)
Owner/Assignee     Digital Equipment Corporation (Maynard, MA)
Patent assignment
All assignments
Publication Date     March 18, 1997
Application Number     08/563,871
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 29, 1995
US Classification     715/526 715/733
Int'l Classification     G06F 015/00
Examiner     Herndon; Heather R.
Assistant Examiner     Burwell; Joseph R.
Attorney/Law Firm     Sidney, Fisher; Arthur W. Dagg; David A. Johnston; A , .
Address
Parent Case     This application is a continuation of application Ser. No. 08/123,418, filed Sep. 17, 1993 now abandoned.
Priority Data    
USPTO Field of Search     395/144 395/145 395/146 395/148 395/153 395/161
Patent Tags     document display documents ephemeral attributes for sharing information regarding location display each document multiple display devices
   
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
5408600
Garfinkel
715/759
Apr,1995

[0 after 0 votes]
5353398
Kitahara
715/759
Oct,1994

[0 after 0 votes]
5280583
Nakayama
709/205
Jan,1994

[0 after 0 votes]
5220657
Bly

Jun,1993

[0 after 0 votes]
5038301
Thoma, III
345/3.3
Aug,1991

[0 after 0 votes]
5008853
Bly

Apr,1991

[0 after 0 votes]
4414621
Bown
715/733
Nov,1983

[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 apparatus for simultaneously displaying a document to multiple users comprising:

a first user system having a first display device, a first user input device for detecting user manipulations of visual representations of documents on said first display device, a first copy of said document, and a first set of ephemeral attributes, each one of said first set of ephemeral attributes having a name and a value, wherein the value of each one of said first set of ephemeral attributes defines an aspect of a location of a first visual display of said document upon said first display device, and where said first user system creates said first set of ephemeral attributes in response to user manipulation through said first user input device of said location of said first visual display of said document upon said first display device;

a second user system having a second display device, a second user input device for detecting user manipulations of visual representations of documents on said second display device, a second copy of said document, and a second set of ephemeral attributes, each one of said second set of ephemeral attributes having a name and a value, wherein the value of each one of said second set of ephemeral attributes defines an aspect of a location of a second visual display of said document upon said second display device, and where said second user system creates said second set of ephemeral attributes in response to user manipulation of said location of said first visual display of said document upon said first display device; and

a network connection coupled with both said first user system and said second user system, wherein said first set of ephemeral attributes are transmitted from said first user system to said second user system, and said second user system modifies said second set of ephemeral attributes responsive to said first set of ephemeral attributes, and said second user system modifies said location of said second visual display of said document on said second display device responsive to said second set of ephemeral attributes such that said second visual display of said document on said second display device is identical to said location of said first visual display of said document on said first display device.

2. The apparatus as in claim 1, further comprising:

a Local Area Network, coupled with a first client module in said first user system and a second client module in said second user system;

one or more repositories, coupled with said LAN, for permanent storage of a set of permanent attributes of said document;

a first workspace cache within said first user system, coupled with said first client module, for storing said first copy of said document and said first set of ephemeral attributes, wherein said first copy of said document includes a first copy of said set of permanent attributes of said document;

a first workspace viewer process, responsive to said first set of ephemeral attributes, within said first user system, coupled with said first workspace cache and said first display device, for maintaining a location and dimensions of said display of said document on said first display device, and for drawing an outline of said document on said first display device;

a first document renderer process, within said first user system, coupled with said first workspace cache and said first display device, for filling in said outline of said document on said first display device responsive to said first copy of said set of permanent attributes of said document;

a second workspace cache within said second user system, coupled with said second client module, for storing said second copy of said document and said second set of ephemeral attributes, wherein said second copy of said document includes a second copy of said set of permanent attributes of said document;

a second workspace viewer process, responsive to said second set of ephemeral attributes, within said second user system, coupled with said second workspace cache and said second display device, for maintaining the location and dimensions of said display of said document on said second display device, and for drawing an outline of said document on said second display device; and

a second document renderer process, within said second user system, coupled with said second workspace cache and said second display device, for filling in said outline of said document on said second display device responsive to said second copy of said set of permanent attributes of said document.

3. The apparatus for simultaneously displaying a document to multiple users as in claim 1 wherein said first set of ephemeral attributes further comprises:

a first ephemeral attribute having a value defining the `x` coordinate of said first visual display of said document on said first display device; and

a second ephemeral attribute having a value defining the `y` coordinate of a said first visual display of said document of said document on said first display device.

4. The apparatus for simultaneously displaying a document to multiple users as in claim 3 wherein said second set of ephemeral attributes further comprises:

a first ephemeral attribute having a value defining the `x` coordinate of said second visual display of said document on said second display device; and

a second ephemeral attribute having a value defining the `y` coordinate of a said second visual display of said document of said document on said second display device.

5. The apparatus as in claim 1, wherein said first user system modifies said first set of ephemeral attributes in response to user manipulation through said first user input device of said location of said first visual display of said document on said first display device.

6. The apparatus as in claim 1, wherein said second user system modifies said second set of ephemeral attributes in response to user manipulation through said second user input device of said location of said second visual display of said document on said second display device.

7. The apparatus as in claim 6, wherein said second set of ephemeral attributes are transmitted via said network connection from said second user system to said first user system, and said first user system modifies said second set of ephemeral attributes responsive to said second set of ephemeral attributes, and said first user system modifies said location of said first visual display of said document on said first display device responsive to said first set of ephemeral attributes such that said first visual display of said document on-said first display device is identical to said location of said second visual display of said document on said second display device.

8. An apparatus for simultaneously displaying a document to multiple users comprising:

a first user system having a first display device, a first user input device for detecting user manipulations of visual representations of documents on said first display device, a first copy of said document, and a first set of ephemeral attributes, each one of said first set of ephemeral attributes having a name and a value, wherein the value of each one of said first set of ephemeral attributes defines an aspect of a location of a first visual display of said document upon said first display device, and where said first user system creates said first set of ephemeral attributes in response to user manipulation through said first user input device of said location of said first visual display of said document upon said first display device;

a second user system having a second display device, a second user input device for detecting user manipulations of visual representations of documents on said second display device a second copy of said document, and a second set of ephemeral attributes, each one of said second set of ephemeral attributes having a name and a value, wherein the value of each one of said second set of ephemeral attributes defines an aspect of a location of a second visual display of said document upon said second display device, and where said second user system modifies said second set of ephemeral attributes in response to user manipulation through said second user input device of said location of said second visual display of said document upon said first display device;

a first client module within said first user system, coupled with a first cache;

a second client module within said second user system, coupled with a second cache;

a Local Area Network, coupled with said first client module and said second client module;

one or more repositories, coupled with said LAN, for permanent storage of said document;

a first conversion process, within said first user system for storing said first set of ephemeral attributes as a set of permanent attributes in said repositories;

a second conversion process, within said second user system, for reading said set of permanent attributes and storing said set of permanent attributes as said second set of ephemeral attributes into a second workspace cache within said second user system.

9. A method of merging documents, comprising the steps of:

retrieving a set of permanent attributes for a first document from a repository into a user system, each one of said permanent attributes having a name and a value;

retrieving a set of permanent attributes for a second document from said repository into said user system, each one of said permanent attributes having a name and a value;

creating a set of ephemeral attributes for said first document, responsive to user manipulation of a screen object of said first document on a display device coupled with said user system, each one of said ephemeral attributes for said first document having a name and a value, wherein the value of each one of said set of ephemeral attributes for said first document defines an aspect of a location of a screen object of said first document on said display device;

creating a set of ephemeral attributes for said second document, responsive to user manipulation of a screen object of said second document on a display device coupled with said user system, each one of said ephemeral attributes for said second attribute having a name and a value, wherein the value of each one of said set of ephemeral attributes for said second document defines an aspect of a location of said screen object of said second document on said display device;

merging said first document and said second document to create a third document, said merging including storing said set of ephemeral attributes for said first document, said set of permanent attributes for said first document, said set of ephemeral attributes for said second document and said set of permanent attributes of said second document in said repository as a set of permanent attributes for said third document;

retrieving said set of permanent attributes for said third document from said repository; and

displaying a visual display of said third document on said display device responsive to said permanent attributes for said third document, said visual display of said third document including said screen object of said first document displayed at said location of said screen object of said first document and said screen object of said first document displayed at said location of said screen object of said second document.
 Description Submit all comments and votes
 


FIELD OF THE INVENTION

The invention relates generally to three dimensional graphical user interfaces, and more specifically to efficient representation of documents in a three dimensional user interface.

BACKGROUND

In existing client-server computing environments, the end user interfaces with a client. The client is attached to a server over a network, and the server provides the client with files of information as they are needed. When the user requests data from a file, the client sends a request to the server, and the server responds by sending the file containing the requested data to the client. As the user modifies the a visual representation of the data, the client modifies a local copy of the file. When the user is done, the client writes the local copy of the file back to the server, and deletes information about the current visual representation of the data within the client.

A first problem in such existing systems is that when a second user accesses the document while the first user was working with it, the second user has no access to information about the visual display of the document as seen by the first user. Therefore, the two users cannot simultaneously work with a shared document such that both can see the results of the other's changes to the document's visual representation.

A second problem in such existing systems is that when a modified file is written back to the server from the client, information relating to how the file was visually displayed to the user are not preserved. Therefore when the file is subsequently referenced, the previous visual representation must be recreated by each referencing user. This requires duplicative user efforts in setting up the visual display of a document each time the document is opened.

A further need not addressed by current systems is to provide a mechanism for merging files based on a visual display of the files.

For these reasons and others, a new system is required for document management in which aspects of the visual display of a document are preserved, and periodically updated. The new system should be designed to work in a client--server computing environment, where potentially thousands of documents are displayed to the user simultaneously. The new system should also allow multiple users to work together simultaneously on a document within a single repository on multiple clients, and provide a mechanism for merging files based on their visual representation.

SUMMARY

A computer controlled information management system is disclosed, including one or more documents. Documents in the system consist of attributes, each attribute having a name and a value. Attributes that are permanently stored with a document are called permanent attributes. Attributes which are created only when a document is currently being displayed are called ephemeral attributes. The ephemeral attributes store information regarding the visual display of the documents. Ephemeral attributes may be converted into permanent attributes and stored with the documents after the user is done referencing or modifying them. Ephemeral attributes may also be transferred between multiple simultaneous users of a common document through system communications channels.

Documents are stored in repositories for long term storage, and are only sent to a client user interface when needed. The repositories are typically on server devices or secondary storage, but may also be in the same unit as the server. Ephemeral attributes may be converted into permanent attributes and stored with their associated documents in the repositories.

Each time a user requests a document, the client sends a search request to one or more repositories. The repositories respond with one or more messages containing the unique identifier(s) of documents that match the description in the search request. The client then requests permanent attributes of the documents corresponding to the received UIDs, and the repositories respond by sending requested permanent attributes of the requested document to the client. The client then determines whether any of the received permanent attributes for that document are actually ephemeral attributes defining the previous visual display of the document, stored as permanent attributes in the repository. The client converts such permanent attributes into ephemeral attributes and uses their values to create a display of the document on a display device.

As the user manipulates the display of the document, the client modifies the values of the ephemeral attributes. When the document is written back to the repository, the updated ephemeral attributes may be stored as permanent attributes with the document. In addition, ephemeral attributes of all documents are stored as permanent attributes of workspace documents, so that they may be used across multiple sessions by using a common workspace document. In applications or configurations where multiple users share workspace documents, there is no need to permanently store ephemeral attributes other than in workspace documents.

Typical examples of ephemeral attributes are the x, y, and z coordinates designating the position of the screen object for a document in the three dimensional workspace.

The system allows the user to organize and search hundreds or even thousands of documents, and then recreate the resulting visual display of each document in a later session. The user is therefore saved the expense of having to recreate a visual representation of a document within the user interface of a client, each time a document is retrieved from a server. Also users may create and maintain meaningful configurations of documents, for example clusters, piles, and other arrangements.

The system may be configured such that ephemeral attributes are saved as permanent attributes of the workspace document and stored to the repository periodically, or whenever a modification to an ephemeral attribute value occurs. In this way a first user can manipulate the visual display of the document, and the results of these manipulations are available to a second user referencing the repository, without the first user having to write back the entire document to the repository.

Alternatively, the user may be queried as to whether the ephemeral attributes of the current display of a document should be stored with the document when the the user closes the document, or otherwise indicates the document should be stored into a repository. The system then either stores or discards the current ephemeral attributes for the document based on the response of the user.

The system also provides a merging process to combine multiple documents based on the visual display of the documents as reflected in their ephemeral attributes. For example, where a first document contains ephemeral attributes defining a first location within a workspace, and a second document contains ephemeral attributes defining a second location within a workspace, the user may create a new document that combines the two documents using the merging process. The newly created document includes the first document in the first location, and the second document in the second location. Any number of documents may thus be combined into newly created documents using the confluence process.

These and other features and advantages of the present invention will become apparent from a detailed reading of the detailed description in conjunction with the attached drawings in which like reference numerals refer to the elements in the several views.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a drawing of a strand;

FIG. 2 is a drawing of a strand that has been selected by a user;

FIG. 3 is a drawing of a pile and scroll tool with a strand;

FIG. 4 is a drawing of a tile strand of documents;

FIG. 5 is a drawing of a corkscrew strand of documents;

FIG. 6 is a drawing of an embodiment the system;

FIG. 7 is a drawing of a second embodiment of the system;

FIG. 8A is a drawing of an example embodiment of a repository node consisting of a repository interface coupled with a repository storage;

FIG. 8B shows an example embodiment of logical processes within a repository interface; FIG. 8C is a drawing showing an example embodiment of a repository node having repository storage in the form of a disc drive;

FIG. 9 is a drawing of a find tool with an output strand having a knot;

FIG. 10 is a block diagram of the architecture of a document display system using strands;

FIG. 11 is a flow chart showing the steps of a method for scheduling using a blocked queue and an execution queue;

FIG. 12A is a drawing showing a first example embodiment of an attribute having a name, a delimiter, and a value;

FIG. 12D is a drawing showing a second example embodiment of an attribute having a name, a value, and a delimiter of a parenthesis;

FIG. 13 is a diagram of showing a system having asynchronous remote repository access;

FIG. 14 is a diagram showing the steps of a find tool method for retrieving documents from repositories;

FIG. 15 is a diagram of an apparatus for sharing a document between two users;

FIG. 16 is a diagram of an apparatus for merging multiple documents based on their visual display attributes;

FIG. 17 is a diagram of an apparatus for retrieving documents from repositories and having no busy cursor; and

FIG. 18 shows the steps of a method for retrieving documents from repositories and having no busy cursor.

DETAILED DESCRIPTION

Documents

A document is the primary object in the system. All data are contained in documents. A document contains some number of attributes, each attribute having a name and a value. The set of attributes for any given document is arbitrary, and no particular attributes are required of all documents.

A screen object is the visual representation of a document. It may be visible or hidden at any given time. Screen objects are generally rectangular.

A Unique Identifier, or UID, is a string of alphanumerics that uniquely identifies a document. A UID is necessary and sufficient to refer to a specific document.

Attribute/Value Pairs

An attribute is a piece of data stored in a document. Each attribute has an attribute name and an attribute value. An attribute name uniquely identifies an attribute value within a document.

The Script Interpreter

Script consists of a scripting language that can be executed to perform some action. It is stored in attribute values. Scripting language is a language used to specify commands to the system environment.

The script interpreters (architecturally there can be any number) interpret script which is stored in attributes of documents. Scripts can modify attributes of documents, perform basic mathematical and search operations, call other scripts, and do other basic operations such as insert or remove documents from strands. Most of the actions in the system are activated by calling scripts within documents.

Documents are the single abstraction structure in the script language. There is no persistent storage associated with the script environment other than attributes of documents. Most of the actions in the system (other than simple dragging of documents) are activated by calling scripts within documents. A document consists of attribute/value pairs; by referencing an attribute in an expression, the value is returned.

The value of any attribute, ephemeral or not, may be executable script. Script thus allows the power user to extend the functionality of the system. For example, a user may define the value of an attribute by writing his or her own script as the value of that attribute.

Whether an attribute is executable or not is typically established by convention. For example, for a given implementation, an architecturally defined set of messages may indicate that the attributes referenced by the messages are executable. Or, a button on the mouse may be architecturally defined to invoke and execute the script contained in an attribute of the document in which the cursor is located when that button is clicked by the user. In addition, or as an alternative, an identifier process can be designed and used to determine whether the value of an attribute is script, and also what script interpreter is needed to interpret it. The identifier process does not test whether the script can be properly parsed, but upon determining that the value of an attribute is script, chooses which script interpreter to call to interpret the script. For example, the identifier process can select an interpreter for a dialect of the Lisp programming language by checking the first non-whitespace character to see if it is a left paren or single-quote. If the first non-whitespace character is a left paren of a single-quote, the identifier process selects the interpreter for the dialect of the Lisp programming language to interpret the script.

A goal in designing a particular script language is that the script language be easy to read. Users may not be computer scientists, but will nevertheless want to examine and modify scripts to a certain extent. Therefore the language must have few special characters, and generally use natural language words instead of symbols.

The script language should be uniformly structured, in that the only storage entity (object) in the language is a document consisting of attribute/value pairs. Values may be atomic, such as strings, numbers, dates, or images, or they may be pointers (UID's) to other documents. Global objects may be stored as attributes in a universal "global" document which is visible to all scripts.

Attributes are generally not typed, but values are generally typed. The types of values are used to determine what operations are permissible. A script is executed within a document by evaluating an attribute whose value is a script, and whose type is executable.

Inputs to the System

An example embodiment of the system includes an input device, for example a mouse, to obtain information from the user regarding selecting and moving documents within the display. It will be clear to one skilled in the art of user interfaces that devices other than a mouse, such as a light pen, a voice controlled display, or a touch sensitive screen, are potential alternatives to the mouse.

The locations of mouse events, for example the pressing and or releasing of a mouse button, are recorded as the UID of the document in which the cursor is located when the mouse event occurs. The x, y or z position of the cursor at the time the mouse event occurred is recorded. The results of user actions to select or deselect one or more documents are similarly recorded.

Scanning Documents

Any paper document can be entered into the system by scanning. When scanning a document into the system, a cover sheet should be used. Each cover sheet is encoded with the identification of the owner of the document. Such identification would, for example, consist of the unique user name defined within the system used to log-on or gain access to system.

In an example embodiment, when a document is scanned into the system, the scanned document is automatically placed in an IN BOX pile of the owner of the document. Each scanned document has an information sticker across its top displaying the name of the owner and the date it was scanned. The cover sheet is not included.

Scanned documents without cover sheets, or that have cover sheets that do not name valid users, cannot be delivered to the true owner of the document by the system. The system may be configured to deliver such scanned documents to a designated user, who is responsible for determining the owner of the scanned documents.

The Visual Presentation; The Workspace

A workspace is a virtual three dimensional space in which a set of documents are arranged. In this way a workspace contains a set of documents. Within a workspace, there is a list of the documents contained within the workspace, consisting of combinations of repository identifiers (RIDs) and unique identifiers (UIDs). Also, for each document within the workspace there exist ephemeral attributes, which describe the current visual display of that document within the workspace. Examples of ephemeral attributes include the X, Y, and Z positions of the document within the workspace.

A workspace is stored in a workspace document and displayed in a workspace window. A workspace document is a document that contains all of the state information of a workspace. A workspace document may be contained within other workspaces.

The display of a workspace on the display device is the "screen space" representation of the three dimensional workspace on the two dimensional display device. In an embodiment of the system, the screen space display of a workspace is implemented through a window in the host computer's windowing system, within which the two dimensional screen space rendering of the three dimensional workspace is displayed.

The system uses a three dimensional workspace to provide a useful display of potentially thousands of documents. A workspace may display thousands of documents. In a preferred embodiment of a workspace, the workspace is wrapped at the edges, giving a fish-eye lens effect, so that every screen object that is not invisible has at least some portion of its rectangle within the screen display no matter what its position in the three dimensional workspace.

Workspaces may be shared, such that multiple users have the same workspace open. For example, user one and user two could simultaneously have the same workspace open. In one embodiment, when user one drags a document within the workspace, user two sees it moving as well. The ephemeral attributes defining the visual representation of the documents within the workspace can be mediated via repository connections from user one to user two to support this feature. For example, both user one and user two could simultaneously read and write to a shared copy of the workspace document within a mutually accessible repository. Alternatively, user one and user two could maintain separate copies of the workspace document in their respective client modules, establish a direct network connection between them, and exchange ephemeral attribute updates via the direct network connection.

The Renderer Process

A renderer process is an element of the system that maintains the virtual three dimensional workspace. The renderer process is performed by various specific renderers.

A document renderer is that portion of the system that draws inside the rectangle of the screen object associated with each document in a workspace. The system supports multiple renderers, and which renderer is used for a particular document is determined by an attribute of that document.

A workspace viewer is a process in the system responsible for outlining the screen objects of documents within the workspace and managing the display of selection indication. The interior of each screen object is rendered by its associated renderer, and the workspace viewer completes the view. The workspace viewer is also that part of the system which is responsible for maintaining the view of a workspace. That is, the workspace viewer contains the means for arranging documents in three-space.

Ephemeral Attributes

Ephemeral attributes are attributes associated with a document in the context of a workspace. Ephemeral attributes are stored within a workspace document of the workspace containing the screen object of the specific document which the ephemeral attributes are associated with. Ephemeral attributes define the display characteristics of the associated document, such as position and size. Ephemeral attributes reflect the actions of the user in manipulating the screen object of a document within a workspace, typically through using an interface device such as a mouse.

Ephemeral attributes are stored in workspace documents, which in turn are stored in repositories. All the state information of the last image of a workspace, including ephemeral attributes associated with each document in the display, is stored in the permanent attributes of a workspace document when that document is stored into a repository. Thus a document may have different ephemeral attributes and values when that document is associated with different workspaces.

An ephemeral document is a document that has existence only in a workspace. It has no permanent attributes, only ephemeral ones. In an alternative embodiment, ephemeral documents may be stored in a virtual "workspace repository", accessible only from its workspace, and may have permanent attributes in this context. In such an alternative embodiment, the state of the workspace repository is stored as an attribute of the workspace document.

An intrinsic ephemeral attribute, or intrinsic attribute, is a special ephemeral attribute that every document must have, which directly effects the display of the screen object. Examples include x position (xpos), y position (ypos) and z position (zpos). Many intrinsic attributes are available for direct manipulation through the user interface device.

The Perspective Function

A perspective function maps objects on the screen by taking the three dimensional workspace coordinates, or "world space coordinates", maintained by the workspace viewer, and mapping them into two-dimensional screen space positions.

For example, every document has a position in world space defined along the x, y, and z axis, and every document has a width and a height. When an image of the document is drawn on the display device, the perspective function takes those world space coordinates and size variables as input parameters, and determines the actual size and location on the display device, in "screen space coordinates", where the document is actually going to be drawn. The perspective function is instantiated by the workspace viewer process.

Dragging Along the X, Y or Z Axis

To move a document around a workspace, there are three basic actions: dragging around, pushing back/pulling forward, and clipping. Dragging a document is the act of moving the corresponding screen object for that document with respect to one or more of the x, y, and z axis of the workspace by manipulation of the user interface device.

To move a document within the workspace, the user uses the user interface device to place the mouse cursor near the center of screen object of the document. The user next presses and holds the mouse button while moving the mouse. As a result, the screen object disappears and is replaced by an outline of its shape (called a drag box). As the mouse is moved, the drag box follows. This is known as dragging. When the mouse button is released, the screen object reappears in its new position.

Documents are pushed back and pulled forward via a modified drag action, e.g. using a separate mouse button, or by first moving the mouse cursor close to a corner of the screen object of the document, and then pressing and holding a mouse button. As an alternative a track ball device may be used to manipulate the position of the mouse cursor. As the mouse cursor is moved toward the bottom of the screen the screen object is dragged forward (towards the user) within the workspace. As the mouse cursor is moved toward the upper left corner of the screen instead of forward, the screen object is pushed back within the workspace. Note that as the screen object on the display device is being moved, the virtual location of the corresponding document maintained in the world space of the workspace viewer is being changed accordingly. Thus one can either say that the screen object is being moved, or that the document is being moved, and have the same meaning.

As a document is pulled forward, the document is moved towards the user along the z axis of the three dimensional workspace. The perspective process translates this movement of the object towards the user into a screen representation of the screen object for the document. As a result, the screen object for the document grows in size in its two dimensional screen space representation. Conversely, when a document is pushed back, the screen object for the document is made smaller.

A document can only be moved forward a certain distance. When it is as big as it will get, it is plastered against the workspace window and cannot be moved any closer.

The world space size of a screen object is the size of the screen object in the three dimensional space of the workspace. This is the object's real size opposed to the screen space size at which it appears on the screen display surface. Documents and elements of documents (e.g. buttons, text fields, etc.) all have world space sizes. Although dragging along the Z axis can make the world space size of documents very small, they will never be rendered at a size that is invisible to the user.

In the case of "corner dragging" in the Z dimension, any of the four corners of a document may be used to push or pull it. However, the document will move along somewhat different paths depending on which corner is used.

Repositories

A repository is a data store that contains documents. A workspace is generally used for short term storage of documents. For long-term storage, documents are kept in repositories. When a system tool brings documents into a workspace, it gets them from repositories. A Repository Identifier, or RID, is a string of alphanumerics that uniquely identifies a repository. RIDs are unique on the network. An RID is necessary and sufficient to refer to a repository. In an alternative embodiment RIDs are universally unique, and therefore permanently stable in a global environment where mobile computing is increasing significant. For purposes of example, such universally unique RIDs may be assigned through a central RID allocation system, similar to how 48 bit Ethernet physical layer addresses are centrally assigned to specific network controllers, to guarantee that there are no duplicates.

The computer network that the system is connected to may have one repository available or it may have many. Some repositories are generic places to put documents, while others may be specialized. For example, a machine that sends and receives documents as faxes over telephone lines can be a repository. The user may choose to maintain a private repository on the local computer. Most repositories are on remote machines and the system gets documents from them