Temporal displacement icon in a graphical user interface

Abstract: This invention permits users to conveniently examine functions, applications, data, and other parameters for different periods of time. A region of the graphical user interface is provided to which other icons may be dragged so that the function represented by the dragged icon returns to a prior state or is extrapolated to a future state. By storing the previous m versions of a file, application, database, etc., where m is user selectable, the user can review prior versions of that file, application, or database without explicitly having to track those versions. The graphical nature of the present invention provides a significantly more intuitive way to manipulate the time.

Description: This invention relates to applications accessed or controlled by graphical user interfaces, GUIs. More specifically, the invention relates to a region of a GUI to which other icons may be dragged so that the application, database, displayed information or other function represented by the dragged icon returns to a prior state or is extrapolated to a future state. Graphical user interfaces (GUIs) provide ways for users of computers and other devices to effectively communicate with a computer. In GUIs, available applications and data sets are often represented by graphical images such as icons and windows which the user can directly manipulate and select, rather than have to manually type a command to initiate a program. Icons are on-screen symbols that simplify access to a program, command, or data file and are usually activated by moving a mouse-controlled cursor onto the icon and pressing a button or key. GUIs include graphical images on computer monitors. A computer window is a portion of the graphical image that appears on the monitor and is dedicated to some specific purpose. Windows allow the user to treat the graphical images on the computer monitor like a desktop where various files can remain open simultaneously. The user can control the size, shape, and position of the windows. Users of GUIs often would like to examine functions, applications, data, and other parameters for different periods of time. Currently this feature is not part of a standard GUI interface. However, by use of software that manages various file versions, for example the IBM High Performance Optical File System (HPOFS) with a novel GUI interface, access can now be gained to versions of functions, applications, databases, displayed information, files, etc. HPOFS stores versions of files, such as databases and application outputs, on write-once (WORM) optical media. A derivative of this file system could also be applied to Compact-Disk Recordable (CD-R) media, which is also write once. write-once media cannot be overwritten, which makes it ideal for retaining unalterable versions of files. Alternately, versions of files can be stored on any other form of media, such as hard disk, magnetic or optical tape, floppy disk, magneto-optical (MO), phase-change (PC), CD-Erasable (CD-E), digital video/versatile disks (DVD), etc. US patent 5,438,661, ogawa Tomoya, 1 August, 1995, discloses a method and an apparatus for version management which enables editing of a plurality of mutually distinct versions of data files in a multi-window environment. US 5,438,661 further provides for version management that can reduce the buffer area required for the editing process. In view of the foregoing, it is an object of the present invention to provide an improved system and method for retrieving prior versions of an application, database, or other function. A target GUI becomes a front-end for version storing software, such as HPOFS. It is another object of this invention to provide an improved system and method for extrapolating versions of databases or other functions into the future. These and other aspects are achieved in this invention by permitting users to conveniently examine functions, applications, data, and other parameters for different, non-current periods of time. A region of the graphical user interface is dedicated to which other icons may be dragged so that the application, database, or other function represented by the dragged icon returns to a prior state or is extrapolated to a future state. Accordingly the present invention provides a method for accessing data recorded on a storage device, comprising the steps of: displaying on a monitor a representation of data to be accessed; indicating that a non-current version of the data is to be displayed; if the non-current version of the data is a prior version: selecting one of several prior versions of the data to be displayed; and displaying the selected prior version of the data on the monitor; and if the non-current version of the data is a future interpolation of current data: selecting a future period of time to which the data is to be extrapolated; and displaying the selected extrapolated data on the monitor. Preferably the step of indicating that a non-current version of the data is to be displayed comprises the steps of: dragging a function icon representing the data to be displayed to a dedicated area of the monitor; and dropping the function icon in the dedicated area, in particular wherein the dedicated area is a virtual time tunnel icon and said step of dropping comprises the step of dropping the function icon onto the virtual time tunnel icon. Preferably the step of selecting one of several prior versions includes the step of displaying a list of the several versions. More preferably the step of selecting one of several prior versions comprises the step of entering a date and/or time; and the step of displaying comprises the step of displaying a prior version having a storage date and/or time closest to the entered date and/or time. Aptly the step of selecting one of several prior versions comprises the step of entering a flashback index i; and the step of displaying comprises the step of displaying a prior version n-i, where n represents the current version of the data. Aptly the step of indicating comprises the step of dragging a virtual time tunnel icon to a function icon representing the data to be displayed; and the step of selecting one of several prior versions comprises the step of automatically selecting a version n-i, where n represents the current version of the data and i represents a flashback index. More aptly the step of indicating comprises the step of dragging a virtual time tunnel icon to data displayed on the monitor; the step of selecting one of several prior versions comprises the step of automatically selecting a version n-i, where n represents the current version of the data and i represents a flashback index; and the step of displaying comprises the step of displaying the prior version n-i. It is particularly preferred that the step of selecting a future period comprises the steps of: entering a date and/or time; extrapolating current data forward to the entered date and/or time; and displaying the extrapolated data. It is alternatively preferred that the step of selecting a future period comprises the steps of: entering a flashforward index i; extrapolating current data forward to n+i, where n is the current version of the data; and displaying the extrapolated data. It is alternatively preferred that the step of indicating comprises the step of dragging a virtual time tunnel icon to a function icon representing the data to be displayed; and the step of selecting a future period of time comprises the step of automatically selecting a version n+i, where n represents the current version of the data and i represents a flashforward index. According to a second embodiment of the present invention there is provided a program storage medium, readable by a computer, tangibly embodying a program of instruction steps executable by the computer to access data recorded on a storage device, the program comprising the instruction steps of: displaying on a monitor a representation of data to be accessed; indicating that a non-current version of the data is to be displayed; if the non-current version of the data is a prior version: selecting one of several prior versions of the data to be displayed; and displaying the selected prior version of the data on the monitor; and if the non-current version of the data is a future interpolation of current data: selecting a future period of time to which the data is to be extrapolated; and displaying the selected extrapolated data on the monitor. Preferably the instruction step of indicating that a non-current version of the data is to be displayed comprises the steps of: dragging a function icon representing the data to be displayed to a dedicated area of the monitor; and dropping the function icon in the dedicated area, in particular wherein the dedicated area is a virtual time tunnel icon and said instruction step of dropping comprises the instruction step of dropping the function icon onto the virtual time tunnel icon. Preferably the instruction step of selecting one of several prior versions includes the instruction step of displaying a list of the several versions. More preferably the instruction step of selecting one of several prior versions comprises the instruction step of entering a date and/or time; and the instruction step of displaying comprises the instruction step of displaying a prior version having a storage date and/or time closest to the entered date and/or time. Aptly the instruction step of selecting one of several prior versions comprises the instruction step of entering a flashback index i; and said instruction step of displaying comprises the instruction step of displaying a prior version n-i, where n represents the current version of the data. Aptly the instruction step of indicating comprises the instruction step of dragging a virtual time tunnel icon to a function icon representing the data to be displayed; and the instruction step of selecting one of several prior versions comprises the instruction step of automatically selecting a version n-i, where n represents the current version of the data and i represents a flashback index. More aptly the instruction step of indicating comprises the instruction step of dragging a virtual time tunnel icon to data displayed on the monitor; the instruction step of selecting one of several prior versions comprises the instruction step of automatically selecting a version n-i, where n represents the current version of the data and i represents a flashback index; and the instruction step of displaying comprises the instruction step of displaying the prior version n-i. It is particularly preferred that the instruction step of selecting a future period comprises the instruction steps of: entering a date and/or time; extrapolating current data forward to the entered date and/or time; and displaying the extrapolated data. It is alternatively preferred that the instruction step of selecting a future period comprises the instruction steps of: entering a flashforward index i; extrapolating current data forward to n+i, where n is the current version of the data; and displaying the extrapolated data. It is alternatively preferred that the instruction step of indicating comprises the instruction step of dragging a virtual time tunnel icon to a function icon representing the data to be displayed; and the instruction step of selecting a future period of time comprises the instruction step of automatically selecting a version n+i, where n represents the current version of the data and i represents a flashforward index. According to a third embodiment of the present invention there is provided a computer system for examining functions for different periods of time, the computer system having a CPU operable to execute functions and a display monitor, the improvement comprising: one or more functions represented by corresponding function icons displayed on the monitor; a target region displayed on the monitor representing a virtual time transport algorithm for displaying a non-current state of a function; and a selection device for dragging a selected one of said function icons to said target region on the monitor, wherein the virtual time transport algorithm is executed by the CPU such that: if the non-current state of the selected function is a prior state, the virtual time transport algorithm displays a prior version of the selected function; and if the non-current state of the selected function is a future state, the virtual time transport algorithm displays an extrapolated state of the selected function, in particular wherein the target region comprises a virtual time transport icon, or wherein the target region comprises a dedicated area of the monitor. Preferably the computer system further comprises a set of controls displayed on the monitor to enable a user to select which of several prior states of the selected function to be displayed on the monitor, in particular the computer system further comprises a storage device on which prior versions of functions are stored, or the computer system further comprises a set of controls displayed on the monitor to enable a user to select which of several extrapolated states of the selected function to be displayed on the monitor. The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 represents a computer system in which the present invention is incorporated. FIG. 2 is a flow chart of the steps of one algorithm of the present invention for returning to a prior state an application, database, displayed information, or other function; FIG. 3 is a flow chart of the steps of another algorithm of the present invention for extrapolating a database, information or other function into the future; and FIG. 4 is represents a portion of a display screen in which another embodiment of the present invention is incorporated. DETAILED DESCRIPTION OF THE INVENTION The present invention is capable of running on any general purpose computer system or computer controlled GUI (e.g., a television or virtual reality system). A system in which the present invention is incorporated is schematically represented in the block diagram of FIG 1. A computer system 100 comprises a central processing unit (CPU) 110, a memory storage device 120 (such as a hard disk, tape or optical drive, whether locally or networked/remotely connected), a monitor or graphical interface 130, a keyboard 140 and a selection device such as a mouse 150. In some environments, the CPU 110 can be connected through a network adaptor to a network (not shown). The mouse 150 is used to move an on-screen cursor 160 to select GUI objects, such as application icons 170, 172 and 174. An additional icon 180 serves as the virtual time tunnel (VTT) target icon. The VTT icon 180 may have a distinct graphical representation, such as an icon, or it may instead be a dedicated region of the graphical user interface with no distinguishing graphical characteristics. In one embodiment, a user uses the cursor 160 in a known manner to drag an icon 172 representing a database of, for example, financial transactions, on top of the VTT icon 180. The contents of the database from a selected prior period of time, stored in the memory device 120, are accessed and displayed on the screen. Present data in the database are not altered or replaced by the earlier data; rather, the user is allowed to examine older versions of the data without confusing older data with present data. Graphical methods, such as shading or colouring, may be used to visually differentiate retrieved and/or extrapolated displays from current displays. Referring now to the flow chart of FIG 2, if the cursor 160 directed by the mouse or other selection means 150 is placed over a source icon, step 220, then step 230 determines whether the source icon has actually been selected and dragged to the VTT icon 180. If it is determined, using geometrical calculations known to those skilled in the art, that the source icon was dragged to the VTT icon 180, then in step 240 a list of prior versions, sorted for example by date, of the application, database, or other information (hereinafter collectively referred to as the "function") represented by the source icon is displayed. The user selects a desired prior version in step 260 and the selected function is then accessed and shown in a prior state in step 280. In another embodiment, a "looking glass-like" tool can be used when the VTT 180 is moved to the source material to temporarily turn a selected portion (or the entirety) of the current version of a function into a prior version of the function, when the tool is held over that portion of the selected file. Write-once (WORM) optical disks maintain previous versions of files when using the IBM High Performance Optical File System (HPOFS-WORM). When the memory device 120 includes a WORM drive and media, the VTT icon 180 can be adapted for use with the WORM storage media and associated version-storing software. (When WORM optical media is used to store the versions, no changes are needed to the operating system as the data file is stored as a new version each time it is saved to the write-once optical media.) Thus, the previous versions of each file are always accessible. The VTT icon 180 directs the system 100 to look for the version of a file stored at a specified time or to look for a specified i-th previous version of the desired file as directed by the user, all stored under the same file name. The time period to look back may be set by the system or by application software using a stored user profile. Alternatively, the user may interactively set the VTT's time coordinates using a graphical representation, or data-entry field, positioned in the graphical user interface, preferably near the VTT 180. The graphical representation may be a gauge, slider, dial, or other graphical controller. For some functions, the desired version can be selected from a list of available (stored) prior versions, rather than being selected by date. Assuming the current data to be version n, the VTT icon 180 can be used to look at version n-i (where the "flashback" index, i, is user selectable). Alternately, the flashback index i can be a time (including date) entered by the user to retrieve a version filed at the specified time. The VTT software can review the filing time of previous versions and display the version with the filing time closest to the selected time. The VTT settings may be also be automatically determined by VTT software based on a user's past usage so that more likely settings are the default when a user drags a particular icon on top of the VTT icon 180. It will be appreciated that the present invention, in the form of the VTT icon 180 (or one of the alternate embodiments described here) may be incorporated into an application toolbar, or may be globally integrated into a graphical operating system. In addition to the VTT icon 180, a clock/calendar icon, a slider control, or other similar graphic time element can be included which can be manipulated by the user from within the VTT to allow the user to scan forward and backwards in time while looking at a data graph or other data display. In another aspect of the invention, the VTT function can extend data or the contents of a file into the future by extrapolating data or contents from past and current versions. If the current version is n, then a future version, n+i, would be i extrapolations of previous activity (i being a "flashforward" index). Fractal art, digital servo systems, predictor-corrector solutions of differential equations, and the iterative solutions of two-point boundary value problems are some of many examples of applications for which such extrapolations can be useful. Additionally, many spreadsheets and financial programs currently in use already include the capability to make future predictions. The VTT provides an intuitive way to view and manipulate this data. Extrapolation may be based on a linear or a parabolic determination of the rate of change. With reference to a first-order Taylor series, the following finite-difference equations are defined. A linear rate-of-change extrapolation to future time n+1 for spreadsheet database information having consistent time intervals (such as those presented by stock and commodity prices) is shown in eqn.(1) and a parabolic rate-of-change extrapolation to future time n+1 is shown in eqn.(2). F(n+1) = 2*F(n) - F(n-1) F(n+1) = 5*F(n) - 4*F(n-1) + F(n-2) 2 If the time intervals are not consistent, eqns.(3 and 4) are applicable for linear and parabolic rates of changes, respectively, where the varying time intervals are represented by t(i). In eqns.(1-4), the variable F represents each numerical cell of a spreadsheet; F(n+1) represents the next future value; F(n), the current value; F(n-1), the immediate previous value; and F(n-2), the next previous value. Time interval t(n+1) is the length of time between F(n+1) and F(n); t(n), the time between F(n) and F(n-1); and t(n-1), the time between F(n-1) and F(n-2). Extrapolations to future values beyond n+1 can, of course, also be made by making appropriate modifications to any of these equations. F(n+1) = F(n) + F(n) - F(n-1) t(n) * t(n+1) F(n+1) = F(n) + F(n) - F(n-1) t(n) * t(n+1) + F(n) - F(n-2) t(n) + t(n-1) * t(n+1) + F(n-1) - F(n-2) t(n-1) * t(n+1) Alternatives to extrapolation eqns.(1-4) exist. For example, truncated Fourier Series of spreadsheet data could be performed, cell by cell, as a function of time in order to identify cyclicity of the data, thus predicting the future value of each numerical cell in the spreadsheet based on its prior history and current value. A neural network could be taught the past i activities and then be used to extrapolate to a user-selected future time. Use of eqns.(1-4) or other means of extrapolation is described with reference to the flow chart of FIG 3. If the cursor 160 is placed over a source icon, step 320, then step 330 determines whether the icon has been selected and dragged to the VTT icon 180. If so, then in step 340 a list of extrapolating functions or future periods is displayed, one of which is selected in step 360 and the application, database, or other function represented by the source is extrapolated into the future and displayed in step 380. FIG. 4, a representation of a portion of the monitor 130, illustrates another form of a VTT icon implemented as a window 410. The upper portion 420 of the window 410 comprises a "viewscreen" in which data or information 430 to be manipulated in time is viewed. The lower part 440 of the window 410 comprises a "control" area. An icon 450 representing the data or information to be analyzed may be dropped into the control area 440. A primary control 460 in the control area directs forward/backwards time movement, which may be varied on a linear or nonlinear scale and displayed in a window 465. A pop-up control panel 470 may be provided to modify other settings, such as time scale and graphing options. It will be appreciated that other methods of control and selection may be used. For example, the past version number, date or flashforward index i can be entered directly. The time-varying data may be presented in the viewscreen 410 in several ways. In one embodiment, the data is presented as a "movie" or "slideshow", with the passage of time into the past or future represented graphically in the control area 440. The user can control the speed and direction of the presentation, as well as pause the presentation to examine any particular frame using standard play/pause/forward/reverse graphical icons 480. In still another embodiment, the viewscreen represents a tunnel in perspective in which time is represented along the length of the tunnel. Snapshots of data to be represented are visible in panels along the walls of the tunnel, analogous to paintings hanging in a long hallway. The user can control apparent motion back and forth through the tunnel, and can stop and click on any panel to view it in detail. The relative time may be represented by wall colour, perhaps green for current time, red for future time, and grey for the past (with colour intensity varying with distance from the present). Different walls of the tunnel may be used to represent various aspects of the data presented. For instance, the right wall could be the current consumer price index, the left wall could be the current value of a 1995 dollar; and the far wall (end of the tunnel) could be used to plot the value of a parameter of particular interest, such as total net worth. Travel through the tunnel may be manually or automatically controlled. At a slow time speed, the side graphs appear to be rolling by and the user may stop and "look" at any time. Alternatively, only the "walls" can be made to appear to move and change colour to indicate the passage of time while the graphs or other data remain stationary and update in place. Each graph would have a line or other indication of the original value (at time 0) for comparison and perhaps a setpoint/time-travel breakpoint.

Claims: A method for accessing data recorded on a storage device, comprising the steps of: displaying on a monitor a representation of data to be accessed; characterised in that : indicating (230) that a non-current version of the data is to be displayed; if the non-current version of the data is a prior version: selecting (260) one of several prior versions of the data to be displayed; and displaying (280) the selected prior version of the data on the monitor; and if the non-current version of the data is a future interpolation of current data (340): selecting (360) a future period of time to which the data is to be extrapolated; and displaying (380) the selected extrapolated data on the monitor. The method of Claim 1, wherein said step of indicating that a non-current version of the data is to be displayed comprises the steps of: dragging a function icon representing the data to be displayed to a dedicated area of the monitor (220); and dropping the function icon (230)in the dedicated area. The method of Claim 2, wherein the dedicated area is a virtual time tunnel icon and said step of dropping (220) comprises the step of dropping the function icon onto the virtual time tunnel icon. The method of Claim 1, wherein said step of selecting (240) one of several prior versions includes the step of displaying a list of the several versions. The method of Claim 1, wherein: said step of selecting (240) one of several prior versions comprises the step of entering a date and/or time; and said step of displaying (280) comprises the step of displaying a prior version having a storage date and/or time closest to the entered date and/or time. The method of Claim 1, wherein: said step of selecting (240) one of several prior versions comprises the step of entering a flashback index i; and said step of displaying (380) comprises the step of displaying a prior version n-i, where n represents the current version of the data. The method of Claim 1, wherein: said step of indicating (230) comprises the step of dragging a virtual time tunnel icon to a function icon representing the data to be displayed; and said step of selecting (240) one of several prior versions comprises the step of automatically selecting a version n-i, where n represents the current version of the data and i represents a flashback index. A program storage medium, readable by a computer, tangibly embodying a program of instruction steps executable by the computer to access data recorded on a storage device, the program comprising the instruction steps of: displaying on a monitor a representation of data to be accessed; characterised in that : indicating (230) that a non-current version of the data is to be displayed; if the non-current version of the data is a prior version: selecting (260)one of several prior versions of the data to be displayed; and displaying (280)the selected prior version of the data on the monitor; and if the non-current version of the data is a future interpolation of current data (340): selecting a future period of time (360) to which the data is to be extrapolated; and displaying (380) the selected extrapolated data on the monitor. A system for examining functions for different periods of time, the system comprising a computer system having a CPU (110) operable to execute functions and a display monitor (130), the system comprising: means for one or more functions represented by corresponding function icons displayed on the monitor; characterised in that : means for a target region displayed on the monitor representing a virtual time transport algorithm for displaying a non-current state of a function; and means for a selection device for dragging (230) a selected one of said function icons to said target region on the monitor, wherein the virtual time transport algorithm is executed by the CPU such that: if the non-current state of the selected function is a prior state, means for the virtual time transport algorithm displaying (280) a prior version of the selected function; and if the non-current state of the selected function is a future state, means for the virtual time transport algorithm displaying (380) an extrapolated state of the selected function. A system as claimed in claim 9 wherein the target region comprises means for a virtual time transport icon or means for a dedicated area of the monitor.

Inventors: HOCKER MICHAEL DAVID, KISHI GREGORY TAD, MC LEAN JAMES GORDON, PICKOVER CLIFFORD ALAN, WINARSKI DANIEL JAMES, HOCKER, MICHAEL DAVID, KISHI, GREGORY TAD, MC LEAN, JAMES GORDON, PICKOVER, CLIFFORD ALAN, WINARSKI, DANIEL JAMES
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1997
Main classification: G06F9
IPC codes: G06F9