Information manager method and system6990480Abstract 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: Description FIELD OF THE INVENTION
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.
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.
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.
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.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
