IP Library Granted Patent US 12,468,709
Granted Patent B2
US 12,468,709 · App. 18/776,395 · Granted Nov 11, 2025

Visualization data reuse in a data analysis system

Inventor: Sagar Patni (Sunnyvale, CA)
Assignee: Thoughtspot, Inc.
G06F16/24561G06F16/128G06F16/24539G06F16/287G06F21/6227
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,468,709
App. No.
18/776,395
Granted
Nov 11, 2025
Kind
B2
Abstract

A visualization data is obtained for an answer object. A generation-identifier is associated with the visualization data. The generation-identifier corresponds to access control data associated with a first user. A snapshot of the first visualization data is received from a user device of the first user. The first snapshot is obtained using instructions that, when executed at the user device, obtain the first snapshot as the first visualization data is displayed at the user device of the first user. An association is stored between the generation-identifier and the snapshot. The answer object is then identified responsive to data expressing a usage intent received from a device of a second user. Responsive to access control data associated with the second user matching the generation-identifier, instructions for rendering the first snapshot at the device of the second user are output.

Claims (82)

1 . A method for use in a data analysis system, comprising:

obtaining an answer object based on first data expressing a first usage intent;

obtaining a first visualization data for the answer object;

associating a first generation-identifier with the first visualization data, wherein the first generation-identifier corresponds to at least a subset of first access control data associated with a first user;

receiving a first snapshot of the first visualization data from a user device of the first user, wherein the first snapshot is obtained using instructions that, when executed at the user device, obtain the first snapshot as the first visualization data is displayed at the user device of the first user;

storing a first association between the first generation-identifier and the first snapshot;

identifying the answer object responsive to second data expressing a second usage intent received from a device of a second user; and

responsive to second access control data associated with the second user matching the first generation-identifier, outputting second instructions for rendering the first snapshot at the device of the second user.

2 . The method of claim 1 , wherein the first snapshot is obtained during an idle time of an application displaying the first visualization data.

3 . The method of claim 1 , further comprising:

obtaining the answer object based on third data expressing a third usage intent for a third user;

obtaining a second visualization data, wherein the second visualization data is obtained in accordance with third access control data associated with the third user;

associating a second generation-identifier with the second visualization data,

wherein the second generation-identifier corresponds to the third access control data associated with the third user, and

wherein the second generation-identifier is different from the first generation-identifier;

obtaining a second snapshot of the second visualization data; and

storing a second association between the second generation-identifier and the second snapshot of the second visualization data.

4 . The method of claim 3 , further comprising:

obtaining fourth data expressing a fourth usage intent for a fourth user with respect to the data analysis system; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and do not match the first generation-identifier, generating third instructions for rendering the second snapshot to the fourth user.

5 . The method of claim 3 ,

wherein a first timestamp is associated with the first snapshot, and a second timestamp is associated with the second snapshot, the method further comprising:

obtaining fourth data expressing a fourth usage intent for a fourth user with respect to the data analysis system; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and match the first generation-identifier and that the second timestamp is later than the first timestamp, generating third instructions for rendering the second snapshot to the fourth user.

6 . The method of claim 1 , wherein the first snapshot comprises a text string.

7 . The method of claim 6 , further comprising:

before storing the first association between the first generation-identifier and the first snapshot of the first visualization data, filtering the text string for security vulnerabilities.

8 . The method of claim 1 , wherein the first snapshot comprises image data.

9 . A system, comprising:

one or more memories; and

one or more processors, the one or more processors configured to execute instructions stored in the one or more memories to:

obtain an answer object based on first data expressing a first usage intent;

obtain a first visualization data for the answer object;

associate a first generation-identifier with the first visualization data, wherein the first generation-identifier corresponds to at least a subset of first access control data associated with a first user;

receive a first snapshot of the first visualization data from a user device of the first user, wherein the first snapshot is obtained using instructions that, when executed at the user device, obtain the first snapshot as the first visualization data is displayed at the user device of the first user;

store a first association between the first generation-identifier and the first snapshot;

identify the answer object responsive to second data expressing a second usage intent received from a device of a second user; and

output second instructions for rendering the first snapshot at the device of the second user responsive to second access control data associated with the second user matching the first generation-identifier.

10 . The system of claim 9 , wherein the first snapshot is obtained during an idle time of an application displaying the first visualization data.

11 . The system of claim 9 , wherein the one or more processors further configured to execute instructions stored in the one or more memories to:

obtain the answer object based on third data expressing a third usage intent for a third user;

obtain a second visualization data, wherein the second visualization data is obtained in accordance with third access control data associated with the third user;

associate a second generation-identifier with the second visualization data,

wherein the second generation-identifier corresponds to the third access control data associated with the third user, and

wherein the second generation-identifier is different from the first generation-identifier;

obtain a second snapshot of the second visualization data; and

store a second association between the second generation-identifier and the second snapshot of the second visualization data.

12 . The system of claim 11 , wherein the one or more processors further configured to execute instructions stored in the one or more memories to:

obtain fourth data expressing a fourth usage intent for a fourth user; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and do not match the first generation-identifier, generate third instructions for rendering the second snapshot to the fourth user.

13 . The system of claim 11 ,

wherein a first timestamp is associated with the first snapshot, and a second timestamp is associated with the second snapshot, and

wherein the one or more processors further configured to execute instructions stored in the one or more memories to:

obtain fourth data expressing a fourth usage intent for a fourth user; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and match the first generation-identifier and that the second timestamp is later than the first timestamp, generate third instructions for rendering the second snapshot to the fourth user.

14 . The system of claim 9 , wherein the first snapshot comprises a text string.

15 . The system of claim 14 , wherein the one or more processors further configured to execute instructions stored in the one or more memories to:

before storing the first association between the first generation-identifier and the first snapshot of the first visualization data, filter the text string for security vulnerabilities.

16 . One or more non-transitory computer readable media storing instructions operable to cause one or more processors to perform operations comprising:

obtaining an answer object based on first data expressing a first usage intent;

obtaining a first visualization data for the answer object;

associating a first generation-identifier with the first visualization data, wherein the first generation-identifier corresponds to at least a subset of first access control data associated with a first user;

receiving a first snapshot of the first visualization data from a user device of the first user, wherein the first snapshot is obtained using instructions that, when executed at the user device, obtain the first snapshot as the first visualization data is displayed at the user device of the first user;

storing a first association between the first generation-identifier and the first snapshot;

identifying the answer object responsive to second data expressing a second usage intent received from a device of a second user; and

responsive to second access control data associated with the second user matching the first generation-identifier, outputting second instructions for rendering the first snapshot at the device of the second user.

17 . The one or more non-transitory computer readable media of claim 16 , wherein the operations further comprise:

obtaining the answer object based on third data expressing a third usage intent for a third user;

obtaining a second visualization data, wherein the second visualization data is obtained in accordance with third access control data associated with the third user;

associating a second generation-identifier with the second visualization data,

wherein the second generation-identifier corresponds to the third access control data associated with the third user, and

wherein the second generation-identifier is different from the first generation-identifier;

obtaining a second snapshot of the second visualization data; and

storing a second association between the second generation-identifier and the second snapshot of the second visualization data.

18 . The one or more non-transitory computer readable media of claim 17 , wherein the operations further comprise:

obtaining fourth data expressing a fourth usage intent for a fourth user; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and do not match the first generation-identifier, generating third instructions for rendering the second snapshot to the fourth user.

19 . The one or more non-transitory computer readable media of claim 17 ,

wherein a first timestamp is associated with the first snapshot, and a second timestamp is associated with the second snapshot, wherein the operations further comprise:

obtaining fourth data expressing a fourth usage intent for a fourth user; and

responsive to a determination that fourth access control data associated with the fourth user match the second generation-identifier and match the first generation-identifier and that the second timestamp is later than the first timestamp, generating third instructions for rendering the second snapshot to the fourth user.

20 . The one or more non-transitory computer readable media of claim 16 , wherein the first snapshot is obtained during an idle time of an application displaying the first visualization data.

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 18, 2024
From: PATNI, SAGAR
To: THOUGHT SPOT, INC.
Reel/Frame 068017/0682 →
Continuity (2)
Continuation 17313124 · May 6, 2021
Related Publication 20240370442A1 · Nov 7, 2024
References Cited (21)
US 9690791B1 · Chopra et al. · 2017 [cited by applicant]
US 9875282B1 · Patekar · 2018 [cited by applicant]
US 10019180B1 · Miah · 2018 [cited by examiner]
US 11080336B2 · Van Dusen · 2021 [cited by examiner]
US 11556659B1 · Kumar · 2023 [cited by examiner]
US 20070011137A1 · Kodama · 2007 [cited by applicant]
US 20110106939A1 · Kitamura · 2011 [cited by examiner]
US 20120284594A1 · Norwood et al. · 2012 [cited by applicant]
US 20140229462A1 · Lo · 2014 [cited by applicant]
US 20150088851A1 · Deshpande et al. · 2015 [cited by applicant]
US 20170344612A1 · Seyfert et al. · 2017 [cited by applicant]
US 20180107562A1 · Goodman · 2018 [cited by examiner]
US 20180113952A1 · Brown · 2018 [cited by applicant]
US 20200125531A1 · Troshin et al. · 2020 [cited by applicant]
US 20200151191A1 · Agrawal et al. · 2020 [cited by applicant]
US 20210286535A1 · Aldred et al. · 2021 [cited by applicant]
US 20220300527A1 · Stein et al. · 2022 [cited by applicant]
CN 112559098A · 2021 [cited by applicant]
CN 114077575A · 2022 [cited by applicant]
Noteworthy Programming Masterpiece, “DOMPurify”, https://www.npmjs.com/package/dompurify?activeTab=readme, Date unknown, downloaded May 3, 2021 (9 pp). [cited by applicant]
Highcharts, “Make your data come alive”, Date Unknown, Downloaded May 3, 2021, https://www.highcharts.com/ (4 pp). [cited by applicant]