IP Library Granted Patent US 11,809,468
Granted Patent B2
US 11,809,468 · App. 18/153,754 · Granted Nov 7, 2023

Phrase indexing

Inventors: Archit Bansal (Cupertino, CA); Ben Limonchik (Menlo Park, CA); Rakesh Kothari (San Jose, CA); Manikanta Venkata Rahul Balakavi (Mountain View, CA)
Assignee: ThoughtSpot, Inc.
G06F16/313G06F16/31G06F16/338G06F16/3344
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,809,468
App. No.
18/153,754
Granted
Nov 7, 2023
Kind
B2
Abstract

Intent-resolution using a phrase index may include obtaining data expressing a usage intent, the data expressing the usage intent including an unresolved data portion, identifying a phrase fragment based on the data expressing the usage intent and a defined phrase pattern, the phrase fragment including the unresolved data portion, identifying, by a processor, an indexed phrase as by searching a phrase index based on the phrase fragment, wherein the indexed phrase at least partially matches the phrase fragment in accordance with the defined phrase pattern, in response to identifying the indexed phrase, obtaining a resolved request representing the data expressing the usage intent in accordance with the indexed phrase, generating a data query in accordance with the resolved request and a defined structured query language, obtaining results data responsive to execution of the data query by a database that implements the defined structured query language, and outputting the results data.

Claims (71)

1. A method comprising:

obtaining data expressing a usage intent, the data expressing the usage intent including an unresolved data portion;

identifying a phrase fragment based on the data expressing the usage intent and a defined phrase pattern, the phrase fragment including the unresolved data portion;

identifying, by a processor, an indexed phrase by searching a phrase index based on the phrase fragment, wherein the indexed phrase at least partially matches the phrase fragment in accordance with the defined phrase pattern;

in response to identifying the indexed phrase, obtaining a resolved request representing the data expressing the usage intent in accordance with the indexed phrase;

in response to obtaining the resolved request, generating a data query in accordance with the resolved request and a defined structured query language;

obtaining results data responsive to execution of the data query by a database that implements the defined structured query language; and

outputting the results data for presentation to a user as responsive to the data expressing the usage intent.

2. The method of claim 1 , wherein identifying the indexed phrase includes identifying a plurality of indexed phrases as a plurality of candidate phrases respectively at least partially matching the phrase fragment in accordance with the defined phrase pattern.

3. The method of claim 1 , wherein identifying the indexed phrase includes:

in response to a determination that the phrase index omits the indexed phrase, generating the indexed phrase by indexing the phrase fragment in the phrase index.

4. The method of claim 1 , wherein:

the data expressing the usage intent includes string data indicating the unresolved data portion; and

the phrase fragment omits data portions other than the unresolved data portion.

5. The method of claim 1 , wherein the phrase fragment includes a token or an ordered sequence of tokens preceding the unresolved data portion.

6. The method of claim 5 , wherein the data expressing the usage intent includes string data indicating the unresolved data portion.

7. The method of claim 5 , wherein the data expressing the usage intent omits string data indicating the unresolved data portion.

8. The method of claim 1 , wherein the indexed phrase is a previously indexed phrase associated with the user.

9. The method of claim 1 , wherein the indexed phrase is a previously indexed phrase associated with an organization wherein the user is associated with the organization.

10. The method of claim 1 , further comprising:

identifying a candidate token by traversing a token index based on the phrase fragment;

weighting the candidate token to obtain a weighted candidate token;

include the weighted candidate token in unsorted candidate resolutions;

weighting the indexed phrase to obtain a weighted candidate phrase;

include the weighted candidate phrase in the unsorted candidate resolutions; and

sorting the unsorted candidate resolutions to obtain sorted candidate resolutions;

wherein obtaining the resolved request includes using a sequentially first candidate resolution from the sorted candidate resolutions to obtain the resolved request.

11. A low-latency database analysis system comprising:

a system access interface unit configured to generate data expressing a usage intent, the data expressing the usage intent indicating an unresolved data portion;

a phrase index; and

a relational search unit that executes instructions stored on a memory of the low-latency database analysis system to:

obtain the data expressing the usage intent from the system access interface unit;

identify a phrase fragment based on the data expressing the usage intent and a defined phrase pattern, the phrase fragment including the unresolved data portion;

access an indexed phrase, wherein, to access the indexed phrase, the relational search unit executes the instruction so search the phrase index based on the phrase fragment, wherein the indexed phrase at least partially matches the phrase fragment in accordance with the defined phrase pattern;

in response to the indexed phrase, obtain a resolved request that represents the data expressing the usage intent in accordance with the indexed phrase;

in response to the resolved request, generate a data query in accordance with the resolved request and a defined structured query language;

obtain results data responsive to execution of the data query by a database that implements the defined structured query language; and

output the results data for presentation to a user as responsive to the data expressing the usage intent.

12. The system of claim 11 , wherein to identify the indexed phrase the relational search unit executes the instructions to identify a plurality of indexed phrases as a plurality of candidate phrases respectively at least partially matching the phrase fragment in accordance with the defined phrase pattern.

13. The system of claim 11 , wherein to access the indexed phrase the relational search unit executes the instructions to:

in response to a determination that the phrase index omits the indexed phrase, index the phrase fragment in the phrase index to generate the indexed phrase.

14. The system of claim 11 , wherein:

the data expressing the usage intent includes string data indicating the unresolved data portion; and

the phrase fragment omits data portions other than the unresolved data portion.

15. The system of claim 11 , wherein the indexed phrase is a previously indexed phrase associated with the user.

16. The system of claim 11 , wherein the indexed phrase is a previously indexed phrase associated with an organization wherein the user is associated with the organization.

17. The system of claim 11 , wherein the relational search unit executes the instructions to:

identify a candidate token, wherein, to identify the candidate token, the relational search unit executes the instructions to traverse a token index based on the phrase fragment;

weight the candidate token to obtain a weighted candidate token;

include the weighted candidate token in unsorted candidate resolutions;

weight the indexed phrase to obtain a weighted candidate phrase;

include the weighted candidate phrase in the unsorted candidate resolutions; and

sort the unsorted candidate resolutions to obtain sorted candidate resolutions;

wherein, to obtain the resolved request, the relational search unit executes the instructions to use a sequentially first candidate resolution from the sorted candidate resolutions to obtain the resolved request.

18. A method comprising:

obtaining first data expressing a first usage intent, the first data expressing the first usage intent including a first unresolved data portion;

identifying a first phrase fragment based on the first data expressing the first usage intent and a defined phrase pattern, the first phrase fragment including the first unresolved data portion;

in response to a determination that a phrase index omits an indexed phrase matching the first phrase fragment in accordance with the defined phrase pattern, indexing the first phrase fragment in the phrase index;

subsequent to indexing the first phrase fragment, obtaining second data expressing a second usage intent, the second data expressing the second usage intent including a second unresolved data portion;

identifying a second phrase fragment based on the second data expressing the second usage intent and the defined phrase pattern, the second phrase fragment including the second unresolved data portion;

accessing, by a processor, the indexed phrase by searching the phrase index based on the second phrase fragment, wherein the indexed phrase at least partially matches the second phrase fragment in accordance with the defined phrase pattern; and

in response to accessing the indexed phrase, obtaining a resolved request representing the second data expressing the usage intent in accordance with the indexed phrase;

in response to obtaining the resolved request, generating a data query in accordance with the resolved request and a defined structured query language;

obtaining results data responsive to execution of the data query by a database that implements the defined structured query language; and

outputting the results data for presentation to a user as responsive to the second data expressing the usage intent.

19. The method of claim 18 , wherein:

obtaining the first data expressing the first usage intent includes obtaining the first data expressing the first usage intent in response to first user input associated with the first user; and

obtaining the second data expressing the second usage intent includes obtaining the second data expressing the second usage intent in response to second user input associated with the first user.

20. The method of claim 18 , wherein:

obtaining the first data expressing the first usage intent includes obtaining the first data expressing the first usage intent in response to first user input associated with a second user associated with an organization; and

obtaining the second data expressing the second usage intent includes obtaining the second data expressing the second usage intent in response to second user input associated with the first user, wherein the first user is associated with the organization.

Assignments (2)
SECURITY INTEREST Recorded Mar 7, 2025
From: THOUGHTSPOT, INC.; THOUGHTSPOT, LLC
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 070442/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: BANSAL, ARCHIT; LIMONCHIK, BEN; KOTHARI, RAKESH; BALAKAVI, RAHUL MANIKANTA
To: THOUGHTSPOT, INC.
Reel/Frame 062362/0488 →
Continuity (3)
Continuation 17218318 · Mar 31, 2021
Continuation 16525406 · Jul 29, 2019
Related Publication 20230169099A1 · Jun 1, 2023