# US 12,216,676 B2 · Dynamic query engine for data visualization

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

- Number: US 12,216,676 B2
- Document ID: US12216676B2
- Status: Granted
- Kind: B2
- Application number: 17/829,239
- Filed: 2022-05-31
- Published: 2022-12-01
- Granted: 2025-02-04
- Earliest claimed: 2021-05-28
- Assignees: Imply Data, Inc.
- Applicants: Imply Data, Inc.
- Inventors: Vadim Ogievetsky
- Web page: https://patentgrep.com/patent/US12216676B2

## CPC

- G06F 16/26: Visual data mining; Browsing structured data
- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 16/287: {Visualization; Browsing}
- G06F 16/9574: {of access to content, e.g. by caching}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for implementing a dynamic query mechanism to facilitate on-demand data visualization is disclosed. The method includes receiving user interaction in association with rendering a visualization of a data cube, determining a set of visibility constraints based on the user interaction, periodically checking in with a data container to determine whether there is data to load based on the set of visibility constraints, issuing a query to fetch values of the data from a database responsive to determining that there is data to load, dynamically loading the fetched values of the data into the data container, and rendering the visualization of the data cube using the data container.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving user interaction in association with rendering a visualization of a data cube in a user interface of a client device, the user interaction being one of a group of user interactions received in a predetermined interval of time;
responsive to receiving the user interaction, determining a data container including a multi-dimensional array of data associated with the visualization of the data cube and a set of visibility constraints corresponding to one or more indices of the multi-dimensional array of data in the data container brought into view in the user interface of the client device by the user interaction, wherein bounds in the set of visibility constraints is defined by a display size of the user interface of the client device and a number of dimensions in the data container is defined by a number of split axes, a measure axis, and a comparison axis in the multi-dimensional array of data;
periodically checking in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded;
responsive to determining that there is data to be loaded, issuing a query to fetch values of the data from a database;
dynamically loading the fetched values of the data into the data container; and
rendering the visualization of the data cube in the user interface of the client device using the dynamically loaded data container.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein determining the set of visibility constraints comprises:
determining a height, a width, and an area visible in the user interface depicting the visualization of the data cube on a display screen of the client device responsive to receiving the user interaction; and
determining the set of visibility constraints based on the height, the width, and the area visible in the user interface depicting the visualization of the data cube on the display screen of the client device.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein periodically checking in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded further comprises:
identifying a split axis and a measure that needs loading in association with the visualization of the data cube based on the set of visibility constraints;
determining the data including one or more values of the split axis in the data container to load;
determining a coordinate to map into the data container using the values of the split axis and the measure; and
determining the data including a facet in the data container that maps to the coordinate to load.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein periodically checking in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded further comprises determining that there is a change in the set of visibility constraints.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein the split axis is nested.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the user interaction includes one from a group of:
filtering data in the visualization of the data cube,
splitting the data in the visualization of the data cube,
selecting a type of visualization, a measure, and a comparison of measure in the visualization of the data cube, and
scrolling the user interface depicting the visualization of the data cube.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the data container comprises the number of split axes and an array of selected measures in association with rendering the visualization of the data cube.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the data container is a data structure comprising a multi-dimensional array of facets, each facet indexed by a coordinate including filter and measure.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein each one in the set of visibility constraints is a pair of numbers representing a minimum and maximum number of values to load in the visualization of the data cube.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the database is a table.

### Claim 11

A system comprising:
one or more processors; and
a memory, the memory storing instructions, which when executed cause the one or more processors to:
receive user interaction in association with rendering a visualization of a data cube in a user interface of a client device, the user interaction being one of a group of user interactions received in a predetermined interval of time;
responsive to the user interaction received, determine a data container including a multi-dimensional array of data associated with the visualization of the data cube and a set of visibility constraints corresponding to one or more indices of the multi-dimensional array of data in the data container brought into view in the user interface of the client device by the user interaction, wherein bounds in the set of visibility constraints is defined by a display size of the user interface of the client device and a number of dimensions in the data container is defined by a number of split axes, a measure axis, and a comparison axis in the multi-dimensional array of data;
periodically check in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded;
issue a query to fetch values of the data from a database responsive to determining that there is data to be loaded;
dynamically loading the fetched values of the data into the data container; and
render the visualization of the data cube in the user interface of the client device using the dynamically loaded data container.

### Claim 12 (depends on 11)

The system of claim 11, wherein to determine the set of visibility constraints, the instructions further cause the one or more processors to:
determine a height, a width, and an area visible in the user interface depicting the visualization of the data cube on a display screen of the client device responsive to receiving the user interaction; and
determine the set of visibility constraints based on the height, the width, and the area visible in the user interface depicting the visualization of the data cube on the display screen of the client device.

### Claim 13 (depends on 11)

The system of claim 11, wherein to periodically check in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded, the instructions further cause the one or more processors to:
identify a split axis and a measure that needs loading in association with the visualization of the data cube based on the set of visibility constraints;
determine the data including one or more values of the split axis in the data container to load;
determine a coordinate to map into the data container using the values of the split axis and the measure; and
determine the data including a facet in the data container that maps to the coordinate to load.

### Claim 14 (depends on 13)

The system of claim 13, wherein to periodically check in with the data container using the set of visibility constraints every predetermined interval of time to determine that there is data to be loaded, the instructions further cause the one or more processors to determine that there is a change in the set of visibility constraints.

### Claim 15 (depends on 13)

The system of claim 13, wherein the split axis is nested.

### Claim 16 (depends on 11)

The system of claim 11, wherein the user interaction includes one from a group of:
filtering data in the visualization of the data cube,
splitting the data in the visualization of the data cube,
selecting a type of visualization, a measure, and a comparison of measure in the visualization of the data cube, and
scrolling the user interface depicting the visualization of the data cube.

### Claim 17 (depends on 11)

The system of claim 11, wherein the data container comprises the number of split axes and an array of selected measures in association with rendering the visualization of the data cube.

### Claim 18 (depends on 11)

The system of claim 11, wherein the data container is a data structure comprising a multi-dimensional array of facets, each facet indexed by a coordinate including filter and measure.

### Claim 19 (depends on 11)

The system of claim 11, wherein each one in the set of visibility constraints is a pair of numbers representing a minimum and maximum number of values to load in the visualization of the data cube.

### Claim 20 (depends on 11)

The system of claim 11, wherein the database is a table.
