IP Library Granted Patent US 11,841,852
Granted Patent B2
US 11,841,852 · App. 17/147,982 · Granted Dec 12, 2023

Tenant specific and global pretagging for natural language queries

Inventors: Guillaume Jean Mathieu Kempf (San Francisco, CA); Marc Brette (Montbonnot-Saint-Martin, FR); Francisco Dellatorre Borges (Voorburg, NL); Qianqian Shi (Foster City, CA); Matthieu Michel Robin Landos (Grenoble, FR); Darya Brazouskaya (La Tronche, FR); Georgios Balikas (Grenoble, FR); Arvind Srikantan (San Francisco, CA); Mario Sergio Rodriguez (Santa Clara, CA)
Assignee: Salesforce, Inc.
G06F16/243G06F16/2455G06F16/285
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,841,852
App. No.
17/147,982
Granted
Dec 12, 2023
Kind
B2
Abstract

A database system may receive a natural language query that is associated with a tenant of a multi-tenant system. The natural language query may be parsed into a set of tokens, and the set of tokens may be tagged, using a tenant specific tagging model associated with the tenant, the set of tokens with at least one pre-configured data type identifier that is configured for the plurality of tenants. A global tagging model that supports the plurality of tenants of the multi-tenant system may tag the set of tokens with at least one category identifier. The global tagging model may use the natural language query and the pre-configured data type identifier to identify the at least one category identifier. The system may execute a database query on a database associated with the tenant using the at least one pre-configured data type identifier and the at least one category identifier.

Claims (57)

1. A method for data processing at a database system, comprising:

receiving, via a user interface, a natural language query associated with a tenant of a plurality of tenants supported by the database system, the natural language query being associated with a set of tokens;

tagging, using at least one tenant specific tagging model that is trained on data of the database system and specific to the tenant, at least one first token of the set of tokens with at least one pre-configured data type identifier that is configured for the plurality of tenants, the at least one pre-configured data type identifier corresponding to a data object type of a global data schema of the database system;

tagging, using a global tagging model that supports the plurality of tenants, at least one second token of the set of tokens with at least one category identifier, the global tagging model using the natural language query and the at least one pre-configured data type identifier to identify the at least one category identifier;

generating, using the global tagging model and using the at least one category identifier as input into the global tagging model, a set of semantic query trees, a semantic query tree including a set of nodes that are positioned based at least in part on the at least one pre-configured data type identifier for the at least one first token and the at least one category identifier for the at least one second token; and

executing a database query on a database associated with the tenant using one or more semantic query trees of the set of semantic query trees.

2. The method of claim 1 , wherein tagging using the at least one tenant specific tagging model comprises:

identifying a first pre-configured data type identifier using an object identifier model; and

identifying a second pre-configured data type identifier using a value identifier model that uses the first pre-configured data type identifier as input.

3. The method of claim 1 , further comprising:

generating, before tagging using the global tagging model, a set of tagging candidates based on the at least one pre-configured data type identifier; and

removing one or more tagging candidates from the set of tagging candidates based at least in part on dependencies between the at least one pre-configured data type identifier for each tagging candidate of the set of tagging candidates.

4. The method of claim 3 , further comprising:

ranking the set of tagging candidates based at least in part on each tagging candidate having a highest number of tokens that are associated with an identified pre-configured data type identifier, a lowest number of different pre-configured data type identifiers, a pre-configured data type identifier at an end of the tagging candidate, or a combination thereof.

5. The method of claim 3 , further comprising:

replacing at least one token of the set of tagging candidates with a corresponding pre-configured data type identifier corresponding to the at least one token.

6. The method of claim 1 , wherein generating the set of semantic query trees comprises:

generating the set of semantic query trees in a ranked order based at least in part on each semantic query tree of the set of semantic query trees having a number of tokens that are associated with an identified category identifier, a lowest number of different category identifiers, a highest root position of an identified pre-configured data type identifier, or a combination thereof.

7. The method of claim 1 , further comprising:

identifying one or more valid semantic query trees of the set of semantic query trees by comparing the at least one category identifier, the at least one pre-configured data type identifier, or both of a respective semantic query tree to values of the database, wherein the one or more valid semantic query trees are executed on the database.

8. The method of claim 1 , further comprising:

identifying, that a received query is the natural language query before tagging using the at least one tenant specific tagging model and the global tagging model.

9. The method of claim 1 , wherein the at least one first token and the at least one second token comprise different tokens of the set of tokens.

10. The method of claim 1 , wherein the global data schema comprises a plurality of data object type identifiers used by the plurality of tenants of the database system.

11. An apparatus for data processing at a database system, comprising:

a processor,

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive, via a user interface, a natural language query associated with a tenant of a plurality of tenants supported by the database system, the natural language query being associated with a set of tokens;

tag, using at least one tenant specific tagging model that is trained on data of the database system and specific to the tenant, at least one first token of the set of tokens with at least one pre-configured data type identifier that is configured for the plurality of tenants, the at least one pre-configured data type identifier corresponding to a data object type of a global data schema of the database system;

tag, using a global tagging model that supports the plurality of tenants, at least one second token of the set of tokens with at least one category identifier, the global tagging model using the natural language query and the at least one pre-configured data type identifier to identify the at least one category identifier;

generate, using the global tagging model and using the at least one category identifier as input into the global tagging model, a set of semantic query trees, a semantic query tree including a set of nodes that are positioned based at least in part on the at least one pre-configured data type identifier for the at least one first token and the at least one category identifier for the at least one second token; and

execute a database query on a database associated with the tenant using one or more semantic query trees of the set of semantic query trees.

12. The apparatus of claim 11 , wherein the instructions to tag using the at least one tenant specific tagging model are executable by the processor to cause the apparatus to:

identify a first pre-configured data type identifier using an object identifier model; and

identify a second pre-configured data type identifier using a value identifier model that uses the first pre-configured data type identifier as input.

13. The apparatus of claim 11 , wherein the instructions are further executable by the processor to cause the apparatus to:

generate, before tagging using the global tagging model, a set of tagging candidates based on the at least one pre-configured data type identifier; and

remove one or more tagging candidates from the set of tagging candidates based at least in part on dependencies between the at least one pre-configured data type identifier for each tagging candidate of the set of tagging candidates.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

rank the set of tagging candidates based at least in part on each tagging candidate having a highest number of tokens that are associated with an identified pre-configured data type identifier, a lowest number of different pre-configured data type identifiers, a pre-configured data type identifier at an end of the tagging candidate, or a combination thereof.

15. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

replace at least one token of the set of tagging candidates with a corresponding pre-configured data type identifier corresponding to the at least one token.

16. A non-transitory computer-readable medium storing code for data processing at a database system, the code comprising instructions executable by a processor to:

receive, via a user interface, a natural language query associated with a tenant of a plurality of tenants supported by the database system, the natural language query being associated with a set of tokens;

tag, using at least one tenant specific tagging model that is trained on data of the database system and specific to the tenant, at least one first token of the set of tokens with at least one pre-configured data type identifier that is configured for the plurality of tenants, the at least one pre-configured data type identifier corresponding to a data object type of a global data schema of the database system;

tag, using a global tagging model that supports the plurality of tenants, at least one second token of the set of tokens with at least one category identifier, the global tagging model using the natural language query and the at least one pre-configured data type identifier to identify the at least one category identifier;

generate, using the global tagging model and using the at least one category identifier as input into the global tagging model, a set of semantic query trees, a semantic query tree including a set of nodes that are positioned based at least in part on the at least one pre-configured data type identifier for the at least one first token and the at least one category identifier for the at least one second token; and

execute a database query on a database associated with the tenant using one or more semantic query trees of the set of semantic query trees.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions to tag using the at least one tenant specific tagging model are executable to:

identify a first pre-configured data type identifier using an object identifier model; and

identify a second pre-configured data type identifier using a value identifier model that uses the first pre-configured data type identifier as input.

18. The non-transitory computer-readable medium of claim 16 , wherein the instructions are further executable to:

generate, before tagging using the global tagging model, a set of tagging candidates based on the at least one pre-configured data type identifier; and

remove one or more tagging candidates from the set of tagging candidates based at least in part on dependencies between the at least one pre-configured data type identifier for each tagging candidate of the set of tagging candidates.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable to:

rank the set of tagging candidates based at least in part on each tagging candidate having a highest number of tokens that are associated with an identified pre-configured data type identifier, a lowest number of different pre-configured data type identifiers, a pre-configured data type identifier at an end of the tagging candidate, or a combination thereof.

Assignments (2)
CHANGE OF NAME Recorded May 24, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 063744/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: KEMPF, GUILLAUME JEAN MATHIEU; BRETTE, MARC; BORGES, FRANCISCO DELLATORRE; SHI, QIANQIAN; LANDOS, MATTHIEU MICHEL ROBIN; BRAZOUSKAYA, DARYA; BALIKAS, GEORGIOS; SRIKANTAN, ARVIND; RODRIGUEZ, MARIO SERGIO
To: SALESFORCE.COM, INC.
Reel/Frame 055038/0317 →
Priority Claims (1)
GR 20200100683 · Nov 17, 2020 · national
Continuity (1)
Related Publication 20220156251A1 · May 19, 2022