WO2001061432A2 - Multiple data type processing and presentation grid - Google Patents

Multiple data type processing and presentation grid Download PDF

Info

Publication number
WO2001061432A2
WO2001061432A2 PCT/SG2000/000026 SG0000026W WO0161432A2 WO 2001061432 A2 WO2001061432 A2 WO 2001061432A2 SG 0000026 W SG0000026 W SG 0000026W WO 0161432 A2 WO0161432 A2 WO 0161432A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
cell
processing
computer readable
program code
Prior art date
Application number
PCT/SG2000/000026
Other languages
French (fr)
Other versions
WO2001061432A3 (en
Inventor
Teck Sin Lim
Sew Kein Terry Lee
Shan Ho Sonny Tan
Original Assignee
The National University Of Singapore
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The National University Of Singapore filed Critical The National University Of Singapore
Priority to AU2000228419A priority Critical patent/AU2000228419A1/en
Priority to PCT/SG2000/000026 priority patent/WO2001061432A2/en
Publication of WO2001061432A2 publication Critical patent/WO2001061432A2/en
Publication of WO2001061432A3 publication Critical patent/WO2001061432A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Definitions

  • the invention relates generally to the processing and presentation of information.
  • the invention relates to the processing and presentation of information having multiple data types.
  • IT Information Technology
  • the Internet deals with or handles abundantly available information rich in different data types.
  • video and music files that are downloadable from the Internet are used by many that are interested in processing multimedia.
  • web pages downloadable from Web sites on the Internet contain multiple data types such as text, image, video and/or audio.
  • barcodes, graphs and other complex data types forming part of business and commercial information are routinely handled in the course of business and commerce.
  • 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.
  • a system for acquiring and processing data of a plurality of data types 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.
  • a method for acquiring and processing data of a plurality of data types 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.
  • a computer program product for acquiring and processing data of a plurality of data types.
  • 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
  • FIG. 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.
  • Figure 18 is a flowchart for a process for setting permission for data editing in the system of Figure 1.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Cellit for concurrent multi-processing and presentation of information rich in data types and results derived by processing such information in a flexible manner.
  • 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.
  • 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.
  • the Refresher application requests the three cells 104 to re-process and re-display data therein by repeating the queries.
  • 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.
  • the Interface application allows data in the cells 104 to be manipulated or presented by an external legacy application.
  • 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.
  • 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.
  • 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.
  • PCs personal computers
  • 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.
  • 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.
  • the user may be involved in a research and development project and wish to present both data and processed results using the cells 104.
  • 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.
  • 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.
  • SM Security Manager
  • TM Transaction Manager
  • CM Configuration Manager
  • VM Visualization Manager
  • LM Log Manager
  • 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.
  • DMod Display Module
  • MMod Manipulator Module
  • SMod Storage Module
  • 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.
  • 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.
  • 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 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.
  • 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.
  • URI Universal Resource Indicator
  • 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.
  • the text box 109C facilitates entry of data which is text
  • the dotted button 107 facilitates entry of other types of data.
  • 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.
  • 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.
  • Formulator 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.
  • Emailer which is a processor that e-mails data of a set of cells 104
  • Grapher which is a processor that stores a graph in a cell 104 based on the contents stored in a set of cell 104
  • 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.
  • NMod Network Module
  • FMod File Module
  • 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • the user can run a processor for processing the input data in a process 414.
  • 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.
  • 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.
  • 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 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.
  • FIG. 6 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.
  • Cellit 302 re-initializes according to the new settings.
  • the LM 312 writes any action taken by the user in the configuration process and changes, if any, to the parameters into a repository.
  • 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.
  • 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.
  • the SM 304 embeds the security information into the file before the file is saved in the process 416.
  • 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.
  • 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.
  • the VM 310 activates the default helper 322 for processing the selected cell 104 in a step 804.
  • 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.
  • 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.
  • the user first selects a cell 104 and by double clicking on the cell 104, starts the CEditor 320 in a step 902.
  • the VM 310 activates the default CEditor 320 for processing the selected cell 104 in a step 904.
  • 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.
  • the user can import data from a non-native file, such as an Excel (Microsoft) file.
  • 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.
  • 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.
  • 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.
  • 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.
  • a native file to be described with reference to Figure 14
  • 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.
  • the user can do so via a process illustrated by a flowchart in Figure 13.
  • the File Transactor 336 in a next step 134 saves the results in the work that have been processed and presented.
  • a process illustrated by a flowchart in Figure 14 has to be invoked.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a computer such as the general-purpose computer shown in Figure 17.
  • 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.
  • a module can also be a packaged functional hardware unit for use with other components or modules.
  • 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.
  • TM Macintosh
  • TM Sun Sparcstation
  • TM Sun Sparcstation
  • 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.
  • 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.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

A system for acquiring and processing data of a plurality of data types is disclosed. The system includes means for acquiring data of the plurality of data types. The system also includes 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 with 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.

Description

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.

Claims

1. A system for acquiring and processing data of a plurality of data types, including:
means for acquiring data of said plurality of data types;
means for processing data of said plurality of data types; and
means for displaying data of said 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 said means of processing data is displayable in said display area of each cell.
2. The system as in claim 1 , wherein said means for processing data is actuable from a cell in said grid.
3. The system as in claim 1 , wherein said means for acquiring data includes means for editing data having a user-interface by which at least one of data acquisition and editing is performed.
4. The system as in claim 3, wherein said means for editing data provides a user- interface in a display area of a cell.
5. The system as in claim 1 , wherein said means for acquiring data includes means for importing data into said system from a data source.
6. The system as in claim 1, further including means for setting permission for acquiring, processing and displaying data.
7. The system as in claim 1, wherein said means for processing data includes means for presenting data.
8. The system as in claim 7, wherein said means for presenting data includes means for presenting at least one of textual, aural and graphical representations of data.
9. The system as in claim 1, wherein said means for processing data includes means for executing applications for processing data of said plurality of data types.
10. The system as in claim 9, wherein said means for executing applications includes means for executing an e-mail application for sending and retrieving e-mail.
11. A method for acquiring and processing data of a plurality of data types, said method including the steps of:
acquiring data of said plurality of data types;
processing data of said plurality of data types; and
displaying data of said 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 said means of processing data is displayable in said display area of each cell.
12. The method as in claim 11 , further including the step of actuating from a cell in said grid said step of processing data.
13. The method as in claim 11 , wherein said step of acquiring data includes the step of editing data using a user- interface by which at least one of data acquisition and editing is performed.
14. The method as in claim 13, wherein said step of editing data includes the step of providing a user-interface in a display area of a cell.
15. The method as in claim 1 1, wherein said step of acquiring data includes step of importing data into said system from a data source.
16. The method as in claim 11, further including the step of setting permission for acquiring, processing, and displaying data.
17. The method as in claim 11, wherein said step of processing data includes the step of presenting data.
18. The method as in clair 1 17, wherein said step of presenting data includes the step of presenting at least one of textual, aural and graphical representations of data.
19. The method as in claim 11, wherein said step of processing data includes the step of executing applications for processing data of said plurality of data types.
20. The method as in claim 19, wherein said step of executing applications includes the step of executing an e-mail application for sending and retrieving e-mail.
21. A computer program product for acquiring and presenting data of a plurality of data types, including:
a computer usable medium having computer readable program code means embodied in said medium for processing and presenting data of a plurality of data types, said computer program product having:
computer readable program code means for acquiring data of said plurality of data types;
computer readable program code means for processing data of said plurality of data types; and
computer readable program code means for displaying data of said 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 said means of processing data is displayable in said display area of each cell.
22. The product as in claim 21 , further including computer readable program code means for actuating from a cell in said grid said computer readable program code means for processing data.
23. The product as in claim 21 , wherein said computer readable program code means for acquiring data includes computer readable program code means for editing data using a user-interface by which at least one of data acquisition and editing is performed.
24. The product as in claim 23, wherein said computer readable program code means for editing data includes computer readable program code means for providing a user-interface in a display area of a cell.
25. The product as in claim 21 , wherein said computer readable program code means for acquiring data includes computer readable program code means for importing data into said system from a data source.
26. The product as in claim 21, further including computer readable program code means for setting permission for acquiring, processing, and displaying data.
27. The product as in claim 21 , wherein said computer readable program code means for processing data includes the step of presenting data.
28. The product as in claim 27, wherein said computer readable program code means for presenting data includes computer readable program code means for presenting at least one of textual, aural and graphical representations of data.
29. The product as in claim 21, wherein said computer readable program code means for processing data includes computer readable program code means for executing applications for processing data of said plurality of data types.
30. The product as in claim 29, wherein said computer readable program code means for executing applications includes computer readable program code means for executing an e-mail application for sending and retrieving e-mail.
PCT/SG2000/000026 2000-02-17 2000-02-17 Multiple data type processing and presentation grid WO2001061432A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2000228419A AU2000228419A1 (en) 2000-02-17 2000-02-17 Multiple data type processing and presentation grid
PCT/SG2000/000026 WO2001061432A2 (en) 2000-02-17 2000-02-17 Multiple data type processing and presentation grid

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG2000/000026 WO2001061432A2 (en) 2000-02-17 2000-02-17 Multiple data type processing and presentation grid

Publications (2)

Publication Number Publication Date
WO2001061432A2 true WO2001061432A2 (en) 2001-08-23
WO2001061432A3 WO2001061432A3 (en) 2002-05-02

Family

ID=20428792

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2000/000026 WO2001061432A2 (en) 2000-02-17 2000-02-17 Multiple data type processing and presentation grid

Country Status (2)

Country Link
AU (1) AU2000228419A1 (en)
WO (1) WO2001061432A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093907A (en) * 1989-09-25 1992-03-03 Axa Corporation Graphic file directory and spreadsheet
EP0644500A2 (en) * 1993-09-17 1995-03-22 Xerox Corporation Method and system for producing a table image having focus and context areas showing direct and indirect data representations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093907A (en) * 1989-09-25 1992-03-03 Axa Corporation Graphic file directory and spreadsheet
EP0644500A2 (en) * 1993-09-17 1995-03-22 Xerox Corporation Method and system for producing a table image having focus and context areas showing direct and indirect data representations

Also Published As

Publication number Publication date
WO2001061432A3 (en) 2002-05-02
AU2000228419A1 (en) 2001-08-27

Similar Documents

Publication Publication Date Title
CN101454779B (en) Search-based application development framework
US9026901B2 (en) Viewing annotations across multiple applications
US8260859B2 (en) Role-based tag management for collaborative services integrated within a service oriented architecture
US7240067B2 (en) System and methodology for extraction and aggregation of data from dynamic content
US7650335B2 (en) High-level database management system
CN1988536B (en) System and method for managing web content
US9384489B2 (en) Population selection framework, systems and methods
US7685152B2 (en) Method and apparatus for loading data from a spreadsheet to a relational database table
US20020169789A1 (en) System and method for accessing, organizing, and presenting data
EP1100008A2 (en) Internet-based application program interface (api) documentation interface
EP1637993A2 (en) Impact analysis in an object model
US8495510B2 (en) System and method for managing browser extensions
US20080235261A1 (en) Generating a new file using instance information
US6175864B1 (en) Method and apparatus for storyboard scripting of application programs running on a computer system
KR20020039328A (en) Modular method and system for performance database queries
CN101652748A (en) Service program generation technology
EP1949223A2 (en) Dynamic creation of user interfaces for data management and data rendering
WO2007005378A2 (en) Business intelligence incorporated business process management system and method thereof
US20050097457A1 (en) Extensible ordered information within a markup language document
US20020089551A1 (en) Method and apparatus for displaying a thought network from a thought&#39;s perspective
Schmidt et al. Linguistic and architectural requirements for personalized digital libraries
EP1033664A2 (en) Customized retrieval and presentation of information from a database
Yang IFC-compliant design information modelling and sharing
US20130166619A1 (en) Accessing business intelligence workflows
WO2001061432A2 (en) Multiple data type processing and presentation grid

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 10204056

Country of ref document: US

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase