IP Library Granted Patent US 12,423,353
Granted Patent B2
US 12,423,353 · App. 18/522,213 · Granted Sep 23, 2025

Dynamic graph generation for interactive data analysis

Inventor: Scott Sherman (Seattle, WA)
Assignee: Salesforce.com, Inc.
G06F16/9024G06F16/90335G06F16/904
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,423,353
App. No.
18/522,213
Filed
Nov 28, 2023
Granted
Sep 23, 2025
Kind
B2
Art Unit
2163
USPC
707/748
Abstract

Embodiments are directed to visualizing data using a graphical user interface (GUI) that may include a graph panel and a visualization panel arranged to receive inputs or interactions. A data model may be provided and displayed in the visualization panel. Input information that specifies portions of the data model may be provided to the visualization panel. Transform models may be determined based on the specified portions of the data model such that the determined transform models include a model interface that accepts the input information. The transform models may be employed to generate graph objects based on the data model, the input information such that the graph objects may be included in a graph model. Queries based on the graph model may be executed to provide results from the data model such that the results may be displayed in a visualization.

Claims (63)

1. A method for visualizing data, performed at a computing device having one or more processors and memory storing one or more programs configured for execution by the one or more processors, the method comprising:

displaying a user interface that includes a graph panel and a visualization panel;

displaying, in the graph panel, a graph of a data source, wherein each node in the graph represents a data object, and each edge in the graph represents a relationship between data objects represented by nodes at endpoints of the respective edge;

receiving user input to specify a question directed to the data source;

for each of a plurality of transform models, determining whether transforming the graph according to the respective transform model enables answering the question, wherein each transform model comprises a model interface that specifies input type information, input source information, and user/role requirements for determining eligibility of the transform model to answer the question, and wherein each transform model is associated with a weight score;

selecting a first transform model of the plurality of transform models that enables answering the question, wherein selecting the first transform model of the plurality of transform models comprises rank ordering the plurality of transform models based on the weight score of each transform model;

updating the graph according to the first transform model by:

determining one or more operations specified by the first transform model;

executing the one or more operations on a data model corresponding to the data source to update the graph; and

displaying the updated graph in the graph panel in real-time;

using the updated graph to generate a result set that answers the question; and

generating and displaying, in the visualization panel synchronized with the graph panel, a data visualization of the result set.

2. The method of claim 1 , wherein updating the graph according to the first transform model comprises:

determining one or more operations that are specified by the first transform model; and

executing the one or more operations on a data model corresponding to the data source to update the graph.

3. The method of claim 1 , wherein each transform model comprises a model interface that specifies one or more characteristics of acceptable inputs, wherein determining whether transforming the graph according to the respective transform model enables answering the question comprises determining if the question matches the one or more characteristics of acceptable inputs for the respective transform model.

4. The method of claim 3 , wherein the model interface specifies input type information, input source information, and user/role requirements, for the respective transform model.

5. The method of claim 3 , wherein the model interface includes value based constraints and type based constraints.

6. The method of claim 1 , further comprising:

in accordance with a determination that a transform model cannot be used to answer the question, modifying the transform model to answer the question.

7. The method of claim 1 , wherein the data source comprises one or more of a database, a columnar data store, or structured text files.

8. A system for visualizing data, comprising:

one or more processors;

memory coupled to the one or more processors;

a display; and

one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs comprising instructions for:

displaying a user interface that includes a graph panel and a visualization panel;

displaying, in the graph panel, a graph of a data source, wherein each node in the graph represents a data object, and each edge in the graph represents a relationship between data objects represented by nodes at endpoints of the respective edge;

receiving user input to specify a question directed to the data source;

for each of a plurality of transform models, determining whether transforming the graph according to the respective transform model enables answering the question, wherein each transform model comprises a model interface that specifies input type information, input source information, and user/role requirements for determining eligibility of the transform model to answer the question, and wherein each transform model is associated with a weight score;

selecting a first transform model of the plurality of transform models that enables answering the question, wherein selecting the first transform model of the plurality of transform models comprises rank ordering the plurality of transform models based on the weight score of each transform model;

updating the graph according to the first transform model by:

determining one or more operations specified by the first transform model;

executing the one or more operations on a data model corresponding to the data source to update the graph; and

displaying the updated graph in the graph panel;

using the updated graph to generate a result set that answers the question; and

generating and displaying, in the visualization panel synchronized with the graph panel, a data visualization of the result set.

9. The system of claim 8 , wherein updating the graph according to the first transform model comprises:

determining one or more operations that are specified by the first transform model; and

executing the one or more operations on a data model corresponding to the data source to update the graph.

10. The system of claim 8 , wherein each transform model comprises a model interface that specifies one or more characteristics of acceptable inputs, wherein determining whether transforming the graph according to the respective transform model enables answering the question comprises determining if the question matches the one or more characteristics of acceptable inputs for the respective transform model.

11. The system of claim 10 , wherein the model interface specifies input type information, input source information, and user/role requirements, for the respective transform model.

12. The system of claim 10 , wherein the model interface includes value based constraints and type based constraints.

13. The system of claim 8 , wherein the one or more processors further comprise instructions for:

in accordance with a determination that a transform model cannot be used to answer the question, modifying the transform model to answer the question.

14. The system of claim 8 , wherein the data source comprises one or more of a database, a columnar data store, or structured text files.

15. A non-transitory computer readable storage medium storing one or more programs, the one or more programs configured for execution by a computing device having one or more processors, memory, and a display, the one or more programs comprising instructions for:

displaying a user interface that includes a graph panel and a visualization panel;

displaying, in the graph panel, a graph of a data source, wherein each node in the graph represents a data object, and each edge in the graph represents a relationship between data objects represented by nodes at endpoints of the respective edge;

receiving user input to specify a question directed to the data source;

for each of a plurality of transform models, determining whether transforming the graph according to the respective transform model enables answering the question, wherein each transform model comprises a model interface that specifies input type information, input source information, and user/role requirements for determining eligibility of the transform model to answer the question, and wherein each transform model is associated with a weight score;

selecting a first transform model of the plurality of transform models that enables answering the question, wherein selecting the first transform model of the plurality of transform models comprises rank ordering the plurality of transform models based on the weight score of each transform model;

updating the graph according to the first transform model by:

determining one or more operations specified by the first transform model;

executing the one or more operations on a data model corresponding to the data source to update the graph; and

displaying the updated graph in the graph panel;

using the updated graph to generate a result set that answers the question; and

generating and displaying, in the visualization panel synchronized with the graph panel, a data visualization of the result set.

16. The non-transitory computer readable storage medium of claim 15 , wherein updating the graph according to the first transform model comprises:

determining one or more operations that are specified by the first transform model; and

executing the one or more operations on a data model corresponding to the data source to update the graph.

17. The non-transitory computer readable storage medium of claim 15 , wherein each transform model comprises a model interface that specifies one or more characteristics of acceptable inputs, wherein determining whether transforming the graph according to the respective transform model enables answering the question comprises determining if the question matches the one or more characteristics of acceptable inputs for the respective transform model.

18. The non-transitory computer readable storage medium of claim 17 , wherein the model interface specifies input type information, input source information, and user/role requirements, for the transform model.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2025
From: SHERMAN, SCOTT A.
To: SALESFORCE.COM, INC.
Reel/Frame 071998/0253 →
CHANGE OF NAME Recorded Aug 12, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 072551/0939 →
Continuity (3)
Continuation 17091536 · Nov 6, 2020
Provisional Application 62933305 · Nov 8, 2019
Related Publication 20240095285A1 · Mar 21, 2024
References Cited (117)
US 8286087B1 · Xian et al. · 2012 [cited by applicant]
US 9383913B2 · Royer et al. · 2016 [cited by applicant]
US 9489119B1 · Smith, Jr. · 2016 [cited by applicant]
US 9760240B2 · Maheshwari et al. · 2017 [cited by applicant]
US 9881066B1 · Yousaf et al. · 2018 [cited by applicant]
US 10275265B1 · Gould et al. · 2019 [cited by applicant]
US 10445170B1 · Subramanian et al. · 2019 [cited by applicant]
US 10698955B1 · Broecheler · 2020 [cited by applicant]
US 10705695B1 · Porath et al. · 2020 [cited by applicant]
US 10783162B1 · Montague et al. · 2020 [cited by applicant]
US 20040205562A1 · Rozek et al. · 2004 [cited by applicant]
US 20060064674A1 · Olson, Jr. et al. · 2006 [cited by applicant]
US 20080126987A1 · Meschian et al. · 2008 [cited by applicant]
US 20090006939A1 · DeSpain et al. · 2009 [cited by applicant]
US 20090007122A1 · Peyton et al. · 2009 [cited by applicant]
US 20090012983A1 · Senneville et al. · 2009 [cited by applicant]
US 20100138420A1 · Bator et al. · 2010 [cited by applicant]
US 20100235771A1 · Gregg, III · 2010 [cited by applicant]
US 20100313157A1 · Carlsson et al. · 2010 [cited by applicant]
US 20100318583A1 · Cohen · 2010 [cited by applicant]
US 20120311497A1 · Bear et al. · 2012 [cited by applicant]
US 20140026084A1 · Gilboa · 2014 [cited by applicant]
US 20140058789A1 · Doehring et al. · 2014 [cited by applicant]
US 20140074888A1 · Potter et al. · 2014 [cited by applicant]
US 20140114907A1 · Kozina et al. · 2014 [cited by applicant]
US 20140215405A1 · Breedvelt-Schouten · 2014 [cited by applicant]
US 20140267287A1 · Dodgen et al. · 2014 [cited by applicant]
US 20140330821A1 · Tullis et al. · 2014 [cited by applicant]
US 20150112998A1 · Shankar et al. · 2015 [cited by applicant]
US 20150347091A1 · Ferko et al. · 2015 [cited by applicant]
US 20160103908A1 · Fletcher et al. · 2016 [cited by applicant]
US 20160224532A1 · Miller et al. · 2016 [cited by applicant]
US 20160224616A1 · Beacom et al. · 2016 [cited by applicant]
US 20160232207A1 · Brunel et al. · 2016 [cited by applicant]
US 20160314605A1 · Filippi et al. · 2016 [cited by applicant]
US 20170010787A1 · Ranganathan et al. · 2017 [cited by applicant]
US 20170091317A1 · Cummings et al. · 2017 [cited by applicant]
US 20170102694A1 · Enver et al. · 2017 [cited by applicant]
US 20170103103A1 · Nixon et al. · 2017 [cited by applicant]
US 20170140068A1 · Oh et al. · 2017 [cited by applicant]
US 20170154088A1 · Sherman · 2017 [cited by applicant]
US 20170161188A1 · Isoi · 2017 [cited by applicant]
US 20170177681A1 · Potiagalov et al. · 2017 [cited by applicant]
US 20170177744A1 · Potiagalov et al. · 2017 [cited by applicant]
US 20170178368A1 · Noon et al. · 2017 [cited by applicant]
US 20170193049A1 · Grehant · 2017 [cited by examiner]
US 20170213131A1 · Hammond et al. · 2017 [cited by applicant]
US 20170220633A1 · Porath et al. · 2017 [cited by applicant]
US 20170286526A1 · Bar-Or et al. · 2017 [cited by applicant]
US 20170293666A1 · Ragavan · 2017 [cited by examiner]
US 20170316355A1 · Shrestha et al. · 2017 [cited by applicant]
US 20180024731A1 · Sa ches et al. · 2018 [cited by applicant]
US 20180067998A1 · Sherman et al. · 2018 [cited by applicant]
US 20180101535A1 · Banerjee · 2018 [cited by examiner]
US 20180129369A1 · Kim et al. · 2018 [cited by applicant]
US 20180157702A1 · Clemens et al. · 2018 [cited by applicant]
US 20180210913A1 · Beller · 2018 [cited by examiner]
US 20180218050A1 · Porath et al. · 2018 [cited by applicant]
US 20180260106A1 · Leonard et al. · 2018 [cited by applicant]
US 20190034489A1 · Ziegler · 2019 [cited by applicant]
US 20190095395A1 · Piecko · 2019 [cited by applicant]
US 20190188308A1 · Simon et al. · 2019 [cited by applicant]
US 20190286668A1 · Puzicha et al. · 2019 [cited by applicant]
US 20190294720A1 · Beringer et al. · 2019 [cited by applicant]
US 20190325292A1 · Remis et al. · 2019 [cited by applicant]
US 20190332599A1 · Woo · 2019 [cited by applicant]
US 20200104401A1 · Burnett et al. · 2020 [cited by applicant]
US 20200104402A1 · Burnett et al. · 2020 [cited by applicant]
US 20200334277A1 · Doyle et al. · 2020 [cited by applicant]
US 20200372057A1 · Tonkin et al. · 2020 [cited by applicant]
US 20210263900A1 · Joyce et al. · 2021 [cited by applicant]
US 20210390420A1 · Barnett · 2021 [cited by applicant]
US 20220113150A1 · Hidayat et al. · 2022 [cited by applicant]
Pienta, Robert et al., “Visage: Interactive Visual Graph Querying,” AVI '16, Jun. 7-10, 2016, Sari Italy, pp. 272-279. [cited by applicant]
Von Landesberger, Tatiana et al., “A System for Interactive Visual Analysis of Large Graphs Using Motifs in Graph Editing and Aggregation,” VMV 2009, pp. 1-9. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Jul. 24, 2020, pp. 1-27. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Nov. 24, 2020, pp. 1-28. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Feb. 16, 2021, pp. 1-7. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Apr. 2, 2021, pp. 1-37. [cited by applicant]
Office Communication for U.S. Appl. No. 16/725,986 mailed Apr. 2, 2021. pp. 1-23. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Sep. 27, 2021, pp. 1-45. [cited by applicant]
Office Communication for U.S. Appl. No. 16/725,986 mailed Sep. 30, 2021, pp. 1-10. [cited by applicant]
Papenbrock, Thorsten et ai., “Data-driven Schema Normalization,” in Proceedings of the 20th Internationai Conference on Extending Database Technology, 2017, pp. 342-353. [cited by applicant]
Brunel, Robert et al., “Supporting Hierarchical Data in SAP HANA,” 2015 IEEE 31st international Conference on Data Engineering (ICDE), 201 pp. 1-12. [cited by applicant]
Office Communication for U.S. Appl. No. 16/944,043 mailed Nov. 26, 2021, pp. 1-49. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Dec. 15, 2021, pp. 1-7. [cited by applicant]
Office Communication for U.S. Appl. No. 16/984,014 mailed Jan. 3, 2022, pp. 1-31. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Feb. 24, 2022, pp. 1-47. [cited by applicant]
Office Communication for U.S. Appl. No. 16/984,014 maiied Mar. 18, 2022, pp. 1-5. [cited by applicant]
Office Communication for U.S. Appl. No. 16/944,043 maiied Apr. 19, 2022, pp. 1-10. [cited by applicant]
Office Communication for U.S. Appl. No. 16/984,014 mailed Apr. 20, 2022, pp. 1-33. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Aug. 17, 2022, pp. 1-56. [cited by applicant]
Office Communication for U.S. Appl. No. 17/370,367 mailed Sep. 1, 2022, pp. 1-13. [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2022/034283 mailed Oct. 27, 2022, pp. 1-1. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Nov. 21, 2022, pp. 1-6. [cited by applicant]
Office Communication for U.S. Appl. No. 16/586,554 mailed Jan. 5, 2023, pp. 1-24. [cited by applicant]
Office Communication for U.S. Appl. No. 17/370,367 mailed Jan. 27, 2023, pp. 1-14. [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2020/028163 mailed Jul. 21, 2020, pp. 1-7. [cited by applicant]
Office Communication for U.S. Appl. No. 16/389,389 mailed May 13, 2021, pp. 1-16. [cited by applicant]
Office Communication for U.S. Appl. No. 16/389,389 mailed Aug. 18, 2021, pp. 1-9. [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2022/031195 mailed Aug. 31, 2022, pp. 1-12. [cited by applicant]
Office Communication for U.S. Appl. No. 17/542,148 mailed Oct. 27, 2022, pp. 1-14. [cited by applicant]
International Search Report and Written Opinion for International Patent Application No. PCT/US2022/038328 mailed Nov. 30, 2022, pp. 1−. [cited by applicant]
Office Communication for U.S. Appl. No. 17/409,299 mailed Feb. 14, 2023, pp. 1-28. [cited by applicant]
Bauer, Reinhard et al., “The Shortcut Problem—Complexity and Algorithms,” Journal of Graph Algorithms and Applications, Aug. 2012, vol. 16, No. 2, pp. 447-481. [cited by applicant]
Hesse, William, “Directed Graphs Requiring Large Numbers of Shortcuts,” in Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms, Jan. 2003, pp. 665-669. [cited by applicant]
Office Communication for U.S. Appl. No. 17/542,148 mailed Feb. 17, 2023, pp. 1-8. [cited by applicant]
Office Communication for U.S. Appl. No. 17/542,148 mailed Feb. 28, 2023, pp. 1-2. [cited by applicant]
Office Communication for U.S. Appl. No. 17/370,367 mailed Apr. 6, 2023, pp. 1-4. [cited by applicant]
Office Communication for U.S. Appl. No. 17/370,367 mailed May 24, 2023, pp. 1-18. [cited by applicant]
Office Communication for U.S. Appl. No. 17/535,465 mailed Jun. 8, 2023, pp. 1-7. [cited by applicant]
Office Communication for U.S. Appl. No. 17/409,299 mailed Jun. 28, 2023, pp. 1-36. [cited by applicant]
Sherman, Office Action, U.S. Appl. No. 17/091,536, filed Nov. 5, 2021, 25 pgs. [cited by applicant]
Sherman, Final Office Action, U.S. Appl. No. 17/091,536, filed Apr. 25, 2022, 32 pgs. [cited by applicant]
Sherman, Office Action, U.S. Appl. No. 17/091,536, filed Aug. 16, 2022, 38 pgs. [cited by applicant]
Sherman, Notice of Allowance, U.S. Appl. No. 17/091,536, filed Mar. 10, 2023, 10 pgs. [cited by applicant]
Sherman, Notice of Allowance, U.S. Appl. No. 17/091,536, filed Jul. 24, 2023, 7 pgs. [cited by applicant]