Spreadsheets are computer programs that display multiple cells, typically as a grid of rows and columns. The cells may accept and display data in the form of numeric values or text. Alternatively, cells may display results of functions that perform calculations using the contents of one or more other cells as input. Cells that contain functions typically update automatically when input from another cell is changed. Additionally, spreadsheets may allow graphs and charts or other visualizations to be created from data of the spreadsheet. MICROSOFT EXCEL (TRADEMARK) is one spreadsheet with these capabilities. Spreadsheets, however, are not capable of providing visualizations of complexly related data.
Databases, such as MICROSOFT ACCESS (TRADEMARK), house collections of data, much of which is classified according to a particular scheme or that is otherwise related to one another. Databases may be queried by a user when there is a desire to identify particular database content, or relationships among database content. Output from a database query, however, typically is reduced to a tabular report or other type of visualization that is incapable of illustrating multiple relationships within the data.
A method and/or a computer readable medium for providing visualizations that show multiple relationships within the data that is being visualized. Databases are often used to store and/or access data that is related in a complex manner, meaning that any datum or class of data may be related in multiple ways to other data. One example of such a database is MICROSOFT ACCESS (TRADEMARK). The visualizations, according to many embodiments, may be nested to allow a user to visualize the complex relationships. Various embodiments may additionally or alternatively include features normally associated with spreadsheets, such as MICROSOFT EXCEL (TRADEMARK), including but not limited to in situ calculations, sorting/filtering/aggregating functions, in situ transformations, and auto-naming among other features).
According to one aspect, a method is disclosed for displaying complex relationships among data. The method comprises selecting a first subset, a second subject, and a third subset of data from a database. Two or more relationships are identified among the first, second, and third subsets of data. One or more visualizations that display the two or more relationships among the first, second, and third subsets of data are then provided.
The foregoing is a non-limiting summary of the invention, which is defined by the attached claims.
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
a-1c are views of partial screen shots that show a table of movies and corresponding data for each movie, icons representative of movies that have been chosen from a table, and a matrix-like visualization of various relationships associated with the movies chosen from the table and of different types of awards that each of the movies has been associated with.
a-8d show a plurality of partial screen shots depicting data that may be used to build a composite visual, like that shown in
An aspect of the invention relates to a method and to a computer readable medium for providing visualizations of complexly related data. Data may be housed in a database like structure. Each datum within the data may be related to multiple other data in various ways. Methods of the invention include identifying a first subset of data from the database, and then two or more additional types of data that are associated with each datum in the first subset. Relationships between data of the first subset, and subsets associated with each of the two or more additional types of data may then be identified. One or more visualizations are then provided that illustrate the relationships among the subsets of data.
According to some aspects of the invention, features normally associated with databases and spreadsheets are combined with the additional ability to provided visualizations of complexly related data. Databases typically allow for the storage and access of complexly related data. Spreadsheets allow for situ calculations of data, sorting/filtering/aggregation of data, and in situ transformations of data, among other functions. Any of these features or others normally associated with spreadsheets or databases may be combined with the ability to display visualizations of complexly related data.
Aspects of the invention may additionally relate to the analysis of complexly related data. According to some embodiments, data is identified that is similar to that of the first subset of data and that has similar relationships to associated data among other data. This analysis may include defining scalar values associated with the first subset of data that a user has chosen, and then identifying other relationships within the data that include similar values. This analysis may also include defining vector values, and then performing dot product or cross product analysis with other relationships among the data. Additionally or alternatively, constraints may be defined to focus the analysis to particular types of relationships among the data.
Turn now to the figures, and initially
b is a workspace showing icons representative of movies that have been chosen from the table of
c shows a matrix-like visualization of various relationships associated is with the movies that were chosen from the table of
The icons that represent movies in
It is to be appreciated that although various embodiments of the invention are described herein with respect to an application that involves cinema, that other applications and/or embodiments are also possible and are contemplated. The application relating to cinema is merely exemplary.
A nested visualization that includes data associated with the movie “The Godfather” is shown in an expanded state in
Different types of visualizations may be used to show the same data and/or relationships among data, even within the same application. By way of example,
Various embodiments of the document canvas may also be capable of performing calculations on data. In the embodiment of
Functions are not limited to outputting scalar values. By way of example,
Calculations may, additionally, be performed on function results. One example of such a calculation is shown in
Multiple views may be presented that provide a user with various visualizations that together provide input for another visualization.
A document canvas may include features to edit visualizations.
The inventors have appreciated that existing visualizations do not provide sufficiently useful information about complexly related data. As a result, the inventors have appreciated that alternative visualizations may improve a database or spreadsheet user's experience.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.
The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or conventional programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
In this respect, the invention may be embodied as a computer readable medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, etc.) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
The terms “program” or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including”, “comprising”, or “having”, “containing”, “involving”, and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.