# US 11,442,964 B1 · Using objects in an object model as database entities

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,964 B1
- Document ID: US11442964B1
- Status: Granted
- Kind: B1
- Application number: 16/944,056
- Filed: 2020-07-30
- Granted: 2022-09-13
- Earliest claimed: 2020-07-30
- Assignees: Tableau Software, Inc.
- Applicants: Tableau Software, LLC
- Inventors: Thomas Nhan; Elaine Weatherfield Sulc; Susan Denise Doan; Mathew Henry Luebbert
- Web page: https://patentgrep.com/patent/US11442964B1

## CPC

- G06F 16/287: {Visualization; Browsing}
- G06F 40/177: of tables; using ruled lines
- G06F 3/04812: Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for analyzing data from data sources includes receiving user input to specify a mathematical expression. The mathematical expression includes a first data field from a first object and a second data field from a second object. The first object and the second object are distinct objects of an object model that includes a tree in which each relation between objects represents a respective many-to-one relationship between respective objects. The method further includes generating a calculated data field based on the mathematical expression, and assigning the calculated data field as a member of a third object in the object model according to relations in the tree connecting the first object to the second object.

## Claims

### Claim 1

A method for analyzing data from data sources, comprising:
at a computer system having one or more processors and memory storing one or more programs configured for execution by the one or more processors:
loading a schema region of a data visualization user interface with information about a plurality of data objects, each of the data objects visually associated with its respective data fields;
receiving user input to specify a mathematical expression that includes a first data field from a first object of the plurality of data objects and a second data field from a second object of the plurality of data objects, wherein:
the second data field is distinct from the first data field; and
the first object and the second object are distinct objects of an object model comprising a tree in which each relation between objects represents a respective many-to-one relationship between respective objects;
generating a calculated data field based on the mathematical expression;
assigning the calculated data field as a member of a third object of the plurality of data objects in the object model according to relations in the tree connecting the first object to the second object;
displaying the calculated data field, in the schema region, visually associated with the third data object;
receiving user selection of the calculated data field from the schema region and placement of the calculated data field into a shelf region; and
generating and displaying a data visualization according to calculated data values for the calculated data field.

### Claim 2 (depends on 1)

The method of claim 1, wherein the third object is distinct from the first object and distinct from the second object.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the tree includes a many-to-one relationship from the third object to the first object and a many-to-one relationship from the third object to the second object; and
the third object is distinct from each of the first object and the second object.

### Claim 4 (depends on 1)

The method of claim 1, wherein the third object is the same as the first object or the third object is the same as the second object.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the tree includes a many-to-one relationship from the first object to the second object; and
assigning the calculated data field as a member of the third object in the object model comprises assigning the calculated data field as a member of the first object.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the mathematical expression also includes a third data field from a fourth object;
the tree includes a many-to-one relationship from the first object to the second object and a many-to-one relationship from the first object to the fourth object; and
assigning the calculated data field as a member of the third object in the object model comprises assigning the calculated data field as a member of the first object.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the mathematical expression also includes a third data field from a fourth object, distinct from the first object and distinct from the second object;
the tree includes:
a many-to-one relationship from the third object to the first object;
a many-to-one relationship from the third object to the second object;
a many-to-one relationship from the third object to the fourth object; and
the third object is distinct from each of the first object, the second object, and the fourth object.

### Claim 8 (depends on 1)

The method of claim 1, wherein assigning the calculated data field as a member of the third object in the object model comprises:
identifying a set of candidate objects, each candidate object having a respective sequence of zero or more many-to-one relations in the tree from the respective candidate object to each of the first and second objects;
selecting the third object as an object in the set of candidate objects having a smallest total sequence length to the first and second objects.

### Claim 9 (depends on 1)

The method of claim 1, wherein each of the first object, the second object, and the third object belongs to a same data source.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
automatically generating a name and a caption associated with the calculated data field.

### Claim 11 (depends on 1)

The method of claim 1, further comprising displaying the calculated field in a first display mode of the user interface.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
receiving, in the first display mode, a user input to switch from the first display mode to a second display mode that is different from the first display mode; and
in the second display mode, displaying, in the schema region of the user interface, the calculated data field as belonging to a default folder.

### Claim 13 (depends on 12)

The method of claim 12, further comprising, in a second display mode different from the first display mode:
receiving user input to associate the calculated data field with a user-defined folder distinct from the default folder;
displaying, in the schema region of the user interface, the calculated data field as belonging to the user-defined folder.

### Claim 14 (depends on 13)

The method of claim 13, further comprising, in the second display mode:
receiving user input to associate the first data field with the user-defined folder;
displaying, in the schema region of the user interface, the first data field and the calculated data field as belonging to the user-defined folder.

### Claim 15 (depends on 1)

The method of claim 1, further comprising:
displaying a search box in the schema region;
receiving user input in the search box, the user input including a predefined contiguous string of characters specifying a parameter of a search; and
in response to the user input in the search box, filtering the data fields displayed in the schema region, displaying only data fields whose data type matches a data type specified by the search parameter.

### Claim 16 (depends on 15)

The method of claim 15, wherein:
the predefined contiguous string of characters includes “C:” and the user input includes the predefined contiguous string of characters followed by one or more characters corresponding to a search term; and
filtering the data fields displayed in the schema region comprises displaying only calculated data fields whose field names contain the search term or whose calculation expressions include the search term.

### Claim 17

A computing device, comprising:
one or more processors;
memory;
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:
loading a schema region of a data visualization user interface with information about a plurality of data objects, each of the data objects visually associated with its respective data fields;
receiving user input to specify a mathematical expression that includes a first data field from a first object of the plurality of data objects and a second data field from a second object of the plurality of data objects, wherein:
the second data field is distinct from the first data field; and
the first object and the second object are distinct objects of an object model comprising a tree in which each relation between objects represents a respective many-to-one relationship between respective objects;
generating a calculated data field based on the mathematical expression;
assigning the calculated data field as a member of a third object in the object model of the plurality of data objects according to relations in the tree connecting the first object to the second object;
displaying the calculated data field, in the schema region, visually associated with the third data object;
receiving user selection of the calculated data field from the schema region and placement of the calculated data field into a shelf region; and
generating and displaying a data visualization according to calculated data values for the calculated data field.

### Claim 18 (depends on 17)

The computing device of claim 17, wherein assigning the calculated data field as a member of the third object in the object model comprises:
identifying a set of candidate objects, each candidate object having a respective sequence of zero or more many-to-one relations in the tree from the respective candidate object to each of the first and second objects;
selecting the third object as an object in the set of candidate objects having a smallest total sequence length to the first and second objects.

### Claim 19

A non-transitory computer readable storage medium storing 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:
loading a schema region of a data visualization user interface with information about a plurality of data objects, each of the data objects visually associated with its respective data fields;
receiving user input to specify a mathematical expression that includes a first data field from a first object of the plurality of data objects and a second data field from a second object of the plurality of data objects, wherein:
the second data field is distinct from the first data field; and
the first object and the second object are distinct objects of an object model comprising a tree in which each relation between objects represents a respective many-to-one relationship between respective objects;
generating a calculated data field based on the mathematical expression;
assigning the calculated data field as a member of a third object of the plurality of data objects in the object model according to relations in the tree connecting the first object to the second object;
displaying the calculated data field, in the schema region, visually associated with the third data object;
receiving user selection of the calculated data field from the schema region and placement of the calculated data field into a shelf region; and
generating and displaying a data visualization according to calculated data values for the calculated data field.
