The present invention relates to methods, program products, systems, and processes for representing multidimensional data in a data table.
Information displayed in a data table, such as a worksheet, database table, or chart, may be stored and presented as a fixed number of rows and columns. Such a static two-dimensional representation may comprise redundant or empty cells that waste storage space and require additional screen area for display. In some cases, this problem may even prevent users from being able to simultaneously display all the cells necessary to perform a desired operation.
A first embodiment of the present invention provides a method for representing multidimensionality of a data table, comprising:
one or more processors of a computer system determining a set of a first data units to be combined;
the one or more processors further determining type of multidimension of a second data unit after combination;
the one or more processors combining, in accordance with the type of multidimension, the set of the first data units to generate the second data unit for providing optional multidimensional data presentation based on the type of multidimension,
wherein the type of multidimension includes at least one of horizontal multidimension, vertical multidimension and performing multidimension according to a dimensionality other than two-dimensional dimensionality.
A second embodiment of the present invention system for representing multidimensionality of a data table, comprising:
a first determination apparatus configured to determine a set of a first data units to be combined;
a second determination apparatus configured to determine type of multidimension of a second data unit after combination;
a multidimensional apparatus configured to combine, in accordance with the type of multidimension, the set of the first data units to generate the second data unit for providing optional multidimensional data presentation based on the type of multidimension,
wherein the type of multidimension includes at least one of horizontal multidimension, vertical multidimension and performing multidimension according to a dimensionality other than two-dimensional dimensionality.
Information displayed in a data table, such as a worksheet, database table, or chart, may be stored and presented as a fixed number of rows and columns. Such a static representation may comprise redundant or empty cells that waste storage space and require additional screen area for display. In some cases, this problem may even prevent users from being able to simultaneously display all the cells necessary to perform a desired operation.
Consider, for example, a two-dimensional data table that represents a time sheet for four part-time workers:
Here, it can be seen that the table contains empty, wasted cells whenever a worker does not report time for a particular day. Thus, there are at seven wasted or redundant cells in this Table 1. In real-world cases wherein a table may contain hundreds of rows or columns, the redundant cells may cause serious problems of wasted storage space.
In prior art, there exists a technical solution to this problem by using “data filtering” by way of a drop-down menu. For example, in Table 1, such a technical solution might comprise hiding the four time-entry rows and adding a drop-down menu to the “NAME” column of Table 1 that lets a user reveal each row. If, for example, the drop-down menu displayed choices “John,” “Mary,” “Helen,” and “Steve,” a user could select “John” from the menu in order to display the row showing John's time entries.
Such data-filtering solutions fail to solve the problem of redundant cells and merely mask rows of the data table. If a number of columns in a table is sufficiently large, after data filtering is performed by use of the drop-down menu, drag or scroll may still be needed to display columns of the “John” row that are positioned outside of the screen display range.
These issues become far more complex in data structures that represent data in more than two dimensions, such as a multidimensional array or an array of n-tuples. In such cases, it may be impossible to view all elements of a contiguous set of data elements (or “dataset”) of the data structure, especially when the dataset comprises data elements organized into more than two dimensions. Examples herein will generally describe embodiments that comprise two-dimensional representations, but these examples should not be construed to limit embodiments to two-dimensional data structures.
Considering the above existing problems, one of objects of the present invention is to provide a method for representing data elements of a multidimensional data table so as to eliminate redundant cells. Another object of the present invention is to provide a method for avoiding an unnecessary display of excess rows or columns that may make it more efficient or less cumbersome to view or manipulate the data table.
In descriptions herein, we generally use the term “data unit” to identify a distinct element of data, such as a text string, a table entry, or a worksheet cell. This should not be construed to limit embodiments of the present invention. Examples that comprise references to cells of a two-dimensional spreadsheet worksheet should not be construed to limit embodiments of the present invention to worksheets or to two-dimensional data structures.
In descriptions herein, we apply the term “multidimensionality” to a data unit or cell to mean that the data unit or cell represents data that may be represented by an n-dimensional data structure. Two-dimensional multidimensionality, for example, implies data that may be represented as one or more rows and columns of a two-dimensional data structure, such as a two-dimensional table or worksheet. In its simplest form, a multidimensional data unit or cell characterized by horizontal multidimensionality means that the cell may be expanded to represent a horizontal row of data units or cells. Similarly, a multidimensional data unit or cell characterized by vertical multidimensionality means that the cell may be expanded to represent a vertical column of data units or cells.
Embodiments of the present invention may be applied to data structures that have greater than two-dimensional dimensionality, such as an array of 3-tuples, or a two-dimensional table that comprises cells that each, in turn, comprise an n-tuple data structure. Multidimensional data units that represent sets of data units of such higher-dimensional data structures may themselves be characterized as having “higher-level” multidimensionality.
By convention, data units or cells of a conventional two-dimensional table or worksheet are not considered multidimensional because each such data unit or cell contains a single element of data. When a set of such cells or units are combined into and represented by a single cell or unit, we refer to that single cell or unit as being multidimensional, for reasons described above.
In some cases, multidimensional data units or cells may be nested, optionally by means of multiple applications of an embodiment of the present invention. In such cases, the level of multidimensionality of the nested cell may be identified as a function, such as a sum or product, of the multidimensionality of each nested level of data structure comprised by the nested unit or cell. In one example, a multidimensional cell might comprise a first row of cells, each cell of the first row of cells might comprise a column of cells, and each cell of the column of cells might comprise a second row of cells.
According to one aspect of the invention, there is provided a method for representing multidimensionality of a data table, comprising: determining a set of a first data units to be combined; determining type of multidimension of a second data unit after combination; combining, in accordance with the type of multidimension, the set of the first data units to generate the second data unit for providing optional multidimensional data presentation based on the type of multidimension, wherein the type of multidimension includes at least one of horizontal multidimension, vertical multiple dimension and performing multidimension according to a dimensionality other than two-dimensional dimensionality.
According to another aspect of the invention, there is provided a computer program product for multidimension of a data table, comprising: a first determination apparatus configured to determine a set of a first data units to be combined; a second determination apparatus configured to determine type of multidimension of a second data unit after combination; a multidimensional apparatus configured to combine, in accordance with the type of multidimension, the set of the first data units to generate the second data unit for providing optional multidimensional data presentation based on the type of multidimension, wherein the type of multidimension includes at least one of horizontal multidimension, vertical multidimension and performing multidimension according to a dimensionality other than two-dimensional dimensionality.
According to another aspect of the invention, there is provided a system for multidimension of a data table, comprising: a first determination apparatus configured to determine a set of a first data units to be combined; a second determination apparatus configured to determine type of multidimension of a second data unit after combination; a multidimensional apparatus configured to combine, in accordance with the type of multidimension, the set of the first data units to generate the second data unit for providing optional multidimensional data presentation based on the type of multidimension, wherein the type of multidimension includes at least one of horizontal multidimension, vertical multidimension and performing multidimension according to a dimensionality other than two-dimensional dimensionality.
The method or system provided according to the present invention can eliminate redundant cells and avoid excessive rows or columns to improve user's experience when the user uses the data table.
Some preferable embodiments will be described in more detail with reference to the accompanying drawings, in which the preferable embodiments of the present disclosure have been illustrated. However, the present disclosure can be implemented in various manners, and thus should not be construed to be limited to the embodiments disclosed herein. On the contrary, those embodiments are provided for the thorough and complete understanding of the present disclosure, and completely conveying the scope of the present disclosure to those skilled in the art.
As will be appreciated by those skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.”
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
In
Hardware data storage devices 111 may include, but are not limited to, magnetic tape drives, fixed or removable hard disks, optical discs, storage-equipped mobile devices, and solid-state random-access or read-only storage devices. I/O devices may comprise, but are not limited to: input devices 113, such as keyboards, scanners, handheld telecommunications devices, touch-sensitive displays, tablets, biometric readers, joysticks, trackballs, or computer mice; and output devices 115, which may comprise, but are not limited to printers, plotters, tablets, mobile telephones, displays, or sound-producing devices. Data storage devices 111, input devices 113, and output devices 115 may be located either locally or at remote sites from which they are connected to I/O Interface 109 through a network interface.
Processor 103 may also be connected to one or more memory devices 105, which may include, but are not limited to, Dynamic RAM (DRAM), Static RAM (SRAM), Programmable Read-Only Memory (PROM), Field-Programmable Gate Arrays (FPGA), Secure Digital memory cards, SIM cards, or other types of memory devices.
At least one memory device 105 contains stored computer program code 107, which is a computer program that comprises computer-executable instructions. The stored computer program code includes a program that implements a method for representing multidimensionality of a data table in accordance with embodiments of the present invention, and may implement other embodiments described in this specification, including the methods illustrated in
Thus the present invention discloses a process for supporting computer infrastructure, integrating, hosting, maintaining, and deploying computer-readable code into the computer system 101, wherein the code in combination with the computer system 101 is capable of performing a method for representing multidimensionality of a data table.
Any of the components of the present invention could be created, integrated, hosted, maintained, deployed, managed, serviced, supported, etc. by a service provider who offers to facilitate a method for representing multidimensionality of a data table. Thus the present invention discloses a process for deploying or integrating computing infrastructure, comprising integrating computer-readable code into the computer system 101, wherein the code in combination with the computer system 101 is capable of performing a method for representing multidimensionality of a data table.
One or more data storage units 111 (or one or more additional memory devices not shown in
While it is understood that program code 107 for cross-retail marketing based on analytics of multichannel clickstream data may be deployed by manually loading the program code 107 directly into client, server, and proxy computers (not shown) by loading the program code 107 into a computer-readable storage medium (e.g., computer data storage device 111), program code 107 may also be automatically or semi-automatically deployed into computer system 101 by sending program code 107 to a central server (e.g., computer system 101) or to a group of central servers. Program code 107 may then be downloaded into client computers (not shown) that will execute program code 107.
Alternatively, program code 107 may be sent directly to the client computer via e-mail. Program code 107 may then either be detached to a directory on the client computer or loaded into a directory on the client computer by an e-mail option that selects a program that detaches program code 107 into the directory.
Another alternative is to send program code 107 directly to a directory on the client computer hard drive. If proxy servers are configured, the process selects the proxy server code, determines on which computers to place the proxy servers' code, transmits the proxy server code, and then installs the proxy server code on the proxy computer. Program code 107 is then transmitted to the proxy server and stored on the proxy server.
In one embodiment, program code 107 for cross-retail marketing based on analytics of multichannel clickstream data is integrated into a client, server and network environment by providing for program code 107 to coexist with software applications (not shown), operating systems (not shown) and network operating systems software (not shown) and then installing program code 107 on the clients and servers in the environment where program code 107 will function.
The first step of the aforementioned integration of code included in program code 107 is to identify any software on the clients and servers, including the network operating system (not shown), where program code 107 will be deployed that are required by program code 107 or that work in conjunction with program code 107. This identified software includes the network operating system, where the network operating system comprises software that enhances a basic operating system by adding networking features. Next, the software applications and version numbers are identified and compared to a list of software applications and correct version numbers that have been tested to work with program code 107. A software application that is missing or that does not match a correct version number is upgraded to the correct version.
A program instruction that passes parameters from program code 107 to a software application is checked to ensure that the instruction's parameter list matches a parameter list required by the program code 107. Conversely, a parameter passed by the software application to program code 107 is checked to ensure that the parameter matches a parameter required by program code 107. The client and server operating systems, including the network operating systems, are identified and compared to a list of operating systems, version numbers, and network software programs that have been tested to work with program code 107. An operating system, version number, or network software program that does not match an entry of the list of tested operating systems and version numbers is upgraded to the listed level on the client computers and upgraded to the listed level on the server computers.
After ensuring that the software, where program code 107 is to be deployed, is at a correct version level that has been tested to work with program code 107, the integration is completed by installing program code 107 on the clients and servers.
Embodiments of the present invention may be implemented as a method performed by a processor of a computer system, as a computer program product, as a computer system, or as a processor-performed process or service for supporting computer infrastructure.
Hereinafter,
The method shown in
The example of
In
With reference to
Hereinafter, the method shown in
According to still another embodiment, the horizontal multidimension and the vertical multidimension may be overlapped or combined and, for example, the horizontal multidimensioning is firstly performed on a first data-unit set and then the vertical multidimensioning is performed on the resulting second data-unit set, or the vertical multidimension is firstly performed on a first data-unit set and then the horizontal multidimension is performed on the resulting second data-unit set.
Taking
In step 203, in accordance with the multidimension type identified in step 201, data units (cells) comprised by the first data-unit set are combined to generate a second data unit that is used to provide an optional multidimensional data presentation based on the multidimension type.
According to still another embodiment, the second data unit is a group of cells generated by combining the first data-unit set. Each of the cells of data column D in
For example, when a user clicks the triangle symbol of column D of data row 2 (labeled“Tracy”), the data values presented in sequence are “4, 2”, as shown in
It should be pointed out that the triangle symbol in
Although only the example of combining the first cell set based on the two multidimension types (horizontal and the vertical) is shown in
As can be seen through the method shown in the above
Further, the second data unit shown in
In the second data unit of “Tracy”, the optional multidimensional data presentation based on a multidimension type of a vertical dimensionality is provided through a downward triangular symbol. That is, in response to receiving a request to switch the data dimensionality presented by the second data unit, the data dimensionality presented by the second data unit is switched.
For example, in response to a user's click on the triangular symbol in the second data unit of “Tracy”, the data dimensionality presented by the second data unit (David, John, and Tracy) are switched in sequence. As can be seen in
It should be pointed out herein that, in some cases (such as in the example of
Taking
In another embodiment of the invention, determining that there is an associated relationship between the first data-unit set and other data units includes: determining the first data-unit set is a source data unit, and determining an object data unit associated with the source data unit. This can be more obviously seen from the examples of
As shown in
After it is determined from
It should be emphasized that, although the process of determining the associated relationship between the first data unit and other data units as shown in
According to still another embodiment of the invention, it is possible to first perform one kind of multidimension process on a first data-unit set, and then to determine a associated relationship between the first data-unit set and other data units.
The respective steps of the method shown in
In one embodiment of the invention, in order to restore the original conventional two-dimensional data table or generate the two-dimensional data table, an expansion operation can be performed on the multidimensional data table after being subjected to the multidimension process. That is, in response to receiving a request to expand the multidimensional second data unit, the second data unit is expanded to the first data-unit set.
As shown in
In the example of
The implementation of the Expand command shown in
In a further embodiment, a multidimensionality data label may be utilized to uniquely identify either or both of the data currently presented and the not currently presented in the second data unit. In a conventional two-dimensional data-table mode, marking a cell may be expressed as, for example, a designation of the form “C2,” the meaning of which is a cell positioned in column C and row 2. But in a data table that has been subjected to the multidimension process, this marking manner is not sufficient to identify a specific position and dimensionality of a cell.
In
Although the examples of
The embodiments described above have been described with reference to the appended figures. It is known to those skilled in the art that these and other embodiments of the present invention may be implemented in software or in hardware, or in a combination of software and hardware.
It is further known to those skilled in the art that, by implementing the respective steps of the above method in software, hardware, or a combination thereof, a system for representing multidimensionality of a data table in accordance with the present invention may be provided. Such embodiments may comprise several apparatuses or modules configured to perform corresponding steps. Those skilled in the art can understand how to write a program to achieve operations executed by the apparatus and module through reading the specification. Since the system and the method are based on the same inventive concept, the same or corresponding implementation details mayalso be applied to an apparatus corresponding to the above method, and since it has been fully and entirely described above, it will no longer be repeatedly described hereinafter for purposes of readability.
In other embodiments of the present invention, the system 700 further comprises a third determination apparatus configured to determine whether there is an associated relationship between the first data-unit set and the other data units, and may further comprise an associated apparatus configured to change the data presented by the other data units in associated way in response to change in data dimensionality presented by the second data unit.
According to another embodiment of the invention, the third determination apparatus in system 700 is configured to determine that the first data-unit set is a source data unit, and determine a target data unit associated with the source data unit.
In another embodiment of the invention, the system 700 further includes a switch apparatus configured to switch the data dimensionality presented by second data unit in response to receiving a request of switching the data dimensionality presented by the second data unit.
According to yet another embodiment of the invention, the system 700 further includes an expansion apparatus configured to expand the second data unit to the first data-unit set in response to receiving a request of expanding the multidimensional second data unit.
In another embodiment of the invention, the system 700 further includes an identification apparatus configured to uniquely identify, with a label of the multidimensional data, currently presented data and data that is not currently presented in the second data unit.
According to still another embodiment of the invention, the system 700 further includes a fourth determination apparatus configured to determine a label of combined second data unit.
In such embodiments, the third determination apparatus, the switching apparatus, the expansion apparatus, the identification apparatus and the fourth determination apparatus may respectively correspond to steps added to the process described in
The flowcharts and block diagrams of
Descriptions of the various embodiments of the present invention have been presented here for purposes of illustration, but are not intended to be exhaustive or to limit the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
While particular embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.
Number | Date | Country | Kind |
---|---|---|---|
201310631510.4 | Nov 2013 | CN | national |