IP Library › Granted Patent US 11,645,285
Granted Patent B2
US 11,645,285 · App. 16/387,205 · Granted May 9, 2023

Query engine for recursive searches in a self-describing data system

Inventors: Kevin Gillespie (Andover, MA); Kevin Richard (Andover, MA); Robert McAveney (Boxford, MA); Sergey Murashko (Minsk, BY); Valentsin Shapavalau (Minsk, BY); Andrei Samsonau (Minsk, BY)
Assignee: ARAS CORPORATION
G06F16/24566G06F16/248G06F16/2423G06F16/2448G06F16/26
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,645,285
App. No.
16/387,205
Granted
May 9, 2023
Kind
B2
Abstract

A method for performing recursive searching of items of a data structure having a data mode includes creating an instance of a query definition, the instance of the query definition comprising a unique identifier, specifying one or more elements of the query definition, providing the query definition as an input to a query engine. The method further includes the operations of determining, by the query engine, query execution instructions based on the query definition, the query instructions specifying a recursive level-by-level search until a terminal node of the data structure is reached, obtaining results of a query executed based on the query execution instructions; and outputting query results.

Claims (39)

1. A method for performing recursive searching of items of a data structure having a data model, the method comprising:

creating an instance of a query definition, the instance of the query definition comprising a unique identifier and defining a depth parameter having a name and a value that controls a depth of a recursive level-by-level search of the data structure;

specifying one or more elements of the query definition to be executed as instructions in a single query by a query engine, wherein the one or more elements comprise a query condition including a first dynamic parameter of an execution path comprising a string defining a search route from a parent query item to a child query item and the string references a key associated with the name of the depth parameter having the value that controls the depth of the recursive level-by-level search of the data structure, wherein the first dynamic parameter and the depth parameter are each a respective instance of an item in the data model, and wherein the depth parameter is configured in a configuration document that also configures the key and the string defining the search route from the parent query item to the child query item;

providing the query definition as an input to the query engine;

determining, by the query engine, query execution instructions based on the query definition, the query instructions specifying the recursive level-by-level search, the query engine further calculating the dynamic parameter and using the dynamic parameter with the depth parameter to control the recursive level-by-level search;

obtaining results of a query executed based on the query execution instructions; and

outputting query results.

2. The method of claim 1 , wherein outputting the query results comprises at least one of outputting the query results as a flat output, displaying the results in a tree grid view or displaying the results as a graph visualization.

3. The method of claim 1 , wherein an element of the query definition is specified by a security rule.

4. The method of claim 1 , wherein the data model of the data structure is at least one of a hierarchical data model, a dynamic data model or a self-describing data model.

5. The method of claim 1 , wherein specifying the elements of the query definition comprises at least one of specifying a query item, a query item selection property, a query item sort property, a query item available property, or a query reference.

6. The method of claim 1 , further comprising storing the query definition in the data structure.

7. The method of claim 1 , wherein the query execution instructions specify at least one of traversing the data structure upwards or traversing the data structure downwards.

8. A query engine, comprising:

a processor;

a memory containing instructions, which when executed by the processor, cause the query engine to:

create an instance of a query definition, the instance of the query definition comprising a unique identifier and defining a depth parameter having a name and a value that controls a depth of a recursive level-by-level search of the data structure, obtain one or more elements of the query definition to be executed as instructions in a single query by the query engine, wherein the one or more elements comprise a query condition including a first dynamic parameter of an execution path comprising a string defining a search route from a parent query item to a child query item and the string references a key associated with the name of the depth parameter having the value that controls the depth of the recursive level-by-level search of the data structure, wherein the first dynamic parameter and the depth parameter are each a respective instance of an item in the data model, and wherein the depth parameter is configured in a configuration document that also configures the key and the string defining the search route from the parent query item to the child query item,

provide the query definition as an input to the query engine,

determine query execution instructions based on the query definition, the query execution instructions specifying the recursive level-by-level search, the query engine further calculating the dynamic parameter and using the dynamic parameter with the depth parameter to control the recursive level-by-level search;

obtain results of a query executed based on the query execution instructions, and

output the query results.

9. The query engine of claim 8 , wherein the memory contains instructions, which when executed by the processor, cause the query engine to output the query results as at least one of outputting the query results as a flat output, displaying the results in a tree grid view or displaying the results as a graph visualization.

10. The query engine of claim 8 , wherein an element of the query definition is specified by a security rule.

11. The query engine of claim 8 , wherein the data model of the data structure is at least one of a hierarchical data model, a dynamic data model or a self-describing data model.

12. The query engine of claim 8 , wherein the elements of the query definition comprise at least one of a query item, a query item selection property, a query item sort property, a query item available property, or a query reference.

13. The query engine of claim 8 , wherein the memory contains instructions, which when executed by the processor, cause the query engine to store the query definition in the data structure.

14. The query engine of claim 8 , wherein the query execution instructions specify at least one of traversing the data structure upwards or traversing the data structure downwards.

15. A non-transitory computer-readable medium containing program code, which when executed by a processor, cause a query engine to:

create an instance of a query definition, the instance of the query definition comprising a unique identifier and defining a depth parameter having a name and a value that controls a depth of a recursive level-by-level search of the data structure,

obtain one or more elements of the query definition to be executed as instructions in a single query by the query engine, wherein the one or more elements comprise a query condition including a first dynamic parameter of an execution path comprising a string defining a search route from a parent query item to a child query item and the string references a key associated with the name of the depth parameter having the value that controls the depth of the recursive level-by-level search of the data structure, wherein the first dynamic parameter and the depth parameter are each a respective instance of an item in the data model, and wherein the depth parameter is configured in a configuration document that also configures the key and the string defining the search route from the parent query item to the child query item,

provide the query definition as an input to the query engine,

determine query execution instructions based on the query definition, the query execution instructions specifying the recursive level-by-level search, the query engine further calculating the dynamic parameter and using the dynamic parameter with the depth parameter to control the recursive level-by-level search,

obtain results of a query executed based on the query execution instructions, and

output the query results.

16. The non-transitory computer-readable medium of claim 15 , comprising program code, which when executed by the processor, cause the query engine to output the query results as at least one of outputting the query results as a flat output, displaying the results in a tree grid view or displaying the results as a graph visualization.

17. The non-transitory computer-readable medium of claim 15 , wherein an element of the query definition is specified by a security rule.

18. The non-transitory computer-readable medium of claim 15 , wherein the data model of the data structure is at least one of a hierarchical data model, a dynamic data model or a self-describing data model.

19. The non-transitory computer-readable medium of claim 15 , the elements of the query definition comprise at least one of a query item, a query item selection property, a query item sort property, a query item available property, or a query reference.

20. The non-transitory computer-readable medium of claim 15 , comprising program code, which when executed by the processor, causes the query engine to store the query definition in the data structure.

Assignments (2)
RELEASE OF SECURITY INTEREST Recorded Apr 14, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: ARAS CORPORATION
Reel/Frame 055912/0643 →
SECURITY INTEREST Recorded Nov 3, 2020
From: ARAS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 054257/0153 →
Continuity (2)
Provisional Application 62663777 · Apr 27, 2018
Related Publication 20190332600A1 · Oct 31, 2019