Data analysis and visualization using structured data tables and nodal networks

Information

  • Patent Grant
  • 12169504
  • Patent Number
    12,169,504
  • Date Filed
    Monday, October 16, 2023
    a year ago
  • Date Issued
    Tuesday, December 17, 2024
    5 days ago
  • Inventors
  • Original Assignees
    • CHORAL SYSTEMS, LLC (Milton, GA, US)
  • Examiners
    • Dwivedi; Mahesh H
    Agents
    • Foley & Lardner LLP
Abstract
Disclosed are methods and computer systems to generate, update, traverse, and analyze a nodal data structure based on data associated with an entity. The methods and systems disclosed herein describe a server that can generate and link various nodes in a nodal network and parse data into unique data tables. The server then displays a web document having a set of words where each word corresponds to a data table. When a user interacts with a word within the web document, the server identifies a set of nodes associated with the word with which the user has interacted. The server then executes one or more analytical protocols using the identified nodes and displays the results.
Description
TECHNICAL FIELD

This application relates generally to data retrieval, storage, and display techniques using data tables and nodal networks. More specifically, this application is directed towards structuring data.


BACKGROUND

As the processing power of computers allow for greater computer functionality and the Internet technology era allows for interconnectivity between computing systems, many organizations collect large volumes of data. The wide range of data collected may include in-person customer transaction data, online transaction data, internal communication data, and the like. Many organizations analyze the data in order to have a better understanding of their organization, such as customer relations, organizational efficiency, and the like. For instance, an organization may analyze existing customer transactions in order to provide better services to customers and/or to perform more efficiently.


“Big data” includes data sets that are too large for traditional data-processing application software. The data sets may be structured, semi-structured, and unstructured data. There is value to the information in these data sets, but because of the volume and variety of data, conventional solutions are not able to navigate the data sets efficiently, thereby delaying decision-making and precluding solutions that rely on comprehending the information.


Conventional and existing methods analyze large volumes of data by executing various queries using different thresholds to identify insights. For instance, an administrator can access an online tool and identify unsatisfied customers or inefficient procedures performed at an organization. However, since the implementation of these online tools, several technical shortcomings have been identified and have created a new set of challenges. For instance, existing and conventional methods require high processing power and computing resources due to the high volume of data existing on different networks and computing infrastructures. Managing such information on different platforms is difficult due to number, size, content, or relationships of the structured and/or unstructured data associated with the customers.


Moreover, conventional visualization tools do not provide an efficient method of navigating large volumes of data. Conventional and existing visualization techniques only focus on filtering data. For instance, users must define various thresholds and filters in order to create a more granular view. These methods are inefficient for two reasons. First, these methods shift the burden of data navigation to users. Second, these methods do not provide a systematic and consistent approach to visualizing large volumes of data.


SUMMARY

For the aforementioned reasons, there is a need to develop an intelligent method to uniquely structure data and generate computer models based on the structured data in order to analyze data more efficiently. There is also a need to visualize data using a systematic and consistent approach. For instance, there is a need to visualize data in a manner that is consistent with nodal networks or other structured data modeled after large volumes of data.


In an embodiment, a method comprises parsing, by a server, data into a set of domain data tables, each domain data table corresponding to a domain having a first criterion; parsing, by the server, each domain data table into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion; generating, by the server, a nodal network comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension table corresponding to data associated with each node; linking, by the server, one or more nodes based their respective metadata; and displaying, by the server, a web document having a set of words on a graphical user interface, wherein when a user interacts with at least one word, the server: identifies a node associated with the word with which the user has interacted; and presents for display a window on the graphical user interface displaying data associated with the identified node.


In another embodiment, a system comprises a server comprising a processor and a non-transitory computer-readable medium containing instructions that when executed by the processor causes the processor to perform operations comprising: parse data into a set of domain data tables, each domain data table corresponding to a domain having a first criterion; parse each domain data table into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion; generate a nodal network comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension table corresponding to data associated with each node; link one or more nodes based their respective metadata; and display a web document having a set of words on a graphical user interface, wherein when a user interacts with at least one word, the server: identifies a node associated with the word with which the user has interacted; and presents for display a window on the graphical user interface displaying data associated with the identified node.


In another embodiment, a method comprises parsing, by a server, data into a set of domain data tables, each domain data table corresponding to a domain having a first criterion; parsing, by the server, each domain data table into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion; generating, by the server, a nodal network comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension data table corresponding to data associated with each node; linking, by the server, one or more nodes based their respective metadata; executing, by the server, a clustering algorithm to generate one or more clusters of nodes, each cluster having a subset of the set of nodes, wherein the subset of nodes in each cluster has at least one common attribute; and upon receiving a request from a user computing device: identifying, by the server, a cluster of nodes associated with the request; and presenting, by the server for display on a graphical user interface of the user computing device, data associated with nodes within the identified cluster of nodes.


In another embodiment, a system comprise a server comprising a processor and a non-transitory computer-readable medium containing instructions that when executed by the processor causes the processor to perform operations comprising: parse data into a set of domain data tables, each domain data table corresponding to a domain having a first criterion; parse each domain data table into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion; generate a nodal network comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension data table corresponding to data associated with each node; link one or more nodes based their respective metadata; execute a clustering algorithm to generate one or more clusters of nodes, each cluster having a subset of the set of nodes, wherein the subset of nodes in each cluster has at least one common attribute; and upon receiving a request from a user computing device: identify a cluster of nodes associated with the request; and present, for display on a graphical user interface of the user computing device, data associated with nodes within the identified cluster of nodes.


In an embodiment, a method comprises parsing, by the server, data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criteria; parsing, by the server, each unique data table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criteria; generating, by a server, a nodal network comprising a set of nodes where each node represents at least a portion of the collected data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to the data associated with each node; linking, by the server, one or more nodes based their respective metadata; upon receiving an instruction from a user computing device: parsing, by the server, the instruction to identify a node associated with the request, displaying, by the server on a graphical user interface of the user computer device, data associated with the identified node where the display is in accordance with formatting data contained with the identified node's path.


In another embodiment, a method of visualizing data corresponding to a nodal network comprises dividing, by a server, a display screen into a first and a second graphical components; dynamically populating, by the server, the first graphical component with data corresponding to a node where the server displays a first set of hyperlinks corresponding to one or more child nodes of the node; upon receiving an indication that a user has interacted with a first hyperlink of the first of hyperlinks, identifying, by the server, a child node corresponding to the first hyperlink; dynamically populating, by the server, the second graphical component with data corresponding to the identified child node where the server displays a second set of hyperlinks corresponding to one or more subsequent child nodes of the identified child node; upon receiving an indication that a user has interacted with a second hyperlink of the second set of hyperlinks, identifying, by the server, a subsequent child node corresponding to the second hyperlink; and dynamically populating, by the server, the second graphical component with data corresponding to the identify a subsequent child node.


In yet another embodiment, a method comprises parsing, by the server, data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion, wherein the server identifies data associated with cybersecurity activity and generates a unique data table for cybersecurity domain; parsing, by the server, each unique data table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion; generating, by a server, a nodal network comprising a set of nodes where each node represents at least a portion of the collected data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to the data associated with each node; linking, by the server, one or more nodes based their respective metadata; and upon receiving an instruction from a user computing device to display cybersecurity data, displaying, by the server on a graphical user interface of the user computing device, a multi-dimensional cybersecurity matrix indicating a likelihood of a cyber-attack and an impact value of the cyber-attack.


In another embodiment, a method of analyzing structured and unstructured data using relational computer models comprises parsing, by the server, data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion; disaggregating, by the server, each unique data table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion; generating, by the server, a set of nodal networks comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to data associated with each node, wherein the one or more nodes within each nodal network is linked based on its respective metadata; upon receiving a request from a user computing device: parsing, by the server, the request to identify a nodal network associated with the request; iteratively executing, by the server, an analytical protocol on the data corresponding to the nodes within the identified nodal network; and displaying, by the server on a graphical user interface of the user computing device, data associated with the execution of the analytical protocol.


In another embodiment, a method of analyzing structured and unstructured data using relational computer models comprises parsing, by the server, data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion; disaggregating, by the server, each unique data table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion; generating, by the server, a set of nodal networks comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to data associated with each node, wherein the one or more nodes within each nodal network is linked based on its respective metadata; upon receiving a request from a user computing device: parsing, by the server, the request to identify a nodal network associated with the request; iteratively executing, by the server, an analytical protocol on the data corresponding to the nodes within the identified nodal network; and displaying, by the server on a graphical user interface of the user computing device, data associated with the execution of the analytical protocol.





BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting embodiments of the present disclosure are described by way of example with reference to the accompanying figures, which are schematic and are not intended to be drawn to scale. Unless indicated as representing the background art, the figures represent aspects of the disclosure.



FIG. 1 illustrates components of an intelligent data analysis system, according to an embodiment.



FIG. 2 is a flow diagram of a process executed by an intelligent data analysis system, according to an embodiment.



FIG. 3A-B illustrate different embodiments of data tables and nodal networks modeled based on data, according to an embodiment.



FIG. 4 illustrates a visual representation of the nodal network modeled based on data, according to an embodiment.



FIGS. 5-47 illustrate examples of different graphical user interfaces displayed by the intelligent data analysis system, according to an embodiment.



FIG. 48 illustrates a flow diagram of a process executed by an intelligent data analysis system, according to an embodiment.



FIGS. 49-51 illustrate examples of data tables generated by an intelligent data analysis system, according to an embodiment.



FIGS. 52-53 illustrate examples of different graphical user interfaces displayed by the intelligent data analysis system, according to an embodiment.



FIGS. 54A-G illustrate a cybersecurity protocol used by the analytics server, according to an embodiment.



FIG. 55 illustrates a graphical user interface displayed by the intelligent data analysis system, according to an embodiment.



FIG. 56 illustrates a visual representation of interconnected data tables, according to an embodiment.



FIG. 57 illustrates a visual representation of interconnected data tables, according to an embodiment.



FIG. 58 illustrates a visual representation of interconnected data tables, according to an embodiment.



FIGS. 59A-E illustrate examples of freeform diagrams displayed by the intelligent data analysis system, according to an embodiment.



FIG. 60 illustrates a flow diagram of a process executed by the intelligent data analysis system, according to an embodiment.



FIG. 61 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 62 illustrates examples of identifying the relationships between request and different domains, according to an embodiment.



FIG. 63 illustrates examples of identifying the relationships between request and different domains, according to an embodiment.



FIG. 64 illustrates examples of identifying the relationships between request and different domains, according to an embodiment.



FIG. 65 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIGS. 66A-B illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 67 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 68 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 69 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 70 illustrates a graphical representation of different data tables within a nodal network, according to an embodiment.



FIG. 71 illustrates a data table representing interrelationships between other data tables, according to an embodiment.



FIG. 72A-B illustrate a visual representation of a mental model, according to an embodiment.



FIG. 73A-D illustrate a visual representation of iterative execution of an analytical protocol, according to an embodiment.



FIGS. 74A-B illustrates an overall diagram describing the disclosed platform (the platform generated, updated, and displayed by the analytics server), according to an embodiment.



FIGS. 75A-F illustrate an example of traversing (analyzing and viewing) the data associated with the nodal data structure, according to an embodiment.



FIG. 76 illustrates a flow diagram of a process executed by an intelligent data analysis system, according to an embodiment.



FIG. 77 illustrates a visual representation of a non-limiting example of data prioritization, according to an embodiment.



FIG. 78 illustrates a flow diagram of a process executed by an intelligent data analysis system, according to an embodiment.



FIG. 79 illustrates a visual representation of a non-limiting example of data prioritization, according to an embodiment.





DETAILED DESCRIPTION

References will now be made to the illustrative embodiments depicted in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the claims or this disclosure is thereby intended. Alterations and further modifications of the inventive features illustrated herein, and additional applications of the principles of the subject matter illustrated herein, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the subject matter disclosed herein. Other embodiments may be used and/or other changes may be made without departing from the spirit or scope of the present disclosure. The illustrative embodiments described in the detailed description are not meant to be limiting of the subject matter presented.



FIG. 1 is a block diagram illustrating an intelligent data analysis system 100 that includes an analytics server 110 (having a database 111 and a nodal network 112), administrative computer 130, user computing devices 140, and electronic data sources 150. The above-mentioned components may be connected to each other through a network 120. Non-limiting examples of the network 120 may include private or public LAN, WLAN, MAN, WAN, and the Internet.


The network 120 may include both wired and wireless communications according to one or more standards and/or via one or more transport mediums. The communication over the network 120 may be performed in accordance with various communication protocols such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), and IEEE communication protocols. In one example, the network 120 may include wireless communications according to Bluetooth specification sets, or another standard or proprietary wireless communication protocol. In another example, the network 120 may also include communications over a cellular network, including, e.g., a GSM (Global System for Mobile Communications), CDMA (Code Division Multiple Access), and EDGE (Enhanced Data for Global Evolution) network.


The analytics server 110 may be any computing device comprising a processor and non-transitory machine-readable storage capable of executing the various tasks and processes described herein. Non-limiting examples of such computing devices may include workstation computers, laptop computers, server computers, laptop computers, and the like. While the system 100 includes a single analytics server 110, in some configurations, the analytics server 110 may include any number of computing devices operating in a distributed computing environment to achieve the functionalities described herein. Furthermore, even though the database 111 is shown as an in memory database, in some configurations, the database 111 may be a remote database, cloud computing data storage, and/or data storage operationally controlled by a third party.


In an embodiment, the analytics server 110 may be configured to continuously and/or periodically retrieve data from different electronic sources 150, structure the retrieved data by generating various domain and dimension tables, and generate/revise the nodal network 112 accordingly. The analytics server 110 may also store all relevant data into the database 111. The analytics server 110 is also program to parse and unify data collected from the electronic data sources 150. For instance, data collected from the electronic data sources 150 may be in different formats. As a result, the analytics server may unify and/or normalize the data before generating and/or revising the nodal network 112.


As will be described below, the nodal network 112 is a computer model that uniquely structures the retrieve data. The data uniquely structured may be consumed by different electronic sources, user interfaces, user-computing devices, and the like. Therefore, the data structured by the analytics server 110 is uniform and unified, thereby avoiding the need to configure data to different computing systems. For instance, different computing devices belonging to different computing infrastructures may consume data structured by the analytics server 110 without needing to modify or revise their system architecture or configurations.


As will be described below, upon retrieving data, the analytics server 110 may first generate multiple data structures/tables by disaggregating data based on identifying a domains and dimensions for the retrieve data. The analytics server 110 may then generate the nodal network 112 based on the data tables (e.g., domain data tables and dimension data tables).


Upon generating the nodal network 112, the analytics server 110 may display a graphical user interface (GUI) on the user computing devices 140 and/or administrative computer 130. An example of the GUI generated and hosted by the analytics server 110 may be a web-based application or a website, as depicted in FIGS. 5-47. The analytics server 110 may also host a website accessible to end-users (e.g., an employee operating computer 140A-C), where the content presented via the various webpages may be controlled based upon each particular user's role.


The analytics server 110 may execute software applications configured to display the GUI (e.g., host a website), which may generate and serve various webpages to each user computing devices 140 and/or the administrative computer 130. Different users operating the user computing devices 140 may use the website to generate, upload, access, and store data (e.g., files) stored on database 111 and the nodal network 112.


The analytics server 110 may be configured to require user authentication based upon a set of user authorization credentials (e.g., username, password, biometrics, cryptographic certificate, and the like). In such implementations, the analytics server 110 may access the database 111 configured to store user credentials, which the analytics server 110 may be configured to reference in order to determine whether a set of entered credentials (purportedly authenticating the user) match an appropriate set of credentials that identify and authenticate the user. In some implementations, the analytics server 110 may incorporate the GUI into a third-party application, such as an internal customer relation management application, third-party email application, and/or organization management application while preserving the “look and feel” of the third-party application.


The analytics server 110 may generate and host webpages (displaying the GUIs) based upon a particular user's role within the system 100 (e.g., administrator, employee, or the employer). In such implementations, the user's role may be defined by data fields and input fields in user records stored in the database 111. The analytics server 110 may authenticate each user and may identify the user's role by executing an access directory protocol (e.g., LDAP). The analytics server 110 may generate webpage content, access, or generate data stored onto the nodal network 112, according to the user's role defined by the user record in the database 111. For instance, a user may be defined as a lower level employee who may not be authorized to view all related content to a particular sensitive file. Therefore, the analytics server 110 may customize the GUI according to the user's authentication level. Furthermore, the analytics server 110 may customize the GUI according to a user's role (e.g., function type). For instance, the analytics server 110 may customize the GUI based on whether a user is a designer or an account manager.


User computing devices 140 may be any computing device comprising a processor and a non-transitory machine-readable storage medium capable of performing the various tasks and processes described herein. Non-limiting examples of a user-computing device 140 may be a workstation computer, laptop computer, tablet computer, and server computer. As depicted in FIG. 1, the user computing devices 140 may each be operated by a user within an organizational network. For instance, user-computing devices 140 may represent all computing devices operated by all employees of an organization. User computing devices 140 may be internally interconnected via an internal and/or private network (not shown). For instance, a company's intranet or any other private network may connect all the company's computing devices 140.


Electronic data sources 150 may represent any electronic data storage 150A (e.g., local database, computing devices within an organization, cloud computing systems, third-party data storage systems, and homegrown data repositories). These storages may store customer interaction, system configuration, and interactions and other information related to all computing systems utilized via an organization. For instance, electronic data storage 150A may store data associated with monetary transfers between different branches and/or all teller transactions at a bank.


The electronic data sources 150 may also include various devices configured to transmit data to the analytics server. For instance, the electronic data sources 150 may include ATM machines or other point-of-sale terminals 150B. The ATMS or point-of-sale terminals may include local databases and/or may directly transmit transaction data (e.g., customer information, transaction amount, transaction time) to the analytics server 110. The transmission of transaction data may be done in real-time or in batches on periodic basis. In some configurations, the analytics server 110 may retrieve transaction data at any time from one or more ATMS or point-of-sale terminals.


The electronic data sources may also include a webserver 150D configured to store online interactions or other customer facing websites. In some configurations, a webserver may be configured to store all interactions between a website (whether internal or customer facing). For instance, the webserver 150D may store all information associated with the website or any other electronic application of an organization within a database. Non-limiting examples of data stored within the database may include data associated with cyber-attacks, website maintenance data, data associated with updating the website, and the like.


The electronic data sources 150 may also include a computer 150E which represents an employee computer. As described throughout this disclosure, the analytics server 110 may actively monitor interactions between an organization and its customers/users. Furthermore, the analytics server 110 may also monitor internal interactions between employees. Computer 150E represents an employee computer.


When retrieving data from different electronic sources 150, the analytics server 110 may execute various scanning and crawling protocols to identify and map data stored onto each electronic data source 150.


As discussed above, upon collecting data from different electronic data sources 150, the analytics server 110 may generate different data tables and a computer model comprising a nodal network 112 (or nodal data structure) where each node represents an identified file or relevant data. The analytics server 110 may store the nodal network 112 in the database 111 or any other electronic data repository, such as a cloud bases storage, local/internal data storage, distributed storage, blockchain, and the like.


The nodal network 112 may be a complete map of all data identified as a result of scanning and crawling different electronic data sources 150. Each node may also contain metadata further comprising historical (e.g., context) data associated with the collected/retrieved data. For instance, if the analytics server 110 identifies a file stored on to an employee computer, the analytics server 110 may designate a node to the identified file wherein the node comprises metadata corresponding to the file, such as title, mime type, file permissions, comments, date/time of creation, and the like. The metadata may also include a unique identifier (e.g., user ID, IP address, MAC address and the like) of the user and/or the computing device who created/revised/and or accessed the file. The unique identifier may identify the user and/or the user's computer. The unique identifier may identify all computers and/or users within a certain department of an organization (e.g., accounting, IT, or bank tellers).


As will be described below, the metadata may also include an identification of one or more data structures/tables (e.g., domain tables and dimension tables). The analytics server 110 may parse and disaggregate the data and generate different data structures/tables. The nodes within the nodal network 112 may correspond to the hierarchical structure of the data. For instance, the analytics server 110 may model the nodal network 112 in accordance with how data is distributed within different data structures/tables (e.g., domain tables and dimension tables). Moreover, as will be described below, when the analytics server 110 identifies that data represented by two node are related, the analytics server 110 may link the related nodes.


In operation, the analytics server 110 may continuously or periodically retrieve data from the electronic data sources 150 and may continuously or periodically revise the data structures/tables and the nodal network 112. Therefore, the knowledge obtained via the nodal network 112 may never be complete and is continuously updated by the analytics server 110.


To efficiently access a node and to retrieve all related data, the analytics server 110 may index each node based on its associated metadata and/or links. The analytics server 110 may also make each node searchable based on its metadata and/or links. To identify a node and/or to traverse the nodal network 112, the analytics server may utilize one or more existing methodologies (e.g., Solr®). Indexing the nodes within the nodal network 112 allows the nodes to be searchable by their associated metadata and/or links. In this way, as opposed to all files stored in a central data repository, the analytics server 110 can identify nodes and retrieve related metadata in real-time or near real-time using less computing power and resources.



FIG. 2 is flow diagram of a process executed by the intelligent data analysis system, according to an embodiment. The method 200 includes steps 210-250. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 200 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 2 may be locally performed by one or more user computing devices or an administrative computing device. Furthermore, even though some aspects of the method 200 are described in the context of collecting data associated with banking computing systems, it is expressly understood that method 200 is applicable to collecting, structuring, and analyzing any data.


At step 210, the analytics server may retrieve data from one or more electronic data sources. The analytics server may continuously/periodically scan the electronic data sources and/or crawl electronic data repositories accessible to the electronic data sources to collect data. The analytics server may scan and/or crawl the electronic data sources to identify and collect all files stored onto the electronic data sources and/or data repositories accessible to the electronic data sources. For instance, the analytics server may transmit an instruction to one or more ATMS where the instruction is configured to cause a local database of the ATMS to transmit all transaction data to the analytics server. In another example, the analytics server may transmit an instruction to a database associated with a customer-facing website where the instruction is configured to cause the database to transmit all customer interactions with the website, such as all online transactions or purchases. In another example, the analytic server may crawl one or more employee computers to identify all files accessible/stored onto the employee computers and/or data repositories accessible to such computers (e.g., third party database or a cloud storage system accessible to the employee computers).


In some configurations, the analytics server may require all users to create accounts and grant permission to the analytics server to periodically monitor files and other data accessible to each user. The analytics server may provide a web-based application displaying various prompts allowing each user to grant the analytics server permission to periodically monitor all data (e.g., files) accessible and/or stored onto each user's computer. During the account registration process, the web-based application may display one or more prompts allowing each user to connect his or her email accounts, messaging tools, task management tools, project management tools, calendars, organizational or knowledge management tools, other collaborative tools and/or electronic repository systems (e.g., local database, cloud storage systems, and the like) to the analytics server.


The prompt may also include one or more text input fields where each user can input identification and authentication credentials for his email accounts, messaging tools, electronic repository systems, and/or third party applications, such as project management tool, time tracking applications, billing, issue tracking, web accounts, and other online applications. For example, a user may enter his email address and password in the input fields displayed by the analytics server. Upon receipt, the analytics server may use the authentication credentials to remotely login the above-described portals and monitor all files accessible and/or revised by each user and/or all files saved on the electronic data repositories.


Upon receiving permission from users, the analytics server may scan the one or more electronic data sources including electronic data repositories accessible to each user. The analytics server may execute a scanning or crawling protocol where the analytics server crawls different databases to identify all files accessible to each user (e.g., collecting data).


As discussed above, an electronic repository may represent any electronic repository storing files that are accessible to one or more computers within an organization. Non-limiting examples of an electronic repository may include a database, cloud storage system, third-party shared drives, third-party application as described above, internal file transfer protocol (FTP), and internal or external database operated by the analytics server, email storage, HR systems, accounting systems, customer relationship management (CRM) systems, and the like. In some configurations, the data may be inputted by one or more users. For instance, an administrator operating the administrative computer (described in FIG. 1) may access a web-based application to input relevant data (e.g., account collectables, cybersecurity related data). In some embodiments, a user (e.g., an administrator) may upload various files/data onto an electronic repository (e.g., FTP) to be analyzed by the analytics server.


The analytics server may retrieve data using an application programming (API) interface in communication with the electronic data sources. The analytics server may use an API configured to communicate with the electronic data sources and/or electronic data repositories in communication with the electronic data sources to collect data.


At step 220, the analytics server may parse the data retrieved to generate a set of uniform data tables. The analytics server may parse and disaggregate the collected data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion. Furthermore, the analytics server may also parse and disaggregate each unique domain table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion.


The analytics server may parse the collected data in accordance with the data tables described in FIG. 3A. For instance, the analytic server may first determine one or more domains applicable to the collected data. The domain table 310 illustrates different domains categories used to subdivide data into different domain tables. Once the data is distributed among one or more domain tables, the analytics server may further distribute the collected data among five building blocks. For instance, collected data that belong to ATM domain is further divided among information, dimensions, analytics, archive, and grid building blocks, as depicted in building blocks 320.


Different domains described in the domain table 310 may represent different categories of data satisfying a specific predetermined criterion. For instance, the customer journeys domain may refer to all data related to user experiences of customer-facing applications (e.g., customer-facing website and/or other electronic applications). Therefore, all data within the data table corresponding to the customer journey will satisfy this criterion. In another example, ATM domain may refer to all collected data relevant/associated with ATMS. Therefore, all collected data parsed, by the analytics server, into the ATM domain table, will share at least that one criterion.


The analytics server may then distribute the collected data into six different data structures, as depicted in data structure table 330. The data structure table 330 includes the following data tables, catalogs, and journals:


A dimension table for views (DTV) describes the format and content of views to present specific information to the user. One or more DTV files are created for each domain thereby creating a catalog of views that may be requested by the user. In a given domain, a DTV may point to core dimension tables (DTs) and/or dimension tables for information (DTIs).


A dimension table for information (DTI) specifies information, which may be a metric (e.g., FTE, NIX, NIX/FTE, gross spend) or any other information that is available in the given domain (e.g., name, address, photos, videos, documents). One or more DTI files are created for each Domain to specify a catalog of information that is available to create views. In a given domain, a DTI may point to dimension table(s) for keywords (DTK), fact catalog(s) (FCs), and/or fact journal(s) (FJs).


A dimension table for keywords (DTK) specifies keywords that may be combined to name metrics. Keywords are used as “clues” by the user command-processing algorithm (voice or search). For example, voice commands may include multiple keywords referring to information and dimensions.


Core dimension tables (core DT) specifies the structure of concepts. A concept is disaggregated into “N” levels using an L1, L2, L3, LN structure.


Meta-data for unstructured data (DTU) specifies the meta-data for unstructured data items. Examples may include the type of file such as audio, video, spreadsheet as well as the specific type of file: Word®, Excel®, Power Point®, as well as the concepts and sub-concepts to which the unstructured data item belongs.


An FC specifies the list of items corresponding to a concept along with their associated attributes. Examples may include facilities catalog, IT application catalog, and employee catalog. In a given domain, FCs may point to core DTs, other FCs, and unstructured data items (UDIs). DTs, FCs, UDIs may be in the current domain or another domain.


An FJ specifies time stamped event information. Examples may include financial transaction (revenue, expense), customer interactions (branch visit, digital transactions). In a given domain, FJs may point to core DTs, FCs, and unstructured data items (UDIs). DTs, FCs, and UDIs may be in the current domain or other domains.


Unstructured Data Items (UDIs) contain unstructured data items. Examples include photos, videos, audio files, documents, etc. In a given domain, UDIs may point to the DT describing the DTU, Core DTs, FCs, and DTIs. DTs, FCs, and DTIs may be in the current domain or other domains.


As described above, the analytics server may first parse and disaggregate the collected data and identify/generate one or more domain data tables corresponding to the collected data. Subsequently, the analytics server may further disaggregate each domain data table into one or more dimension data. As will be described below, the analytics server may use the identified data tables to generate a nodal network for the collected data. In some embodiments, the analytics server may generate multiple data tables where each data table is structured in accordance with one or a combination of the above-mentioned dimensions and/or domains. For instance, the analytics server may generate a data table for each domain illustrated in the domain table 310. Each data table may comprise sub data tables where the data is distributed in accordance with the dimensions and structures depicted in the data structure table 330.


By generating the above-described data tables (e.g., by dividing the data in accordance with the specific rules described above), the analytics server may generate multiple data tables unique to each set of collected data and/or each organization. The unique data tables and the or nodal network described herein (sometimes referred to as the knowledge grid) allow the analytics server to store, analyze, and retrieve data in a more efficient manner, when compared to conventional methods of data storage, such as storing the data onto one or more databases (e.g., data lake method).


In some configurations, the analytics server may receive an instruction from a user (or based on predetermined rules) to generate the above-described data tables for only a selection of the domains and/or dimensions. For instance, a user operating an administrative computer may select one or more domains and instruct the analytics server to generate data table in accordance with the selected domains only. Therefore, even though 33 different domains are described in the domain table 310, the analytics server may not always use all 33 domains.


The analytics server may use a variety of techniques to identify the domains and/or dimensions associated with the collected data. In some configurations, a team of experts (e.g., integration team) can designate an appropriate domain and/or dimension to the collected data. In another example, this task may be accomplished as a user inputs/uploads the data. For instance, when uploading data, the user can designate and/or tag a file with an appropriate domain or dimension. In another example, the analytics server may automatically identify an appropriate domain and/or dimension for the collected data. For instance, the analytics server may identify the source of the collected data and may designate a domain based on the source (e.g., ATM domain is identified when the data is retrieved from an ATM). In another example, the analytics server may identify an appropriate domain table in accordance with the context data associated with a file. For example, if the filename contains “sales,” the analytics server may assign the file to a sales domain data table.


Referring back to FIG. 2, at step 230, the analytics server may generate a nodal network based on the collected data. The analytics server may generate a nodal network comprising a set of nodes where each node represents at least a portion of the collected data (e.g., a file), each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to the data associated with each node.


The analytics server may generate a nodal network where each node represents at least a portion of collected data classified and identified as corresponding to a uniquely generated data table. The collected data may correspond to a wide range of categories and a wide range of electronic data sources. For instance, while one node may represent a file collected from an employee computer, another node may represent transaction data associated with a particular transaction conducted at a particular ATM, and a third node may represent data associated with cyber-attack activity detected at a customer-facing application. Organizing the collected data using the methodologies described herein allows the analytics server to retrieve, analyze, and visualize the data efficiently.


As described above, the analytics server may identify and store context information as metadata for each node. For instance, if a node represent a file retrieved from an employee computer, the node's metadata may include file information (e.g., timestamp of the file, different computers who access the file, and/or a department to which the computers belong). The analytics server may also use metadata to store an indication of whether the node is associated with one or more of the data tables described above. For instance, metadata associated with a node may indicate a domain table and/or dimension table corresponding to the data represented by that particular node.


Referring now to FIG. 3B, an example of a nodal structure is illustrated, in accordance with an embodiment. The analytics server may also link one or more nodes based their respective metadata. As depicted, the nodal structure 300 includes multiple layers (L1-LN) where each layer includes multiple nodes. In some configurations, every layer may represent a domain table. For instance, L1 may represent a sales domain table, and L2 may represent an ATMs domain table. Therefore, the number of layers in the nodal network may depend on the number of domains identified or used by the analytics server.


The depicted nodes may each represent at least a portion of the collected data (e.g., each node may represent a file or an input by a user). For example, node 340 may represent a file retrieved from an employee computer where the file was generated as a result of a customer conducting a transaction. Also as depicted, the nodes are interconnected using various links. For instance, node 341 is connected to nodes 350-35N. A link (or edge) may connect similar or associated nodes within the nodal data structure, such as the nodal network. By linking different nodes, the analytics server may retrieve data corresponding to each node and the context metadata more efficiently. Edges can be directed, meaning they point from one node to the next, or undirected, in which case they are bidirectional. The analytics server may use different directed or undirected edges to link different nodes.


In one embodiment, the analytics server may designate a path/address for each link connecting multiple nodes in accordance with the following table:


















Name-path
<L1-name>.<L2-name>.<L3-name>



ID-path
<TN> <ID> where <TN> is a unique number assigned




to the dimension table and <ID> is a unique number




within the table corresponding to the row for this node.










The analytics server may use the character “.” to delineate distinct names in a node path/address. Using different paths allows the analytics server to identify related nodes (and thereby related content) in a more efficient manner. The analytics server may also utilize a dimensional tree grammar to traverse the nodal network. Parameter values and corresponding tree scope, in one embodiment, are described below, in Table 2:










TABLE 2





Parameter value
Scope







(blank)
Entire tree


Level = LN
Entire tree up to Level LN


Node = name.name
A specific node in the tree


Node + 1 = name.name
A specific node in the tree and 1 level below


Node + N = name.name
A specific node in the tree and N levels below


Node++ = name.name
A specific node in the tree and all levels below









The analytics server may use different grammatical rules to identify different paths and addresses for one or more nodes. These grammatical rules may be domain-specific and/or dimension-specific. The grammatical rules are further described in U.S. patent application Ser. No. 15/925,995, which is incorporated herein in its entirety. As described above, each node within the nodal network may be enriched with metadata from multiple sources (internal, external) and of multiple types (structured, unstructured, and/or streaming).


Upon generating the nodal network and creating the edges and links, the analytics server may efficiently intake data. For instance, the analytics server may retrieve data where the data is automatically parsed and disaggregated (e.g., placed into a uniquely created data table) and then assigned to a node. The nodal network (loaded using various configurators) may define the structure of concepts and declared relationships between concepts.


Once the analytics server configures the nodal network, the analytics server may continuously update the nodal network to reflect the latest information/state of the collected data. As described above, this process may be an automated process using various data entry techniques, or automatic data feeds including RSS feeds or other feeds from internal, external, or homegrown book of record transaction systems, collaboration applications (e.g., mail, text, social), derived data systems (e.g., risk, or AML) as well as external data sources (paid services—e.g., financial data, government, etc.). As the nodal network is updated, the analytic server may continuously monitor state changes to detect issues that should be presented to the user. The detection of issues can be achieved using all analytic models and services. Once an issue is detected, it can be presented as an alert to the user in the alert panel of the graphical user interfaces described below.


Upon generating the nodal network, various analytic/heuristic algorithms may enrich the nodal network with additional facts attached to each node (e.g., metadata). The analytics server may use the nodal network to enable multiple types of analytic models and algorithms (e.g., arithmetic/statistical, computational, rule-based, and machine learning). These algorithms may also create new relationships, which are not pre-defined in the nodal network, or predict insights. Therefore, the methods and systems described above may autonomously and iteratively create new relationships and refine the nodal structure by refining the relationships and links between different nodes. As a result, with each iteration, the nodal network may improve, thereby having a better and more accurate representation of the data collected.


When data corresponding to a node is unstructured (not readily identifiable as associated with a certain data table), the analytics server may also use artificial intelligence and machine-learning techniques to revise the nodal network and identify a node for the collected data. For instance, the analytics server may use a random forest modeling techniques. Random forest modeling may include several nodal hierarchical structures (e.g., trees). In some configurations, the AI model may incorporate other machine learning techniques, such as gradient boosting, support vector machines, deep neural networks, and logistic regression.


By identifying and mapping relationships between different nodes, the analytics server may generate “knowledge” specific to a domain and/or a dimension. Knowledge may refer to an identification of previously unknown relationships between one or more nodes. The knowledge identified for a specific domain and/or a dimension, may be applied to other domains and/or dimensions. Furthermore, the knowledge can be applied to other organizations and/or different parts and groups within the same organization.


Referring now to FIG. 4, a visual representation of the nodal network is illustrated, according to an embodiment. For instance, each point within the circle 400 may represent a node or collected data. As depicted, the nodes within the nodal network are interrelated via links represented by lines inside the circle 400 connecting different points. Moreover, as depicted, some nodes may not be connected to other nodes and certain nodes may be connected to multiple other nodes.


Referring back to FIG. 2, at step 240, the analytics server may receive a request from a user. The analytics server, upon receiving a request from a user-computing device, may parse the request to identify a node associated with the request. The request may be an instruction to display collected data associated with a certain category, domain, or an event. The analytics server first parse the request to identify a node or a category of nodes to be displayed. The user request may inputted by a user accessing a graphical user interface provided by the analytics server. For instance, a user may execute a web application or access a webpage generated by the analytics server. The user may then input a request to view a category of data (e.g., cybersecurity for the organization website). Upon receiving the request from the user, the analytics server may identify one or more nodes related to the request using the methodologies described above.


At step 250, the analytics server may display, on a graphical user interface displayed on the user computer device, data associated with the identified node. Upon identifying one or more related nodes, the analytics server may retrieve data corresponding to the identified nodes and may display the data on a dynamic graphical user interface. The dynamic graphical user interface is further described in FIGS. 5-47.


Referring now to FIGS. 5 and 6, an example of a GUI screenshot illustrates how a user can efficiently view content of the above-described nodal network. As depicted, GUI 500 includes multiple interactive icons and menu options positioned and designed to create a user experience that allows the user to have fast access and insight to the data uniquely structured, as described above. Using the GUIs described herein, the user may reach the desired information/insight using as few steps (e.g., clicking or otherwise activating a link) as possible. The GUIs described herein also provide simple and intuitive means of navigating the nodal network and reaching the desired information quickly.


Among other technical advantages provided, the GUIs described herein provide a navigation method that corresponds to the nodal network. Therefore, a user can navigate through data (e.g., moved from a broad view to a granular view or vice versa or move cross domains and dimensions) in a more efficient manner than provided by conventional and existing GUIs For instance, some conventional graphical user interfaces allow users to set multiple thresholds and filters in order to view data that are more granular. This method is undesirable because it shifts the burden of data navigation to the user. Furthermore, this method is also undesirable because it is not as efficient as the navigation methods described herein. The multiple navigation methods provided herein may work together in an integrated fashion. For instance, a user may use multiple navigation methods described below:


Paths navigation method: this provides a set of options for the “next step” when any part of the nodal network is displayed. The path navigation method suggests one or more answers to questions that the user may wish to inquire. This particular method of “drilling-down” the information is helpful because it allows the user to efficiently move along and traverse the nodal network. The path traversed by the user is displayed in the top menu (510). The path itself may represent the nodes (and their corresponding information) being displayed. The path (e.g., next step) options may be viewed and accessed via the path menu or analyst menu (520). As described below, a user may use the analyst menu 522 to view data associated with any particular section, dimension, or domain of the nodal network.


Interact with a view method: this method enables the user to interact directly with the widget (e.g., interactive graphical components) displayed in the view area. For instance, graphical component 530 may include the following options: List, Table, News, Pie, Sunburst, Relationship, Waterfall, Horizontal Bar, Vertical Bar, Line, Geo-Map, Matrix, Diagram, Video, Document, Diagnostic, Alert. This navigation method is efficient as the user simply interacts (e.g., clicks) with active areas of the widget (e.g., “+” to expand a table row or column) to view more information, zoom-in, or move to another address in the nodal network.


Voice command method: this method provides a very efficient way to get to a specific address in the nodal network. The user can click on (or otherwise activate) the voice command icon displayed as the interactive component 540 to issue a voice command. The analytics server may then parse the voice command using various voice recognition techniques and may display the specific view or a drill-down that corresponds to the given command. In some embodiments, if the command is a broad statement that results in multiple valid answers, the analytics server may display a list of views that correspond to the voice command.


The GUI 500 also provide an interactive component 550 where the user can bookmark the path and/or viewed information. The analytics server may store the bookmarked (e.g., favorite) paths for each user thereby allowing each user to quickly access a specific address within the knowledge grid via a few clicks.


The GUI 500 also displays interactive component 550A. When the user interacts with the interactive component 550A, the analytics server stores the path and generates an interactive address representing the path. The interactive address may be a hyperlink or a uniform resource locator (URL). As will be described below, the interactive address may be shared with other users where, upon the second user interacting with the interactive address, the analytics server displays data corresponding to the stored path. This feature is particularly useful when collaborating with other users. For example, an address may be copied and then sent to another user for his or her review.


Furthermore, interactive component 560 (e.g., help icon) and interactive component 570 (narrative icon) are also available to further explain the meaning of each item as needed. For instance, when a user interacts with the interactive component 570, the analytics server displays window (e.g., pop up window) describing the path and/or the view displayed on GUI 500.


The GUI 500 also displays interactive components 580. When the user interacts with the interactive components 580, the analytics server enables the user to record and replay a sequence of views displayed along the path. For instance, the analytics server may generate a screenshot of the view. The analytics server may also generate a movie-like or animation like file where the sequence of views (e.g., a progression of different paths viewed by the user) is digitally recorded and stored onto a file. The analytics server further provides the user with the option of storing and/or sharing the file with another user.


As discussed above, the top menu displayed in the graphical component 530 allows the user access to visualization, analytics (widgets or interactive components, such as pivot 511, filter icon 512, and diagnostics 513) and alert features. In addition, the top menu 510 specifies the path traversed to reach the current view and enables the user to move back to a specific location in the path. Visualization widgets that are accessible at the given location in the path may be highlighted (icon color). The user may access the widgets by clicking on the corresponding icon.


The GUI 500 may also include an analyst menu 520. The analyst menu 520 (similar to the top menu displayed in the graphical component 530) enables the user to select, pivot (e.g., go to a previous view) and filter the information displayed in the viewing area. The Analyst menu 520 allows the user to visually navigate the nodal network. The analyst menu 520 further enables the user to select a view to display in the view area (e.g., all or a portion of the GUI 500). For example, GUI 500 provides a list of different views under the “view” header where a user may interact with each sub-header to see specific information relating to that sub-header. The “value” header displayed on the GUI 500 displays a set of sub-options for the given view. Under the “currency” header, the GUI 500 displays a set of sub-options for currency (e.g., US$ or Canadian $).


Filter icon 512 filters the information displayed in a particular customizable manner. In addition, the user may use the analyst menu to filter certain information. Selecting an item under this heading may result in narrowing the scope of the information displayed in the view to a specific organization unit. Filtering, as described herein, is implemented using DTs and follows the above-described L1-LN data structure format (e.g., moving from a parent node to a related child node).


Because of this specific filtering technique, the user may filter a view by a specific nodal address or path (not by thresholds, as performed by conventional graphical user interfaces). Using the filtering options provided by the GUI 500, a user might set a specific filter by navigating the L1-LN hierarchy and selecting a specific item (e.g., a specific line of business in the Canadian organization hierarchy). The GUI 500 may also include a contextual search bar 590 enabling the user to search for specific content using unstructured search methods. Referring now to FIG. 6, a list of all the icons displayed on GUI 500 is illustrated. Filtering based on the nodal network is further illustrated in FIGS. 25-29.


Referring now to FIG. 7, a graphical user interface start page is illustrated, according to an embodiment. The GUI 700 is divided into two sections of path graphical component 710 and information graphical component 720. The path graphical component 710 may display multiple interactive hyperlinks each configured to direct the user to domains and tools available. The paths graphical component 710 may be organized by categories. For instance, in the depicted embodiment, the path graphical component 710 is divided into four categories: performance, capabilities, environment, and tools. When a user interacts with a path hyperlink, the analytics server may display the start page for the given domain or tool.


The GUI 700 also displays information graphical component 720, which displays metrics along with value and trend indicators. As illustrated, the metrics may be visually distinct based on one or more predefined thresholds (e.g., red, yellow, or green). The metrics can be customized for each user based on user preferences and/or user permissions. Each metric may be visually distinct and designed to engage the user in exploring the given domain by providing key facts along with the ability to instantly view information that is more detailed. For instance, in the displayed domain of the GUI 700, the user may instantly identify that “fraud losses” is in critical condition and needs to be addressed. The GUI 700 also displays two hyperlinks (“run” and “transform”). When the user interacts with “run” hyperlink, the analytics server pivots to view additional information (e.g., operations of the enterprise). When the user interacts with “transform” hyperlink, the analytics server displays a list of improvement opportunities and/or initiatives across the enterprise (e.g., in accordance with the knowledge and pre-mapped relationships identified using the nodal network). The user can also filter the information displayed. For instance, the user can implement a filter to only view metrics that satisfy a threshold (e.g., fraud losses, open audit issues, NPS, attrition, provision for credit losses, total shareholder equity, diluted EPS growth, and non-interest expenses).



FIGS. 8-12 illustrate an initial graphical user interface (start page) for different domains. Each GUI 800-1200 illustrates a domain and summarizes available paths and information. For instance, GUI 800 is a start page for a “financial” domain, GUI 900 is a start page for a “risk” domain, GUI 1000 is a start page for an “information technology” domain, GUI 1100 is a start page for data and analytics domains, and GUI 1200 is a start page for a cybersecurity domain. In each GUI 800-1200, a standard pattern is used with path graphical component on the left and information graphical component (selected metrics, value and trend indicator) on the right. This pattern is described in FIG. 7.


As depicted in FIGS. 8-12, each domain may have its unique path graphical component section that corresponds to a selected domain. For instance, path graphical component in GUI 900 has different components and hyperlinks than the path graphical component displayed on GUI 1000 because these GUIs are directed towards different domains and each domain may have its own sub-domains and categories. When considering the nodal network, each node representing a domain may have multiple child nodes representing different dimensions. In an embodiment, different components and hyperlinks may represent a child node relating to a node representing a domain.


The “related topics” category in each path graphical component may direct the user to a new GUI and provide the user access to domains that are closely related to the given domain. The “key documents” category may direct the user to a new GUI that displays additional information regarding the domain. The format used in GUIs 800-1200 provide a top down view of the key information/knowledge in a given domain.


Referring now to GUIs 13-24, illustrate the functionalities of the analyst menu, according to an embodiment. A distinctive characteristic of the graphical user interfaces disclosed herein is that they provide a multi-dimensional model of enterprise architecture. Understanding this architecture is critical to managing and transforming the enterprise. Furthermore, unlike in conventional graphical user interfaces, a user can view enterprise status efficiently and without needing to create multiple views and/or switching between multiple views. In the embodiments depicted in the GUIs shown in FIGS. 13-24, the enterprise architecture is disaggregated in 11 dimensions. For instance, graphical component 1310 comprises hyperlinks corresponding to channels, customer journeys, products, organization, business processes, controls, information technology, data & analytics, cybersecurity, and suppliers and facilities.


When the user interacts with a hyperlink representing each dimension, the analytics server may create a diagram in scalable vector graphics (SVG) to describe each of these dimensions. This diagram is intended to help the user quickly grasp the concepts of the given dimension. The diagrams may also be used to provide access to paths in the data grid. Furthermore, the user can click on (or otherwise interact with) “active” sections of the diagram to access related views. In order to help the user understand the diagram, the analytics server displays a dynamic help icon 1320. Activating the dynamic help icon 1320 results in a brief text description (e.g., pop up window) as the user hovers over different sections of the diagram.


As a non-limiting example, when a user clicks on (or otherwise interacts with) any of the dimension hyperlinks displayed on the graphical component 1310, the analytics server may direct the user to a new graphical user interface where the analytics server displays a diagram having more hyperlinks representing different dimensions and sub-dimensions (e.g., child nodes). For instance when the user clicks on “channels” hyperlink, the analytics server directs the user to GUI 1400; when the user clicks on “customer journeys” hyperlink, the analytics server directs the user to GUI 1500; when the user clicks on “products” hyperlink, the analytics server directs the user to GUI 1600; when the user clicks on “organization” hyperlink, the analytics server directs the user to GUI 1700; when the user clicks on “business processes” hyperlink, the analytics server directs the user to GUI 1800; when the user clicks on “controls” hyperlink, the analytics server directs the user to GUI 1900; when the user clicks on “information technology” hyperlink, the analytics server directs the user to GUI 2000; when the user clicks on “data & analytics” hyperlink, the analytics server directs the user to GUI 2100; when the user clicks on “cybersecurity” hyperlink, the analytics server directs the user to GUI 2200; when the user clicks on “suppliers” hyperlink, the analytics server directs the user to GUI 2300; and when the user clicks on “facilities” hyperlink, the analytics server directs the user to GUI 2400.



FIGS. 25-29 illustrate embodiments where a user interacts with the “financials” hyperlink on the analyst menu. FIGS. 25-29 illustrate how the analyst menu may be used to quickly and efficiently navigate the complete set of financials for a bank branch, which are composed of a very large dataset with multiple metrics and dimensions. Even though the depicted embodiment illustrates financial information of a bank, it is expressly understood that the methods, systems, and graphical user interfaces described herein can be used to efficiently visualize data corresponding to any other subject matter.


Using the graphical user interfaces illustrated in FIGS. 25-29, users may view the following: income statement (GUIs 2500 and 2600, non-interest revenue (GUI 2700), non-interest expense (GUI 2800), and balance sheets (GUI 2900). The above-mentioned GUIs may also display cross-charges, growth measures, profitability measures, efficiency ratio, balance sheet, off balance items, depreciation and fixed assets, risk measures, capital measures, liquidity measures, competitive measures, shares and dividends, and bank information (employees, branches, ATM, etc.), as depicted FIGS. 25-29. Dimensions used to produce the above-described graphical user interfaces may include organization units, location (e.g., country), currency, type of results (e.g., internal, reported, and/or adjusted). By identifying these dimensions, users may filter the data displayed. For instance, the user may filter bank branches, employees, or ATMS by selecting a location dimension (e.g., limiting the data to the United States).


In another example, FIGS. 75A-F illustrate how a user can efficiently explore/navigate the knowledge grid (nodal structure) and view customized data. As illustrated, the analytics server may display GUI 7500 where a user can select a “domain” to explore. The analytics server may also display various options allowing the user to visualize certain data, add data or a path to a favorites list for expedited access, send a specific view to another user, share data with other users, display the narrative associated with a view, print, display the library of summaries, or add data (e.g., photos) to the knowledge grid.


As illustrated in GUI 7510, the analytics server may also display different options for the user to input his or her request. For instance, the user may input a voice command or interact with a search bar. The analytics server may also provide an internal communication system allowing users to communicate with each other (e.g., messaging application). The analytics server may display a list of all domains (as illustrated in GUI 7520) where the user can select a domain to drill down or view customized data. The analytics server may allow users to generate customized visualizations. For instance, as depicted in GUI 7530, when a user interacts with the visualization menu 7532, the analytics server displays options 7531 allowing the user to customize the visualization 7533. For example, as depicted in GUI 7540, a user may select the column and row pivots for visualization 7533. The analytics server may also display the same data in different formats. For instance, the analytics server may display a chart visualizing the selected data or a pie chart visualizing a customized selection of data (e.g., visualization 7551 depicted in GUI 7550).



FIGS. 30A-41 illustrate a drill-down feature provided by the analytics server. More specifically, FIGS. 30A-41 illustrate drill-down features for the channel domain. However, it is expressly understood that the methods, systems, and graphical user interfaces described herein apply to any domain or other features. A distinctive feature of the graphical user interfaces described herein is the ability of the analytics server to provide drill-down information in an efficient and seamless manner. Using this feature, users may efficiently navigate through granular data. Users may gradually narrow data in an efficient manner without using multiple thresholds or filters or requiring multiple interfaces.


The graphical user interfaces depicted in FIGS. 30B-41 illustrate how a user may use the functionality of the analyst menu in conjunction with the drill-down features to navigate the nodal network. Using the drill-down feature, users may navigate within a given domain (e.g., from one metric or concept to another), move laterally across domains (e.g., from one domain to another domain), and/or move up/down in level of abstraction (e.g., from the macro view to the atomic view). These technical advantages over conventional graphical user interfaces allow users to visualize data efficiently.


Referring now to FIG. 30A, a flow diagram of a process executed by the intelligent data analysis system is illustrated, in accordance with an embodiment. The method 3000, in conjunction with the graphical user interfaces illustrated in FIGS. 30B-33, illustrate the drilling-down techniques executed by the analytics server. The method 3000 includes steps 3010-3070. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 3000 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 30A may be locally performed by one or more user computing devices or an administrative computing device.


At step 3010, the analytics server may divide a display screen into a first and a second graphical component. Furthermore, at step 3020, the analytics server may dynamically populate the first graphical component with data corresponding to a node where the analytics server displays a first set of hyperlinks corresponding to one or more child nodes of the node. The GUI 3001 illustrates that users can simultaneously view multiple metrics (channel count, sales, transaction count, etc.) across channels. Users can activate the drill-down feature by clicking on a cell in the table displayed in GUI 3001.


The drill-down feature is implemented by dividing the display in two areas: left and right, each of which contains an information block dynamically populated by the analytics server. For example, in FIG. 31, the left area (graphical component 3110) displays a list of digital channels. Digital channel may represent a node within the nodal network generated by the analytics server. The digital channel node may have multiple child nodes. For instance, each hyperlink displayed within the graphical component 3110 may represent a child node of the digital channel node.


As depicted, the right area (graphical component 3120) displays detailed information related to a specific (selected) digital channel. When the user clicks on a specific feature (e.g., row or icon) in the graphical component 3110 to select a digital channel, the analytic server displays (dynamically populates) the related information on the graphical component 3120. The analytics server may display icon 3121 to indicate that further drill-down options is available. For example, in the graphical component 3120, the following items have available drill-down information:

    • Screen shots: drill-down option will display screen shots for the selected application;
    • Application login: drill-down option will display the login page for the selected application;
    • Accountable leader: drill-down option will display demographic data relating to the leader who is accountable for the selected application (e.g., name, address, or contact information);
    • CIO: drill-down option will display demographic data relating to the chief information officer who is accountable for the selected application (e.g., name, address, contact information, etc.);
    • Performance: drill-down option will display information related to the performance (e.g., user count, sales, or transaction count) of the selected application; and
    • Architecture: drill-down option will display information related to the architecture (e.g., database, operating system, software package, or data center) of the selected application.


At step 3030, the analytics server may, upon receiving an indication that a user has interacted with a first hyperlink of the first set of hyperlinks, identify a child node corresponding to the first hyperlink. Furthermore, at step 3040, the analytics server may dynamically populate the second graphical component with data corresponding to the identified child node where the server displays a second set of hyperlinks corresponding to one or more subsequent child nodes of the identified child node. As illustrated in GUI 3200 (a subsequent graphical user interface displayed after GUI 3100), when a user selects an item for drill-down from the right information block, the analytics server dynamically moves the selected information block to left area of the subsequent graphical user interface. The analytics server further displays the subsequent drill-down information in the right area of the subsequent graphical user interface. This method enables a drill-down feature that is unconstrained by the number of levels.


For example, when the user clicks on online banking for business in GUI 3100, the analytics server, identifies a node associated with the OLBB in a nodal network (parent node). The analytics server also dynamically populates the graphical component 3120 with information related to OLBB. The information may include multiple hyperlinks where each hyperlink is associated with a related and/or child node of the parent node. For instance, graphical component 3120 includes hyperlinks corresponding to screenshots, application login, account leader, and other child nodes.


If the user clicks on a hyperlink associated with a child node (e.g., “performance” displayed on the graphical component 3120), the analytics server then directs the user to GUI 3200 where OLBB information is dynamically relocated from the graphical component 3120 to graphical component 3210 and the graphical component 3220 is dynamically populated by OLBB performance data. The analytics server may further remove data displayed in the graphical component 3110. Moreover, in the depicted embodiment, the analytics server may display data corresponding to one or more subsequent child nodes to the child node (“performance) in the graphical component 3220.


At step 3050, the analytics server may, upon receiving an indication that a user has interacted with a second hyperlink of the second set of hyperlinks, identify a subsequent child node corresponding to the second hyperlink. Furthermore, at step 3060, the analytics server may dynamically populate the second graphical component with data corresponding to the identified subsequent child node. For example, when the user clicks on “user count” displayed on the graphical component 3220 (subsequent child node), the analytics server first identifies the subsequent child node within the nodal network and retrieves data associated with the subsequent child node. The analytics server then directs the user to GUI 3300. As depicted in GUI 3300, the analytics server removes the data displayed within the graphical component 3210, dynamically populates the graphical component 3310 with data previously populated in the graphical component 3220. The analytics server also displays data corresponding to user account (subsequent child node) in the graphical component 3320.


Referring now to FIG. 34, in the GUI 3400, when the user clicks on branch-4 in graphical component 3410, the analytics server dynamically populates graphical component 3420 with data associated with branch-4. Upon receiving an indication that the user has interacted with the icon 3421, the analytics server directs the user to the GUI 3500 where the data displayed in the graphical component 3420 is now dynamically relocated to graphical component 3510 and data corresponding to the icon 3421 (e.g., map) is displayed on the graphical component 3520.


In another example, in the GUI 3600, when the analytics server receives an indication that the user has interacted with icon 3611 (in the graphical component 3610), the analytics server dynamically populates the graphical component 3620. The GUI 3700 illustrates a similar concept where the analytics server dynamically populates the right side based on user interactions on the left side of the screen.


In another example, in the GUI 3800, when the analytics server receives an indication that the user has interacted with “ATM-4” on the graphical component 3810, the analytics server dynamically populates the graphical component 3820 with data corresponding to ATM-4. Furthermore, when the analytics server receives an indication that the user has interacted with “performance” hyperlink displayed on the graphical component 3820, the analytics server directs the user to GUI 3900 and dynamically populates graphical component 3910 with data previously displayed on the graphical component 3820. Furthermore when the analytics server dynamically populates the graphical component 3920 data corresponding to performance of ATM-4.


Users may also use the method described above to drill-down on personnel data. For instance, an administrator operating the administrative computer may drill-down from overall sales force/personnel (graphical components 4010 and 4020) to specific performance of John Smith (graphical components 4110 and 4120).



FIG. 42 is a schematic diagram illustrating operational steps of a drill-down, according to an embodiment. FIG. 42 illustrates that a user may efficiently move (e.g., command the analytics server to display information corresponding to) from data block 4210 to data block 4220, 4230, 4230, 4240, and/or 4250. Each data block may contain “N” attributes along with corresponding values (e.g., number, text string, icon, picture, and/or web page address). Each data block may also display the content of a URL (e.g., a web page generated and operated by the analytics server) or a graphical component dynamically populated by the analytics server. For example, data block 4240 displays a geo-map whereas data block 4250 displays a web page containing information on a company. The content of a data block may be displayed using any of the visualization widgets/icon displayed above (e.g., list, table, bar chart, pie chart, diagram, document, or video).


Referring now to FIG. 43, as depicted in GUI 4300, a user may drill-down to identify a supplier website. For instance, the analytics server may dynamically populate the right side of the screen with a supplier website when the user drills-down to the website level. Referring now to FIGS. 44-45, in another example, as depicted in GUIs 4400 and 4500, a user may drill-down to identify and locate an employee based on the employee's office location on a geo-map.


Referring now to FIGS. 46-47, in some embodiments, the drill-down feature may be used to efficiently collaborate with other employees or other users within an organization. For instance, as depicted in GUI 4600, a user may identify a second user using the methods described above (drilling-down to identify the second user). The analytics server may then display icon 4610 indicating that the second user can be reached via telephone, email, and a chat/messaging application. When the analytics server receives an indication that the user has interacted with icon 4610, the analytics server may dynamically populate the graphical component 4620 with multiple input components. For instance, the input components displayed in the graphical component 4620 enable the user to generate and transmit an electronic message to the second user.


When the analytics server identifies that the user has interacted with icon 4621, the analytics server may direct the user to GUI 4700 where the electronic content displayed on the graphical component 4620 is relocated to the graphical component 4710. The analytics server may also dynamically populate the graphical component 4720 having multiple input fields where the user can upload/share a movielike progression of the drill-down with the second user.


The drilling-down methods are not limited to the embodiments described herein. For instance, some embodiments described herein described the drill-down technique as having two screen portions being dynamically updated based on user interactions. However, in other embodiments the analytics server may create three or more portions where each portion is dynamically populated. Furthermore, instead of right side and left side example described above, the analytics server may use any other configuration (e.g., top half and bottom half or top ⅓ middle ⅓ and bottom ⅓). Moreover, even though the progression of drilling-down techniques are described as the analytics server displaying multiple graphical user interfaces, in some embodiments the analytics server may dynamically relocate data within a graphical component within the same graphical user interface. For instance, when a user drills-down on a component displayed on the right side of the screen, the analytics server may move the right side to the left side and dynamically populate the right side with new data.


In some configurations, the analytics server may also generate and display free-form diagrams. The analytics server may display the free-form diagrams in addition to or as an alternative to the drill-down functionality described herein. For example, a user/administrator may desire to view a free-form diagram instead of drilling down data associated with different domains and other tables. Referring now to FIGS. 59A-E, different examples of free-form diagrams are illustrated. For instance, GUI 5900 (FIG. 59A) illustrates data stored under the technology and architecture domain. When the analytics server displays the GUI 5900, the user can select to view a drill-down option or a free-form diagram. For instance, a user may interact with the interactive component 5912 illustrated on GUI 5910 (FIG. 59B). As a result, the analytics server may display GUI 5920 including the graphical component 5922 that displays various categories of data available for display. For instance, the user may interact with “infrastructures” and the server will display data within the technology and architecture that is associated with infrastructure.


A free-form diagram may be any diagram or image that is included in the user interfaces described herein. Free-form diagrams may not be generated using widgets described above (e.g., table, chart, or diagram widget). This plane free-form diagrams is useful because some concepts require more complex images and diagrams for explanation purposes. The analytics server may create free-form diagrams with one of many software applications such as POWERPOINT, VISIO, and other visualization software. The analytics server may also generate a scalable vector graphics file using the visual file where the SVG can be repurposed and easily displayed in other graphical user interfaces described herein.


Upon generating the free-form diagrams, the analytics server may generate a menu associated with the free-form diagrams. For example, the analytics server may create an SVG based on a photo of a data center to create a free-form diagram. The analytics server may then create a menu to access information in the data grid (e.g., data center space, data center IT assets, data center network description). The analytics server may use the menu path configuration file to create this menu and may further link the free-form diagram to any other relevant content in the knowledge grid.


Referring now to GUI 5930 and GUI 5940, the analytics server may illustrate the contents of selected domains. For example the facilities domains may include information regarding concepts (and branch where the user can drill down or branch), measures (number of facilities and amount of space), dimensions (facility type, branch, office space, and data center), and unstructured data (photo and video).


Referring now to FIG. 48, an embodiment of the methods, systems, and graphical user interfaces described herein is illustrated. More specifically, method 4800 is a flow diagram of a process executed by the intelligent data analysis system, in an embodiment related to cybersecurity data. The method 4800 includes steps 4810-4840. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 4800 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 48 may be locally performed by one or more user computing devices or an administrative computing device.


Even though some aspects of the method 4800 are described in the context of collecting cybersecurity data associated with banking computing systems, it is expressly understood that method 4800 is applicable to collecting, structuring, analyzing, and visualizing any data.


At step 4810, the analytics server may retrieve data from one or more electronic data sources. As described above, the analytics server may continuously/periodically scan various electronic data sources and electronic data repositories to collect data. The analytics server may scan and/or crawl the electronic data sources to identify all files stored onto the electronic data sources and/or data repositories accessible to the electronic data sources. For instance, the analytics server may transmit an instruction to one or more ATMS where the instruction is configured to cause local databases of the ATMS to transmit all transaction data to the analytics server.


In another example, the analytics server may transmit an instruction to a database associated with a customer-facing website where the instruction is configured to cause the database to transmit all cybersecurity-related data associated with the website, such as all malware detected, a list/log of all failed login attempts, and the like. In another example, the analytic server may crawl one or more employee computers to identify all files accessible/stored onto the employee computers and/or data repositories accessible to such computers (e.g., third party database or a cloud storage system accessible to the employee computers).


In addition to the various examples of data collection described in FIG. 2, the analytics server may also generate a web application or a user-facing interface (e.g., website) allowing users to input data on an ongoing basis. For instance, a user operating a computer (e.g., administrative computer described in FIG. 1) may execute a web application generated by the analytics server to input data (e.g., upload files). The web application may include multiple graphical input components configured to receive data. For instance, the web application may have text input components, radio buttons, drop-down menus, and other input components that allow the user to upload and describe attributes of the data inputted. Upon completion of this task, the analytic server may receive the data and any attributes (if any inputted by the user).


The inputted data may correspond to a wide range of organization's data. For instance, the analytics server may receive data from a branch manager where the branch manager uploads all transactions for a predetermined amount of time (e.g., a day or a week) or a supplier/vendor inputting data associated with services rendered to an organization. For instance, a software vendor may input data associated with different software provided to an organization or a log of malware attacks detected.


The data received (via one or more users directly inputting the data or via the analytic server automatically collecting the data) may also correspond to different categories of data. For instance, data collected may range from project management data to account receivable data to cybersecurity data and other software diagnostics.


At step 4820, the analytics server may parse the collected data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion, wherein the analytics server identifies data associated with cybersecurity activity and generates a unique data table for the cybersecurity domain.


As described above on the analytics server may parse the data and generate different unique data tables (also referred herein as data structures). Each unique data table may correspond to a domain (as described in FIGS. 2-3). Each domain may refer to a category of data. Therefore, each domain refers to a predetermined criterion/attribute of data (e.g., ATM, sales, risk). The analytics server may use a variety of techniques to identify a domain associated with data. For instance, when a user uploads a file, the analytics server may parse the file and identify a domain associated with the file based on the inputted attributes by the user when uploading the file. For instance, when uploading a file, a user may designate the file as associated with cybersecurity. Therefore, the analytics server may generate a unique data table for cybersecurity domain and may assign the file to the cybersecurity domain data table. The analytics server may use different tagging and/or indexing techniques to assign a file to a data structure.


In another example, the analytics server may identify a domain associated with an uploaded file based on the uploaded file's context data. As described above, when collecting data, the analytics server may also collect context data associated with the collected files. The context data may include historical data associated with files and other data collected. Examples of context data may include file title, mime type, file permissions, comments, date/time of creation, and the like. The metadata may also include a unique identifier (e.g., user ID, IP address, MAC address and the like) of the user and/or the computing device who created/revised/and or accessed the file. Using the context data, the analytics server may identify a domain associated with the collected data.


In a non-limiting example, the analytics server collects a file by crawling databases associated with an organization. The analytics server identifies that the file is associated with cybersecurity domain because the file was created by an employee who is associated with the information technology and/or technical support department. In another example, the analytics server determines that a file belongs to cybersecurity domain because the file title include the word cybersecurity.


In another example, the analytics server may transmit the collected data to a subject team of experts (e.g., integration team) where the experts can identify a domain associated with each file or other data collected. For instance, when the analytics server collects a file, the analytics server may transmit the file to a subject matter expert team by displaying the file on a computing device operated by a subject matter expert. Upon reviewing the file, the subject matter expert may use an application provided/generated by the analytics server to input different attributes associated with the file. For instance, the subject matter expert may designate a file as belonging to the cybersecurity domain.


Once the collected data is identified as being associated with a (or multiple) domains, the analytics server may generate a unique data table where data is organized based on each respective domain. The analytics server may generate one unique domain data table for each domain where the unique domain data table includes all collected data associated with a domain. Therefore, the analytics server may generate as many unique data tables as domains available. In some embodiments, all data associated with a domain may be tagged accordingly using various tagging/indexing techniques.


At step 4830, the analytics server may parse each unique domain data table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion. As described above, the analytics server may further disaggregate each unique domain data table into multiple unique dimension data tables. For instance, at step 4820, the analytics server parses and disaggregates the collected data and generates multiple unique domain data tables.


At step 4830, the analytics server may further disaggregate each unique domain data table into multiple unique dimension data tables. The analytics server may identify a dimension associated with the collected data within a unique domain data table based on a predetermined set of dimensions. As described above, each dimension may be defined as having a particular criterion and/or category of data. Therefore, data identified as being associated with a particular dimension will share at least one criterion corresponding to the dimension. A list of different dimensions are provided in FIG. 3A (data structure table 330).


Referring now to FIGS. 49-51, uniquely generated data tables and data structures are illustrated, in accordance with an embodiment. Referring now to FIG. 49, chart 4900 represents a portion of the collected data. The chart 4900 includes 17 files that are collected via different methods described herein. For instance, a user uploaded file 4. However, file 11 was collected as a result of the analytics server scanning employee computers. Chart 4900 also describes the content of each file. For instance, file 10 contains information regarding customer satisfaction surveys and file 15 contains data regarding a recent data breach. As described above, the file content and/or categories may be uploaded by the user or may be automatically identified by the analytics server. For clarity and brevity purposes, the chart 4900 only illustrates 17 files collected. However, depending upon the size of an organization, the analytics server may periodically collect thousands or hundreds of thousands of files and/or other data.


Referring now to FIG. 50, different unique domain data tables are illustrated, in accordance with an embodiment. As depicted, the analytics server uses the above-described methodologies to generate five domain tables for the collected data described in FIG. 49. For instance, domain data table 5010 includes data collected that share attributes (e.g., are related to) cybersecurity domain. Similarly, the analytics server generates data table 5020 for ATM domain, data table 5030 for customer journey domain, data table 5040 for organization domain, and data table 5050 for financial domain. Each data table may include different files and may be stored separately from other data tables. For instance, the analytics server may store each domain table in accordance with a set of rules in order to maximize retrieval efficiency. In some embodiments, the analytic server may tag/index each file in accordance with an identified domain. For instance, the analytics server may tag file 6 in a manner that is unique to cybersecurity domain.


Referring now to FIG. 51, different unique dimension data tables are illustrated, in accordance with an embodiment. For brevity, FIG. 50 only illustrates dimension tables disaggregated from the cybersecurity domain. The analytics server generates six dimension tables (dimension tables 5110-5160) by disaggregating data within the domain table 5010. As illustrated, some collected data may belong to more than one dimension tables. For instance, file 6 may belong to cybersecurity FC and cybersecurity DT.


As mentioned above, for clarity and brevity, FIG. 51 only illustrates dimension tables generated based on the cybersecurity domain table 5010. However, as described throughout this disclosure, the analytics server may generate a domain table for each domain identified in FIG. 3A. Furthermore, the analytics server may generate a dimension table for each generated domain table. For instance, the analytics server may generate 33 domain tables for each of the 33 domains described in FIG. 3A. The analytics server may then generate six dimension tables for each of the 33 domain tables created. Therefore, the analytics server may generate 198 different data tables where each data table is a data structure uniquely designed to allow the analytics server to store and retrieve data in an efficient manner.


Referring back to FIG. 48, at step 4830, the analytics server may generate a nodal network comprising a set of nodes where each node represents at least a portion of the collected data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to the data associated with each node.


The analytics server may generate a nodal network where each node represents a portion of the collected data. For instance, each node may correspond to a file described in the chart 4900. Each node may also contain metadata including context data associated with the file. For instance, a node may include metadata indicating where the file is stored, which computer generated the file, which computer revised the file, a timestamp of the file, and other related information. The metadata may also include data associated with the dimension and domain tables associated with the file.


Each node may also be designated an address/path that corresponds to its respective dimension table and/or domain table. For instance, a node representing file 16 (in the chart 4900) may be designated with an address that is unique to file 16 (e.g., a designation for cybersecurity domain+a designation for cybersecurity FJ+a designation for cybersecurity DT). Using these uniquely created addresses and paths that correspond to the uniquely created data structures (domain tables and dimension tables), the analytics server may retrieve data more efficiently than conventional methods and systems. For instance, the analytics server may traverse the nodal network using the above-mentioned methods in a more efficient manner when displaying and/analyzing data.


Furthermore, as described above, the analytics server may link one or more related nodes using tagging/indexing or other linking methodologies. The analytics server may link all nodes representing the data within each domain table and/or dimension table. For instance, the analytic server may link files 2, 4, 6, 9, 12, 15, 16, and 17 as being related because the analytics server identifies these files as belonging to cybersecurity domain. Similarly, the analytics server may link files 7, 8, and 14 as being related to the ATM domain. Moreover, the analytics server may also link files 6, 9, and 15 as related to cybersecurity FC. Linking different nodes allows the analytics server to retrieve data in a more efficient manner. For example, when displaying data associated with a node representing file 6, the analytics server may identify files 9 and 15 as related to the same dimension and may display data associated with files 9 and 15 along with file 6.


At step 4840, the analytics server, upon receiving an instruction from a user-computing device to display cybersecurity data, may display a multi-dimensional cybersecurity matrix indicating a likelihood of a cyber-attack and an impact value of the cyber-attack. The analytics server may also display relevant cyber security measures and atomic items to describe threats, threat levels, threat impact, along with the effectiveness of defense capabilities including controls and risk management method.


The analytics server, upon receiving an instruction from a user-computing device, may parse the instruction to identify a node associated with the request. The request may be an instruction to display collected data associated with a certain category, domain, dimension, or an event. The analytics server may first parse the request to identify a node or a category of nodes to be displayed. For instance, a user may drill-down to the cybersecurity and request to view cybersecurity data associated with an organization or a branch (or any other customizable granular sub-section of an organization, such as a region or a selection of branches). Upon receiving the request from the user, the analytics server may identify one or more nodes related to the request using the methodologies described above.


For instance, when the analytics server identifies that the user has requested to view all cybersecurity threat data associated with branch X, the analytics server may then identify any node associated with “branch X” and “cybersecurity.” The analytics server may also identify any related nodes by identifying one or more linked nodes. The analytics server may identify the following categories of data relating to cybersecurity and/or cyber-attacks that are also designated to be related to branch X: malware targeting customers, ransomware for workstations, denial of service attack, mobile malware, ransomware for network, malware targeting banks, physical ATM attacks, malware ATM attacks, information leak, data espionage, data sabotage, and data exfiltration.


Upon identifying the requested nodes and other related nodes, the analytics server may retrieve data associated with the identified nodes and may analyze the retrieved data using predefined rules/models. In some embodiments, the analytics server may also use additional (or third party) analytical modeling to analyze the retrieved data. The analytics server may also use pre-mapped relationships (e.g., knowledge from other branches and/or other domains) to identify a likelihood or an impact value for different cyber-attack protocols/methods for branch X. For instance, if branch Y has similar attributes (e.g., number of employees, amount of transactions, or amount of network activity), the analytics server may use pre-mapped relationships between cyber-activity related to branch Y to predict cybersecurity threats for branch X.


Upon analyzing data associated with the retrieved nodes, the analytics server may generate a graphical representation associated with cyber-attack of branch X. For instance, the analytics server may generate a visual threat matrix and/or threat heat map associated with cybersecurity data. Referring now to FIG. 52, an example of a threat matrix is illustrated, according to an embodiment. The analytics server may identify that the user has inputted an instruction to view cybersecurity data. As a result, the analytics server may generate a multi-dimensional threat matrix.


As depicted, the threat matrix 5200 has two dimensions (impact and likelihood). The threat matrix 5200 further displays a set of different visual indicators numbered and positioned in accordance with different cybersecurity threats. For instance, indicator 5210 corresponds to a denial of service attack. By displaying the indicator 5210, the analytics server indicates that a threat of denial of service attacks has a medium likelihood of occurring and a relatively low impact on the branch identified by the user.


The threat matrix 5200 also identifies more serious threats, such as by displaying the indicator 5220. By displaying the indicator 5220, the analytics server indicates that a likelihood of occurrence of a malware attack for branch X is high and, if it occurs, a malware attack will have a high impact on branch X. As a result of the threat matrix 5200, the user may identify critical cybersecurity threats in a speedy and efficient manner.


Even though the threat matrix 5200 is confined to cybersecurity data associated with branch X, in other embodiments, the user may customize the granularity of the data analyzed. For instance, a user can select a threat matrix to include multiple branches within a selected region.


In some embodiments, upon identifying a serious threat (a threat that satisfies a predetermined threshold, such as malware targeting banks represented by indicator 5220), the analytics server may automatically generate an electronic message and transmit the electronic message to one or more computing devices (e.g., computing devices for cybersecurity team at branch X). In some other configurations, the analytics server may also reconfigure one or more computers identified to be at a higher risk. For instance, when the analytics server identifies that a computer is at high risk of malware attack, the analytics server may transmit an electronic message identifying the computer to a technical support or a cybersecurity expert. Additionally or alternatively, the analytics server may also reconfigure the risky computer's cybersecurity protocols.


In some configurations, the analytics server may generate a heat map associated with cybersecurity data. For instance, the heat map 5300 (in FIG. 53) displays a color coded (or otherwise visually distinct) graphical component illustrating a threat level compared to similar industries at a broad organization level. For instance, heat map 5300 indicates that the cybersecurity threat level for the organization, compared to similar organizations, is higher in June and July.


In some embodiments, the analytics server may use a pre-existing algorithm to identify, protect, and detect various computing devices from cybersecurity issues. For instance, the analytics server may utilize standards implemented by the National Institute of standards and technology (NIST) to identify whether any computing device has been compromised. For instance, the analytics server may use NIST publication 800-37 (Risk Management Framework) and 800-53 (cyber security and controls) to implement the methods described herein. The above-mentioned frameworks provide a rigorous methodology to manage cyber security and privacy risk. In some configurations, the analytics server may store (and periodically update) cyber security standards in a database. The analytics server may use the standards (e.g., 800-53) to identify cyber security and/or risk issues within the computer infrastructure described herein.


As depicted in FIGS. 54A-G, the analytics server may disaggregate the NIST categories as specified by the US government. NIST provides a rigorous standard that an enterprise or government should implement to protect critical data/IT assets. The analytics server may first retrieve the NIST categories from an electronic database (e.g., NIST website) and generate various dimension tables accordingly. GUI 5400 illustrates disaggregated categories associated with identifying a cybersecurity issue. GUI 5410 illustrates disaggregated categories associated with protecting data/IT assets. Furthermore, GUI 5420 illustrates disaggregated categories associated with detecting cybersecurity issues associated with computing devices within an enterprise. GUI 5430 illustrates NIST 800-37 standards analyzed and utilized by the analytics server. GUIs 2440-60 illustrate NIST 800-53 standards analyzed and utilized by the analytics server.


In a non-limiting example, the analytics server may use the above-described methodology to identify a response to each category depicted in GUI 5400. For instance, the analytics server may identify whether physical devices and systems within the organization are inventoried properly and may automatically populate a response to this category. The analytics server may then display GUI 5500 where an administrator can manually input a response to each category and/or an automated response is detected by the analytics server. For instance, columns A-D depict a self-assessment, audit assessment, regulator assessment, or third-party assessment of each cybersecurity category.


In some configurations, the analytics server may use the columns to illustrate differences between different entities or divisions. For instance, column A may display cybersecurity responses for entity 1 and column B may display cybersecurity responses for entity 2. The NIST framework may be used as a common language to help multiple entities collaborate to continuously improve cyber capabilities. For example, comparing the measures used by multiple banks next to each NIST category and subcategory can help chief information security officers identify gaps and opportunities to improve measures and overall capabilities for the given NIST category.


In yet a further embodiment, the analytics server may utilize the columns to display responses over time. For instance, each column may be designated to cybersecurity response within a certain time period.


As described above, the analytics server may generate a relationship map for data stored within different data tables (e.g., domain and dimension tables, fact journals, fact catalogs). By identifying the relationship between these data tables, the analytics server may improve the efficiency for future cybersecurity analysis. Referring now to FIG. 56, diagram 5600 represents a relationship map between different data tables, fact catalogs, and fact journals associated with cybersecurity of an entity. Understanding these relationships enables the analytics server to understand the data model more quickly, efficiently, and easily. Each item on the periphery of the circle represents a table in the data model (nodal network). The lines from one item to another item describe the relationship in the data model. For example, the lines describe how a fact catalog (e.g., facilities) has a relationship to a dimension table (e.g., location). This means that each facility has an attribute specifying its location. As will be described below, the analytics server may generate a computer model that replicates these relationships.


The analytics server may provide an administrator the option to modify (include or exclude) different domains from the above described relationship map. For instance, while diagram 5600 is directed only to the cyber domain, diagram 5700 (depicted in FIG. 57) includes cyber and technology domains. Furthermore, diagram 5800 (depicted in FIG. 58) includes cyber, technology, and supplier domains.


Referring now to FIG. 60, a flow diagram of a process executed by the intelligent data analysis system is illustrated, according to an embodiment. The method 6000 includes steps 6010-6050. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 6000 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 60 may be locally performed by one or more user computing devices or an administrative computing device. Furthermore, even though some aspects of the method 6000 are described in the context of collecting and analyzing data associated with banking computing systems, it is expressly understood that method 6000 is applicable to collecting, structuring, and analyzing any data.


As described above, the analytics server may collect data from various computing devices and electronic data sources to generate a nodal network (knowledge grid). Having this nodal network and organizing the data according to the various data tables described herein (e.g., domain tables, dimension tables, and various fact journals described herein) allows the user to navigate vast structured and/or unstructured data in a more systematic and efficient manner than possible with conventional methods and systems. In addition to structuring the data and as described in method 6000, the analytics server may also create relationships and identify insights using the data structure described above. These insights may be generated in a systematic and standardized method and may be used cross entities and/or domains.


The analytics server may generate mental models and/or physical data models to better create insights and apply those insights to data. For instance, a user may request the analytics server to analyze how a marketing campaign has affected sales in a specific branch. The analytics server may implement the methods and systems described herein (e.g., method 6000) to analyze relevant portions of the nodal network and develop insights. The analytics server may also apply the mental models to other domains. For instance, the analytics server may generate a domain-specific mental model comprising related nodes and data tables that represent an analytic solution. The analytics server can execute analytical protocols to develop insights by using data corresponding to the mental model. Once the mental model is developed and iteratively refined, the analytics server may use this model to identify insights for other domains. The analytics server may also use the mental model to collect data more efficiently.


The nodal network is a logical data model that is created using various data structures described herein. On the other hand, the mental model is a framework to understand insights from the data stored within the nodal network. The mental models are illustrated using diagrams described herein (e.g., widgets or free form). In some configurations, the analytics server may link the nodal network (logical data model) to provide facts to support the understanding of the given mental model. The same approach may also be used for methods (e.g., steps to solve a problem). Finally, physical data models consist of the technical implementation of the logical data model using an existing software platform (relational database systems (RDMBS) or big data tools, such as HADOOP HIVE). A mental model is a data model (e.g., nodal structure) of a specific problem domain expressed independently of a particular database management product or storage technology but in terms of data structures such as relational tables and columns, object-oriented classes, or XML tags.


Even though this disclosure refers to different models as mental models, it is expressly understood that these models are computer-generated and are utilized by the analytics server to artificially replicate human understanding and intelligence. Therefore, these models are collections and subsets of data nodes described in FIGS. 1-4. The data models described herein comprise a set of tables populated with data collected and represented by the nodal network described in FIGS. 1-4.


At steps 6010-20, the analytics server may disaggregate the data into a set of data tables (e.g., domains). The analytics server may parse the data within the nodal network (e.g., retrieved from various electronic sources) or other collected data to generate a set of uniform data tables. The analytics server may parse and disaggregate the collected data into a set of unique domain data tables, each domain data table corresponding to a predetermined domain having a first criterion. Furthermore, the analytics server may also parse and disaggregate each unique domain table into a set of unique dimension tables, each dimension data table corresponding to a predetermined dimension having a second criterion.


Disaggregation of data into different data tables is described in FIGS. 3A-B. For instance, the analytic server may first determine one or more domains applicable to the collected data. A domain is a category of collected data or knowledge. The domain table in FIG. 3A illustrates different domains categories used to subdivide data into different domain tables. Once the data is distributed among one or more domain tables, the analytics server may further distribute the collected data among five building blocks. For instance, collected data that belong to ATM domain is further divided among information, dimensions, analytics, archive, and grid building blocks, as depicted in building blocks 320. Different domains described in the domain table 310 may represent different categories of data satisfying a specific predetermined criterion. For instance, the customer journeys domain may refer to all data related to user experiences of customer-facing applications (e.g., customer-facing web site and/or other electronic applications). Therefore, all data within the data table corresponding to the customer journey will satisfy this criterion. In another example, ATM domain may refer to all collected data relevant/associated with ATMS. Therefore, all collected data parsed, by the analytics server, into the ATM domain table, will share at least that one criterion.


Referring now to FIG. 61, table 6100 includes a graphical representation of multiple domains. Table 6110 represents a non-limiting example of domains to which different files are assigned. The analytics server may assign a domain to the data collected/retrieved. Therefore, in some configurations, the analytics server may assign all data (e.g., each collected file) to a domain identified in table 6110. As described throughout this disclosure, the analytics server may continually/iteratively execute various protocols to divided and disaggregate data into different domains and domain tables. Therefore, the method described in step 6010 may be continuously executed by the analytics server.


The analytics server may also specify a measure catalog for each domain to organize measures into logical groupings. Upon identifying the relevant domains, the analytics server may also identify relevant measure catalogs (MCs) for each identified domain. A catalog of measure or measure catalog is implemented for each domain. MCs allow the analytics server to quantify the absolute and relative size of concepts. Non-limiting examples of MCs include revenue expenses net income, number of facilities, number of ATMs, gross loans and acceptance, write-offs, provisions for credit losses. For each domain, MCs may be implemented in a fact catalog. A fact catalog is associated with each MC to update the value of measures over time. MCs may also be associated with different dimension tables (DTs) to enable users to pivot, filter, and drill-down. For instance, MCs of Full time equivalents (FTEs that indicate the hours worked by one employee on a full time basis) is associated with the following dimensions: organization unit, job family, grade level, and location. In some configurations, MCs may be specified by an administrator. For instance, an administrator may assign various MCs for each domain or other data table.



FIG. 65 illustrates a non-limiting example of MCs identified by the analytics server, according to an embodiment. Table 6500 illustrates different MCs related to a domain. Table 6500 also describes attributes of each MC. For instance, the financials domain (key No. 1) may have a domain id, domain icon, table name (MC financial measures), table type (MC), table ID (MC 1), description (financial domain measures), attributes (name, overview, acronyms, units), and relationships (DT Financial Measure Type). The analytics server may use the description to tag the collected data accordingly and link them to different MCs. FIG. 66A illustrates another example of MCs where the analytics server uses the MCs to retrieve/compute the measure value. Additional examples of MCs are also illustrated in FIG. 66B. Referring now to FIG. 67-68, tables 6700 and 6800 illustrates different domain tables to be selected by the analytics server, as described above.


Referring now to FIG. 69, table 6900 illustrates different fact catalogs related to different domains. As described above, the analytics server may further disaggregate the collected data to identify different fact catalogs related to each request. As depicted in table 6900, different fact catalogs may have different attributes and relationships. The analytics server may use these relationships to efficiently retrieve data and to create a mental model by identifying related data (e.g., related data tagged as associated with other fact journals, DT, and other data tables). For instance, employee fact catalog (table ID FC_3) is related to organization domain (DT_ID 3 and Table name FC_Employee). The employee fact catalog may also be related to other dimension tables and their corresponding fact catalogs, such as DT_Grade-Level.


Referring now to FIG. 70, table 7000 illustrates different fact journals related to different domains. As described above, the analytics server may further disaggregate the data (e.g., data corresponding to the nodal network and/or the request) to identify different fact journals related to the collected data. As depicted in table 7000, different fact journals may have different attributes and relationships. The analytics server may use these relationships to efficiently retrieve data and create a mental model by identifying related data (e.g., related data tagged as associated with other fact journals, DT, and other data tables). For instance, capital liquidity fact journal (table ID FJ_8) is related to the risk domain. The capital liquidity fact journal may also be related to other dimension tables and their corresponding fact catalogs, such as DT_Risk_Measure and (DT_Period).


Referring back to FIG. 60, at step 6030, the analytics server may generate an analytics solution model (mental model) using the identified related data tables. The analytics server may generate a set of nodal networks comprising a set of nodes where each node represents at least a portion of the retrieved data, each node having metadata comprising a unique identifier corresponding to a unique domain table and a unique dimension table corresponding to data associated with each node, wherein the one or more nodes within each nodal network is linked based on its respective metadata. The analytics server may generate an analytical solution for different categories by linking different nodes representing data within the identified data tables (steps 6010-6020). Accordingly, a mental model is a computer model comprising a subset of nodes that are linked together for a common purpose (e.g., analyzing a specific domain or satisfying a request/category). For instance, a mental model may be tailored towards identifying how money spent on marketing has affected sales. Another mental model may be directed to identifying cybersecurity shortcomings. As described above, the analytics server may store context data (e.g., a related data table) as metadata to a collected file.


The analytics server may translate the related data tables into a mental model using SQL tables that define indexes, attributes, and relationships between the collected data. The analytics server may generate multiple SQL tables that define the mental model by describing how various data tables (e.g., DTs, FCs, FJs, and their corresponding data nodes) are related. Referring now to FIG. 71, SQL table 7100 illustrates an example of an SQL table that identifies how different data tables are related. SQL Table 7100 is a formulaic representation of a mental model because it identifies how various data tables can be analyzed.


Referring now to FIG. 72A, a graphic representation of a mental model is illustrated. Mental model 7200 represent how different dimension tables, fact catalogs, fact journals, measure catalogs, and unstructured data catalogs are interconnected. For instance, every rectangle represents a dimension table, every circle represents a fact journal and every triangle represents a fact catalog or measure catalog. Upon identifying relevant data tables to an analytical request/problem, the analytics server may generate a nodal structure specific to that analytical request/problem. The mental model 7200 is a representation of how different data tables relevant to a request are connected. Therefore, the mental model 7200 is a nodal structure (similar to the nodal structure described in FIGS. 2 and 3A-B and referred to as the knowledge grid) that is specific to a request, category, or problem.



FIG. 72B is another graphical representation of how the analytics server connects different data tables in order to generate the mental model or the analytical solution. To clarify the mental model 7200, a limited number of interconnected data tables are illustrated in FIG. 72B. However, it is expressly understood that data tables illustrated in FIG. 72B are only a small and limited portion of the mental model 7200. Upon identifying relevant data tables, the analytics server may use tagging/indexing or other methodologies to create relationships between different nodes that represent data within each data table. For example, the analytics server may generate various SQL tables that designate and define relationships between the identified tables. FIG. 72B visually illustrates these connections and relationships. For instance, domain tables 7210 and 7212, measure catalog 7214, fact catalogs 7216-7236, unstructured data tables 7240, and fact Journal 7238 are interconnected as part of a mental model.


As illustrated, not all data tables are connected to each other. For instance, domain table 7210 is only connected to measure catalog 7214, which is connected only to fact Journal 7238. However, domain tables 7210 is not connected to other fact journals or data tables. On the other hand, fact catalog 7228 is connected to fact catalog 7234, fact catalog 7226, and fact Journal 7238. By minimizing the number of connections, the analytics server may increase efficiency of data retrieval and/or analysis.


In some configurations, the analytics server may generate one or more mental models for various requests, problems, and/or categories. For instance, the analytics server may generate a mental model specific to understanding how sales affects productivity and another mental model specific to understanding levels and types of fraudulent cyber activity. Upon receiving a request from a user, the analytics server may retrieve a mental model associated with the request and analyze the data according to the data tables/relationships described within the retrieved mental model. For instance, if the analytics server receives a request regarding analyzing the effects of marketing on sales, the analytics server may retrieve a mental model specific to marketing and sales and may analyze the data represented by the nodes within the retrieved model. In this way, the analytics server can efficiently analyze data only specific to the requested category, which allows the analytics server to provide responses faster, more efficiently, and using less computing power.


Data tables identified within mental models may also define how data is to be collected, extracted, analyzed, and/or verified. For instance, a data table may define one or more data adapters that define how and from where data is to be collected. The analytics server may use the data adapters (e.g., application programming interfaces) to extract data from various data sources (both internal and external). The data adapters may connect to the data sources (e.g., database, application, and/or micro service data sources). For example, when an entity has multiple databases of different types (e.g., ORACLE, MICROSOFT, or IBM), a large amount of data is available externally through micro services, external APIs, and electronic listeners. A data table within the nodal structure and/or a mental model may identify and describe the micro services connected to those external data sources, whereby the analytics server may efficiently collect data from the identified micro services. The analytics server may also use the data adapters to efficiently load the collected data onto the nodal structure and/or the mental model. When the analytics server collects data using a defined data adapter, the analytics server may load data in accordance with descriptions of the data adapter.


In a non-limiting example, a domain table may define one or more data adapters. The data table may define an application-programming interface connected to an internal database configured to monitor sales figures for a branch. The data table may also include a micro service configured to monitor FTEs in an external accounting database. The data table may also designate a related data table (e.g., FC or FJ) associated with the data collected from each data adaptor. The analytics server may then automatically collect the data using the defined adaptors and tag/index the data accordingly (e.g., translate the data).


The analytics server may also use the adapters to validate data. For instance, each data table may define a set of validation rules to determine if the data collected via an adapter is valid. For example, if certain required fields in a table are missing for several items (rows), the adapter may generate a message in the administrative console to inform an administrator of the analytics server that the data collected via a particular adapter is not valid or needs to be reviewed. The analytics server may also generate an automatic message and transmit the collected data (that is purportedly not valid) to the administrator's computer and display a prompt to the administrator requesting a second level review of the collected data.


As depicted in FIG. 72B, the mental model may also define how to translate the collected data into different data tables. For instance, a DT may include a set of adapters and identify how, from where, and when to collect data. The DT may also identify how to translate data into related data tables (e.g., FCs and/or FJs). Translation of data refers to mapping data and its attributes to different tables. For instance, the analytic server may translate the data and map the data to the appropriate data table based on pre-configurations and set of rules received from each data table. As described above, these translation rules can be populated within the mental model. For instance, the SQL table corresponding to a mental model may include a set of translation rules.


The analytics server may use the translation rules to assign a data table (e.g., FC, FJ, and/or MC) to the collected data. For instance, the analytics server may retrieve attributes of each fact catalog (e.g., table 6900 in FIG. 69). The analytics server may use these attributes to populate each row of the SQL data table (e.g., the SQL file that represents the mental model) when data is collected. For instance, facilities data, data on applications, data on IT infrastructure assets may be designated to a particular fact catalog because of their attributes (e.g., content, source, and timestamp). When the analytics server identifies that a file or other collected data has an attribute consistent with the translation rules, the analytics server may designate the file accordingly. In another example, the analytics server may retrieve attributes of each fact journal (e.g., table 7000 in FIG. 70). The analytics server may also use these attributes to populate each FJ row of the SQL data table.


At step 6040, the analytics server may parse the request to identify one or more nodes and/or domains tables associated with the request. Upon receiving a request from a user-computing device, the analytics server may parse the request to identify a nodal network associated with the request. The analytics server may receive a request from the user to identify insights by analyzing the data collected from an entity. The analytics server may use a variety of technologies to identify different nodes (or categories) associate with the request. For instance, the analytics server may execute a natural language processing protocol to identify words and phrases used in the request. In some configurations, the analytics server may receive the categories of the request from the user. For instance, an administrator may select one or more domain tables, FJs, FCs, and/or MCs as related to a request. In some configurations, the analytics server may automatically identify these data tables.


Referring now to FIGS. 62-64, examples of the analytics server identifying the relationships between request and different domains are illustrated. While these non-limiting examples illustrate how the analytics server identifies related domains, each figure illustrates requests pertaining to a different category. For instance, FIG. 62 illustrates domains related to “productivity,” FIG. 63 illustrates domains related to “sales and customer experience,” and FIG. 64 illustrates domains related to “cybersecurity and financial crimes.”


As depicted in FIG. 62, when the analytics server receives a request (“how is the bank's efficiency impacted by technology cost”), the analytics server identifies that the request is related to the “technology” and “financial” domains. In another example and depicted in FIG. 63, when the user requests “how is our brand performing relative to competitors' brands?” the analytics server identifies the “competitors” and “brand” domains to be relevant to the user's request. In some configurations, the analytics server may also identify “sales” as a relevant domain. In yet another example and as depicted in FIG. 64, when the analytics server receives the depicted request (“How many IT/data assets do we have? Which ones are high value?”), the analytics server identifies “technology,” “data & analytics,” and “ATMs” domains as related to the user's request.


Referring back to FIG. 60, at step 6050 and as depicted in FIGS. 73A-D, the analytics server may iteratively analyze the data in accordance with the mental model and refine the solution by repeating the above-described steps. The analytics server may iteratively execute an analytical protocol on the data corresponding to the nodes within the identified nodal network. The analytics server may also display, on a graphical user interface of the user-computing device, data associated with the execution of the analytical protocol. FIGS. 73B-D illustrate an overall flowchart of how the method 6000 (also referred to as the method) operates and how the analytics server generates the analytic solution (e.g., analytics model or the mental model).


Given the complexity of the request, volume of data collected from disparate data sources, and different attributes of collected data, conventional software solutions have failed to provide efficient results. For instance, query-and-analyze methods utilized by conventional software solutions have faced great technical challenges because they attempt to satisfy user requests in a single step. The systems and methods disclosed herein use an iterative approach to solve complex problems/request more efficiently (using a multistep approach where value is created at each step).


The analytics server may implement the methods and systems described herein through a series of steps. For instance, the analytics server may execute an analytical protocol that review the data corresponding to the identified mental model(s) to calculate results. At each step, one or more parts of the intelligent data analysis system are enhanced to make the system more powerful. In a non-limiting example, with each iteration the analytics server may add measures and measure groups to different data tables. This enhances the scope of analysis.


The analytics server may also add a dimension with each iteration, which enables analysis of the existing knowledge grid with additional pivots, filters, and drill downs, enabling further insights into the data. With each iteration, the information captured in journals may be enhanced. For example, the analytics server may generate and capture additional fields in the journal of transactions or events. Moreover, additional journals may be added to collect new types of transactions and events. With each iteration, the analytics server may enhanced the information attached to each atomic item (e.g., attributes for each customer and/or attributes for each employee). With each iteration, additional views, diagrams, mental models and/or methods may be added. Furthermore, the analytics server may update the navigation system (Path) with each iteration to provide users with additional ways to traverse the knowledge grid or the nodal structure. In a non-limiting example, the analytics server may iteratively assign the collected to different data tables where with each iteration, the analytics server assigns the collected data to an additional data table. For instance, during the first iteration, the analytics server may assign a file to a dimension, during the second iteration, the analytics server may assign the same file to a FC.


In some configurations, an atomic item refers to an FC. Atomic item catalogs are catalogs that contain concepts of the following types:

    • people: employees, contractors, global resources, customers, and individuals;
    • entities: customer-entities, suppliers, regulators, and competitors;
    • things: facilities, and ATMs;
    • abstract concepts: risks, regulations, applications, controls, and processes;
    • atomic items enable the analytics server to drill-down features (e.g., domains) to the most granular level. For instance, the analytics server may drill-down measures number of FTE by first reducing the number of FTEs as follows:
    • number of FTE by type: employees and contractors reduced by DT (resource type)
    • number of FTE by location: FTEs in a specific locations reduced by DT (locations)
    • number of FTE by job family: FTE reduced by DT (job family)


Once the analytics server reduces the total number of FTEs to a specific number of FTEs is a specific dimension (using the method illustrated by the examples above), the analytics server may further drill down to any granular level desired by the user.


Because all parts of the nodal structure are standardized, a large number of users can work in parallel on the above improvements and a single integration team can create the logical linkage across domains in the user interface described above. The resulting system provides a unified navigation, visualization, analytics, and collaboration tool. This iterative approach may be used to systematically improve the knowledge grid.


Upon executing the analytical protocol, the analytics server may display the results as described in FIGS. 5-47.


In an example, the analytics server collects data from disparate electronic data sources including entity computers, different branches, and other internal and external data sources. The analytics server parses and disaggregates the collected data into different data tables (e.g., domains, DT, FC, FJ, and MC). The analytics server systematically organizes the data by storing the data into different data tables. The data within the data tables share one or more attributes and each data tables defines the attribute common among its data, related data tables, and one or more adaptors. The adaptors define how, when, and where the data is to be collected. The analytics server then generates a nodal structure where each node represents a file (or other collected data). The nodal structure (knowledge grid) represents all the collected data. The analytics server also links different nodes in accordance with their respective data tables and attributes. Therefore, the knowledge grid replicates how all the collected data is stored within different data tables. The analytics server may automatically and iteratively collect data and assign the data to different data tables in accordance with adaptors, related data tables, and translations rules.


The analytics server may also generate a set of mental models. A mental model is a set of related and linked nodes (within the nodal structure or the knowledge grid) that represent an analytical solution to a problem or a request. For instance, to identify how sales impacts productivity, the analytics server generates a mental model that comprises data corresponding to financial sales and service domains. The mental model also comprises all the related data tables (FC, FJ, and other data tables). The analytics server may generate multiple mental models where each mental model is tailored towards a specific category, problem to be solved, and/or request to be satisfied. Each mental model comprises a subset of nodes (e.g., a portion of nodes within the knowledge grid) that are inter-connected based on their respective data tables.


When the analytics server receives a request from a user, the analytics server parses the request to identify a corresponding mental model. For instance, if the user requests the analytics server to identify how sales have affected productivity, the analytics server retrieves the mental model corresponding to sales affecting productivity. The analytics server then analyzes the collected data in accordance with the mental model and displays results accordingly. Because mental models are standardized, the analytics server may use the same mental model for different domains.


Referring now to FIGS. 74A-B, an overall diagram describing the disclosed platform (the platform generated, updated, and displayed by the analytics server) is illustrated. For instance, the analytics server generates the logical model 7400 (i.e., nodal structure) using various building blocks (e.g., various data tables and data structures) described above. The analytics server may continuously update the logical model using different adaptors collecting data from various data sources. The analytics server also displays the above-described user interfaces to allow users to view and interact with the data stored within the logical model in a more efficient manner. These features are also reiterated in FIG. 74B. Also as described above, the analytics server may provide data insights and analytics using various methods, such as by generating mental models defining relationship between various nodes representing the collected data. In this figure, the physical model represents the technical implantation of the logical model.



FIG. 76 illustrates a flow diagram of a process executed by the intelligent data analysis system, according to an embodiment. The method 7600 includes steps 7610-7670. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 7600 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 76 may be locally performed by one or more user computing devices or an administrative computing device. Furthermore, even though some aspects of the method 7600 are described in the context of collecting and analyzing data associated with banking computing systems, it is expressly understood that method 7600 is applicable to collecting, structuring, and analyzing any data.


As described above, the analytics server may collect data from various computing devices and electronic data sources to generate a nodal network (knowledge grid). Having this nodal network and organizing the data according to the various data tables described herein (e.g., domain tables, dimension tables, and various fact journals described herein) allows the user to navigate vast structured and/or unstructured data in a more systematic and efficient manner than possible with conventional methods and systems. In addition to structuring the data and as described in method 7600, the analytics server may also create relationships and identify insights using the data structure described above. These insights may be generated in a systematic and standardized method and may be used cross entities and/or domains.


The analytics server may generate mental models and/or physical data models to better create insights and apply those insights to data (e.g., analyze the data). For instance, a user may request the analytics server to analyze how a marketing campaign has affected sales in a specific branch. The analytics server may implement the methods and systems described herein (e.g., method 6000) to analyze relevant portions of the nodal network and develop insights. The analytics server may also apply the mental models to other domains. For instance, the analytics server may generate a domain-specific mental model comprising related nodes and data tables that represent an analytic solution. The analytics server can execute analytical protocols to develop insights by using data corresponding to the mental model. Once the mental model is developed and iteratively refined, the analytics server may use this model to identify insights for other domains. The analytics server may also use the mental model to collect data more efficiently.


Methods and systems of parsing data, generating various data tables, and generating a nodal network have been described above (e.g., FIGS. 1-4 and FIG. 60). In method 7600, the analytics server may cluster the nodes into various clusters and only analyze nodes that are relevant to the cluster of nodes. In this way, the analytics server is not required to analyze all related nodes, which may lead to a more efficient analysis of data (e.g., less computing resources needed and less time to analyze relevant data). At steps 7610-7640, the analytics server may parse and/or disaggregate data and generate a nodal network associated with the data.


At step 7650, the analytics server may receive a request from a user computing device and may parse the request to identify a cluster of nodes associated with the request. The analytics server may receive a request from the end user to perform various analytical protocols regarding attributes associated with the nodal network. The end user may transmit a request to the analytics server to run a predetermined protocol on the data stored within the nodal network. For instance, the end user may request the analytics server to perform profitability analysis for an entity where the entity's data is organized using the methods and systems described above (e.g., within a nodal network). The predetermined protocol (e.g., profitability analysis) may refer to one or more predetermined protocols (e.g., analytical models, artificial intelligence models, and analytical algorithms). In some configurations, the analytics server may receive the predetermined protocol from a different server (e.g., third-party server) or the end user. In some configurations, the analytic server may generate the protocol itself or retrieve it from a database.


In some configurations, the analytics server may retrieve the predetermined protocol and apply the analytical protocols (e.g., models) to the data stored within the nodal network. However, analyzing the data within the entire nodal network may require high processing power and processing time. In order to reduce the processing power needed and/or the processing time, the analytics server may utilize the method 7600 to prioritize various nodes (and their respective data). As described herein, the analytics server may then analyze the data associated with the prioritized nodes.


As used herein, analytical protocols may refer any analysis performed using the data within the nodal data structure, such as profit analysis, efficiency analysis, operational leakage analysis, net profit margins, monthly recurring revenue analysis, sales analysis, cybersecurity analysis, growth analysis, product quality analysis, service quality analysis, and the like. An analytical protocol may refer to one or more algorithms used by the analytics server to analyze the data (e.g., segmented data that is a subset of the data within the nodal data structure) and calculate the results. Therefore, an analytical protocol may refer to one or more algorithms or computer models used by the analytics server to calculate the requested metric. The analytical protocols may be retrieved from a data repository and/or a third-party server.


The analytics server may prompt the user to select a metric to be analyzed. Based on the user's response (e.g., selection), the analytics server may retrieve one or more models corresponding to the user's selection. The analytics server may then apply the retrieved model to the data that has been segmented and selected using various methods described herein. In one example, the analytical protocol may be pre-generated, such that the analytics server executes the model without generating and/or revising the model itself. For instance, when prompted, the analytics server may execute a pre-generated profitability model and calculate the results for the user.


The analytics server may also parse the end user's request to further identify the prioritized nodes and the predetermined protocol. For instance, as will be described in FIG. 77, the end user may utilize a graphical user interface to input various data attributes and protocols.


The predetermined protocol may refer to a request received from the end user. For instance, the end user may use various GUIs described herein to enter a command/request to be performed by the analytics server. The end user may select from a list of analytical protocols provided by the analytics server. For instance, the end user may select “profitability analysis” and then select a group of branches (e.g., all branches within zip code 20009). The analytics server may then analyze the nodes (or a portion of the nodes) that correspond to the right branches and data needed to identify profitability to display the requested results.


In another example, the user may enter a request in natural language (e.g., “show me how profitable our Canadian branches are”). The analytics server then executes a natural language protocol to extract key words from the received request. The analytics server may then cluster the data within the data structure using the key terms associated with the received request. For instance, the analytics server may determine that “Canada,” “branches,” and “profitable” are keywords within the received request. As a result, the analytics server may cluster the data, such that the clustered data includes data points that correspond to the above-described attributes. After iteratively clustering the data, the analytics server may generate a subset of the data points that are directly related to the received request.


In some configurations, the analytics server may weigh the data points based on how important they are within the data structures described herein. For instance, the analytics server may generate a score for each data point (or a group of data points) that represents an importance of the data point(s). For instance, a node within the nodal data structure that is linked to a higher number of other nodes may receive a higher score than a similar node with fewer linked nodes. In another example, a node that corresponds to data associated with a bigger branch (or a branch that has been identified as more important) will receive a higher score. In an example, a branch located in a bigger city may receive a higher score than another branch located in a rural area. In addition to clustering the data, the analytics server may also filter the nodes within the identified cluster of data, such that the analytics server identifies nodes that correspond to clustering criteria discussed above and have a score than satisfies a threshold.


At step 7660, the analytics server may execute a clustering algorithm to generate one or more clusters of nodes, each cluster having a subset of the set of nodes within the nodal network, each node within each cluster of nodes having at least one common attribute.


The analytics server may execute one or more clustering algorithms to cluster the nodes based on the attributes received within the request (e.g., step 7650). Each cluster may comprise at least one node within the set of nodes of the nodal network. To generate a number of clusters, the analytics server may calculate a multidimensional distance value between each node within the nodal network. Each distance may correspond to an attribute of (e.g., data stored within) each node. The analytics server may assign a cluster to each node based on its respective distance to other nodes, and iteratively repeat calculating the distance value and assigning each node to a cluster until the distance values of nodes within each cluster satisfy a distance threshold. For example, the analytics server may execute a clustering computer model using the data for each node that corresponds to an attribute received within the request or otherwise inputted by the end user. The analytics server may cluster the nodes based on one or more attributes (e.g., single dimension clustering or multi dimension clustering). For clarity, the clustering is described in the context of a single dimension. However, a skilled artisan will recognize that the analytics server can execute multi-dimension clustering algorithms.


The analytics server may generate a number of clusters with each cluster including one or more nodes with similar attributes. By executing the clustering computer model, the analytics server may group the nodes into a number of clusters. Nodes in the same cluster may be more similar (e.g., having attributes with less distance) to each other than to those in other clusters.


In some embodiments, the analytic server may divide the set of nodes into a predetermined number of clusters (e.g., five or ten clusters). For example, the analytics server may receive a parameter for the number of clusters from an end user. The analytics server may iteratively execute the clustering computer model and only stop until the analytics server has reached the predetermined number of clusters and the nodes are assigned to at least one cluster. In some other embodiments, the analytics server may iteratively execute the clustering computer model and only stop until the distance values of nodes within each cluster satisfying a distance threshold. Alternatively, the analytics server may iteratively execute the clustering computer model until the distance values decreasing is less than a threshold or the distance values stop decreasing.


The distance between two nodes may represent a difference of two nodes with respect to one or more attributes. For example, a “spending distance” between two nodes representing two branches represents how similar the two nodes are with respect to spending (e.g., overhead). As described herein, the analytic server may utilize this distance to identify similar nodes and cluster nodes accordingly. Furthermore, because the analytics server considers more than one attribute when assigning nodes to different clusters, the analytics server may generate the distance representing more than one attribute. The analytics server may utilize any distance calculating technique, such as the Euclidean distance or any other distance calculation method, to generate the multidimensional distance value for each node. The Euclidean distance, as described and used herein, may be a “straight-line” distance between two nodes.


In some embodiments, the analytics server may use a non-hierarchical clustering method, such as K-means clustering algorithm, to generate a predetermined number of clusters. For example, the analytics server may generate 10 clusters. The analytics server may start with an initial set of cluster centers. The initial set of cluster centers may be 10 nodes randomly chosen from the set of nodes. The analytics server may calculate the Euclidean distance between each node to each of the centers. The analytics server may minimize the within-cluster scatter, which is the average distance for every node to its cluster center.


In Euclidean space, the within-cluster scatter is the sum of squared distances of each node to the cluster centers. Specifically, the analytics server may minimize the within-cluster scatter with the following two-step iterative process. In the first step, the analytics server may assign each node to its closest cluster center. In the second step, the analytics server may calculate the average location of all the nodes assigned to each cluster and move the cluster center to the average location (e.g., readjust the data point). By repeating this process, the analytics server may iteratively reassign the nodes to more appropriate clusters until either the algorithm converges (the assignment of each node stops changing) or the within-cluster scatter reaches a minimum distance value (e.g., stops decreasing).


In some configurations, the clustering algorithm implemented in the clustering computer model may be K-means clustering, mean-shift clustering, density-based spatial clustering of applications with noise, expectation-maximization clustering, hierarchical clustering, and any other clustering algorithms.


The analytics server may execute the above-described clustering protocols to identify a predetermined number/proportion of nodes that contain (e.g., or otherwise associated with) a predetermined proportion of the data. In some embodiments, the predetermined numbers may be received from the end user. For instance, the end user may require the analytics server to analyze the top 20 percent of nodes that contain 80 percent of the data. In a non-limiting example, the analytics server may identify the nodes that correspond to a higher portion of the data. For instance, nodes that correspond to a busy branch located in a city, which serves many customers may be associated with more data than nodes corresponding to a small branch in a rural area that server fewer customer. Therefore, even if the number of nodes are the same, the nodes that correspond to the busy branch contain more data (that can lead to better results) than nodes that correspond to the smaller branch.


In another example, the end user may limit the number of nodes or the volume of data represented by the nodes. For instance, the end user may instruct the analytics server, such that the data used does not exceed 15 branches. The analytics server then identifies the top 15 branches (that produce the most data) and may analyze the data accordingly.


Upon identifying the nodes, the analytics server may retrieve data associated with the identified nodes. For instance, the analytics server may use the data retrieved to apply and execute the predetermined analytical protocol requested by the end user (step 7650).


At step 7670, the analytics server may display, on a graphical user interface of the user computing device, data associated with the nodes within the identified cluster of nodes. The analytics server may display the results of the execution of the analytical protocols on the graphical user interface. As described above, the analytical server may display various GUIs displaying the results requested by the end user.


In one non-limiting example, a user accesses a software generated by the analytics server that utilizes the methods and systems described herein to analyze various attributes of an entity. In this non-limiting example, the user requests the analytics server to execute profitability analysis and identify profitable areas within the entity. However, in other embodiments and examples, the user may request the analytics server to execute any analytical protocol.


As described above, the analytics server has generated a nodal network having nodes where the nodal network contains all relevant data associated with the entity. Furthermore, the nodal network may be organized in accordance with the above-described data tables.


The user may access a graphical user interface generated/updated by the analytics server. The user may then select a use case (step 7701). For instance, the user may select macroeconomic analysis, competitive analysis, or other options displayed on the GUI. In this non-limiting example, the user selects profitability analysis. Each analysis option displayed in the step 7701 represents an analytical protocol to be executed on a portion of the nodes within the nodal structure.


Each use case may correspond to an analytical protocol. For instance, the analytics server may have a list of data needed to perform the “customer journey analysis.” The analytic server may determine that in order to provide customer journey analysis, the analytics server need to execute a computer model (e.g., analytical algorithm) on data associated with certain domains and dimension tables. Therefore, when the user selects a use case, the analytics server automatically retrieves the analytical algorithm (model) and identifies the data accordingly. The data identification, however, can be refined based on receiving additional criteria from the end user.


At steps 7702-3, the user may select and configure one or more domains within the nodal network. As depicted, the user may first select one or more domains of data (e.g., facilities, ATMs, sales, and financials). The user also selects structured and unstructured data. Simply put, the user may select these domains to view profitability analysis of all ATMs and branches.


After the user identifies the domains and use cases, the analytics server may execute various clustering algorithms to identify a subset of the nodes that contain a predetermined portions. For instance, the analytics server first identifies nodes that correspond to attributes received in steps 7701-7703. The analytics server then clusters the identified nodes to identify the top 20% of the nodes that contain 80% of the data. Once the analytics server identifies these nodes, the analytics server retrieves the data associated with the identified nodes. The analytics server then executes one or more analytical protocols identified in step 7701 onto the data retrieved and displays the results. For instance, the analytics server may retrieve and execute algorithms that calculate customer journey experience for the end user.


The displayed results can then be configured and customized by the user (steps 7704-7707). For instance, the user can customize the views, data summarization, and select permissions and display preferences.



FIG. 78 illustrates a flow diagram of a process executed by the intelligent data analysis system, according to an embodiment. The method 7800 includes steps 7810-7850. However, other embodiments may include additional or alternative execution steps, or may omit one or more steps altogether. The method 7800 is described as being executed by a server, similar to the analytics server described in FIG. 1. However, in some embodiments, steps may be executed by any number of computing devices operating in the distributed computing system described in FIG. 1. For instance, part or all the steps described in FIG. 78 may be locally performed by one or more user computing devices or an administrative computing device. Furthermore, even though some aspects of the method 7800 are described in the context of collecting and analyzing data associated with banking computing systems, it is expressly understood that method 7800 is applicable to collecting, structuring, and analyzing any data.


As described above, the analytics server may collect data from various computing devices and electronic data sources to generate a nodal network (knowledge grid). Having this nodal network and organizing the data according to the various data tables described herein (e.g., domain tables, dimension tables, and various fact journals described herein) allows the user to navigate vast structured and/or unstructured data in a more systematic and efficient manner than possible with conventional methods and systems. In addition to structuring the data and as described in method 7800, the analytics server may also create relationships and identify insights using the data structure described above. These insights may be generated in a systematic and standardized method and may be used cross entities and/or domains.


The analytics server may generate mental models and/or physical data models to better create insights and apply those insights to data. For instance, a user may request the analytics server to analyze how a marketing campaign has affected sales in a specific branch. The analytics server may implement the methods and systems described herein (e.g., method 6000) to analyze relevant portions of the nodal network and develop insights. The analytics server may also apply the mental models to other domains. For instance, the analytics server may generate a domain-specific mental model comprising related nodes and data tables that represent an analytic solution. The analytics server can execute analytical protocols to develop insights by using data corresponding to the mental model. Once the mental model is developed and iteratively refined, the analytics server may use this model to identify insights for other domains. The analytics server may also use the mental model to collect data more efficiently.


Methods and systems of parsing data, generating various data tables, and generating a nodal network has been described above (e.g., FIGS. 1-4 and FIG. 60). In method 7800, the analytics server may cluster the nodes into various clusters and only analyze nodes that are relevant to the cluster of nodes. In this way, the analytics server is not required to analyze all related nodes, which may lead to a more efficient analysis of data (e.g., less computing resources needed and less time to analyze relevant data). At steps 7810-7840, the analytics server may parse and/or disaggregate data and generate a nodal network associated with the data.


At step 7850, the analytics server may display a web document having a set of words, wherein when a user interacts with at least one word, the server: identifies a node associated with the word with which the user has interacted; and presents for display a graphical user interface displaying data associated with the identified node.


The analytics server may display a web document having a set of words, wherein when a user interacts with at least one word, the server: identifies a node associated with the word with which the user has interacted, and displays a pop up graphical user interface displaying data associated with the identified node. The analytics server may first identify one or more nodes associated with the word with which the user has interacted. As described above, the analytics server may query the nodal network and display a word corresponding to a predetermine subset of the data. For instance, the analytics server, may execute the clustering algorithms described above and display words corresponding to the prioritized clusters (e.g., data tables).


The analytics server may display a web document on a graphical user interface (as illustrated and discussed above). The GUI may include various words where each word corresponds to one or more nodes (e.g., a cluster of nodes). In some embodiments, each word may correspond to a data table described above. For instance, each word may represent a dimension table, domain table, or other attributes of one or more data tables (e.g., different measures and/or atomic levels). The analytics server may display each word within the web document displayed on the GUI, such that enables the users viewing the GUI to interact with one or more words. For instance, the user may interact with (e.g., click, tap, or hover) each word.


When the user interacts with a word displayed within the web document on the GUI, the analytics server may display a window on the GUI (e.g., pop up window) displaying data associated with the identified node. In some configurations, the analytics server may generate the window with the results of the analysis provided as a result of analyzing at least a portion of the nodal network. For instance, the analytics server may display a web page on the client computing device where one or more words are displayed in a visually distinct manner. When the analytics server identifies that the user has interacted with a word, the analytics server displays data (e.g., data generated as a result of executing one or more analytical protocols) on the web page.


The following example describes how multiple methods and systems described herein can store large volume of data associated with an entity and present the data without requiring high processing power. This non-limiting example described how a server can traverse and display data stored within the nodal network in an efficient manner.


In this example all the entity data is stored within a conventional data repository (e.g., data lake). The analytics server first divides the data lake a predetermined number of domains. The analytics server may then model every domain uniformly to maintain consistency. Specifically, for each domain, the analytics server divides the data into different dimension tables. The dimension tables may describe the dimension for each segment of the data (e.g., file).


The analytics server may then decompose the data into various data tables (e.g., L1-LN structure). Once the analytics server identifies the corresponding dimensions, the analytics server creates the atomic items, which are the fact catalogues, or the FCs (as described above). For instance, the analytics server may divide the employees into different catalog data tables where each table will convey information associated with the employees (e.g., location, resource type, and/or organization of each employee). The analytics server may then generate journal data tables. Each journal data table includes transactional information and is associated with either just dimensions or with atomic items. The analytics server may then generate a nodal network (as described above) that represents the data lake.


Once the analytics server generates the nodal network, the analytics server may traverse, analyze, and display the data in a more efficient manner than possible with conventional querying systems. For instance, as described above, the analytics server can analyze a portion of the data in order to increase efficiency.


In this non-limiting example, the analytics server analyzes the data (or a portion of the data) using one or more analytical protocols. The analytics server then displays GUI 7900 that includes many interactive elements (e.g., words) displayed. The words may be organized based on their corresponding dimensions (or any other attribute within the nodal network). For instance, the words may be organized based on dimension indicators 7910-7950. In other configurations, the word can be organized based on their corresponding DT, FC, or any other data table. The words may also have corresponding detailed attributes. For instance, the analytics server may display macro economy, which is associated with the “economy” domain. The analytics server may display detailed words that focus on different attributes of macro economy, such as macro-economy in Canada, United States or macro economy associated with consumer spending.


The user may hover over any word (term) displayed within the GUI 7900 and the analytics server may revise the window 7960 (e.g., pop up window) accordingly. For instance, the analytics server may display a number of domains associated with the nodal data structure. For instance, the analytics server may display the web document (on GUI 7900) that includes various domains (7910-7950), such that the end user is presented with many options. As a result, the end user may interacts with any of the domains to receive the results. Therefore, this method of displaying the results allows the user to review multiple domains at will. For instance, the end user may hover over various key terms (e.g., terms representing different method of grouping the data within the nodal data structure, such as domains) to receive insights. For instance, the end user may hover over economy 7910 and the analytics server may display the window 7960 where the end user can drill down and view various results. The end user may also hover over “business investment” term displayed within the GUI 7900 to view data associated with business investments (e.g., business investments from a bank associated with the GUI 7900). In some configurations, the end user may filter the number or the content of the words displayed on the GUI 7900. For instance, the end user can instruct the analytics server to display only terms that are relevant to financial analysis of bank branches in western United States.


When the user clicks on any of the words (or hovers over any of the words), the analytics server may identify data (within the nodal network) associated with the word and display the data (using various display methodologies described above) on a pop up window. In some embodiments, the analytics server may direct the user to a second GUI that displays one or more data visualization techniques described above. In some configurations, the analytics server may direct the user to a third-party website. In some configurations, the analytics server may provide “drill down” functionality in the pop up window (as depicted in pop up window 7960). The drill down functionality has been described herein as a dynamic method of traversing the nodal data structure by dividing the display screen into two or more sections. Non-limiting examples of drill down method is described in FIG. 30A-47.


Foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. The steps in the foregoing embodiments may be performed in any order. Words such as “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, and the like. When a process corresponds to a function, the process termination may correspond to a return of the function to a calling function or a main function.


The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of this disclosure or the claims.


Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.


The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the claimed features or this disclosure. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.


When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module, which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.


The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the embodiments described herein and variations thereof. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments without departing from the spirit or scope of the subject matter disclosed herein. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.


While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims
  • 1. A method comprising: determining, by a server, a presentation of a web document having a set of words on a graphical user interface;when a user interacts with at least one word within the set of words: identifying, by the server, a node associated with the at least one word with which the user has interacted within a nodal data structure,the nodal data structure comprising a set of nodes where each node represents at least a portion of retrieved data parsed into a set of domain data tables each corresponding to a domain having a first criterion, wherein each domain data table is further parsed into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension table corresponding to data associated with each node, andwherein one or more nodes within the nodal data structure are linked based on their respective metadata; andpresenting, by the server, for display a window on the graphical user interface displaying data associated with the identified node.
  • 2. The method of claim 1, wherein the at least one word within the set of words corresponds to one or more particular dimension data tables.
  • 3. The method of claim 1, wherein the data displayed within the window is data resulting from executing an analytical protocol on the identified node, the analytical protocol selected from a group consisting of profit analysis, efficiency analysis, operational leakage analysis, net profit margins, monthly recurring revenue analysis, sales analysis, cybersecurity analysis, growth analysis, product quality analysis, or service quality analysis.
  • 4. The method of claim 3, wherein an indication of the analytical protocol is received from a device of the user.
  • 5. The method of claim 1, wherein the window is a pop up window.
  • 6. The method of claim 1, wherein the user interacting with the at least one word comprises the user hovering over the at least one word or clicking on the at least one word.
  • 7. The method of claim 1, wherein the window comprises a first graphical component, and wherein the server dynamically populates the first graphical component with at least one hyperlink corresponding to the identified node or at least one hyperlink corresponding to one or more nodes related to the identified node.
  • 8. The method of claim 1, further comprising: dynamically populating, by the server, a second graphical component of the window with data corresponding to the one or more nodes related to the identified node.
  • 9. The method of claim 8, wherein the second graphical component comprises a hyperlink corresponding to one or more nodes related to the one or more nodes related to the identified node.
  • 10. The method of claim 1, wherein each word within the set of words corresponds to an attribute received from the user.
  • 11. A system comprising: a server comprising a processor and a non-transitory computer-readable medium containing instructions that when executed by the processor causes the processor to perform operations comprising:determine a presentation of a web document having a set of words on a graphical user interface;when a user interacts with at least one word within the set of words: identify a node associated with the at least one word with which the user has interacted within a nodal data structure, the nodal data structure comprising a set of nodes where each node represents at least a portion of retrieved data parsed into a set of domain data tables each corresponding to a domain having a first criterion, wherein each domain data table is further parsed into a set of dimension data tables, each dimension data table corresponding to a dimension having a second criterion, each node having metadata comprising an identifier corresponding to a particular domain data table and a particular dimension table corresponding to data associated with each node, andwherein one or more nodes within the nodal data structure are linked based on their respective metadata; andpresent for display a window on the graphical user interface displaying data associated with the identified node.
  • 12. The system of claim 11, wherein the at least one word within the set of words corresponds to one or more particular dimension data tables.
  • 13. The system of claim 11, wherein the data displayed within the window is data resulting from executing an analytical protocol on the identified node, the analytical protocol selected from a group consisting of profit analysis, efficiency analysis, operational leakage analysis, net profit margins, monthly recurring revenue analysis, sales analysis, cybersecurity analysis, growth analysis, product quality analysis, or service quality analysis.
  • 14. The system of claim 13, wherein an indication of the analytical protocol is received from a device of the user.
  • 15. The system of claim 11, wherein the window is a pop up window.
  • 16. The system of claim 11, wherein the user interacting with the at least one word comprises the user hovering over the at least one word or clicking on the at least one word.
  • 17. The system of claim 11, wherein the window comprises a first graphical component, and wherein the server dynamically populates the first graphical component with at least one hyperlink corresponding to the identified node or at least one hyperlink corresponding to one or more nodes related to the identified node.
  • 18. The system of claim 11, wherein the instructions further cause the processor to: dynamically populate a second graphical component of the window with data corresponding to the one or more nodes related to the identified node.
  • 19. The system of claim 18, wherein the second graphical component comprises a hyperlink corresponding to one or more nodes related to the one or more nodes related to the identified node.
  • 20. The system of claim 11, wherein each word within the set of words corresponds to an attribute received from the user.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patent application Ser. No. 17/166,849, filed Feb. 3, 2021, which claims priority to U.S. Provisional Patent Application No. 62/972,552, filed Feb. 10, 2020, each of which is incorporated by reference in its entirety for all purposes. This application is related to U.S. patent application Ser. No. 15/925,995, filed Mar. 20, 2018, which is incorporated by reference in its entirety.

US Referenced Citations (16)
Number Name Date Kind
6292715 Rongo Sep 2001 B1
6480842 Agassi et al. Nov 2002 B1
7139779 Kornelson et al. Nov 2006 B1
9436760 Tacchi et al. Sep 2016 B1
9558265 Tacchi et al. Jan 2017 B1
9787705 Love et al. Oct 2017 B1
20030204815 Edwards et al. Oct 2003 A1
20050187977 Frost Aug 2005 A1
20080319947 Latzina et al. Dec 2008 A1
20170132296 Ding May 2017 A1
20180032603 Vaquero Gonzalez et al. Feb 2018 A1
20200012741 Bracholdt et al. Jan 2020 A1
20200234152 Ares et al. Jul 2020 A1
20200234153 Ares et al. Jul 2020 A1
20200234155 Ares et al. Jul 2020 A1
20230067944 Ares Mar 2023 A1
Non-Patent Literature Citations (3)
Entry
International Report on Patentability on PCT Appl. Ser. No. PCT/US2021/016399 dated Aug. 25, 2022 (8 pages).
International Search Report and Written Opinion on PCT Appl. Ser. No. PCT/US2021/016399 dated Apr. 16, 2021 (8 pages).
Notice of Allowance issued for U.S. Appl. No. 17/166,849 dated Jun. 9, 2023 (8 pages).
Related Publications (1)
Number Date Country
20240037117 A1 Feb 2024 US
Provisional Applications (1)
Number Date Country
62972552 Feb 2020 US
Continuations (1)
Number Date Country
Parent 17166849 Feb 2021 US
Child 18487963 US