DATABASE OR FILE ACCESSING

Information manager method and system

6990480

Abstract

A system and method for providing a single software package that performs and integrates the same informational tasks that people perform on paper is disclosed. The system includes a user interface called a Page which is a generalized representation of the automation of all classes of informational tasks. The system includes an Information Manager which maintains the informational relationships within which a User interacts with the system interface or the Pages. The system further includes a Control Structure to manage the Performance and interactions among the Pages.


Claims

What is claimed is:

1. An information management method comprising the following steps executed by a computer:

receiving a user definition of a first user-interface page containing one or more first page fields including a plurality of first page reference fields, and for each first page reference field a respective agent set vector;

receiving a user definition of multiple instances of the first user-interface page, wherein the user definition for each instance of the first user-interface page specifies a respective value for each first page field including a respective set of first page reference field values, wherein the respective set of first page reference field values uniquely distinguishes each instance of the first user-interface page from each other instance of the first user-interface page;

automatically storing each instance of the first user-interface page as a respective first page instance metaobject in a data storage medium without abstracting the instance of the first user-interface page into a database record, wherein each first page instance metaobject contains (A) first page attributes, including the agent set vector for each first page reference field, and (B) for each of the one or more first page fields, a respective first page field object that has (i) a value attribute that contains a field value, if any, that a user has entered into the first page field in the instance of the first page, (ii) a calculation attribute that contains a calculation if a calculation is assigned to the first page field, (iii) functional state attributes that cooperatively define a functional state of the first page field, and (iv) at least one appearance attribute that contains at least one appearance definition for the first page field; and

thereafter (i) receiving from a user a given set of first page reference field values for the first user-interface page and (ii) responsively retrieving from the data storage medium a given first page instance metaobject whose reference field values match the given set of first page reference field values, and displaying a corresponding instance of the first user-interface page, including all first page field values defined by the given first page instance metaobject,

whereby the user can readily retrieve a previously entered instance of the first user-interface page by simply entering the reference field values of the previously entered instance.

2. The method of claim 1, wherein the first user-interface page is an encapsulatable, binary object containing the first-page fields overlying a paper stock, wherein a user interfaces with the first user-interface page using the first-page fields, and wherein the first user-interface page automates informational tasks that a user may have to perform.

3. The method of claim 1, wherein automatically storing each of the first user-interface page as a respective first page instance metaobject occurs during a run mode only once a user specifies a set of first page reference field values for the first page instance.

4. The method of claim 1, further comprising:

assigning to each first page instance metaobject a respective network address; and

using the network address of a given first page instance metaobject to access the given first page instance metaobject.

5. The method of claim 1, further comprising:

receiving from the user a request to change an appearance of a given first page field stored as a corresponding first page field object, and responsively changing at least one functional state attribute of the corresponding first page field object to reflect the change in appearance.

6. The method of claim 5, further comprising:

notifying the user if changing the at least one functional state attribute of the corresponding first page field object would give rise to a loss of data content.

7. The method of claim 1, wherein the agent set vector for each first page reference field defines a category of values for the first page reference field, and wherein the agent set vector is assignable to other reference fields as well.

8. The method of claim 1, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields contains a given calculation that references at least one first page field; and

performing the given calculation across all instances of the first page.

9. The method of claim 8, further comprising:

placing a result of the calculation in the given second page field that contains the given calculation, for a user to see the result.

10. The method of claim 1, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields contains a calculation that references at least one first page field;

performing the calculation in an instance of the second user-interface page; and

upon change in value of the first page field in an instance of the first user-interface page, sending the changed value to the instance of the second user-interface page to facilitate re-performance of the calculation.

11. The method of claim 1, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields including at least one second page reference field, wherein each of the at least one second page reference field has an associated agent set vector, and wherein at least a given one of the second page fields contains a given calculation that references at least one particular first page field;

receiving a user definition of at least one instance of the second user-interface page, including, for each instance of the second user-interface page, a value for each of the at least one second page reference field;

storing the at least one instance of the second user-interface page as a respective second page instance metaobject in a data storage medium without abstracting the instance of the second user-interface page into a database record, wherein the second page instance metaobject contains (A) second page attributes, including the agent set vector for each of the at least one second page reference field, and (B) for the given second page field, a given second page field object that has a calculation attribute that contains the given calculation; and

performing the calculation by a process comprising (i) selecting a given first page instance metaobject such that each reference field in the given first page instance metaobject has a value matching a value of a given reference field of the second page instance metaobject and shares an agent set vector with the given reference field of the second page instance metaobject, and (ii) carrying out the calculation using the value of each of the at least one particular first page field of the given first page instance metaobject.

12. The method of claim 1, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields is a block state field and defines a calculation that references at least one first page field; and

performing the calculation by aggregating values from the first page field into rows of the block state field.

13. The method of claim 12, wherein, if the second user-interface page has a particular reference field with an agent set vector matching an agent set vector of a particular reference field of the first user-interface page, then aggregating values from the first page field into rows of the block state field is done with respect to just instances of the first user interface page in which a value of the particular reference field of the first user interface page matches a value of the particular reference field of the second user interface page.

14. The method of claim 1, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields including at least one second page reference field having a corresponding agent set vector, wherein at least one of the second page fields has a calculation that contains a lookup expression pointing to at least a given first page field, wherein the given first page field is a block state field,

wherein the lookup expression provides a Boolean expression to evaluate against values in one or more columns of the given first page field in order to find a given row in which the Boolean expression is true, and it provides a calculation expression to evaluate using one or more values from one or more columns of the given row the first page field.

15. The method of claim 1, further comprising:

receiving a user definition of a new reference field for the first user-interface page; and

responsively (i) modifying each first page instance metaobject to include the new reference field and (ii) updating informational connections between page instances in view of the new reference field.

16. The method of claim 1, further comprising:

receiving from a user a new definition of a first page field for the first user-interface page; and

responsively modifying each first page instance metaobject to include the new first page field.

17. The method of claim 1, further comprising:

receiving from a user a request to delete a particular first page field from the first user-interface page; and

responsively modifying each first page instance metaobject to exclude the particular first page field.

18. An information management method comprising the following steps executed by a computer:

receiving a user definition of a first user-interface page containing one or more first page fields including a first page reference field, and for the first page reference field a corresponding agent set vector;

receiving a user definition of multiple instances of the first user-interface page, wherein the user definition for each instance of the first user-interface page specifies a respective value for each first page field including a respective first page reference field value, wherein the respective first page reference field value uniquely distinguishes each instance of the first user-interface page from each other instance of the first user-interface page;

automatically storing each instance of the first user-interface page as a respective first page instance metaobject in a data storage medium without abstracting the instance of the first user-interface page into a database record, wherein each first page instance metaobject contains (A) first page attributes, including the agent set vector for the first page reference field, and (B) for each of the one or more first page fields, a respective first page field object that has (i) a value attribute that contains a field value, if any, that a user has entered into the first page field in the instance of the first page, (ii) a calculation attribute that contains a calculation if a calculation is assigned to the first page field, (iii) functional state attributes that cooperatively define a functional state of the first page field, and (iv) at least one appearance attribute that contains at least one appearance definition for the first page field; and

thereafter (i) receiving from a user a given first page reference field value for the first user-interface page and (ii) responsively retrieving from the data storage medium a given first page instance metaobject whose reference field value matches the given first page reference field value, and displaying a corresponding instance of the first user-interface page, including all first page field values defined by the given first page instance metaobject,

whereby the user can readily retrieve a previously entered instance of the first user-interface page by simply entering the reference field value of the previously entered instance.

19. The method of claim 18, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields contains a given calculation that references at least one first page field; and

performing the given calculation across all instances of the first page.

20. The method of claim 19, further comprising:

placing a result of the calculation in the given second page field that contains the given calculation, for a user to see the result.

21. The method of claim 18, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields including at least one second page reference field, wherein each of the at least one second page reference field has an associated agent set vector, and wherein at least a given one of the second page fields contains a given calculation that references at least one particular first page field;

receiving a user definition of at least one instance of the second user-interface page, including, for each instance of the second user-interface page, a value for each of the at least one second page reference field;

storing the at least one instance of the second user-interface page as a respective second page instance metaobject in a data storage medium without abstracting the instance of the second user-interface page into a database record, wherein the second page instance metaobject contains (A) second page attributes, including the agent set vector for each of the at least one second page reference field, and (B) for the given second page field, a given second page field object that has a calculation attribute that contains the given calculation; and

performing the calculation by a process comprising (i) selecting a given first page instance metaobject such that the reference field in the given first page instance metaobject has a value matching a value of a given reference field of the second page instance metaobject and shares an agent set vector with the given reference field of the second page instance metaobject, and (ii) carrying out the calculation using the value of each of the at least one particular first page field of the given first page instance metaobject.

22. The method of claim 18, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields is a block state field and defines a calculation that references at least one first page field; and

performing the calculation by aggregating values from the first page field into rows of the block state field.

23. An information management method comprising the following steps executed by a computer:

receiving a user definition of a first user-interface page containing one or more first page fields;

receiving a user definition of an instance of the first user-interface page defining a respective value for each first page field;

automatically storing the instance of the first user-interface page as a first page instance metaobject in a data storage medium without abstracting the instance of the first user-interface page into a database record, wherein each first page instance metaobject contains (A) first page attributes and (B) for each of the one or more first page fields, a respective first page field object that has (i) a value attribute that contains a field value, if any, that a user has entered into the first page field in the instance of the first page, (ii) a calculation attribute that contains a calculation if a calculation is assigned to the first page field, (iIi) functional state attributes that cooperatively define a functional state of the first page field, and (iv) at least one appearance attribute that contains at least one appearance definition for the first page field,

wherein the first user-interface page does not include any reference fields,

wherein, because the first user-interface page does not include any reference fields, only one instance of the first user interface page can exist.

24. The method of claim 23, further comprising:

receiving a user definition of a second user-interface page containing one or more second page fields, wherein at least one of the second page fields contains a given calculation that references at least one first page field; and

performing the given calculation using the instance of the first page.

25. The method of claim 24 further comprising:

placing a result of the calculation in the given second page field that contains the given calculation, for a user to see the result.


Description

FIELD OF THE INVENTION

This present invention relates to computing systems. More specifically, it relates to an information manager method and system in a computing environment.

BACKGROUND OF THE INVENTION

The typical computing structure of personal computers includes a data-centric view of human performance and the concept of disparate Applications. These Applications are traditionally described as providing specialized functions, but each Application imposes a definite structure and unique limitations.

However, the concept of working within such arbitrary limitations imposed by the application specific computing structure is foreign to typical human productive work. People value information, which may be defined as data within a meaningful context, much more than data alone. The personal computer, by nature of its architecture, deals with data values abstracted from the information on, for example, pieces of paper. It requires the definition, creation and maintenance of an arbitrary structure typically a database schema to house the data. The personal computer provides no general process capable of moving data values between its data schema and an informational context understandable by the human. The typical computing environment introduces a requirement for a significant level of technical knowledge of the applications in the computing environment in addition to task specific knowledge. The user may have to translate his task requirements into several constructs useable by the computing environment. These constructs include, but are not limited to, one or more data schema or one or more data databases, one or more applications and frequently a programming language. Thus, the concept of data centricity in the traditional view of computer application is an artificial construct that is cumbersome for users.

Humans are able to handle very complex informational relationships using long-held multi-cultural traditions of recording and organizing information on pieces of paper. Humans can perform up to twenty-two types of information manipulation or tasks using pieces or pages of paper. These information tasks include the ability to draw, paste images, create datum containing fields, create lists for values, create tables for values, create hierarchies for values, create networks for values, write music, write data values into fields, erase and edit existing data values in fields, encode and/or decode data values, translate values among natural languages, perform calculations and/or derive values, create charts and/or graphs, distinguish among page Instances, combine with other Page and/or Page Instances into documents, secure documents, destroy documents, store documents, distribute documents, publish documents, and reference values on other Pages or Page Instances.

Accordingly, there remains a need to support the aforementioned human informational tasks that can be performed on pages of paper without imposing application specific limitations and constructs in a computing environment.

SUMMARY OF INVENTION

The Information Manager system of the present invention stores unabstracted data within an informational perspective of Pages or the User interface and creates a multi-dimensional repository of unabstracted data or information. The data is not abstracted into an arbitrary physical form such as a record. The Information Manager and the Pages are relocatable, sharable and transportable across any server hierarchy such as the Internet.

In accordance with a preferred embodiment, the Information Manager includes a text value table including an indexed list representation of data values and a Page Instance table to having a plurality of Fields. Each of the plurality of Fields has a pointer wherein a data Value is accessed using the pointer. The plurality of Fields may include a Field for an Agent Set Vector which is a list of the Reference Fields that exist on a particular Page; a Field for an Agent Set Value Vector which is the actual Reference Field associated with the list of Agent Set Vectors.

In accordance with another aspect of the present invention, a method to retrieve a particular value from the Information Manager includes accessing the Page Instance table, in particular accessing the row of the relevant Agency; and accessing the relevant data using pointers to relevant Field values.

The foregoing and other features and advantages of An Information Manager Method and System will be apparent from the following more particular description of preferred embodiments of the system and method as illustrated in the accompanying drawings.

DEFINITIONS

As used herein, the following terms refer to the respective definitions.

AGENCY 1. The set of Reference Fields on a Page
2. The set of Values for the Reference Fields on a
Page Instance
APPLICATION 1. A computer program designed to utilize
specialized internal constructs to deliver a
limited set of specific functions to End Users.
2. The system of the present invention delivers a
Universal Computing Environment in which
this concept of Applications does not exist.
AUDIO A type of Field Value consisting of sound capable of
being reproduced by the hardware upon which the
system is running. The physical representation of
this sound may be several formats, including some
integrated with Video data Values.
BLANK 1. The condition of any Field that has not, for
any reason, had its Data Value Entered or
Calculated.
2. The State of an Entered Field or Cell when its
Page Instance is first opened.
CALCULATION 1. Syntax allowed within Calculations of any
REFERENCE Type to reference a Value from another system
Field.
2. The reference is of the format: "{Field Name-
[!Column[:Row][::Column:Row]}"
3. The reference is automatically evaluated within
the intersection of the Page Agencies of the
Calling and the Referenced Pages.
CALCULATIONS 1. "Algebraic" expressions including {Field
Name} system Field References.
2. Calculations may of several types THAT ALL
SHARE THE SAME SYNTAX
3. Calculational expressions are used for:
Value Calculations
Enable Calculations
Validate Calculations
Default Calculations
Control Structure Tasks
Task Manager Tasks
Task Manager Conditions
CHOOSE LIST A list of Values which may, in Run Mode, be
selected from a Displayed List as the Data Value for
a system Data Entry Field. The Field's Creator may,
in Layout Mode, specify the Choose List Values in
one of three ways:
1. He may enter Values directly into the Choose
List exclusively for the Field in Question, or
2. He may reference another system Field in the
Data Entry State, in which case the Choose List
will, in Run Mode, contain each distinct Value
already Entered into the referenced Field, or
3. He may select a system Reference Field, in
which case the Choose List will contain all
Values already Entered into the selected
Reference Field on any Page on which it exists
The User may be restricted to Value Selection
from the displayed Values or may be allowed
to add new Values by keyboard entry at the
discretion of the Creator of the Field containing
the Choose List.
COLLEGIAL The use of the Universal Computing Environ-
COMPUTING ment with the combination of End User
Empowerment, Page Sharing, Publication, Task
(Application) Evolution, electronic Intellectual
Property Protection, and the Decision Making.
CONTINUATION Pages and the Fields they contain have fixed
PAGE INSTANCES physical dimensions. In addition, Fields have
loci. Two Field States imply functionality that
can result in Values being placed in Fields that
are too large for the size of the Field. These
Field States are:
1. Query Blocks or Mixed Blocks with a first
Column Calculation returning more Values
than can be displayed in the Block's physical
height;
2. Text Edit State Fields with Boilerplate con-
taining imbedded Field References that result in
more Text than can be displayed in the height
allocated to the Field.
In Run Mode, if either of these situations are
encountered, the Fields display a vertical scroll bar
internal to its margin and allows the User to scroll
over the Field Content. When the Page is printed,
however, the Page is printed multiple times,
successively printing different portions of the
content of the overflow Fields on each copy until
the entire content has been printed. These additional
"copies" of the Page Instance printed to
accommodate the scrolled Field content are called
Continuation Page Instances. Fields on a Page that
is being printed with Continuation Pages can be set
to either:
1. Be printed on every Continuation Page Instance
2. Be printed on the original Page Instance only
3. Be printed on the last Continuation Page
Instance only.
Every Paper Stock may have a Continuation Paper
Stock defined for it.
CONTROL A structure imbedded within each Page to
STRUCTURE dynamically manage the Performance of each
Instance of the Page. The Control Structure:
1. Detects, prioritizes and directs all steps
necessary to place Entered and Calculated
Values correctly in the Fields on the Page
Instance during Page Performance
2. Detects and implements modifications to Page
Performance as a result of an associated Task
Manager
3. Detects and manages errors encountered in
accessing Data Values across network(s) during
Page Performance
4. Detects and manages referential failures such as
infinite loops encountered during Page
Performance
DATA SCHEMA 1. An arbitrarily normalized structure within an
Application designed to contain data in a
traditionally designed database
2. Information Manager's dynamic remodeling of
itself removes the need for this concept in the
system.
DATA TYPES 1. A restriction within a Data Schema limiting the
types of Data Values that will be
accommodated within the Fields defined in the
schema.
2. Information Manager's ability to dynamically
re-type data and/or manage type conflict
removes this restriction from the system.
ENABLE A Boolean expression defined as a Field
CALCULATION Property Applies only to Entered Fields
Evaluated as each Entered Field Gets Focus or
tab order for any reason
If True, the User is allowed access to the Field
on the active Page Instance
If False, the User is denied access to the Field
on the active Page Instance
ENTERED A Field Property indicating that, in Run Mode,
on Page Instances based upon the Page contain-
ing the Field, Data Values will be supplied by
the User or by an Import/Export Page
connection to an external data source. Entered
Fields may have a Default Calculation that
supplies a "suggested" Value when a Page
Instance is initially created. If the Field is
Enabled, the User may change the Default
Value ad lib. When a changed Field loses
Focus or Page Instance loses Focus or is closed
the Value is stored and subsequently dealt with
as if it had been Entered by the User. All Fields
containing Data Values are either Entered or
Calculated.
FIELD My space on a Page designed by a its Creator
for User Interaction or Data Value Display.
Fields may, as a function of changes made to
them by their Creator in Layout Mode, exist in
any one of 14 Field States.
FIELD STATE The State of a Field is the determinant of how
the Field will:
1. React to User initiated Events in Run Mode
2. Populate itself with Data Values during Page
Performance
3. Print its contents during Page Printing
Field State is transparently imputed by the
system as a result of Layout/Configuration
changes or morphs made to the Field by the
User, who is assumed NOT to understand the
subtleties of the differences among the Field
States
Field States are named after things they
resemble and which may be familiar to the
User. Field States include:
 1. Data Entry
 2. Text Edit
 3. Label
 4. Image
 5. Audio Player
 6. Video Player
 7. Spreadsheet
 8. Data Block
 9. Checkbox
10. Radio Button
11. Graph
12. Drawing
13. Bar Code
14. Musical Staff
FIXED CELLS Fixed Cells are those Cells in Complex Field
States that do not contain Data Values. There are
three kinds of Fixed Cells:
1. Column Labels in Spreadsheets and Blocks
2. Row Labels in Spreadsheets
3. The Upper left hand Cell in Spreadsheets
Fixed Cells are reversibly added or subtracted to/
from their Parent Fields inserted during Field
morphing without affecting existing Field
References to Data Value-containing Cells within
the Field
GLOBAL The Global MarketPlace ™ is a server(s) that
MARKET- makes published Pages, Page Instances and Page
PLACE ™ Collection Objects available for licensing by
other Users. License fees are collected by electronic
commerce transactions by the Global Market-
Place ™ server(s).
INFORMATIONAL 1. End-Users purpose for accessing or modifying
GOAL information
2. Includes decision making and Initiation of
Actions with measurable outcomes
3. The intended scope of applicability of the
system in contrast to the Task orientation of
traditional Applications.
INFORMATION Traditional computer applications and environment
MODEL focus on data within a data schema or structure and
then develop specific and often rigid applications
based on the data structure. The Information Model
is based on Information and its relationship to other
information from the end User's perspective. The
end User may dynamically aggregate information in
various ways in an indeterminate order as it relates
to other information. A single data item resides in
the system with pointers relating it to specific
information relationships on Page Instances.
IMAGES A type of Field Value consisting of a graphic image
or picture capable of being reproduced by the hard-
ware upon which the system is running. The
physical representation for storage of this image
may be of several formats.
INFORMATION Data within a context of meaning understandable
by a human and sufficient to extract meaning from
the Data Values. The Information Manager, because
it always stores and retrieves data within the Agency
of Pages, and therefore with in at least one informa-
tional context manages Information rather than Data.
INTERACTIVE Non-Fixed Cells in Complex Field States
CELLS Simple Fields having a single data containing cell
Data-containing Fields, whether Parent or Child.
LAYOUT MODE The Operating Mode of the system in which Page
Owners can create and edit the system Objects.
MODE Humans create formatted Pages and enter or access
data on them as two distinct classes of activity.
Similarly, the system operates in two Modes, Layout
Mode and Run Mode.
MORPHING The User's ability to migrate a Field from one
State to another solely as a result of changing its
appearance is referred to as Morphing the Field.
NAMED CELL 1. Cells in complex Fields are child Fields.
2. Any Field may have a name supplied by the
User.
3. Any Field, whether simple, parent or child,
may be referenced by its Field Name by a
calculation in another Field.
OBJECT In the system, this term is reserved for those things
which are common to the system program and to the
end User's methodology of working on paper. The
system Objects include:
1. Pages
2. Fields
3. Page Collection Objects (Folders, Binders,
Books, Page Transfer Objects or Containers)
PAGE 1. An encapsulable and uniquely identifiable
electronic Object in the system designed to
behave as closely as possible to physical pieces
of paper with respect to the management of
information it contains.
2. The Page is the primary Object through which
the User interacts with the system of the
present invention.
3. The Page is the functional element by which
the User:
Utilizes Paper Stock
Creates a standardized Page Layout
Demonstrates relationships among Fields
within the context of his Informational Goals
and Tasks.
Creates Fields to contain and display Data
Values.
Automates his Tasks by using the Pages he has
created in Run Mode.
Performs Input and Output functions.
Demonstrates the informational model by
which he performs his tasks.
Demonstrates the Informational Model implied
in the Pages he uses.
Enables the system to create and maintain a
Data Schema sufficient for electronic
representation of Field values.
Performs Data Entry.
Shares concepts, ideas and work product with
other people.
Publishes his work.
Ensures citation for proprietary Intellectual
Property.
Build Documents.
Gathers information from other people.
Refines his evolutionary understanding of his
own Information Management requirements.
Protects his work product.
Stores and archives his work product.
Recovers his work product.
References his own previous work product in
an unanticipated way.
References the work product of others in the
performance of his own Informational Tasks.
PAGE A group of Pages related to each other in some way
COLLECTION within the performance of some human informa-
OBJECT tional Goal. Pages may exist independently and
within Page Collection Objects at the same time.
Pages within Page Collection Objects may behave
differently within the Page Collection Object than
they do independently. There are four (4) important
Page Collection Objects:
Folders
Binders
Books
Page Transfer Containers
PAGE CREATOR The system User who originally creates a Page and
its Fields.
PAGE The environment of the system of the present inven-
HIERARCHY tion includes as its control element a Page
CONTROLLER Hierarchy Controller (PHC) which has a Page
(PHC) list. The Page list includes a list of Page Instances
whose performance is incomplete. The PHC also
monitors the Page list and attempts to complete
the process or remove the tasks and operations
from the list. The functions of this controller
are iterative.
PAGE INSTANCE A newly created Page is not only a Page structure or
layout but also the first Instance (or informational
version) of that Page. By adding one or more
Reference Fields to the Page structure in Layout
Mode, permitting one informational version of the
Page to be Distinguished from another informational
version of the same Page, the User may have/use
one or more Instances (or information versions) of
the Page by using the Reference Fields in Run
Mode. All Instances of a Page share the same
Page layout characteristics. However, each
Instance of the Page may be referenced
individually by referring to the Agency of the
Page Instance.
PAGE INSTANCE Page Instance Controller (PHC) is an environment
CONTROLLER process that includes a list of Page Instances
(PIC) currently performing themselves and maintains a
status of each Page Instance being performed.
The PHC iteratively processes the list by
attempting to complete the performance of each
Page Instance listed.
PAGE OWNER 1. Originally for each Page, its Creator.
2. Subsequently, any other individual registered
system User to whom the ownership rights
have been transferred.
PAGE OWNER- The functions reserved for the owner of each
SHIP RIGHTS Page. Ownership Rights include:
The right to add Intellectual Property Citation to a
Field on a Page.
The right to transfer ownership.
The right to determine what access another
User may have to a Page or its Instances in
terms of Layout, Function and Content.
The right to move a Page to another physical
(server) location.
The right to destroy a Page.
PAGE The ability, in Run Mode, for a Page Instance to
PERFORMANCE populate of fill itself out with proper Data Values
in each cell of each Field, whether entered or
calculated. The seven steps to Page Performance
are:
1. Assure Reference Field values are all present
2. If any, retrieve Operating System calculations
(example: current time from a system clock)
3. Retrieve Stored data Values for the Page
Instance
4. Perform calculations with on-Page references to
Fields with Operating System values only or
entered Fields, including Reference Fields
5. Perform on-Page references to calculated Fields
6. Perform calculations with off-Page references
7. Recursively perform on-Page references, as
further necessary if some Fields remain
uncalculated.
PAGE TRANSFER The Page Transfer Object (PTO) is a self-contained
OBJECT (PTO) version of the Page with additional attributes
sufficient to create a container to transfer
information with a level of security and
additional capabilities. The PTO embodies the
following elements:
 1. Page properties
 2. Field properties
 3. Information Manager Pointers
 4. Paper Stock
 5. Values
 6. Calculations
 7. Images
 8. Audio
 9. Video
10. Security
11. Page Collection Object
12. Reference Set Values
13. Agents
PAPER STOCK An electronic counterpart of the particular piece
of paper on which a human would lay out Fields as
a template for multiple uses. Paper Stock specifi-
cation is common to all it's Page Instances.
Every Page is based upon Paper Stock. Paper Stock
supplies:
Fixed size
Background pattern
Paper color
Graphics
Watermarks
Copyright/License notices
Identification elements
Alignment marks
PRIMARY The Block Field state uses the left most column as
COLUMN the basis for lookup and initial sort. It is referred
to as the Primary Column.
PRODUCTIVE 1. Informational Manipulation resulting in
WORK measurable progress toward reaching an
Information Goal.
2. Frequently involves data access, analysis, infor-
mational modeling, decision making and initia-
tion of actions not originally anticipated.
3. The system's Universal Computing Environ-
ment is intended to support any Productive
work a User must perform to reach his
intended Information Goal.
PROPERTIES BOX A User interactive area in the system environment
where the Page owner may, in Layout Mode, see a
display of the current properties of the currently
selected Object. Some Field properties are viewable
only in certain Field states. Some Field properties
are modifiable by direct entry through the Properties
Box. Some Page properties are modifiable directly
through the Properties Box entry of allowed
properties may activate secondary dialog boxes
that will allow property modification in the same
way it would be done if it has been initiated
directly on the selected Object.
REFERENCE Page Reference Fields are normal Fields, which
FIELD have been designated as holding the values used to
distinguish on Page Instance from another. The
combined set of Reference Field values on any
given Page Instance is sufficient to distinguish it
from any other Page Instance. Reference Field
values are alphanumeric (no audio or image
content).
RIGHT MOUSE 1. Clicking the right mouse button on a system
CONTEXT Object results in the appearance of a menu at
the point of the cursor when the click occurred.
2. The menu presents a series of possible inter-
actions between the User and the Object
clicked on.
3. The content of the menu is context-sensitive
with respect to:
Mode (Layout or Run)
User vs. Page owner distinctions
The state of a select Field Object
Page access limitations on the Page
Access limitations on the User or on a group or
class to which the User belongs.
RUN MODE The system Operating Mode in which Users
can enter and edit Data Values and Informa-
tional relationships through Page Instances.
SCREEN 1. The monitor on which a Page is displayed.
2. The Screen is assumed to be correctly cali-
brated so that the system Page is displayed in
its actual physical dimensions except when
projected.
SHADOWING If a User wishes to translocate himself and Shadow
or Share Run Mode Page access to his system, he
has an obligation to provide access to his Pages
through network connectivity. The system provides
a remote login mechanism. The system supports the
recognition of an end User at another User's
computer. Upon login, the system acquires and uses
the logged-in User's environment. His environ-
ment can "shadow" his movement to any
other location (example: the building, campus,
company, country, globe) sharing a network
communication session such as LAN, WAN, VPN,
or Internet. This is done through a series of
redirected pointers using the system router.
SPECIAL PAGE 1. A system Page providing special back end
functionality transparent to the User.
2. A Special Page may contain only normal
Fields.
3. A Special Page may contain only a subset of
normal Fields states.
4. Some Field states may act differently on a
Special Page during its performance.
5. User interaction on a Special Page in Run
Mode must be identical to a normal Page.
TASK To a human, an Informational Task is the context-
specific creation of a (range of) Data Values
necessary to perform Productive Work. In the
system, this concept is represented by:
1. A Special Page interaction defined by a Page
owner for a Page within a binder as a Task in
the Task Manager, and
2. The calculation of a Field Value on a system
Page Instance.
TASK MANAGER A Special Page
1. Exists only in Binders and Books
2. Required in Binders and Books
3. Provides a level of control for User and system
interaction with Pages in the Page collection
Object higher than that already represented
within the Pages themselves.
4. Controls interactions between, but not limited
to, Pages and:
Other Pages
Users
Peripheral devices
Other systems
User-defined conditions derived from any Field
data Value or system property.
UNIVERSAL A computing environment in which a User can
COMPUTING perform all Productive Work necessary to achieve
ENVIRONMENT any Informational Goal through a single set of
interface steps without the limitations of
individual Applications, regardless of the domain
containing the goals.
USER 1. A person holding a valid license to use the
system of the present invention.
2. The only person required to automate any
informational Tasks he can illustrate on pieces
of paper.
VALIDATE 1. A self-referential Boolean expression defined
CALCULATION as a Field property.
2. Applies only to Entered Fields.
3. Evaluated as each Entered Field loses focus for
any reason.
4. If true, the system is allowed to move to the
next Field (in the Tab order, as selected by the
User, or as directed by the Task Manager).
5. If false, the focus remains in the Field.
VALUE 1. The content of a data-containing Field on a
specific Page Instance.
2. Data Values are placed in Fields, whether
Entered or calculated, during Page performance
in Run Mode.
VALUE 1. A Field property, which is Blank for Fields
CALCULATION intended to contain Entered data Value(s).
2. For each calculated Field, the Value calcula-
tion is an "algebraic" expression, the
evaluation of which, within the Agency of each
Page Instance, will derive the Value to be
displayed in the Field containing the
expression.
3. For all calculated Fields (those with Value
Calculations), data Values are derived for
each Page Instance in Run Mode by the evalua-
tion of the Value calculation expression.
4. Calculated Field's calculated Values are not
stored in the Information Manager.
"WHERE" WHERE is a mathematical selection/query
COMMAND function of the system that gathers Page Instance
information from other Page Instances whenever
specific information on the referenced Page
Instance with similar Agency meets the criteria
WHERE "some true condition exists". (example:
WHERE State is "OHIO")


BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention are described with reference to the following drawings, wherein:

FIG. 1 is a diagram illustrating a preferred embodiment of the system for providing a computing environment in accordance with the present invention;

FIG. 2 is a diagram illustrating the architecture of a preferred embodiment of the system for providing a computing environment in accordance with the present invention;

FIG. 3 is a schematic diagram illustrating a preferred embodiment of a distribution network in accordance with the present invention;

FIG. 4 is a diagram illustrating the interactions between a User and the system in the two modes of operation in accordance with a preferred embodiment of the present invention;

FIG. 5 is a diagram illustrating the Page interface and related Page elements in accordance with a preferred embodiment of the present invention;

FIGS. 6A, 6B and 6D are illustrations of a computer screen display of an exemplary use of the computing environment in accordance with a preferred embodiment of the present invention;

FIG. 6C is a flowchart illustrating the method of creating and executing a Page Instance in accordance with a preferred embodiment of the present invention;

FIGS. 7A-7H are illustrations of a computer screen display of the computing environment, illustrating the building of a document from the empty computing interface, in accordance with a preferred embodiment of the present invention;

FIGS. 8A-8L are flowcharts illustrating the method for transferring a Page in accordance with a preferred embodiment of the present invention;

FIGS. 9A and 9B are diagrams illustrating the Control Structure in accordance with a preferred embodiment of the present invention;

FIG. 10 is a flowchart illustrating the control method in accordance with a preferred embodiment of the present invention;

FIGS. 11A-11B are flowcharts illustrating the performance of a Task in accordance with a preferred embodiment of the present invention;

FIG. 12 is a tabulation created in the Control Structure of the system in accordance with a preferred embodiment of the present invention;

FIGS. 13A-13D are flowcharts illustrating the method used by the Control Structure calculation monitor in accordance with a preferred embodiment of the present invention;

FIG. 14 is a flowchart illustrating a method used by the Page hierarchical controller in an execute mode in accordance with a preferred embodiment of the present invention;

FIG. 15 is a flowchart of a method used by the Page hierarchical controller in the create Mode in accordance with a preferred embodiment of the present invention; and

FIGS. 16A-16F are illustrations of a computer screen display of the Page Instance Control Structure in accordance with a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The present invention is directed to a system and method for providing a computing environment to perform informational Tasks with a level of ease akin to working on pieces of paper.

Regardless of the discipline in which they are working, people achieve their information management goals through the use of only twenty-two classes of Informational Tasks. These Tasks include the ability of draw, paste images, create datum containing fields, create lists for values, create tables for values, create hierarchies for values, create networks for values, write music, write data values into fields, erase and edit existing data values in fields, encode and/or decode data values, translate values among natural languages, perform calculations and/or derive values, create charts and/or graphs, distinguish among Page Instances, combine with other page and/or Page Instances into documents, secure documents, destroy documents, store documents, distribute documents, publish documents, and reference values on other Pages or Page Instances. In a non-computerized environment, people perform these tasks on pieces of paper, leveraging a narrow set of fundamental skills to achieve a wide range of specific results.

In a particular embodiment, the system of the present invention provides a single software package that performs and integrates the same Informational Tasks that people perform on paper on electronic "Pages". Because the Page is a generalized representation of the automation of all twenty-two classes of informational Tasks, the system of the present invention has no limiting concept of "Application".

The Pages are capable of referencing each other without respect for the sequence in which or the purpose for which they were created. This allows a preferred embodiment of the system of the present invention to be a "Universal Computing Environment" in which people can perform any informational work they require, in any sequence, and be assured that their new work product is automatically integrated with their already existing Pages.

The Pages also provide reliable methods for both the protection and the distribution of their work product, as required. They may be distributed across networks, including but not limited to the Internet, and maintain their ability to reference each other across the network whenever necessary. Besides the Internet, the network may also be a Local Area Network (LAN) that connects computing devices over a small geographical area, or a Wide Area Network (WAN) that connects computing devices over a large geographical area, or a Virtual Private Network (VPN).

Pages have an ability to "fill themselves out" which is referred to as "Performance" of a Page. Page Performance retrieves stored Values, calculates Values, and manages references to other Pages under the direction of a "Control Structure" that manages referential, communication and data access issues without User involvement or awareness.

The system in accordance with a preferred embodiment of the present invention transparently creates, optimizes and maintains its own data and informational structures to represent the relationships among Pages as they are used. The Information Manager of the system of the present invention frees the User from any need to ever be aware of or to directly interact with the Informational Model or data structure. All entry and retrieval of data Values is carried out through Pages.

Thus, the Universal Computing Environment and system of the present invention allows a technically unsophisticated person to create, use and expand his own personal computing functions. It is intended to provide automation of any Information Management function a person might require, in any sequence, regardless of the nature of the content, in such a way that the resulting work product is integrated with all other work product as needed.

I. Computing Environment

FIG. 1 is a diagram illustrating a system 10, arranged in accordance with a preferred embodiment of the present invention. The system 10 provides a computing environment that is based on informational tasks rather than Applications. The system enables a User to perform all informational tasks with a single interface which in a preferred embodiment is based on Pages as the informational units. The User is provided with an unbounded Object oriented system that the to User controls. The computing environment provides for an automatic, full integration of all of the User's work product including, but not limited to, existing, future, acquired and developed Pages. The lay out and the use of the computing environment system is integrated into a single environment for a non-technical User. However, the system may be used by Users having varied levels of technical skill. The system infrastructure reflects a User's informational view.

The system is bi-modal in operation, as illustrated in FIG. 4, and includes a Layout Mode 132 and Run Mode 148. The system interfaces with the Information Manager 142 in both the Layout and Run Modes. In a preferred embodiment, the Layout Mode allows the Page Owner and certain other Users to create and/or edit Page Layout 134, create Fields and modify Field appearance 136 which imply various Field states, and define Field Calculations 138.

In contrast, the Run Mode allows eligible Users to create Page Instances 144 through the entry of Values 150 into designated Reference Fields, enter Values into Fields 152 and initiate Page Instance Performance 152. During Page Instance Performance, stored Values are retrieved 156 from the Information Manager and Values are calculated 158.

Each User's system 10 includes a Page engine 12, which manages all interactions of the User's Page with the rest of the system including the User's environment, other Users' environments and other system servers hosting the Information Manager Structures. The Page Engine 12 interacts with it's associated End User's interface 18; the Information Manager 34 structures, both local and remote; other Page Engines 30,32; other User Interfaces 28; its User's Paper Stock Editor 16; and its Users. It should be noted that the relationships between Page Engines is dynamic wherein, if a Page Engine server provides Information to another server, the first server exists in a "server" relationship while the second server functions as a "client."

The Information Manager 34 is a multi-dimensional manager, which is Open Database Connectivity (ODBC) compliant. It creates a repository of data unabstracted from its informational context. It also dynamically modifies, optimizes, and maintains a model of informational relationships within which a User interacts with the system interface or Pages. The Information Manager resolves Data Types and data representation inconsistencies.

The Page Engine 12 may be in communication with a Page Engine server 30 which includes, but is not limited to, a router, a database, and a transfer engine. In a preferred embodiment, the transfer engine may use a Post Office Protocol (POP) and/or a Simple Mail Transfer Protocol (SMTP) to exchange Pages and Page Instances. The Page Engine 12 is a global sharing, migration, location, retrieval, process and calculation engine. The Page Engine is the intermediary between the User interface and all other system components. The Page Engine manages references among Page Instances during Page Instance Performance.

FIG. 2 is a diagram illustrating the architecture of a preferred embodiment of the system for providing a computing environment in accordance with the present invention. It should be noted that there is a common system architecture for both clients and servers. The difference between the client and server systems is one of scale. The network architecture of a preferred embodiment of the present invention allows for an End User system to be accessed and thus may transform the end User client to a server model as it is accessed and provides services. The inter-relations between end User systems define the client and server model. The Users of the system are end Users through either the User Interface 52 or through certain enabled third party vendors or Applications 54. The Page Engine 62 interacts with the Paper Stock File 56, the System Application Program Interface (SAPI) 58 and the Information Managers API (IMAPI) 60 and the Information Manager 66. A security and authentication module 64 provides for secure access, including but not limited to encryption technology, to Pages, Page Instances and the Information Manager 66. A text encoding module 70 provides for natural language parsing. The Information Manager 66 interacts with an ODBC compliant Database Management system 68. The network interface 74 and related routers 76 provide for interactions with other system servers 78.

FIG. 3 is a schematic diagram illustrating a preferred embodiment of a distribution network used for routing Information in the system in accordance with the present invention. The servers S1 through S782, 84, 86, 88, 90, 112, 114 are the system servers. In a preferred embodiment, S182 is a Global server with multiple system servers S284 linked. U1 through U8 are End User systems connected to the network, which may be a LAN, WAN, VPN or the Internet. P1 through P4, P6 and P7 are Pages under the control of a Local Page Engine. P5 is under the control of a server Page Engine. Each server 82, 84, 86, 88, 90, 112, 114 has a Page router in association with it. Each router maps each Page Identification (ID) to an Internet Protocol (IP) address. When a Page Engine needs a Page or a Page Instance it looks for it in its Local Information Manager structure. If not found, the Page Engine consults its local Page Router to see if the Page is lower in the network hierarchy. If still not found, the Page Engine consults the Page Router associated with the next higher server in the network hierarchy. If not found, the Page Engine continues to iteratively consult the Page Router associated with the next higher server in the network hierarchy up to S182, if necessary. Relocation of a Page across any size network causes it to register with the new router to which it is connected. This registration is passed up the hierarchy as far as the Global Server S182 which results in the Page and existing references to the Page to find it in it's new location using the processes described herein below.

II. Universal Computing Environment Interface

As illustrated with respect to FIG. 1, the Page 22 through it's Field interface are the primary Objects through which the User interacts with the system 10 of the present invention. The Page interface provides a single construct whereby all end User informational tasks are represented. Further, the Page interface provides a single construct whereby all system functions are achieved. System functions include, but are not limited to, Page creation and layout, Field placements, recognition of Implied Field States, delivery of Field States' functionality, Field Value calculation, inter-Field references, run-time Data Entry, run-time input/out, and reporting. The system functions further include grouping of Pages as Binders and Books, and grouping of Pages as Work Group Folders. The Page interface further is the unit of Information sharing, unit. of publication, unit of Information distribution, unit of Intellectual Property protection, and unit of licensing. Interactions among Pages in the Page interface also provide the skeleton of the Information Model to serve as the basis of the Information Manager.

The interface 18 of system 10 is the display interface viewed by the User. Its purpose is to create an interface sufficient for a technologically unsophisticated end User to perform all classes of informational tasks on electronic Pages so that the Pages, in Run Mode, automate the access, sharing, control and information management associated with the use of the Pages. The predicate for the interface design is that the User only needs knowledge of how to accomplish their Informational Goals on pieces of paper and the knowledge of the preferred embodiments of the present invention system interactions needed to create and manage Pages, Fields and Page Collection Objects.

The interface 18 provides Users with the ability to perform information management tasks as they see them without regard to the view of Computer Science of those Tasks. The interface has the ability to allow the performance of the general informational tasks that humans can perform on pieces of paper.

There is no concept of distinct Applications. The system interface 18 of the present invention meets User needs through the automation of twenty-two (22) informational tasks in combination with Special Page Types. In a preferred embodiment, the functionality of the system 10 of the present invention is limited to those things that can be represented by the defined Field States on Normal Pages and/or functionality provided through Special Pages populated only by Fields in the same States. Fields on Pages as distinguished from Page Instances generally contain no Data Values. The only exceptions are Text or Images in Label Fields and Text in Row Label Columns and Column Label Rows in the Spreadsheet State Fields, Text in Column Label Rows in Block States, and Boilerplate Text or Images in the Text Edit State Fields. In the Run Mode, Field Values are either Entered, with or without default Values, in which case the Values are stored, or calculated, in which case the Values are never stored in Page Instances.

The Calculation in any Field on any Page Instance may reference any other Field on any other Page Instance. Field Calculations may reference Values in other Fields by a mere reference to the referenced Field Name only. The informational context in which the calculation is performed in Run Mode on each Page Instance is provided by the Agency of the Page Instance. Calculations behave the same way whether or not the referenced Page is displayed to the User when the Page Instance is performed, assuming connectivity.

The significant and generalized functions of the Page are described with respect to the Layout and Run Modes. As described herein before, in the Layout Mode, the functions include the acceptance of User layout parameters, and the provision of the basis for the Information Manager underlying transparent function. In the Run Mode, the functions include the acceptance of User or System Data Entry, and the recovery of stored Values and display of them in their respective Fields on Page Instances to perform Field Calculations on Page Instances. Populating a Page Instance with its correct Values, whether Entered or calculated, defines "Page Instance Performance". In addition, in Run Mode, the functions include the provision of the basis for inter-Field calculational references.

In a preferred embodiment, a Page, once created, can be changed only by its owner or by other Users to whom the Page owner has granted permission. Every Page Instance replicates the Layout Characteristics of the Page upon which it is defined. The Layout of Page Instances cannot be individually changed. A Page can contain no data Values until it is, in Run Mode, transformed to a Page Instance by the determination of its Agency through the provision of a set of Values to its Reference Fields, if any. Pages without Reference Fields contain data Values global to the scope of their environment.

In accordance with a preferred embodiment, a Page, once created, can be used for three purposes. Firstly, the Page allows the entry, editing and display of data Values in Fields by the User or by the interaction of Special Pages with an outside data repository (Entered data) on a Page Instance by Page Instance basis. Secondly, the Page performs Field Value Calculations specific to each Page Instance and displays the results in the respective Field on the Page Instance when a Value is determined. Thirdly, the Page serves as the normalization model for the data Values it contains through the use of its Reference Fields. The User's view of his Informational Goals, Page Instance behavior, Information Manager's Data Schema and informational model are based upon the current Page Layout as determined by the Page Owner with no intermediate or arbitrary physical redefinition by a human.

Further, in a preferred embodiment, the User is allowed to modify only the appearance of Pages and Fields. The User is assumed to be unaware of the functional import of the changes he is making. Pages are capable of appropriate interactions by virtue of the existence of calculational references among them. An optional layer of explicit control Information supplied by a User specifying how already-functioning Pages are to conditionally interact with Users, each other and external Reference Fields within Page Collection Objects such as Binders and Books. These explicit control functions are defined in and managed by a Special Page Type such as the Task Manager. In accordance with a preferred embodiment, for reasons such as the control of intrusive programs, for example, computer viruses, Pages are passive elements that cannot pro-actively act upon other Pages. Inter-Page interaction is limited to calculational references across the Pages. These references are always interpreted within the Agency relationships defined by the Page Instances on which they exist. To be consistent in the preferred embodiment implementing the passive control model, no cross Page-active control model is imputed. The only functional Task of a Page Instance is to perform itself. There are three occasions in Page interactions at which Page Instance Performance can be performed for all Page Instances, assuring that incorrect Values are not shared with a User. These occasions are a Page getting focus, a Page being referenced by an off-Page Calculation, and a Page being referenced by a Task Manager (in either a Condition or an Operation). The environment of the system of the present invention includes as its control element a Page Hierarchy Controller (PHC) which has a Page list. The Page list includes a list of Page Instances whose performance is incomplete. Further, there is a control structure for each Page Instance. The PHC monitors the Page list and attempts to complete the process or remove the Tasks and operations from the list. The functions of the controller are iterative.

As described hereinafter, each Page Instance has a Control Structure capable of managing its Performance, detecting failures in Field reference completion, and reporting failures back to the PHC and the User as appropriate. In a preferred embodiment, when a Calculation fails, the Field is left Blank and the Page Instance remains in the PHC.

A single set of Field Properties are sufficient to differentiate, control, and implement all Fields regardless of their Field State. All functional elements are represented as Calculations with intersects of the same syntax: Value Calculations, Enable Calculations, Validation Calculations, Default Values, Where Clauses on Fields in Query and Mixed Block State Fields, Task Manager Conditions, and Task Manager Dependencies are all expressed in the same way. The Control Structure parses and coordinates all of the above features across Page Instances in Run Mode.

The Control Structure is capable of Performing a Page Instance whether or not it is solitary or in a Page Collection Object, whether or not it is associated with a Task Manager, regardless of its physical location, and regardless of when it was relocated there. The Page Transfer Object is a subset of the Information Manager structure capable of encapsulating Page(s) in transit and managing its integration into a target Information Manager structure with reconciliation of Agency, Values and, in conjunction with the Page Router, and incoming references to the transferred Page.

All data entry and performance functions are performed directly on the Page Instances themselves. Page layout functions are done in a representation that captures and preserves the size of the Page and preserves the User's understanding of what he has created and its appearance on the monitor and printer. Calculational references are done graphically, at both the Field and cell levels. Pages are presented in a graphically searchable way such as by miniature Pages, noting that the only navigational tool is the Pages themselves.

Common Page Interface

The Common Page Interface (CPI) is the only point of interaction between the User and system of the present invention. The CPI emulates physical pieces of paper in every possible way. Salient features of CPI include, but are not limited to, size; background (color, texture, image, watermark); Fields in any state; and Reference Fields. Pages are highly automated and "perform" themselves, for example, updating calculated and Referenced Fields when needed.

Performance

As described hereinbefore, Page Performance is defined as the ability, in Run Mode, for a Page Instance to populate or fill itself out with proper Data Values in each cell of each Field, whether Entered or calculated. In accordance to a preferred embodiment, there are seven steps in Performing a Page Instance: assuring that Reference Field Values are all present, if any; retrieving Operation System Calculations, for example, calculating current time from a system clock; retrieving Stored Data Values for the Page Instance; performing Calculations with on-Page references to Fields with Operation System Values only or Entered Fields, including Reference Fields; Performing on-Page references to calculated Fields; performing Calculations with off-Page references; and recursively Performing on-Page references as further data entry occurs if some Fields remain uncalculated.

Page Instance Performance occurs when the Page Instance is referenced by a Calculation and/or a Task Manager Task if there were data Value changes since it was last performed or there are off-Page references. Further, Page Performance occurs when a Page becomes active, such as when it is first opened or receives focus from the window manager, if there were data changes since it was last performed or there are off-Page references and when printed.

There is a visual indication that a Page Instance is not known to be displaying recalculated Values. This occurs whenever it loses focus. The Page Instance is assumed to not contain correct Data Values until it is recalculated, and it is assumed that it will be recalculated when one of the Page Performance Events occurs. At that point, it is determined if it actually needs to be recalculated.

In the Run Mode, no Field contains anything on the Screen that does not print. Any Fields that cannot be calculated are left Blank. The Field responds to a right mouse button click from its owner and selected Users with an explanation for its blank condition. There is a visual indication that a Page update is in progress. Pages on a single system monitor each other for changes as a result of certain relationships among their Tasks and/or Calculations.

Physical Size

The User is able to select from a list of available Paper Stocks in the Stockpile when creating a new Page. The Page has a fixed physical size based on the size of its associated Paper Stock. In a particular embodiment, the size of the Page may be directly altered by the User in the Layout Mode.

Context Sensitive Object Interface

The interface is context sensitive. In a particular embodiment, only tool buttons for available functions are shown and if shown are operational. There are keyboard accelerators and a popup menu for most Objects providing currently available operations for those Objects.

User Identification

In a preferred embodiment, the system of the present invention identifies Users to each other only by their User names. A Username is any unique identifying string of up to thirty-two alphanumeric characters selected by the User. In an embodiment, the User's real name may be used. In a particular embodiment, the system of the present invention may allow characters beyond alphanumeric characters for example, but not limited to, a period, underscore, and hyphen.

Shadowing

The environment of a preferred embodiment of the system 10 of the present invention, enables people to do productive Information-based work in whatever way and with whatever degree of isolation they choose and to be able to translocate, share, publish and remotely access their Pages whenever they please, as a direct result of having created the Pages, at any point in time. Pages are distributable and readable. If a User wishes to Shadow or Share Run Mode Page access, he has an obligation to provide access to his Pages through network connectivity. The system provides a remote login mechanism. The system supports the recognition of an end User at another end User's computer. Upon login, the system acquires and uses the logged-in User's environment.

Monitor Calibration and Zoom

Displaying a Page at actual size requires a calibrated monitor, and a preferred embodiment of the system of the present invention provides an interface through which a technologically unsophisticated User is assisted in performing this calibration. The system provides a mechanism to calibrate the display scale of the monitor. The system supplies a User-selectable and persistent zoom factor for the workspace. The zoom factor is implemented as is done in typical word processing Applications. The visual proportionality cues among Pages is preserved. On a calibrated monitor, the "100%" size of each Page is the fixed size of the Page. Pages always print at their true size.

Layout & Run Modes

According to a preferred embodiment, and as discussed with respect to FIG. 4, the system of the present invention is both an editor and a runtime environment. The User has to explicitly select the Mode of operation. As discussed herein before the interface of the present invention has two modes of operation: Layout Mode and Run Mode. The system provides a mechanism that allows the User to toggle between modes. In the Layout Mode, the system allows the User to create, modify, or delete Paper Stock, Pages, Folders, Binders, and Books.

In the Run Mode, the system makes Pages and Page Instances available for data entry and performance. The system provides a mechanism to disable access to the Layout Mode.

Preferences Screen

In a preferred embodiment, the User may customize the behavior of the interface of the present invention. The system provides a mechanism to set User preferences.

Document Organizing Panel

Pages are conveniently organized and accessible to the User. The User is able to find and select Pages and Page Collection Objects. A preferred embodiment of the system of the present invention provides a mechanism to locate Reference Fields and their Values as they may be utilized among multiple Pages. The system 10 provides a mechanism to select external files. Images, Audio and Video are stored in the Information Manager. The system 10 further provides a mechanism to select Paper Stock. There are tabbed panels for: Pages, Folders, Binders, Books, and active Pages.

Tool Crib Panel

In accordance with a particular embodiment, the priority for access to functions is described in the following TABLE 1.
TABLE 1
Layout Mode Run Mode
Page Itself Page Collection Object Interface
Field Itself Task Manager Interface
Context Sensitive Menu Page Itself
Toolbars for Selected/Limited Field Itself
Functions
Properties Dialog Box for Toolbars may be within Page
Selected/Limited Functions Collection Objects but not Individual
Pages
No Properties Dialog


The system provides iconic representations of the operations available in both layout and Run Modes. There are keyboard shortcuts for all available operations. Further, there is a popup menu containing entries for each available operation.

Object Property Panel

The Pages and Fields are Objects. In a preferred embodiment, the primary manipulation of an Object's property is by the direct User interaction with the Object. As an alternative, a dialog box allows the User to manipulate the Object's properties. The Objects in Layout Mode include, but are not limited to, Page Collection Objects, Page Transfer Objects, Folder, Binders, Books, Pages and Fields. There is a dialog for viewing and setting Object properties. The dialog is invoked from a popup menu or by double clicking on the Object. The contents of the dialog depends on the state of the Object. The system supports setting properties for multiple Objects simultaneously.

Page Locator

In a preferred embodiment, the Page locator allows the User to search for and view specific Page Instances to be referenced in Calculations.

Universal Alignment Tool (UAT)

In a preferred embodiment, a Universal Alignment Tool assists the User in placing Fields on a Page relative to the edges of the Page and to each other. Objects to align are selected either, but not limited to, with a series of shift-clicks, or by enclosing the Objects in a rubber band box. The system provides a mechanism to align or distribute Objects. The specific operations include:

Align left, using the top-most Field as the reference

Align center, using the top-most Field as the reference

Align right, using the top-most Field as the reference

Align top, using the left-most Field as the reference

Align middle, using the left-most Field as the reference

Align bottom, using the left-most Field as the reference

Distribute evenly vertically between the top and bottom Object

Distribute evenly horizontally between the left and right Object

Nudge left one pixel

Nudge right one pixel

Nudge up one pixel

Nudge down one pixel

Move to nearest blueline up (top of Field)

Move to nearest blueline down (bottom of Field)

Move to nearest blueline left (left side of Field)

Move to nearest blueline right (right side of Field)

Move center of group to center of Page horizontally

Move center of group to center of Page vertically

In a preferred embodiment, the system 10 further provides an alignment grid, allows the User to display or hide the grid lines, allows the User to specify the grid line color, and allows the User to specify the grid line style. In addition, in a preferred embodiment, the system allows the User to specify the grid line thickness. The system 10 provides the following snap-to-grid options:

Do not snap to grid

Snap top left comer of Object to grid (default)

Snap top right comer to grid

Snap bottom left comer to grid

Snap bottom right comer to grid

Snap top to grid

Snap bottom to grid

Snap left to grid

Snap bottom to grid

Snap center to grid

In a preferred embodiment, the system 10 allows the User to specify the horizontal and vertical grid spacing. In a particular embodiment, the default grid spacing is 0.1 inches (3 mm). The system allows the User to set the XY origin of the grid. The default XY origin of the grid is 0,0. The system allows the User to specify grid spacing and origin in either, but not limited to, inches or millimeters. The default grid spacing and origin units are the same as the Page Size Units. The system 10 provides bluelines which demarcate printable space or areas. The system of the present invention extends the bluelines. Further, the system provides the following snap-to-blueline options: do not snap to blueline and snap nearest edge to blueline. The system provides an effective distance for a blueline and grid snap ("gravity") and allows the User to specify effect distance. In a particular embodiment, the default effect distance is 0.1 inches.

Calculation Editor

The Calculation Editor applied to the entire list of Calculations. The languages of Calculations includes arithmetic, algebra, text manipulations and are augmented to manage references to the Field names of the system. In a preferred embodiment, the scripting language of the Calculations is a macro-language such as, but not limited to, Microsoft® Visual Basic for Applications (VBA). The Calculations may vary in the level of complexity ranging from simple Field reference manipulations to more complex loop constructs such as if, then statements. Thus, as long as a calculation is expressed as a function, it is executed by the system of the present invention. In a preferred embodiment, a preparser parses the Field names and Calculations and a VBA interpreter is used for the syntax of the calculation. Thus, according to a preferred embodiment, the system of the present invention allows a User to call any executable function and integrate Values from disparate Applications. In addition, any level of complexity of a calculation can be incorporated within a Field. Thus, varied skill sets of an end User are accommodated during the use of the preferred embodiments of the system of the present invention. This provides the basis of collegial computing.

Value Calculations are the mechanisms used to automatically compute Values for Fields. Calculations are created and modified using the Calculation Editor. The calculation editor supports logical analysis by functional term and assistance. Thus, there is a Calculation edit methodology that provides the User with the means to define calculational syntax by any combination of keyboard entry and/or click/drag/drop references. The Calculation Editor dialog box has three transformable formats: firstly, an Entry Box in the fourth (Bottom) level of the Toolbar; secondly, a small Dialog Box including editing space and Combination Boxes for the selection functions described below; and thirdly, a fill Screen, multi-line editor for complex calculation expressions.

The Calculation Editor also provides the ability to choose and insert operators into calculation expressions at the current cursor position from a drop-down list. The acceptance of the indicated operators is non-intelligent, i.e. all selections are accepted into the existing expression at the current insertion point. Further, the Calculation Editor provides the ability to choose and insert Function Templates into Calculation expressions at the current cursor position from a drop-down list. The acceptance of the Function displays a hollow template for the selected Function, for example, a lookup function "@LK(,,)" described herein after. In addition, the Calculation Editor provides the ability to choose and insert Field an/or Cell Range references into Calculation expressions at the current cursor position by drag/drop reference from the Fields themselves, either on a Normal Page or from the Miniature Page. The calculation-editing environment provides context-sensitive, intelligent interaction with the User and with Field references to provide real-time feedback, allowing only valid syntax and meaningful references to be entered each point in the expression.

The editor is aware of the absolute position of the insertion point within the calculation expression, the hierarchy of formatted Function expressions in which its current position rests, and the type of reference implied and/or required by the expression in which the insertion point is imbedded. For example, if the insertion point is not in an expression, a reference to a Simple Field (one data-containing Cell) inserts "{Field Name}" into the expression. It should be noted that within a Calculation {Field Name} means recover the Value for the named Field appropriate for the Agency of the Page which contains the Calculational Field. At the same point, a reference to a Field in the Spreadsheet State requires a Cell Range within the Field to be selected. A reference to a Block Column Field is rejected here, since a Block Column does not contain a single Value. Similarly, if the insertion point is within the first term of a @LK Function, reference to any Parent Field in the Block State is rejected since the first term of @LK requires a Column Field Reference instead of the Parent reference. The same reference is similarly disallowed in the second or third terms of a @LK function, both of which require single Value references from Simple Fields and from Field State Block Columns or Cell Ranges from Spreadsheet State Fields.

The Calculation Editor color-codes matching pairs of brackets, parentheses and braces, and alerts the User to pairing failures. The Calculation Editor highlights Function Expressions that, due to punctuation changes, are no longer in proper format relative to their Template.

The Calculation Editor also supports color-coded parenthesis matching, insertion of (Page Field) identifiers when a Field Object is dragged into a calculation, combination box selection of operators, reference loop detection, and an array of math functions and lookup. Calculations are entered in an entry Field on a toolbar. The User is the option of opening a larger dialog for calculation entry

Reference Set Listing

The system provides a mechanism to view the existing Agency throughout the Pages.

Processing System

An operating environment for the system 10 includes a processing system with at least one high speed processing unit and a memory system. In accordance with the practices of persons skilled in the art of computer programming, the present invention is described with reference to acts and symbolic representations of operations or instructions that are performed by the processing system, unless indicated otherwise. Such acts and operations or instructions are sometimes referred to as being "computer-executed", or "processing unit executed."

It will be appreciated that the acts and symbolically represented operations or instructions include the manipulation of electrical signals by the processing unit. An electrical system with data bits causes a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in the memory system to thereby reconfigure or otherwise alter the processing unit's operation, as well as other processing of signals. The memory locations where data buts are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits.

The data bits may also be maintained on a computer readable medium including magnetic disks, optical disks, organic disks, and any other volatile or non-volatile mass storage system readable by the processing unit. The computer readable medium includes cooperating or interconnected computer readable media, which exit exclusively on the processing system or is distributed among multiple interconnected processing systems that may be local or remote to the processing system.

FIG. 3 is a diagram illustrating the Page interface and related Page elements in accordance with an exemplary embodiment of the present invention. The Page, as described with respect to FIG. 1 is the common interface between the User and system 10. The Page performs multiple functions such as, for example, Page layout and editing. Once the Page is laid out, it functions as a print format. Another Page function includes providing a form for data entry, control of the Information Manager 34 functions, interface for all input and output to the system interface to external systems and data repositories, aggregation into Page collections (Folders, Binders and Books), browser, distributable web Page, Page Mail and electronic mail manager.

The Page is an encapsulatable, binary Object. The Page contains Fields or Spaces on a Page overlying a Paper Stock. A User interacts with the Page using the Fields. The Page, along with its Fields, automates all informational tasks that a User may have to perform. Pages can be transmitted securely as a single Object. Page maybe used multiple times, each time constituting an "Instance" of the Page. Each combination of data Values in designated Fields uniquely identifies the Page Instance.

Fields

Fields are placed on the Page 162 to perform all Information management tasks needed by the User. Conceptually, there is a single Field type that changes or morphs its functional state based on the Field's physical layout or an explicit selection by the User. When this is not possible, an explicit selection by appearance of a Field State by the User is allowed. The User causes the system to modify a Field's behavior without his having to understand or being able to select those behaviors.

In a particular embodiment, every Field on every Page Instance has a network address such as, for example, an Internet Protocol (IP) address by which every Field Object and it's Value are physically addressable. The IP address includes, but is not limited to, a physical address, which provides a pointer to the router on the system in which the Object exists, and includes a celestial body, network, server, and Page Object address. The IP address may further include Information pertaining to the Page, Field, Agency and Case.

The functional distinctions implied by appearance changes are described in TABLE 2.
TABLE 2
Functional
Original State Change Resultant State Implications
Data Entry Add Columns Spreadsheet Spreadsheet
(DE) Add Rows Spreadsheet
Add Row Labels DE
Add Column DE
Label
Automatic Rows Query Block Set to one
(QB) (virtual) Row
only
Enlarge Vertically Text Edit (TE)
to accept more
than one line of
Text in current
Font
Spreadsheet Delete all Rows > Spreadsheet if #
1 Columns > 1
DE if #
Columns = 1
Delete all Spreadsheet if #
Columns > 1 Rows > 1
DE if #
Rows = 1
Add/Delete Row Spreadsheet
Labels
Add/Delete Spreadsheet
Column Labels
QB Disable Auto- DE if #
matic Rows Columns = 1
Spreadsheet if
Columns > 1
TE Shrink to less Option to keep as
than one line of TE or change
current Font back to DE
Size text State
QB Designating QB to Mixed
Calculated Block (MB) or
Columns to be Data Entry Block
DE Columns (DEB) MB to
DEB
Designating DE DEB to MB or
Columns to be QB MB to QB
Calculated
Columns


The end User changes Field appearance by making the above changes directly to the Field or by selecting an icon with the prototypical appearance of the Field State. Selection of the Field State Name is not an option and knowledge of the Field State Name is not required.

The User interacts with a Page 162 through a Field. The User places Fields on the Page to perform all Information management tasks needed. There arc at least thirteen Field States such as labels which may contain Text, Images or Audio; data entry which may contain Text or Images; Audio; Video; Text Editing; Spreadsheet; Blocks; Check box; Radio button; Bar code; Drawing Object, Graphing Object, and Musical staff.

Fields may be added or modified by the User at any time and in any order. Fields may be logically interconnected through Field References in their Calculations. All data entered in Fields is automatically persistent. All Values calculated into Fields are not stored, but rather recalculated in the Page Performance process.

In the Layout Mode, changes are persistent when made in the following ways: directly on a Field, Page toolbar button click, Field toolbar button click, Right Mouse menu selection, and properties window line lost focus. In the Run Mode, any Entered data Field Value change followed by loss of focus results in persistent storage and Page Performance.

Data Value retrieval and Calculation Reference are based on a Page Instance identification as a function of the Values in the designated "Reference Fields." The Information perspective represented by the set of reference Fields shared among Pages provides the scope within which the Field Calculations work appropriately for each individual Page Instance.

Field Layout and Attributes

The User is able to place any number of Fields in any State on each Page. Fields are rectangular and fit completely on the Page. In the Layout Mode, the system displays blue lines representing the locations of the top, bottom, left, and right limits of the printable area of the Page based on the currently selected printer. In a particular embodiment, these blue lines are an option that the User may disable. The system prevents the User from placing Fields outside the blue lines, for example, in the non-printable portions of the Page. All Fields initially are in the Data Entry State. Fields have a name consisting of up to 256 Unicode characters and a Page Unique integer. The User has the option of setting the prefix used for default Field naming, for example, the default is "F". All data is represented as Unicode. All system-supplied text displayed in Titles, Toolbars, Tips, Help and other areas not comprised of Fields or Pages is isolated in external resource files to facilitate internationalization. Interactive Fields do not overlap other interactive Fields. Interactive Fields are at the top of any Fields they overlap. Fields in the Label or Drawing State are permitted to overlap any other Fields. Fields are ordered from back to front.

The Page may have three distinct functional layers: a back layer, a middle layer, and a front layer. The back layer is also the graphics layer, within which ordering is from back to front. It includes Paper Stock Images, if any; Field background image, if any; and image/graph data in Field, if any. The middle layer is also the overlapping layer in which all Objects overlap Objects in the back layer. The middle layer may hold Fields in the Drawing or Label States. The Fields in the Label State may overlap the Fields in the Drawings State. The front layer is also the interactive Field layer in which all Objects overlap Objects in the front layer. The Objects in the layer may not overlap each other and the front layer includes all other Field States. The system supplies a mechanism to establish ordering.

Fields dynamically determine their own State based on configuration and/or appearance changes made by the User. A Field in any State may "morph" to any other Field State. If the morph implies loss of data content, the User is informed and allowed to confirm the intended change. Fields provide access control consisting of a hierarchy of control mechanisms. The control mechanisms include access to the Field being limited by the access to the Page. Individual Fields may require different levels of access such as, change, calculation, and verify. The system supports Field level access restrictions in both Layout and Run mode. When a User is sharing a Page, he may only want to give other Users read and/or write permission to certain Fields. Unless a Field on an open Page is disabled by the Task Manager or its Enable Calculation, the User can go to it at any time by, selecting it. Other control mechanisms include: creation order defines down tabbing order for Fields in the interactive States only; User may redefine down tabbing order for Fields in interactive States only; among Interactive Fields, the up tabbing order is the inverse of the current down tabbing order; User may define an up tabbing order, among Interactive Fields only, distinct from the down tabbing order (Shift-Tab); "Go To" functions in Field Calculations override the tabbing orders in the Interactive Fields; and Task Manager Tasks, if any, override all other control methods with which they may conflict.

Default Fields are system-supplied data Values for Entered and thus, interactive Fields. When a Field with a default calculation becomes active, if there is no data Value stored for the Field, the calculation provides a "suggested" data Value (i.e., a displayed Value to be used if the User doesn't enter a Value) in the Field. If a stored data Value exists, it is displayed in the Field. If the Field is enabled, the User may change the displayed Value. When the Field loses focus, the data Value in the Field is stored as if it had been Entered whether or not it is the default Value.
TABLE 3
Field Data Source User Data Entry Stored Value Value Calculation
Entered Yes Yes No
Calculated No No Yes
Default Yes Yes Yes-Editable Value


Fields are added to a Page by one of two mechanisms such as by clicking on the Add button which results in Fields cascading onto the Page starting in the upper left comer; and clicking and dragging on the Add button which results in a Field image from another Page being dragged to any location on the Page. Releasing the drag point outside of the Page cancels the operation. If any part of the Field overlaps any part of the Page, the Field snaps onto the Page when the mouse button is released.

New Fields shrink from the default Field Size to fit the Page if necessary. Field attributes consist of the defaults itemized in TABLE 4.
TABLE 4
Field Attributes Defaults
Background color for Interactive {clear}
Cells
Background color for Fixed (Titles {Medium Gray}
and Labels) Cells
Background pattern {none}
X, Y origin {0, 0}
X, Y scale {1, 1}
Z rotation {0}
Option to tile, center, or scale-to-fit {tile}
Foreground color for interactive Cells {auto}
Foreground color for Fixed (Title {auto}
and Label) Cells
Font {inherit system default}
Font Size {inherit system default}
Bold Y/{N}
Italic Y/{N}
Underline Y/{N}
Strikethrough Y/{N}
Horizontal alignment (in Text Edit) {Left}/Center/Right/Justified
Vertical alignment Top/{Center}/Bottom
Margins {10% of width/height}
Hidden Y/{N}
Border {Y}/N
Border width {15% of height}
Border style {solid}
Border color {same as foreground}
Edit Mask {allow anything}
Field baseline path. Note that any {0 degrees}
Field can be rotated, not just strings.
Character rotation relative to the {0 degrees}
baseline (for Label State Fields only)
Row label (for spreadsheets) Y/{N}
Row label text (for spreadsheets) {none}
Column label (for spreadsheets/ Y/{N}
blocks)
Column label text (for spreadsheets/ {none}
blocks)
Tab order: default, down, up {order of creation}
Calculations:
Enabled (None - Default state is {Y}/N
enabled, Y)
Validation {none}
Value {none}
Calculation state: Entered, calculated {default Entered (i.e., calculated
but User may override)}
Grid Line Color
Grid Line Width
Grid Line Fixed Color
Grid Line Fixed Width
Grid Line Style
Grid Line Fixed Style
Text Style
Text Style Fixed
Word Wrap
Field Index
Field Name
Field Page Pointer
Parent Pointer - Points to Index of
Parent Field; 0 == Not a child
Agent Pointer - Points to index of
Reference Field represented by
qualified Fields (Single Cell Data
Entry only); 0 == Not an Agent
Field State
Field Data Type
Numeric Data Precision
Data Source
Control Type
Field Stat