IP Library Granted Patent US 10,410,107
Granted Patent B2
US 10,410,107 · App. 15/353,834 · Granted Sep 10, 2019

Natural language platform for database system

Inventor: Eric Romero (Walnut Creek, CA)
Assignee: SALESFORCE.COM, INC.
G06N3/006G06F16/24522G06F21/31G06F21/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,410,107
App. No.
15/353,834
Granted
Sep 10, 2019
Kind
B2
Abstract

An artificial intelligence assistant (“chatbot”) operates within a multi-tenant database and allows users to interact with the underlying structured database through a natural language interface without using a standard structured query language or database interface. Users may interact with the chatbot via a chatroom and perform database queries using natural language expressions in the same manner as asking a person to perform the tasks. In addition, the chatbot may check user permissions and security parameters to determine if the user is permitted to access or alter data within the multi-tenant database.

Claims (32)

1. A system for processing a natural language query in a database system, comprising:

a hardware processor; and

a memory to store metadata associating different natural language phrases with structured data, including tables and columns, the memory further storing one or more stored sequences of instructions which, when executed by the processor, cause the processor to implement a natural language processor behind a database firewall to configure the natural language processor with full access to the structured data, the instructions comprising:

responsive to the natural language processor receiving a natural language query from a group chat session, parsing the natural language query to identify an address associated with the user, and accessing the metadata to identify the structured data associated with the address;

converting, by a query processor, an output from the natural language processor into a structured database query by:

identifying a first phrase in the natural language query associated with one of the tables in the structured data;

identifying a second phrase in the natural language query operating as a predicate for the first phrase;

reading the metadata in the database system to associate the predicate in the second phrase with an identified column in the table; and

generating the structured database query to reference the table identified in the first phrase, the predicate in the second phrase, and the column identified by the metadata;

submitting, by the query processor, the structured database query to the structured data associated with the user;

converting, by the query processor, a query result received from the database system into a natural language response;

identifying permissions for participants in the group chat session;

displaying the query result to all of the participants when the permissions for all of the participants are sufficient to view the results;

displaying the query result only to the participant sending the natural language query when permissions for the other participants in the group chat session are insufficient to view the results; and

not displaying the query result to any of the participants when the data access permissions for the participant sending the natural language query are insufficient to view the results.

2. The system of claim 1 , wherein the instructions further cause the processor to carry out the steps of generating the structured database query to filter content in the column identified by the metadata based on the predicate in the second phrase.

3. The system of claim 1 , wherein the instructions further cause the processor to carry out the steps of:

identifying datasets in the database system referenced in the natural language query; and

sending the query result from the structured database query to the user sending the natural language query when the permissions assigned to the user allow access the datasets.

4. The system of claim 1 , wherein the instructions further cause the processor to carry out the steps of:

performing a preliminary search in the database system based on the natural language query;

determining a sufficiency of the natural language query for constructing the structured database query based on the preliminary search;

generating a natural language response requesting additional user input when the natural language query is insufficient to construct the structured database query; and

using the additional user input to generate the structured database query.

5. The system of claim 1 , wherein the instructions further cause the processor to carry out the steps of:

identifying a keyword in the natural language query that does not match any field in the database system;

using the metadata to identify a field in the database system associated with the keyword; and

generating the structured database query to access the identified field.

6. The system of claim 1 , wherein the instructions further cause the processor to carry out the steps of:

identifying a third phrase in the natural language query associated with a mathematical operation; and

generating the structured database query to perform the mathematical operation identified in the third phrase.

7. The system of claim 1 , wherein the structured database query reads data from the database system, modifies data in the database system, or writes data to the database system.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2017
From: ROMERO, ERIC
To: SALESFORCE.COM, INC.
Reel/Frame 041621/0774 →
Continuity (2)
Provisional Application 62366749 · Jul 26, 2016
Related Publication 20180032576A1 · Feb 1, 2018
Cited By (34)
US 12,190,069 US 12,210,841 US 12,210,843 US 12,217,009 US 12,217,010 US 12,223,285 US 12,223,286 US 12,223,287 US 12,236,199 US 12,242,812 US 12,242,813 US 12,242,814 US 12,254,277 US 12,254,278 US 12,260,181 US 12,260,182 US 12,314,660 US 12,321,697 US 12,340,180 US 12,353,827 US 12,393,777 US 12,400,085 US 12,406,146 US 12,430,503 US 12,430,504 US 12,430,505 US 12,456,008 US 12,499,320 US 12,518,107 US 12,524,619 US 12,536,166 US 12,554,935 US 12,585,883 US 12,596,881