IP Library › Granted Patent US 12,748,771
Granted Patent B2
US 12,748,771 · App. 18/506,046 · Granted Sep 29, 2026

Parenting computed fields with data objects

Inventors: Nicolas Ratigan Borden (Seattle, WA); Christian Gabriel Eubank (Seattle, WA); Justin Faux Talbot (Seattle, WA)
Assignee: Tableau Software, LLC
G06F16/26G06F3/14G06F16/9024
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,748,771
App. No.
18/506,046
Granted
Sep 29, 2026
Kind
B2
Abstract

Embodiments are directed to visualizing data. A computed field that includes input fields and an object model that includes objects may be provided. One or more of the objects may be determined based on the input fields such that each input field corresponds to a determined object. A sub-graph may be generated based on the determined objects. Zero or more determined objects may be pruned from the sub-graph based on a traversal of the sub-graph and characteristics of the determined objects such that each pruned object may be determined to be an attribute of at least one of the determined objects. In response to the iterative pruning providing one remaining determined object in the sub-graph, assigning the remaining determined object as a parent of the computed field.

Claims (40)

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:

providing (i) a computed field that includes one or more input fields and (ii) an object model that includes a plurality of objects;

generating a sub-graph, for the computed field, based on one or more objects and relationships between two or more of the objects;

iteratively pruning objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the objects; and

displaying a first computed field in a user interface based on a parent of the first computed field being assigned to one remaining object in the sub-graph, including:

in accordance with a determination that more than one object remains in the sub-graph, after iteratively pruning the objects from the sub-graph, displaying the first computed field, in the user interface, to indicate that no parent has been assigned to the first computed field.

2 . The method of claim 1 , wherein iteratively pruning the objects comprises removing, from the sub-graph, a first object of the one or more objects that is determined to be an attribute of a second object of the one or more objects.

3 . The method of claim 1 , wherein iteratively pruning the objects is further based on determining attributes based on an existence of a many-to-one relationship between two of the one or more objects.

4 . The method of claim 1 , wherein generating the sub-graph comprises forming a minimum sub-graph in the object model that includes each object that contributes input values to the computed field.

5 . The method of claim 1 , further comprising:

determining that the computed field does not have a parent if the computed field is based on one or more input fields that have a constant value.

6 . The method of claim 1 , further comprising:

determining that the computed field does not have a parent if the computed field includes one or more aggregate calculations.

7 . A system for visualizing data, comprising:

one or more processors;

memory coupled to the one or more processors; and

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

providing (i) a computed field that includes one or more input fields and (ii) an object model that includes a plurality of objects;

generating a sub-graph, for the computed field, based on one or more objects and relationships between two or more of the objects;

iteratively pruning objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the objects; and

displaying a first computed field in a user interface based on a parent of the first computed field being assigned to one remaining object in the sub-graph, including:

in accordance with a determination that more than one object remains in the sub-graph, after iteratively pruning the objects from the sub-graph, displaying the first computed field, in the user interface, to indicate that no parent has been assigned to the first computed field.

8 . The system of claim 7 , wherein the instructions for iteratively pruning the objects further include instructions for removing, from the sub-graph, a first object of the one or more objects that is determined to be an attribute of a second object of the one or more objects.

9 . The system of claim 7 , wherein the instructions for iteratively pruning the objects further include instructions for determining attributes based on an existence of a many-to-one relationship between two of the one or more objects.

10 . The system of claim 7 , wherein the instructions for generating the sub-graph further include instructions for forming a minimum sub-graph in the object model that includes each object that contributes input values to the computed field.

11 . The system of claim 7 , wherein the one or more programs further include instructions for:

determining that the computed field does not have a parent if the computed field is based on one or more input fields that have a constant value.

12 . The system of claim 7 , wherein the one or more programs further include instructions for:

determining that the computed field does not have a parent if the computed field includes one or more aggregate calculations.

13 . 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 and memory, the one or more programs comprising instructions for:

providing (i) a computed field that includes one or more input fields and (ii) an object model that includes a plurality of objects;

generating a sub-graph, for the computed field, based on one or more objects and relationships between two or more of the objects;

iteratively pruning objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the objects; and

displaying a first computed field in a user interface based on a parent of the computed field being assigned to one remaining object in the sub-graph, including:

in accordance with a determination that more than one object remains in the sub-graph, after iteratively pruning the objects from the sub-graph, displaying the first computed field, in the user interface, to indicate that no parent has been assigned to the first computed field.

14 . The non-transitory computer readable storage medium of claim 13 , wherein the instructions for iteratively pruning the objects comprises instructions for removing, from the sub-graph, a first object of the one or more objects that is determined to be an attribute of a second object of the one or more objects.

15 . The non-transitory computer readable storage medium of claim 13 , wherein the instructions for iteratively pruning the objects further comprise instructions for determining attributes based on an existence of a many-to-one relationship between two of the one or more objects.

16 . The non-transitory computer readable storage medium of claim 13 , wherein the instructions for generating the sub-graph further comprises instructions for forming a minimum sub-graph in the object model that includes each object that contributes input values to the computed field.

17 . The non-transitory computer readable storage medium of claim 13 , wherein the one or more programs further comprise instructions for:

determining that the computed field as not having a parent if the computed field is based on one or more input fields that have a constant value.

Continuity (4)
Continuation 17535465 · Nov 24, 2021
Continuation 16725986 · Dec 23, 2019
Provisional Application 62944977 · Dec 6, 2019
Related Publication 20240289348A1 · Aug 29, 2024
References Cited (3)
US 9613086B1 · Sherman · 2017 [cited by examiner]
US 10783162B1 · Montague · 2020 [cited by examiner]
US 20200372057A1 · Tonkin · 2020 [cited by examiner]