IP Library Granted Patent US 12,242,486
Granted Patent B2
US 12,242,486 · App. 18/529,002 · Granted Mar 4, 2025

Phrase translation for a low-latency database analysis system

Inventors: Pulkit Arora (Bengaluru, IN); Ramnik Jain (Karnataka, IN); Rakesh Kothari (San Jose, CA); Archit Bansal (Cupertino, CA); Vishal Kasera (San Francisco, CA)
Assignee: ThoughtSpot, Inc.
G06F16/24564G06F16/2228G06F16/242G06F16/248
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 12,242,486
App. No.
18/529,002
Granted
Mar 4, 2025
Kind
B2
Abstract

Operating a low-latency database analysis system with phrase translation may include obtaining a locale-specific phrase localization rule and a canonical phrase localization rule for a phrase, generating a locale-specific index and a locale-specific finite state machine for the locale using the localization definition data and a canonical finite state machine, generating a resolved-request by obtaining a locale-specific token representing locale-specific input data by traversing the locale-specific index, obtaining a canonical token associated with locale-specific token, obtaining a locale-specific phrase by traversing the locale-specific finite state machine, obtaining a canonical phrase corresponding to the locale-specific phrase, the canonical phrase including the canonical token, generate a data-query based on the canonical phrase, obtaining results data responsive to the data expressing the usage intent by executing a query corresponding to the data-query by an in-memory database of the low-latency database analysis system, and outputting the results data for presentation to a user.

Claims (92)

1. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

obtaining localization definition data for a locale other than a canonical locale, the localization definition data including a locale-specific phrase localization rule for a phrase and a canonical phrase localization rule for the phrase;

generating a locale-specific index for the locale using the localization definition data;

in response to obtaining the localization definition data, generating a locale-specific finite state machine for the locale using the localization definition data, the locale-specific index, and a canonical finite state machine;

obtaining, in the low-latency database analysis system, data expressing a usage intent with respect to the low-latency database analysis system, the data expressing the usage intent including locale-specific input data;

in response to obtaining the data expressing the usage intent, generating a resolved-request by:

obtaining a locale-specific token representing the locale-specific input data by traversing the locale-specific index, wherein obtaining the locale-specific token includes obtaining a canonical token associated with locale-specific token;

in response to obtaining the locale-specific token, obtaining a locale-specific phrase by traversing the locale-specific finite state machine;

in response to identifying the locale-specific phrase, obtaining a canonical phrase corresponding to the locale-specific phrase, the canonical phrase including the canonical token;

generating a data-query based on the canonical phrase;

obtaining results data responsive to the data expressing the usage intent by executing a query corresponding to the data-query by an in-memory database of the low-latency database analysis system; and

outputting the results data for presentation to a user.

2. The non-transitory computer-readable storage medium of claim 1 , wherein obtaining the localization definition data includes:

generating the canonical phrase localization rule using the canonical finite state machine, wherein the canonical phrase localization rule includes a phrase localization rule identifier that uniquely identifies the phrase in the low-latency database analysis system; and

generating a portion of the locale-specific phrase localization rule using the canonical finite state machine, wherein the portion of the locale-specific phrase localization rule includes the phrase localization rule identifier.

3. The non-transitory computer-readable storage medium of claim 2 , wherein obtaining the localization definition data includes:

storing the canonical phrase localization rule in a canonical phrase localization file; and

storing the portion of the locale-specific phrase localization rule in a locale-specific phrase localization file.

4. The non-transitory computer-readable storage medium of claim 3 , wherein obtaining the localization definition data includes:

reading the canonical phrase localization rule from the canonical phrase localization file; and

reading the locale-specific phrase localization rule from the locale-specific phrase localization file.

5. The non-transitory computer-readable storage medium of claim 1 , wherein generating the locale-specific finite state machine includes:

identifying the locale-specific phrase localization rule from the localization definition data, wherein the locale-specific phrase localization rule includes a phrase localization rule identifier and a locale-specific phrase-pattern corresponding to the local-specific phrase, wherein the phrase localization rule identifier uniquely identifies the phrase in the low-latency database analysis system;

identifying the canonical phrase localization rule from the localization definition data using the phrase localization rule identifier, wherein the canonical phrase localization rule includes the phrase localization rule identifier and a canonical phrase-pattern corresponding to the phrase;

traversing the canonical finite state machine using the canonical phrase-pattern to identify a state of the canonical finite state machine corresponding to the canonical phrase-pattern, wherein the canonical finite state machine includes a phrase property for the phrase associated with the state of the canonical finite state machine corresponding to the canonical phrase-pattern;

obtaining the phrase property from the canonical finite state machine;

generating a state of the locale-specific finite state machine corresponding to the locale-specific phrase-pattern; and

including the phrase property in the locale-specific finite state machine in association with the state of the locale-specific finite state machine corresponding to the locale-specific phrase-pattern.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the locale-specific input data includes unresolved character string input data.

7. The non-transitory computer-readable storage medium of claim 1 , wherein the locale-specific input data includes unresolved input event data for a data input event, wherein a defined combination of data input events is associated with a locale-specific input character.

8. The non-transitory computer-readable storage medium of claim 1 , wherein the data expressing the usage intent includes data identifying the locale, and wherein generating the resolved-request includes identifying the locale-specific finite state machine using the data identifying the locale.

9. The non-transitory computer-readable storage medium of claim 1 , wherein obtaining the locale-specific phrase includes:

traversing the locale-specific finite state machine to identify a transition of the locale-specific finite state machine corresponding to the locale-specific token;

obtaining a phrase property from the locale-specific finite state machine, the phrase property associated with the transition of the locale-specific finite state machine corresponding to the locale-specific token; and

identifying the locale-specific phrase in response to the phrase property.

10. The non-transitory computer-readable storage medium of claim 9 , wherein obtaining the canonical phrase includes:

identifying the locale-specific phrase localization rule from the localization definition data, wherein the locale-specific phrase localization rule includes a locale-specific phrase-pattern corresponding to the locale-specific phrase and a phrase localization rule identifier that uniquely identifies the phrase in the low-latency database analysis system; and

identifying the canonical phrase localization rule from the localization definition data using the phrase localization rule identifier, wherein the canonical phrase localization rule includes the phrase localization rule identifier and a canonical phrase-pattern corresponding to the canonical phrase.

11. The non-transitory computer-readable storage medium of claim 10 , wherein:

the locale-specific input data includes a value;

generating the resolved-request includes tokenizing the value to identify a value token representing the value, wherein the value token is a value token type token;

identifying the locale-specific phrase localization rule such that the locale-specific phrase-pattern includes a value token type identifier that indicates the value token type and the locale-specific phrase-pattern omits a value token corresponding to the value token type;

identifying the canonical phrase localization rule such that the canonical phrase-pattern includes the value token type identifier that indicates the value token type and the canonical phrase-pattern omits a value token corresponding to the value token type; and

obtaining the canonical phrase includes including the value token in the canonical phrase and omitting the value token type identifier from the canonical phrase.

12. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

obtaining localization definition data for a locale other than a canonical locale, the localization definition data including a locale-specific phrase localization rule for a phrase and a canonical phrase localization rule for the phrase;

in response to obtaining the localization definition data:

generating a locale-specific index for locale the using the localization definition data; and

generating a locale-specific finite state machine for the locale using the localization definition data and a canonical finite state machine;

generating a resolved-request in response to receiving, in the low-latency database analysis system, data expressing a usage intent with respect to the low-latency database analysis system, the data expressing the usage intent including locale-specific input data;

obtaining results data responsive to the data expressing the usage intent by executing a query corresponding to the resolved-request by an in-memory database of the low-latency database analysis system; and

outputting the results data for presentation to a user.

13. The non-transitory computer-readable storage medium of claim 12 , wherein obtaining the localization definition data includes:

generating the canonical phrase localization rule using the canonical finite state machine, wherein the canonical phrase localization rule includes a phrase localization rule identifier that uniquely identifies the phrase in the low-latency database analysis system; and

generating a portion of the locale-specific phrase localization rule using the canonical finite state machine, wherein the portion of the locale-specific phrase localization rule includes the phrase localization rule identifier.

14. The non-transitory computer-readable storage medium of claim 13 , wherein obtaining the localization definition data includes:

storing the canonical phrase localization rule in a canonical phrase localization file; and

storing the portion of the locale-specific phrase localization rule in a locale-specific phrase localization file.

15. The non-transitory computer-readable storage medium of claim 14 , wherein obtaining the localization definition data includes:

reading the canonical phrase localization rule from the canonical phrase localization file; and

reading the locale-specific phrase localization rule from the locale-specific phrase localization file.

16. The non-transitory computer-readable storage medium of claim 12 , wherein generating the locale-specific finite state machine includes:

identifying the locale-specific phrase localization rule from the localization definition data, wherein the locale-specific phrase localization rule includes a phrase localization rule identifier and a locale-specific phrase-pattern corresponding to the local-specific phrase, wherein the phrase localization rule identifier uniquely identifies the phrase in the low-latency database analysis system;

identifying the canonical phrase localization rule from the localization definition data using the phrase localization rule identifier, wherein the canonical phrase localization rule includes the phrase localization rule identifier and a canonical phrase-pattern corresponding to the phrase;

traversing the canonical finite state machine using the canonical phrase-pattern to identify a state of the canonical finite state machine corresponding to the canonical phrase-pattern, wherein the canonical finite state machine includes a phrase property for the phrase associated with the state of the canonical finite state machine corresponding to the canonical phrase-pattern;

obtaining the phrase property from the canonical finite state machine;

generating a state of the locale-specific finite state machine corresponding to the locale-specific phrase-pattern; and

including the phrase property in the locale-specific finite state machine in association with the state of the locale-specific finite state machine corresponding to the locale-specific phrase-pattern.

17. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

obtaining, in the low-latency database analysis system, data expressing a usage intent with respect to the low-latency database analysis system, the data expressing the usage intent including locale-specific input data for a locale other than a canonical locale;

in response to obtaining the data expressing the usage intent, generating a resolved-request by:

obtaining a locale-specific finite state machine for the locale;

obtaining a locale-specific index for the locale;

obtaining a locale-specific token representing the locale-specific input data by traversing the locale-specific index, wherein obtaining the locale-specific token includes obtaining a canonical token associated with locale-specific token;

in response to obtaining the locale-specific token, obtaining a locale-specific phrase by traversing the locale-specific finite state machine;

in response to identifying the locale-specific phrase, obtaining a canonical phrase corresponding to the locale-specific phrase, the canonical phrase including the canonical token;

generating a data-query based on the canonical phrase;

obtaining results data responsive to the data expressing the usage intent by executing a query corresponding to the data-query by an in-memory database of the low-latency database analysis system; and

outputting the results data for presentation to a user.

18. The non-transitory computer-readable storage medium of claim 17 , wherein obtaining the locale-specific phrase includes:

traversing the locale-specific finite state machine to identify a state of the locale-specific finite state machine corresponding to the locale-specific token;

obtaining a phrase property from the locale-specific finite state machine, the phrase property associated with the state of the locale-specific finite state machine corresponding to the locale-specific token; and

identifying the locale-specific phrase in response to the phrase property.

19. The non-transitory computer-readable storage medium of claim 18 , wherein obtaining the canonical phrase includes:

identifying the locale-specific phrase localization rule from the localization definition data, wherein the locale-specific phrase localization rule includes a locale-specific phrase-pattern corresponding to the locale-specific phrase and a phrase localization rule identifier that uniquely identifies the phrase in the low-latency database analysis system; and

identifying the canonical phrase localization rule from the localization definition data using the phrase localization rule identifier, wherein the canonical phrase localization rule includes the phrase localization rule identifier and a canonical phrase-pattern corresponding to the canonical phrase.

20. The non-transitory computer-readable storage medium of claim 19 , wherein:

the locale-specific input data includes a value;

generating the resolved-request includes tokenizing the value to identify a value token representing the value, wherein the value token is a value token type token;

identifying the locale-specific phrase localization rule such that the locale-specific phrase-pattern includes a value token type identifier that indicates the value token type and the locale-specific phrase-pattern omits a value token corresponding to the value token type;

identifying the canonical phrase localization rule such that the canonical phrase-pattern includes the value token type identifier that indicates the value token type and the canonical phrase-pattern omits a value token corresponding to the value token type; and

obtaining the canonical phrase includes including the value token in the canonical phrase and omitting the value token type identifier from the canonical phrase.

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 Dec 5, 2023
From: ARORA, PULKIT; JAIN, RAMNIK; KOTHARI, RAKESH; BANSAL, ARCHIT; KASERA, VISHAL
To: THOUGHTSPOT, INC.
Reel/Frame 065762/0472 →
Continuity (4)
Continuation 18075551 · Dec 6, 2022
Continuation 17225349 · Apr 8, 2021
Provisional Application 63007449 · Apr 9, 2020
Related Publication 20240119054A1 · Apr 11, 2024
References Cited (61)
US 7962532B1 · Pogde et al. · 2011 [cited by applicant]
US 8577913B1 · Hansson et al. · 2013 [cited by applicant]
US 9275132B2 · Roberts et al. · 2016 [cited by applicant]
US 9405794B2 · Prakash et al. · 2016 [cited by applicant]
US 20040267730A1 · Dumais et al. · 2004 [cited by applicant]
US 20050027717A1 · Koudas et al. · 2005 [cited by applicant]
US 20050289124A1 · Kaiser et al. · 2005 [cited by applicant]
US 20060143208A1 · Ramachandran et al. · 2006 [cited by applicant]
US 20070192300A1 · Reuther et al. · 2007 [cited by applicant]
US 20070219974A1 · Chickering et al. · 2007 [cited by applicant]
US 20070234195A1 · Wells · 2007 [cited by applicant]
US 20070240154A1 · Gerzymisch et al. · 2007 [cited by applicant]
US 20070244990A1 · Wells · 2007 [cited by applicant]
US 20080052063A1 · Bennett et al. · 2008 [cited by applicant]
US 20080109422A1 · Dedhia · 2008 [cited by applicant]
US 20080208821A1 · Chang et al. · 2008 [cited by applicant]
US 20090019019A1 · Jones et al. · 2009 [cited by applicant]
US 20090019022A1 · Schallert et al. · 2009 [cited by applicant]
US 20100005081A1 · Bennett · 2010 [cited by applicant]
US 20100082636A1 · Kruus et al. · 2010 [cited by applicant]
US 20100262631A1 · Andersson et al. · 2010 [cited by applicant]
US 20110113048A1 · Njemanze · 2011 [cited by applicant]
US 20120066217A1 · Eder · 2012 [cited by applicant]
US 20120079464A1 · De Smet et al. · 2012 [cited by applicant]
US 20120109970A1 · Hornkvist et al. · 2012 [cited by applicant]
US 20120191697A1 · Sherman · 2012 [cited by examiner]
US 20130339370A1 · Holstege et al. · 2013 [cited by applicant]
US 20140074826A1 · Cooper et al. · 2014 [cited by applicant]
US 20140201241A1 · Wood et al. · 2014 [cited by applicant]
US 20140337371A1 · Li · 2014 [cited by applicant]
US 20170004184A1 · Jain · 2017 [cited by examiner]
US 20170270159A1 · Wang et al. · 2017 [cited by applicant]
US 20180165604A1 · Minkin et al. · 2018 [cited by applicant]
EP 268367A2 · 1988 [cited by applicant]
EP 1587011A1 · 2005 [cited by applicant]
EP 2202658A2 · 2010 [cited by applicant]
EP 2207106A2 · 2010 [cited by applicant]
WO 0141002A1 · 2001 [cited by applicant]
WO 2015009353A1 · 2015 [cited by applicant]
Sayyadian et al., “Efficient Keyword Search Across Heterogeneous Relational Databases”, 2007, IEEE, 346-355 (10 pp). [cited by applicant]
Wu et al: “Towards Keyword-Driven Analytical Processing”, Proceedings of the 2007 ACM Sigmod International Conference on Management of Data, Sigmo '07, Jun. 12, 2007, (12 pp). [cited by applicant]
Shi et al.: “50x Faster: Speeding Up An SQL-Based Legacy System With Few Changes”, Oct. 4, 2011 Retrieved from Internet: URL: http://www.user.tu-berline.de/komm/CD/paper/040221.pdf [retrieved on Jun. 11, 2014]. (12 pp). [cited by applicant]
Blunschi et al: “SODA: Generating SQL for Business Users”, Proceedings of the VLDB Endowment, vol. 5, No. 10, Aug. 27, 2012 pp. 932-935 (12 pp). [cited by applicant]
Baid et al: “Toward Scalable Keyword Search over Relational Data”, Proceedings of the VLDS Endowment, vol. 3, No. 1-2, Sep. 1, 2010, pp. 140-149 (10 pp). [cited by applicant]
Jajodia et al., “Flexible Support for Multiple Access Control Policies”, ACM Transactions on Database Systems, ACM New York, NY, USA, vol. 26, No. 2, Jun. 1, 2001, pp. 217-228 (48 pp). [cited by applicant]
International Search Report and Written Opinion for PCT/US14/39230; Date of mailing Nov. 24, 2014 (16 pp). [cited by applicant]
Anonymous: “File System Permission—Wikipedia, The Free Encyclopedia.” Jun. 11, 2013 (Jun. 11, 2013); URL: http://en.wikipedia.org/w/index/php?title.sub.--File.sub.--system.sub.--p- ermissions&oldid=559455322 [retrie… [cited by applicant]
Li et al: “Efficient Type-Ahead Search on Relational Data: a TASTIER Approach”, Sigmod-Pods '09: Compilation Proceedings of the International Conference on Management Data &28th Symposium on Principles of Database S… [cited by applicant]
Anonymous, “Natural Language Processing”, Wikipedia, Downloaded Jan. 30, 2019, https://en.wikipedia.org/wiki/Natural_language_processing, (8 pp). [cited by applicant]
Seif, G., “An Easy Introduction to Natural Language Processing—Using Computers to Understand Human Language”, Oct. 1, 2018 (Downloaded Jan. 30, 2019), https://towardsdatascience.com/an-easy-introduction-to-natural-langu… [cited by applicant]
Avrach, A., thoughtspot.com, “What the Bleep is a Chasm Trap?”, https://www.thoughtspot.com/fact-and-dimension/what-bleep-chasm-trap 9/, Date Unknown, Downloaded Apr. 2, 2019 (9 pp). [cited by applicant]
Sisense, “Chasm and Fan Traps”, https://documentation.sisense.com/latest/managing-data/working-with-data/chasm-fan-traps.htm, Date Unknown, Downloaded Apr. 2, 2019 (8 pp). [cited by applicant]
Thoughtspot, “Chasm Traps”, https://docs.thoughtspot.com/4.4/admin/loading/chasm-trap.html, Version 4.4 Guides, Date Unknown, Downloaded Apr. 2, 2019 (4 pp). [cited by applicant]
Extended European Search Report received in co-pending Application No. EP 19160657.3 dated Apr. 4, 2019 (11 pp). [cited by applicant]
Eades, Peter, et al., “A Fast & Effective Heuristic for the Feedback Arc Set Problem,” Information Processing Letters, vol. 47, Issue 6, Oct. 18, 1993, pp. 319-323. [cited by applicant]
Wikipedia, “Dijkstra's algorithm”, Date Unknown, downloaded Jul. 16, 2019, https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm (11 pp). [cited by applicant]
Wikipedia, “Consistent hashing”, https://en.wikipedia.org/wiki/Consistent_hashing, Date Unknown, Downloaded Aug. 15, 2019, (5 pp). [cited by applicant]
Morton, K., et al., “Dynamic Workload Driven Data Integration In Tableau”, Proceedings of the 2012 International Conference on Management of Data, SIGMOD '12, Jan. 1, 2012, p. 807 (9 pp). [cited by applicant]
Extended European Search Report dated Jul. 26, 2019, issued in co-pending EP Application No. 19166422.6 (11 pp). [cited by applicant]
Extended European Search Report issued in co-pending European Application No. 20176612.8 dated Sep. 2, 2020 (13 pp). [cited by applicant]
Hristidis, V., et al., “Efficient IR-Style Keyword Search Over Relational Databases”, Proceedings of the 29th International Conference on Very Large Databases: Berlin, Germany, Sep. 9, 2003 (12 pp). [cited by applicant]