Patent Publication Number: US-10318545-B1

Title: Dataset visualization system and method

Description:
RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 62/818,191 filed Jun. 17, 2015, the content of which is incorporated by this reference in its entirety for all purposes as if fully set forth herein. 
    
    
     TECHNICAL FIELD 
     The present invention relates generally to the field of data visualization. More particularly, the invention concerns systems, methods and software programs to aid users in rapidly and efficiently visualizing large sets of raw data. 
     BACKGROUND 
     Large sets of interrelating data can be challenging for people to visualize. Prior expedients in this field are lacking in features that allow a viewer to easily adapt and interact with the data visualization, so as to view use-selected relationships between data fields and subsets of data elements. Moreover, conventional data visualization systems and methods tend to be deficient in interactive visualization features that allow the user to easily set custom data filtration parameters. 
     SUMMARY 
     Certain deficiencies of the prior art may be overcome by the provision of one or more embodiments of a dataset visualization system, method and program code in accordance with the present invention. 
     Certain exemplary embodiments of the present invention may comprise one or more software programs configured to enable large datasets to be rapidly visualized within a real-time graphics engine environment via a Web Browser-based environment or optionally deployed as a manually installed desktop application on an operating system. In preferred embodiments, queries to the source data sets can be, for example, selected, sorted, grouped, negated, filtered in rapid fashion and Visualized in a real-time. 
     Visualizations can be engaged and acted upon to dive into subsequent layers of sorted and grouped data sets. Engaged and acted upon data sets can trigger alternate visualization views of the primary datasets in secondary and tertiary visualization interfaces and again acted upon or engaged to trigger more filtered datasets. Additionally, the visualization interfaces may be configured to act as an interface to update authoritative datasets based on read/write access to these datasets. Alternatively, systems in accordance with the present invention may be designed to snapshot and track changes to these authoritative datasets to spot discrepancies over time. Thus a user can peel the visualized datasets like layers of an onion and view who changed these datasets, and how, from within the system. 
     In particular preferred embodiments, the user can visually and interactively (e.g., via mouse movement or click) select or draw geospatial, spatial boundaries or fences on these visualizations which can be used by the system and method to drive grouping and filtering processes in all interfaces, such as grouping, filtering and visualization interfaces. The user can drive into each visualization until they reach the actual database entry ID which can be linked back directly to the authoritative data source. 
     Further, in certain embodiments, secondary and tertiary visualizations can be by way of geospatial-based mapping applications such as Google Maps or Bing Maps, and various forms of 2D and 3D datasets such as spacecraft, aircraft, automobiles, ships, heavy earth moving equipment, or the like. 
     In particular preferred embodiments, users can save grouping, filtering and other preset filtering methods for later use or to share with other users within the same virtual environment. For example, user A can share presets with user B or with groups of users. User B can mutate or modify user A&#39;s shared preset and share the mutated preset with the user A or with the group. 
     In certain preferred embodiments of the system and method, datasets can be dynamically ingested, linked and imported into a clustering and aggregation engine. The engine may be data-agnostic and can be static or live and the raw data may come from a variety of applications and databases such as MySQL, S3, noSql, PostgreSql, Excel, Sql-lite. In addition, web-service-based API such as Facebook and twitter feeds by be used. 
     In particular preferred embodiments, resulting visualization queries, filtering and groupings of data can be exported in various formats such as PDF, Excel and other portable document file formats. Visualizations can also be exported into movie formats such as QuickTime or H264 file formats for presentations, and the like. 
     Users can either interface with traditional keyboard and mouse or with virtual reality based headgear systems and methods such as Oculus Rift or Microsoft Surface Devices or holo-rooms with gesture based control devices such as the Myo. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Further advantages of the present invention may become apparent to those skilled in the art with the benefit of the following detailed description of the preferred embodiments and upon reference to the accompanying drawings in which: 
         FIG. 1  is a diagrammatic view of one example embodiment of a web browser on a user computer display, illustrating various potential data selection and visualization interfaces in accordance with certain aspects of the invention; 
         FIG. 2  is a diagrammatic view illustrating one example of the data flow interaction between grouping, filtering and options interfaces and visualization interfaces; 
         FIG. 2A  is a diagrammatic view illustrating one example of a grouping interface; 
         FIG. 2B  is a diagrammatic view illustrating one example of a filtering interface; 
         FIG. 2C  is a diagrammatic view illustrating one example of an options interface; 
         FIG. 2D  is a diagrammatic view illustrating one example of a pulldown menu in a grouping interface, by which a user may select a data field of a dataset to define a grouping field; 
         FIG. 2E  is a diagrammatic view illustrating one example of a visualize command interface; 
         FIG. 3  is a diagrammatic view illustrating how the graphics in the visualization interfaces evolve based upon sequential user selection of particular spheres in the primary visualization interface, thereby allowing the user to interactively and visually drill down into relational data of particular interest; 
         FIG. 4  is a diagrammatic view illustrating how the graphics in the visualization interfaces evolve based upon user movement of a time slider to select a new data time period, thereby allowing the user to interactively and visually limit the visualized data to the time period of particular interest; 
         FIG. 5  is a diagrammatic system view illustrating an example of the potential interactive aspects of one example of a dataset visualization system; 
         FIG. 6  is a diagrammatic example of a dataset including a plurality of data fields, wherein each data field has respective data entries therein, the data entries of one of the data fields has a date format, and data entries of at least one of the data fields are geolocations; and 
         FIG. 7A  is a diagrammatic block diagram illustrating one example of a method of visualizing one or more datasets; and 
         FIG. 7B  is a diagrammatic block diagram illustrating example of additional optional steps of a method of visualizing one or more datasets. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring now to the drawings, like reference numerals designate identical or corresponding features throughout the several views. Described herein are various preferred embodiments, of a system, method and software programs to facilitate user visualization of data in datasets. 
       FIG. 1  depicts one non-limiting example of a user computer display  104  associated with a user computing device. A user computing device may be, for example, a desktop computer  106   a , a VR headset  106   b , a laptop computer  106   c , a tablet computer  106   d , a smart phone or the like. The view in  FIG. 1  illustrates how the various interfaces may be configured to relate to one another within the broader visualization. The application interfaces may be displayed, for example, within a web browser interface  108 . The core user experience typically occurs by way of with the primary visualization interface  110 . A grouping interface  116  and filtering interface  118  may be provided to drive what is then visualized in an optional secondary visualization interface  112  and tertiary visualization interface  114 . Filter presets may be accessible by way of a visualization command interface  120 . An options interface  122  may be provided to allow a user to, for example, apply weighting to particular data fields. 
       FIG. 2  shows one non-limiting example of how the grouping interface  116  and filtering interface  118  may drive the visualization interfaces. From the grouping tab  124 , the database schema  126  may be queried and presented in, for example, a pull-down menu  128  from which the user can select various columnar data fields. With reference to  FIG. 2A , the user can continue to layer these fields on top of one another. A vendor field may be, for example, hierarchically arranged above of a country field, state field, city field and zip code field. Each field typically represents a unique group or dataset which can then be sorted and filtered within each group of data selected. With reference to  FIG. 2E , once the data fields and groups are selected, pressing a visualize button  130  may, for example, initiate a visualization query and compute engine, the results of which will then be displayed in the visualization interfaces. With reference to  FIG. 2A , in certain preferred embodiments, the user can change the order of the field groupings by, for example, simply dragging them on top of each other. The user may also search within each selected field grouping for specific entries within that dataset. This may be referred to as a “needle in a haystack” search. The user may also elect to negate certain entries with in the field by, for example, selecting the entry  132  and inverting the selection. In preferred embodiments, the primary visualization interface  110  may be the key driver for visualizing the dataset selected from the grouping interface  116  and filtering interface  118 . Engaging or acting upon data inside of this window will modify various other interfaces such as, for example, the secondary visualization interface  112  and tertiary visualization interface  114 . The options interface  122  may be provided to allow the user to set certain options such as weighting the dataset by number of entries or currency as well as other various weights dependent upon the dataset being visualized. 
       FIG. 3  shows a non-limiting example of how the primary visualization interface may appear after a dataset  106  is selected from the database schema  126  by way of the grouping interface  116  and filtering interface  118  and the visualize button  130  is pressed. Illustrated in this figure are sequential revisions of the visualization interfaces based on the user&#39;s selected movement from a top-tier view of the dataset  134 , to an intermediate-tier view of the dataset  136 , to a lowest-tier view of the dataset  138 . A sphere of influence model may be provided to calculate and display the dataset. Each sphere may represent its dataset based the size of the sphere. Each sphere  140  can be weighted based upon many different variables in a data field, such as number of entries or currency values such as dollars. When the user selects a sphere  140 , the visualization engine may then be configured to delve into that selected dataset and display the next grouped value. Referring to  FIG. 3  at the top-tier view  134 , it is apparent that the vendor is on top, and then country. The sphere of influence corresponds to these groupings of data. The selected datasets may then drive the secondary and tertiary visualization interfaces. The hive view  142  within the primary visualization interface may be configured to be the lowest level of grouping the user can get to. This hive view  142  may represent, for example, the actual authoritative data layer which links back to the dataset entry point or the data that was used to create the actual dataset the user is visualizing. As is apparent, each level drives a more detailed or magnified view of the data section set or that the user is narrowing down on. This is not necessarily always the case, but represents one of the many ways a user (or groups of users) can visualize large datasets using the present teachings. 
     Illustrated in  FIG. 4  is one non-limiting example of a temporal (or time-based) visualization layered on top of a sphere of influence model. On the left side of the figure is a primary visualization interface  110  with a user-adjustable time slider  144  in a first position. On the right side of the figure is the primary visualization interface  110  in which the graphic representation of the dataset has changed responsive to a change in position of the time slider  144 . The ability to visualize temporal on top of thematic datasets provides unique advantages to the user. For example, the user can play back time and see how the data grows over a period time. The user can also selectively isolate and filter out various datasets, and view how they grow over time in context of the filtered dataset. 
       FIG. 5  illustrates non-limiting examples of collaboration aspects of the presently-described system  146 , method and software application. In certain embodiments, the application may be operated, at least in part, in a cloud  148  in a shared environment with a graphics visualization engine that resembles, for example, a multiplayer online game. With such implementations, users may have the ability to share and view visualizations in real-time across the world. This means that users can communicate through various methods and interact with shared datasets. For example, user A (shown at  150   a ) can share a preset or a visualization they have been working on with user B (shown at  150   b ) or user C (shown at  150   c ). User A is shown with a virtual reality headset  106   b  on. User B is shown at their desktop console  106   a . User C with a portable device  106   c  such as a touch based tablet or laptop, user D with a tablet, and user E with a gesture control device  152  on their wrist or hand. 
     Embodiments of a non-transitory computer readable medium may store computer-readable instructions for producing the visualization of data on a user computer display, wherein execution of the computer-readable instructions is configured to cause one or more computer processors to perform one or more steps. Embodiments of such steps are illustrated in  FIGS. 7A and 7B . Referring to block  202 , one or more datasets  100  may be retrieved from a database. The dataset  100  may include a plurality of data fields (e.g.,  102   a - 102   f  in  FIG. 6 ), each data field having respective data entries therein. The data entries of one of the data fields may have a date, time or date-time format (see, for example, field  102   f  in  FIG. 6 ). Referring to block  204 , the user may be enabled to select a first said data field to define a grouping field, for example, by way of a grouping interface  116  or the like. At block  206 , the user may be enabled the user to select a second said data field to define a weight field, for example, by way of an options interface  122  or the like. Referring to block  208 , a data subset weight corresponding to each of the grouping field data entries may be calculated. In particular preferred embodiments, each data subset weight may be based on either: (a) the number of data entries in the weight field that relate to the respective grouping field data entry, or (b) the value sum of the data entries in the weight field that relate to the respective grouping field data entry. Referring to block  210 , a primary visualization interface may be presented on a user computer display  104 . The primary visualization interface  110  may include a packed collection of spheres  140 , each of the spheres representing a respective grouping field data entry. The spheres in a given collection have relative sizes with respect to one another based upon their respective data subset weights. The primary visualization interface  110  may also include a time histogram element  154  including a time slider  144  adjustable by the user to select a data time period. Such adjustment may preferably cause a revision of the packed collection based on the selected data time period. As illustrated, for example in  FIG. 4 , in certain embodiments of the non-transitory computer-readable medium, the time histogram element  154  may at least partially circumferentially envelope the packed collection of spheres. 
     In particular embodiments of the non-transitory computer-readable medium, the steps performed by the one or more processors may further comprise providing a grouping interface  116  configured to enable the user to select additional data fields to define respective additional grouping fields, wherein the grouping fields are organized hierarchically from highest to lowest. In addition, the user may be enabled to select a said sphere  140 , thereby causing the collection of spheres to update such that the updated spheres represent data elements in the next lowest grouping field that relate to the data entry of the selected sphere. 
     In certain embodiments of the non-transitory computer-readable medium, the data entries of at least one of the data fields may be geolocations. See, for example, data fields  102   b  and  102   c  in  FIG. 6 . In such embodiment, the steps may further comprise providing a filtering interface  118  on the user computer display  104 . Referring to  FIG. 2B  for illustration, the filtering interface  118  may be configured to enable the user to set a geospatial perimeter  156  such that the data subset weights will only be based on data entries in the weight field that relate to geolocations within the set geospatial perimeter. 
     In embodiments of the non-transitory computer-readable medium in which the data entries of at least one of the data fields are geolocations, the steps performed by the one or more processors may further comprise presenting a secondary visualization interface  112  on the user computer display. As illustrated in  FIG. 1 , the secondary visualization interface  112  may include, for example, an interactive graphic representation of a globe on which the user can select or draw a closed contour shape. The geospatial perimeter may be therefore set by the selected or drawn closed contour shape. 
     In particular embodiments of the non-transitory computer-readable medium the data entries of at least one of the data fields may be components of a product  162 . With reference to block  216 , in such embodiments, the steps performed may further comprise providing a filtering interface  118  on the user computer display  104 . The filtering interface may be configured to enable the user to select a subsystem encompassing a subset of the components  160  such that the data subset weights will only be based on data entries in the weight field that relate to the components  160  within the selected subsystem  158 . With reference to block  218 , in such embodiments, the steps may further comprise presenting a tertiary visualization interface  114  on the user computer display  104 . The tertiary visualization interface may include an interactive graphic representation of the product  162  by which the user can select a subsystem  158 . The product  162  could be any manufactured object, whether simple or complex, including a consumer device, a power tool, a spacecraft, an aircraft, a watercraft, an automobile, or the like. 
     With reference again to  FIGS. 7A and 7B , a method of visualizing one or more datasets may comprise one or more steps. Referring to block  202 , one or more datasets  100  may be retrieved from a database. Referring to  FIG. 6  for illustration, the one or more datasets may include a plurality of data fields (e.g., columns  102   a - 102   f ). Each data field may have respective data entries therein (e.g., the data entered within the cells under the respective fields). The data entries of one of the data fields may have a date, time or date-time format. See, for example, the last data field  102   f.    
     Referring to block  204 , a grouping interface  116  may be provided for display on a user computing device  104 , wherein the grouping interface enables a user to select a first said data field to define a grouping field. Referring to block  206 , an options interface or the equivalent may be provided for display on the user computing device, wherein the options interface enables the user to select a second said data field to define a weight field. 
     Referring to block  208 , a data subset weight corresponding to each of the grouping field data entries may be calculated. Each data subset weight may preferably be based on either: (a) the number of data entries in the weight field that relate to the respective grouping field data entry, or (b) the value sum of the data entries in the weight field that relate to the respective grouping field data entry. The latter might apply, for example, when the weight field contains data entries in dollar amounts that can be summed, such as the contractual obligation data field shown in  FIG. 6 . 
     Referring to block  210 , a primary visualization interface may be provided for display on a user computer device. The primary visualization interface may include a packed collection of spheres. Each of the spheres may preferably represent a respective grouping field data entry. The spheres may have relative sizes with respect to one another based upon their respective data subset weights. The primary visualization interface may also include a time histogram element. The time histogram element may include, for example, a time slider (or the equivalent) adjustable by the user to select a data time period, wherein said adjustment causes a revision (e.g., updating) of the packed collection based on the selected data time period. The time histogram element may at least partially circumferentially envelope the packed collection of spheres. 
     In particular embodiments of a method of visualizing one or more datasets, the grouping interface may be configured to enable the user to select additional data fields to define respective additional grouping fields. In such embodiments, the grouping fields may preferably be organized hierarchically from highest to lowest. In such embodiments, the user may be enabled to select (e.g., by mouse movement or click) a said sphere, thereby causing the collection of spheres to update such that the updated spheres represent data elements in the next lowest grouping field that relate to the data entry of the selected sphere. 
     The data entries of at least one of the data fields may be geolocations. With reference to block  212 , in such cases, the method may further comprise providing a filtering interface for display on the user computer device. The filtering interface may be configured to enable the user to set a geospatial perimeter such that the data subset weights will only be based on data entries in the weight field that relate to geolocations within the set geospatial perimeter. Moreover, referring to block  214 , a secondary visualization interface may be presented for display on the user computer device. The secondary visualization interface  112  may include an interactive graphic representation of a globe on which the user can select or draw a closed contour shape (e.g., a rectangle, circle, etc.). The geospatial perimeter  156  may therefore be set by the selected or drawn closed contour shape. 
     The data entries of at least one of the data fields may be components of a product (e.g., a jet engine, structural component or instrument of a particular aircraft). With reference to block  216 , in such cases, the method may further comprise providing a filtering interface for display on the user computer device. The filtering interface  118  may be configured to enable the user to select a subsystem encompassing a subset of the components such that the data subset weights will only be based on data entries in the weight field that relate to the components within the selected subsystem. Referring to block  218 , a tertiary visualization interface may be presented for display on the user computer device. The tertiary visualization interface may include, for example an interactive graphic representation (e.g., an engineering drawing or other technical view) of the product by which the user can select a said subsystem. 
     While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention.