IP Library Granted Patent US 9,881,055
Granted Patent B1
US 9,881,055 · App. 14/882,207 · Granted Jan 30, 2018

Language conversion based on S-expression tabular structure

Inventors: Rahul Kapoor (Sunnyvale, CA); Sunny Tulsi Sreedhar Murthy (Bangalore, IN)
Assignee: Numerify, Inc.
G06F17/30427G06F17/30292G06F17/30327
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 9,881,055
App. No.
14/882,207
Granted
Jan 30, 2018
Kind
B1
Abstract

Approaches for S-expression tabular structure based language conversion. An SQL expression is converted into an S-expression tabular structure. A function table including a plurality of functions associated with S-expression tabular structure tabulated against at least one of a function name, a derived column and a derived table and an argument table including plurality of arguments associated with the S-expression tabular structure tabulated against at least one of an argument type, a function identifier linking the arguments to the function table, a computed from function, a reference to entity or a literal value, is generated based on the S-expression tabular structure. One or more functions associated with the S-expression tabular structure is converted to a pre-determined SQL based language, based on a language map of the pre-determined language and the function table and the argument table.

Claims (67)

1. One or more non-transitory computer readable storage mediums storing one or more sequences of instructions, which when executed by one or more processors, causes:

converting a SQL expression into an S-expression tabular structure, wherein said S-expression comprises a nested list;

generating a function table based on said S-expression tabular structure, wherein said function table comprises a plurality of functions associated with said S expression tabular structure tabulated against at least one of a function name, a derived column and a derived table;

generating an argument table based on said S-expression tabular structure, wherein said argument table comprises a plurality of arguments associated with said S expression tabular structure tabulated against at least one of an argument type, a function identification, a computed from function, a reference to entity or a literal value; and

converting at least one function associated with said S-expression tabular structure to a pre-determined language, based on a language map of said pre-determined language and said function table and said argument table.

2. The one or more non-transitory computer readable storage mediums of claim 1 , wherein said converting comprises:

reconstructing an S-expression string for said at least one function from a database representation; and

transforming said reconstructed S-expression string for said at least one function to said pre-determined language.

3. The one or more non-transitory computer readable storage mediums of claim 1 , wherein said reconstructing comprises:

a) selecting a function name of said at least one function from said function table and selecting at least one of an argument type, a reference to entity, a literal value, a computed from function for said at least one function from said argument table;

b) augmenting an S-expression string for said at least one function with said argument type comprising at least one of a base column, a derived column, a base table, or a derived table along with said reference to entity;

c) augmenting said S-expression string for said at least one function with said argument type comprising a literal value; and

d) recursively performing steps a) to d) for said argument type comprising a computed function.

4. The one or more non-transitory computer readable storage mediums of claim 1 , wherein said transforming comprises:

changing at least one of one or more function names, one or more arguments, a syntax and one or more keywords of each list in a reconstructed S-expression string to be in compliance with said language map of said pre-determined language.

5. The one or more non-transitory computer readable storage mediums of claim 4 , wherein said changing comprises performing at least one of:

changing an order of said one or more function names and one or more arguments in said reconstructed S-expression string; and

changing said syntax based on said language map by at least changing or removing at least one or more argument separators and one or more function boundary identifiers.

6. The one or more non-transitory computer readable storage mediums of claim 1 , wherein converting said SQL expression into an S-expression tabular structure comprises:

retrieving one or more keywords and one or more arguments associated with said SQL expression;

generating a tabular representation of said one or more keywords and said one or more arguments, wherein said tabular representation comprises said one or more keywords and said one or more arguments arranged at a plurality of levels comprising a lowest outermost level and a highest innermost level, based on a level of said one or more keywords and said one or more arguments in a syntax of said SQL expression; and

generating said S-expression tabular structure by traversing said tabular representation and grouping one or more arguments subsequent to a keyword at a level from among said plurality of levels and prior to a subsequent keyword at said level or a subsequent lower level from among said plurality of levels,

wherein said grouped one or more arguments are represented as arguments of said keyword nested within a pair of parenthesis following said keyword, wherein said keyword is represented as a function with said one or more arguments, and wherein upon said subsequent keyword being at said subsequent lower level, said keyword along with said nested arguments of said level are nested within another pair of parenthesis.

7. The one or more non-transitory computer readable storage mediums of claim 1 , wherein said pre-determined language is an SQL based language.

8. The one or more non-transitory computer readable storage mediums of claim 1 , wherein said SQL expression comprises an SQL expression associated a definition of a dimensional model and wherein said pre-determined language comprises an expression associated with a dimensional model of a predetermined business intelligence tool.

9. A system comprising:

a processor; and

a non-transitory computer readable storage medium comprising one or more modules executable by said processor, wherein said one or more modules comprises:

an S-expression tabular structure conversion module for converting a SQL expression into an S-expression tabular structure, wherein said S-expression comprises a nested list;

a function table module for generating a function table based on said S-expression tabular structure, wherein said function table comprises a plurality of functions associated with said S-expression tabular structure tabulated against at least one of a function name, a derived column and a derived table;

an argument table module for generating an argument table based on said S-expression tabular structure, wherein said argument table comprises a plurality of arguments associated with said S expression tabular structure tabulated against at least one of an argument type, a function identifier linking the arguments to the function table, a computed from function, a reference to entity or a literal value; and

a language conversion module for converting at least one function associated with said S-expression tabular structure to a pre-determined language based on a language map of said pre-determined language and said function table and said argument table.

10. The system of claim 9 , wherein said language conversion module is further configured to:

reconstruct an S-expression string for said at least one function from a database representation; and

transform said reconstructed S-expression string for said at least one function to said pre-determined SQL based language.

11. The system of claim 9 , wherein said language conversion module is configured to:

a) select a function name of said at least one function from said function table and selecting at least one of an argument type, a reference to entity, a literal value, a computed from function for said at least one function from said argument table;

b) augment an S-expression string for said at least one function with said argument type comprising at least one of a base column, a derived column, a base table, or a derived table along with said reference to entity;

c) augment said S-expression string for said at least one function with said argument type comprising a literal value; and

d) recursively perform steps a) to d) for said argument type comprising a computed function.

12. The system of claim 9 , wherein said language conversion module is configured to:

change at least one of one or more function names, one or more arguments, a syntax and one or more keywords of each list in a reconstructed S-expression string to be in compliance with said language map of said pre-determined language.

13. The system of claim 12 , wherein said language conversion module is further configured to perform at least one of:

change an order of said one or more function names and one or more arguments in said reconstructed S-expression string; and

change said syntax based on said language map by changing or removing at least one or more argument separators and one or more function boundary identifiers.

14. The system of claim 9 , wherein an S-expression tabular structure conversion module is configured to:

retrieve one or more keywords and one or more arguments associated with said SQL expression;

generate a tabular representation of said one or more keywords and said one or more arguments, wherein said tabular representation comprises said one or more keywords and said one or more arguments arranged at a plurality of levels comprising a lowest outermost level and a highest innermost level, based on a level of said one or more keywords and said one or more arguments in a syntax of said SQL expression; and

generate said S-expression tabular structure by traversing said tabular representation and grouping one or more arguments subsequent to a keyword at a level from among said plurality of levels and prior to a subsequent keyword at said level or a subsequent lower level from among said plurality of levels,

wherein said grouped one or more arguments are represented as arguments of said keyword nested within a pair of parenthesis following said keyword, wherein said keyword is represented as a function with said one or more arguments, and wherein upon said subsequent keyword being at said subsequent lower level, said keyword along with said nested arguments of said level are nested within another pair of parenthesis.

15. The system of claim 9 , wherein said pre-determined language is an SQL based language.

16. The system of claim 9 , wherein said SQL expression comprises an SQL expression associated a definition of a dimensional model and wherein said pre-determined language comprises an expression associated with a dimensional model of a predetermined business intelligence tool.

17. A processor-implemented method comprising:

converting a SQL expression into an S-expression tabular structure, wherein said S-expression comprises a nested list;

generating a function table based on said S-expression tabular structure, wherein said function table comprises a plurality of functions associated with said S expression tabular structure tabulated against at least one of a function name, a derived column and a derived table;

generating an argument table based on said S-expression tabular structure, wherein said argument table comprises a plurality of arguments associated with said S-expression tabular structure tabulated against at least one of an argument type, a function identification, a computed from function, a reference to entity or a literal value; and

converting at least one function associated with said S-expression tabular structure to a pre-determined language based on a language map of said pre-determined language and said function table and said argument table.

18. The processor-implemented method of claim 17 , wherein said converting comprises:

reconstructing an S-expression string for said at least one function from a database representation; and

transforming said reconstructed S-expression string for said at least one function to said pre-determined language.

19. The processor-implemented method of claim 17 , wherein said reconstructing comprises:

a) selecting a function name of said at least one function from said function table and selecting at least one of an argument type, a reference to entity, a literal value, a computed from function for said at least one function from said argument table;

b) augmenting an S-expression string for said at least one function with said argument type comprising at least one of a base column, a derived column, a base table, or a derived table along with said reference to entity;

c) augmenting said S-expression string for said at least one function with said argument type comprising a literal value; and

d) recursively performing steps a) to d) for said argument type comprising a computed function.

20. The processor-implemented method of claim 17 , wherein said transforming comprises:

changing at least one of one or more function names, one or more arguments, a syntax and one or more keywords of each list in a reconstructed S-expression string to be in compliance with said language map of said pre-determined language.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2021
From: NUMERIFY, INC.
To: DIGITAL.AI SOFTWARE, INC.
Reel/Frame 055859/0189 →
SECURITY INTEREST Recorded Feb 10, 2021
From: VERSIONONE, INC.; DIGITAL.AI SOFTWARE, INC.; ARXAN TECHNOLOGIES, INC.; NUMERIFY, INC.; XEBIALABS, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 055277/0043 →
CHANGE OF ADDRESS Recorded Dec 20, 2017
From: NUMERIFY, INC.
To: NUMERIFY, INC.
Reel/Frame 044957/0526 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: KAPOOR, RAHUL; MURTHY, SUNNY TULSI SREEDHAR
To: NUMERIFY, INC.
Reel/Frame 037101/0262 →