# US 12,118,017 B1 · Natural language data analysis, visualization and editing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,017 B1
- Document ID: US12118017B1
- Status: Granted
- Kind: B1
- Application number: 18/628,753
- Filed: 2024-04-07
- Granted: 2024-10-15
- Earliest claimed: 2023-06-06
- Assignees: Flowfinity Wireless, Inc.
- Applicants: Flowfinity Wireless, Inc.
- Inventors: Olga Sboychakova; Dmitry Mikhailov
- Web page: https://patentgrep.com/patent/US12118017B1

## CPC

- G06F 16/243: {Natural language query formulation}
- G06F 16/26: Visual data mining; Browsing structured data
- G06F 40/20: Natural language analysis (semantic analysis of natural language G06F40/30)
- G06Q 10/067: Enterprise or organisation modelling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

The present invention may be embodied in a natural language processing system that conducts user interaction to identify and refine requests for data analyses, and automatically conducts data mining and prepares data visualizations in response to natural language queries. Similarly natural language processing system can be utilized for updating business system data in response to natural language requests. The system greatly improves the ease of use, intuitiveness, variety, and responsiveness of the data analytics system by converting natural language requests into requests for data analyses. This allows a much wider range of users to conduct commercially relevant data analytics without relying on specialists in the field data analytics specialists and at much lower cost than the conventional approach.

## Claims

### Claim 1

A method comprising:
configuring a natural language model with natural language descriptions relating to a business logic application comprising a data structure;
receiving a natural language request from a human user;
the natural language model converting the natural language request to a computer language statement based on the natural language descriptions relating to the business logic application;
executing the computer language statement on the data structure to obtain a result comprising data retrieved from the business logic application responsive to the natural language request;
using the natural language model to generate natural language text describing the result based on the natural language request and metadata in the business logic application;
displaying the natural language text describing the result to the human user.

### Claim 2 (depends on 1)

The method of claim 1, wherein the natural language descriptions relating to the business logic application comprise metadata obtained from the business logic application.

### Claim 3 (depends on 2)

The method of claim 2, wherein the natural language text describing the result is based at least in part on the metadata obtained from the business logic application.

### Claim 4 (depends on 2)

The method of claim 2, wherein configuring the natural language model with the natural language descriptions relating to the business logic application further comprises:
configuring the business logic application with metadata comprising natural language descriptions of data items in the business logic application;
configuring the natural language model with the metadata comprising the natural language descriptions of the data items in the business logic application;
configuring the natural language model with natural language description of metadata elements from the business logic application.

### Claim 5 (depends on 1)

The method of claim 1, wherein displaying to the human user the text version of the result generated by the natural language model further comprises:
using the natural language model to generate a natural language description of the computer language statement based on the metadata;
displaying to the human user the natural language description of the computer language statement alongside the natural language text describing the result generated by the language model.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
prompting the user to accept or reject the result;
in response to a rejection of the result, converting the natural language request to an alternative computer language statement, executing the alternate computer language statement on the data structure to obtain an alternate result comprising alternate data retrieved from the business logic application responsive to the natural language request, and displaying the alternate result to the human user.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
receiving a corrective natural language request from a human user describing corrections to be applied to the result;
the natural language model converting the corrective natural language request to an updated computer language statement based on the natural language descriptions relating to the business logic application;
executing the updated computer language statement on the data structure to obtain an updated result comprising updated data responsive to the corrective natural language request;
using the natural language model to generate updated natural language text describing the updated result based on the corrective natural language request and the metadata in the business logic application;
displaying the updated result and the updated natural language text to the human user.

### Claim 8

A method comprising:
configuring a business logic application with metadata comprising natural language descriptions of individual data fields and groups of data fields in a data structure;
configuring a natural language model with natural language descriptions correlated with the individual data fields and groups of data fields in the data structure;
receiving a natural language request from a human user;
the natural language model converting the natural language request to a computer language statement based on the natural language descriptions configured in or derived from the natural language model and the metadata configured in or derived from the business logic application;
executing the computer language statement on the data structure to obtain a result comprising data retrieved from the business logic application responsive to the natural language request;
displaying the result to the human.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
using the natural language model to generate a natural language text describing the result;
displaying the natural language text describing the result to the human user.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
prompting the user to accept or reject the result;
in response to a rejection of the result, converting the natural language request to an alternative computer language statement, executing the alternate computer language statement on the data structure to obtain an alternate result comprising alternate data retrieved from the business logic application responsive to the natural language request, and displaying the alternate result to the human user.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
receiving a corrective natural language request from a human user describing corrections to be applied to the result;
the natural language model converting the corrective natural language request to an updated computer language statement based on the natural language descriptions relating to the business logic application;
executing the updated computer language statement on the data structure to obtain an updated result comprising updated data responsive to the corrective natural language request;
using the natural language model to generate updated natural language text describing the updated result based on the corrective natural language request and the metadata in the business logic application;
displaying the updated result and the updated natural language text to the human user.

### Claim 12

A method comprising:
configuring a natural language model with the metadata and natural language description of metadata elements from a business logic application;
receiving a natural language request from a human user;
converting the natural language request to a computer language statement based on the metadata;
executing the computer language statement on the data structure to obtain a result comprising data responsive to the natural language request;
the natural language model inferring a preferred presentation format from the natural language request;
displaying to the human user the data visualization in the preferred presentation format inferred by the natural language model.

### Claim 13 (depends on 12)

The method of claim 12, further comprising ranking and displaying to the human user alternative data visualizations of the data responsive to the natural language request in different ranked-choice formats.

### Claim 14 (depends on 12)

The method of claim 12, further comprising receiving a natural language data modification request, performing a data modification on the data structure in response to the data modification request, and displaying to the human user a status of the data modification.

### Claim 15 (depends on 12)

The method of claim 12, further comprising receiving a natural language request, interpreting the natural language requests as a visualization modification, revising a selected data visualization, and presenting the revised data visualization to the human user.

### Claim 16 (depends on 12)

The method of claim 12, wherein converting the natural language request further comprises automatically translating the natural language commands into computer-executable SQL commands.

### Claim 17 (depends on 14)

The method of claim 14 wherein:
the metadata further comprises a list of operation names associated with a programming interface of the business logic application and instructions for inferring a selected operation from the list of operation names based on the data modification request;
the data modification request converted by the natural language model further comprises the selected operation; and
executing the computer language statement comprises:
extracting a filter clause from the data modification request,
creating a subset of records of the data structure using the programming interface of the business logic application and the filter clause; and
invoking the selected operation for the subset of records.

### Claim 18 (depends on 12)

The method of claim 12, wherein the computer language statement comprises an SQL statement, and the metadata comprises SQL table and column metadata.

### Claim 19 (depends on 12)

The method of claim 12, wherein the data structure further comprises a virtual data storage structure that virtually joins data metrics of entities connected to the business analysis system to execute the structured language commands obtained from the natural processing system.

### Claim 20 (depends on 19)

The method of claim 19, wherein the entities connected to the business analysis system are IoT devices.

### Claim 21 (depends on 12)

The method of claim 12, further comprising:
preparing alternative data visualizations of the data responsive to the natural language request;
presenting the alternative data visualizations of the result to the human user;
exchanging natural language communications with the human user to obtain feedback regarding a selected data visualization from the alternative data visualizations;
modifying the selected data visualization based on the feedback;
presenting the modified data visualization to the user.

### Claim 22 (depends on 12)

The method of claim 12, further comprising:
exchanging natural language communications with the human user to identify missing data responsive to the data analysis request;
conducting additional data mining to obtain the missing data;
modifying the selected data visualization to include the missing data;
presenting the modified data visualization including the missing data to the user.

### Claim 23 (depends on 12)

The method of claim 12, further comprising:
exchanging natural language communications with the human user to identify updated data responsive to the data analysis request;
conducting additional data mining to obtain the updated data;
modifying the selected data visualization to include the updated data;
presenting the modified data visualization including the updated data to the user.

### Claim 24 (depends on 12)

The method of claim 12, further comprising:
conducting one or more iterative prompt-and-response natural language conversations with a human user to identify a multi-parameter data analysis request;
conducting data mining operations associated with the multi-parameter data analysis request to obtain a data mining result comprising multiple parameters responsive to the multi-parameter data analysis request;
determining a common range dimension for the multiple parameters;
aligning the multiple parameters on the common range dimension;
formatting a visualization of the multiple parameters;
presenting the visualization of the multiple parameters to the user.

### Claim 25 (depends on 12)

The method of claim 12, wherein configuring the natural language model with the metadata and natural language description of metadata elements further comprises:
configuring business logic application with metadata comprising natural language descriptions of the data items in the business logic application;
configuring a natural language model with the metadata and natural language description of metadata elements from the business logic application.

### Claim 26

A method comprising:
configuring a natural language model with metadata and natural language description of metadata elements from a business logic application;
receiving a natural language request from a human user;
converting the natural language request to a computer language statement based on the metadata;
executing the computer language statement on the data structure to obtain a result comprising data responsive to the natural language request;
ranking and displaying to the human user alternative data visualizations of the data responsive to the natural language request in different ranked-choice formats.

### Claim 27 (depends on 26)

The method of claim 26, wherein configuring the natural language model with the metadata and natural language description of metadata elements further comprises:
configuring the business logic application with metadata comprising natural language descriptions of the data items in the business logic application;
configuring the natural language model with the metadata and natural language description of metadata elements from the business logic application.

### Claim 28 (depends on 26)

The method of claim 26, further comprising:
conducting one or more iterative prompt-and-response natural language conversations with a human user to identify a multi-parameter data analysis request;
conducting data mining operations associated with the multi-parameter data analysis command to obtain a data mining result comprising multiple parameters responsive to the multi-parameter data analysis request;
determining a common range dimension for the multiple parameters;
aligning the multiple parameters on the common range dimension;
formatting a visualization of the multiple parameters;
presenting the visualization of the multiple parameters to the user.

### Claim 29 (depends on 26)

The method of claim 26, further comprising receiving a natural language data modification request, performing a data modification on the data structure in response to the data modification request, and displaying to the human user a status of the data modification.

### Claim 30 (depends on 26)

The method of claim 26, further comprising receiving a natural language request, interpreting the natural language requests as a visualization modification, and revising a selected data visualization, and presenting the revised data visualization to the human user.
