IP Library Granted Patent US 11,681,704
Granted Patent B2
US 11,681,704 · App. 15/012,157 · Granted Jun 20, 2023

Methods and systems for distributed data analysis

Inventors: José Dìaz López (Lund, SE); Håkan Wolgé (Malmö, SE)
Assignee: QlikTech International AB
G06F16/2455G06F3/04842G06F16/22G06F16/2264G06F16/2471G06F16/283G06N5/04
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,681,704
App. No.
15/012,157
Granted
Jun 20, 2023
Kind
B2
Abstract

Methods comprising loading a data model in-memory, providing a first graphical object of loaded data based on the data model, wherein the first graphical object represents a plurality of data sets, executing a first procedure in an inference engine based on a user selection in the plurality of data sets to generate a data subset, executing a second procedure in a calculation engine to generate a first multidimensional data cube based on the data subset to generate a second graphical object, providing at least a portion of the data subset to an external engine to perform a third procedure, receiving a result of the third procedure from the external engine, repeating the first procedure and the second procedure based on the data subset and the result of the third procedure to generate a second multidimensional data cube and to generate a third graphical object, and providing the third graphical object.

Claims (38)

1. A method comprising:

loading, by a script engine, a data model in-memory;

generating, based on a first procedure executed in an inference engine, and based on a user selection associated with a first graphical object output via a user interface, a data subset, wherein the first graphical object is representative of a plurality of data sets of the data model;

generating, based on the data subset and a second procedure executed in a calculation engine, a first multidimensional data cube;

providing, by an extension engine, to an external engine to perform a third procedure, at least one tuple comprising an expression and at least one value for each of at least two dimensions of the data subset, wherein the third procedure comprises an evaluation of the expression on at least a portion of the data subset, wherein the portion of the data subset comprises one or more data records associated with the at least one value for each of the at least two dimensions, and wherein the external engine is configured to provide a result of the third procedure that corresponds to a cardinality of the at least one tuple;

receiving, by the extension engine, from the external engine, the result of the third procedure comprising at least one result tuple;

appending, by the extension engine, based on a determination that a cardinality of the at least one result tuple corresponds to the cardinality of the at least one tuple, the result of the third procedure directly to the data model; and

generating a second multidimensional data cube and a second graphical object by repeating the first procedure and the second procedure based on the data subset and the result of the third procedure.

2. The method of claim 1 , wherein appending the result of the third procedure directly to the data model comprises appending, without intervention from the script engine, the result of the third procedure directly to the data model.

3. The method of claim 1 , wherein receiving the result of the third procedure comprises comparing the result of the third procedure to values of the one or more data records to preserve associativity in the inference engine.

4. The method of claim 1 , wherein the external engine comprises one or more data processing applications.

5. The method of claim 4 , wherein the one or more data processing applications comprises one or more of a simulation application, a statistical application, a mathematical computation application, or a database application.

6. The method of claim 1 , wherein the result of the third procedure comprises at least one value derived from the evaluation of the expression, and wherein appending the result of the third procedure directly to the data model comprises appending the value derived from the evaluation of the expression directly to the data model.

7. A method comprising:

receiving a user selection of in-memory data, wherein the in-memory data comprises one or more tables, and wherein the in-memory data is loaded from a data model into memory by a script engine;

determining, based on the user selection, one or more related tables;

generating, based on a first calculation evaluated on at least a portion of the related tables, a first hypercube;

receiving a request for external processing to be performed by an external engine;

sending, by an extension engine, for external processing by the external engine, tuple comprising expression and value for each of at least two dimensions of the related tables, wherein the external processing comprises an evaluation of the expression on at least a portion of the related tables comprising one or more data records associated with the value for each of the at least two dimensions, and wherein the external engine is configured to provide a result of the evaluation that corresponds to a cardinality of the tuple;

receiving, by the extension engine, from the external engine, the result of the evaluation comprising result tuple;

appending, by the extension engine, based on a determination that a cardinality of the at least one result tuple corresponds to the cardinality of the tuple, the result of the evaluation directly to the data model;

generating, based on a second calculation evaluated on the one or more related tables and the result of the evaluation, a second hypercube; and

generating a graphical object based on the second hypercube.

8. The method of claim 7 , wherein appending the result of the evaluation directly to the data model comprises appending, without intervention from the script engine, the result of the evaluation directly to the data model.

9. The method of claim 7 , wherein the external engine comprises one or more data processing applications.

10. The method of claim 9 , wherein the one or more data processing applications comprises one or more of a simulation application, a statistical application, a mathematical computation application, or a database application.

11. A non-transitory computer-readable storage medium comprising processor-executable instructions that, when executed by a processor of a computing device, cause the computing device to:

load, by a script engine, a data model in-memory;

generate, based on a first procedure executed in an inference engine, and based on a user selection associated with a first graphical object output via a user interface, a data subset, wherein the first graphical object is representative of a plurality of data sets of the data model;

generate, based on the data subset and a second procedure executed in a calculation engine, a first multidimensional data cube;

provide, by an extension engine, to an external engine, to perform a third procedure, at least one tuple comprising an expression and value for each of at least two dimensions of the data subset, wherein the third procedure comprises an evaluation of the expression on at least a portion of the data subset, wherein the portion of the data subset comprises one or more data records associated with the value for each of the at least two dimensions, and wherein the external engine is configured to provide a result of the third procedure that corresponds to a cardinality of the tuple;

receive, by the extension engine, from the external engine via the second computing device, the result of the third procedure comprising result tuple;

append, by the extension engine, based on a determination that a cardinality of the at least one result tuple corresponds to the cardinality of the tuple, the result of the third procedure directly to the data model; and

generate a second multidimensional data cube and a second graphical object by repeating the first procedure and the second procedure based on the data subset and the result of the third procedure.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the processor-executable instructions that cause the computing device to append the result of the third procedure directly to the data model cause the computing device to append, without intervention from the script engine, the result of the third procedure directly to the data model.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the processor-executable instructions that cause the computing device to receive a result of the third procedure further cause the computing device to compare the result of the third procedure to values of the one or more data records to preserve associativity in the inference engine.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the external engine comprises one or more data processing applications.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the result of the third procedure comprises value derived from the evaluation of the expression, and wherein the processor-executable instructions that cause the computing device to append the result of the third procedure directly to the data model further cause the computing device to append the value derived from the evaluation of the expression directly to the data model.

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 Feb 15, 2019
From: LOPEZ, JOSE DIAZ; WOLGE, HAKAN
To: QLIKTECH INTERNATIONAL AB
Reel/Frame 048348/0314 →
Continuity (1)
Related Publication 20170220640A1 · Aug 3, 2017