IP Library Granted Patent US 12,222,918
Granted Patent B2
US 12,222,918 · App. 18/359,449 · Granted Feb 11, 2025

Chart engine

Inventors: Johan Nilsson (Lund, SE); José Díaz López (Lund, SE)
Assignee: QlikTech International AB
G06F16/2264G06F16/2237G06F16/2255G06F16/2282G06F16/24553
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,222,918
App. No.
18/359,449
Granted
Feb 11, 2025
Kind
B2
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 (41)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (3)
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 8, 2025
From: QLIKTECH INTERNATIONAL AB
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071224/0394 →
SECURITY INTEREST Recorded Apr 18, 2024
From: QLIKTECH INTERNATIONAL AB
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 067168/0117 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2023
From: NILSSON, JOHAN; DÍAZ LÓPEZ, JOSÉ
To: QLIKTECH INTERNATIONAL AB
Reel/Frame 064520/0763 →
Continuity (4)
Continuation 17466133 · Sep 3, 2021
Continuation 15984098 · May 18, 2018
Provisional Application 62505591 · May 12, 2017
Related Publication 20240095227A1 · Mar 21, 2024
References Cited (17)
US 6629095B1 · Wagstaff · 2003 [cited by applicant]
US 7058621B1 · Wolgé · 2006 [cited by applicant]
US 8244741B2 · Wolgé · 2012 [cited by applicant]
US 8745099B2 · Wolgéet al. · 2014 [cited by applicant]
US 20030004938A1 · Lawder · 2003 [cited by applicant]
US 20030004958A1 · Russell · 2003 [cited by examiner]
US 20040215641A1 · Kothuri · 2004 [cited by applicant]
US 20040267765A1 · Tkachuk · 2004 [cited by examiner]
US 20040267799A1 · Petculescu et al. · 2004 [cited by applicant]
US 20080114793A1 · Grosset et al. · 2008 [cited by applicant]
US 20120131408A1 · Tada · 2012 [cited by examiner]
US 20140108467A1 · Tutuk et al. · 2014 [cited by applicant]
US 20160062586A1 · Muller · 2016 [cited by applicant]
Bellatreche, L., Chapter 2: Dimension Table Selection Strategies to Referential Partition a Fact Table of Relational Data Warehouses. Recent Trends in Information Reuse and Integration. 2012; pp. 19-41 (24 pages). [cited by applicant]
Lane, P. et al., “Oracle Database Data Warehousing Guide, Ilg Release 1 (11.1)”, (2007), p. I-XXVI, Retrieved from the Internet: <URL: https://docs.oracle.com/cd/B28359_01/server.111/b28313.pdf> [retrieved on Aug. 9, 20… [cited by applicant]
European Search Report and Written Opinion issued on Sep. 25, 2018 for EP 18171529.3, (8 pages). [cited by applicant]
European Search Report and Written Opinion issued on Mar. 1, 2022 for EP 21207938.8, (11 pages). [cited by applicant]