# US 12,222,918 B2 · Chart engine

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

- Number: US 12,222,918 B2
- Document ID: US12222918B2
- Status: Granted
- Kind: B2
- Application number: 18/359,449
- Filed: 2023-07-26
- Published: 2024-03-21
- Granted: 2025-02-11
- Earliest claimed: 2017-05-12
- Assignees: Qliktech International AB
- Applicants: QlikTech International AB
- Inventors: Johan Nilsson; José Díaz López
- Web page: https://patentgrep.com/patent/US12222918B2

## CPC

- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2237: {Vectors, bitmaps or matrices}
- G06F 16/2255: {Hash tables}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/24553: {of query operations}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for processing queries are described herein. As an example, a query may comprise an expression. Based on the expression, one or more indexlets may be determined. Using the one or more indexlets, a result of the expression may be determined.

## Claims

### Claim 1

An apparatus comprising:
one or more processors; and
memory storing processor-executable instructions that, when executed by the one or more processors, cause the apparatus to:
receive an expression comprising a plurality of attributes, wherein the plurality of attributes are associated with a plurality of dimensions of data records stored in a plurality of tables;
determine, based on the expression and an attribute-to-attribute (A2A) index, a plurality of indexlets associated with the expression, wherein the A2A index maps the plurality of attributes to the plurality of indexlets, wherein the plurality of indexlets are associated with at least one bidirectional global attribute list, and wherein an entry in the at least one bidirectional global attribute list associated with a particular attribute, of the plurality of attributes, comprises a reference to an indexlet, of the plurality of indexlets, corresponding to that attribute; and
generate, based on the plurality of indexlets and the expression, at least one graphical object, wherein each indexlet, of the plurality of indexlets, indicates whether a particular attribute value associated with one of the plurality of attributes of the expression is present or not present in each row of a block of rows within a table, of the plurality of tables, corresponding to that indexlet.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the processor-executable instructions that cause the apparatus to generate the at least one graphical object further cause the apparatus to:
query each of the plurality of indexlets with the plurality of attributes of the expression;
receive a result from each of the plurality of indexlets; and
generate, based on the result of the expression, the at least one graphical object.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the processor-executable instructions that cause the apparatus to generate the at least one graphical object further cause the apparatus to:
determine, based on the plurality of indexlets, a result of the expression; and
generate, based on the result of the expression, the at least one graphical object.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the at least one bidirectional global attribute list, for each of the plurality of attributes, comprises a reference to at least one of the plurality of indexlets that corresponds to that attribute.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of dimensions.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of attributes.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based the plurality of attributes and the plurality of dimensions.

### Claim 8

One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors of at least one computing device, cause the at least one computing device to:
receive an expression comprising a plurality of attributes, wherein the plurality of attributes are associated with a plurality of dimensions of data records stored in a plurality of tables;
determine, based on the expression and an attribute-to-attribute (A2A) index, a plurality of indexlets associated with the expression, wherein the A2A index maps the plurality of attributes to the plurality of indexlets, wherein the plurality of indexlets are associated with at least one bidirectional global attribute list, and wherein an entry in the at least one bidirectional global attribute list associated with a particular attribute, of the plurality of attributes, comprises a reference to an indexlet, of the plurality of indexlets, corresponding to that attribute; and
generate, based on the plurality of indexlets and the expression, at least one graphical object, wherein each indexlet, of the plurality of indexlets, indicates whether a particular attribute value associated with one of the plurality of attributes of the expression is present or not present in each row of a block of rows within a table, of the plurality of tables, corresponding to that indexlet.

### Claim 9 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the processor-executable instructions that cause the at least one computing device to generate the at least one graphical object further cause the at least one computing device to:
query each of the plurality of indexlets with the plurality of attributes of the expression;
receive a result from each of the plurality of indexlets; and
generate, based on the result of the expression, the at least one graphical object.

### Claim 10 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the processor-executable instructions that cause the at least one computing device to generate the at least one graphical object further cause the at least one computing device to:
determine, based on the plurality of indexlets, a result of the expression; and
generate, based on the result of the expression, the at least one graphical object.

### Claim 11 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the at least one bidirectional global attribute list, for each of the plurality of attributes, comprises a reference to at least one of the plurality of indexlets that corresponds to that attribute.

### Claim 12 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of dimensions.

### Claim 13 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of attributes.

### Claim 14 (depends on 8)

The one or more non-transitory computer-readable media of claim 8, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based the plurality of attributes and the plurality of dimensions.

### Claim 15

One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by one or more processors of at least one computing device, cause the at least one computing device to:
receive an expression comprising a plurality of attributes, wherein the plurality of attributes are associated with a plurality of dimensions of data records stored in a plurality of tables;
determine, based on the expression and an attribute-to-attribute (A2A) index, a plurality of indexlets associated with the expression, wherein the A2A index maps the plurality of attributes to the plurality of indexlets, wherein the plurality of indexlets are associated with at least one bidirectional global attribute list, and wherein an entry in the at least one bidirectional global attribute list associated with a particular attribute, of the plurality of attributes, comprises a reference to an indexlet, of the plurality of indexlets, corresponding to that attribute; and
determine, based on the plurality of indexlets, a result of the expression, wherein each indexlet, of the plurality of indexlets, indicates whether a particular attribute value associated with one of the plurality of attributes of the expression is present or not present in each row of a block of rows within a table, of the plurality of tables, corresponding to that indexlet.

### Claim 16 (depends on 15)

The one or more non-transitory computer-readable media of claim 15, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of attributes.

### Claim 17 (depends on 15)

The one or more non-transitory computer-readable media of claim 15, wherein the plurality of indexlets bidirectionally index blocks of rows of each of the plurality of tables to the A2A index based on the plurality of dimensions.

### Claim 18 (depends on 15)

The one or more non-transitory computer-readable media of claim 15, wherein the processor-executable instructions that cause the at least one computing device to determine the result of the expression further cause the at least one computing device to query each of the plurality of indexlets with the plurality of attributes of the expression.

### Claim 19 (depends on 18)

The one or more non-transitory computer-readable media of claim 18, wherein the processor-executable instructions further cause the at least one computing device to receive a result from each of the plurality of indexlets.

### Claim 20 (depends on 19)

The one or more non-transitory computer-readable media of claim 19, wherein the processor-executable further cause the at least one computing device to generate, based on the results, at least one graphical object.
