IP Library Granted Patent US 11,023,461
Granted Patent B2
US 11,023,461 · App. 16/249,725 · Granted Jun 1, 2021

Query translation

Inventors: Mikhail Rumiantsau (Menlo Park, CA); Alyaksandr Zaytsav (Santa Clara, CA); Alexey Zenovich (Santa Clara, CA); Aliaksei Vertsel (Santa Clara, CA)
Assignee: ServiceNow, Inc.
G06F16/24522G06F16/2246G06F40/253G06F40/30G10L15/26
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 11,023,461
App. No.
16/249,725
Granted
Jun 1, 2021
Kind
B2
Abstract

Translating a natural language search query into a query language includes receiving a natural language query for a database, processing the natural language query to generate a modified text input, generating an entity tree based on the modified text input, including assigning one or more semantic markers to one or more words or one or more groups of words within the modified text input, wherein each semantic tag denotes a semantic class for each respective word or group or words, and converting the entity tree into the query language associated with the first database.

Claims (48)

1. A system, comprising:

a network interface;

a processor communicatively coupled to the network interface; and

a memory component, accessible by the processor, and storing instructions that, when executed by the processor, cause the processor to:

receive, via the network interface, from a user device, a natural language query for a first database, a key identifying a second database that includes a plurality of user records containing respective database query language types associated with respective databases of respective users, and a token identifying (1) a source of the natural language query and (2) one or more access privileges associated with the source of the natural language query to the second database;

query the second database to identify a particular user record of the plurality of user records associated with the source based on the token, wherein the particular user record includes a particular database query language type associated with the first database;

process a text input of the natural language query to generate a modified text input;

generate an entity tree based on the modified text input, wherein generating the entity tree comprises assigning one or more semantic markers to one or more words or one or more groups of words within the modified text input, wherein each semantic marker of the one or more semantic markers denotes a semantic class for each respective word of the one or more words or each group of words of the one or more groups of words;

convert the entity tree into a particular database query language associated with the first database to generate a database query based on the particular database query language type in the particular user record;

execute the database query of the first database; and

transmit, via the network interface, one or more results of the database query to the user device.

2. The system of claim 1 , wherein the instructions cause the processor to output the database query, via the network interface, to the user device.

3. The system of claim 1 , wherein communication with the user device is encrypted.

4. The system of claim 1 , wherein the natural language query received from the user device comprises the text input.

5. The system of claim 1 , wherein the natural language query received from the user device comprises a voice message, wherein the instructions cause the processor to convert the voice message into the text input.

6. The system of claim 1 , wherein the instructions cause the processor to identify query elements in the modified text input and identify respective semantic classes for each respective word of the one or more words or each group of words of the one or more groups of words based on the one or more semantic markers and a set of grammar rules.

7. The system of claim 1 , wherein the instructions cause the processor to:

generate an object representing the modified text input, wherein the object comprises one or more respective entities for each respective word of the one or more words or each group of words of the one or more groups of words of the modified text input.

8. The system of claim 7 , wherein the instructions cause the processor to identify one or more relationships between the one or more respective entities in the object by applying a set of heuristic rules.

9. The system of claim 1 , wherein the instructions cause the processor to select a single semantic marker of the one or more semantic markers assigned to each respective word of the one or more words or each group of words of the one or more groups of words.

10. The system of claim 1 , wherein the system has a single-tenant architecture.

11. A method, comprising:

receiving, via a network interface, from a user device, a natural language query for a first database, a key identifying a second database that includes a plurality of user records comprising respective database query language types associated with respective databases of respective users, and a token identifying (1) a source of the natural language query and (2) one or more access privileges associated with the source of the natural language query to the second database;

querying the second database to identify a particular user record of the plurality of user records associated with the source based on the token, wherein the particular user record includes a particular database query language type associated with the first database;

pre-processing, via a processor, a text input of the natural language query to generate a modified text input;

generating an entity tree based on the modified text input, wherein generating the entity tree comprises assigning one or more semantic markers to one or more words or one or more groups of words within the modified text input, wherein each semantic marker of the one or more semantic markers denotes a semantic class for each respective word of the one or more words or each group of words of the one or more groups of words;

converting, via the processor, the entity tree into a particular database query language associated with the first database to generate a database query based on the particular database query language type in a particular user record;

executing the database query of the first database; and

transmitting, via the network interface, one or more results of the database query to the user device.

12. The method of claim 11 , comprising outputting the database query, via the network interface, to the user device.

13. The method of claim 11 , comprising:

identifying query elements in the modified text input;

identifying respective semantic classes for each respective word of the one or more words or each group of words of the one or more groups of words based on the one or more semantic markers and a set of grammar rules;

generating an object representing the modified text input, wherein the object comprises one or more respective entities for each respective word of the one or more words or each group of words of the one or more groups of words of the modified text input; and

identifying one or more relationships between the one or more respective entities in the object by applying a set of heuristic rules.

14. A tangible, non-transitory, computer readable storage medium, comprising instructions that, when executed by a processor, cause the processor to:

receive, via a network interface, from a user device, a natural language query for a first database, a key identifying a second database that includes a plurality of user records containing respective database query language types associated with respective databases of respective users, and a token identifying (1) a source of the natural language query and (2) one or more access privileges associated with the source of the natural language query to the second database;

query the second database to identify a particular user record of the plurality of user records associated with the source based on the token, wherein the particular user record includes a particular database query language type associated with the first database;

process a text input of the natural language query to generate a modified text input;

generate an entity tree based on the modified text input, wherein generating the entity tree comprises assigning one or more semantic markers to one or more words or one or more groups of words within the modified text input, wherein each semantic marker of the one or more semantic markers denotes a semantic class for each respective word of the one or more words or each group of words of the one or more groups of words;

convert the entity tree into a particular database query language associated with the first database to generate a database query based on the particular database query language type in the particular user record;

execute the database query of the first database; and

transmit, via the network interface, one or more results of the database query to the user device.

15. The tangible, non-transitory, computer readable storage medium of claim 14 , wherein the instructions cause the processor to output the database query, via the network interface, to the user device.

16. The tangible, non-transitory, computer readable storage medium of claim 14 , wherein the instructions cause the processor to:

identify query elements in the modified text input; and

identify respective semantic classes for each respective word of the one or more words or each group of words of the one or more groups of words based on the one or more semantic markers and a set of grammar rules.

17. The tangible, non-transitory, computer readable storage medium of claim 14 , wherein the instructions cause the processor to generate an object representing the modified text input, wherein the object comprises one or more respective entities for each respective word of the one or more words or each group of words of the one or more groups of words of the modified text input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2019
From: RUMIANTSAU, MIKHAIL; ZAYTSAV, ALYAKSANDR; ZENOVICH, ALEXEY; VERTSEL, ALAIKSEI
To: SERVICENOW, INC.
Reel/Frame 048053/0900 →
Continuity (2)
Provisional Application 62619654 · Jan 19, 2018
Related Publication 20190243831A1 · Aug 8, 2019
Cited By (5)
US 12,332,878 US 12,332,885 US 12,412,034 US 12,511,282 US 12,524,401