MULTIPLE DATA TYPE PROCESSING AND PRESENTATION GRID
FIELD OF INVENTION
The invention relates generally to the processing and presentation of information. In particular, the invention relates to the processing and presentation of information having multiple data types.
BACKGROUND
With the advent of the Internet, various private or public computer networks that transcend many geographical boundaries, and new miniaturized and portable storage media, information has become accessible in many ways to many places and people previously not contemplated. As a result, information and data, which is a unit of information, are also processed in many places and by many people in many ways also previously not contemplated. Therefore, a paradigm shift from an emphasis on the creation of different data types to an emphasis on the creation of as well as providing access to different data types has occurred. This paradigm shift provides an impetus to many scientific and technological research and development communities to harness the modern information-rich environment for advancing science and technology. An effect of this drive is the emergence of a number of technological proposals for mining data for research and development purposes.
Such interests in accessing and using the different data types made abundantly available today is not restricted to the research and development communities. Practically most of modern society affected by the pervasion of Information Technology (IT) such as the Internet deals with or handles abundantly available information rich in different data types. For example, video and music files that are downloadable from the Internet are used by many that are interested in processing multimedia. Typically, web pages downloadable from Web sites on the Internet contain multiple data types such as text,
image, video and/or audio. As a further example, barcodes, graphs and other complex data types forming part of business and commercial information are routinely handled in the course of business and commerce.
On the science and technology front, in particular in the pharmaceutical field, scientists and researchers frequently collect and analyze, for example, images of organisms, chemical structures and DNA sequences. Such information is therefore rich in data types which typically form the input for research and development projects. The results derived from such research and development projects also typically include information that contains the same data types.
With the many data types that are made abundantly available and the many ways to process data today, many new challenges arise in relation to the way in which information is manipulated, processed and presented. One such challenge relates to the manner of processing large amounts of information made up of many different data types. Another challenge relates to the manner of presenting large amounts of information made up of many different data types and the results derived by processing such information. A further challenge relates to the flexibility in manipulating, processing, or presenting large amounts of information made up of many different data types and the results derived by processing such information.
There is therefore a need for a system that provides flexible processing and presentation of information having different data types and the results derived by processing these data types.
SUMMARY
According to a first aspect of the invention, a system for acquiring and processing data of a plurality of data types is provided. The system includes means for acquiring data of the plurality of data types. The system includes also means for processing data of the plurality of data types. The system further includes means for displaying data of the plurality of data types, including means for displaying a grid having a plurality of cells
and means for providing a display area within each cell, wherein at least one of data of a data type and data processed by the means of processing data is displayable in the display area of each cell.
In accordance with a second aspect of the invention, a method for acquiring and processing data of a plurality of data types is provided. The method includes the step of acquiring data of the plurality of data types. The method includes the step of processing data of the plurality of data types. The method further includes the step of displaying data of the plurality of data types, including displaying a grid having a plurality of cells and providing a display area within each cell, wherein at least one of data of a data type and data processed by the means of processing data is displayable in a display area of a cell.
In accordance with a third aspect of the invention, a computer program product for acquiring and processing data of a plurality of data types is disclosed. The product includes a computer usable medium having computer readable program code means embodied in the medium for processing and presenting data of a plurality of data types, the computer program product having computer readable program code means for acquiring data of the plurality of data types. The product also includes computer readable program code means for processing data of the plurality of data types, and computer readable program code means for displaying data of the plurality of data types, including displaying a grid having a plurality of cells and providing a display area within each cell, wherein at least one of data of a data type and data proces ed by the means of processing data is displayable in the display area of each cell
BRIEF DESCRIPTION OF DRAWINGS
Embodiments of the invention a1 e described hereinafter with reference to the drawings, in which:
Figure 1 is a screenshot of a Graphical User Interface (GUI) provided by a system in accordance with one embodiment of the invention;
Figure 2 is another screenshot of the GUI provided by the system in Figure 1 after data processing;
Figure 3 is a block diagram illustrating a tree of functional modules in the system of Figure 1 ;
Figure 4 is a block diagram illustrating the interrelationship among operational modules in the system of Figure 1 ;
Figure 5 is a flowchart for a process for starting up the system of Figure 1;
Figure 6 is a flowchart for a process for logging changes to the system of Figure 1;
Figure 7 is a flowchart for a process for opening up a file for processing by the system of Figure 1;
Figure 8 is a flowchart for a process for running a helper application for changing data in the system of Figure 1 ;
Figure 9 is a flowchart for a process for running an editor application for changing data in the system of Figure 1;
Figure 10 is a flowchart for a process for importing data in a non-native format to the system of Figure 1;
Figure 11 is a flowchart for a process for running a processor in the system of Figure 1;
Figure 12 is a flowchart for a process for saving results processed by the system of Figure 1 as a template;
Figure 13 is a flowchart for a process for saving results processed by the system of Figure 1 as a snapshot;
Figure 14 is a flowchart for a process for exporting results processed by the system of Figure 1 in a non-native format;
Figure 15 is a flowchart for a process for configuring a new processor in the system of Figure 1 ;
Figure 16 is a flowchart for a process for configuring a new helper/editor application in the system of Figure 1 ;
Figure 17 illustrates a general-purpose computer by which the embodiments of the invention are preferably implemented; and
Figure 18 is a flowchart for a process for setting permission for data editing in the system of Figure 1.
DETAILED DESCRIPTION
Embodiments of the invention are provided hereinafter to meet the need for a system that provides flexible processing and presentation of information having different data types and the results derived by processing these data types. To this end, the system provides, in a flexible manner, concurrent multi-processing and presentation of information rich in data types and results derived by processing such information.
The system, hereinafter generally referred to as "Cellit", is preferably implemented using a computing system that has at least processing, storage, display, and communication capabilities. Cellit provides a two-dimensional grid GUI 102 on the display as an interface between Cellit and a user, which is illustrated in Figures 1 and 2. The grid GUI 102 is shown to present different information in Figures 1 and 2 because Cellit is in different stages of multi-processing and presentation in an ongoing session. For example, a cell Bl 109A in Figure 1 which displays the words "bee.gif renders in Figure 2 the image of a bee according to an image file named "bee.gif
The grid GUI 102 contains a number of square and/or rectangular cells 104, each cell 104 juxtaposing at least another cell 104 to provide a grid formation. Each of these cells 104 can be referenced in terms of width, height, and position within the grid GUI 102 using a horizontal reference bar 106 and a vertical reference bar 108 in the grid GUI 102.
Cellit is flexible because a user is allowed access to a set of properties in Cellit for manipulating, processing, and presenting information, and for controlling the grid GUI 102. The set of properties includes the position of the grid GUI 102 on the display, the width and height of the grid GUI 102, the number of cells 104 in the grid GUI 102, information relating to files that have been opened in a previous Cellit session, etc.
Each cell 104 in the grid GUI 102 can contain either a data or a data set. A data is a unit of information and the various types of data include text, number, formula, file (e.g. platform independent file types like GIF, JPEG, XML, MPEG, SMILE and platform dependent file types like WinWord, WordPerfect), barcode, graph, and SQL query. A data set is a collection of interrelated data and examples include a data tree or an array of data. In a data set, there can be hierarchical nesting of data. The data and data set in a set of cells 104 can be heterogeneous in terms of identity and content. The members of a data set can also be heterogeneous.
A process is an activity performed on a data or data set. A process may involve the presentation of data or data set in a form that a user can visualize and that which the user is familiar with (e.g. rendering a GIF file as an image in the display area of the cell Bl 109 in the grid GUI 102 in Figure 2). A process may also involve the execution of a program for a cell or set of cells 104 (e.g. providing e-mail sending service via an email sender application having a user-interface in the display area of a cell or set of cells 104.) Each process can modify the content or identity of data or data set in a cell or set of cells 104 in the grid GUI 102. For example, a process may involve storing data as links within a cell or set of cells 104 in the grid GUI 102. A process may also involve searching for data or data set within a cell or set of cells 104 in the grid GUI 102. A process may also involve controlling the behavior of cells 104 other than a cell 104 on which the process is performed (e.g. rendering a pie chart in the display area of a group
of cells Dl 109B using the data displayed in a group of cells A5, B5, C5, A6, B6 and C6 109C in the grid GUI 102 in Figure 2). Other processes may also involve editing data or data set in a cell or set of cells 104 (e.g. editing the text representation of data in a cell or set of cells 104 using a text box 109C in Figures 1 and 2), or the performance of computation for a cell or set of cells 104 (e.g calculating formulas using data entered into the display area of a cell or set of cells 104 and thereafter displaying the results in the same cell or set of cells 104).
A "helper" is an application in Cellit that allows the user to manipulate or edit the display contents of a cell 104 in the grid GUI 102 by executing or running external to the cell 104. A cell editor (generally referred hereinafter to as "CEditor") is an application in Cellit that allows the user to manipulate or edit the display contents of a cell 104 in the grid GUI 102 by running within the cell 104. A tool library refers to a set of tools such as helpers, CEditors and other applications that perform data processing (or hereinafter generally referred to as processors) which the user can "plug" into Cellit.
There are many advantages to using Cellit for concurrent multi-processing and presentation of information rich in data types and results derived by processing such information in a flexible manner. For example, Cellit allows the concurrent displays of data that are of different types. The system is therefore useful for purposes such as reporting, multimedia processing and presentation, and manipulation of any data type- rich information.
Cellit can be applied as an information 'pull' model upon which the user can rely for running applications in particular cells 104 to populate data or data set in a set of cells 104. Cellit can also be configured to transmit contents of cells 104 via an e-mail application that is embedded in one or more cells 104. Hence, Cellit can also be an information 'push' model in which data or data set populated in a set of cells 104 are processed and then reported to a set of users periodically via a "Refresher" application. The Refresher application allows processors to be activated periodically. For example, a user who is interested in the stock market can configure three cells 104 to store three different SQL queries to retrieve records of prices of three different stocks. To do this,
a process is required in whi( h such a user first clicks on a cell 104, and then on a dotted button 107. This series of actions invokes an SQL editor which "pops up" for the user to fill in an SQL query. The sime series of actions is repeated two more times for two other cells 104. The user then right-clicks on a fourth cell which brings up a pop-up menu from which the Refresher application is chosen. The user makes an entry into the Refresher application regarding the refresh interval, e.g. five minutes, and the identification of the three cells 104 containing the SQL queries. The three cells 104 are identified using the horizontal reference bar 106 and the vertical reference bar 108 in the grid GUI 102. Hence in every five minutes, the Refresher application requests the three cells 104 to re-process and re-display data therein by repeating the queries. To prevent these users from being unnecessarily overloaded or in undated with data, the e- mail application associated with each cell 104 can be configured to store the specific settings of each user so that only certain types of data are sent to the respective user.
There is also an "Interfacer" application that provides an interface between Cellit and other legacy applications. The Interface application allows data in the cells 104 to be manipulated or presented by an external legacy application. For example, an HTML document embedded in a cell 104 can be passed via the Interfacer application to, for example, an HTML composer for editing or an Internet browser for rendering. By doing so, the user does not have to migrate legacy applications, therefore ensuring data and/or application integrity.
Additionally, a Log Manager in Cellit provides useful information on how Cellit is used in an organization in which Cellit is implemented in a data-sharing configuration. For example, Cellit can run separately as applications on a number of computing systems such as personal computers (PCs) that are networked. Data used in relation to Cellit that runs on each PC can either be stored on the local storage or remotely on other networked PCs. Alternatively, Cellit can run as an application from a network server having a network drive, on any network PC where the cells 104 in the grid GUI 102 point to data stored on the local storage of that PC.
Furthermore, Cellit can act as a unified data repository for organizations implementing Cellit.
Cellit is also useful for information and knowledge sharing and can be a powerful interface for data warehousing purposes. A Security Manager in Cellit protects the integrity of data while users share information via the same system.
Cellit further allows access and control of diverse information that can reside in databases and other sources like file systems. File systems are offered by most operating systems. Databases are less widespread but can offer search mechanisms that are not available in file systems. By allowing access to bogth databases and file systems, the Cellit draws on the advantage offered by both databases and file systems.
Cellit is preferably implemented, but is not limited to, using Java. Cellit in this case is thus a cross platform system.
Cellit is a system that preferably includes a memory, a central processing unit (CPU), a storage device, an input device, communication means, and a display (all not shown in any figure). The CPU generates a set of cells 104 required for meeting the user's needs. For example, the user may be involved in a research and development project and wish to present both data and processed results using the cells 104. Alternatively, the user may be a supervisor of other users presenting both data and processed results and wish to view thse from a PC networked to others. The contents of the generated cells 104 can be kept in the memory so that the results of the processing can be presented on the display, or saved onto the storage device for future retrieval.
In Figure 3, the block diagram provides an illustration of a tree of functional modules in Cellit (hereinafter designated the reference numeral 302). Cellit 302 has a number of functional managers for handling functions such as security, data transaction, visualization, logging and configuration. These functional managers include a Security Manager (SM) 304, a Transaction Manager (TM) 306, a Configuration Manager (CM) 308, a Visualization Manager (VM) 310, and a Log Manager (LM) 312, respectively.
The VM 310 operates to present data, process data, and present processed data or results for the user. The VM 310 controls a number of modules, which include a Display Module (DMod) 314, a Manipulator Module (MMod) 316, and a Storage Module (SMod) 318.
Through the DMod 314, the VM 310 enables the grid GUI 102 to be displayed for providing, together with the input device, an input/output interface between Cellit 302 and the user. The grid GUI 104 allows Cellit 302 to present data and/or results to the user, and the input device allows the user to provide input or feedback to Cellit 302.
The DMod 314 controls the front end or workspace in Cellit 302 with which the user interacts to work on data which the user has to input or feedback to Cellit 302. The workspace includes the grid GUI 102 as shown in Figures 1 and 2, which consists of a number of cells 104 laid in a two dimensional grid. The DMod 314 displays the cells 104, and the data and/or results of processes performed on the data of the cells 104.
Each cell 104 can be referenced externally, for example by a helper, using coordinates provided by the horizontal and vertical reference bars 106 and 108. A cell 104 can also reference another cell or set of cells 104 via the coordinates. Each cell 104 can assume multiple identities, and this is possible because the same data stored in relation to a cell 104 can be processed using different processors. Therefore different results are achieved and these processes provide the multiple identities of the cell 104. For example, an SQL query can be processed for retrieving data from databases or sent out via e-mail depending on whether the cell 104 assumes the identity of an SQL handler or an e-mail application.
The VM 310 also enables grouping and ungrouping of cells 104. Preferably, the contents of the top left cell 104 of a group of cells 104 supercede all the other cells 104 during the grouping process. Each cell 104 in this group of cells 104, however, still retain the original contents and identities.
The MMod 316 controls CEditors 320, helpers 322 and other processors 324, which are installed or plugged-in as tools in Cellit 302, for manipulating data and cell 104 parameters.
Preferably, these tools can be activated to process data in a distributed manner. The user can specify the Universal Resource Indicator (URI) of tools that are sited at different locations, where computing systems hosting such tools are linked to Cellit 302 via the communication means. Cellit 302 can perform tasks or operations rapidly
because the MMod 316 can activate the tools to run or execute on the contents of a cell or set of cells 104 in parallel or concurrently.
Through the MMod 316, Cellit 302 can also interface with new tools. For example, through a dialog box, the user fills in the location of a new tool with which Cellit 302 is to interface. This location can be where the tool library or the new tool resides. The user also indicates in the dialog box whether the new tool is a legacy application. The user or a developer can also add interface functions to the MMod 316 so that Cellit 302 can communicate with external applications as tools.
Data can be entered as text into a cell 104 via a CEditor 320 of that cell 104 or the text box 109C provided by the grid GUI 102. Data can also be stored into the SMod 318 via a helper by selecting a cell 104 and clicking on the dotted button 107 on the Grid GUI 102. While the text box 109C facilitates entry of data which is text, the dotted button 107 facilitates entry of other types of data. When the dotted button 107 is clicked on, a dialog box pops up to request for the Universal Resource Indicator (URI) of the data source. The dotted button 107 also facilitates the editing and/or entry of data such as image files or SQL syntaxes. Whether upon clicking the dotted button 107 a dialog box pops up to request for the URI of the data source or an SQL editor pops up to allow entry of an SQL query depends on the type of data already stored in that cell 104. The SMod 318 subsequently stores both data and cell parameters.
An example of a tool is a Scheduler, which is a processor that communicates with the MMod 316. The Scheduler controls the refresh rate of information for a set of cells 104 in the grid GUI 102.
Another example is a Formulator, which is a processor that the user can use to code functions and formulas into a cell 104. The Formulator can compute a formula that is stored in a cell 104 via an infix parser.
A further example is a Searcher, which is a processor that searches for a data or a cell 104 via the attributes of the data or the coordinates of that cell 104.
A yet further example is a E BConnector, which is a processor that executes an SQL statement (stored as a data iii a cell 104) on a specified database and returns an XML formatted data.
Other examples include an Emailer, which is a processor that e-mails data of a set of cells 104; a Grapher, which is a processor that stores a graph in a cell 104 based on the contents stored in a set of cell 104; and a Questit, which is an SQL generator that provides a graphical interface for the easy construction of SQL statements.
The Transaction Manager (TM) 306 performs the functions of storing and retrieving information from the Security Manager (SM) 304. The TM 306 controls a number of modules, namely a Network Module (NMod) 326 and a File Module (FMod) 328.
The NMod 326 performs the functions of providing remote storage to and retrieval from databases and the Internet via a DBTransactor 330 and an Internet Transactor 332, respectively. On the other hand, the FMod 328 performs the functions of providing local storage to and retrieval from a file system in the computing system by which Cellit 302 is implemented. This is made possible via a File Translator 334 and a File Transactor 336, which handle non-native file formats (e.g. Excel) and file input/output for Cellit 302, respectively.
The TM 306 receives from the SMod 318 information manipulated by the VM 310, and saves such information as a template (cell parameters only), a native file in Cellit 302 (cell parameters and data) or non-native file. A native file refers to a file that has a format peculiar to Cellit 302. A non-native file refers to a file that has a format peculiar to any application except Cellit 302. Contents of either types of files can be imported by Cellit 302. However, preferably, only one such file can be opened in one session of Cellit 302 in respect of one grid GUI 102.
The cells 104 of a template contain references (e.g. hyperlinks) to external data sources or other cells 104. This template can thus be reused to store other data with the same processing behavior. Through the template, Cellit 302 can thus memorize the way a particular user or a group of users share and organize information. A template is therefore a type of knowledge acquisition tool. The File Transactor 336 can import
data from other sources for e.g., spreadsheet applications, comma-delimited files, or tab-delimited files so as to populate the cells of a template.
The Security Manager (SM) 304 has read, write and execute control features to manage the security of data at cellular level. The SM 304 provides an interface to allow, for example, a security administrator for Cellit 302, to manage the access rights for sets of cells 104.
The Log Manager (LM) 312 tracks when data is processed. Such tracking information can be appended to a log file via the LM 312 whenever cells 104 are displayed on the grid GUI 102 or when changes are made to the content of the cells 104.
The Configuration Manager (CM) 308 enables configuration of all the functional managers in Cellit 302. The parameters that are configurable can affect the workspace environment of Cellit 302 globally (e.g. position of the grid GUI 102 on the display, or the background color of the grid GUI 102) or locally for just a cell or set of cells 104 (e.g. height of a cell 104, or the type of processor to run on a cell 104).
In Figure 4, the block diagram provides an illustration of the interrelationship among operational modules in Cellit 302, where each module consists of a process. The user, in a process 402, begins a session with Cellit 302 by invoking the VM 310 that as a result displays the grid GUI 102. After actuating the grid GUI 102, the user can either open a file in a process 404 or invoke the CM 308 in a process 406.
If the user chooses to open a file, the user can either enter/amend data for a cell or set of cells 104 with a helper 322 in a process 408, import data from other sources in a process 410, or enter/amend data for a cell or set of cells 104 with a CEditor 320 in a process 412. After data has been entered or imported into a cell or set of cells 104, the user can run a processor for processing the input data in a process 414. When processing of the input data is complete and the result of the processing is available, if any, the user can choose to either save or export the data or result as a file. The user can save the file in a process 416 and export the file in a process 418.
Otherwise, if the user chooses to invoke the CM 308, the user can configure any of the other functional managers including the SM 304, the LM 312, the TM 306, or the VM 310 in processes 420, 422, 424 or 426 respectively. After configuring any functional manager, the user can save the configuration for that functional manager in a process 428.
In the process 402, a process by which the user starts up Cellit 302 through clicking an icon on the workspace of the computing system by which Cellit 302 is implemented, for example a desktop in the context of a Windows operating system, takes place. This process, as shown in a flowchart in Figure 5, firstly involves Cellit 302 starting up the SM 304 leading to the subsequent entry of the user's identification and a password, and verification thereof by the SM 304 in a step 502. If the verification is successful, Cellit 302 continues to initialize an operating environment with a profile previously configured by the user. To initialize such an environment, Cellit 302 initially reads a configuration file that contains the state properties of the grid GUI 102 in a step 504. Cellit 302 subsequently loads the state properties of the grid GUI 102 to the VM 310 and all the modules controlled directly controlled the VM 310 in a step 506. Cellit 302 also loads the CEditors 320, the helpers 322, and the processors 324 in a next step 508. All the other functional managers are started in a further step 510, including the LM 312.
Another process in relation to starting up Cellit 302 ensues after the LM 312 is started, as shown in a flowchart in Figure 6, which includes the user optionally configuring the logging parameters in a step 602. The user can configure parameters such as time, filename of a file that keeps a record of the configuration parameters, and etc. In a next step 602, Cellit 302 re-initializes according to the new settings. In a further step 604, the LM 312 writes any action taken by the user in the configuration process and changes, if any, to the parameters into a repository.
If the user chooses to open a Cellit 302 file (a native file), i.e. by selecting the process 404, a process takes place as shown in Figure 7, which firstly involves the File Transactor 334 opening the file in a step 702. The SM 304 next resolves the read and write settings specified for the cells 104 in the file. The SM 304 does this by firstly
reading the security information embedded in the file in a step 704. The SM 304, with the security information, next sets editing permissions for the cells 104 in the file in a step 706. With the editing permissions, Cellit 302 can allow or disallow the user to edit the cells 104 in the file or not.
The editing permissions are set by a file owner using the CM 308. The file owner is a user who is not bound by the editing permissions set in the file, i.e, the file owner is free to edit any of the cells 104 regardless of the permissions set.
If the file owner chooses to set editing permissions using the CM 308 according to the process 420, a process according to a flowchart in Figure 18 occurs. The file owner opens the CM 308 in a step 202. The range of cells 104 and the affected users are then defined in steps 204 and 206, upon which in a step 208, the SM 304 sets the editing permissions. When the file owner saves the file as a Cellit 302 native file, the SM 304 embeds the security information into the file before the file is saved in the process 416.
After opening the file, the user can choose to enter, amend or import data in order to work on the file. If the user chooses to enter or amend data using a helper 322 in the process 408, a process according to a flowchart shown in Figure 8 takes place. A helper 322 is a tool that "pops up" upon the user clicking a button on the grid GUI 102. The content of a cell 104 is passed to the helper 322 for changes to be made by the user. Once this is done, the helper 322 passes the data back to the DMod 314 for display.
In such a process, the user first selects a cell 104 and clicks on the dotted button 107 on the grid GUI 102 to start the helper 322 in a step 802. In response, the VM 310 activates the default helper 322 for processing the selected cell 104 in a step 804. Next in a step 806, the VM 310 accepts information in relation to the modification of the properties of the cell 104 and/or data therein, or data entry for the cell 104, from the user through the grid GUI 102 and provides this information to the default helper 322. The default helper 322 processes the information and stores this in the SMod 318 in a step 808. The VM 310 subsequently provides the stored information to a processor 324
in a step 810. The processo 324 in a next step 812 processes the stored information and the DMod 314 presents the results in a further step 814 to the user via the grid GUI 102. The helper 322 not only provides an alternative method of representing data, but may also change the stored data of the related cell 104. The processor 324 then processes and presents the changed data.
If the user chooses to enter or amend data using a CEditor 320 according to the process 412, a process according to a flowchart shown in Figure 9 takes place. The CEditor 320 is a tool that appears within a cell 104 so as to allow manipulation of data in the cell 104. The CEditor 320 is activated, for example, by the user double clicking on the cell 104. The content of the cell 104 is passed to the CEditor 320 for the user to make changes before returning the data to the DMod 314 for display.
In such a process, the user first selects a cell 104 and by double clicking on the cell 104, starts the CEditor 320 in a step 902. In response, the VM 310 activates the default CEditor 320 for processing the selected cell 104 in a step 904. Next in a step 906, the VM 310 accepts information in relation to the modification of the properties of the cell 104 and/or data therein, or data entry for the cell 104, from the user through the grid GUI 102 and provides this information to the default CEditor 320. The default CEditor 320 processes the information and stores this in the SMod 318 in a step 908. The VM 310 subsequently provides the stored information to a processor 324 in a step 910. The processor 324 in a next step 912 processes the stored information and the DMod 314 presents the results in a further step 914 to the user via the grid GUI 102.
Alternatively, the user can import data from a non-native file, such as an Excel (Microsoft) file. A process illustrated by a flowchart in Figure 10 takes place for such a purpose where an initial step 110A involves the user specifying the file to import data from. The File Translator 334 in next step HOB takes over to translate the file into a format that Cellit 302 can comprehend. If necessary, the File Translator 334 can also apply a template that is created via the VM 310 to format the data imported in a further step HOC.
After the user opens the file and enters, amends or imports data in order to work on the file, the user can run a processor 324 to manipulate or process the data stored in a cell 104. A process illustrated in a flowchart in Figure 1 1 is invoked when the user runs the processor 324, which starts with a step 112 where the MMod 316 identifies the processor 324. The user can select the processor 324 via a "pop up" menu activated by, for example, right-clicking, or set the default processor 324 assigned to a cell 104 via a "pull down" menu. The MMod 316 next in a step 113 retrieves the processor 324 from the tool library and passes the data to the processor 324 for changes in a further step 114. The processor 324 processes the data in a step 1 15 and the VMod 310 in a step 1 16 passes the result to DMod 314 for display in a step 1 17.
After entering, amending or importing data and subsequently processing the data to obtain the result, the user can save the work as a native file (to be described with reference to Figure 14) which includes the data and the cell parameters, or as a template that contains only the cell parameters but not the data. The process for saving the user's work as a template in illustrated by a flowchart in Figure 12, in which the user first in a step 122 clicks on a "save" button for saving the work as a template. The File Translator 334 subsequently in a step 124 collates information regarding cell parameters and disregards the data or result in the cells 104. This information is provided to the File Transactor 336 which saves the information as a template in a step 126.
If the user wishes to save the work as a static or local snapshot, i.e. only the results which have been processed and presented, the user can do so via a process illustrated by a flowchart in Figure 13. In this process, the user clicks on another "save as" button for saving the work as a static snapshot in a step 132. The File Transactor 336 in a next step 134 saves the results in the work that have been processed and presented.
If the user wishes to export the work as a non-native file, a process illustrated by a flowchart in Figure 14 has to be invoked. In this process, the user clicks on a button for exporting the work as an export snapshot and selecting the format in which to export the snapshot in a first step 142. The File Translator 334 in a next step 144 translates the
result into the selected format and the File Transactor 336 in a further step 146 saves and exports the file.
If the user chooses not to open a native file to work on, but to invoke the CM 308 for changing the parameters of Cellit 302, Cellit 302 then enters the process 406 shown in Figure 4. In this process, the user can change the parameters of the SM 304, the LM 312, the TM 306, or the VM 310. The user then saves the amended parameters via the CM 308.
Additionally, the CM 308 allows the user to assign a default CEditor 320 or helper 322 to a processor 324 so that when the user runs such a processor 324 on a cell 104, the assigned default CEditor 320 or helper 322 is first activated to allow the user to enter or amend data before the processor 324 takes over.
Furthermore, the CM 308 allows the user to configure a new processor 324, a new helper, 322, or a new CEditor 320. A process for configuring a new processor 324 is illustrated by a flowchart in Figure 15, in which the user or a developer implements an interface for an application that is to be integrated with Cellit 302 as the new processor 324 in a first step 152. The CM 308 in a next step 153 requests from the user the location of the new processor 324. After the user provides the CM 308 with the information, the CM 308 validates the new processor 324 and if the user requests so, assigns a default CEditor 320 or helper 322 to the new processor 324 in a step 154. The CM 308 adds the new processor 324 to the tool library and a tool selection list in the grid GUI 102 in a step 155. The CM 308 in a next step 156 updates the information into a configuration file.
A process for configuring a new helper 322 or CEditor 320 is illustrated by a flowchart in Figure 16, in which the developer implements an interface for an application that is to be integrated with Cellit 302 as the new helper 322 or CEditor 320 in a first step 162. The CM 308 in a next step 163 requests from the user the location of the new helper 322 or CEditor 320. After the user provides the CM 308 with the information, the CM 308 requests from the user the processor 324 to which the new helper 322 or CEditor 320 is associated in a step 164. The CM 308 then validates the new helper 322 or
CEditor 320 in a step 165. The CM 308 adds the new helper 322 or CEditor 320 to the tool library, and if a new helper 322 is added, Cellit 302 makes the new helper 322 available to the user in the grid GUI 102 for data manipulation in a step 166. The CM 308 in a next step 167 updates the information into the configuration file.
The embodiments of the invention are preferably implemented using a computer, such as the general-purpose computer shown in Figure 17. In particular, the functionality or processing by the system described with reference to Figures 1 to 16 may be implemented as software, or a computer program, executing on the computer. The system and method for concurrent multi-processing and presentation of information rich in data types and results derived by processing such information in a flexible manner are effected by instructions in the software that are carried out by the computer. The software may be implemented as one or more modules for implementing the process steps. A module is a part of a computer program that usually performs a particular function or related functions. Also, as described in the foregoing, a module can also be a packaged functional hardware unit for use with other components or modules.
In particular, the software may be stored in a computer readable medium, including the storage devices described below. The software is preferably loaded into the computer from the computer readable medium and then carried out by the computer. A computer program product includes a computer readable medium having such software or a computer program recorded on it that can be carried out by a computer. The use of the computer program product in the computer preferably effects an advantageous apparatus for providing a low data transmission rate and intelligible speech communication in accordance with the embodiments of the invention.
The system 28 is simply provided for illustrative purposes and other configurations can be employed without departing from the scope and spirit of the invention. Computers with which the embodiment can be practiced include IBM-PC/ ATs or compatibles, one of the Macintosh (TM) family of PCs, Sun Sparcstation (TM), a workstation or the like. The foregoing is merely exemplary of the types of computers with which the embodiments of the invention may be practiced. Typically, the processes of the embodiments, described hereinafter, are resident as software or a program recorded on
a hard disk drive (generally < lepicted as block 29 in Figure 17) as the computer readable medium, and read and controlled using the processor 30. Intermediate storage of the program and any data may be εccomplished using the semiconductor memory 31, possibly in concert with the hard disk drive 29.
In some instances, the program may be supplied to the user encoded on a CD-ROM or a floppy disk (both generally depicted by block 29), or alternatively could be read by the user from the network via a modem device connected to the computer, for example. Still further, the software can also be loaded into the computer system 28 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.
In the foregoing manner, a method, a system and a computer program product for concurrent multi-processing and presentation of information rich in data types and results after derived by processing such information in a flexible manner are disclosed. A number of embodiments are described. However, it will be apparent to one skilled in the art in view of this disclosure that numerous changes and/or modification can be made without departing from the scope and spirit of the invention.