IP Library Granted Patent US 12,373,453
Granted Patent B2
US 12,373,453 · App. 18/420,746 · Granted Jul 29, 2025

Data visualization analytical canvas with functionally independent visual containers

Inventors: Allison Anne Whilden (Redmond, WA); Dirk Karis (Seattle, WA); Vidya Raghavan Setlur (Portola Valley, CA); Rodion Degtyar (Sammamish, WA); Jonathan D. Que (Seattle, WA); Filippos Lymperopoulos (Seattle, WA)
Assignee: Tableau Software, LLC
G06F16/248G06F3/04817G06F3/0482G06F3/04847G06F3/0486G06F8/34G06F16/2428G06F16/244G06F16/26G06F16/287
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,373,453
App. No.
18/420,746
Granted
Jul 29, 2025
Kind
B2
Abstract

A plurality of interrelated block objects are obtained. Each block object having a respective specification that includes (i) a layout type; (ii) a mark type; (iii) one or more visual encodings; and (iv) one or more data fields of a data source. A respective data field of the one or more data fields is associated with a respective visual encoding of the one or more visual encodings. A respective query generated for each block object of the plurality of block objects is executed to retrieve a respective set of tuples from the data source. Each tuple comprising data values for the respective one or more data fields of the block object. A data visualization is generated in accordance with the respective specifications of the interrelated block objects. Each tuple in each of the respective set of tuples is represented as a visual mark in the data visualization.

Claims (53)

1. A method, comprising:

at a computer system having one or more processors, a display, and memory storing one or more programs configured for execution by the one or more processors:

obtaining a plurality of interrelated block objects corresponding to a plurality of block cards displayed in a canvas region of a user interface, each block object having a corresponding specification that includes (i) a layout type; (ii) a mark type; (iii) one or more visual encodings; and (iv) one or more data fields of a data source, as specified in a respective block card of the plurality of block cards, wherein each block card is generated in response to user placement of one or more respective data field icons onto the canvas region and/or onto the block card, where the one or more respective data field icons represent data fields from the data source;

executing a plurality of queries, each query generated for each block object of the plurality of interrelated block objects to retrieve a respective set of tuples from the data source, each tuple comprising data values for the respective one or more data fields of the block object; and

generating a data visualization in accordance with the specifications corresponding to each block object of the plurality of interrelated block objects, wherein each tuple in each of the respective set of tuples is represented as a visual mark in the data visualization.

2. The method of claim 1 , wherein the plurality of interrelated block objects have parent-child relationships that form a directed acyclic graph.

3. The method of claim 2 , wherein:

respective relative positions of the plurality of block cards displayed in the canvas region form an adjacency graph; and

the directed acyclic graph is generated based on the adjacency graph.

4. The method of claim 2 , wherein a first block object has one or more ancestor block objects according to the parent-child relationships in the directed acyclic graph, and generating the data visualization includes:

determining a local level of detail for the first block object and local level of details for each of the one or more ancestor block objects, wherein a local level of detail for a respective block object is determined based on dimension data fields of the respective block object;

determining a complete level of detail for the first block object by performing a union of the local of detail for the first block object and the local level of detail for each of the one or more ancestor block objects; and

generating a first query, for the first block object, specifying aggregation of each measure data field of the first block object according to the complete level of detail for the first block object.

5. The method of claim 4 , wherein a respective layout type of the first block object is an inline arrangement, and the method includes:

executing the first query to retrieve a first set of tuples from the data source; and

displaying a respective visual mark for each of the retrieved set of tuples in a cell or visual component of the data visualization.

6. The method of claim 1 , wherein the data visualization includes a visual component for each block object.

7. A computer system, comprising:

a display generation component;

one or more input devices;

one or more processors; and

memory storing one or more programs, wherein the one or more programs are configured to be executed by the one or more processors, the one or more programs including instructions for:

obtaining a plurality of interrelated block objects corresponding to a plurality of block cards displayed in a canvas region of a user interface, each block object having a corresponding specification that includes (i) a layout type; (ii) a mark type; (iii) one or more visual encodings; and (iv) one or more data fields of a data source, as specified in a respective block card of the plurality of block cards, wherein each block card is generated in response to user placement of one or more respective data field icons onto the canvas region and/or onto the block card, where the one or more respective data field icons represent data fields from the data source;

executing a plurality of queries, each query generated for each block object of the plurality of interrelated block objects to retrieve a respective set of tuples from the data source, each tuple comprising data values for the respective one or more data fields of the block object; and

generating a data visualization in accordance with the specifications corresponding to each block object of the plurality of interrelated block objects, wherein each tuple in each of the respective set of tuples is represented as a visual mark in the data visualization.

8. The computer system of claim 7 , wherein the plurality of interrelated block objects have parent-child relationships that form a directed acyclic graph.

9. The computer system of claim 8 , wherein:

respective relative positions of the plurality of block cards displayed in the canvas region form an adjacency graph; and

the directed acyclic graph is generated based on the adjacency graph.

10. The computer system of claim 8 , wherein a first block object has one or more ancestor block objects according to the parent-child relationships in the directed acyclic graph, and generating the data visualization includes:

determining a local level of detail for the first block object and local level of details for each of the one or more ancestor block objects, wherein a local level of detail for a respective block object is determined based on dimension data fields of the respective block object;

determining a complete level of detail for the first block object by performing a union of the local of detail for the first block object and the local level of detail for each of the one or more ancestor block objects; and

generating a first query, for the first block object, specifying aggregation of each measure data field of the first block object according to the complete level of detail for the first block object.

11. The computer system of claim 10 , wherein a respective layout type of the first block object is an inline arrangement, and the one or more programs including instructions for:

executing the first query to retrieve a first set of tuples from the data source; and

displaying a respective visual mark for each of the retrieved set of tuples in a cell or visual component of the data visualization.

12. The computer system of claim 7 , wherein the data visualization includes a visual component for each block object.

13. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which, when executed by a computer system with a display generation component, and one or more input devices, cause the device to:

obtaining a plurality of interrelated block objects corresponding to a plurality of block cards displayed in a canvas region of a user interface, each block object having a corresponding specification that includes (i) a layout type; (ii) a mark type; (iii) one or more visual encodings; and (iv) one or more data fields of a data source, as specified in a respective block card of the plurality of block cards, wherein each block card is generated in response to user placement of one or more respective data field icons onto the canvas region and/or onto the block card, where the one or more respective data field icons represent data fields from the data source;

executing a plurality of queries, each query generated for each block object of the plurality of interrelated block objects to retrieve a respective set of tuples from the data source, each tuple comprising data values for the respective one or more data fields of the block object; and

generating a data visualization in accordance with the specifications corresponding to each block object of the plurality of interrelated block objects, wherein each tuple in each of the respective set of tuples is represented as a visual mark in the data visualization.

14. The non-transitory computer readable storage medium of claim 13 , wherein the plurality of interrelated block objects have parent-child relationships that form a directed acyclic graph.

15. The non-transitory computer readable storage medium of claim 14 , wherein:

respective relative positions of the plurality of block cards displayed in the canvas region form an adjacency graph; and

the directed acyclic graph is generated based on the adjacency graph.

16. The non-transitory computer readable storage medium of claim 14 , wherein a first block object has one or more ancestor block objects according to the parent-child relationships in the directed acyclic graph, and generating the data visualization includes:

determining a local level of detail for the first block object and local level of details for each of the one or more ancestor block objects, wherein a local level of detail for a respective block object is determined based on dimension data fields of the respective block object;

determining a complete level of detail for the first block object by performing a union of the local of detail for the first block object and the local level of detail for each of the one or more ancestor block objects; and

generating a first query, for the first block object, specifying aggregation of each measure data field of the first block object according to the complete level of detail for the first block object.

17. The non-transitory computer readable storage medium of claim 16 , wherein a respective layout type of the first block object is an inline arrangement, and the one or more programs including instructions for:

executing the first query to retrieve a first set of tuples from the data source; and

displaying a respective visual mark for each of the retrieved set of tuples in a cell or visual component of the data visualization.

18. The non-transitory computer readable storage medium of claim 13 , wherein the data visualization includes a visual component for each block object.

Continuity (5)
Continuation 17589690 · Jan 31, 2022
Provisional Application 63169139 · Mar 31, 2021
Provisional Application 63291335 · Dec 17, 2021
Provisional Application 63304611 · Jan 29, 2022
Related Publication 20240168966A1 · May 23, 2024
References Cited (81)
US 5574908A · Harding · 1996 [cited by examiner]
US 5767854A · Anwar · 1998 [cited by examiner]
US 6750864B1 · Anwar · 2004 [cited by applicant]
US 6813615B1 · Colasanti · 2004 [cited by applicant]
US 6995768B2 · Jou · 2006 [cited by applicant]
US 7130812B1 · Lyer et al. · 2006 [cited by applicant]
US 7461077B1 · Greenwood · 2008 [cited by examiner]
US 8812947B1 · Maoz et al. · 2014 [cited by applicant]
US 9202297B1 · Winters · 2015 [cited by examiner]
US 9779147B1 · Sherman · 2017 [cited by examiner]
US 11016650B1 · Kritzer · 2021 [cited by applicant]
US 11269871B1 · Bigdelu · 2022 [cited by examiner]
US 20030071814A1 · Jou · 2003 [cited by applicant]
US 20050091640A1 · McCollum et al. · 2005 [cited by applicant]
US 20060206512A1 · Hanrahan et al. · 2006 [cited by applicant]
US 20070130113A1 · Ting · 2007 [cited by applicant]
US 20090322755A1 · Holm-Peterson · 2009 [cited by applicant]
US 20100313157A1 · Carlsson et al. · 2010 [cited by applicant]
US 20110225525A1 · Chasman et al. · 2011 [cited by applicant]
US 20120054331A1 · Dagan · 2012 [cited by applicant]
US 20120272186A1 · Kraut · 2012 [cited by applicant]
US 20120284259A1 · Jehuda · 2012 [cited by examiner]
US 20130080444A1 · Wakefield · 2013 [cited by applicant]
US 20130085961A1 · Naghshin · 2013 [cited by applicant]
US 20130097177A1 · Fan · 2013 [cited by applicant]
US 20130232452A1 · Krajec et al. · 2013 [cited by applicant]
US 20130275904A1 · Bhaskaran · 2013 [cited by applicant]
US 20130289774A1 · Day et al. · 2013 [cited by applicant]
US 20140040182A1 · Gilder et al. · 2014 [cited by applicant]
US 20140049557A1 · Hou · 2014 [cited by applicant]
US 20140157142A1 · Heinrich et al. · 2014 [cited by applicant]
US 20140172654A1 · Wagner · 2014 [cited by applicant]
US 20140207802A1 · Raghavan et al. · 2014 [cited by applicant]
US 20150040047A1 · Baarz · 2015 [cited by applicant]
US 20150040052A1 · Noel et al. · 2015 [cited by applicant]
US 20150261737A1 · Devarajan et al. · 2015 [cited by applicant]
US 20150356064A1 · Mizuno et al. · 2015 [cited by applicant]
US 20160103871A1 · Zheng et al. · 2016 [cited by applicant]
US 20160231900A1 · Meaney et al. · 2016 [cited by applicant]
US 20160246490A1 · Cabral · 2016 [cited by applicant]
US 20160246863A1 · Sexton · 2016 [cited by applicant]
US 20160350389A1 · Kloke et al. · 2016 [cited by applicant]
US 20160378843A1 · Cherwonka et al. · 2016 [cited by applicant]
US 20170024651A1 · Mishra · 2017 [cited by applicant]
US 20170052747A1 · Cervelli · 2017 [cited by examiner]
US 20170091246A1 · Risvik et al. · 2017 [cited by applicant]
US 20180032216A1 · Naous · 2018 [cited by applicant]
US 20180041411A1 · Shaked · 2018 [cited by applicant]
US 20180253218A1 · Levesque et al. · 2018 [cited by applicant]
US 20180260450A1 · Wang · 2018 [cited by examiner]
US 20190188333A1 · Williams · 2019 [cited by applicant]
US 20190201130A1 · Shelton, IV · 2019 [cited by examiner]
US 20190362525A1 · Stewart · 2019 [cited by applicant]
US 20200005509A1 · Gibb et al. · 2020 [cited by applicant]
US 20200019546A1 · Luo · 2020 [cited by examiner]
US 20200019548A1 · Agnew · 2020 [cited by applicant]
US 20200125559A1 · Talbot · 2020 [cited by examiner]
US 20200233559A1 · Rueter · 2020 [cited by examiner]
US 20200320759A1 · Swider · 2020 [cited by applicant]
US 20210142001A1 · Beers · 2021 [cited by applicant]
US 20210224328A1 · Schrupp · 2021 [cited by applicant]
US 20210272029A1 · Gustafsson et al. · 2021 [cited by applicant]
US 20220381779A1 · Ogievetsky · 2022 [cited by applicant]
CN 105512139B · 2019 [cited by applicant]
CN 111736823A · 2020 [cited by applicant]
Brehmer, Office Action, U.S. Appl. No. 17/956,720, filed Feb. 15, 2024, 16 pgs. [cited by applicant]
Brehmer, Final Office Action, U.S. Appl. No. 17/956,720, filed Aug. 1, 2024, 18 pgs. [cited by applicant]
Brehmer, Office Action, U.S. Appl. No. 18/102,678, filed Apr. 25, 2024, 22 pgs. [cited by applicant]
Brehmer, Final Office Action, U.S. Appl. No. 18/102,678, filed Nov. 5, 2024, 22 pgs. [cited by applicant]
Brehmer, Notice of Allowance, U.S. Appl. No. 17/956,746, filed Oct. 16, 2024, 9 pgs. [cited by applicant]
Kritzer, Office Action U.S. Appl. No. 16/578,180, filed May 14, 2020, 14 pgs. [cited by applicant]
Kritzer, Final Office Action, U.S. Appl. No. 16/578,180, filed Sep. 3, 2020, 14 pgs. [cited by applicant]
Kritzer, Notice of Allowance, U.S. Appl. No. 16/578,180, filed Jan. 25, 2021, 8 pgs. [cited by applicant]
Mitchell, “Moving Average Chart Meaning, Purpse, Limitations,” https://www.investopedia.com/terms/m/movingaveragechart.asp, Apr. 25, 2022, (Year: 2022). [cited by applicant]
Tableau Software, LLC, International Search-Report and Written Opinion, PCT/US2022/022878, Sep. 2, 2022, 15 pgs. [cited by applicant]
Salesforce, Inc., International Search-Report and Written Opinion, PCT/US2023/031055, Nov. 17, 2023, 28 pgs. [cited by applicant]
Whilden, Office Action, U.S. Appl. No. 17/589,690, filed Mar. 31, 2022, 19 pgs. [cited by applicant]
Whilden, Notice of Allowance, U.S. Appl. No. 17/589,690, filed Sep. 7, 2023, 10 pgs. [cited by applicant]
Brehmer, Notice of Allowance, U.S. Appl. No. 17/956,720, filed Nov. 19, 2024, 5 pgs. [cited by applicant]
Brehmer, Office Action, U.S. Appl. No. 18/102,609, Jan. 15, 2025, 11 pgs. [cited by applicant]
Brehmer, Notice of Allowance, U.S. Appl. No. 18/102,678, Feb. 13, 2025, 18 pgs. [cited by applicant]