An interactive interface for data analysis and report generation.
The interactive data analysis system simplifies data visualization and integration, allowing non-specialist users to generate insightful reports by generating and displaying relevant data insights through dynamic panels.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- TABLEAU SOFTWARE INC
- Filing Date
- 2024-10-04
- Publication Date
- 2026-05-08
AI Technical Summary
Organizations face challenges in effectively utilizing vast amounts of data due to the complexity of data visualization and integration, requiring skilled analysts and leading to inefficient generation of insights and reports.
An interactive data analysis system that generates insight items based on primary visualizations, employs evaluation models to identify and display relevant insights, and allows for dynamic visualization and report generation through panels.
Facilitates efficient data analysis and report generation by simplifying data visualization and integration, enabling non-specialist users to derive meaningful insights and reports.
Smart Images

Figure 0007855658000001 
Figure 0007855658000002 
Figure 0007855658000003
Abstract
Description
Technical Field
[0001] The present invention generally relates to data analysis, and more particularly, but not limited to, interactive data analysis.
Background Art
[0002] Organizations are generating and collecting increasing amounts of data. This data can be associated with different parts of an organization, such as consumer activities, manufacturing activities, customer service, server logs, etc. For various reasons, it can be inconvenient for such organizations to effectively utilize their vast collections of data. In some cases, the amount of data can make it difficult to effectively utilize the collected data to improve business practices. In some cases, organizations employ various tools to generate visualizations of some or all of their data. By employing visualizations to represent this data, organizations can deepen their understanding of important business operations and use it to monitor important performance indicators. However, in some cases, skilled or specialized data analysts may be required to discover visualizations and insights from the data that may be valuable to the organization. Further, in some cases, a large number of visualizations or amounts of data can make it difficult to discover visualizations that share useful commonalities. Further, in some cases, the difficulties associated with integrating information from different sources or from many visualizations can prevent the efficient generation of reports that capture insights discovered during data analysis. Accordingly, the present invention has been made in view of these considerations and other considerations.
Brief Description of the Drawings
[0003] Non-limiting and non-exclusive embodiments of the present invention are described with reference to the following drawings. In the drawings, unless otherwise specified, the same reference numerals throughout the various figures refer to the same parts. For a better understanding of the innovation described, please refer to the following “Modes for Carrying Out the Invention,” which should be read in conjunction with the accompanying drawings. [Figure 1] This describes a system environment in which various implementations can be carried out. [Figure 2] A schematic embodiment of the client computer is shown. [Figure 3] A schematic embodiment of a network computer is shown. [Figure 4] This document presents a logical architecture for a system of interactive interfaces for data analysis and report generation, in one or more of various embodiments. [Figure 5A] This shows a logical representation of a portion of the user interface for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. [Figure 5B] This shows a logical representation of a portion of the user interface for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. [Figure 6] This shows a logical representation of a portion of the user interface for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. [Figure 7] This diagram shows an overview flowchart of the process for an interactive interface for data analysis and report generation, based on one or more of the various embodiments. [Figure 8] A flowchart shows the process for generating a report based on a scratchpad panel, according to one or more of the various embodiments. [Figure 9]A flowchart of the process for providing an interactive interface for data analysis and report generation, according to one or more of the various embodiments, is shown. [Figure 10] This flowchart shows a process for determining insight items that provide an interactive interface for data analysis and report generation, using one or more of the various embodiments. [Modes for carrying out the invention]
[0004] Next, various embodiments are described more fully below with reference to the accompanying drawings, which form part of this specification and illustrate specific exemplary embodiments in which the invention may be carried out. However, embodiments can be embodied in many different forms and should not be construed as being limited to the embodiments described herein, but rather these embodiments are provided so as to give a thorough and complete understanding of the scope of the embodiments to those skilled in the art. In particular, various embodiments may be methods, systems, media, or devices. Thus, various embodiments may take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Accordingly, the following detailed description should not be construed as restrictive.
[0005] Throughout this specification and the claims, the following terms have the meanings expressly associated herein, unless the context clearly indicates otherwise. The phrase "in one embodiment" as used herein may refer to the same embodiment, but not necessarily the same embodiment. Furthermore, the phrase "in another embodiment" as used herein may refer to a different embodiment, but not necessarily a different embodiment. Thus, various embodiments can be readily combined without departing from the scope or spirit of the invention, as described below.
[0006] In addition, as used herein, the term "or" is an inclusive "or" operator and is equivalent to the term "and / or" unless the context clearly indicates otherwise. The term "based on" is not exclusive and allows for additional factors not described unless the context clearly indicates otherwise. In addition, throughout this specification, the meanings of "a," "an," and "the" include multiple references. The meaning of "in" includes "in" and "on."
[0007] With respect to exemplary embodiments, the following terms are also used herein according to their corresponding meanings, unless the context clearly indicates otherwise.
[0008] As used herein, the term “engine” refers to logic embodied in hardware or software instructions that can be written in programming languages such as C, C++, Objective-C, COBOL, Java®, PHP, Perl, JavaScript®, Ruby, VBScript, C#, and other Microsoft .NET® languages. An engine can be compiled into an executable program or written in an interpreted programming language. A software engine can be called from other engines or from itself. As described herein, an engine refers to one or more logical modules that can be merged with other engines or applications or divided into sub-engines. An engine can be stored on a non-temporary computer-readable medium or computer storage device, stored on one or more general-purpose computers, and executed thereby, and a dedicated computer configured to provide an engine can be created.
[0009] As used herein, the term “data source” refers to a source of underlying information that is being modeled or otherwise analyzed. Data sources may include information from or provided by databases (e.g., relational, graph-based, no-sql, etc.), file systems, unstructured data, streams, etc. Data sources are typically configured to model, record, or store various operations or activities associated with an organization. In some cases, data sources are configured to provide or facilitate various data-centric actions such as efficient storage, querying, indexing, data exchange, retrieval, and updating. Generally, data sources may be configured to provide features related to data manipulation or data management rather than providing an easily understandable presentation or visualization of data.
[0010] As used herein, the term “data model” refers to one or more data structures that provide a representation of an underlying data source. In some cases, a data model may provide a view of a data source for a particular application. A data model may be considered a view or interface to an underlying data source. In some cases, a data model may map directly to a data source (e.g., a logical pass-through). In other cases, a data model may be provided by a data source. In some situations, a data model may be considered an interface to a data source. A data model enables an organization to organize or present information from a data source in a more convenient, more meaningful (e.g., easier to infer), or more secure way.
[0011] As used herein, the term “data model field” refers to a named or nameable property or feature of a data model. A data model field is similar to a column in a database table, a node in a graph, or a Java® class attribute. For example, a data model corresponding to an employee database table might have data model fields such as name, email address, phone number, and employee ID.
[0012] As used herein, the term “data object” refers to one or more entities or data structures that constitute a data model. In some cases, a data object may be considered part of a data model. A data object may represent an individual instance of a field, class, or type of field.
[0013] As used herein, the term “data field” refers to a named or nameable property or attribute of a data object. In some cases, a data field may be considered analogous to a class member of an object in object-oriented programming.
[0014] As used herein, the term “panel” refers to an area within a graphical user interface (GUI) having a defined geometric shape (e.g., x, y, z order). Panels may be positioned to display information to the user or to host one or more interactive controls. The geometry or style associated with a panel may be defined using configuration information, including dynamic rules. In some cases, the user may be able to perform actions on one or more panels, such as moving, showing, hiding, resizing, or reordering.
[0015] As used herein, the term “configuration information” means information that may include rule-based policies, pattern matching, scripts (e.g., computer-readable instructions), etc., which may be provided from a variety of sources, including configuration files, databases, user input, built-in defaults, or combinations thereof.
[0016] The following briefly describes embodiments of the present invention to provide a basic understanding of some aspects of the invention. This brief description is not intended to be an extensive overview. It is not intended to identify major or important elements, or to delineate or otherwise narrow the scope. Its purpose is simply to present some concepts in a simplified form as a prelude to more detailed descriptions that will be presented later.
[0017] In short, various embodiments relate to managing data visualizations using one or more processors that execute one or more instructions for performing the actions described herein. In one or more of the various embodiments, a primary visualization associated with a data model may be provided so that the primary visualization can be displayed on a display panel.
[0018] In one or more of the various embodiments, one or more insight items may be generated based on a primary visualization and a data model so that one or more insight items may correspond to one or more visualizations that may share one or more parts of the data model, and so that one or more insight items may be displayed in an insight panel.
[0019] In one or more of various embodiments, the step of generating one or more insight items may include providing one or more evaluation models arranged to identify one or more visualization items, employing one or more evaluation models to generate one or more candidate insight items based on one or more visualizations such that the one or more candidate insight items can be associated with an insight score, determining one or more insight items based on a portion of the one or more candidate insight items that can be associated with an insight score exceeding a threshold, and the like.
[0020] Also, in one or more of various embodiments, the step of generating one or more insight items includes determining a first set of one or more visualizations based on each of the first set of one or more visualizations including one or more data fields that can be used in a primary visualization, determining a second set of one or more visualizations based on each of the second set of one or more visualizations indicating a value trend for one or more data fields used in the primary visualization, determining a third set of one or more visualizations based on each of the third set of one or more visualizations using one or more other data fields from another data model including data values similar to the one or more data fields used in the primary visualization, and the like. And in one or more of various embodiments, generating one or more insight items based on one or more of the first set of one or more visualizations, the second set of one or more visualizations, or the third set of one or more visualizations.
[0021] In one or more of various embodiments, the step of displaying one or more insight items on an insight panel may include determining one or more insight item groups based on the type of evaluation model that identifies one or more insight items such that each insight item can be associated with an insight item group, and displaying each insight item group on the insight panel such that each insight item can be displayed with its associated insight item group, and so on.
[0022] In one or more of various embodiments, in response to an insight item being selected from an insight panel, additional actions may be performed, including generating a visualization based on the insight item displayed on a display panel instead of a primary visualization, and generating a scratch item that includes a thumbnail view of the primary visualization such that the thumbnail view can be displayed on a scratch panel.
[0023] In one or more of various embodiments, in response to selecting one or more of another insight item from an insight panel or another scratch item from a scratch panel, another visualization may be generated based on the selection of one or more of the another insight item or the another scratch item such that the another visualization is displayed on the display panel instead of the currently displayed visualization.
[0024] In one or more of the various embodiments, a report panel may be provided as an alternative to the display panel. In some embodiments, further actions may be performed, including the steps of generating one or more report items based on one or more of the of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one or more of the one of the one
[0025] In one or more of the various embodiments, one or more replacement insight items may be generated based on the replacement visualization and data model, so that one or more replacement insight items may be displayed in the insight panel in response to the replacement of a visualization in the display panel with a replacement visualization.
[0026] The operating environment shown in the diagram Figure 1 shows the components of one embodiment of an environment in which embodiments of the present invention may be carried out. Not all components are required to carry out the present invention, and the arrangement and type of components can be changed without departing from the spirit or scope of the present invention. As shown, the system 100 in Figure 1 includes a local area network (LAN) / wide area network (WAN)-(network) 110, a wireless network 108, client computers 102-105, a visualization server computer 116, and the like.
[0027] At least one embodiment of client computers 102-105 is described in more detail below in reference to Figure 2. In one embodiment, at least some of client computers 102-105 may operate via one or more wired or wireless networks, such as network 108 or 110. Generally, client computers 102-105 may include substantially any computer that can communicate over the network to send and receive information and perform various online activities, offline actions, etc. In one embodiment, one or more of client computers 102-105 may be configured to operate within a business or other entity to perform various services for the business or other entity. For example, client computers 102-105 may be configured to operate as a web server, firewall, client application, media player, mobile phone, game console, desktop computer, etc. However, client computers 102-105 are not limited to these services and may also be employed with respect to end-user computing, for example, in other embodiments. It should be noted that more or fewer client computers (as shown in Figure 1) may be included in a system like those described herein, and therefore the embodiments are not limited by the number or type of client computers employed.
[0028] Computers that can operate as client computers 102 may include personal computers, multiprocessor systems, microprocessor-based or programmable electronic devices, network PCs, and other computers that typically connect using wired or wireless communication media. In some embodiments, client computers 102-105 may include substantially any portable computer that can connect to another computer to receive information, such as laptop computer 103, mobile computer 104, and tablet computer 105. However, portable computers are not limited in this way and may also include other portable computers such as cellular phones, display pagers, radio frequency (RF) devices, infrared (IR) devices, personal digital assistants (PDAs), handheld computers, wearable computers, and integrated devices that combine one or more of the aforementioned computers. Therefore, client computers 102-105 typically have a wide range of functions and features. Furthermore, client computers 102-105 may have access to a variety of computing applications, including browsers or other web-based applications.
[0029] A web-enabled client computer may include a browser application configured to send requests and receive responses over the web. The browser application may be configured to receive and display graphics, text, multimedia, etc., using substantially any web-based language. In one embodiment, the browser application may employ JavaScript®, Hypertext Markup Language (HTML), Extended Markup Language (XML), JavaScript Object Notation (JSON), Cascading Style Sheets (CSS), or a combination thereof, to display and send messages. In one embodiment, a user of the client computer may employ the browser application to perform various activities over the network (online). However, other applications may also be used to perform various online activities.
[0030] Client computers 102-105 may include at least one other client application configured to receive or send content to or from another computer. The client application may include the ability to send or receive content, etc. The client application may further provide information that identifies itself, including type, capabilities, name, etc. In one embodiment, client computers 102-105 may uniquely identify themselves through one of various mechanisms, including Internet Protocol (IP) addresses, telephone numbers, mobile identification numbers (MINs), electronic serial numbers (ESNs), client certificates, or other device identifiers. Such information may be provided in one or more network packets transmitted between other client computers, visualization server computer 116, or other computers.
[0031] Client computers 102-105 may be further configured to include client applications that enable end users to log in to end user accounts that may be managed by another computer, such as a visualization server computer 116. Such end user accounts may be configured, in one non-limiting example, to enable end users to manage one or more online activities, including project management, software development, system administration, configuration management, search activities, social networking activities, browsing various websites, communicating with other users, etc. Client computers may also be configured to enable users to view reports, interactive user interfaces, or results provided by the visualization server computer 116, etc.
[0032] Wireless network 108 is configured to connect client computers 103-105 and their components with network 110. Wireless network 108 may include any of various wireless subnetworks that can be further overlaid, such as standalone ad-hoc networks, to provide infrastructure-oriented connectivity for client computers 103-105. Such subnetworks may include mesh networks, wireless LAN (WLAN) networks, cellular networks, and the like. In one embodiment, the system may include two or more wireless networks.
[0033] The wireless network 108 may further include autonomous systems such as terminals, gateways, and routers connected by wireless links. These connectors may be configured to move freely and randomly and organize themselves arbitrarily, so that the topology of the wireless network 108 can change rapidly.
[0034] The wireless network 108 may further employ multiple access technologies, including second-generation (2G), third-generation (3G), fourth-generation (4G), and fifth-generation (5G) radio access for cellular systems, WLANs, and wireless router (WR) mesh. Access technologies such as 2G, 3G, 4G, 5G, and future access networks may enable wide-area coverage for mobile computers such as client computers 103-105 with varying degrees of mobility. In a non-limiting example, the wireless network 108 may enable radio connectivity via radio network access such as GSM® (Global System for Mobile Communication), General Purpose Packet Radio System (GPRS), Enhanced Data GSM Environment (EDGE), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Wideband Code Division Multiple Access (WCDMA®), High-Speed Downlink Packet Access (HSDPA), and Long-Term Evolution (LTE). Essentially, the wireless network 108 may include substantially any wireless communication mechanism in which information can be transferred between client computers 103-105 and other computers, networks, cloud-based networks, cloud instances, etc.
[0035] Network 110 is configured to connect network computers with other computers, including a visualization server computer 116, a client computer 102, and client computers 103-105 via a wireless network 108. Network 110 can employ any form of computer-readable medium to communicate information from one electronic device to another. Network 110 may also include the Internet, in addition to local area networks (LANs), wide area networks (WANs), direct connections via, for example, Universal Serial Bus (USB) ports, Ethernet® ports, other forms of computer-readable medium, or any combination thereof. On an interconnected set of LANs, including those based on different architectures and protocols, a router acts as a link between LANs, enabling messages to be sent from one to the other. In addition, communication links within a LAN typically include twisted-pair wires or coaxial cables, while communication links between networks may utilize analog telephone lines, fully or partially dedicated digital lines including T1, T2, T3, and T4, or other carrier mechanisms including wireless links such as E-carriers, Integrated Services Digital Networks (ISDN), Digital Subscriber Lines (DSL), satellite links, or other communication links known to those skilled in the art. Furthermore, communication links may employ any of various digital signaling technologies, including, but not limited to, DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48, etc. Furthermore, remote computers and other related electronic devices may be remotely connected to either the LAN or WAN via modems and temporary telephone lines. In one embodiment, network 110 may be configured to transport Internet Protocol (IP) information.
[0036] Additionally, communication media typically include any non-temporary or temporary information distribution medium that embodies computer-readable instructions, data structures, program modules, or other transport mechanisms. Examples include wired media such as twisted-pair cables, coaxial cables, optical fibers, waveguides, and other wired media, and wireless media such as acoustic, RF, infrared, and other wireless media.
[0037] Furthermore, one embodiment of the visualization server computer 116 is described in more detail below in relation to Figure 3. Although Figure 1 shows the visualization server computer 116 etc. as a single computer, the present invention or embodiments are not limited in this way. For example, one or more functions of the visualization server computer 116 etc. may be distributed across one or more separate network computers. Furthermore, in one or more embodiments, the visualization server computer 116 may be implemented using multiple network computers. Furthermore, in one or more of the various embodiments, the visualization server computer 116 etc. may be implemented using one or more cloud instances in one or more cloud networks. Thus, these innovations and embodiments should not be interpreted as being limited to a single environment, and other configurations and architectures are also envisioned.
[0038] Example client computer Figure 2 shows one embodiment of the client computer 200, which may include more or fewer components than those shown. The client computer 200 may represent, for example, one or more embodiments of the mobile computer or client computer shown in Figure 1.
[0039] The client computer 200 may include a processor 202 that communicates with memory 204 via a bus 228. The client computer 200 may also include a power supply 230, a network interface 232, an audio interface 256, a display 250, a keypad 252, an illuminator 254, a video interface 242, an input / output interface 238, a haptic interface 264, a Global Positioning System (GPS) receiver 258, an open-air gesture interface 260, a temperature interface 262, a camera(s) 240, a projector 246, a pointing device interface 266, a processor-readable fixed memory device 234, and a processor-readable removable memory device 236. The client computer 200 may optionally communicate with a base station (not shown) or communicate directly with another computer. In one embodiment, although not shown, a gyroscope may be employed within the client computer 200 to measure or maintain the orientation of the client computer 200.
[0040] Power supply 230 may supply power to the client computer 200. Rechargeable or non-rechargeable batteries may be used to provide power. Power may also be supplied by an external power source such as an AC adapter or a powered docking cradle that replenishes or recharges the battery.
[0041] The network interface 232 includes circuitry for connecting the client computer 200 to one or more networks and is constructed for use with one or more communication protocols and technologies, including, but not limited to, protocols and technologies that implement any part of the OSI model for mobile communications (GSM®), CDMA, Time Division Multiple Access (TDMA), UDP, TCP / IP, SMS, MMS, GPRS, WAP, UWB, WiMAX, SIP / RTP, GPRS, EDGE, WCDMA®, LTE, UMTS, OFDM, CDMA2000, EV-DO, HSDPA, or any of various other wireless communication protocols. The network interface 232 may also be known as a transceiver, transceiver device, or network interface card (NIC).
[0042] The audio interface 256 may be configured to generate and receive audio signals, such as the sound of a human voice. For example, the audio interface 256 may be coupled to a speaker and a microphone (not shown) to enable telecommunication with another party or to generate an audio acknowledgment response to some action. The microphone within the audio interface 256 can also be used for input to or control of the client computer 200, for example, using speech recognition or detecting touch based on sound.
[0043] The display 250 may be a liquid crystal display (LCD), gas plasma, electronic ink, light-emitting diode (LED), organic LED (OLED), or any other type of light-reflecting or light-transmitting display that can be used with a computer. The display 250 may also include a touch interface 244 arranged to receive input from an object such as a stylus or a human finger, and may use resistive, capacitive, surface acoustic wave (SAW), infrared, radar, or other technology to sense touches or gestures.
[0044] The projector 246 may be a remote handheld projector or an integrated projector capable of projecting images onto any other reflective object, such as a remote wall or screen.
[0045] The video interface 242 may be configured to capture video images such as still photographs, video segments, and infrared video. For example, the video interface 242 may be coupled to a digital video camera, a webcam, etc. The video interface 242 may comprise a lens, an image sensor, and other electronic components. The image sensor may include a complementary metal-oxide-semiconductor (CMOS) integrated circuit, a charge-coupled device (CCD), or any other integrated circuit for sensing light.
[0046] The keypad 252 may include any input device arranged to receive input from the user. For example, the keypad 252 may include a push-button numeric dial or a keyboard. The keypad 252 may also include command buttons associated with selecting and sending images.
[0047] The illuminator 254 may provide a status indicator or provide light. The illuminator 254 may remain active for a certain period of time or in response to an event message. For example, when active, the illuminator 254 may back-illuminate the buttons on the keypad 252 and remain on while the client computer is powered. The illuminator 254 may also back-illuminate these buttons in various patterns when certain actions are performed, such as dialing another client computer. The illuminator 254 may also illuminate a light source located inside the transparent or translucent case of the client computer in response to an action.
[0048] Furthermore, the client computer 200 may also include a hardware security module (HSM) 268 to provide additional tamper-resistant preventative measures for generating, storing, or using security / cryptographic information such as keys, digital certificates, passwords, passphrases, and two-factor authentication information. In some embodiments, the hardware security module may be employed to support one or more standard public key infrastructures (PKIs) and may be employed to generate, manage, or store key pairs, etc. In some embodiments, the HSM 268 may be a standalone computer, and in other cases, the HSM 268 may be configured as a hardware card that can be added to the client computer.
[0049] The client computer 200 may also be equipped with an input / output interface 238 for communicating with external peripheral devices or other computers such as other client computers and network computers. Peripheral devices may include audio headsets, virtual reality headsets, display screen glasses, remote speaker systems, remote speaker and microphone systems, etc. The input / output interface 238 may utilize one or more technologies such as Universal Serial Bus (USB®), infrared, WiFi, WiMAX, and Bluetooth®.
[0050] The input / output interface 238 may also include one or more sensors for determining geolocation information (e.g., GPS), one or more sensors for monitoring power status (e.g., voltage sensor, current sensor, frequency sensor, etc.), one or more sensors for monitoring weather (e.g., thermostat, barometer, anemometer, humidity detector, precipitation gauge, etc.). The sensors may be one or more hardware sensors that collect or measure data located outside the client computer 200.
[0051] The haptic interface 264 may be configured to provide haptic feedback to the user of the client computer. For example, the haptic interface 264 may be employed to vibrate the client computer 200 in a specific way when another user of the computer is making a phone call. The temperature interface 262 may be used to provide the user of the client computer 200 with a temperature measurement input or a temperature change output. The open-air gesture interface 260 may sense the physical gestures of the user of the client computer 200 by using, for example, a single or stereo video camera, radar, or a gyro sensor in the computer held or worn by the user. The camera 240 may be used to track the physical eye movements of the user of the client computer 200.
[0052] The GPS transceiver 258 can determine the physical coordinates of the client computer 200 on the Earth's surface and typically outputs the position as latitude and longitude values. The GPS transceiver 258 may also employ other geopositioning mechanisms, including but not limited to triangulation, assisted GPS (AGPS), extended observation time difference (E-OTD), cell identifier (CI), service area identifier (SAI), extended timing advance (ETA), and base station subsystem (BSS), to further determine the physical location of the client computer 200 on the Earth's surface. It should be understood that under different conditions, the GPS transceiver 258 can determine the physical location of the client computer 200. However, in one or more embodiments, the client computer 200 may provide other information, via other components, such as a media access control (MAC) address, an IP address, etc., that can be employed to determine the physical location of the client computer.
[0053] In at least one of the various embodiments, applications such as the operating system 206, visualization client 222, other client applications 224, and web browser 226 are arranged to employ geolocation information to select one or more localization features such as time zone, language, currency, and calendar format. Localization features may be used in display objects, data models, data objects, user interfaces, reports, and internal processes or databases. In at least one of the various embodiments, the geolocation information used to select localization information may be provided by GPS 258. Also in some embodiments, the geolocation information may include information provided using one or more geolocation protocols over a network such as wireless network 108 or network 111.
[0054] Human interface components may be peripheral devices physically separated from the client computer 200, enabling remote input or output to the client computer 200. For example, information routed through a human interface component such as a display 250 or a keyboard 252, as described herein, may instead be routed through a network interface 232 to a suitable remotely located human interface component. Examples of potentially remote human interface peripheral components include, but are not limited to, audio devices, pointing devices, keypads, displays, cameras, and projectors. These peripheral components may communicate via pico networks such as Bluetooth® and Zigbee®. One non-limiting example of a client computer with such peripheral human interface components is a wearable computer that, together with a remote pico projector, may include one or more cameras that communicate remotely with a separately located client computer to sense the user's gestures in response to a portion of the image projected by the pico projector onto a reflective surface such as a wall or the user's hand.
[0055] A client computer may include a web browser application 226 configured to send and receive web pages, web-based messages, graphics, text, multimedia, etc. The browser application on the client computer may employ substantially any programming language, including Wireless Application Protocol Messages (WAP). In one or more embodiments, the browser application may employ Handheld Device Markup Language (HDML), Wireless Markup Language (WML), WMLScript, JavaScript®, Standard Generalized Markup Language (SGML), Hypertext Markup Language (HTML), Extended Markup Language (XML), HTML5, etc.
[0056] Memory 204 may include RAM, ROM, or other types of memory. Memory 204 is an example of a computer-readable storage medium (device) for storing information such as computer-readable instructions, data structures, program modules, or other data. Memory 204 may store a BIOS 208 for controlling the low-level operation of client computer 200. Memory may also store an operating system 206 for controlling the operation of client computer 200. It will be understood that this component may include a general-purpose operating system such as a version of UNIX® or Linux®, or a dedicated client computer communication operating system such as Android® or iOS®. The operating system may include, or interface with, a Java® virtual machine module that enables control of hardware components or operating system operation via a Java® application program.
[0057] Memory 204 may further include, among other things, one or more data storages 210 available to the client computer 200 for storing applications 220 or other data. For example, data storage 210 may also be employed to store information describing various functions of the client computer 200. The information may then be provided to another device or computer based on any of a variety of methods, including being transmitted as part of a header during communication, being transmitted on request, etc. Data storage 210 may also be employed to store social networking information, including address books, buddy lists, aliases, user profile information, etc. Data storage 210 may further include program code, data, algorithms, etc., for use by a processor, such as processor 202, to perform and carry out actions. In one embodiment, at least a portion of data storage 210 may be stored on other components of the client computer 200, including, but not limited to, a non-temporary processor-readable removable storage device 236, a processor-readable fixed storage device 234, and even outside the client computer.
[0058] Application 220, when executed by the client computer 200, may include computer-executable instructions that transmit, receive, or otherwise process instructions and data. Application 220 may include, for example, a visualization client 222, other client applications 224, a web browser 226, and the like. The client computer may be configured to exchange communications with one or more servers.
[0059] Other examples of application programs include calendars, search programs, email client applications, IM applications, SMS applications, Voice over Internet Protocol (VOIP) applications, contact managers, task managers, transcoders, database programs, word processing programs, security applications, spreadsheet programs, games, search programs, and visualization applications.
[0060] Additionally, in one or more embodiments (not shown), the client computer 200 may include, instead of a CPU, an embedded logic hardware device such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable array logic (PAL), or a combination thereof. The embedded logic hardware device may directly execute its embedded logic to perform actions. Also, in one or more embodiments (not shown), the client computer 200 may include, instead of a CPU, one or more hardware microcontrollers. In one or more embodiments, one or more microcontrollers may directly execute their own embedded logic to perform actions and may access their own internal memory and their own external input and output interfaces (e.g., hardware pins or wireless transceivers) to perform actions such as a system-on-a-chip (SOC).
[0061] Exemplary network computer Figure 3 shows one embodiment of the network computer 300, which may be included in a system implementing one or more of the various embodiments. The network computer 300 may include more or fewer components than those shown in Figure 3. However, the components shown are sufficient to disclose exemplary embodiments for implementing these innovations. The network computer 300 may represent at least one embodiment, such as the event analysis server computer 116 in Figure 1.
[0062] A network computer, such as network computer 300, may include a processor 302 capable of communicating with memory 304 via bus 328. In some embodiments, the processor 302 may consist of one or more hardware processors or one or more processor cores. In some cases, one or more of the one or more processors may be dedicated processors designed to perform one or more dedicated actions, such as the actions described herein. Network computer 300 also includes a power supply 330, a network interface 332, an audio interface 356, a display 350, a keyboard 352, an input / output interface 338, a processor-readable fixed storage device 334, and a processor-readable removable storage device 336. The power supply 330 provides power to network computer 300.
[0063] The network interface 332 includes circuitry for connecting the network computer 300 to one or more networks and is built for use with one or more communication protocols and technologies, including, but not limited to, protocols and technologies that implement any part of any of the following: the Open System Interconnection Model (OSI model), GSM® (Global System for Mobile communication), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), User Datagram Protocol (UDP), Transmission Control Protocol / Internet Protocol (TCP / IP), Short Message Service (SMS), Multimedia Messaging Service (MMS), General Purpose Packet Radio Service (GPRS), WAP, Ultra Wideband (UWB), IEEE 802.16 WiMax (Worldwide Interoperability for Microwave Access), Session Initiation Protocol / Real-Time Transport Protocol (SIP / RTP), or various other wired and wireless communication protocols. The network interface 332 may also be known as a transceiver, transceiver device, or network interface card (NIC). The network computer 300 may optionally communicate with a base station (not shown) or communicate directly with another computer.
[0064] The audio interface 356 is configured to generate and receive audio signals, such as human voices. For example, the audio interface 356 may be coupled to a speaker and a microphone (not shown) to enable telecommunication with others or to generate audio acknowledgments for certain actions. The microphone within the audio interface 356 can also be used, for example, with speech recognition to input to or control a network computer 300.
[0065] The display 350 may be a liquid crystal display (LCD), gas plasma, electronic ink, light-emitting diode (LED), organic LED (OLED), or any other type of light-reflecting or light-transmitting display that can be used with a computer. In some embodiments, the display 350 may be a handheld projector or pico projector capable of projecting an image onto a wall or other object.
[0066] The network computer 300 may also have an input / output interface 338 for communicating with external devices or computers not shown in Figure 3. The input / output interface 338 may utilize one or more wired or wireless communication technologies such as USB®, Firewire®, WiFi, WiMAX, Thunderbolt®, infrared, Bluetooth®, Zigbee®, serial port, or parallel port.
[0067] The input / output interface 338 may also include one or more sensors for determining geolocation information (e.g., GPS), one or more sensors for monitoring power status (e.g., voltage sensor, current sensor, frequency sensor, etc.), one or more sensors for monitoring weather (e.g., thermostat, barometer, anemometer, humidity detector, precipitation gauge, etc.). The sensors may be one or more hardware sensors that collect or measure data located outside the network computer 300. Human interface components may be physically separated from the network computer 300 and enable remote input or output to the network computer 300. For example, information routed through a human interface component such as a display 350 or keyboard 352 as described herein may instead be routed through the network interface 332 to an appropriate human interface component located elsewhere on the network. Human interface components include any components that enable the computer to receive input from or send output to a human user of the computer. Therefore, pointing devices such as mice, styluses, and trackballs can communicate via the pointing device interface 358 to receive user input.
[0068] The GPS transceiver 340 can determine the physical coordinates of the network computer 300 on the Earth's surface and typically outputs the position as latitude and longitude values. The GPS transceiver 340 may also employ other geopositioning mechanisms, including but not limited to triangulation, assisted GPS (AGPS), extended observation time difference (E-OTD), cell identifiers (CI), service area identifiers (SAI), extended timing advance (ETA), and base station subsystems (BSS), to further determine the physical location of the network computer 300 on the Earth's surface. It should be understood that under different conditions, the GPS transceiver 340 can determine the physical location of the network computer 300. However, in one or more embodiments, the network computer 300 may provide other information, via other components, that can be employed to determine the physical location of client computers, such as media access control (MAC) addresses and IP addresses.
[0069] In at least one of the various embodiments, applications such as the operating system 306, the modeling engine 322, the visualization engine 324, and other applications 329 are arranged to employ geolocation information to select one or more localization features such as time zone, language, and calendar format. These localization features may be used in user interfaces, dashboards, visualizations, reports, and internal processes or databases. In at least one of the various embodiments, the geolocation information used to select the localization information may be provided by a GPS 340. Also, in some embodiments, the geolocation information may include information provided using one or more geolocation protocols over a network such as wireless network 108 or network 111.
[0070] Memory 304 may include random access memory (RAM), read-only memory (ROM), or other types of memory. Memory 304 is an example of a computer-readable storage medium (device) for storing information such as computer-readable instructions, data structures, program modules, or other data. Memory 304 stores a basic input / output system (BIOS) 308 for controlling the low-level operation of the network computer 300. Memory also stores an operating system 306 for controlling the operation of the network computer 300. It will be understood that this component may include a general-purpose operating system such as a version of UNIX® or Linux®, or a specialized operating system such as Microsoft Corporation's Windows® operating system or Apple Corporation's macOS® operating system. The operating system may include, or interface with, one or more virtual machine modules, such as a Java® virtual machine module, which enables control of hardware components or operating system operation via a Java® application program. Similarly, other runtime environments may be included.
[0071] Memory 304 may further include one or more data storages 310 available to the network computer 300 for storing applications 320 or other data. For example, data storage 310 may also be employed to store information describing various functions of the network computer 300. The information may then be provided to another device or computer based on any of a variety of methods, including being transmitted as part of a header during communication, being transmitted on request, etc. Data storage 310 may also be employed to store social networking information, including address books, buddy lists, aliases, user profile information, etc. Data storage 310 may further include program code, data, algorithms, etc., for use by a processor such as processor 302 to perform and carry out actions such as the actions described below. In one embodiment, at least a portion of the data storage 310 may also be stored on other components of the network computer 300, including, but not limited to, a processor-readable removable storage device 336, a processor-readable fixed storage device 334, or non-temporary media in any other computer-readable storage device within or outside the network computer 300. The data storage 310 may include, for example, a data source 314, a data model 316, a visualization 318, and the like.
[0072] Application 320, when executed by the network computer 300, may include computer executable instructions that enable telecommunication with another user on another mobile computer by sending, receiving, or otherwise processing messages (e.g., SMS, Multimedia Messaging Service (MMS), Instant Message (IM), Email, or other messages), audio, and video. Other examples of application programs include calendars, search programs, email client applications, IM applications, SMS applications, Voice over Internet Protocol (VOIP) applications, contact managers, task managers, transcoders, database programs, word processing programs, security applications, spreadsheet programs, games, and search programs. Application 320 may include a modeling engine 322, a visualization engine 324, other applications 329, etc., which may be arranged to perform actions for the embodiments described below. In one or more of the various embodiments, one or more applications may be implemented as modules or components of another application. Furthermore, in one or more of the various embodiments, applications may be implemented as operating system extensions, modules, plug-ins, etc.
[0073] Furthermore, in one or more of the various embodiments, the modeling engine 322, the visualization engine 324, other applications 329, etc., may operate in a cloud-based computing environment. In one or more of the various embodiments, these applications, including the management platform, and other applications may run within virtual machines or virtual servers that can be managed in the cloud-based computing environment. In one or more of the various embodiments, in this context, applications may flow from one physical network computer to another within the cloud-based environment, depending on performance and scaling considerations that are automatically managed by the cloud computing environment. Similarly, in one or more of the various embodiments, virtual machines or virtual servers dedicated to the modeling engine 322, the visualization engine 324, other applications 329, etc., may be automatically provisioned and decommissioned.
[0074] Furthermore, in one or more of the various embodiments, the modeling engine 322, the visualization engine 324, other applications 329, etc., may reside in virtual servers running within a cloud-based computing environment, rather than being tied to one or more specific physical network computers.
[0075] Furthermore, the network computer 300 may also include a hardware security module (HSM) 360 to provide additional tamper-resistant preventative measures for generating, storing, or using security / cryptographic information such as keys, digital certificates, passwords, passphrases, and two-factor authentication information. In some embodiments, the hardware security module may be employed to support one or more standard public key infrastructures (PKIs) and may be employed to generate, manage, or store key pairs, etc. In some embodiments, the HSM 360 may be a standalone network computer, and in other cases, the HSM 360 may be arranged as a hardware card that can be installed within the network computer.
[0076] Additionally, in one or more embodiments (not shown), the network computer 300 may include, instead of a CPU, an embedded logic hardware device such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable array logic (PAL), or a combination thereof. The embedded logic hardware device may directly execute its embedded logic to perform actions. Also, in one or more embodiments (not shown), the network computer may include one or more hardware microcontrollers instead of a CPU. In one or more embodiments, one or more microcontrollers may directly execute their own embedded logic to perform actions and may access their own internal memory and their own external input and output interfaces (e.g., hardware pins or wireless transceivers) to perform actions such as a system-on-a-chip (SOC).
[0077] Exemplary Logical System Architecture Figure 4 shows the logical architecture of System 400 for an interactive interface for data analysis and report generation according to one or more of the various embodiments. In one or more of the various embodiments, System 400 may be a data modeling platform arranged to include various components such as a modeling engine 402, a visualization engine 404, a visualization 406, a visualization model 408, a data model 410, a data source 412, an evaluation model 414, and so on.
[0078] In one or more of the various embodiments, the data source 412 represents a source such as raw data, records, or data items that the modeling engine 402 may employ to enable the user to generate or modify a data model, such as a data model 410.
[0079] In one or more of the various embodiments, a data model, such as data model 410, may be a data structure that provides one or more logical representations of information stored in one or more data sources, such as data source 412. In some embodiments, the data model may include data objects that correspond to one or more parts of tables, views, or files in the data source. For example, in some embodiments, if data source 412 is a CSV file or a database, the data model, such as data model 412, may consist of one or more data objects that can correspond to record fields in data source 412.
[0080] In one or more of the various embodiments, the data model may be configured to provide a logical representation of a data source that may differ from the underlying data source. In some embodiments, this may involve excluding one or more fields of the data source from the data model.
[0081] In some embodiments, a modeling engine, such as modeling engine 402, may be employed to convert some or all of the data source 412 into a data model 410. In some embodiments, the modeling engine may be configured to employ or execute computer-readable instructions provided by configuration information to determine some or all of the steps for converting values in the data source into a data model. In one or more of the various embodiments, the modeling engine may be configured to enable an interactive interface for data analysis and report generation, as described in detail below.
[0082] In one or more of the various embodiments, a visualization engine, such as visualization engine 404, may be configured to employ a visualization model, such as visualization model 408, to determine the layout, styling, interactivity, etc., for a visualization, such as visualization 406, which may be displayed to the user. In some embodiments, the visualization engine may also be configured to employ data item values provided through a data source in order to input values based on a data model into the visualization.
[0083] In one or more of the various embodiments, the modeling engine may be configured to allow the user to select a primary visualization that can serve as a starting point for an analysis session. Thus, in one or more of the various embodiments, the modeling engine may be configured to determine one or more insight items that can provide analytical information related to the visualization or its associated data model or data source.
[0084] In one or more of the various embodiments, the modeling engine may be configured to employ one or more evaluation models, such as evaluation model 414, for evaluating data fields, data models, data sources, visualizations, etc., in order to determine one or more insight items that may be associated with the primary visualization.
[0085] In one or more of the various embodiments, different evaluation models may be configured to provide insight scores that can be used to compare ranked insight items. In some embodiments, different evaluation models may be configured to employ different scoring criteria for determining or scoring insight items. Thus, in some embodiments, the evaluation engine may be configured to weight or normalize the insight scores provided by different evaluation models. In some embodiments, specific normalization rules or weighting rules for normalizing or weighting evaluation model confidence scores may be provided via configuration information.
[0086] Furthermore, in one or more of the various embodiments, the evaluation model may be employed in the user interface or reports to provide a natural language narrative that can explain the meaning or context of the insight items. In some embodiments, the narrative may be based on a template that allows labels, units, values, field names, etc., associated with the insight items or visualizations to be included along with the insight items listed in the insight panel.
[0087] In one or more of the various embodiments, the evaluation model may be designed or tuned to evaluate one or more statistical features of the data associated with the visualization. Thus, in one or more of the various embodiments, the modeling engine may be configured to apply one or more evaluation models to assess whether the data associated with the visualization has one or more of the statistical features targeted by the evaluation models. In some embodiments, the evaluation model may be configured to provide an insight score in the form of a self-grade that represents how well the data associated with an insight item matches a statistical feature that the evaluation model may be designed to match or otherwise evaluate.
[0088] In one or more of the various embodiments, one or more evaluation models may focus on common, well-known, or commonplace statistical features that can be expected to be associated with visualizations, marks, data models, data sources, etc.
[0089] Furthermore, in one or more of the various embodiments, one or more evaluation models may be customized or targeted to a particular problem domain or business domain. For example, an evaluation model targeted to financial information may be configured differently from an evaluation model targeted to employee information. Similarly, for example, an evaluation model targeted to the automotive industry may be configured differently from an evaluation model targeted to the cruise (shipping) industry. Moreover, in one or more of the various embodiments, one or more evaluation models may be customized for a particular data source, data model, or visualization for a particular organization or user. Accordingly, in one or more of the various embodiments, evaluation models may be stored in a data store that allows them to be configured independently of each other.
[0090] In one or more of the various embodiments, if the user provides a primary visualization, the modeling engine may determine one or more evaluation models and apply them to determine insight items that may be associated with the primary visualization. In some embodiments, insight items may be grouped based on the evaluation model used to identify them. Also in some embodiments, one or more insight items may be grouped because they represent the same type of insight. In some embodiments, the modeling engine may be configured to determine insight item grouping rules based on configuration information.
[0091] In one or more of the various embodiments, the evaluation model may be configured to determine insights related to determining outliers, trends, aggregations, related visualizations, related data models, etc., based on features such as the primary visualization, its data source, and its data model. Furthermore, in one or more of the various embodiments, the modeling engine may be configured to automatically provide visualizations corresponding to some or all of the insight items. For example, if a trend in the profit data field is determined to be an insight item, the modeling engine may provide a visualization showing the trend line of the profile data field. In some embodiments, the modeling engine may be configured to generate thumbnail views of the insight items that look similar to the related insight visualizations.
[0092] In one or more of the various embodiments, the modeling engine or visualization engine may be configured to track or log metrics associated with system-wide user interactions with the visualization or data model. Thus, in one or more of the various embodiments, one or more evaluation models may be configured to identify other visualizations that are temporally close to and commonly viewed with respect to the primary visualization. In some embodiments, some of these visualizations may be determined to be relevant visualizations that deserve to be considered insight items. Note that in some embodiments, specific criteria for determining whether a visualization is relevant, or whether a relevant visualization may be an insight item, may be determined based on specific evaluation models employed to determine such insight items. Similarly, in some embodiments, the modeling engine may be configured to employ one or more evaluation models to determine one or more relevant data fields, which may comprise one or more data models or one or more data sources shared by the primary visualization and the other visualizations. For example, the evaluation model may be configured to determine whether one or more visualizations that use some of the same data fields as the primary visualization may be considered insight items. In some embodiments, the evaluation model may be configured to provide specific criteria for determining whether visualizations that share data fields, data models, etc., may be considered insight items.
[0093] Furthermore, in some embodiments, the modeling engine may be configured to provide a scratchpad (e.g., a scratch panel) that allows the user to selectively capture or record visualizations or insight items during an analysis session. In some embodiments, the scratch panel may be configured to display the captured information (e.g., scratch items) chronologically to provide a visual cue regarding the progress of the analysis session. Also, in some embodiments, the scratch items within the scratch panel may be accessed in no particular order to allow the user to dynamically view visualizations and the like associated with the scratch items.
[0094] Figure 5A shows a partial logical representation of a user interface 500 for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. In some embodiments, the user interface 500 may be arranged to include one or more panels, such as a display panel 502, an insight panel 504, and a scratch panel 506.
[0095] In one or more of the various embodiments, the user interface 500 may be displayed on one or more hardware displays, such as a client computer display or a mobile device display. In some embodiments, the user interface 500 may be provided via a native application or as a web application hosted within a web browser or other similar application. Those skilled in the art will understand that, at least for clarity or brevity, many details common to commercial / production user interfaces have been omitted from the user interface 500. Similarly, in some embodiments, the user interface may be configured differently from that shown, depending on local circumstances or requirements such as display type, display resolution, and user preferences. However, those skilled in the art will understand that the disclosure / description of the user interface 500 is at least sufficient to disclose the innovativeness contained herein.
[0096] In one or more of the various embodiments, the modeling engine may be configured to generate a user interface, such as a user interface 500 for interactive data analysis or report generation.
[0097] In this example, display panel 502 represents a panel for displaying visualizations selected or recommended by the user. In some embodiments, the user may be the creator of the displayed visualization, or the user may perform data analysis using visualizations authored by other users. In some embodiments, display panels such as display panel 502 may be employed to display different visualizations. For example, if a user selects a visualization for review, it may be displayed on the display panel. In some embodiments, the visualization displayed on the display panel may consist of one or more subvisualizations, user interface controls, text annotations, etc. However, for the sake of brevity and clarity, visualizations such as visualization 508 may be considered to represent more complex visualizations and simpler visualizations.
[0098] In one or more of the various embodiments, the visualization may be associated with one or more data sources that provide the data that can be represented by the visualization. In this example, visualization 508 represents a line plot. Those skilled in the art will understand that other graphical plots or visualizations may be employed without departing from the innovativeness disclosed herein. Furthermore, in some embodiments, the data domain or semantic meaning of the visualizations described herein may vary depending on the needs of the user or organization that may be creating the visualization. Accordingly, this specification does not discuss much about the underlying data, the meaning of a particular visualization or plot, etc.
[0099] In one or more of the various embodiments, the modeling engine may be configured to generate an insight panel, such as an insight panel 504. In some embodiments, the insight panel may be configured to display an interactive representation of one or more insight items. In one or more of the various embodiments, the insight items may represent various visualizations, etc., that may provide some analytical insight to a user who may be viewing one or more visualizations. Thus, in some embodiments, when a user selects a primary visualization to analyze, the modeling engine may be configured to determine one or more insight items based on one or more of the characteristics of the primary visualization, the data model associated with the primary visualization, the data source associated with the primary visualization, etc. In this example, with respect to some embodiments, visualization 508 may be considered the primary visualization.
[0100] In one or more of the various embodiments, the user may be allowed to select one or more insight items, which may cause the visualization associated with the selected insight items to be displayed on the display panel, replacing the last primary visualization. Thus, in some embodiments, the user may be able to quickly switch to browse the visualizations that may be listed on the insight panel. Also, in some embodiments, when different visualizations are selected, they may become the current primary visualization. Thus, in some embodiments, the modeling engine may be configured to modify the set of insight items based on the current primary visualization.
[0101] In one or more of the various embodiments, the modeling engine may be located in a scratchpad panel (e.g., a scratch panel), such as a scratch panel 506. In some embodiments, the modeling engine may be located to associate references to one or more visualizations or insight items within the scratch panel. In one or more of the various embodiments, the modeling engine may be configured to display scratch panel items, such as a scratch panel item 516, within a scratch panel, such as a scratch panel. In some embodiments, the modeling engine may be located to automatically generate scratch panel items when the user switches to a different primary visualization. Similarly, in one or more of the various embodiments, the modeling engine may be located to provide various user interface controls or menu items that allow the user to choose to add or remove scratch panel items from the scratch panel.
[0102] In one or more of the various embodiments, the modeling engine may be configured to generate scratch panel items that provide a visual record of one or more visualizations or one or more insight items reviewed by the user. Thus, in some embodiments, a record of a data analysis session may be generated and displayed on a display panel.
[0103] In some embodiments, when a user selects a scratch panel item, the visualization associated with the selected scratch panel item is displayed on the display panel and may become the current primary visualization.
[0104] In one or more of the various embodiments, the modeling engine may be configured to allow the user to remove scratch panel items from the scratch panel. For example, in some embodiments, user interface controls such as context menus and buttons may be provided to remove scratch panel items from the scratch panel. Similarly, in some embodiments, the user may be able to select whether a primary visualization or insight item should be added to the scratch panel. In one or more of the various embodiments, the modeling engine may be configured to employ templates, layout information, styling information, etc., provided via configuration information to determine the appearance or interactive behavior of the scratch panel.
[0105] In one or more of the various embodiments, the modeling engine may be configured to display different types of insight items in the insights panel. In some embodiments, different types of insight items may be grouped together or styled differently to indicate that they belong to the same group. In some embodiments, the modeling engine may be configured to display icons, labels, text descriptions, tooltips, etc., to provide contextual information about the group of insight items.
[0106] In this example, insight panel 504 represents an insight panel showing three different types of insight items. In this example, insight item group 510, insight item group 512, and insight item group 514 represent different insight item groups. In some embodiments, the number of insight items within an insight item group and the number of insight item groups may vary depending on one or more factors, including the current primary visualization, the data source associated with the primary visualization, and the data model associated with the primary visualization. In some embodiments, the modeling engine may be configured to employ rules, catalogs, instructions, etc., provided via configuration information to determine a specific arrangement or selection of insight item groups that may be displayed in the insight panel, in order to take local requirements or local circumstances into account.
[0107] Similarly, in one or more of the various embodiments, the modeling engine may be configured to employ templates, layout information, styling information, etc., provided via configuration information to determine the appearance or interactive behavior of the insight panel.
[0108] In one or more of the various embodiments, the insight item may be determined based on various criteria depending on the type of insight item. In some embodiments, the insight item may be associated with other visualizations that have one or more characteristics that may be similar to the primary visualization. For example, in some embodiments, the insight item may be another visualization based on the same data model or data source as the primary visualization. In other cases, the insight item may be a visualization that focuses on a data field, whether or not it is displayed in the primary visualization. For example, if the primary visualization shows the current value of a data field, the insight item may be another visualization showing the rate of change for the same field. Other examples may include visualizations that show trends, distributions, etc., that may be related to the data fields included in the primary visualization. In some cases, the insight item may be a different visualization of the same data as the primary visualization, which may be created by different authors. In some embodiments, the insight item may represent a visualization or description (text) that focuses on a data field that may be influencing or driving the appearance of the primary visualization. For example, this may include highlighting outliers, missing values, etc.
[0109] Accordingly, in one or more of the various embodiments, the modeling engine may be configured to employ various evaluation models (not shown) to determine insight items. In one or more of the various embodiments, the evaluation model may be considered a data structure containing data or instructions for determining whether visualizations, data fields, data models, descriptions, etc., should be listed in the insight panel. In one or more of the various embodiments, the evaluation model may include heuristics, grammars, parsers, conditional statements, machine learning classifiers, other machine learning models, curve fitting, etc., which may be provided from various sources and may be employed to provide insight scores that can be used to determine whether an item under consideration should be listed in the insight panel. In some embodiments, the modeling engine may be configured to employ insight scores provided by the evaluation model to determine whether an insight item should be listed. In some embodiments, the modeling engine may be configured to apply additional criteria, such as the age of the insight item, the number of other users who have viewed or used the insight item, etc.
[0110] In one or more of the various embodiments, the modeling engine may be configured to allow one or more evaluation models to be added or removed from the system. Thus, in some embodiments, new types of insight items may be determined, and therefore evaluation models capable of discovering them may be included. Similarly, if evaluation models are not favored based on local preferences or local requirements, those evaluation models may be removed or otherwise disabled. Therefore, in some embodiments, the modeling engine may be configured to determine available evaluation models based on configuration information to take into account the local context of local requirements.
[0111] In one or more of the various embodiments, the modeling engine may be configured to apply one or more sorting functions to rank insight items within their groups or for all insight items. In some embodiments, the sorting functions may vary depending on the insight item group, user, organization, etc. Also, in some embodiments, a user or organization may be allowed to define one or more sorting rules, etc., which may be stored as preferences within the configuration information.
[0112] In one or more of the various embodiments, the user interface 500 may include additional panels, such as panels or controls, for providing search queries, filters, and the like.
[0113] Figure 5B shows a partial logical representation of the user interface 500 for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. For brevity and clarity, elements or behaviors of the user interface 500 described above with respect to Figure 5A are not repeated here.
[0114] In this example, the primary visualization has changed to primary visualization 518, which represents a visualization generated based on the insight item selected from the insight panel 504. Also in this example, the scratch panel item 520 can be considered to refer to primary visualization 518.
[0115] In this example, the user adds two scratch panel items (scratch panel item 516 and scratch panel item 52) to scratch panel 506. Thus, in some embodiments, if the user wishes to revisit the visualization associated with scratch panel item 516, the user may select scratch panel item 516, and the modeling engine may display the corresponding visualization as the current primary visualization. Note that in some embodiments, if the visualization corresponding to scratch panel item 516 is selected as the primary visualization, the two scratch panel items in scratch panel 506 may remain displayed.
[0116] In one or more of the various embodiments, the modeling engine may be configured to allow the user to change the order of scratch panel items within the scratch panel. For example, the modeling engine may be configured to generate the scratch panel such that the position of a scratch panel item can be changed by dragging it to a different position within the scratch panel.
[0117] Figure 6 shows a partial logical representation of the user interface 600 for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. For reasons of brevity and clarity, elements or behaviors of the user interface 600 described above with respect to Figure 5A, etc., are not repeated here.
[0118] In some embodiments, a user interface such as user interface 600 may be arranged to include story panels such as story panel 602, insight panel 604, scratch panel 606, and so on.
[0119] In one or more of the various embodiments, the modeling engine may be configured to enable the generation of reports that can be saved or shared with other users. In some embodiments, the report may be considered a composite visualization that includes one or more visualizations, additional annotations, etc.
[0120] In one or more of the various embodiments, the modeling engine is configured to allow story items to be added to the story panel. In one or more of the various embodiments, story items may be selected from the scratch panel or the insight panel. Alternatively, in some embodiments, story items may include additional annotations that can be added or created on the fly. In some embodiments, the modeling engine may be configured to generate interaction reports based on story items that can be added to the story panel.
[0121] In this example, visualizations 612 and 614 represent visualizations added to the story panel. In this example, with respect to some embodiments, visualization 612 may be added to the story panel 602 based on the user interacting with scratch panel item 608. Similarly, in this example, visualization 614 may be added to the story panel 602 based on the user interacting with scratch panel item 610.
[0122] In one or more of the various embodiments, the modeling engine may be configured to allow the user to create or import other text, images, visualizations, etc., from other sources, rather than being limited to using insight items or scratch panel items. For example, in some embodiments, annotation 616 represents a text annotation added to story panel 602.
[0123] In one or more of the various embodiments, the modeling engine is positioned to automatically resize the story panel when story items may be added. In this example, the story panel 602 is indicated by a dashed line extending outside the boundaries of the user interface 600 to show that the modeling engine automatically increases its size or otherwise adjusts its geometry to accommodate the added story items.
[0124] Generalized behavior Figures 7-10 illustrate generalized behavior for an interactive interface for data analysis and report generation according to one or more of the various embodiments. In one or more of the various embodiments, processes 700, 800, 900, and 1000 described in relation to Figures 7-10 may be implemented or executed by one or more processors on a single network computer, such as the network computer 300 in Figure 3. In other embodiments, these processes or parts thereof may be implemented or executed on multiple network computers, such as the network computer 300 in Figure 3. In yet another embodiment, these processes or parts thereof may be implemented or executed on one or more virtualized computers, such as those in a cloud-based environment. However, embodiments are not limited thereto, and various combinations of network computers, client computers, etc., may be used. Furthermore, in one or more of the various embodiments, the processes described in relation to Figures 7-10 may be used for an interactive interface for data analysis and report generation according to at least one of various embodiments, architectures, or user interfaces, such as those described in relation to Figures 4-6. Furthermore, in one or more of the various embodiments, some or all of the actions performed by processes 700, 800, 900, and 1000 may be performed in part by a modeling engine 322, a visualization engine 324, etc., which run on one or more processors of one or more network computers.
[0125] Figure 7 shows a schematic flowchart of process 700 for an interactive interface for data analysis and report generation, according to one or more of the various embodiments. Following the START block, in the start block 702, in one or more of the various embodiments, the modeling engine may be provided with a primary visualization that can be displayed on a display panel. As described above, the primary visualization may be selected by the user or automatically selected based on default rules. For example, in some embodiments, a user viewing a visualization may become interested in gaining a better understanding of the underlying data that contributed to the visualization the user is viewing. In this example, the modeling engine may be configured to provide user interface controls (e.g., buttons, menu items, etc.) that enable the user to start an analysis session based on the visualization the user is viewing. Thus, in this example, the visualization being viewed by the user may be provided to the modeling engine as the primary visualization for the analysis session.
[0126] In block 704, in one or more of the various embodiments, the modeling engine may be configured to generate one or more insight items that can be displayed in the insights panel. In some embodiments, the modeling engine may be configured to employ one or more evaluation models to determine one or more insight items that should be listed in the insights panel.
[0127] In decision block 706, in one or more of the various embodiments, if an insight item can be selected, control may proceed to block 708; otherwise, control may loop back to decision block 706. As described above, the insight panel may be configured to allow the user to interact with the listed insight items. For example, in some embodiments, the user may be allowed to employ a pointing device, such as a mouse, to select an insight item by clicking on it using the pointing device.
[0128] In block 708, in one or more of the various embodiments, the modeling engine may be configured to generate another visualization based on selected insight items. In some embodiments, the other visualization may be displayed on the display panel. In some embodiments, the other visualization may be considered a new primary visualization. Also, in some embodiments, the primary visualization used at the start of the analysis session may remain the primary visualization even if other visualizations are displayed on the display panel.
[0129] In one or more of the various embodiments, the modeling engine may be configured to update or modify insight items based on other visualizations. In some embodiments, this may occur when the other visualization is considered the new primary visualization. In other embodiments, insight items may be updated based on the other visualization even if it is not the primary visualization.
[0130] In decision block 710, in one or more of the various embodiments, control may proceed to block 712 if the selected insight item or visualization can be added to the scratch panel; otherwise, control may proceed to decision block 714. In one or more of the various embodiments, the modeling engine may be configured to automatically add the selected visualization or insight item to the scratch panel. In some embodiments, the modeling engine may be configured to selectively add visualizations or insight items to the scratch panel based on user input or other rules.
[0131] In block 712, in one or more of the various embodiments, the modeling engine may be configured to add thumbnail images that may be associated with previous primary visualizations to the scratch panel. In one or more of the various embodiments, visualizations or insight items included in the scratch panel may be shown using thumbnails or other minimized visual representations of the added visualizations or insight items. In some embodiments, the required thumbnails may be minimized views that mimic the appearance of the visualizations or insight items they represent.
[0132] In decision block 714, in one or more of the various embodiments, if the analysis session can be terminated, control may be returned to the calling process; otherwise, control may loop back to decision block 706. In one or more of the various embodiments, the modeling engine may be configured to allow the user to interactively analyze a primary visualization or the underlying data based on insight items listed in the insight panel. Thus, in some embodiments, the session may be terminated if the user terminates the analysis session; otherwise, the user may continue to interact with one or more of the insight panel, scratch panel, display panel, etc., until the analysis session is terminated.
[0133] Next, in one or more of the various embodiments, control may be returned to the calling process.
[0134] Figure 8 shows a flowchart of process 800 for generating a report based on a scratchpad panel, according to one or more of the various embodiments. Following the START block, in the start block 802, in one or more of the various embodiments, the modeling engine may be configured to generate a scratch panel that can list one or more scratch panel items. As described above, in some embodiments, the modeling engine may be configured to provide a scratch panel in order to automatically track or record some or all of the visualizations or insight items that may have been reviewed during the user's analysis session. In some embodiments, the scratch panel provides a visual reference that allows the user to revisit recently viewed visualizations or insight items.
[0135] In decision block 804, if in one or more of the various embodiments a scratch panel item or an insight item can be added to the report panel, control may proceed to block 806; otherwise, control may proceed to decision block 808. In one or more of the various embodiments, as described above, the report panel may be a panel configured to accept visualizations, insight items, or annotations that can be combined with an interactive report that can be stored or shared.
[0136] Therefore, in some embodiments, the modeling engine may be configured to allow the user to select one or more scratch panel items or one or more insight items to add to the report panel.
[0137] In block 806, in one or more of the various embodiments, the modeling engine may be configured to update the report panel with the visualization associated with the scratch panel item. In some embodiments, the modeling engine may be configured to append or prepend the scratch panel item before or after other report items in the report panel. In some embodiments, the scratch panel item may be inserted between two report items in the report panel.
[0138] In some embodiments, the modeling engine may be configured to automatically resize the report panel based on the report items it may contain. Note that in some embodiments, a portion of the report panel (view window) may be displayed, while the rest remains off-screen.
[0139] In decision block 808, in one or more of the various embodiments, annotations may be added to the report panel, and control may proceed to block 810, or control may proceed to decision block 812. In one or more of the various embodiments, annotations may be any item that can be added to the report, such as text, images, comment blocks, legends, summaries, links, bookmarks, etc. In some embodiments, annotations may be selected from sources other than the scratch panel or the insights panel.
[0140] Furthermore, in one or more of the various embodiments, annotations may include additional user interface controls that can be part of an interactive report. For example, one or more report items may be associated with user interface controls that hide or show one or more report items based on user interaction or user input.
[0141] In block 810, in one or more of the various embodiments, the modeling engine may be configured to update the report panel to include annotations. Similar to the description of block 806, the modeling engine may be configured to update the report panel and report to include one or more annotations.
[0142] In decision block 812, in one or more of the various embodiments, if the report session can be terminated, control may be returned to the calling process; otherwise, control may loop back to block 802. In one or more of the various embodiments, the modeling engine may be configured to allow the user to interactively build the report by iteratively adding, moving, or removing items from the report. Thus, when the user finishes the report, the user may remember it for future use or share it with other users.
[0143] Next, in one or more of the various embodiments, control may be returned to the calling process.
[0144] Figure 9 shows a flowchart of process 900 for providing an interactive interface for data analysis and report generation according to one or more of the various embodiments. Following the START block, in the start block 902, in one or more of the various embodiments, a visualization may be provided to the modeling engine. In some embodiments, the modeling engine may be configured to display the visualization on a display. In some embodiments, the visualization may be a primary visualization. In some embodiments, the modeling engine may be configured to allow the user to start an analysis session using the primary visualization. In some embodiments, the initial primary visualization may be considered the primary visualization until the user ends the analysis session or selects a different primary visualization. Alternatively, in some embodiments, the primary visualization may be considered the visualization currently displayed on the display. Thus, in some embodiments, each time a visualization associated with an insight item is selected from the insight panel and displayed on the display panel, it may be considered a new primary visualization. Furthermore, in one or more of the various embodiments, the modeling engine may be configured to provide user interface controls (e.g., buttons, toggles, menu items, etc.) that allow the user to explicitly assign a visualization as a primary visualization.
[0145] In one or more of the various embodiments, the primary visualization may be considered the visualization that drives the determination of the insight items.
[0146] In block 904, in one or more of the various embodiments, the modeling engine may be configured to determine data sources or one or more data models that may be associated with the primary visualization. In one or more of the various embodiments, the modeling engine may be configured to determine data sources or data models associated with the primary visualization based on lookup tables, maps, catalogs, etc. that associate the data sources or data models with the visualization. In some embodiments, the visualization model associated with the primary visualization may define the data sources or data models associated with the primary visualization.
[0147] In block 906, in one or more of the various embodiments, the modeling engine may be configured to generate one or more field insight items. In one or more of the various embodiments, the field insight items may be insight items related to recommending one or more data fields that can provide insights about the meaning of the primary visualization. For example, if the primary visualization includes a value based on a combination of two or more data fields, the relevant field insight item may be a plot of the individual data fields combined in the primary visualization to provide insights about how each component data field contributes to the value displayed in the primary visualization. Similarly, in some embodiments, the field insight items may be data fields that are often used in combination with one or more of the data fields used in the primary visualization. For example, if the modeling engine identifies one or more data fields that are commonly used with one or more data fields in the primary visualization, these data fields may be considered insight items.
[0148] In one or more of the various embodiments, field insight items may be associated with narrative information that can explain the relevance of each field insight item. Similarly, field insight items may be associated with insight scores that can be used to rank field insight items against one another. As described above, specific actions or criteria performed to identify or evaluate field insight items may be defined in one or more evaluation models.
[0149] In block 908, in one or more of the various embodiments, the modeling engine may be configured to generate one or more trend insight items. Similar to field insight items, trend insight items may be associated with visualizations or data fields that show trends associated with one or more data fields or data objects associated with the primary visualization. For example, if the primary visualization includes a plot based on aggregated values of data fields, a visualization that includes a plot of component field values over time may be a candidate trend insight item.
[0150] Similar to field insight items, in some embodiments, trend insight items may be associated with narrative information that can explain the relevance of each trend insight item. Similarly, in some embodiments, trend insight items may be associated with insight scores that can be used to rank trend insight items against one another. As described herein, specific actions or criteria performed to identify or evaluate trend insight items may be defined in one or more evaluation models.
[0151] In block 910, in one or more of the various embodiments, the modeling engine may be configured to generate one or more other insight items. Those skilled in the art will understand that field insight items or trend insight items represent non-limiting examples of the types of insight items that can be determined. Accordingly, in some embodiments, evaluation models may be provided for determining different types of insight items based on various criteria. In some embodiments, the criteria may be tailored to local needs or requirements. Accordingly, in some embodiments, the modeling engine may be configured to employ any number of evaluation models to determine different types of insight items. In some embodiments, the modeling engine may be configured to determine the type of insight item or which evaluation model to employ based on rules, instructions, classifiers, etc., provided via configuration information.
[0152] In block 912, in one or more of the various embodiments, the modeling engine may be configured to list insight items in an insight panel that can be displayed in a user interface. In some embodiments, a determined insight item may initially be considered a candidate insight item until it is listed in the insight panel. Thus, in some embodiments, the modeling engine may be configured to employ various criteria, such as an insight score, to determine which of the candidate insight items should be listed in the insight panel. In some embodiments, user or organizational preferences may influence which insight items can be listed in the insight panel. For example, in some embodiments, the modeling engine may be configured to allow a user or organization to limit the number of insight items that should be listed in the insight panel. Similarly, in some embodiments, the modeling engine may be configured to allow a user or organization to set preference values for including all types of insight items in the list for the insight panel or excluding certain types from the list for the insight panel.
[0153] Next, in one or more of the various embodiments, control may be returned to the calling process.
[0154] Figure 10 shows a flowchart of process 1000 for determining insight items that provide an interactive interface for data analysis and report generation, according to one or more of the various embodiments. Following the START block, in the start block 1002, in one or more of the various embodiments, visualizations, one or more data models, one or more data sources, etc., may be provided to the modeling engine. As described above, the modeling engine may be provided with a primary visualization that can be associated with a data model or data source. In some embodiments, the modeling engine may be configured to determine a data model or data source from a visualization based on a table, map, list, etc., that maintains a record of which data models or data sources can be associated with a given visualization. In some embodiments, the visualization model on which the visualization is based may be configured to include a reference or identifier that enables the modeling engine to determine a data model or data source associated with the visualization. Furthermore, in some embodiments, another process, such as a visualization engine, may be configured to provide an API that enables the modeling engine to determine a data model or data source based on the visualization or visualization model.
[0155] In block 1004, in one or more of the various embodiments, the modeling engine may be configured to determine one or more evaluation models. In one or more of the various embodiments, the modeling engine may be configured to employ different evaluation models for different types of insight items. In some embodiments, one or more evaluation models may be associated with a particular data model, data source, or visualization. Similarly, in some embodiments, one or more evaluation models may be configured to employ several or all data models, data sources, visualizations, etc., to determine insight items.
[0156] In some embodiments, a user or organization may be able to associate some or all evaluation models with data models, data sources, or visualizations to reflect the user's or organization's preferences. For example, in one or more of the various embodiments, an organization may prefer to employ a limited number of evaluation models to comply with various constraints, such as resource limits or licensing restrictions. Also, in some embodiments, a user or organization may prefer to use certain types of insight items over others. Therefore, in some embodiments, the modeling engine may be configured to employ one or more rules, instructions, preference information, etc., provided via configuration information that can determine whether an evaluation model should be employed to determine the insight items for a visualization.
[0157] Furthermore, in one or more of the various embodiments, the modeling engine may be configured to determine two or more evaluation models and to simultaneously employ them for the determined insight items.
[0158] In block 1006, in one or more of the various embodiments, the modeling engine may be configured to determine one or more candidate insight items based on the evaluation model. As described above, the evaluation model may be configured to identify one or more insight items based on determining visualizations, data fields, data models, etc., that meet the criteria defined by the individual evaluation model. In some embodiments, the evaluation model may be configured to assign insight scores that may allow insight items provided by the same or different evaluation models to be ranked. Thus, in some embodiments, insight items that have not been confirmed to be displayed in the insight panel may be considered candidate insight items.
[0159] In block 1008, in one or more of the various embodiments, the modeling engine may be positioned to display one or more of the insight items in the insight panel.
[0160] In one or more of the various embodiments, the modeling engine may be configured to perform one or more actions to select, sort, or filter candidate insight items determined by the evaluation model. In one or more of the various embodiments, the modeling engine may be enabled to select, sort, or filter candidate insight items based on various criteria, including insight scores, user / organization selection, licensing restrictions, and data access restrictions. For example, the modeling engine may be configured to ignore insight items with insight scores below a threshold. Similarly, for example, the modeling engine may be configured to ignore insight items based on visualizations or data that users are restricted from viewing or accessing.
[0161] Therefore, in some embodiments, the modeling engine may determine that some or all of the candidate insight items are insight items that should be displayed in the insight panel.
[0162] Next, in one or more of the various embodiments, control may be returned to the calling process.
[0163] It will be understood that each block in each flowchart diagram, and each combination of blocks in each flowchart diagram, can be implemented by computer program instructions. These program instructions may be provided to a processor to generate a machine such that instructions executed on the processor create means for implementing the actions specified in one or more flowchart blocks. Computer program instructions may be executed by a processor to generate a computer implementation process by having the processor execute a series of operational steps such that instructions executed on the processor provide steps for implementing the actions specified in one or more flowchart blocks. Computer program instructions may also cause at least some of the operational steps shown in each flowchart block to be executed simultaneously. Furthermore, some of the steps may also be executed across two or more processors, as may occur in a multiprocessor computer system. In addition, one or more blocks or combinations of blocks in each flowchart diagram may be executed simultaneously with other blocks or combinations of blocks, or in a different order than those shown, without departing from the scope or spirit of the invention.
[0164] Accordingly, each block in each flowchart supports a combination of means for performing a specified action, a combination of steps for performing a specified action, and a means of program instructions for performing a specified action. It will also be understood that each block in each flowchart, and each combination of blocks in each flowchart, can be implemented by a dedicated hardware-based system for performing a specified action or step, or by a combination of dedicated hardware and computer instructions. The examples described above should not be interpreted as limiting or exhaustive, but rather as illustrative use cases to illustrate at least one implementation of various embodiments of the present invention.
[0165] Furthermore, in one or more embodiments (not shown), the logic in the exemplary flowchart may be executed using an embedded logic hardware device, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable array logic (PAL), or a combination thereof, instead of a CPU. The embedded logic hardware device may directly execute its embedded logic to perform actions. In one or more embodiments, a microcontroller may be configured, such as a system-on-a-chip (SOC), to directly execute its own embedded logic to perform actions and to access its own internal memory and its own external input and output interfaces (e.g., hardware pins or wireless transceivers) to perform actions.
Claims
1. A method for managing data visualizations using one or more processors that execute instructions configured to perform actions, A step of providing a primary visualization associated with a data model, wherein the primary visualization is displayed on a graphical user interface (GUI) display panel, In response to user interaction between the GUI and the display panel, A step of generating insight items and associated natural language narratives based on the data model, wherein the insight items include an insight visualization and the associated natural language narratives that describe the meaning of the insight items and the relevance of one or more trends or insights associated with the insight items. The steps include employing the GUI to display an insight panel that provides an interactive display of the insight items and the associated natural language narratives, The steps include selecting an insight item in response to user interaction with the insight panel displayed by the GUI, The steps of displaying the insight items on the display panel instead of the primary visualization, and Steps to perform actions including, A step of generating a different visualization in response to the selection of one of the insight items displayed on the insight panel or the scratch item displayed on the scratch panel, wherein the different visualization is displayed on the display panel in place of the currently displayed visualization. A method that includes this.
2. A step of generating one or more insight items based on the primary visualization and the data model, wherein the one or more insight items correspond to one or more analytical information related to one or more visualizations that share one or more parts of the data model, another data model, or a data source. The method according to claim 1, further comprising:
3. A step of generating one or more narratives to be displayed in the insight panel, wherein the one or more narratives describe the context of the displayed insight items. The method according to claim 1, further comprising:
4. A step that provides a correspondence between the aforementioned insight items and one or more analytical information, another data model, or data sources related to one or more visualizations that share one or more parts of the aforementioned data model. The method according to claim 1, further comprising:
5. The steps include generating a visualization to be displayed on the display panel in place of the primary visualization in response to the selection of the aforementioned insight item, The steps include generating a scratch item that includes a thumbnail view of the primary visualization for display in the scratch panel, and The method according to claim 1, further comprising:
6. The step of generating the aforementioned insight items is: The steps include employing one or more evaluation models to generate one or more candidate insight items associated with one or more insight scores, The steps include determining the insight items based on the candidate insight items having one or more insight scores that exceed a threshold, and The method according to claim 1, further comprising:
7. A network computer for managing data visualization, At least memory to store instructions, One or more processors that execute instructions configured to perform an action The action includes, A step of providing a primary visualization associated with a data model, wherein the primary visualization is displayed on a graphical user interface (GUI) display panel, In response to user interaction between the GUI and the display panel, A step of generating insight items and associated natural language narratives based on the data model, wherein the insight items include an insight visualization and the associated natural language narratives that describe the meaning of the insight items and the relevance of one or more trends or insights associated with the insight items. The steps include employing the GUI to display an insight panel that provides an interactive display of the insight items and the associated natural language narratives, The steps include selecting an insight item in response to user interaction with the insight panel displayed by the GUI, The steps of displaying the insight items on the display panel instead of the primary visualization, and Steps to perform actions including, A step of generating a different visualization in response to the selection of one of the insight items displayed on the insight panel or the scratch item displayed on the scratch panel, wherein the different visualization is displayed on the display panel in place of the currently displayed visualization. Network computers, including
8. A step of generating one or more insight items based on the primary visualization and the data model, wherein the one or more insight items correspond to one or more analytical information related to one or more visualizations that share one or more parts of the data model, another data model, or a data source. The network computer according to claim 7, further comprising:
9. A step of generating one or more narratives to be displayed in the insight panel, wherein the one or more narratives describe the context of the displayed insight items. The network computer according to claim 7, further comprising:
10. A step that provides a correspondence between the aforementioned insight items and one or more analytical information, another data model, or data sources related to one or more visualizations that share one or more parts of the aforementioned data model. The network computer according to claim 7, further comprising:
11. The steps include generating a visualization to be displayed on the display panel in place of the primary visualization in response to the selection of the aforementioned insight item, The steps include generating a scratch item that includes a thumbnail view of the primary visualization for display in the scratch panel, and The network computer according to claim 7, further comprising:
12. The step of generating the aforementioned insight items is: The steps include employing one or more evaluation models to generate one or more candidate insight items associated with one or more insight scores, The steps include determining the insight items based on the candidate insight items having one or more insight scores that exceed a threshold, and The network computer according to claim 7, further comprising:
13. A processor-readable non-temporary storage medium containing instructions configured to manage data visualization, wherein the execution of the instructions by one or more processors enables the execution of an action, and the action is A step of providing a primary visualization associated with a data model, wherein the primary visualization is displayed on a graphical user interface (GUI) display panel, In response to user interaction between the GUI and the display panel, A step of generating insight items and associated natural language narratives based on the data model, wherein the insight items include an insight visualization and the associated natural language narratives that describe the meaning of the insight items and the relevance of one or more trends or insights associated with the insight items. The steps include employing the GUI to display an insight panel that provides an interactive display of the insight items and the associated natural language narratives, The steps include selecting an insight item in response to user interaction with the insight panel displayed by the GUI, The steps of displaying the insight items on the display panel instead of the primary visualization, and Steps to perform actions including, A step of generating a different visualization in response to the selection of one of the insight items displayed on the insight panel or the scratch item displayed on the scratch panel, wherein the different visualization is displayed on the display panel in place of the currently displayed visualization. Processor-readable non-temporary storage medium, including [specific data / features].
14. A step of generating one or more insight items based on the primary visualization and the data model, wherein the one or more insight items correspond to one or more analytical information related to one or more visualizations that share one or more parts of the data model, another data model, or a data source. The processor-readable non-temporary storage medium according to claim 13, further comprising:
15. A step of generating one or more narratives to be displayed in the insight panel, wherein the one or more narratives describe the context of the displayed insight items. The processor-readable non-temporary storage medium according to claim 13, further comprising:
16. A step that provides a correspondence between the aforementioned insight items and one or more analytical information, another data model, or data sources related to one or more visualizations that share one or more parts of the aforementioned data model. The processor-readable non-temporary storage medium according to claim 13, further comprising:
17. The steps include generating a visualization to be displayed on the display panel in place of the primary visualization in response to the selection of the aforementioned insight item, The steps include generating a scratch item that includes a thumbnail view of the primary visualization for display in the scratch panel, and The processor-readable non-temporary storage medium according to claim 13, further comprising:
Citation Information
Patent Citations
Display control device, display control method and computer program
JP2010250510A
Device, method, and program for outputting management information based upon state of management object
JP2014126948A
Energy analysis support device and energy analysis support method
JP2015230638A
Automated Presentation of Visualized Data
US20140331179A1
Automatic insights for spreadsheets
US20170177559A1