IP Library Granted Patent US 12,664,172
Granted Patent B2
US 12,664,172 · App. 17/386,107 · Granted Jun 23, 2026

Intelligent search modification guidance

Inventors: Manikanta Balakavi (Mountain View, CA); Rakesh Kothari (San Jose, CA); Ashish Shubham (Mountain View, CA); Rifdhan Nazeer (San Jose, CA); Abhinav Gupta (Santa Clara, CA); Amit Prakash (Saratoga, CA); Vishal Kasera (San Francisco, CA)
Assignee: ThoughtSpot, Inc.
G06F16/248G06F16/2425G06F16/24578G06F16/28G06F16/2428G06F16/26G06F16/285G06F16/9024G06N5/022G06N20/00G06N20/10G06Q20/389G06Q20/4016G06Q20/405G06Q30/0204G06Q40/02
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,664,172
App. No.
17/386,107
Filed
Jul 27, 2021
Granted
Jun 23, 2026
Kind
B2
Art Unit
2145
USPC
707/723
Abstract

A low-latency database analysis system outputs visualization data for presenting a visualization representing results data responsive to the request for data, and, in response to outputting the visualization data, generates a diverse plurality of candidate modifications for the request for data, outputs candidate modification data for presenting the diverse plurality of candidate modifications in association with the presentation of the visualization representing the results data, in response to outputting the candidate modification data, obtains user input data identifying a candidate modification from the diverse plurality of candidate modifications as a selected modification, in response to the user input data, executes a data-query expressing the request for data modified by the selected modification to obtain second results data responsive to the request for data modified by the selected modification, and in response to the second results data, outputs visualization data for presenting a visualization representing the second results data.

Claims (65)

1 . A method comprising:

obtaining, by a database analysis system, first user input data indicating a request for data from the database analysis system;

obtaining an analytical-object generated by the database analysis system as a representation of the request for data to the database analysis system;

obtaining, using the analytical-object, a first data query automatically generated by the database analysis system to express the request for data in accordance with a defined structured query language associated with a database accessible by the database analysis system;

obtaining, by the database analysis system, first results data generated by the database executing the first data query, the first results data responsive to the request for data and current relative to obtaining the first user input data;

in response to obtaining the first results data, outputting visualization data for presenting a visualization representing the first results data;

in response to outputting the visualization data:

generating a diverse plurality of candidate modifications for the request for data including:

a first candidate modification for modifying the request for data in accordance with a first modification type; and

a second candidate modification for modifying the request for data in accordance with a second modification type that differs from the first modification type, wherein generating the diverse plurality of candidate modifications includes generating the diverse plurality of candidate modifications in accordance with a defined plurality of modification types wherein the defined plurality of modification types includes an additive modification type, a subtractive modification type, a comparative modification type, a filter modification type, a focus modification type, a historical modification type, and an outlier modification type; and

outputting candidate modification data for presenting the diverse plurality of candidate modifications in association with presenting the visualization representing the first results data;

in response to outputting the candidate modification data, obtaining second user input data identifying a candidate modification from the diverse plurality of candidate modifications as a selected modification;

in response to obtaining the second user input data, obtaining a modified request for data including the request for data modified by the selected modification;

obtaining a second data query automatically generated by the database analysis system to express the modified request for data in accordance with the defined structured query language;

obtaining, by the database analysis system, second results data generated by the database executing the second data query, the second results data responsive to the modified request for data and current relative to obtaining the second user input data; and

in response to obtaining the second results data, outputting visualization data for presenting a visualization representing the second results data.

2 . The method of claim 1 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that the first candidate modification is a comparative modification indicating a comparison with respect to a first value and a second value indicated in the second results data.

3 . The method of claim 1 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that the first candidate modification includes a text input element for modifying the request for data by adding a filter or a column.

4 . The method of claim 1 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that, in response to determining that the first results data includes a date column, the first candidate modification includes a date filter modification.

5 . The method of claim 1 , wherein generating the diverse plurality of candidate modifications includes:

identifying a geographic region associated with a user associated with the second user input data; and

generating the first candidate modification such that the first candidate modification includes a geographic region modification in accordance with the geographic region.

6 . A database analysis system, comprising:

a memory that stores executable instructions; and

a processor that executes the instructions to:

obtain first user input data that indicates a request for data from the database analysis system;

obtain an analytical-object generated by the database analysis system as a representation of the request for data to the database analysis system;

obtain, based on the analytical-object, a first data query automatically generated by the database analysis system to express the request for data in accordance with a defined structured query language associated with a database accessible by the database analysis system;

obtain first results data generated by execution of the first data query by the database, the first results data responsive to the request for data and current relative to the first user input data;

in response to the first results data, output visualization data for presenting a visualization representing the first results data;

in response to outputting the visualization data:

generate a diverse plurality of candidate modifications for the request for data including:

a first candidate modification for modifying the request for data in accordance with a first modification type; and

a second candidate modification for modifying the request for data in accordance with a second modification type that differs from the first modification type, wherein, to generate the diverse plurality of candidate modifications, the processor executes the instructions to generate the diverse plurality of candidate modifications in accordance with a defined plurality of modification types, wherein the defined plurality of modification types includes an additive modification type, a subtractive modification type, a comparative modification type, a filter modification type, a focus modification type, a historical modification type, and an outlier modification type; and

output candidate modification data for presenting the diverse plurality of candidate modifications in association with the presentation of the visualization representing the first results data;

in response to outputting the candidate modification data, obtain second user input data identifying a candidate modification from the diverse plurality of candidate modifications as a selected modification;

in response to the second user input data, obtain a modified request for data including the request for data modified by the selected modification;

obtain a second data query automatically generated by the database analysis system to express the modified request for data in accordance with the defined structured query language;

obtain second results data generated by execution of the second data query by the database, the second results data responsive to the modified request for data and current relative to the second user input data; and

in response to the second results data, output visualization data for presenting a visualization representing the second results data.

7 . The database analysis system of claim 6 , wherein to generate the diverse plurality of candidate modifications the processor executes the instructions to generate the first candidate modification such that the first candidate modification is a comparative modification indicating a comparison with respect to a first value and a second value indicated in the second results data.

8 . The database analysis system of claim 6 , wherein to generate the diverse plurality of candidate modifications the processor executes the instructions to generate the first candidate modification such that the first candidate modification includes a text input element for modifying the request for data by adding a filter or a column.

9 . The database analysis system of claim 6 , wherein to generate the diverse plurality of candidate modifications the processor executes the instructions to generate the first candidate modification such that, in response to determining that the first results data includes a date column, the first candidate modification includes a date filter modification.

10 . The database analysis system of claim 6 , wherein to generate the diverse plurality of candidate modifications the processor executes the instructions to:

identify a geographic region associated with a user associated with the second user input data; and

generate the first candidate modification such that the first candidate modification includes a geographic region modification in accordance with the geographic region.

11 . A non-transitory computer-readable storage medium, comprising executable instructions such that execution of the instructions by a processor includes:

obtaining, by a database analysis system, first user input data indicating a request for data from the database analysis system;

obtaining an analytical-object generated by the database analysis system as a representation of the request for data to the database analysis system;

obtaining, using the analytical-object, a first data query automatically generated by the database analysis system to express the request for data in accordance with a defined structured query language associated with a database accessible by the database analysis system;

obtaining, by the database analysis system, first results data generated by the database executing the first data query, the first results data responsive to the request for data and current relative to obtaining the first user input data;

in response to obtaining the first results data, outputting visualization data for presenting a visualization representing the first results data;

in response to outputting the visualization data:

generating a diverse plurality of candidate modifications for the request for data including:

a first candidate modification for modifying the request for data in accordance with a first modification type; and

a second candidate modification for modifying the request for data in accordance with a second modification type that differs from the first modification type, wherein generating the diverse plurality of candidate modifications includes generating the diverse plurality of candidate modifications in accordance with a defined plurality of modification types, wherein the defined plurality of modification types includes an additive modification type, a subtractive modification type, a comparative modification type, a filter modification type, a focus modification type, a historical modification type, and an outlier modification type; and

outputting candidate modification data for presenting the diverse plurality of candidate modifications in association with presenting the visualization representing the first results data;

in response to outputting the candidate modification data, obtaining second user input data identifying a candidate modification from the diverse plurality of candidate modifications as a selected modification;

in response to obtaining the second user input data, obtaining a modified request for data including the request for data modified by the selected modification;

obtaining a second data query automatically generated by the database analysis system to express the modified request for data in accordance with the defined structured query language;

obtaining, by the database analysis system, second results data generated by the database executing the second data query, the second results data responsive to the modified request for data and current relative to obtaining the second user input data; and

in response to obtaining the second results data, outputting visualization data for presenting a visualization representing the second results data.

12 . The non-transitory computer-readable storage medium of claim 11 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that the first candidate modification is a comparative modification indicating a comparison with respect to a first value and a second value indicated in the second results data.

13 . The non-transitory computer-readable storage medium of claim 11 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that the first candidate modification includes a text input element for modifying the request for data by adding a filter or a column.

14 . The non-transitory computer-readable storage medium of claim 11 , wherein generating the diverse plurality of candidate modifications includes generating the first candidate modification such that, in response to determining that the first results data includes a date column, the first candidate modification includes a date filter modification.

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 Jul 27, 2021
From: BALAKAVI, MANIKANTA; KOTHARI, RAKESH; SHUBHAM, ASHISH; NAZEER, RIFDHAN; GUPTA, ABHINAV; PRAKASH, AMIT; KASERA, VISHAL
To: THOUGHTSPOT, INC.
Reel/Frame 056992/0582 →
Continuity (2)
Continuation 16528266 · Jul 31, 2019
Related Publication 20210357398A1 · Nov 18, 2021
References Cited (56)
US 8577913B1 · Hansson et al. · 2013 [cited by applicant]
US 9275132B2 · Roberts et al. · 2016 [cited by applicant]
US 9276855B1 · Mengle et al. · 2016 [cited by applicant]
US 9405794B2 · Prakash et al. · 2016 [cited by applicant]
US 20030129659A1 · Whelihan et al. · 2003 [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 20070192300A1 · Reuther et al. · 2007 [cited by applicant]
US 20070219974A1 · Chickering et al. · 2007 [cited by applicant]
US 20080109422A1 · Dedhia · 2008 [cited by applicant]
US 20090019019A1 · Jones et al. · 2009 [cited by applicant]
US 20090019022A1 · Schallert et al. · 2009 [cited by applicant]
US 20100257049A1 · Flombaum et al. · 2010 [cited by applicant]
US 20110113048A1 · Njemanze · 2011 [cited by applicant]
US 20110179021A1 · Wen et al. · 2011 [cited by applicant]
US 20120066217A1 · Eder · 2012 [cited by examiner]
US 20120221954A1 · Tanaka · 2012 [cited by examiner]
US 20130339370A1 · Holstege et al. · 2013 [cited by applicant]
US 20140074812A1 · Ruhela et al. · 2014 [cited by applicant]
US 20140201241A1 · Wood et al. · 2014 [cited by applicant]
US 20140222798A1 · Want · 2014 [cited by examiner]
US 20140223316A1 · Anderson · 2014 [cited by examiner]
US 20140337371A1 · Li · 2014 [cited by applicant]
US 20150169643A1 · Kogan et al. · 2015 [cited by applicant]
US 20160179787A1 · Deleeuw · 2016 [cited by examiner]
US 20170091833A1 · Berger · 2017 [cited by examiner]
US 20170270159A1 · Wang · 2017 [cited by examiner]
US 20180004364A1 · Wu · 2018 [cited by examiner]
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]
The Relational Database Dictionary, Extended Edition 119 (2008). [cited by examiner]
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]
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 [retrieved … [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]
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 … [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]
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]
Extended European Search Report received in co-pending Application No. EP 19160657.3 dated Apr. 4, 2019 (11 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]
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]
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]
Wikipedia, “Consistent hashing”, https://en.wikipedia.org/wiki/Consistent_hashing, Date Unknown, Downloaded Aug. 15, 2019, (5 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]