IP Library Granted Patent US 8,655,861
Granted Patent B2
US 8,655,861 · App. 13/545,494 · Granted Feb 18, 2014

Query metadata engine

Inventors: Patrick Burke (Ottawa, CA); Stanley L. Chauvin (Gatineau, CA); David C. Cummings (Ottawa, CA); Ariel Fernandez Ortega (Ottawa, CA)
Assignee: International Business Machines Corporation
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 8,655,861
App. No.
13/545,494
Granted
Feb 18, 2014
Kind
B2
Abstract

In one example, a method comprises receiving, with a data access service, an input query from an enterprise software application, wherein the data access service is positioned between the enterprise software application and a multidimensional data source; parsing the input query into a parse tree; generating an abstract syntax tree based on the parse tree, the abstract syntax tree comprising input query elements and multidimensional expression query elements based on the input query; performing an evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree; restructuring the abstract syntax tree based on the evaluation of the metadata; executing a query based on the restructured abstract syntax tree on the multidimensional data source; and retrieving a query result set from the multidimensional data source comprising results that are responsive to the query based on the restructured abstract syntax tree.

Claims (22)

1. A method, comprising:

receiving, with a data access service, an input query from an enterprise software application, wherein the data access service is positioned between the enterprise software application and a multidimensional data source;

parsing the input query into a parse tree;

generating an abstract syntax tree based on the parse tree, the abstract syntax tree comprising input query elements and multidimensional expression query elements based on the input query;

performing an evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree;

restructuring the abstract syntax tree based on the evaluation of the metadata;

executing a query based on the restructured abstract syntax tree on the multidimensional data source; and

retrieving a query result set from the multidimensional data source comprising results that are responsive to the restructured abstract syntax tree.

2. The method of claim 1 , wherein generating the abstract syntax tree based on the parse tree comprises populating the abstract syntax tree with functions, operators, and metadata object information for identifiers from the parse tree.

3. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises retrieving metadata information from the multidimensional data source using an OLAP schema rowset interface.

4. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises executing a request on a node of the abstract syntax tree and evaluating what is returned by the node.

5. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises executing a request on a node of the abstract syntax tree and evaluating what provides context to the node.

6. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises evaluating an order of solve order equations that provide context to value expressions in the abstract syntax tree.

7. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises evaluating one or more expressions in the abstract syntax tree to determine what hierarchies provide context to one or more functions that correspond to the one or more expressions.

8. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises executing a multidimensional expression query on the metadata comprised in the multidimensional expression query elements of the abstract syntax tree, and thereby evaluating metadata that provides context to functions specified by the input query.

9. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises collecting levels that are in context with each of one or more value expressions in the input query.

10. The method of claim 1 , wherein restructuring the abstract syntax tree based on the evaluation of the metadata comprises evaluating what members in the input query will need a value in the query result set.

11. The method of claim 1 , wherein performing the evaluation of metadata comprised in the multidimensional expression query elements of the abstract syntax tree comprises determining what levels will be in the query result set.

12. The method of claim 11 , wherein restructuring the abstract syntax tree based on the evaluation of the metadata comprises mapping members in the input query to the levels in the query result set.

13. The method of claim 1 , further comprising performing post-processing operations on the query result set.

14. The method of claim 1 , further comprising rendering the query result set in accordance with a report layout to produce a finalized report output.

15. The method of claim 1 , wherein the input query conforms to Multidimensional Expression query language (MDX).

Continuity (2)
Continuation 13276112 · Oct 18, 2011
Related Publication 20130097114A1 · Apr 18, 2013