IP Library › Granted Patent US 11,921,710
Granted Patent B2
US 11,921,710 · App. 17/587,181 · Granted Mar 5, 2024

Systems and methods for accessing data entities managed by a data processing system

Inventors: Halldor Isak Gylfason (Cambridge, MA); Robert Parks (Weston, MA)
Assignee: Ab Initio Technology LLC
G06F16/2425G06F9/54G06F16/248
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,921,710
App. No.
17/587,181
Filed
Jan 28, 2022
Granted
Mar 5, 2024
Kind
B2
Art Unit
2153
USPC
707/722
Abstract

Techniques for obtaining information about data entity instances managed by a data processing system using at least one data store. The techniques include obtaining a query comprising a first portion comprising information for identifying instances of a first data entity stored in at least one data store; and a second portion indicating at least one attribute of the first data entity; generating, from the query, a plurality of executable queries including a first set of one or more executable queries and a second set of one or more executable queries, the generating comprising: generating, using the first portion, the first set of executable queries for identifying instances of the first data entity, and generating, using the second portion, the second set of executable queries for obtaining attribute values for instances of the first data entity; and executing the plurality of executable queries to obtain results for the query.

Claims (77)

1. A method, performed by a data processing system, for obtaining, in a computationally efficient manner, a first attribute value of a first instance of a data entity in response to a query, the method comprising:

(A) obtaining, through an application programming interface (API) of the data processing system, a query for accessing data, the query comprising:

a first portion comprising information for identifying at least the first instance of the data entity stored in at least one data store; and

a second portion indicating at least one attribute of the data entity for which to obtain a value;

(B) generating a plurality of executable queries including a first set of one or more executable queries and a second set of one or more executable queries, the generating comprising:

using the first portion of the query, generating the first set of executable queries for identifying at least the first instance of the data entity stored in the at least one data store; and

using the second portion of the query, generating the second set of executable queries for obtaining attribute values for at least the first instance of the data entity identified using the first set of executable queries, the attribute values including the first attribute value;

(C) obtaining results for the query provided via the API by executing the plurality of executable queries, the results including at least the first attribute value of the first instance of the data entity; and

(D) outputting at least some of the results including at least the first attribute value of the first instance of the data entity.

2. The method of claim 1 , wherein the first and second sets of executable queries comprise executable structured query language (SQL) queries.

3. The method of claim 1 ,

wherein the first portion comprises information for identifying one or more instances of each of a plurality of data entities, the plurality of data entities includes the data entity;

wherein generating the first set of executable queries comprises generating, for each particular data entity of the plurality of data entities, a respective executable query for identifying instances of the data entity stored in the at least one data store.

4. The method of claim 1 ,

wherein the at least one attribute comprises a plurality of attributes of the data entity,

wherein generating the second set of executable queries comprises generating, for each particular attribute of at least some of the plurality of attributes, a respective executable query to obtain values of the particular attribute for instances of the data entity identified using the first set of executable queries.

5. The method of claim 4 ,

wherein the plurality of attributes includes multiple dynamic attributes, and wherein

generating the second set of executable queries comprises:

grouping the multiple dynamic attributes into groups of dynamic attributes, each of the groups having at least one of the multiple dynamic attributes; and

generating a respective executable query for each of the multiple groups of dynamic attributes to obtain values of attributes in the group for the instances of the data entity.

6. The method of claim 5 , wherein grouping the multiple dynamic attributes is performed based on whether dynamic attributes are stored in a same table in the at least one data store.

7. The method of claim 1 , wherein executing the plurality of executable queries comprises:

executing the first set of executable queries to obtain information

identifying at least the first instance of the data entity; and

after executing the first set of executable queries,

executing, using the information identifying at least the first instance of the data entity, the second set of executable queries.

8. The method of claim 7 , wherein generating the second set of executable queries is performed after executing the first set of executable queries.

9. The method of claim 7 , wherein generating the second set of executable queries is performed before executing the first set of executable queries.

10. The method of claim 7 ,

wherein the at least one attribute includes multiple groups of dynamic attributes of the data entity,

wherein the second set of executable queries includes multiple executable queries respectively corresponding to the multiple groups of dynamic attributes, and

wherein executing the second set of executable queries comprises executing each of the multiple executable queries to obtain respective multiple dynamic attribute value results, the method further comprising:

after executing the second set of executable queries, combining the multiple dynamic value attribute results to obtain the results for the query.

11. The method of claim 1 ,

wherein the second portion of the query comprises an inline view, and

wherein generating the second set of executable queries comprises generating an executable query using information specified in the inline view,

wherein the inline view comprises a tabular query.

12. The method of claim 1 , wherein the second portion of the query indicates, using recursion or nesting, a hierarchy of attributes including the at least one attribute.

13. The method of claim 12 , wherein outputting at least some of the results comprises:

formatting the at least some of the results in a hierarchical format corresponding to the hierarchy of attributes; and

outputting the at least some of the results in the hierarchical format.

14. The method of claim 1 ,

wherein the first portion of the query is transformed through a series of transformations that augments the information in the first portion with information managed by the data processing system to generate the first set of executable queries that are configured to be executed against the at least one data store, and

wherein the second portion of the query is transformed through a series of transformations that augments the information in the second portion with information managed by the data processing system to generate the second set of executable queries that are configured to be executed against the at least one data store.

15. The method of claim 1 , wherein generating the first set of executable queries comprises generating a first executable query at least in part by:

generating an intermediate query representation using the first portion of the query;

augmenting the intermediate query representation using unique identifier information, dynamic attribute reference information, view type information, and/or permissions information to obtain an augmented intermediate query representation; and

generating the first executable query using the augmented intermediate query representation.

16. The method of claim 1 , wherein generating the second set of executable queries comprises generating a second executable query at least in part by:

generating an intermediate query representation using the second portion of the query;

augmenting the intermediate query representation using unique identifier information, dynamic attribute reference information, view type information, and/or permissions information to obtain an augmented intermediate query representation; and

generating the second executable query using the augmented intermediate query representation.

17. The method of claim 1 ,

wherein executing the plurality of executable queries comprises executing the first set of executable queries to obtain information identifying a plurality of data entity instances, and

wherein generating the second set of one or more executable queries is performed using the second portion of the query and the information identifying the plurality of data entity instances.

18. The method of claim 1 , wherein the query is a declarative query.

19. A data processing system, comprising:

at least one computer hardware processor; and

at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform a method for obtaining a first attribute value of a first instance of a data entity in response to a query, the method comprising:

(A) obtaining, through an application programming interface (API) of the data processing system, a query for accessing data, the query comprising:

a first portion comprising information for identifying at least the first instance of the data entity stored in at least one data store; and

a second portion indicating at least one attribute of the data entity for which to obtain a value;

(B) generating a plurality of executable queries including a first set of one or more executable queries and a second set of one or more executable queries, the generating comprising:

using the first portion of the query, generating the first set of executable queries for identifying at least the first instance of the data entity stored in the at least one data store; and

using the second portion of the query, generating the second set of executable queries for obtaining attribute values for at least the first instance of the data entity identified using the first set of executable queries, the attribute values including the first attribute value;

(C) obtaining results for the query provided via the API by executing the plurality of executable queries, the results including at least the first attribute value of the first instance of the data entity; and

(D) outputting at least some of the results including at least the first attribute value of the first instance of the data entity.

20. At least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform a method for obtaining a first attribute value of a first instance of a data entity in response to a query, the method comprising:

(A) obtaining, through an application programming interface (API) of a data processing system, a query for accessing data, the query comprising:

a first portion comprising information for identifying at least the first instance of the data entity stored in at least one data store; and

a second portion indicating at least one attribute of the data entity for which to obtain a value;

(B) generating a plurality of executable queries including a first set of one or more executable queries and a second set of one or more executable queries, the generating comprising:

using the first portion of the query, generating the first set of executable queries for identifying at least the first instance of the data entity stored in the at least one data store; and

using the second portion of the query, generating the second set of executable queries for obtaining attribute values for at least the first instance of the data entity identified using the first set of executable queries, the attribute values including the first attribute value;

(C) obtaining results for the query provided via the API by executing the plurality of executable queries, the results including at least the first attribute value of the first instance of the data entity; and

(D) outputting at least some of the results including at least the first attribute value of the first instance of the data entity.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2022
From: GYLFASON, HALLDOR ISAK; PARKS, ROBERT
To: AB INITIO SOFTWARE LLC
Reel/Frame 061788/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2022
From: AB INITIO SOFTWARE LLC
To: AB INITIO ORIGINAL WORKS LLC
Reel/Frame 061788/0883 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2022
From: AB INITIO ORIGINAL WORKS LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 061789/0007 →
Continuity (2)
Provisional Application 63143895 · Jan 31, 2021
Related Publication 20220245140A1 · Aug 4, 2022
Cited By (3)
US 12,254,002 US 12,524,413 US 12,613,879