System and Method for Chat-Visualization User Interface Used in Data Analysis Workbook Assistants
Patent Information
- Application Number
- JP2026516132
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-09-12
- Filing Date
- 2024-09-13
- Publication Date
- 2026-10-14
Smart Images

Figure 2026534075000001_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Copyright Notice Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the reproduction by anyone of the patent document or the patent disclosure as it appears in the patent file or records of the United States Patent and Trademark Office, but otherwise reserves all copyright rights whatsoever without exception.
[0002] Claim of Priority This application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 538,673 entitled "SYSTEM AND METHOD FOR DIGITAL ASSISTANT INTEGRATION" filed on September 15, 2023, U.S. Provisional Patent Application No. 63 / 538,669 entitled "SYSTEM AND METHOD FOR DIGITAL ASSISTANT INTEGRATION WITH CHAT-TO-VISUALIZATION USER INTERFACE" filed on September 15, 2023, and U.S. Patent Application No. 18 / 883,813 entitled "SYSTEM AND METHOD FOR CHAT-TO-VISUALIZATION USER INTERFACE FOR USE WITH A DATA ANALYTICS WORKBOOK ASSISTANT" filed on September 12, 2024, the disclosures of each of these applications and the respective contents of each are incorporated herein by reference in their entirety.
[0003] Technical Field The embodiments described in the present specification generally relate to computer data analysis, and more specifically, relate to a system and method for providing a chat-to-visualization user interface for use with a data analytics workbook assistant.
BACKGROUND ART
[0004] Background Data analysis enables the deriving of information, such as conclusions, from large amounts of data through computer-based examination. For example, the use of business intelligence tools can provide users with business intelligence that represents each company's data in a format that enables strategic business decision-making. [Overview of the project]
[0005] overview According to one embodiment, this specification describes a system and method for providing integration with a data analysis workbook assistant and a data analysis environment. For example, a data analysis system or environment may be integrated with a provider that acts as an implementation of a provider framework that provides natural language processing for the purpose of utilizing user text or voice input within a data analysis or data visualization project, while generating, modifying, or interacting with data visuals. In this method, upon receiving input, the selected provider can process the text or voice input of the input to generate, modify, or interact with data analysis information or visuals.
[0006] According to one embodiment, this specification describes systems and methods for providing natural language generation services used in a data analysis environment. For example, a data analysis system or environment may be integrated with a digital assistant system or environment that provides natural language processing for the purpose of utilizing user text or voice input within a data analysis or data visualization project, while generating, modifying, or interacting with data visuals.
[0007] According to one embodiment, a method may be provided for providing a natural language generation service used in a data analysis environment. In this method, a computer equipped with a microprocessor may be provided. In this method, a data analysis system or environment may be operated on the computer. In this method, the data analysis system or environment may be able to accept input. In this method, upon receiving input, the data analysis system or environment may generate a visual corresponding to the received input. In this method, upon receiving input, the data analysis system or environment may, with a natural language text generator operating within the data analysis system or environment, generate natural language text associated with the generated visual, corresponding to the received input.
[0008] According to one embodiment, this specification describes a system and method for providing a chat-visualization user interface used in a data analysis workbook assistant. A data analysis system or environment may be integrated with a digital assistant system or environment that provides natural language processing for the purpose of utilizing the user's text or voice input while generating, modifying, or interacting with data visuals. The user can interact with the system using a chat-like conversation. Based on the input received from the user as part of the conversation, the system can generate data containing identified intents and entities and search for appropriate datasets. The system supports complex follow-up interactions or questions related to past responses combined with curated data. The user can use modifiers to further reinforce each question or analysis about the data and incorporate the resulting insights into each visualization project. [Brief explanation of the drawing]
[0009] [Figure 1] This figure shows an exemplary data analysis environment according to one embodiment. [Figure 2] This figure further illustrates an exemplary data analysis environment according to one embodiment. [Figure 3] This figure further illustrates an exemplary data analysis environment according to one embodiment. [Figure 4] This figure further illustrates an exemplary data analysis environment according to one embodiment. [Figure 5] This figure further illustrates an exemplary data analysis environment according to one embodiment. [Figure 6] This figure shows data transformation, analysis, or visualization using the system according to one embodiment. [Figure 7] This figure shows the creation of a data visual used in a data analysis environment according to one embodiment. [Figure 8] This figure further illustrates the creation of a data visual used in a data analysis environment according to one embodiment. [Figure 9] This figure shows a system for providing the integration of a digital assistant with a data analysis assistant, according to one embodiment. [Figure 10] This figure shows the use of natural language to support the integration of a digital assistant according to one embodiment. [Figure 11] This figure shows an exemplary user interaction with a data analysis environment that generates analytical information or visuals, according to one embodiment. [Figure 12] This figure shows the use of a provider framework to support the integration of a digital assistant according to one embodiment. [Figure 13] This figure further illustrates the use of a provider framework to support the integration of a digital assistant according to one embodiment. [Figure 14] This figure further illustrates the use of a provider framework to support the integration of a digital assistant according to one embodiment. [Figure 15] This is another process diagram illustrating the integration of an exemplary digital assistant with an analysis workbook assistant, according to one embodiment. [Figure 16]FIG. 1 is a diagram illustrating a method for providing integration of a digital assistant with an analysis workbook assistant according to one embodiment. [Figure 17A] FIG. 3 is a diagram illustrating an exemplary user interaction with a data analysis environment according to one embodiment. [Figure 17B] FIG. 6 is a diagram further illustrating an exemplary user interaction with a data analysis environment according to one embodiment. [Figure 17C] FIG. 9 is a diagram further illustrating an exemplary user interaction with a data analysis environment according to one embodiment. [Figure 17D] FIG. 12 is a diagram further illustrating an exemplary user interaction with a data analysis environment according to one embodiment. [Figure 17E] FIG. 15 is a diagram further illustrating an exemplary user interaction with a data analysis environment according to one embodiment. [Figure 18] FIG. 18 is a diagram illustrating a method for providing integration of a digital assistant with an analysis workbook assistant according to one embodiment. [Figure 19] FIG. 21 is a diagram illustrating the use of a natural language generation service that supports integration of a digital assistant with a data analysis environment according to one embodiment. [Figure 20] FIG. 24 is a diagram further illustrating the use of a natural language generation service that supports integration of a digital assistant with a data analysis environment according to one embodiment. [Figure 21] FIG. 27 is a flowchart of a top insight (e.g., top-N insight) method or algorithm according to one embodiment. [Figure 22A] FIG. 30 is a diagram illustrating the use of a natural language generation service that supports user interaction with a data analysis environment according to one embodiment. [Figure 22B] FIG. 33 is a diagram further illustrating the use of a natural language generation service that supports user interaction with a data analysis environment according to one embodiment. [Figure 22C] FIG. 36 is a diagram further illustrating the use of a natural language generation service that supports user interaction with a data analysis environment according to one embodiment. [Figure 23]is a flowchart of a method for providing a natural language generation service used in a data analysis environment according to one embodiment. [Figure 24A] is a diagram showing an example of a method by which a system supports chat-visualization user interfaces and user interactions according to one embodiment. [Figure 24B] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24C] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24D] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24E] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24F] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24G] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24H] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24I] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24J] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24K] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24L] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24M] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24N] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24O] is a diagram further illustrating chat-visualization user interactions according to one embodiment. [Figure 24P] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 24Q] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 24R] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 24S] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 24T] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 24U] This figure further illustrates a chat-visualization user interaction according to one embodiment. [Figure 25] This is a flowchart of a method for providing a chat-visualization user interface used in a data analysis workbook assistant according to one embodiment. [Modes for carrying out the invention]
[0010] Detailed explanation Generally, within an organization, data analysis involves computer-based examination of large amounts of data, enabling the deriving of information such as conclusions from that data. For example, the use of business intelligence (BI) tools can provide users with business intelligence that represents their company's data in a format that enables strategic business decision-making.
[0011] Data analytics can now be provided in various contexts, such as enterprise software application environments like Oracle Fusion Applications, in service-based software (SaaS) or cloud environments like Oracle Analytics Cloud or Oracle Cloud Infrastructure, or in other types of analytical applications or cloud environments.
[0012] Examples of data analysis environments and business intelligence tools / servers include Oracle Business Intelligence Server (OBIS), Oracle Analytics Cloud (OAC), and Fusion Analytics Warehouse (FAW), which support data mining or analysis functions and analytical applications.
[0013] Figure 1 shows an exemplary data analysis environment according to one embodiment.
[0014] The exemplary embodiment shown in Figure 1 is provided to illustrate an example of a data analysis environment in which the various embodiments described herein can be used in conjunction. According to other embodiments and examples, the methods described herein may be used with other types of data analysis, database, or data warehouse environments. Components and processes shown in Figure 1 and described separately herein with respect to other embodiments may be provided as software or program code that can be executed, for example, by a cloud computing system or other suitably programmed computer system.
[0015] As shown in Figure 1, according to one embodiment, a data analysis environment 100 can be provided by a computer system having computer hardware (e.g., processor, memory) 101, and one or more software components that operate as a control plane 102 and a data plane 104 and provide access to a data warehouse instance 160 (database 161 or other types of data sources), which is a data warehouse, or the operation of a data analysis environment 100 on a computer system can be performed.
[0016] According to one embodiment, the control plane operates to control cloud or other software products provided in the background of a SaaS or cloud environment, such as an Oracle Analytics Cloud environment or other types of cloud environments. For example, according to one embodiment, the control plane may include a cloud environment having a console interface 110 and / or provisioning component 111 that enables access by customers (tenants).
[0017] According to one embodiment, the console interface may enable access by customers (tenants) operating a graphical user interface (GUI) and / or a command-line interface (CLI) or other interface, and / or may include interfaces used by the SaaS or cloud environment provider and its customers (tenants). For example, according to one embodiment, the console interface can provide an interface that allows customers to provision services for use within a SaaS environment and configure the provisioned services.
[0018] In one embodiment, a customer (tenant) can request, via a console interface, many attributes associated with a data warehouse instance (including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed)). The provisioning component can then provision the requested data warehouse instance (including the customer schema of the data warehouse) and configure the data warehouse instance with the appropriate information provided by the customer. The provisioning component can also be used to update or edit the data warehouse instance, and / or update or edit ETL processes operating in the data plane, for example, by changing or updating the ETL process execution frequency requested for a particular customer (tenant).
[0019] According to one embodiment, the data plane may include a data pipeline or process layer 120 and a data transformation layer 134 that integrally process operational or transactional data from the organization's enterprise software applications or data environment, such as business productivity software applications provisioned in the customer's (tenant's) SaaS environment. The data pipeline or process may include various functions that extract transactional data from business applications and databases provisioned in the SaaS environment and then load the transformed data into a data warehouse.
[0020] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model (KM) or other types of data model) that the system uses to transform transactional data received from business applications and corresponding transactional databases provisioned in a SaaS environment into a model format that the data analytics environment can understand.
[0021] According to one embodiment, the data plane is responsible for performing Extract, Transform, and Load (ETL) operations, which include extracting transactional data from an organization's enterprise software applications or data environment, such as business productivity software applications and corresponding transaction databases provided in a SaaS environment, converting the extracted data into a model format, and loading the converted data into a customer schema in a data warehouse.
[0022] For example, according to one embodiment, each customer (tenant) in the environment may be associated with its own customer tenancy, i.e., its own customer schema, within the data warehouse. Read-only access to a data analysis schema may also be provided, which may be updated periodically or by other criteria through a data pipeline or process (e.g., an ETL process).
[0023] According to one embodiment, a data pipeline or process can be scheduled to extract transactional data from enterprise software applications or data environments, such as business productivity software applications provisioned in a SaaS environment and corresponding transactional databases 106, at intervals (e.g., hourly / daily / weekly).
[0024] According to one embodiment, the extraction process 108 is capable of extracting transactional data, and this extraction allows a data pipeline or process to insert the extracted data into a data staging area that can act as a temporary staging area for the extracted data. Data quality components and data protection components may be used to ensure the integrity of the extracted data. For example, according to one embodiment, the data quality component can perform validation on the extracted data while the data is temporarily held in the data staging area.
[0025] According to one embodiment, once the extraction process has completed its extraction, the extracted data can be transformed into a model format to be loaded into the customer schema of the data warehouse by using a data transformation layer to initiate a transformation process.
[0026] According to one embodiment, a data pipeline or process can convert data into a model format through operation in combination with a data transformation layer. A mapping and configuration database can store metadata and data mappings that define the data models used in the data transformation. A data and configuration user interface (UI) can facilitate access to and modification of the mapping and configuration database.
[0027] According to one embodiment, the data transformation layer can transform extracted data into a format suitable for loading into a customer schema of a data warehouse, for example, according to a data model. During the transformation, this data transformation can perform dimension generation, fact generation, and aggregate generation as needed. Dimension generation may include generating dimensions or fields for loading into a data warehouse instance.
[0028] According to one embodiment, after the extracted data has been transformed, the data pipeline or process can load the transformed data into the customer schema of the data warehouse instance by executing a warehouse load procedure 150. After the transformed data has been loaded into the customer schema, it can be analyzed and used in various additional business intelligence processes.
[0029] Customers with different data analysis environments may have different requirements regarding how their data should be classified, aggregated, or transformed, for the purpose of data analysis, providing business intelligence data, or developing software analysis applications. In one embodiment, to support these different requirements, the semantic layer 180 may include data that defines a semantic model of the customer's data (useful for assisting users in understanding and accessing the data by using commonly understood business terminology) and may also provide custom content to the presentation layer 190.
[0030] According to one embodiment, a semantic model may be defined, for example, in an Oracle environment, as a BI repository (RPD) file having metadata that defines a logical schema, a physical schema, a physical-logical mapping, aggregate table navigation, and / or various physical layers, business model mapping layers, and presentation layers of the semantic model.
[0031] According to one embodiment, customers may support their specific requirements by modifying their respective data source models, for example, by adding custom facts or dimensions associated with the data stored in each data warehouse instance. The system can then extend its semantic model accordingly.
[0032] According to one embodiment, the presentation layer may enable access to data content by using, for example, software analytics applications, user interfaces, dashboards, key performance indicators (KPIs), or other types of reports or interfaces that may be provided by products such as Oracle Analytics Cloud or Oracle Analytics for Applications.
[0033] According to one embodiment, the query engine 18 (for example, an OBIS instance) operates in the manner of a federated query engine, supplying analytical queries or requests targeting data stored in a database from, for example, a client in an Oracle Analytics Cloud environment.
[0034] In one embodiment, an OBIS instance can push processing down to a supported database according to a query execution plan 56. Here, a logical query may include a Structured Query Language (SQL) statement received from a client. A physical query, on the other hand, includes database-specific statements that the query engine sends to the database to read data when processing the logical query. In this way, the OBIS instance translates business user queries into an appropriate database-specific query language (e.g., Oracle SQL, SQL Server SQL, DB2 SQL, or Essbase MDX). The query engine (e.g., OBIS) can also support the internal execution of SQL operators that cannot be pushed down to the database.
[0035] According to one embodiment, a user / developer may interact with a client computer device 10, which includes computer hardware 11 (e.g., processor, storage, memory), a user interface 12, and a client application 14. A query engine or business intelligence server, such as OBIS, typically operates to process inbound (e.g., SQL) requests to a database model, construct and execute one or more physical database queries, process the data appropriately, and then return the data as requested.
[0036] To achieve this, according to one embodiment, a query engine or business intelligence server may include various components or functions such as a logical or business model or metadata representing data available as the subject area of a query; a request generator that takes an input query and translates it into a physical query for use with connected data sources; and a navigator that takes an input query, navigates the logical model, and generates a physical query that best returns the data required for a particular query.
[0037] For example, according to one embodiment, the query engine or business intelligence server may employ a logical model mapped to data in a data warehouse by generating a simplified star schema business model for various data sources, so that users can query the data as if it originated from a single data source. This information can then be returned to the presentation layer as a subject area, according to the mapping rules of the business model layer.
[0038] According to one embodiment, a query engine (e.g., OBIS) can process queries against a database according to a query execution plan. During operation, the query engine or business intelligence server can generate a query execution plan, which can then be further optimized to perform, for example, the aggregation of data necessary to respond to a request. After the integrated combination of data and the application of further calculations, the results can be returned to the calling application.
[0039] According to one embodiment, as described above, requests for data analysis or visualization information are received via a client application and user interface and transmitted to the analysis system (via a cloud service in the example of a cloud environment). This system can handle the user / business context by reading an appropriate dataset to use when generating the requested data analysis or visualization information and returning it to the client as a data visual 196.
[0040] According to one embodiment, the client application is executable by a computer system or processing device and can be implemented as software or computer-readable program code having a user interface, such as a software application user interface or a web browser interface. The client application can read or access data via the Internet / HTTP or other types of network connections to the analysis system, or, in the case of a cloud environment, via cloud services provided by the environment.
[0041] Figure 2 further illustrates an exemplary data analysis environment according to one embodiment.
[0042] As shown in Figure 2, according to one embodiment, the analysis system enables the reading, receiving, or preparation of datasets from one or more data sources 198, for example, via one or more data source connections. Examples of data types that can be transformed, analyzed, or visualized using the systems and methods described herein include HCM, HR, or ERP data, email or text messages, or other free-form or unstructured text data provided in one or more of the following: databases, data storage services, or other types of data repositories or data sources.
[0043] For example, according to one embodiment, as described above, requests for data analysis or visualization information are received via a client application and user interface and transmitted to the analysis system (via a cloud service in the example of a cloud environment). This system can handle the user / business context by reading an appropriate dataset to use when generating the requested data analysis or visualization information and returning it to the client. For example, the data analysis system can read the dataset using, for example, a SELECT statement or a logical SQL (LSQL) instruction.
[0044] According to one embodiment, the system provides the ability to generate datasets, analyses, or visuals to display on the user interface, enabling the user to explore datasets or data supplied from multiple data sources, for example.
[0045] According to one embodiment, the provisioning component may also include a provisioning application programming interface (API), several workers, an instrumentation manager, and a data plane API, as described separately below. The console interface can provision services or modify the configuration of provisioned services within the SaaS environment by communicating with the provisioning API, for example by an API call, when a command, instruction, or other input is received at the console interface.
[0046] According to one embodiment, a data plane API can communicate with the data plane. For example, according to one embodiment, provisioning and configuration changes targeting services provided by the data plane can be communicated to the data plane via the data plane API.
[0047] According to one embodiment, the instrumentation manager may include various functions for measuring services provisioned through the control plane and the usage of those services. For example, according to one embodiment, the instrumentation manager may record the time-series usage of processors provisioned through the control plane for a specific customer (tenant) for billing purposes. Similarly, the instrumentation manager may record the storage capacity of a data warehouse partitioned for use by customers in a SaaS environment for billing purposes.
[0048] According to one embodiment, the data pipeline or process provided by the data plane may include monitoring components, data staging components, data quality components, and data projection components, as described separately below.
[0049] According to one embodiment, the data transformation layer may include a dimension generation component, a fact generation component, and an aggregate generation component, as described separately below. The data plane may also include a data configuration user interface and a mapping configuration database.
[0050] According to one embodiment, the data warehouse may include a default data analysis schema (referred to herein as the analysis warehouse schema according to some embodiments) 162 and a customer schema 164 for each customer (tenant) of the system.
[0051] According to one embodiment, in order to support multiple tenants, the system may enable the use of multiple data warehouses or data warehouse instances. For example, according to one embodiment, a first warehouse customer tenancy of a first tenant may comprise a first database instance, a first staging area, and a first data warehouse instance among multiple data warehouses or data warehouse instances. On the other hand, a second customer tenancy of a second tenant may comprise a second database instance, a second staging area, and a second data warehouse instance among multiple data warehouses or data warehouse instances.
[0052] According to one embodiment, based on the data model defined in the mapping and configuration database, the monitoring component can determine the dependencies between multiple different datasets (data sets) to be transformed. Based on the determined dependencies, the monitoring component can determine which of the multiple different datasets should be transformed first into the model format.
[0053] For example, according to one embodiment, if the first model dataset does not have any dependencies on any other model datasets, and the second model dataset does have dependencies on the first model dataset, the monitoring component may decide to transform the first dataset before the second dataset to accommodate the second dataset's dependencies on the first dataset.
[0054] For example, according to one embodiment, a dimension may include categories of data, such as "name," "address," or "age." Fact generation involves generating values, i.e., "measures (criteria)," from which the data can be obtained. Facts may be associated with appropriate dimensions in the data warehouse instance. Aggregate generation involves generating data mappings that compute the aggregation of transformed data into data present in the customer schema of the data warehouse instance.
[0055] According to one embodiment, once the transformation is performed (as defined by the data model), the data pipeline or process can read the source data, apply the transformation, and then push the data to the data warehouse instance.
[0056] In one embodiment, data transformations are expressed by rules, and once the transformation is performed, the values may be held intermediately in a staging area. Here, data quality components and data projection components can verify and check the integrity of the transformed data prior to uploading the data to the customer schema of the data warehouse instance. Monitoring may be provided, for example, when the extract-transform-load process is running on many compute instances or virtual machines. Dependencies may also be maintained during the extract-transform-load process, but the data pipeline or process can accommodate such ordering decisions.
[0057] According to one embodiment, after the extracted data has been transformed, the data pipeline or process can load the transformed data into the customer schema of the data warehouse instance by executing a warehouse load procedure. After the transformed data has been loaded into the customer schema, it can be analyzed and used in various additional business intelligence processes.
[0058] Figure 3 further illustrates an exemplary data analysis environment according to one embodiment.
[0059] As shown in Figure 3, according to one embodiment, data may be supplied from, for example, a customer's (tenant's) enterprise software application or data environment (106) and loaded into a data warehouse instance by using a data pipeline process or as custom data 109 supplied from one or more customer-specific applications 107, but some examples include the use of object storage 105 for storing the data.
[0060] For example, in an implementation of an analytics environment such as OAC (Oracle Analytics Cloud), a user can generate a dataset using tables from various connections and schemas. This system generates relationships or joins in the dataset using defined relationships between these tables.
[0061] According to one embodiment, the system pre-configures a data warehouse instance for each customer (tenant) based on an analysis of the customer's enterprise application environment and data in the customer tenancy 117, by using a data analysis schema within the system / cloud tenancy 114, which is maintained and updated by the system. Thus, the data analysis schema maintained by the system enables data pipelines or processes to read data from the customer's environment and load it into the customer's data warehouse instance.
[0062] Furthermore, according to one embodiment, the system provides each customer of the environment with a customer schema that can be easily modified by the customer, thereby enabling the customer to complement and utilize the data within their respective data warehouse instance. For each customer, the resulting data warehouse instance operates as a database where some of the content is controlled by the customer and some is controlled by the environment (system).
[0063] For example, according to one embodiment, a data warehouse (e.g., ADW) may include a data analytics schema and, for each customer / tenant, a customer schema supplied from their respective enterprise software application or data environment. Data provisioned in a data warehouse tenancy (e.g., ADW cloud tenancy) is accessible only to that tenant. On the other hand, various functions of the shared environment (e.g., ETL-related or other) may also be accessible.
[0064] According to one embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may have a first database instance, a first staging area, and a first data warehouse instance, while a second customer tenancy may have a second database instance, a second staging area, and a second data warehouse instance.
[0065] According to one embodiment, for a specific customer / tenant, the data pipeline or process can insert the extracted data into the tenant's data staging area, which can function as a temporary staging area for the extracted data, by extracting the data for each customer / tenant. The integrity of the extracted data can be ensured by using data quality and data protection components, for example, by performing validation on the extracted data while the data is temporarily held in the data staging area. Once the extraction process has completed its extraction, the data transformation layer can be used to transform the extracted data into a model format that will be loaded into the customer schema of the data warehouse by initiating a transformation process.
[0066] Figure 4 further illustrates an exemplary data analysis environment according to one embodiment.
[0067] As shown in Figure 4, according to one embodiment, the process of extracting data from a customer's (tenant's) enterprise software application or data environment, for example, as custom data supplied from one or more customer-specific applications, using the data pipeline process described above, or loading the data into a data warehouse instance, or refreshing the data in the data warehouse, generally involves three broad stages performed by an ETP service 160 or process, which includes one or more extraction services 163, a transformation service 165, and a load / publish service 167, performed by one or more compute instances 170.
[0068] For example, according to one embodiment, a list of view objects for extraction is provided to, for example, a BICC (Oracle BI Cloud Connector) component via a REST call. The extracted files may be uploaded to an object storage component for storing the data, such as an OSS (Oracle Storage Service) component. The transformation process retrieves the data files from the object storage component (e.g., OSS) and applies business logic while loading them into a target data warehouse (e.g., an ADW database) that is internal to the data pipeline or process and therefore not exposed to the customer (tenant). The load / publish service or process retrieves the data from, for example, the ADW database or warehouse and publishes it to a data warehouse instance accessible to the customer (tenant).
[0069] Figure 5 further illustrates an exemplary data analysis environment according to one embodiment.
[0070] As shown in Figure 5, illustrating the operation of a system including multiple tenants (customers) according to one embodiment, data can be supplied from the enterprise software applications or data environments of multiple customers (tenants) and loaded into a data warehouse instance using the data pipeline process described above.
[0071] According to one embodiment, a data pipeline or process maintains a data analytics schema for each of several customers (tenants) (e.g., customer A180, customer B182) that is periodically updated by the system in accordance with best practices for a specific analytical use case.
[0072] According to one embodiment, for each of several customers (e.g., customers A and B), the system uses data analysis schemas 162A and 162B maintained and updated by the system to pre-configure data warehouse instances for customers based on an analysis of data within the customers' enterprise application environments 106A and 106B and each customer's tenancy (e.g., tenancy 181 for customer A, tenancy 183 for customer B). Data is read from the customer's environment by a data pipeline or process and loaded into the customer's data warehouse instances 160A and 160B.
[0073] Furthermore, according to one embodiment, the data analysis environment provides each of the environment's multiple customers with a customer schema that can be easily modified by the customer (for example, schema 164A for customer A, schema 164B for customer B), thereby enabling the customer to complement and utilize the data in their respective data warehouse instances.
[0074] As described above, according to one embodiment, for each of the multiple customers of the data analysis environment, each resulting data warehouse instance operates as a database where part of the content is controlled by the customer and part by the data analysis environment (system), but each database appears to be pre-configured with appropriate data read from each enterprise application environment to address various analytical use cases. Once the extraction processes 108A and 108B for a particular customer have completed their extraction, the extracted data can be transformed into a model format to be loaded into the customer schema of the data warehouse by using a data transformation layer to initiate a transformation process.
[0075] According to one embodiment, the use of activation plan 186 can address the specific needs of a customer (tenant) by controlling the operation of data pipelines or process services for a particular functional area.
[0076] For example, according to one embodiment, an activation plan can define a number of extraction, conversion, and loading (publishing) services or steps that operate in a certain order, at a certain time, and within a certain time frame.
[0077] In one embodiment, each customer may be associated with their own activation plan. For example, the activation plan of a first customer A may determine the tables received from the customer's enterprise software application environment (e.g., each Fusion Applications environment), or the manner in which services and their respective processes operate sequentially. Similarly, the activation plan of a second customer B may determine the tables received from the customer's enterprise software application environment, or the manner in which services and their respective processes operate sequentially.
[0078] Figure 6 illustrates data transformation, analysis, or visualization using the system according to one embodiment.
[0079] As shown in Figure 6, according to one embodiment, the use of the systems and methods disclosed herein can provide a data visualization environment 192 that enables insights to the user of the analytical environment regarding analytical artifacts and their respective relationships. The use of models allows the relationships between such analytical artifacts to be visualized as network charts or visuals of relationships and lineages between artifacts (e.g., users, roles, DV projects, datasets, connections, data flows, sequences, ML models, ML scripts), for example, through a user interface.
[0080] According to one embodiment, the client application is executable by a computer system or processing device and can be implemented as software or computer-readable program code having a user interface, such as a software application user interface or a web browser interface. The client application can read or access data via the Internet / HTTP or other types of network connections to the analysis system, or, in the case of a cloud environment, via cloud services provided by the environment.
[0081] According to one embodiment, the user interface may include or provide access to various data flow operation types that enable self-service text analysis, as described in more detail below, and may include enabling the user to generate, for example, graphs, charts, or other types of data analysis or visualizations of the data flow by viewing the dataset or transforming, analyzing, or visualizing the data through interaction with the user interface.
[0082] According to one embodiment, the analysis system enables the reading, receiving, or preparation of datasets from one or more data sources, for example, via one or more data source connections. Examples of data types that can be transformed, analyzed, or visualized using the systems and methods described herein include HCM, HR, or ERP data, email or text messages, or other free-form or unstructured text data provided in one or more of the following: databases, data storage services, or other types of data repositories or data sources.
[0083] For example, according to one embodiment, as described above, requests for data analysis or visualization information are received via a client application and user interface and transmitted to the analysis system (or, in the case of a cloud environment, via a cloud service). This system can handle the user / business context by reading an appropriate dataset to use when generating the requested data analysis or visualization information and returning it to the client. For example, the data analysis system can read the dataset using, for example, a SELECT statement or a logical SQL instruction.
[0084] According to one embodiment, the system can generate a model or dataflow that reflects an understanding of a dataflow or a set of input data by applying various algorithmic processes, thereby generating visuals or other useful information associated with the data. The model or dataflow can be further modified within the dataset editor 193 by applying various processing or techniques (e.g., including one or more dataflow operations 194, 195 or steps acting on the dataflow or a set of input data) to the dataflow or the set of input data. The user interacts with the system through a user interface to control the use of dataflow operations to generate data analysis, data visuals 196, or other useful information associated with the data.
[0085] According to one embodiment, a dataset is a self-service data model that a user can build in response to data visualization and analysis requests. The dataset includes data source connection information, tables, columns, data augmentations, and transformations. The user can use the dataset in multiple workbooks and data flows.
[0086] According to one embodiment, when a user generates and constructs a dataset, for example, they can select many types of connections or spreadsheets, generate a dataset based on data from a database connection, an Oracle data source, or multiple tables in a local subject area, or generate a dataset based on data from tables in various connections and subject areas.
[0087] For example, according to one embodiment, a user can construct a dataset that includes tables from an Autonomous Data Warehouse connection, tables from a Spark connection, and tables from a local subject area, specify joins between tables, and transform and augment columns in the dataset.
[0088] According to one embodiment, additional artifacts, features, and behaviors associated with a dataset may include, for example, the following:
[0089] Displaying Available Connections: A dataset uses one or more connections to its data source to access and supply data for analysis and visualization. A user's connection list includes the connections they build and the connections they are permitted to access and use.
[0090] Generating datasets from connections: Once a dataset is generated, users can add tables, joins, and augment the data from one or more data source connections.
[0091] Adding Multiple Connections to a Dataset: A dataset can contain two or more connections. By adding more connections, users can access and join all the tables and data required to build the dataset. Users can add more connections to datasets that support multiple tables.
[0092] Generating Dataset Table Joins: Joints indicate relationships between tables in a dataset. If a user generates a dataset based on facts and dimensions and joins already exist in the source tables, the joins are automatically generated in the dataset. Users can manually define joins between tables when generating a dataset from multiple connections and schemas.
[0093] According to one embodiment, a user can generate a dataset by combining, organizing, and integrating data using a data flow. The data flow enables the user to generate a curated dataset that can be visualized by themselves or other users through data organization and integration.
[0094] For example, according to one embodiment, a user may use a data flow to generate datasets, combine data from different sources, aggregate data, and train machine learning models or apply predictive machine learning models to each dataset.
[0095] In one embodiment, the dataset editor described above allows the user to add actions or steps, each step performing a specific function (e.g., adding data, joining tables, joining columns, transforming data, or saving data). Each step is validated when the user adds or modifies it. If a data flow is configured, its execution can generate or update the dataset.
[0096] According to one embodiment, a user can curate data from a dataset, subject area, or database connection. The user can execute data flows individually or sequentially. The user can include multiple data sources in a data flow and specify how each is joined. Furthermore, the user can save the output data from the data flow in a dataset or a supported database type.
[0097] According to one embodiment, additional artifacts, functions, and behaviors associated with the data flow may include, for example, the following:
[0098] Adding a column: Add a custom column to the target dataset.
[0099] Adding data: Add data sources to the data flow. For example, if a user is integrating two datasets, add both datasets to the data flow.
[0100] Aggregation: Generate group totals by applying aggregate functions (e.g., count, sum, or average).
[0101] Branching: Generates multiple outputs from a data flow.
[0102] Filtering: Selects only the data that the user is interested in.
[0103] Joining: Combine data from multiple data sources by using database joins based on common columns.
[0104] Graph analysis: Perform geospatial analysis, such as calculating the distance or number of hops between two vertices.
[0105] The above is given as an example, and according to one embodiment, other types of steps can be added to the data flow to transform the dataset or to perform data analysis or provide visualizations.
[0106] Dataset analysis and visualization Figures 7 and 8 illustrate the creation of data visuals used in a data analysis environment according to one embodiment.
[0107] The user interfaces and functions shown in Figures 7 and 8 and elsewhere in this specification are given as examples for the purpose of illustrating the various features described herein. Alternative examples of user interfaces and functions may be given according to various embodiments.
[0108] As shown in Figures 7 and 8, according to one embodiment, the system allows users to create data visuals for use with datasets. According to the visualization options panel, users can add data visualization elements to a workbook or canvas to generate dashboards or data visuals. After generating a workbook and adding a dataset, users can generate visuals by dragging and dropping its columns onto the canvas.
[0109] According to one embodiment, the system can automatically generate visuals based on the content of the canvas, and one or more visualization types are automatically selected in response to a user's selection.
[0110] According to one embodiment, users can continue building visuals by directly adding data elements to the canvas. In this way, the dataset acts as a self-service data model from which users can build data analyses or visuals. Users can then use the data visuals to access a data analysis environment (for example, to provide analyses or queries against organizational data) or to explore datasets or data supplied from multiple data sources. According to one embodiment, the use of data flows can be used to integrate datasets, cleanse data, and output the results to a new dataset.
[0111] According to one embodiment, the system can provide automatically generated data visuals (auto-insights, which are automatically generated insights) by suggesting a visual that is expected to provide the best insights for a particular dataset. Users can examine the automatically generated overview of the insights, for example, by hovering over the relevant visual in a workbook canvas.
[0112] Data Analysis Support According to one embodiment, a digital assistant system that provides natural language processing capabilities can be integrated with a data analysis system or environment within a data analysis or data visualization project, for the purpose of utilizing natural language processing of user text or voice input, for example, while generating, modifying, or interacting with data visuals, or generating stories or scripts that encompass or describe data visuals.
[0113] For example, according to one embodiment, a data analysis system or environment (e.g., an OAC (Oracle Analytics Cloud) environment) may be integrated with a digital assistant system or environment (e.g., an ODA (Oracle Digital Assistant) environment) that provides natural language processing (NLP) and speech processing capabilities for the purpose of utilizing natural language (NL) processing of user text or voice input within a data analysis or data visualization project, for example, while generating, modifying, or interacting with data visuals.
[0114] Figure 9 shows a system for providing the integration of a digital assistant with a data analysis assistant, according to one embodiment.
[0115] As shown in Figure 9, according to one embodiment, in (1), the data analysis system or environment (for example, the OAC (Oracle Analytics Cloud) environment) receives as input a request from the user via a user interface (for example, the Data Analysis Assistant) to create a natural language representation, i.e., a data visual 1010.
[0116] In (2), the input natural language may be associated with a context (for example, instructions to generate a project (e.g., visuals, story, script)) as needed.
[0117] In (3), the relevant dataset may be determined (for example, by a search component 1020 such as BI Search) based on the analysis of the data visualization request (context provided with the input and / or context based on keywords in the input). Based on the determination of the relevant dataset, the natural language input may be sent to the digital assistant environment 1030 (for example, the ODA (Oracle Digital Assistant) environment), which provides natural language processing (NLP) and speech processing capabilities for the purpose of utilizing natural language (NL) processing of natural language representations (for example, user text or voice input).
[0118] In (4), the identified intent and entity may create a data visualization request format (for example, JSON (JavaScript Object Notation)).
[0119] In (5), the identified intents and entities create (for example, ODA) JSON data, which is then returned to the data visualization (DV) environment for rendering.
[0120] In (6), the data analysis or data visualization project is rendered in the user interface (UI).
[0121] Natural Language Input According to one embodiment, the system supports the use of natural language input to generate simple, insightful natural language text for a given visual. The simple text describes the data behind the visual, while the insightful text provides relevant and useful insights about the columns in the visual and the data surrounding them. The data analysis assistant can then obtain and display relevant insights for the visual by using the insight generation function.
[0122] Figure 10 illustrates the use of natural language to support the integration of a digital assistant according to one embodiment.
[0123] As shown in Figure 10, according to one embodiment, a user can interact with the user interface 1102 of a search environment 1100 (e.g., BI Search) by natural language utterance / input. A request 1101 is passed to a natural language parser 1103 (e.g., ODA) and parsed for use by a visual generator 1104 and a natural language text generator 1120 comprising a data collector 1121 and a data-to-text converter 1124. The response (e.g., insights 1122, 1123) is then matched (1105) to provide the response / visual 1140 to the user interface.
[0124] For example, a user request received through the user interface, such as "What is the best-selling product in Asia?", is parsed by a natural language parser and passed to a visual generator. Then, using a natural language text generator, a response associated with a visual can be generated, such as "The top 3 best-selling products are... This is a visual of the total sales of the top 20 products..."
[0125] User interaction with the data analysis environment Figure 11 shows an exemplary user interaction with a data analysis environment that generates analytical information or visuals, according to one embodiment.
[0126] As shown in Figure 11, according to one embodiment, when a user initiates an exploration using a computer device that communicates with the server API 212, the data analysis system can present the user with dynamic insights into data that can be scrutinized and selected, based on natural language processing 200. The user can then continue building each visual by adding data elements directly to the canvas using an interface such as chat.
[0127] Provider Framework According to one embodiment, the system supports chat-like conversations between users utilizing a semantic search-based provider framework. The provider framework offers a flexible approach for chat conversations, in contrast to the limited scope of flowchart-based alternatives.
[0128] Figures 12 to 14 illustrate the use of a provider framework 1200 that supports the integration of a digital assistant according to one embodiment.
[0129] According to one embodiment, a BI Search environment / user interface (such as BI Ask) supports chat-like interactions with a given dataset that includes measure (criterion) columns and dimension columns. This scope is not limited to datasets and can be extended to include any artifacts within the BI Search or data analysis environment.
[0130] According to one embodiment, index 1202 acts as a repository of documents, and each document contains fields representing different aspects of a single item in the BI System catalog. Since the index may contain items in the BI Search or data analysis environment (including datasets), it functions as a global dictionary and may be seeded with additional metadata / keywords that provide contextual support for processing user utterances or chat inputs.
[0131] According to one embodiment, examples of keywords seeded in the index are shown in Table 1 below. [Table 1]
[0132] According to one embodiment, the system may be configured to understand synonyms of words so that natural language expression is possible through synonyms. Synonym information can be seeded into the system via a knowledge base or curated by the user community. Exemplary synonym metadata is given in Table 2 below. [Table 2]
[0133] According to one embodiment, the provider framework acts as an abstraction for various implementations of the provider.
[0134] In one embodiment, a selection provider 1203 (i.e., a provider selected from many optional providers 1203, 1204, 1205) acts as an implementation of a provider framework to interpret user utterances or chat input in conjunction with index hits. Such a provider can, as a simple example, utilize regular expression interpretation of user utterances or chat input, or, as a more complex example, utilize a large-scale language model.
[0135] For example, according to one embodiment, a regular expression (regex) provider uses regular expressions to match a given utterance or chat input against a given set of rules, and to extract a portion of the input.
[0136] Then, by evaluating the extracted portion for the index search terms passed to the provider, it is possible to effectively identify valid column names (including synonyms) in the dataset and ignore invalid column names.
[0137] The index helps determine column names for column values specified in user utterances or chat input, even if the column names themselves are not included in the utterances. Furthermore, the graph type specified in the input can also be inferred from the index.
[0138] This technology enables the generation of appropriate responses through the effective identification of utterances or chat inputs. The ability to combine multiple sets of regular expression rules with metadata from an index (including synonyms and graph types) makes it a powerful technique for identifying and responding to chat inputs. This can be more natural for the user when UI elements based on user selection generate utterances or chat inputs that potentially match one of the regular expression rules.
[0139] According to one embodiment, sample utterance patterns for identification using regex grammar are shown in Table 3 below, which include exemplary positive use cases. [Table 3-1] [Table 3-2] [Table 3-3] [Table 3-4]
[0140] According to one embodiment, sample utterance patterns for identification using regex grammar are shown in Table 4 below, which include exemplary negative usage examples. [Table 4]
[0141] According to one embodiment, the provider framework includes an ODA (Oracle Digital Assistant) model provider 1204, which is backed by an ODA model that supports handling the representational format of utterances in chat. The ODA model can be generated for a dataset by generating a skill using the ODA API, generating a schema for the dataset within the skill, then training the skill to build a model associated with the skill. The trained skill is capable of handling utterances or chat inputs directed at the provider.
[0142] In one embodiment, a deep learning model provider 1205 (e.g., a provider plugin) can be backed by a large-scale language model (LLM), which may enable the handling of more expressive / colloquial forms of utterances in a chat. The LLM itself can be any model, including, for example, any of the available open-source models.
[0143] According to one embodiment, as a provider response, the provider generates a graph grammar in response to a given utterance that includes the graph type, projection, filter clauses, and sort order consumed by the BI Ask component for generating a visual for the end user.
[0144] Figure 15 is a process diagram illustrating the integration of an exemplary digital assistant with an analysis workbook assistant according to one embodiment.
[0145] As shown in Figure 15, according to one embodiment, when a user provides utterance or chat input via the user interface 1301, for example by typing into the BI Ask search interface or uttering a command, the search component 1401 (e.g., BI Search) sends the natural language input to the ODA skill 1302 (e.g., Data Analysis Workbook Assistant) for processing.
[0146] In one embodiment, since different skills may exist for different interactions (for example, a dataset may be associated with C2SQL skills and / or canvas intent skills), natural language input needs to be sent to the correct skill. The skill that understands the input can determine how the BI Search should proceed. For example, it may generate visualization JSON from the returned representation (for example, as an OMRL (Oracle Meaning Representation Language) representation in an Oracle environment), or it may pass the returned canvas behavior intents and entities to a data visualization component for use in generating, modifying, or interacting with data analysis information or visuals.
[0147] The example shown in Figure 15 is provided as an illustration for the purpose of illustrating the various features described herein. Various embodiments may provide alternative examples of search components, representations, and functions.
[0148] Figure 16 illustrates a method for providing digital assistant integration with an analysis workbook assistant according to one embodiment.
[0149] As shown in Figure 16, according to one embodiment, in 1510 an analysis environment may be provided, and the user can generate data analysis or visualizations based on data from one or more datasets.
[0150] According to one embodiment, in 1520, a data analysis system or environment (for example, an OAC (Oracle Analytics Cloud) environment) may accept natural language (NL) expressions as input.
[0151] According to one embodiment, in 1530, the input NL representation can be associated with a context (for example, the homepage Oracle Ask input bar or the project generation Ask bar).
[0152] According to one embodiment, in 1540, the search environment (e.g., BI Search) can determine the most relevant dataset based on the input (e.g., the context supplied in the input) as well as search index hits for keywords in the input NL.
[0153] According to one embodiment, in 1550, after determining the most relevant dataset, the search environment (e.g., BI Search) can send the NL to the digital assistant environment (e.g., ODA, other skills) corresponding to the determined dataset, which provides natural language processing (NLP) and speech processing capabilities for the purpose of utilizing natural language (NL) processing of the NL representation (e.g., user text or voice input).
[0154] According to one embodiment, in 1560, ODA JSON data can be created, for example, by the identified intent and entity.
[0155] According to one embodiment, in 1570, project JSON can be generated by using ODA JSON, which is returned to the data visual (DV) for rendering.
[0156] According to one embodiment, in 1580, a data analysis or data visualization project can be rendered in a user interface (UI).
[0157] Figures 17A to 17E show an exemplary user interaction with a data analysis environment according to one embodiment.
[0158] As shown in Figures 17A to 17E, for example, the above method enables the search environment and user interface to support chat-like interactions with a given dataset having measure (criterion) and dimension columns. For example, a user can provide utterances and chat inputs such as, "Generate the calculation of GDP exposure % by dividing GDP exposure by total GSP," followed by, "Please tell me the relationship between population and GDP exposure %. Add the top 20 GDP countries." This system allows for the generation, modification, or interaction with data analysis information or visuals by processing user input through a selection provider.
[0159] Figure 18 illustrates a method for providing digital assistant integration with an analysis workbook assistant according to one embodiment.
[0160] According to one embodiment, in step 1801, this method can provide a computer equipped with a microprocessor.
[0161] According to one embodiment, in step 1802, this method can operate the data analysis system or environment on a computer.
[0162] According to one embodiment, in step 1803, the method can operate a data analysis system or environment with a selected provider acting as an implementation of a provider framework to interpret input and provide natural language processing capabilities.
[0163] According to one embodiment, in step 1804, upon receiving input, the method allows a selected provider acting as an implementation of the provider framework to process the text or voice input of the input to generate, modify, or interact with a data visual.
[0164] Natural Language Generation (NLG) Services According to one embodiment, a natural language generator (NLG) may include a service provided within a cloud environment such as OAC, capable of generating simple, insightful natural language text for a given visual. Simple generated text describes the data behind the visual. Insightful generated text, on the other hand, provides relevant and useful insights about the columns in the visual and the data surrounding them. A workbook assistant can, for example, use the insightful text generation function to fetch and display insights relevant to the visual.
[0165] Figures 19 and 20 illustrate the use of a natural language generation service to support the integration of a digital assistant, according to one embodiment.
[0166] In one embodiment, as shown in Figure 19, the user may interact with the user interface 1102 of the search environment 1100 (e.g., BI Search) by natural language utterances / inputs (in this specification, such inputs may be referred to as "natural language inputs") such as "What is the best product in Asia?". This user interface 1102 may include, for example, a data analysis assistant or a workbook assistant.
[0167] According to one embodiment, natural language input can be passed to a natural language parser 1103 (e.g., ODA). The natural language input can be parsed by the NL parser for use by both the visual generator 1104 and the natural language text generator 1120. The data passed from the NL parser may include structured data from the natural language input, such as structured JSON or structured SQL from the natural language input.
[0168] According to one embodiment, by using a visual generator, one or more data visuals can be generated from a dataset and / or data column associated with natural language input (determined by an NL parser).
[0169] According to one embodiment, the natural language text generator 1120 may receive structured data, primarily in the form of metadata, from the NL parser.
[0170] According to one embodiment, the NL text generator may comprise two main components: a data collector 1121 and a data-to-text converter 1124.
[0171] According to one embodiment, the NLG service, to be used throughout the functionality of the Workbook Assistant, primarily comprises various components, as described separately below.
[0172] Data acquisition device According to one embodiment, the NLG service 1120 may include a data collector 1121 responsible for generating / calculating insightful data 1123 for a given visual 1140, for use throughout the functionality of the data analysis assistant. To achieve this, visual metadata is taken as input. Processing this metadata extracts the input grammar for the NLG service. For example, the input grammar consists of projection, grouping, and filtering representations, dimension and measure (criteria) columns, and any other aspects of the visual that may be potentially used in generating insightful data.
[0173] According to one embodiment, the input grammar is pruned using a dataset profile to generate an insight grammar. The pruning process applies transformations to generate the insight grammar. For example, a transformation could be a description of measures (criteria) in the input visual by determining dimension columns from the input grammar or dataset. Based on this, rank filter predicates may be added to the grammar. This is just one example of a transformation that aids in fetching top N insights.
[0174] According to one embodiment, the final step is to convert the insight grammar into a logical SQL (LSQL) instruction that can fetch the insight data 1122 by execution.
[0175] Data-Text Generator According to one embodiment, the data-to-text conversion module 1124 is responsible for generating natural language text using structured data generated by the data acquisition module 1121. The text can be generated in several ways. One method is to use a language model or an NL text generation tool such as Yseop. Another method is to pre-define a set of text templates and determine the template that best fits the insight data. Regardless of the method used, the result is NL text that represents the insight data. By using a language model or Yseop, natural and non-robot-like text is generated.
[0176] Insight Algorithm According to one embodiment, algorithms for generating insights can be designed in multiple ways. For example, a top N insight algorithm is described here. According to various embodiments, the system can generate a set of NLG texts using other / multiple algorithms. All of these can be made available to the end user, or the system can simply automatically determine one or more of the best / most appropriate texts for a use case and display them.
[0177] Top N-insight algorithms According to one embodiment, these systems and methods can prune an input visual grammar to generate a top N insight grammar, which can then be converted into text. For example, the following is an example of a template that may be used to generate insight text. The data behind the insight grammar columns and grammars are plugged into the template to generate the final text. The top N<rank_dimension> with highest<measure>by <dimension1> <dimension2><...><filter_list> are rank_dim_value1: [dimension1_value, dimension2_value,... measure_value], ...
[0178] According to one embodiment, the following are considerations when running a high-level N-insight algorithm:
[0179] The number of data points generated by an insight SQL query issued against an insight should be small enough to be represented in a small amount of text. For example, the number of data points should be 5 or less. This can be achieved by adding filters related to appropriate columns (primarily driven by cardinality) and inserting columns into groupings as needed.
[0180] If it is not possible to generate five or fewer data points, the NL text template may be modified to generate insight text for the upper X and lower Y values.
[0181] By using dataset profiles, it is possible to arrive at an insight grammar starting from the input grammar. Note that the data behind the input visual is not required for insight generation. The generated insight grammar and the data it produces are related to the input visual, but provide more insights than are available in the visual.
[0182] The table below provides several examples of various input texts and corresponding insight texts generated by NLG services. [Table 5]
[0183] Other insights According to one embodiment, the insight algorithm can be designed in various ways. For example, these systems and methods utilize dataset statistics to explain dimensions or measures (criteria) in a visual. Similarly, insight text can be generated by utilizing the data behind the input visual. According to various embodiments, various other useful insight texts can be generated in conjunction with the top N insight texts.
[0184] According to various embodiments, examples of user interactions with the search environment 1100 (e.g., user requests 1101 interacting with the user interface 1102) include generating a visual (viz) (e.g., "Please tell me the sales figures by region") (e.g., by the visual generator 1104) or changing the appearance of the canvas (e.g., "Please make the background red"). The NL parser 1103 (e.g., ODA) environment operates by using skills, which are functional units focused on specific types of tasks. The OAC environment can be associated with various skills. For example, C2SQL (Conversation to SQL) or C2SQL_Skill would have a C2SQL model used for "viz generation" interactions that associate NL inputs with columns in a dataset. Canvas_Intents_Skill, on the other hand, would have intents used for canvas actions that indicate what the user wants (e.g., background color) as well as quantity or quality (e.g., red).
[0185] According to one embodiment, the OAC environment can manage its own skills at runtime. Developed skills may be installed in the BI_HOME folder or elsewhere along with the OAC application code, rather than being deployed to the ODA skill store. One or more ODA service instance APIs enable the OAC application to deploy skills to the ODA. This approach allows for automated testing of candidate skill changes and tenant onboarding, where new tenant provisioning is primarily delegated to runtime application components.
[0186] In one embodiment, a search component (e.g., BI Search) interacts with a digital assistant environment (e.g., ODA) (e.g., via an ODA channel) for the purpose of processing (e.g., an Ask query). The ODA channel routes the Ask query to a data analysis system or environment (e.g., OAC) configured as a skill. This skill performs NLP analysis and returns parsed JSON. The ODA parsed JSON is returned to the search component (e.g., BI Search).
[0187] According to one embodiment, the response / visual 1140 is provided to the user interface 1102 by matching (1105) the responses from both the visual generator 1104 and the NLG service 1120, and this can be displayed or provided (1141) to the user. For example, along with the data visual, natural language text such as "The top 3 best-selling products in Asia are..." or "A visual of the total sales of the top 20 products in Asia" may be provided.
[0188] Figure 20 illustrates the use of a natural language generation service to support the integration of a digital assistant, according to one embodiment.
[0189] According to one embodiment, more specifically, Figure 20 is a flowchart from input visuals to insight text. That is, a general utility can be realized in which an NLG service can convert input visuals into relevant insight text. Figure 20 shows a series of steps performed for the generation of top N insights. The input and usage algorithms can be tailored to generate different types of insight text.
[0190] According to one embodiment, in 1251, the input visual may be used within the flow. In 1252, the input visual may be pruned (e.g., metadata pruning). By using a dataset profile, the input grammar of the visual may be pruned to generate an input visual grammar 1253.
[0191] According to one embodiment, an insight grammar 1255 can be generated by applying the higher-level insight algorithm 1254 to this input visual grammar.
[0192] According to one embodiment, insight data 1258 can be generated by applying a query such as insight LSQL 1256 to the insight grammar and executing it in 1257. Then, natural language text 1259 can be generated based on the insight data.
[0193] Figure 21 is a flowchart of a top-level insight (e.g., top N-level insight) method or algorithm according to one embodiment.
[0194] According to one embodiment, the top insight method may begin with receiving an input visual grammar and checking whether the input grammar contains a set of rows fewer than a certain number of rows (e.g., 5).
[0195] According to one embodiment, if the number of rows in the row set is less than N, the top insight method can perform a check 1402 to see if a filter exists. If a filter exists, the top insight method can search for a filter predicate that includes the column with the highest cardinality, remove this filter predicate, add it to the column grouping, and add the rank predicate to the column. Then, the top insight method can perform a check 1405 to see if the insight row set is less than or equal to a certain number of rows (e.g., 10). If this is not the case, a display containing the top 3 and bottom 2 insights may be generated. If the above is the case, a display containing the top 5 insights may be generated.
[0196] According to one embodiment, if no filter exists, the top insights method can check whether a non-temporal dimension exists in the dataset. If this is not the case, the top insights method can check whether a time column exists in the dataset, and if this is also not the case, the method may terminate.
[0197] According to one embodiment, if the top insights method finds that a time column exists in the dataset, it can search for the column gain with the second shortest span and add the rank predicate and column to the grouping. The top insights method can then check if the set of insight rows is less than or equal to a certain number of rows (e.g., 10). If it is not, a display containing the top 3 and bottom 2 insights may be generated. If it is, a display containing the top 5 insights may be generated.
[0198] According to one embodiment, when the top insight method finds that non-temporal dimensions exist in the dataset, it can search for the best non-temporal dimension with the highest cardinality (e.g., <1000). The top insight method can then add rank predicates and columns to the grouping. The top insight method can then perform a check 1405 to see if the set of insight rows is less than or equal to a certain number of rows (e.g., 10). If it is not, a display containing the top 3 and bottom 2 rows may be generated. If it is, a display containing the top 5 rows may be generated.
[0199] According to one embodiment, if the number of rows in the row set is greater than N (in check 1400), the top insight method can perform check 1406 to determine if there are two or more columns in the grouping. If two or more columns are found in the grouping, the top insight method can perform check 1407 to determine if there is an optimal cardinality column in the grouping. If there is, the top insight method can retrieve the best column from the grouping, add it to the rank filter, and display the top five insights.
[0200] According to one embodiment, if two or more columns are found in the grouping (in check 1406), the top insights method can perform check 1407 to determine if an optimal cardinality column exists in the grouping. If it does not exist, the top insights method can search for the lowest cardinality column from the grouping, add the lowest cardinality column to the rank filter, and then display the top three and bottom two insights.
[0201] According to one embodiment, if (in check 1406) two or more columns are not found in the grouping, the top insight method can perform check 1408 to determine if one or more time columns exist in the dataset. If they do, the top insight method can insert the optimal cardinality time column (Grain) into the grouping and rank filter. The top insight method can then perform check 1405 to determine if the set of insight rows is less than or equal to a certain number of rows (e.g., 10). If this is not the case, a display including the top 3 and bottom 2 rows may be generated. If the above is the case, a display including the top 5 rows may be generated.
[0202] According to one embodiment, if two or more columns cannot be found for grouping, the top insights method can perform a check 1408 to determine if one or more time columns exist in the dataset. If not, the top insights method can search for the best non-time dimension with the highest cardinality (e.g., <1000) and add the column to the grouping and rank filter. The top insights method can then perform a check 1405 to determine if the set of insight rows is less than or equal to a certain number of rows (e.g., 10). If not, a display containing the top three and bottom two rows may be generated. If the above is true, a display containing the top five rows may be generated.
[0203] Figures 22A to 22C illustrate the use of a natural language generation service to support user interaction with a data analysis environment, according to one embodiment.
[0204] Figure 23 is a flowchart of a method for providing a natural language generation service used in a data analysis environment, according to one embodiment.
[0205] According to one embodiment, in step 1601, this method can provide a computer equipped with a microprocessor.
[0206] According to one embodiment, in step 1602, this method can operate the data analysis system or environment on a computer.
[0207] According to one embodiment, in step 1603, the method can accept input from a data analysis system or environment.
[0208] According to one embodiment, in step 1604, when the method receives input, the data analysis system or environment can generate a visual corresponding to the received input.
[0209] According to one embodiment, in step 1605, upon receiving input, the method allows the data analysis system or environment to generate natural language text associated with the generated visual in response to the received input, using a natural language text generator operating within the data analysis system or environment.
[0210] Chat - Visualized User Experience In one embodiment, a user can interact with the system using a chat-like conversation. Based on input received from the user as part of the conversation, the system can generate data containing identified intents and entities and find appropriate datasets. The system supports complex follow-up interactions or questions related to past responses combined with curated data. Users can use modifiers to further reinforce their respective questions or analyses of the data and incorporate the resulting insights into their respective visualization projects.
[0211] Figures 24A to 24U illustrate an example of how a system can support a chat-visualization user interface and user interaction according to one embodiment.
[0212] As shown in Figures 24A and 24B, these systems and methods can provide a chat-like experience, eliminating traditional GUI interaction and displaying visuals in a "chat" tab. For example, to add a column to a visual, the user can utter a phrase such as "Add a field for product categories." In this example, the removal of the GUI point / click mechanism and the enhanced chat-like experience allow users to experiment with a variety of utterances.
[0213] Furthermore, users can initiate conversations with digital assistants using chat as a starting point. For example, if a user accesses a data analysis system, they may ask questions related to topics of interest. For instance, if the catalog associated with the user does not have data to address the question, the analysis environment can answer the question by providing a generic model (e.g., Cohere or ChatGPT®) while indicating that the answer was derived from a public model.
[0214] Subsequently, according to one embodiment, user follow-up can become more complex. This is because it relates to past responses combined with curated data held by the system. Here, the digital assistant can combine the two sources of information using an internal analytical AI model optimized for data quality. The user can then use a corrector to refine the question and finally add the resulting insights to each canvas. The user can also ask the assistant to generate new calculations that can be used, for example, in follow-up questions.
[0215] As illustrated, according to one embodiment, the digital assistant can operate in conjunction with the user's individual experience, allowing the user to choose to have the assistant perform analysis or visualization tasks, or to choose to perform the above or other tasks themselves. For example, the user can manually generate insights and use them in synergy with chat-based interactions. By clicking the chat icon within the visual, the user can receive more insights into each data point and then further refine those insights by continuing the chat.
[0216] According to one embodiment, the chat interface may be provided as tabs within a collapsible / expandable drawer. The drawer has multiple tabs, one of which is a "chat" tab. The user text input box is positioned starting from the center of the drawer to draw the user's attention to this feature. All icons associated with the collapsible drawer are located within a vertical toolbar.
[0217] As shown in Figure 24C, the chat response of this system includes (a) visuals, (b) direct visual descriptions, and (c) text analysis “insights.”
[0218] As shown in Figures 24D and 24E, this system allows users to request incremental updates of previously generated visuals in a chat.
[0219] As shown in Figure 24F, the “boundary” lines are labeled with the titles of the visually generated utterances. These appear between multiple chat sets, each set consisting of a generating utterance followed by zero or more editing utterances. The “generating” utterance that marks the beginning of a section is stylistically contained within a bubble along the boundary line.
[0220] As shown in Figures 24G to 24I, the "Chat Starter" is a button that invites a user to chat by giving them a starting point instead of letting them guess what various things they might do.
[0221] As shown in Figures 24J to 24L, the user can change the graph type if, for example, they do not like the graph type that the system automatically selected when generating the visual.
[0222] As shown in Figure 24M, the generated graph can be temporarily maximized (without requiring the user to entrust the visual to the canvas). For example, as shown in the screenshot, the maximized window overlaps the canvas rather than becoming part of it, and can be dismissed with a click. The maximized window's visual also includes a hover toolbar with two icons: (1) Add to canvas and (2) Add to watchlist.
[0223] As shown in Figures 24N and 24O, graphs generated from the chat drawer tab can be added to the main canvas of the visual by (1) dragging and dropping or (2) clicking the "+" hover icon in the upper right corner of the chat visual.
[0224] As shown in Figure 24P, the generated graph can be added to the "Watchlist," for example, as a feature within Oracle Analytics Cloud that places watchlist items on the application's homepage. For example, as shown in the screenshot, the "Add to Watchlist" icon is the first icon in a group of three icons in the hover toolbar.
[0225] As shown in Figure 24Q, this system supports autocomplete in the chat text input box.
[0226] As shown in Figure 24R, the user can initiate a speech by selecting one of the previous speeches. For example, as shown in the screenshot, when the system places the active blinking cursor in the speech text input box, a list of previous speeches also pops up. The user can select one of these, simply begin typing, or click to dismiss the pop-up.
[0227] As shown in Figures 24S to 24U, a chat response may include multiple curated visualization options for a given utterance, such as the carousel-style visuals shown in Figures 24S to 24U. As shown in Figures 24S to 24U, these visuals include a carousel that allows the user to switch between different visuals, such as a visual showing the city's revenue and profit (Figure 24S), a visual showing the city's revenue (Figure 24T), and a visual showing the city's profit (Figure 24U).
[0228] According to one embodiment, these systems and methods can additionally provide functionality and capabilities that allow the user to switch between datasets. This can be achieved, for example, by a user-defined dataset drop selector provided within the user interface.
[0229] Furthermore, according to one embodiment, the system can also provide the ability to automatically "transform" the visual type based on "editing actions." For example, it is possible to turn the map into a bar graph depending on the editing action performed (automatic type determination), or to turn the map into a bar graph based on the context of the chat experience or irrelevant utterances by the user. For example, starting with a bar graph of profits by product category, the user may utter "add sales," in which case the system may switch to a scatter plot, given that there are two measure (criterion) (numerical) columns.
[0230] Figure 25 is a flowchart of a method for providing a chat-visualization user interface used in a data analysis workbook assistant according to one embodiment.
[0231] According to one embodiment, in 1701, this method can provide a computer equipped with one or more microprocessors, and a data analysis system or environment is provided.
[0232] According to one embodiment, in 1702, the method can accept inputs in a data analysis environment, including one or more of natural language (NL) expressions and instructions to be processed by a digital assistant of the data analysis system or environment, through a user interface that allows the user to interact with the system using a chat-like conversation.
[0233] According to one embodiment, in 1703, the method generates data including identified intents and entities based on the received input and its processing, and the search component can search the dataset.
[0234] According to one embodiment, in 1704, this method can support complex follow-up interactions or questions related to past responses combined with curated data, and the resulting insights are incorporated into a visualization project.
[0235] According to various embodiments, the teachings of this specification may be implemented by using one or more computers, computing devices, machines, or microprocessors, which include one or more processors and memory and / or computer-readable storage media programmed according to the teachings of this specification. As will be apparent to those skilled in the art of software technology, appropriate software coding can be readily constructed by a skilled programmer based on the teachings of this disclosure.
[0236] In some embodiments, the teachings herein may include a computer program product which is one or more non-temporary computer-readable storage media containing instructions that can be used to program a computer to perform any of the processes of these teachings. Examples of such storage media include, but are not limited to, hard disk drives, hard disks, fixed disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, or other types of storage media or devices suitable for non-temporary storage of instructions and / or data.
[0237] The above description is provided for illustrative and explanatory purposes only. It is not intended to be exhaustive or to limit the scope of protection to the strict form of disclosure. Further improvements and modifications will become apparent to those skilled in the art.
[0238] The embodiments described above have been selected and described in a manner that best illustrates the principles and practical applications of the teachings herein, so that those skilled in the art may understand various embodiments and modifications suitable for specific conceivable uses. The scope is intended to be defined by the following claims and their respective equivalents. < / dimension1> < / measure>
Claims
1. A system for providing a chat-visualization user interface for use in a data analysis workbook assistant, A computer equipped with one or more microprocessors is provided as a data analysis system or environment. The data analysis environment accepts inputs, via a user interface that allows the user to interact with the system using a chat-like conversation, including one or more of the following: natural language (NL) expressions and commands to be processed by the data analysis system or environment's digital assistant. Based on the received input and its processing, data including identified intents and entities is generated, and the search component searches the dataset. The system supports complex follow-up interactions or questions related to past responses combined with curated data, and the resulting insights are incorporated into visualization projects.
2. Based on the aforementioned related dataset, a project is generated. The system according to claim 1, wherein the generated project is received in a virtualized environment for rendering.
3. The system according to claim 2, wherein the generated project is displayed via one or more graphical user interfaces accessible by the data analysis environment.
4. The system according to claim 1, wherein the data analysis system or environment is an OAC (Oracle Analytics Cloud) environment, and the digital assistant system or environment is an ODA (Oracle Digital Assistant) environment.
5. The system according to claim 1, wherein the data analysis system or environment includes a workbook assistant that is provided by or used in the data analysis environment when generating data visuals associated with a dataset.
6. The received input is associated with a context, The NL representation of the received input is sent to the digital assistant, which provides natural language processing (NLP) of the NL representation and data indicating identified intents and entities. The system according to claim 1, wherein the search component searches for the most relevant dataset to be returned to the data visualization (DV) environment for rendering within the user interface.
7. The data analysis system or environment and the digital assistant are provided as part of a cloud environment or communicate with each other, according to claim 1.
8. A method for providing a chat-visualization user interface for use in a data analysis workbook assistant, A computer equipped with one or more microprocessors is provided for the data analysis system or environment, In the aforementioned data analysis environment, the system accepts inputs, including one or more of natural language (NL) expressions and commands processed by a digital assistant of the data analysis system or environment, through a user interface that allows the user to interact with the system using a chat-like conversation. Based on the received input and its processing, data containing identified intents and entities is generated, and the dataset is searched by the search component. A method that includes supporting complex follow-up interactions or questions related to past responses combined with curated data, and in which the resulting insights are incorporated into the visualization project.
9. Based on the aforementioned related dataset, a project is generated. The method according to claim 8, wherein the generated project is received in a virtualized environment for rendering.
10. The method according to claim 9, wherein the generated project is displayed via one or more graphical user interfaces accessible by the data analysis environment.
11. The method according to claim 8, wherein the data analysis system or environment is an OAC (Oracle Analytics Cloud) environment, and the digital assistant system or environment is an ODA (Oracle Digital Assistant) environment.
12. The method according to claim 8, wherein the data analysis system or environment includes a workbook assistant which is provided by or used in the data analysis environment when generating data visuals associated with a dataset.
13. The received input is associated with a context, The NL representation of the received input is sent to the digital assistant, which provides natural language processing (NLP) of the NL representation and data indicating identified intents and entities. The method according to claim 8, wherein the search component searches for the most relevant dataset to be returned to a data visualization (DV) environment for rendering within the user interface.
14. The method according to claim 8, wherein the data analysis system or environment and the digital assistant are provided as part of a cloud environment or communicate with each other.
15. A non-temporary computer-readable storage medium that, when read and executed by one or more computers, stores instructions that cause the one or more computers to execute a method, The aforementioned method, The one or more computers mentioned above provide a data analysis system or environment, In the aforementioned data analysis environment, the system accepts inputs, including one or more of natural language (NL) expressions and commands processed by a digital assistant of the data analysis system or environment, through a user interface that allows the user to interact with the system using a chat-like conversation. Based on the received input and its processing, data containing identified intents and entities is generated, and the dataset is searched by the search component. A non-temporary, computer-readable storage medium that supports complex follow-up interactions or questions related to past responses combined with curated data, and in which the resulting insights are incorporated into visualization projects.
16. Based on the aforementioned related dataset, a project is generated. The generated project is received in a virtualized environment for rendering in the non-temporary computer-readable storage medium according to claim 15.
17. The non-temporary computer-readable storage medium according to claim 16, wherein the generated project is displayed via one or more graphical user interfaces accessible by the data analysis environment.
18. The non-temporary computer-readable storage medium according to claim 15, wherein the data analysis system or environment is an OAC (Oracle Analytics Cloud) environment, and the digital assistant system or environment is an ODA (Oracle Digital Assistant) environment.
19. The non-temporary computer-readable storage medium according to claim 15, wherein the data analysis system or environment includes a workbook assistant provided by or used by the data analysis environment in generating data visuals associated with a dataset.
20. The received input is associated with a context, The NL representation of the received input is sent to the digital assistant, which provides natural language processing (NLP) of the NL representation and data indicating identified intents and entities. The non-temporary computer-readable storage medium according to claim 15, wherein the search component searches for the most relevant dataset to be returned to a data visualization (DV) environment for rendering within a user interface.