IP Library Granted Patent US 11,188,558
Granted Patent B2
US 11,188,558 · App. 16/725,986 · Granted Nov 30, 2021

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 11,188,558
App. No.
16/725,986
Granted
Nov 30, 2021
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 (48)

1. A method for visualizing data using a computer that includes one or more processors, wherein the method is executed by the one or more processors that perform actions, comprising:

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

determining one or more of the plurality of objects based on the one or more input fields, wherein each input field corresponds to a determined object;

generating a sub-graph based on the one or more determined objects, wherein the one or more determined objects are nodes of the sub-graph and relationships between two or more of the determined objects are edges of the sub-graph;

iteratively pruning zero or more determined objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the one or more determined objects, wherein each pruned object is determined to be an attribute of at least one the one or more determined objects;

in response to the iterative pruning providing one remaining determined object in the sub-graph, assigning the one remaining determined object as a parent of the computed field, wherein the computed field is an unparentable computed field when the iterative pruning provides two or more remaining determined objects in the subgraph; and

displaying the computed field in a user-interface based on the parent of the computed field.

2. The method of claim 1 , further comprising, determining the computed field is an unparentable computed field based on one or more of the input fields being a constant value.

3. The method of claim 1 , further comprising, determining the computed field is an unparentable computed field based on a computation associated with the computed field being an aggregate function.

4. The method of claim 1 , further comprising, determining one or more attributes of the one or more determined objects based on a determination of a many-to-one relationship between two of the determined objects.

5. A processor readable non-transitory storage media that includes instructions for visualizing data, wherein execution of the instructions by one or more processors, performs actions, comprising:

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

determining one or more of the plurality of objects based on the one or more input fields, wherein each input field corresponds to a determined object;

generating a sub-graph based on the one or more determined objects, wherein the one or more determined objects are nodes of the sub-graph and relationships between two or more of the determined objects are edges of the sub-graph;

iteratively pruning zero or more determined objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the one or more determined objects, wherein each pruned object is determined to be an attribute of at least one the one or more determined objects;

in response to the iterative pruning providing one remaining determined object in the sub-graph, assigning the one remaining determined object as a parent of the computed field, wherein the computed field is an unparentable computed field when the iterative pruning provides two or more remaining determined objects in the subgraph; and

displaying the computed field in a user-interface based on the parent of the computed field.

6. The media of claim 5 , further comprising, determining the computed field is an unparentable computed field based on one or more of the input fields being a constant value.

7. The media of claim 5 , further comprising, determining the computed field is an unparentable computed field based on a computation associated with the computed field being an aggregate function.

8. The media of claim 5 , further comprising, determining one or more attributes of the one or more determined objects based on a determination of a many-to-one relationship between two of the determined objects.

9. A system for visualizing data over a network, comprising:

a network computer, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

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

determining one or more of the plurality of objects based on the one or more input fields, wherein each input field corresponds to a determined object;

generating a sub-graph based on the one or more determined objects, wherein the one or more determined objects are nodes of the sub-graph and relationships between two or more of the determined objects are edges of the sub-graph;

iteratively pruning zero or more determined objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the one or more determined objects, wherein each pruned object is determined to be an attribute of at least one the one or more determined objects;

in response to the iterative pruning providing one remaining determined object in the sub-graph, assigning the one remaining determined object as a parent of the computed field, wherein the computed field is an unparentable computed field when the iterative pruning provides two or more remaining determined objects in the subgraph; and

a client computer, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

displaying the computed field in a user-interface based on the parent of the computed field.

10. The system of claim 9 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising, determining the computed field is an unparentable computed field based on one or more of the input fields being a constant value.

11. The system of claim 9 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising, determining the computed field is an unparentable computed field based on a computation associated with the computed field being an aggregate function.

12. The system of claim 9 , wherein the one or more processors of the network computer execute instructions that perform actions, further comprising, determining one or more attributes of the one or more determined objects based on a determination of a many-to-one relationship between two of the determined objects.

13. A network computer for visualizing data over a network, comprising:

a memory that stores at least instructions; and

one or more processors that execute instructions that perform actions, including:

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

determining one or more of the plurality of objects based on the one or more input fields, wherein each input field corresponds to a determined object;

generating a sub-graph based on the one or more determined objects, wherein the one or more determined objects are nodes of the sub-graph and relationships between two or more of the determined objects are edges of the sub-graph;

iteratively pruning zero or more determined objects from the sub-graph based on a traversal of the sub-graph and one or more characteristics of the one or more determined objects, wherein each pruned object is determined to be an attribute of at least one the one or more determined objects;

in response to the iterative pruning providing one remaining determined object in the sub-graph, assigning the one remaining determined object as a parent of the computed field, wherein the computed field is an unparentable computed field when the iterative pruning provides two or more remaining determined objects in the subgraph; and

displaying the computed field in a user-interface based on the parent of the computed field.

14. The network computer of claim 13 , wherein the one or more processors execute instructions that perform actions, further comprising, determining the computed field is an unparentable computed field based on one or more of the input fields being a constant value.

15. The network computer of claim 13 , wherein the one or more processors execute instructions that perform actions, further comprising, determining the computed field is an unparentable computed field based on a computation associated with the computed field being an aggregate function.

16. The network computer of claim 13 , wherein the one or more processors execute instructions that perform actions, further comprising, determining one or more attributes of the one or more determined objects based on a determination of a many-to-one relationship between two of the determined objects.

Assignments (2)
CHANGE OF NAME Recorded Feb 22, 2021
From: TABLEAU SOFTWARE, INC.
To: TABLEAU SOFTWARE, LLC
Reel/Frame 055361/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2019
From: BORDEN, NICOLAS RATIGAN; EUBANK, CHRISTIAN GABRIEL; TALBOT, JUSTIN FAUX
To: TABLEAU SOFTWARE, INC.
Reel/Frame 051360/0168 →
Continuity (2)
Provisional Application 62944977 · Dec 6, 2019
Related Publication 20210173849A1 · Jun 10, 2021