IP Library › Granted Patent US 12,554,769
Granted Patent B2
US 12,554,769 · App. 18/789,009 · Granted Feb 17, 2026

Systems and methods for supporting sketch-based querying for data trend analysis

Inventors: Vidya Raghavan Setlur (Portola Valley, CA); Dennis Nathan Bromley (Seattle, WA)
Assignee: Salesforce, Inc.
G06F16/532G06F16/538
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,554,769
App. No.
18/789,009
Granted
Feb 17, 2026
Kind
B2
Abstract

A computing device receives, via a user interface, a drawing input directed to a dataset of time series data. The computing device converts the drawing input into a set of search terms and executes a query against a search index for the dataset using the set of search terms to retrieve a plurality of labeled trend events. Each of the labeled trend events corresponds to a respective portion of a respective line chart of a set of line charts representing the time series data and has a respective chart identifier. The computing device generates a first subset of line charts according to the retrieved plurality of labeled trend events. The computing device displays, on the user interface, one or more line charts of the first subset of line charts.

Claims (72)

1 . A method for analyzing data trends, performed at a computing device that includes a display, one or more processors, and memory, the method comprising:

receiving, via a user interface, a drawing input directed to a dataset of time series data;

converting the drawing input into a set of search terms, including:

determining one or more line segments from the drawing input;

determining angles and rotations over the one or more line segments;

comparing the angles and rotations with distributions of predetermined slope and shape labels, each of the predetermined slope and shape labels corresponding to a search term of the set of search terms; and

assigning a respective search term, of the set of search terms, to each of the line segments based on the comparing;

executing a query against a search index for the dataset using the set of search terms to retrieve a plurality of labeled trend events, each of the labeled trend events (i) corresponding to a respective portion of a respective line chart of a set of line charts representing the time series data and (ii) having a respective chart identifier;

generating a first subset of line charts according to the retrieved plurality of labeled trend events; and

displaying, on the user interface, one or more line charts of the first subset of line charts.

2 . The method of claim 1 , wherein:

converting the drawing input into a set of search terms includes identifying a slope and shape of at least a segment of the drawing input; and

executing the query against the search index for the dataset using the set of search terms to retrieve the plurality of labeled trend events includes identifying data in the dataset corresponding to the slope and shape.

3 . The method of claim 1 , wherein determining the one or more line segments from the drawing input includes:

determining, for each of the line segments, a respective set of values for a set of attributes of the respective line segment.

4 . The method of claim 1 , wherein determining the one or more line segments from the drawing input includes applying an algorithm to linearize the drawing input into one or more line segments.

5 . The method of claim 4 , wherein applying the algorithm includes modifying a value of a parameter of the algorithm according to a user of the drawing input.

6 . The method of claim 1 , further comprising:

after converting the drawing input into the set of search terms, automatically populating the set of search terms in an input box of the user interface, each of the search terms corresponding to respective descriptive text that describes a respective trend of a portion of the drawing input.

7 . The method of claim 1 , wherein:

the display comprises a touch-sensitive display; and

receiving the drawing input includes receiving a user-drawn input via the touch-sensitive display.

8 . The method of claim 1 , wherein receiving the drawing input includes receiving user upload of a sketch image onto the computing device.

9 . The method of claim 1 , wherein receiving the drawing input includes receiving user selection of a first sketch from a library of sketches.

10 . The method of claim 1 , wherein generating the first subset of line charts according to the retrieved plurality of labeled trend events includes:

assigning each of the labeled trend events to a respective group, of one or more groups, according to the chart identifier of the labeled trend event, each group corresponding to one respective line chart in the set of line charts; and

retrieving, from the dataset, data corresponding to a first subset of line charts in accordance with a ranking of the one or more groups.

11 . The method of claim 10 , further comprising:

prior to retrieving the data corresponding to the first subset of line charts:

ranking the one or more groups by aggregating, for each group, respective composite scores of the respective labeled trend events corresponding to the group.

12 . The method of claim 1 , wherein:

generating the first subset of line charts includes visually encoding one or more segments of a respective line chart, in the first subset of line charts, that correspond to the labeled trend events; and

displaying the one or more line charts of the first subset of line charts includes displaying the one or more line charts with one or more visual encodings.

13 . The method of claim 1 , further comprising:

after retrieving the plurality of labeled trend events:

determining, for a respective labeled trend event, a respective composite score according to a ranking algorithm and a respective visual saliency score.

14 . The method of claim 1 , wherein receiving the drawing input directed to the dataset of time series data includes:

receiving user specification of a time span corresponding to the drawing input.

15 . The method of claim 1 , further comprising:

after converting the drawing input into the set of search terms, inputting the set of search terms into a real-time data stream.

16 . A computing device, comprising:

a display;

one or more processors; and

memory coupled to the one or more processors, the memory storing one or more programs configured for execution by the one or more processors, the one or more programs including instructions for:

receiving, via a user interface, a drawing input directed to a dataset of time series data;

converting the drawing input into a set of search terms, including:

determining one or more line segments from the drawing input;

determining angles and rotations over the one or more line segments;

comparing the angles and rotations with distributions of predetermined slope and shape labels, each of the predetermined slope and shape labels corresponding to a search term of the set of search terms; and

assigning a respective search term, of the set of search terms, to each of the line segments based on the comparing;

executing a query against a search index for the dataset using the set of search terms to retrieve a plurality of labeled trend events, each of the labeled trend events (i) corresponding to respective portion of a respective line chart of a set of line charts representing the time series data and (ii) having a respective chart identifier;

generating a first subset of line charts according to the retrieved plurality of labeled trend events; and

displaying, on the user interface, one or more line charts of the first subset of line charts.

17 . The computing device of claim 16 , wherein:

the instructions for converting the drawing input into a set of search terms include instructions for identifying a slope and shape of at least a segment of the drawing input; and

the instructions for executing the query against the search index for the dataset using the set of search terms to retrieve the plurality of labeled trend events include instructions for identifying data in the dataset corresponding to the slope and shape.

18 . A non-transitory computer-readable storage medium storing one or more programs configured for execution by one or more processors of a computing device, the one or more programs comprising instructions for:

receiving, via a user interface, a drawing input directed to a dataset of time series data;

converting the drawing input into a set of search terms, including:

determining one or more line segments from the drawing input;

determining angles and rotations over the one or more line segments;

comparing the angles and rotations with distributions of predetermined slope and shape labels, each of the predetermined slope and shape labels corresponding to a search term of the set of search terms; and

assigning a respective search term, of the set of search terms, to each of the line segments based on the comparing;

executing a query against a search index for the dataset using the set of search terms to retrieve a plurality of labeled trend events, each of the labeled trend events (i) corresponding to respective portion of a respective line chart of a set of line charts representing the time series data and (ii) having a respective chart identifier;

generating a first subset of line charts according to the retrieved plurality of labeled trend events; and

displaying, on the user interface, one or more line charts of the first subset of line charts.

19 . The method of claim 4 , wherein:

the drawing input is received from a user; and

applying the algorithm includes determining a value of a parameter of the algorithm according to a preference of the user.

20 . The method of claim 4 , wherein:

the drawing input is received from a user; and

applying the algorithm includes determining a value of a parameter of the algorithm according to a drawing style of the user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2024
From: SETLUR, VIDYA RAGHAVAN; BROMLEY, DENNIS NATHAN
To: SALESFORCE, INC.
Reel/Frame 068266/0353 →
Continuity (5)
Continuation In Part 18426186 · Jan 29, 2024
Provisional Application 63640854 · Apr 30, 2024
Provisional Application 63543070 · Oct 7, 2023
Provisional Application 63463055 · Apr 30, 2023
Related Publication 20250117423A1 · Apr 10, 2025
References Cited (19)
US 8930247B1 · Zhang · 2015 [cited by applicant]
US 9507805B1 · Chechik · 2016 [cited by examiner]
US 10867256B2 · Bugay et al. · 2020 [cited by applicant]
US 11604800B1 · Alubelli et al. · 2023 [cited by applicant]
US 20090204605A1 · Bai · 2009 [cited by applicant]
US 20130038612A1 · Hanumara · 2013 [cited by applicant]
US 20190197404A1 · Wang · 2019 [cited by applicant]
US 20190205305A1 · Hopcroft · 2019 [cited by applicant]
US 20210081818A1 · Fahmy · 2021 [cited by applicant]
US 20220189140A1 · Woodbeck · 2022 [cited by applicant]
US 20220318261A1 · Setlur et al. · 2022 [cited by applicant]
US 20230386672A1 · Zanos · 2023 [cited by applicant]
KR 102191596B1 · 2019 [cited by applicant]
“ShapeSearch: Flexible Pattern-Based Querying of Trend Line Visualizations”; by: Tarique Siddiqui, Published 2018 https://par.nsf.gov/servlets/purl/10075379 (Year: 2018). [cited by examiner]
“ShapeSearch: Flexible Pattern-Based Querying of Trend Line Visualizations”; by: Tarique Siddiqui (Year: 2018) https://par.nsf.gov/servlets/purl/10075379. [cited by examiner]
Bendeck, Notice of Allowance, U.S. Appl. No. 18/426,186, filed Sep. 30, 2024, 9 pgs. [cited by applicant]
Bendeck, Office Action, U.S. Appl. No. 18/426,192, filed May 9, 2025, 29 pgs. [cited by applicant]
Espacenet English Language Translation of Hong-Joon (Year: 2019). [cited by applicant]
Salesforce, Inc., International Search Rpt and Written Opinion, PCT/US2024/027076, Jul. 31, 2024, 13 pgs. [cited by applicant]