Systems and methods for a chat-to-visualization user interface for use with a data analysis workbook assistant

By integrating a data analytics environment with a natural language generator service, and using text or voice input to generate and modify visualizations, the lack of natural language processing in existing systems is addressed, enabling more efficient user interaction and data insights.

CN122270752APending Publication Date: 2026-06-23ORACLE INT CORP

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ORACLE INT CORP
Filing Date
2024-09-13
Publication Date
2026-06-23

Smart Images

  • Figure CN122270752A_ABST
    Figure CN122270752A_ABST
Patent Text Reader

Abstract

According to embodiments, described herein is a system and method for providing a chat-to-visualization user interface for use with a data analytics workbook assistant. A data analytics system or environment can be integrated with a digital assistant system or environment that provides natural language processing for taking full advantage of a user's text or voice input while generating, modifying, or interacting with data visualizations. 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 including resolved intents and entities, and locate appropriate datasets. The system supports complex follow-up interactions or questions related to previously responded and curated data combinations. A user can use modifiers to further enhance their analysis or questioning of the data, and incorporate resulting insights into their visualization projects.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Copyright Notice

[0002] This patent document contains copyrighted material. The copyright holder does not object to any fax reproduction of the patent document or patent disclosure as it appears in the patent documents or records of the Patent and Trademark Office, but otherwise retains all copyrights.

[0003] Priority requirements

[0004] This application claims priority to the following patent applications: U.S. Provisional Patent Application No. 63 / 538,673, filed September 15, 2023, entitled “SYSTEM AND METHOD FOR DIGITAL ASSISTANT INTEGRATION”; U.S. Provisional Patent Application No. 63 / 538,669, filed September 15, 2023, entitled “SYSTEM AND METHOD FOR DIGITAL ASSISTANT INTEGRATION WITH CHAT-TO-VISUALIZATION USER INTERFACE”; and U.S. Patent Application No. 18 / 883,813, filed September 12, 2024, entitled “SYSTEM AND METHOD FOR CHAT-TO-VISUALIZATION USER INTERFACE FOR USE WITH A DATA ANALYTICSWORKBOOK ASSISTANT”; each of these applications and the contents thereof are incorporated herein by reference. Technical Field

[0005] The embodiments described herein generally relate to computer data analysis, and more particularly to a system and method for providing a chat-to-visual user interface for use with a data analysis workbook assistant. Background Technology

[0006] Data analytics enables computer-based examination of large amounts of data to, for example, derive conclusions or other information from the data. For instance, business intelligence tools can be used to provide users with business intelligence in a format that allows them to make strategic business decisions, describing the data relevant to their business. Summary of the Invention

[0007] According to embodiments, this document describes systems and methods for providing a data analysis workbook assistant and integration with a data analysis environment. The data analysis system or environment can be integrated with a provider that operates as a provider framework, providing natural language processing to fully utilize user text or voice input within a data analysis or data visualization project (e.g., while generating, modifying, or interacting with a data visualization). The method allows the selected provider to process text or voice input upon receipt of input to generate, modify, or interact with data analysis information or visualizations.

[0008] According to embodiments, this document describes a system and method for providing a natural language generator service for use with a data analytics environment. The data analytics system or environment may be integrated with a digital assistant system or environment that provides natural language processing to fully utilize the user's text or voice input within data analytics or data visualization projects, such as while generating, modifying, or interacting with data visualizations.

[0009] According to embodiments, a method for providing a natural language generator service for use with a data analytics environment can be provided. The method may provide a computer including a microprocessor. The method may run a data analytics system or environment on the computer. The method may receive input at the data analytics system or environment. The method may generate a visualization in response to the received input by the data analytics system or environment after receiving the input. The method may also generate natural language text in response to the received input and associated with the generated visualization by the data analytics system or environment via a natural language text generator operating within the data analytics system or environment after receiving the input.

[0010] According to embodiments, this document describes a system and method for providing a chat-to-visual user interface for use with a data analytics workbook assistant. The data analytics system or environment may be integrated with a digital assistant system or environment that provides natural language processing to fully leverage the user's text or voice input while generating, modifying, or interacting with data visualizations. Users can interact with the system using chat-like conversations. Based on input received from the user as part of the conversation, the system can generate data including parsed intents and entities and locate appropriate datasets. The system supports complex follow-up interactions or questions related to previous responses and processed data combinations. Users can use modifiers to further enhance their analysis of the data or ask questions, and incorporate the resulting insights into their visualization projects. Attached Figure Description

[0011] Figure 1The illustration depicts an example data analysis environment according to an embodiment.

[0012] Figure 2 A sample data analysis environment according to an embodiment is further illustrated.

[0013] Figure 3 A sample data analysis environment according to an embodiment is further illustrated.

[0014] Figure 4 A sample data analysis environment according to an embodiment is further illustrated.

[0015] Figure 5 A sample data analysis environment according to an embodiment is further illustrated.

[0016] Figure 6 The illustration depicts the use of the system, according to an embodiment, to transform, analyze, or visualize data.

[0017] Figure 7 The illustration shows the preparation of data visualization for use with a data analytics environment according to an embodiment.

[0018] Figure 8 The illustration further illustrates the preparation of data visualization for use with a data analytics environment according to an embodiment.

[0019] Figure 9 The illustration depicts a system for providing integration of a digital assistant and a data analytics assistant according to an embodiment.

[0020] Figure 10 The illustration shows the use of natural language to support digital assistant integration according to an embodiment.

[0021] Figure 11 The illustration shows an example user interaction with a data analytics environment, according to an embodiment, for generating analytical information or visualizations.

[0022] Figure 12 The illustration shows a provider framework used to support digital assistant integration according to an embodiment.

[0023] Figure 13 The illustration further illustrates the use of a provider framework to support digital assistant integration according to an embodiment.

[0024] Figure 14 The illustration further illustrates the use of a provider framework to support digital assistant integration according to an embodiment.

[0025] Figure 15 Another processing diagram illustrating the integration of an example digital assistant with an analytics workbook assistant according to an embodiment is shown.

[0026] Figure 16The illustration depicts a method for providing integration of a digital assistant and an analytics workbook assistant according to an embodiment.

[0027] Figure 17A The illustration depicts an example user interaction with a data analytics environment according to an embodiment.

[0028] Figure 17B The illustration further illustrates an example user interaction with a data analytics environment according to an embodiment.

[0029] Figure 17C The illustration further illustrates an example user interaction with a data analytics environment according to an embodiment.

[0030] Figure 17D The illustration further illustrates an example user interaction with a data analytics environment according to an embodiment.

[0031] Figure 17E The illustration further illustrates an example user interaction with a data analytics environment according to an embodiment.

[0032] Figure 18 The illustration depicts a method for providing integration of a digital assistant and an analytics workbook assistant according to an embodiment.

[0033] Figure 19 The illustration shows the use of a natural language generator service that supports the integration of a digital assistant with a data analytics environment, according to an embodiment.

[0034] Figure 20 The illustration further illustrates the use of a natural language generator service that supports the integration of a digital assistant with a data analytics environment, according to an embodiment.

[0035] Figure 21 The illustration shows a flowchart of a method or algorithm for top-level insights (e.g., the top N insights) according to an embodiment.

[0036] Figure 22A The illustration shows the use of a natural language generator service to support user interaction with a data analytics environment, according to an embodiment.

[0037] Figure 22B The illustration further illustrates the use of a natural language generator service to support user interaction with a data analytics environment according to an embodiment.

[0038] Figure 22C The illustration further illustrates the use of a natural language generator service to support user interaction with a data analytics environment according to an embodiment.

[0039] Figure 23 This is a flowchart of a method for providing a natural language generator service for use with a data analysis environment, according to an embodiment.

[0040] Figure 24A The illustration shows an example of how the system according to an embodiment supports chat to a visual user interface and user interaction.

[0041] Figure 24B The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0042] Figure 24C The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0043] Figure 24D The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0044] Figure 24E The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0045] Figure 24F The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0046] Figure 24G The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0047] Figure 24H The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0048] Figure 24I The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0049] Figure 24J The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0050] Figure 24K The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0051] Figure 24L The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0052] Figure 24M The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0053] Figure 24N The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0054] Figure 24O The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0055] Figure 24P The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0056] Figure 24Q The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0057] Figure 24R The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0058] Figure 24S The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0059] Figure 24T The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0060] Figure 24U The illustration further illustrates the chat-to-visual user interaction according to an embodiment.

[0061] Figure 25 This is a flowchart of a method for providing a chat-to-visual user interface for use with a data analysis workbook assistant, according to an embodiment. Detailed Implementation

[0062] Generally, within an organization, data analytics enables computer-based examination of large amounts of data to, for example, derive conclusions or other information from the data. For instance, business intelligence (BI) tools can be used to provide users with business intelligence in a format that allows them to make strategic business decisions, describing the data relevant to their organization.

[0063] Increasingly, data analytics can be delivered within enterprise software application environments, such as the Oracle Fusion Applications Environment; or within Software as a Service (SaaS) or cloud environments, such as the Oracle Analytics Cloud or Oracle Cloud Infrastructure Environment; or in other types of analytics applications or cloud environments.

[0064] Examples of data analytics environments and business intelligence tools / servers include Oracle Business Intelligence Server (OBIS), Oracle Analytics Cloud (OAC), and Fusion Analytics Warehouse (FAW), which support features such as data mining or analysis and analytics applications.

[0065] Figure 1 The illustration depicts an example data analysis environment according to an embodiment.

[0066] supply Figure 1 The example embodiments shown are used to illustrate examples of data analysis environments in which the various embodiments described herein can be used in association. According to other embodiments and examples, the methods described herein can be used with other types of data analysis, database, or data warehouse environments. Figure 1The components and processes shown and further described herein with respect to various other embodiments may be provided as software or program code executable by, for example, a cloud computing system or other appropriately programmed computer system.

[0067] like Figure 1 As shown, according to an embodiment, the data analysis environment 100 may be provided by a computer system or otherwise operated at a computer system having computer hardware (e.g., processor, memory) 101 and including one or more software components operating as a control plane 102 and a data plane 104, and providing access to a data warehouse, a data warehouse instance 160 (database 161 or other types of data sources).

[0068] According to embodiments, the control plane operates to provide control over cloud or other software products provisioned within a SaaS or cloud environment (such as, for example, an Oracle Analytics Cloud environment or other types of cloud environments). For example, according to embodiments, the control plane may include a console interface 110 that is accessible to clients (tenants) and / or cloud environments having provisioning components 111.

[0069] According to embodiments, the console interface can enable customers (tenants) to access it through a graphical user interface (GUI) and / or a command-line interface (CLI) or other interfaces; and / or may include an interface for use by the provider of the SaaS or cloud environment and its customers (tenants). For example, according to embodiments, the console interface can provide an interface that allows customers to provision services for use within their SaaS environment and configure the provisioned services.

[0070] According to an embodiment, a client (tenant) can request numerous attributes associated with a data warehouse instance via a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed). The provisioning component can then supply the requested data warehouse instance, including the client's schema for the data warehouse; and populate the data warehouse instance with the appropriate information supplied by the client. The provisioning component can also be used, for example, to update or edit the data warehouse instance and / or ETL processes operating at the data plane by changing or updating the request frequency of ETL processes run for a specific client (tenant).

[0071] According to an embodiment, the data plane may include a data pipeline or processing layer 120 and a data transformation layer 134, which together process operational or transactional data from an organization's enterprise software applications or data environment, such as, for example, business productivity software applications provided in a customer's (tenant's) SaaS environment. The data pipeline or processing may include various functions that extract transactional data from business applications and databases provided in the SaaS environment and then load the transformed data into a data warehouse.

[0072] According to an embodiment, the data transformation layer may include a data model that the system uses to transform transaction data received from business applications and corresponding transaction databases provided in a SaaS environment into a model format that can be understood by the data analytics environment, such as a knowledge model (KM) or other types of data models.

[0073] According to an embodiment, the data plane is responsible for performing extract, transform, and load (ETL) operations, including extracting transactional data from an organization’s enterprise software applications or data environment (such as, for example, business productivity software applications and corresponding transactional databases provided in a SaaS environment), transforming the extracted data into a model format, and loading the transformed data into the client schema of the data warehouse.

[0074] For example, according to an embodiment, each customer (tenant) in the environment can be associated with its own customer lease within the data warehouse, which is associated with its own customer schema; and can be additionally provided with read-only access to the data analytics schema, which can be updated periodically or otherwise through data pipelines or processes (e.g., ETL processes).

[0075] According to an embodiment, data pipelines or processes can be scheduled to execute at intervals (e.g., hourly / daily / weekly) to extract transactional data from enterprise software applications or data environments (such as, for example, business productivity software applications and corresponding transactional databases 106 provided in a SaaS environment).

[0076] According to an embodiment, extraction process 108 can extract transactional data, thereby enabling the extraction data pipeline or process to insert the extracted data into a data staging area, which can serve as a temporary staging area for the extracted data. Data quality components and data protection components can be used to ensure the integrity of the extracted data. For example, according to an embodiment, the data quality component can perform validation on the extracted data while it is temporarily held in the data staging area.

[0077] According to an embodiment, once the extraction process has completed its extraction, a data transformation layer can be used to begin transformation processing to transform the extracted data into a model format to be loaded into the client schema of the data warehouse.

[0078] According to embodiments, data pipelines or processing can operate in conjunction with a data transformation layer to transform data into a model format. A mapping and configuration database can store data mappings and metadata that define the data model used for data transformation. A data and configuration user interface (UI) can facilitate access to and modifications to the mapping and configuration database.

[0079] According to an embodiment, the data transformation layer can, for example, transform extracted data into a format suitable for loading into a customer schema in a data warehouse, based on a data model. During the transformation, data transformation may appropriately perform dimension generation, fact generation, and aggregation generation. Dimension generation may include generating dimensions or fields for loading into the data warehouse instance.

[0080] According to an embodiment, after transforming the extracted data, the data pipeline or processing can execute a warehouse loading process 150 to load the transformed data into the client schema of the data warehouse instance. After the transformed data is loaded into the client schema, the transformed data can be analyzed and used in various additional business intelligence processes.

[0081] To provide data analytics or business intelligence data or develop software analytics applications, different clients in a data analytics environment may have different requirements regarding how their data is categorized, aggregated, or transformed. According to an embodiment, to support these different requirements, the semantic layer 180 may include data defining a semantic model of the client's data; this helps users understand and access the data using commonly understood business terms; and provides custom content to the presentation layer 190.

[0082] According to an embodiment, the semantic model can be defined as a BI repository (RPD) file in an environment such as Oracle, having metadata that defines the logical schema, physical schema, physical-to-logical mapping, aggregate table navigation, and / or other constructs that implement the various physical layers, business model and mapping layers, and presentation layers of the semantic model.

[0083] According to an embodiment, customers can, for example, modify their data source model to support their specific requirements by adding custom facts or dimensions associated with data stored in their data warehouse instance; and the system can extend the semantic model accordingly.

[0084] According to embodiments, the presentation layer may use, 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, for example, Oracle Analytics Cloud or Oracle Application Analytics, to enable access to data content.

[0085] According to an embodiment, query engine 18 (e.g., an OBIS instance) operates as a federated query engine to serve analytical queries or requests from clients within, for example, an Oracle Analytics Cloud environment, for data stored in a database.

[0086] According to an embodiment, the OBIS instance can push operations down to a supported database based on query execution plan 56, where logical queries may include Structured Query Language (SQL) statements received from the client; and physical queries include database-specific statements sent by the query engine to the database to retrieve data while processing the logical queries. In this way, the OBIS instance translates business user queries into appropriate database-specific query languages ​​(e.g., Oracle SQL, SQL Server SQL, DB2 SQL, or Essbase MDX). The query engine (e.g., OBIS) can also support internal execution of SQL operators that cannot be pushed down to the database.

[0087] According to an embodiment, users / developers can interact with a client computer device 10, which includes computer hardware 11 (e.g., processor, storage device, 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 against a database model, construct and execute one or more physical database queries, process the data appropriately, and then return the data in response to the request.

[0088] To achieve this, according to embodiments, the query engine or business intelligence server may include various components or features, such as metadata or logical or business models describing data that can be used as a query subject area; a request generator that receives incoming queries and transforms them into physical queries that can be used with connected data sources; and a navigator that receives incoming queries, navigates the logical model, and generates those physical queries that best return the data needed for a particular query.

[0089] For example, according to an embodiment, by creating a simplified star schema business model across various data sources, users can query data (as if it originated from a single source), and the query engine or business intelligence server can adopt a logical model of the data mapped into the data warehouse. The information can then be returned to the presentation layer as a subject area based on the business model layer mapping rules.

[0090] According to an embodiment, a query engine (e.g., OBIS) can process queries against a database based on a query execution plan. During operation, the query engine or business intelligence server can create a query execution plan, which can then be further optimized to, for example, perform data aggregation required to respond to the request. The data can be combined and further computations applied, and the results are then returned to the calling application.

[0091] According to an embodiment, requests for data analysis or visualization information can be received via the client application and user interface described above and transmitted to the analysis system (via a cloud service in a cloud environment example). The system can retrieve an appropriate dataset to address the user / business context, generate the requested data analysis or visualization information, and return it to the client as a data visualization 196.

[0092] According to embodiments, the client application can be implemented as software or computer-readable program code executable by a computer system or processing device, and has a user interface (such as, for example, a software application user interface or a web browser interface). The client application can retrieve or access data via the Internet / HTTP or other types of network connections to the analytics system, or, in the example of a cloud environment, via cloud services provided by the environment.

[0093] Figure 2 A sample data analysis environment according to an embodiment is further illustrated.

[0094] like Figure 2 As shown, according to an embodiment, the analysis system enables the retrieval, receipt, or preparation of datasets from one or more data sources 198 (e.g., 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-format or unstructured text data available in one or more databases, data storage services, or other types of data repositories or data sources.

[0095] For example, according to an embodiment, a request for data analysis or visualization information can be received via a client application and user interface as described above, and (in a cloud environment example, via a cloud service) transmitted to the analytics system. The system can retrieve an appropriate dataset to address the user / business context, generate the requested data analysis or visualization information, and return it to the client. For example, the data analysis system can use, for example, a SELECT statement or logical SQL (LSQL) instructions to retrieve the dataset.

[0096] According to an embodiment, the system provides functionality that allows users to generate datasets, analyze, or visualize data for display within a user interface, for example, to explore datasets or data from multiple data sources.

[0097] According to an embodiment, the supply component may further include a supply application programming interface (API), multiple workers, a metering manager, and a data plane API, as further described below. When commands, instructions, or other input are received at the console interface, the console interface may communicate with the supply API, for example, by making API calls, to supply services or make configuration changes to the supplied services within the SaaS environment.

[0098] According to an embodiment, the data plane API can communicate with the data plane. For example, according to an embodiment, provisioning and configuration changes for services provided by the data plane can be transmitted to the data plane via the data plane API.

[0099] According to embodiments, the metering manager may include various functions for metering the use of services supplied via the control plane. For example, according to embodiments, the metering manager may record the usage of processors supplied to a specific customer (tenant) over time via the control plane for billing purposes. Similarly, the metering manager may record the amount of storage space in a data warehouse partitioned for customer use in a SaaS environment for billing purposes.

[0100] According to an embodiment, the data pipeline or processing provided by the data plane may include a monitoring component, a data classification component, a data quality component, and a data projection component, as further described below.

[0101] According to an embodiment, the data transformation layer may include dimension generation components, fact generation components, and aggregation generation components, as further described below. The data plane may also include a data and configuration user interface, as well as a mapping and configuration database.

[0102] According to an embodiment, the data warehouse may include a default data analysis mode (referred to herein as the analysis warehouse mode in some embodiments) 162, and a customer mode 164 for each customer (tenant) of the system.

[0103] According to an embodiment, in order to support multiple tenants, the system can enable the use of multiple data warehouses or data warehouse instances. For example, according to an embodiment, a first warehouse customer lease for a first tenant may include a first database instance, a first hierarchical region, and a first data warehouse instance among multiple data warehouses or data warehouse instances; while a second customer lease for a second tenant may include a second database instance, a second hierarchical region, and a second data warehouse instance among multiple data warehouses or data warehouse instances.

[0104] According to an embodiment, based on the data model defined in the mapping and configuration database, the monitoring component can determine the dependencies between several different datasets (data sets) to be transformed. Based on the determined dependencies, the monitoring component can determine which of the several different datasets should be transformed into the model format first.

[0105] For example, according to an embodiment, if the first model dataset does not contain dependencies on any other model dataset, and the second model dataset does contain dependencies on the first model dataset, then the monitoring component can determine to transform the first dataset to accommodate the second dataset's dependencies on the first dataset before transforming the second dataset.

[0106] For example, according to an embodiment, dimensions may include data categories such as "name," "address," or "age." Fact generation includes the generation of values ​​or "measures" that the data can take. Facts may be associated with appropriate dimensions in the data warehouse instance. Aggregate generation includes creating a data map that computes an aggregation of the transformed data with existing data in the customer schema of the data warehouse instance.

[0107] According to an embodiment, once any transformation is in place (such as that defined by the data model), the data pipeline or processing can read the source data, apply the transformation, and then push the data to the data warehouse instance.

[0108] According to the embodiments, data transformations can be expressed using rules, and once a transformation occurs, values ​​can be preserved at intermediate hierarchical regions where data quality and data projection components can verify and check the integrity of the transformed data before it is uploaded to the client schema at the data warehouse instance. Monitoring can be provided, for example, at multiple compute instances or virtual machines during the extraction, transformation, and loading processes. Dependencies can also be maintained during extraction, transformation, and loading processes, and data pipelines or processes can participate in such ordering decisions.

[0109] According to an embodiment, after transforming the extracted data, the data pipeline or processing can execute a warehouse loading process to load the transformed data into the client schema of the data warehouse instance. After the transformed data is loaded into the client schema, it can be analyzed and used for various additional business intelligence processing.

[0110] Figure 3 A sample data analysis environment according to an embodiment is further illustrated.

[0111] like Figure 3As shown, according to an embodiment, using data pipeline processing, data may originate from, for example, a customer's (tenant's) enterprise software application or data environment (106); or as custom data 109 originating from one or more customer-specific applications 107; and be loaded into a data warehouse instance, in some examples including using object storage device 105 for storing data.

[0112] Depending on the implementation of the analytics environment (such as, for example, Oracle Analytics Cloud (OAC)), users can create datasets using tables from different joins and schemas. The system uses the relationships defined between these tables to create relationships or joins within the datasets.

[0113] According to an embodiment, for each customer (tenant), the system uses a data analytics pattern maintained and updated by the system within system / cloud lease 114 to pre-populate the customer's data warehouse instance based on analysis of data within the customer's enterprise application environment and customer lease 117. Thus, the system-maintained data analytics pattern enables data to be retrieved from the customer's environment through data pipelines or processing and loaded into the customer's data warehouse instance.

[0114] According to an embodiment, the system also provides each client in the environment with a client schema that is easily modified by the client and allows the client to supplement and utilize data within their own data warehouse instance. For each client, the resulting data warehouse instance operates as a database, the contents of which are partially controlled by the client and partially controlled by the environment (system).

[0115] For example, according to an embodiment, a data warehouse (e.g., ADW) may include data analytics schemas, and for each customer / tenant, these schemas may originate from their enterprise software applications or data environment. Data supplied in a data warehouse lease (e.g., ADW cloud lease) is only accessible to that tenant; however, access to various features of the shared environment is permitted, such as ETL-related features or other features.

[0116] According to an embodiment, in order to support multiple customers / tenants, the system enables the use of multiple data warehouse instances; wherein, for example, a first customer lease may include a first database instance, a first hierarchical region, and a first data warehouse instance; and a second customer lease may include a second database instance, a second hierarchical region, and a second data warehouse instance.

[0117] According to an embodiment, for a specific customer / tenant, after extracting their data, a data pipeline or process can insert the extracted data into the tenant's data hierarchy area, which can act as a temporary hierarchy area for the extracted data. Data quality components and data protection components can be used to ensure the integrity of the extracted data; for example, by performing validation on the extracted data while it is temporarily held in the data hierarchy area. When the extraction process completes its extraction, a data transformation layer can be used to initiate transformation processing to transform the extracted data into a model format to be loaded into the customer's schema in the data warehouse.

[0118] Figure 4 A sample data analysis environment according to an embodiment is further illustrated.

[0119] like Figure 4 As shown, according to an embodiment, the data pipeline processing described above, for example, extracting data from a customer's (tenant's) enterprise software application or data environment; or as custom data originating from one or more customer-specific applications; and loading data into a data warehouse instance or refreshing data in a data warehouse, typically involves three main phases performed by ETP service 160 or processing (including one or more extraction services 163, transformation services 165, and loading / publishing services 167 performed by one or more compute instances 170).

[0120] For example, according to an embodiment, the list of view objects to be extracted can be submitted via a REST call to a component such as the Oracle BI Cloud Connector (BICC). The extracted files can be uploaded to an object storage component, such as the Oracle Storage Service (OSS) component, for data storage. 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) located within the data pipeline or processing and not exposed to the client (tenant). The load / publish service or processing retrieves data from, for example, the ADW database or warehouse and publishes it to a data warehouse instance accessible to the client (tenant).

[0121] Figure 5 A sample data analysis environment according to an embodiment is further illustrated.

[0122] like Figure 5 The illustration depicts the operation of a system with multiple tenants (customers) according to an embodiment, using data pipeline processing as described above, where data may originate from, for example, each of the enterprise software applications or data environments of multiple customers (tenants) and be loaded into a data warehouse instance.

[0123] According to the embodiment, for each of multiple customers (tenants) (e.g., customer A180, customer B182), the data pipeline or processing maintenance is a data analysis pattern that is periodically updated by the system based on best practices for specific analysis use cases.

[0124] According to an embodiment, for each of multiple customers (e.g., customers A and B), the system uses data analysis patterns 162A and 162B maintained and updated by the system to pre-populate a data warehouse instance for the customer based on analysis of data within the customer's enterprise application environment 106A and 106B and within each customer's lease (e.g., customer A lease 181 and customer B lease 183); thereby, data pipelines or processing retrieve data from the customer's environment and load it into the customer's data warehouse instance 160A and 160B.

[0125] According to the embodiment, the data analytics environment also provides each of the environment's multiple customers with a customer schema that can be easily modified by the customer and allows the customer to supplement and utilize data within their own data warehouse instance (e.g., Customer A schema 164A, Customer B schema 164B).

[0126] As described above, according to the embodiment, for each of the multiple clients of the data analytics environment, the resulting data warehouse instance is a database operation whose content is partially controlled by the client and partially controlled by the data analytics environment (system); including its database behavior being pre-populated with appropriate data retrieved from its enterprise application environment to address various analytical use cases. When the extraction processes 108A and 108B for a specific client complete their extraction, a data transformation layer can be used to initiate transformation processing to transform the extracted data into a model format to be loaded into the client's schema in the data warehouse.

[0127] According to an embodiment, activation plan 186 can be used to control the operation of data pipelines or processing services for customers in specific functional areas in order to meet the specific needs of that customer (tenant).

[0128] For example, according to an embodiment, an activation plan can define multiple extraction, transformation, and loading (publishing) services or steps that run in a specific order, at a specific time of day, and within a specific time window.

[0129] According to an embodiment, each customer may be associated with its own activation plan(s). For example, the activation plan of a first customer A may determine the tables to be retrieved from that customer's enterprise software application environment (e.g., its converged application environment) or how to run services and their processing in sequence; while the activation plan of a second customer B may similarly determine the tables to be retrieved from that customer's enterprise software application environment or how to run services and their processing in sequence.

[0130] Figure 6 The illustration depicts the use of the system, according to an embodiment, to transform, analyze, or visualize data.

[0131] like Figure 6 As shown, according to embodiments, the systems and methods disclosed herein can be used to provide a data visualization environment 192 that enables users of the analytics environment to gain insight into analytics artifacts and the relationships between them. The model can then be used to visualize such relationships between analytics artifacts via, for example, a user interface, as a visualization or network diagram of relationships and lineages between artifacts (e.g., users, roles, DV projects, datasets, connections, data flows, sequences, ML models, ML scripts).

[0132] According to embodiments, the client application can be implemented as software or computer-readable program code executable by a computer system or processing device, and has a user interface, such as, for example, a software application user interface or a web browser interface. The client application can retrieve or access data via the Internet / HTTP or other types of network connections to the analytics system, or, in an example in a cloud environment, via cloud services provided by the environment.

[0133] According to an embodiment, the user interface may include or provide access to various data stream action types, as described in further detail below, which enable self-service text analysis, including allowing users to display datasets or interact with the user interface to transform, analyze, or visualize data, for example, to generate graphs, charts, or other types of data analysis or data stream visualization.

[0134] According to embodiments, the analysis system enables the retrieval, receipt, 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-formatted or unstructured text data available in one or more databases, data storage services, or other types of data repositories or data sources.

[0135] For example, according to an embodiment, requests for data analysis or visualization information can be received via a client application and user interface as described above, and (in a cloud environment example, via a cloud service) conveyed to the analytics system. The system can retrieve an appropriate dataset to address the user / business context, generate and return the requested data analysis or visualization information to the client. For example, the data analytics system can use, for example, a SELECT statement or logical SQL command to retrieve the dataset.

[0136] According to embodiments, the system can create a model or data stream that reflects an understanding of the data stream or input dataset by applying various algorithms to generate data-related visualizations or other types of useful information. The model or data stream can be further modified within the dataset editor 193 by applying various processes or techniques (including, for example, one or more data stream actions 194, 195, or steps that manipulate the data stream or input dataset). Users can interact with the system via a user interface to control the use of data stream actions to generate data analysis, data visualizations 196, or other types of useful information associated with the data.

[0137] According to an example, a dataset is a self-service data model that users can build for their data visualization and analysis needs. A dataset contains data source connection information, tables and columns, data enrichment, and transformations. Users can use datasets across multiple workbooks and data streams.

[0138] According to the embodiments, when users create and build datasets, they can, for example, choose between multiple types of connections or spreadsheets; create datasets based on data from multiple tables from database connections, Oracle data sources, or local subject areas; or create datasets based on data from tables from different connections and subject areas.

[0139] For example, according to an 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 domain; specify joins between tables; and transform and enrich columns in the dataset.

[0140] According to an embodiment, additional artifacts, features, and operations associated with the dataset may include, for example:

[0141] View available connections: The dataset uses one or more connections to the data source to access and provision the data for analysis and visualization. The list of users of the connections includes the connections they have built and the connections they are authorized to access and use.

[0142] Creating datasets from connections: When users create datasets, they can add tables, add joins, and enrich the data from one or more data source connections.

[0143] Adding multiple connections to a dataset: A dataset can include more than one connection. Adding more connections allows users to access and join all the tables and data they need to build the dataset. Users can add more connections to datasets that support multiple tables.

[0144] Creating dataset table joins: Joins indicate the relationships between tables in a dataset. If a user is creating a dataset based on facts and dimensions, and if joins already exist in the source tables, then the joins are automatically created in the dataset. If a user is creating a dataset from multiple joins and schemas, then they can manually define the joins between the tables.

[0145] According to an embodiment, users can use data streams to create datasets by combining, organizing, and integrating data. Data streams enable users to organize and integrate data to produce organized datasets that they or other users can visualize.

[0146] For example, according to an embodiment, a user may use data streams to: create datasets; combine data from different sources; aggregate data; and train machine learning models or apply predictive machine learning models to their data.

[0147] According to an embodiment, the dataset editor described above allows users to add actions or steps, each step performing a specific function, such as adding data, joining tables, merging columns, transforming data, or saving data. Each step is validated when the user adds or modifies it. Once they have configured data flows, they can execute the data flows to generate or update the dataset.

[0148] According to the embodiments, users can organize data from datasets, subject areas, or database connections. Users can execute data streams individually or sequentially. Users can include multiple data sources in a data stream and specify how to connect them. Users can save the output data of the data stream in a dataset or a supported database type.

[0149] According to embodiments, additional artifacts, features, and operations associated with the data stream may include, for example:

[0150] Add Column: Add a custom column to the target dataset.

[0151] Adding data: Adds a data source to the data stream. For example, if users are merging two datasets, they add both datasets to the data stream.

[0152] Aggregation: Create group totals by applying aggregation functions; for example, count, sum, or average.

[0153] Branch: Creates multiple outputs from a data stream.

[0154] Filtering: Select only the data that the user is interested in.

[0155] Join: Use database joins based on common columns to combine data from multiple data sources.

[0156] Graph analysis: Performs geospatial analysis, such as calculating the distance or number of hops between two vertices.

[0157] The above is provided as an example only; according to the embodiments, other types of steps may be added to the data stream to transform the dataset or provide data analysis or visualization.

[0159] Dataset Analysis and Visualization

[0160] Figures 7-8 The illustration shows the preparation of data visualization for use with a data analytics environment according to an embodiment.

[0161] Figures 7-8 The user interfaces and features shown in this document and elsewhere are provided by way of example to illustrate the various features described herein; alternative examples of user interfaces and features may be provided according to various embodiments.

[0162] like Figures 7-8 As shown, according to an embodiment, the system allows users to prepare data visualizations for use with datasets. The visualization options panel allows users to add data visualization elements to workbooks or canvases to create dashboards or data visualizations. Users can create workbooks, add datasets, and then drag and drop their columns onto the canvas to create visualizations.

[0163] According to an embodiment, the system can automatically generate visualizations based on the content of the canvas, wherein one or more visualization types are automatically selected for the user to choose from.

[0164] According to one embodiment, users can continue to add data elements directly to the canvas to build visualizations. In this way, the dataset operates as a self-service data model from which users can build data analysis or visualizations. Users can then use the data visualization to access a data analysis environment to, for example, submit analyses or queries on data specific to their organization, or explore datasets or data originating from multiple data sources. According to one embodiment, data streams can be used to merge datasets, clean data, and output results to new datasets.

[0165] According to an embodiment, the system can provide automatically generated data visualizations (automatically generated insights, automatic insights) by suggesting visualizations that are expected to provide the best insights for a specific dataset. Users can view automatically generated summaries of insights, for example, by hovering the mouse over the associated visualization in the workbook canvas.

[0167] Data Analysis Assistant

[0168] According to embodiments, a data analysis system or environment may be integrated with a digital assistant that provides natural language processing capabilities to fully utilize the user's text or voice input during data analysis or data visualization projects (e.g., while generating, modifying, or interacting with data visualizations, or generating stories or scripts that include or describe data visualizations).

[0169] For example, according to an embodiment, a data analysis system or environment (e.g., an Oracle Analytics Cloud (OAC) environment) can be integrated with a digital assistant system or environment (e.g., an Oracle Digital Assistant (ODA) environment) that provides natural language processing (NLP) and speech processing capabilities to fully utilize the user's text or speech input in natural language (NL) processing within a data analysis or data visualization project (e.g., while generating, modifying, or interacting with a data visualization).

[0170] Figure 9 The illustration depicts a system for providing integration of a digital assistant and a data analytics assistant according to an embodiment.

[0171] like Figure 9 As shown, according to an embodiment, at (1), the data analysis system or environment (e.g., Oracle Analytics Cloud (OAC) environment) receives a request 1010 from the user via a natural language expression or preparation of data visualization as input through a user interface (e.g., a data analysis assistant).

[0172] At (2), the input natural language can be associated with the context (e.g., instructions for creating a project (e.g., visualization, story, script)) when appropriate.

[0173] At (3), a relevant dataset can be determined based on the parsed data visualization request (the context is based on keywords in the input and / or supplied with the input) (e.g., by a search component 1020 such as BI Search). Based on the determination of the relevant dataset, the natural language input can be sent to a digital assistant environment 1030 (e.g., an Oracle Digital Assistant (ODA) environment) that provides natural language processing (NLP) and speech processing capabilities for natural language (NL) processing that fully utilizes natural language expressions (e.g., the user's text or speech input).

[0174] At (4), a data visualization request format (e.g., JavaScript Object Notation (JSON)) with the parsed intent and entities can be prepared.

[0175] At (5), prepare JSON data with the parsed intent and entity (e.g., ODA) and return it to the data visualization (DV) environment for rendering.

[0176] At (6), the data analysis or data visualization project is rendered in the user interface (UI).

[0178] Natural language input

[0179] According to an embodiment, the system supports the use of natural language input to generate simple yet insightful natural language text for a given visualization. The simple text explains the data behind the visualization, while the insightful text aims to provide relevant but useful insights about the columns in the visualization and the data around them. A data analysis assistant can then use the insights to generate features to extract and display relevant insights from the visualization.

[0180] Figure 10 The illustration shows the use of natural language to support digital assistant integration according to an embodiment.

[0181] like Figure 10 As shown, according to an embodiment, a user can interact with the user interface 1102 of a search environment 1100 (e.g., BI Search) via natural language utterance / input. A request 1101 can be passed to a natural language parser 1103 (e.g., ODA) and parsed for use by a visualization generator 1104 and a natural language text generator 1120, which includes a data collector 1121 and a data-to-text converter 1124. A response 1105 (e.g., insights 1122, 1123) can be processed to provide a response / visualization 1140 to the user interface.

[0182] For example, a user request received at the user interface (such as "What are the best performing products in Asia?") is parsed by a natural language parser and passed to a visualization generator. The natural language text generator can then be used to generate a response associated with the visualization, such as "The top 3 products by sales are... This is a visualization of the total sales of the top 20 products...".

[0184] User interaction with data analytics environment

[0185] Figure 11 The illustration shows an example user interaction with a data analytics environment, according to an embodiment, for generating analytical information or visualizations.

[0186] like Figure 11As shown, according to an embodiment, when a user begins exploring, using a computer device communicating with server API 212, the data analysis system can present the user with dynamic insights about their data based on natural language processing 200 for them to view and select. The user can then continue to add data elements directly to the canvas, for example, using a chat-like interface, to further build their visualization.

[0188] Provider Framework

[0189] According to an embodiment, the system utilizes a semantic search-based provider framework to support chat-like conversations between users. The provider framework offers a flexible approach to conducting chat-like conversations, in contrast to the limited scope of flowchart-based alternatives.

[0190] Figures 12-14 The illustration shows the use of provider framework 1200 to support digital assistant integration according to an embodiment.

[0191] According to embodiments, BI Search environments and user interfaces (such as BI Ask) support chat-like interactions for a given dataset with metric and dimension columns. The scope is not limited to datasets but can be extended to any artifact within a BI Search or data analytics environment.

[0192] According to an embodiment, index 1202 operates as a repository of documents, where each document contains fields describing various aspects of a single item in the BI system catalog. The index may contain items (including datasets) in the BI Search or data analytics environment, thus acting as a global dictionary, and may be seeded with additional metadata / keywords to provide contextual support for processing user utterances or chat input.

[0193] Examples of keywords seeded into the index, according to an embodiment, are shown in Table 1 below:

[0194] Table 1

[0196] According to an embodiment, to enable synonyms to be expressed in natural language, the system can be adapted to understand word synonyms. Synonym information can be pre-planted into the system via a knowledge base or compiled by a user community. Exemplary synonym metadata is provided in Table 2 below:

[0197] Table 2

[0199] According to the embodiments, the provider framework operates as an abstraction of various implementations of the provider.

[0200] According to an embodiment, the selected provider 1203 (i.e., a provider chosen from a plurality of optional providers 1203, 1204, 1205) operates as an implementation of a provider framework to interpret user utterances or chat input along with hits from an index. Such providers can take full advantage of simple regular expression interpretations of user utterances or chat inputs, or complex ones such as large language models.

[0201] For example, according to an embodiment, the regular expression (regex) provider makes full use of regular expressions to match a given utterance or chat input against a given set of rules and extract portions of the input.

[0202] The extracted portion can then be evaluated against the index lookup terms passed to the provider, thereby effectively parsing out the valid column names (including synonyms) of the dataset and ignoring invalid column names.

[0203] The index provides support for determining column names for column values ​​specified in a user's utterance or chat input, even if the column name itself does not exist in the utterance. The chart type specified in the input can also be inferred from the index.

[0204] This technology enables the efficient parsing of utterances or chat input to generate appropriate responses. The ability to combine metadata from the index (including synonyms, chart types) with a set of regular expression rules makes it a powerful technique for chat input parsing and responses. If utterances or chat input are generated based on user-selected UI elements that may match one of the regular expression rules, this can become much more natural for the user.

[0205] According to the embodiments, the sample utterance patterns used for parsing by regular expression syntax are illustrated in Table 3 below, including example positive use cases:

[0206] Table 3

[0207] According to the embodiments, the sample discourse patterns used for parsing by regular expression syntax are illustrated in Table 4 below, including example negation use cases:

[0208]

[0209] Table 4

[0210] According to an embodiment, the provider framework includes an Oracle Digital Assistant (ODA) model provider 1204, which is supported by an ODA model that enables the processing of expressive utterances in chat. An ODA model can be created for a dataset by: creating a skill using the ODA API, creating a schema for the dataset within the skill, and subsequently training the skill, which builds a model associated with that skill. After training, the skill can then process utterances or chat input directed to the provider.

[0211] According to an embodiment, the deep learning model provider 1205 (e.g., a provider plugin) may be supported by a large language model (LLM), thereby enabling the handling of more expressive / colloquial forms of speech in chat. The LLM itself can be any model, including, for example, any available open-source model.

[0212] According to an embodiment, as a provider response, the provider generates a chart syntax containing chart type, projection, filter clauses, and sorting order in response to a given utterance, which is consumed by the BI Ask component to generate visualizations for the end user.

[0213] Figure 15 The illustration shows a processing diagram of an example digital assistant and analytics workbook assistant integration according to an embodiment.

[0214] like Figure 15 As shown, according to an embodiment, when a user provides verbal or chat input via user interface 1301, such as by typing or speaking a command in the BI Ask search interface, search component 1401 (e.g., BI Search) sends the natural language input to ODA skill 1302 (e.g., Data Analysis Workbook Assistant) for processing.

[0215] According to an embodiment, since different skills can exist for different interactions (e.g., a dataset can be associated with a C2SQL skill and / or a canvas intent skill), natural language input needs to be sent to the correct skill. The skill that understands the input can determine how BI Search proceeds: for example, it can create visual JSON from the returned representation (e.g., in an Oracle environment, as an Oracle Meaning Representation Language (OMRL) representation); or pass the returned canvas action intents and entities to the data visualization component for generating, modifying, or visualizing or interacting with data analysis information.

[0216] Figure 15 The examples shown are provided by way of illustration to depict the various features described herein; alternative examples of search components, representations, and features may be provided according to various embodiments.

[0217] Figure 16The illustration depicts a method for providing integration of a digital assistant and an analytics workbook assistant according to an embodiment.

[0218] like Figure 16 As shown in the embodiment, at 1510, an analysis environment can be provided where users can create data analysis or visualizations based on data from one or more datasets.

[0219] According to an embodiment, at 1520, the data analysis system or environment (e.g., an Oracle Analytics Cloud (OAC) environment) can receive natural language (NL) expressions as input.

[0220] According to an embodiment, at 1530, the input NL expression can be associated with a context (such as the Oracle Ask input field on the homepage or the Ask field when creating a project).

[0221] According to an embodiment, at 1540, the search environment (e.g., BISearch) can determine the most relevant dataset based on the input (e.g., the context provided within the input) and the search index hits of keywords in the input NL.

[0222] According to an embodiment, at 1550, after determining the most relevant dataset, the search environment (e.g., BISearch) can send NL to a digital assistant environment (e.g., ODA, other skills) corresponding to the determined dataset, which provides natural language processing (NLP) and speech processing capabilities for fully utilizing NL processing of natural language (NL) expressions (e.g., the user's text or voice input).

[0223] According to an embodiment, at 1560, JSON data with the parsed intent and entity (e.g., ODA) can be prepared.

[0224] According to an example, at 1570, ODA JSON can be used to generate project JSON, which is then returned to data visualization (DV) for rendering.

[0225] According to an embodiment, at 1580, data analysis or data visualization projects can be rendered in a user interface (UI).

[0226] Figures 17A-17E The illustration depicts an example user interaction with a data analytics environment according to an embodiment.

[0227] like Figures 17A-17EAs shown, for example, the above method allows the search environment and user interface to support chat-like interactions for a given dataset with metric and dimension columns, allowing users to provide utterances or chat input such as "Create a calculation of GDP Exp % which is GDP exposure divided by total GSP"; then "Show me the relationship between population and GDP exposure % and add the top 20 ranked by GDP". The system can process user input through a selected provider to generate, modify data analysis information or visualizations, or interact with them.

[0228] Figure 18 The illustration depicts a method for providing integration of a digital assistant and an analytics workbook assistant according to an embodiment.

[0229] According to an embodiment, at step 1801, the method may provide a computer including a microprocessor.

[0230] According to an embodiment, at step 1802, the method can run a data analysis system or environment on a computer.

[0231] According to an embodiment, at step 1803, the method can operate a data analysis system or environment with a selected provider operating as an implementation of a provider framework to interpret input and provide natural language processing capabilities.

[0232] According to an embodiment, at step 1804, the method may, upon receiving input, have a selected provider, operating as a provider framework, process the text or voice input to generate, modify, or interact with data visualizations.

[0234] Natural Language Generator (NLG) Service

[0235] According to embodiments, a Natural Language Generator (NLG) may include a service provided within a cloud environment (such as OAC) that can generate simple yet insightful natural language text for a given visualization. The generated simple text explains the data behind the visualization, while the generated insightful text is intended to provide relevant but useful insights about the columns in the visualization and the data around them. For example, a workbook assistant can use insightful text generation features to acquire and display relevant insights from a visualization.

[0236] Figures 19-20 The illustration shows the use of a natural language generator service to support digital assistant integration according to an embodiment.

[0237] According to the embodiments, such as Figure 19As shown, users can interact with the user interface 1102 of the search environment 1100 (e.g., BI Search) via natural language speech / input (which may be referred to as "natural language input" throughout the manual) (such as "What are the best performing products in Asia?"). This user interface 1102 may include, for example, a data analysis assistant or a workbook assistant.

[0238] According to an embodiment, this 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 the visualization generator 1104 and the natural language text generator 1120. The data passed from the NL parser may include, for example, structured data from the natural language input, such as structured JSON or structured SQL from the natural language input.

[0239] According to an embodiment, the visualization generator can be used to generate one or more data visualizations based on a dataset and / or data columns associated with natural language input (such as those determined by an NL parser).

[0240] According to an embodiment, similar structured data, primarily in the form of metadata, can be passed from the NL parser to the natural language text generator 1120.

[0241] According to an embodiment, the NL text generator may include two main components: a data collector 1121 and a data-to-text converter 1124.

[0242] According to an embodiment, such as when used with the overall workbook assistant feature, the NLG service mainly includes various components, as further described below.

[0243] Data collector

[0244] According to an embodiment, such as when used in conjunction with holistic data analytics assistant features, the NLG service 1120 may include a data collector 1121 responsible for generating / computing insightful data 1123 for a given visualization 1140. To achieve this, it takes visualization metadata as input. The metadata is processed to extract the input syntax for the NLG service. For example, the input syntax consists of projection, group by, and filter expressions, dimension and measure columns, and any other aspects of the visualization that may have potential use in generating insightful data.

[0245] According to the implementation example, the input grammar is pruned using a dataset profile to generate the insight grammar. The pruning process applies transformations to generate the insight grammar. For example, the transformation could be to determine dimensional columns from the input grammar or dataset to interpret the metrics in the input visualization. Based on this, a rank filtering predicate can be added to the grammar. This is just one example of a transformation that helps obtain the top N insights.

[0246] According to an embodiment, the final step is to convert the insight syntax into logical SQL (LSQL) instructions that can be executed to obtain insight data 1122.

[0247] Data to Text Generator

[0248] According to an embodiment, the data-to-text converter module 1124 is responsible for generating natural language text using the structured data produced by the data collector module 1121. The text can be generated in several ways. One approach is to use a language model or an NL text generation tool such as Yseop. Another approach is to predefine a set of text templates and determine the best template suitable for the insight data. Regardless of the method used, the result is NL text describing the insight data. Using a language model or Yseop does indeed produce natural and less machine-like text.

[0249] Insight Algorithm

[0250] According to embodiments, the algorithms used to generate insights can be designed in several ways. For example, the first N insight algorithms are described herein. According to various embodiments, the system can utilize other / more algorithms to generate a set of NLG texts. These can all be made available to the end user, or alternatively, the system can automatically determine one or more best / better texts for the use case and simply display them.

[0251] The top N insight algorithms

[0252] According to embodiments, the system and method can prune the input visualization grammar to produce the first N insight grammars, which can then be converted into text. For example, the following is an example of a template that can be used to generate insight text. Columns from the insight grammar, along with the data behind that grammar, are inserted into the template to generate the final text.

[0253] The top N<rank_dimension> with highest <measure>by <dimension1> <dimension2><...><filter_list> are rank_dim_value1: [dimension1_value,dimension2_value,... measure_value], ...

[0254] According to the implementation example, some considerations when implementing the first N insight algorithms are:

[0255] The number of data points generated by the Insight SQL query should be small enough to be represented within a small text body. For example, the number of data points should be <= 5. This can be achieved by adding relevant filters on appropriate columns (largely cardinality-driven) and injecting columns into groupings where appropriate.

[0256] When it is impossible to generate <= 5 data points, the NL text template can be modified to generate the first X and last Y insight texts.

[0257] You can leverage dataset profiles to derive insight syntax from the input syntax. It's important to note that the data behind the input visualization is not required to generate the insights. The generated insight syntax and the data from which it was generated are relevant to the input visualization, but provide more insights than are available in the visualization itself.

[0258] The table below provides some examples of various input texts and corresponding insight texts generated by the NLG service.

[0259]

[0260] Table 5

[0261] Other insights

[0262] According to embodiments, insight algorithms can be designed in different ways. For example, systems and methods can utilize dataset statistics to interpret dimensions or measures in visualizations. Similarly, the data behind the input visualization can be used to generate insight text. According to various embodiments, along with the first N insight texts, a variety of other useful insight texts can also be generated.

[0263] According to various embodiments, examples of user interactions with the search environment 1100 (e.g., user request 1101 interacting with the user interface 1102) include: (e.g., via visualization generator 1104) creating visualizations (viz), such as "show me sales by region"; or changing the appearance of the canvas, such as "change the background to red". The NL parser 1103 (e.g., ODA) environment operates using skills, which are functional units focused on specific types of tasks. The OAC environment can be associated with various skills: for example, Conversation to SQL (C2SQL) or C2SQL_Skill would have a C2SQL model for the "create viz" interaction that correlates NL inputs with columns in the dataset; while Canvas_Intents_Skill would have intents for canvas actions, which instruct the user what they want to do (e.g., set the background color) and the quantity or quality (e.g., red).

[0264] According to an embodiment, the OAC environment can manage its own skills at runtime. Developed skills can be installed along with the OAC application code in, for example, a BI_HOME folder, instead of being deployed to the ODA skill repository. One or more ODA service instance APIs allow OAC applications to deploy skills to ODA. This approach allows for automated testing of candidate changes to skills; and tenant login, where new tenant provisioning is largely delegated to runtime application components.

[0265] According to an embodiment, a search component (e.g., BISearch) communicates with a digital assistant environment (e.g., ODA) via, for example, an ODA channel, to process, for example, an Ask query. The ODA channel routes the Ask query to a configured data analytics system or environment (e.g., OAC) as a skill. The skill performs NLP analysis and returns parsed JSON. The JSON parsed by the ODA is returned to the search component, such as BISearch.

[0266] According to an embodiment, responses from both the visualization generator 1104 and the NLG service 1120 can be processed (1105) to provide a response / visualization (1140) to the user interface (1102), which can be displayed or provided (1141) to the user. For example, along with data visualization, natural language text such as "The top 3 products by sales in Asia are..." or "Here is a visualization of the total sales of the top 20 products in Asia..." can be provided.

[0267] Figure 20 The illustration shows the use of a natural language generator service to support digital assistant integration according to an embodiment.

[0268] According to the embodiments, more specifically, Figure 20 A flowchart illustrating the input visualization for insight text is shown. That is, the NLG service can implement a general utility that can transform input visualizations into relevant insight text. Figure 20 The diagram illustrates the sequence of steps performed to generate the first N insights. The inputs and algorithms used can be adjusted to generate different types of insight text.

[0269] According to the embodiment, at 1251, input visualization can be utilized within the process. At 1252, the input visualization can be trimmed (e.g., trimming metadata). The input syntax of the visualization can be trimmed using a dataset profile to generate the input visualization syntax 1253.

[0270] According to an embodiment, the top-level insight algorithm 1254 can be applied to this input visualization grammar to generate insight grammar 1255.

[0271] According to an embodiment, a query (such as Insight LSQL 1256) can be applied to the insight syntax and executed at 1257 to generate insight data 1258. Natural language text 1259 can then be generated based on the insight data.

[0272] Figure 21 The illustration shows a flowchart of a method or algorithm for top-level insights (e.g., the top N insights) according to an embodiment.

[0273] According to an embodiment, the top-level insight method can begin by receiving an input visualization grammar and checking whether the 1400 input grammars contain a set of lines with fewer than a certain number of lines (such as 5 lines).

[0274] According to an embodiment, if the row set contains fewer than N rows, the top-level insight method can then perform check 1402 to see if a filter exists. If a filter exists, the top-level insight method can find the filter predicate with the highest cardinality column, remove the filter predicate, add the column to the group, and add a ranking predicate to that column. The top-level insight method can then perform check 1405 to see if the insight row set is less than or equal to a certain number of rows, such as 10 rows. If not, then a display with the top 3 and bottom 2 insights can be generated. If yes, then a display with the top 5 insights can be generated.

[0275] According to the implementation example, if no filter exists, the top-level insight method can check to see if any non-time dimension exists in the dataset. If not, the top-level insight method can check to see if a time column exists in the dataset, and if not, the method can terminate.

[0276] According to an example, after discovering the presence of a time column in the dataset, the top-level insight method can find a column gain with the second smallest span, and add a ranking predicate and column to the group. The top-level 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, such as 10 rows. If not, then a display with the top 3 and bottom 2 insights can be generated. If so, then a display with the top 5 insights can be generated.

[0277] According to an embodiment, after discovering the existence of a non-temporal dimension in the dataset, the top-level insight method can find the best non-temporal dimension with the highest cardinality (e.g., <1000). The top-level insight method can then add ranking predicates and columns to the grouping. The top-level insight method can then perform a check 1405 to see if the insight row set is less than or equal to a certain number of rows, such as 10 rows. If not, then a display with the first 3 rows and the last 2 rows can be generated. If yes, then a display with the first 5 rows can be generated.

[0278] According to an example, if the row set includes more than N rows (at check 1400), the top insight method can then check 1406 whether there is more than one column in the group. If more than one column is found in the group, the top insight method can perform check 1407 to determine whether there is an optimal cardinality column in the group. If so, the top insight method can select the best column from the group and add it to the ranking filter, then display the top 5 insights.

[0279] According to an example, when more than one column is found in a group (at check 1406), the top-level insight method can perform check 1407 to determine if an optimal cardinality column exists in the group. If not, the top-level insight method can find the lowest cardinality column from the group, add the low cardinality column to the ranking filter, and then display the top 3 and bottom 2 insights.

[0280] According to the implementation, if no more than one column is found in the grouping (at 1406), the top-level insight method can perform check 1408 to determine if one or more time columns exist in the dataset. If so, the top-level insight method can inject the time column with the optimal cardinality into the grouping and ranking filters. The top-level insight method can then perform check 1405 to see if the insight row set is less than or equal to a certain number of rows, such as 10 rows. If not, then a display with the first 3 rows and the last 2 rows can be generated. If so, then a display with the first 5 rows can be generated.

[0281] According to an embodiment, when no more than one column is found in a group, the top-level insight method can perform check 1408 to determine if one or more time columns exist in the dataset. If not, the top-level insight method can find the best non-time dimension with a high cardinality (e.g., <1000) and add the column to the grouping and ranking filters. The top-level insight method can then perform check 1405 to see if the insight row set is less than or equal to a certain number of rows, such as 10 rows. If not, then a display with the first 3 rows and the last 2 rows can be generated. If yes, then a display with the first 5 rows can be generated.

[0282] Figures 22A-22C The illustration shows the use of a natural language generator service to support user interaction with a data analytics environment, according to an embodiment.

[0283] Figure 23 This is a flowchart of a method for providing a natural language generator service for use with a data analysis environment, according to an embodiment.

[0284] According to an embodiment, at step 1601, the method may provide a computer including a microprocessor.

[0285] According to an embodiment, at step 1602, the method can run a data analysis system or environment on a computer.

[0286] According to an embodiment, at step 1603, the method may receive input at a data analysis system or environment.

[0287] According to an embodiment, at step 1604, the method may generate a visualization in response to the received input by a data analysis system or environment.

[0288] According to an embodiment, at step 1605, the method may, upon receiving input, generate natural language text in response to the received input and associated with the generated visualization by a natural language text generator operating within the data analysis system or environment.

[0290] From chat to visual user experience

[0291] According to an embodiment, users can interact with the system using chat-like conversations. Based on input received from the user as part of the conversation, the system can generate data including parsed intents and entities and locate appropriate datasets. The system supports complex follow-up interactions or questions related to combinations of previous responses and processed data. Users can use modifiers to further enhance their analysis of the data or ask questions, and incorporate the resulting insights into their visualization projects.

[0292] Figures 24A-24U The illustration shows an example of how the system according to an embodiment supports chat to a visual user interface and user interaction.

[0293] like Figures 24A-24B As shown, the system and methods can provide a chat-like experience, where regular GUI manipulation interactions have been removed for the visualizations that appear in the "Chat" tab. For example, to add a column to the visualization, a user could say a phrase such as "Add field: Product Category". In this example, the GUI click mechanism has been removed to improve the chat-like experience, which in turn encourages users to try out different phrases.

[0294] Users can also use chat as a starting point to begin a conversation with the digital assistant. For example, after accessing the data analytics system, a user can ask questions related to topics of interest. If, for instance, the directory associated with the user lacks data to address the question, the analytics environment can provide a general model, such as Cohere or ChatGPT, to answer the question, while indicating that the answer comes from a public model.

[0295] According to the embodiment, the user's subsequent actions may then become more complex, as they relate to the combination of the previous response and the processed data already present in the system. Here, the digital assistant can combine the two information sources using an internal analytics AI model optimized for data quality. The user can then enhance the question with modifiers and ultimately add the resulting insights to their canvas. Furthermore, the user can, for example, request the assistant to create new calculations, which they can then use in subsequent questions.

[0296] As shown in the figure, according to an embodiment, the digital assistant can operate in a way that interweaves with the user's personalized experience, allowing the user to choose to have the assistant perform certain analytical or visualization tasks, or to choose to do these or other tasks themselves. For example, a user can manually create insights and use them collaboratively with chat-based interactions. Clicking the chat icon within a visualization allows the user to receive more insights into their data and then further modify it by continuing their chat.

[0297] According to one embodiment, the chat interface can be provided as a tab within a drawer that can be folded / unfolded. 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 capability. All icons associated with the foldable drawer are placed within a vertical toolbar.

[0298] like Figure 24C As shown, the system’s chat responses include (a) visualizations, (b) direct visual descriptions, and (c) text analysis “insights”.

[0299] like Figures 24D-24E As shown, the system provides users with the ability to incrementally update previously generated visualization requests within the chat.

[0300] like Figure 24F As shown, the "divider" lines are titled with visual creation phrases. These appear between chat sets, each consisting of a creation phrase followed by zero or more edit phrases. Stylistically, the "creation" phrase that begins the segment is enclosed in a bubble along the divider line.

[0301] like Figure 24G-Figure 24I As shown, the "Chat Starter" is a button that invites users to chat because it provides them with a starting point rather than leaving them to guess at the various things they can do.

[0302] like Figures 24J-24L As shown, for example, if a user does not like the chart type that the system automatically selects when generating a visualization, the user can change the chart type.

[0303] like Figure 24M As shown, the generated chart can be temporarily maximized (without requiring the user to submit the visualization to the canvas). For example, as shown in the screenshot, the maximized window is overlaid on the canvas rather than as part of it, and can be eliminated by clicking elsewhere. In addition, the maximized window visualization includes a hover toolbar with two icons: (1) Add to Canvas, and (2) Add to Watchlist.

[0304] like Figure 24N-Figure 24O As shown, the chart generated from the chat drawer tab can be added to the main canvas of the visualization by either (1) dragging and placing it, or (2) clicking the "+" hover icon in the upper right corner of the chat visualization.

[0305] like Figure 24P As shown, the generated chart can be added to the "Watchlist," which is offered as a feature in applications like Oracle Analytics Cloud, where watchlist items are placed on the application's home screen. For example, as shown in the screenshot, the "Add to Watchlist" icon is the first of a group of three icons within the hover toolbar.

[0306] like Figure 24Q As shown, the system supports autocomplete within chat text input boxes.

[0307] like Figure 24R As shown, users can begin a sentence by selecting one of their previous sentences. For example, as shown in the screenshot, when the system places the active blinking cursor over the sentence text input box, it also pops up a list of previous sentences. Users can either select one, start typing directly, or click elsewhere to dismiss the pop-up.

[0308] like Figure 24S-Figure 24U As shown, for a given utterance, a chat response can include several curated visual options, such as Figure 24S-Figure 24U The carousel visualization shown. Figure 24S-Figure 24U As shown, the visualizations include a carousel that allows users to switch between different visualizations, such as a visualization showing city sales profits. Figure 24S ), showing a visualization of city sales ( Figure 24T ), and visualizations showing city profits ( Figure 24U ).

[0309] According to embodiments, the system and method may additionally provide functionality and capabilities that allow users to switch between datasets. This can be achieved, for example, through a dataset dropdown selector provided within the user interface.

[0310] According to embodiments, the system can also provide the ability to automatically "transform" the visualization type based on "edit actions"—for example, a map can be transformed into a bar chart based on the edit action taken (automatic type determination), or the visualization type can be automatically "transformed" based on the context of the chat experience or some unrelated statement by the user. For example, at the beginning of a bar chart of profits divided by product category, the user can say, "Add sales," in which case, considering that there are now two metric (numerical) columns, the system can switch to a scatter plot.

[0311] Figure 25 This is a flowchart of a method for providing a chat-to-visual user interface for use with a data analysis workbook assistant, according to an embodiment.

[0312] According to an embodiment, at 1701, the method may provide a computer including one or more microprocessors, wherein a data analysis system or environment is provided.

[0313] According to an embodiment, at 1702, the method can receive input, including one or more natural language (NL) expressions and instructions, via a user interface that allows users to interact with the system using a chat-like conversation at a data analytics environment, which is processed by a digital assistant of the data analytics system or environment.

[0314] According to an embodiment, at 1703, the method can generate data including parsed intents and entities based on the received input and its processing, and the search component can locate the dataset.

[0315] According to an embodiment, at 1704, the method can support complex follow-up interactions or questions related to previous responses and the processed data combination, wherein the resulting insights are incorporated into the visualization project.

[0316] According to various embodiments, the teachings herein can be implemented using one or more computers, computing devices, machines, or microprocessors (including one or more processors, memory, and / or computer-readable storage media programmed according to the teachings herein). Skilled programmers can readily prepare appropriate software code based on the teachings of this disclosure, as will be apparent to those skilled in the art of software.

[0317] In some embodiments, the teachings herein may include a computer program product, which is one or more nontransitory computer-readable storage media having instructions stored thereon / once that can be used to program a computer to perform any of the processing described herein. Examples of such storage media may include, but are not limited to, hard disk drives, solid disks, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, flash memory devices, or other types of storage media or devices suitable for nontransitory storage of instructions and / or data.

[0318] The foregoing description has been provided for illustrative and descriptive purposes. It is not intended to be exhaustive or to limit the scope of protection to the precise forms disclosed. Further modifications and variations will be apparent to those skilled in the art.

[0319] These embodiments were chosen and described in order to best explain the principles taught herein and their practical application, thereby enabling others skilled in the art to understand the various embodiments and modifications suitable for the particular intended use. The scope is intended to be defined by the following claims and their equivalents. < / dimension1> < / measure>

Claims

1. A system for providing a chat-to-visual user interface for use with a data analysis workbook assistant, comprising: A computer including one or more microprocessors, at which a data analysis system or environment is provided; The data analytics environment receives input via a user interface that allows users to interact with the system using a chat-like conversation. The input includes one or more natural language (NL) expressions and instructions, and the input is processed by a digital assistant of the data analytics system or environment. This includes generating data containing parsed intents and entities based on received input and its processing, and locating the dataset using a search component; and The system supports complex follow-up interactions or questions related to previous responses and the processed data combination, from which the resulting insights are incorporated into visualization projects.

2. The system as described in claim 1, in, Based on the relevant dataset, generate projects; and The generated project is received in the virtualization environment for rendering.

3. The system as described in claim 2, The generated projects are displayed via one or more graphical user interfaces that can be accessed by the data analytics environment.

4. The system of claim 1, wherein the data analysis system or environment is an Oracle Analytics Cloud (OAC) environment; and wherein the digital assistant system or environment is an Oracle Digital Assistant (ODA) environment.

5. The system of claim 1, wherein the data analysis system or environment includes a workbook assistant provided by or used with the data analysis environment to generate data visualizations associated with the dataset.

6. The system as described in claim 1, The received input is context-dependent; The received NL representation of the input is sent to a digital assistant, which provides natural language processing (NLP) of the NL representation and provides data indicating the parsed intent and entities; and The search component locates the most relevant dataset, which is then returned to the data visualization (DV) environment for rendering within the user interface.

7. The system of claim 1, wherein the data analysis system or environment and the digital assistant are provided or delivered as part of a cloud environment.

8. A method for providing a chat-to-visual user interface for use with a data analysis workbook assistant, comprising: Provide a computer including one or more microprocessors, at which a data analysis system or environment is provided; In a data analytics environment, input is received via a user interface that allows users to interact with the system using a chat-like conversation. The input includes one or more natural language (NL) expressions and instructions, and the input is processed by a digital assistant of the data analytics system or environment. Based on the received input and its processing, data including the parsed intent and entities is generated, and the dataset is located through the search component; as well as It supports complex follow-up interactions or questions related to previous responses and the processed data combination, where the resulting insights are incorporated into visualization projects.

9. The method of claim 8, in, Based on the relevant dataset, generate projects; and The generated project is received in the virtualization environment for rendering.

10. The method of claim 9, The generated projects are displayed via one or more graphical user interfaces that can be accessed by the data analytics environment.

11. The method of claim 8, wherein the data analysis system or environment is an Oracle Analytics Cloud (OAC) environment; and wherein the digital assistant system or environment is an Oracle Digital Assistant (ODA) environment.

12. The method of claim 8, wherein the data analysis system or environment includes a workbook assistant provided by or used with the data analysis environment to generate data visualizations associated with the dataset.

13. The method as described in claim 8, The received input is context-dependent; The received NL representation of the input is sent to a digital assistant, which provides natural language processing (NLP) of the NL representation and provides data indicating the parsed intent and entities; and The search component finds the most relevant dataset, which is then returned to the data visualization (DV) environment for rendering within the user interface.

14. The method of claim 8, wherein the data analytics system or environment and the digital assistant are provided or delivered as part of a cloud environment.

15. A non-transitory computer-readable storage medium comprising instructions stored thereon, the instructions, when read and executed by one or more computers, causing the one or more computers to perform a method comprising: Provide a data analysis system or environment at one or more of the computers; In a data analytics environment, input is received via a user interface that allows users to interact with the system using a chat-like conversation. The input includes one or more natural language (NL) expressions and instructions, and the input is processed by a digital assistant of the data analytics system or environment. Based on the received input and its processing, data including the parsed intent and entities is generated, and the dataset is located through the search component; as well as It supports complex follow-up interactions or questions related to previous responses and the processed data combination, where the resulting insights are incorporated into visualization projects.

16. The non-transitory computer-readable storage medium of claim 15, in, Based on the relevant dataset, generate projects; and The generated project is received in the virtualization environment for rendering.

17. The non-transitory computer-readable storage medium as claimed in claim 16, The generated projects are displayed via one or more graphical user interfaces that can be accessed by the data analytics environment.

18. The non-transitory computer-readable storage medium of claim 15, wherein the data analysis system or environment is an Oracle Analytics Cloud (OAC) environment; and wherein the digital assistant system or environment is an Oracle Digital Assistant (ODA) environment.

19. The non-transitory computer-readable storage medium of claim 15, wherein the data analysis system or environment includes a workbook assistant provided by or used with the data analysis environment to generate data visualizations associated with the dataset.

20. The non-transitory computer-readable storage medium as claimed in claim 15, The received input is context-dependent; The received NL representation of the input is sent to a digital assistant, which provides natural language processing (NLP) of the NL representation and provides data indicating the parsed intent and entities; and The search component finds the most relevant dataset, which is then returned to the data visualization (DV) environment for rendering within the user interface.