IP Library Granted Patent US 12,298,972
Granted Patent B2
US 12,298,972 · App. 17/557,366 · Granted May 13, 2025

System and method for recursive transliteration of machine interpretable languages

Inventors: Maharaj Mukherjee (Poughkeepsie, NY); Utkarsh Raj (Charlotte, NC); Carl M. Benda (Charlotte, NC); Suman Roy Choudhury (Jersey City, NJ); Elvis Nyamwange (Little Elm, TX)
Assignee: Bank of America Corporation
G06F16/2452G06F16/214G06F16/2425G06F16/2433G06F16/2448G06F16/24534G06F16/248G06F16/258G06F40/205
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 12,298,972
App. No.
17/557,366
Granted
May 13, 2025
Kind
B2
Abstract

Aspects of the disclosure relate to transliteration of machine interpretable languages. The computing platform may receive a query, formatted in a first format for execution on a first database. The computing platform may translate the query to a second format for execution on a second database by: 1) extracting non-essential parameters from the query to create a query key; 2) storing the non-essential parameters; 3) executing a lookup function on a query library to identify a translated query corresponding to the query key; 4) based on identifying that the query library includes portions of the query key rather than the query key, recursively identify the translated query by nesting the portions of the query key; and 5) input the non-essential parameters into the translated query to create an output query. The computing platform may execute the output query on the second database.

Claims (73)

1. A computing platform comprising:

at least one processor;

a communication interface communicatively coupled to the at least one processor; and memory storing computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:

receive a query, wherein the query is formatted in a first format for execution on a first database, wherein the first format comprises a first machine interpretable language;

translate the query to a second format for execution on a second database, wherein the second format comprises a second machine interpretable language, wherein the query comprises a SQL query and wherein the translated query comprises a non-SQL query, and wherein translating the query comprises:

extracting non-essential parameters from the query to create a query key;

storing the non-essential parameters;

executing a lookup function on a query library to identify a translated query corresponding to the query key;

based on identifying that the query library includes portions of the query key rather than the query key, recursively identifying the translated query by nesting the portions of the query key, wherein recursively identifying the translated query comprises:

identifying a first stored query key corresponding to a first portion of the query key,

identifying a second stored query key corresponding to a second portion of the query key, and

combining the first stored query key with the second stored query key to create a combination query key that matches the query key, wherein the translated query comprises the combination query key, wherein the combination query key includes the second stored query key nested within the first stored query key;

and inputting the non-essential parameters into the translated query to create an output query;

execute the output query on the first database to produce a first query result:

execute the output query on the second database to produce a second query result;

compare the second query result to the first query result;

based on identifying a discrepancy between the first query result and the second query result, update a query translation model used to produce the output query, wherein updating the query translation model causes the query translation model to adjust for the discrepancy, and wherein the query translation model is trained, maintained, and refined by a machine learning engine; and

based on identifying that the first query result matches the second query result, validate the output query.

2. The computing platform of claim 1 , wherein extracting the non-essential parameters from the query to create the query key comprises replacing the non-essential parameters with pointers, wherein the first stored query key and the second stored query key include corresponding pointers.

3. The computing platform of claim 2 , wherein inputting the non-essential parameters into the translated query to create the output query comprises replacing the corresponding pointers of the first stored query key and the second stored query key with the non-essential parameters.

4. The computing platform of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:

update, after executing the output query on the second database, the query library to include the combination query key.

5. The computing platform of claim 1 , wherein the query is received from a client application, and wherein the computing platform configures the client application to send the query to a custom driver configured to perform the query translation.

6. The computing platform of claim 1 , wherein executing the lookup function on the query library to identify the translated query corresponding to the query key comprises comparing the query key to a plurality of pre-verified query keys.

7. The computing platform of claim 6 , wherein the memory stores additional computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:

based on identifying that the query library matches one of the plurality of pre-verified query keys, input the non-essential parameters into the matching pre-verified query key to create the output query.

8. The computing platform of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:

identify whether the query is formatted for execution at the second database, wherein translating the query is responsive to identifying that the query is not formatted for execution at the second database.

9. A method comprising:

at a computing platform comprising at least one processor, a communication interface, and memory:

receiving a query, wherein the query is formatted in a first format for execution on a first database, wherein the first format comprises a first machine interpretable language;

translating the query to a second format for execution on a second database, wherein the second format comprises a second machine interpretable language, wherein the query comprises a SQL query and wherein the translated query comprises a non-SQL query, and wherein translating the query comprises:

extracting non-essential parameters from the query to create a query key;

storing the non-essential parameters;

executing a lookup function on a query library to identify a translated query corresponding to the query key;

based on identifying that the query library includes portions of the query key rather than the query key, recursively identifying the translated query by nesting the portions of the query key, wherein recursively identifying the translated query comprises:

identifying a first stored query key corresponding to a first portion of the query key,

identifying a second stored query key corresponding to a second portion of the query key, and

combining the first stored query key with the second stored query key to create a combination query key that matches the query key, wherein the translated query comprises the combination query key, wherein the combination query key includes the second stored query key nested within the first stored query key; and

inputting the non-essential parameters into the translated query to create an output query;

executing the output query on the first database to produce a first query result;

executing the output query on the second database to produce a second query result;

comparing the second query result to the first query result;

based on identifying a discrepancy between the first query result and the second query result, updating a query translation model used to produce the output query, wherein updating the query translation model causes the query translation model to adjust for the discrepancy, and wherein the query translation model is trained, maintained, and refined by a machine learning engine; and

based on identifying that the first query result matches the second query result, validating the output query.

10. The method of claim 9 , wherein extracting the non-essential parameters from the query to create the query key comprises replacing the non-essential parameters with pointers, wherein the first stored query key and the second stored query key include corresponding pointers.

11. The method of claim 10 , wherein inputting the non-essential parameters into the translated query to create the output query comprises replacing the corresponding pointers of the first stored query key and the second stored query key with the non-essential parameters.

12. The method of claim 9 , further comprising:

updating, after executing the output query on the second database, the query library to include the combination query key.

13. The method of claim 9 , wherein the query is received from a client application, and wherein the computing platform configures the client application to send the query to a custom driver configured to perform the query translation.

14. The method of claim 9 , wherein executing the lookup function on the query library to identify the translated query corresponding to the query key comprises comparing the query key to a plurality of pre-verified query keys.

15. The method of claim 14 , further comprising:

based on identifying that the query library matches one of the plurality of pre-verified query keys, input the non-essential parameters into the matching pre-verified query key to create the output query.

16. One or more non-transitory computer-readable media storing instructions that, when executed by a computing platform comprising at least one processor, a communication interface, and memory, cause the computing platform to:

receive a query, wherein the query is formatted in a first format for execution on a first database, wherein the first format comprises a first machine interpretable language;

translate the query to a second format for execution on a second database, wherein the second format comprises a second machine interpretable language, and wherein translating the query comprises:

extracting non-essential parameters from the query to create a query key;

storing the non-essential parameters;

executing a lookup function on a query library to identify a translated query corresponding to the query key;

based on identifying that the query library includes portions of the query key rather than the query key, recursively identifying the translated query by nesting the portions of the query key, wherein the query comprises a SQL query and wherein the translated query comprises a non-SQL query, and wherein recursively identifying the translated query comprises:

identifying a first stored query key corresponding to a first portion of the query key,

identifying a second stored query key corresponding to a second portion of the query key, and

combining the first stored query key with the second stored query key to create a combination query key that matches the query key, wherein the translated query comprises the combination query key, wherein the combination query key includes the second stored query key nested within the first stored query key; and

inputting the non-essential parameters into the translated query to create an output query;

execute the output query on the first database to produce a first query result;

execute the output query on the second database to produce a second query result;

compare the second query result to the first query result;

based on identifying a discrepancy between the first query result and the second query result, update a query translation model used to produce the output query, wherein updating the query translation model causes the query translation model to adjust for the discrepancy, and wherein the query translation model is trained, maintained, and refined by a machine learning engine; and

based on identifying that the first query result matches the second query result, validate the output query.

17. The computing platform of claim 1 , wherein the query comprises a first type of SQL query and wherein the output query comprises a second type of SQL query.

18. The computing platform of claim 1 , wherein neither the first stored query key nor the second stored query key comprise exact matches with the query, and wherein identifying the first stored query key and the second stored query key comprises identifying, using fuzzy matching, the first stored query key and the second stored query key.

19. The computing platform of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the at least one processor, cause the computing platform to:

identify whether or not the first format is executable on the second database, wherein translating the query to the second format for execution on the second database is in response to identifying that the first format is not executable on the second database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2021
From: MUKHERJEE, MAHARAJ; RAJ, UTKARSH; BENDA, CARL M.; CHOUDHURY, SUMAN ROY; NYAMWANGE, ELVIS
To: BANK OF AMERICA CORPORATION
Reel/Frame 058448/0068 →
Continuity (2)
Provisional Application 63272263 · Oct 27, 2021
Related Publication 20230127193A1 · Apr 27, 2023
References Cited (137)
US 5432948A · Davis et al. · 1995 [cited by applicant]
US 5640587A · Davis et al. · 1997 [cited by applicant]
US 5987452A · Kung · 1999 [cited by applicant]
US 6134540A · Carey et al. · 2000 [cited by applicant]
US 6425123B1 · Rojas et al. · 2002 [cited by applicant]
US 6460015B1 · Hetherington et al. · 2002 [cited by applicant]
US 6890180B2 · Sterns et al. · 2005 [cited by applicant]
US 7099876B1 · Hetherington et al. · 2006 [cited by applicant]
US 7369986B2 · Janakiraman et al. · 2008 [cited by applicant]
US 7805290B2 · Janakiraman et al. · 2010 [cited by applicant]
US 7835903B2 · Datta · 2010 [cited by applicant]
US 7853444B2 · Wang et al. · 2010 [cited by applicant]
US 7885807B2 · Bagnato et al. · 2011 [cited by applicant]
US 8005664B2 · Hanumanthappa · 2011 [cited by applicant]
US 8275600B2 · Bilac et al. · 2012 [cited by applicant]
US 8275601B2 · Wang et al. · 2012 [cited by applicant]
US 8326600B2 · Elfeky et al. · 2012 [cited by applicant]
US 8438008B2 · Awaida et al. · 2013 [cited by applicant]
US 8463597B2 · Elizarov et al. · 2013 [cited by applicant]
US 8510095B2 · Wang et al. · 2013 [cited by applicant]
US 8515730B2 · Fux et al. · 2013 [cited by applicant]
US 8521761B2 · Katragadda et al. · 2013 [cited by applicant]
US 8554537B2 · Rai et al. · 2013 [cited by applicant]
US 8560298B2 · Kumaran et al. · 2013 [cited by applicant]
US 8655642B2 · Fux et al. · 2014 [cited by applicant]
US 8655643B2 · Haddad et al. · 2014 [cited by applicant]
US 8682643B1 · Hafez · 2014 [cited by applicant]
US 8725491B2 · Elizarov et al. · 2014 [cited by applicant]
US 8731901B2 · Srihari et al. · 2014 [cited by applicant]
US 8762129B2 · Huang et al. · 2014 [cited by applicant]
US 8762358B2 · Datta et al. · 2014 [cited by applicant]
US 8775165B1 · Oikawa · 2014 [cited by applicant]
US 8972238B2 · Wang et al. · 2015 [cited by applicant]
US 9009021B2 · Ushakov et al. · 2015 [cited by applicant]
US 9176936B2 · Jan et al. · 2015 [cited by applicant]
US 9189557B2 · Singh et al. · 2015 [cited by applicant]
US 9323744B2 · Hagiwara · 2016 [cited by applicant]
US 9330138B1 · Shankar et al. · 2016 [cited by applicant]
US 9489351B2 · Scriffignano et al. · 2016 [cited by applicant]
US 9535963B1 · Shankar et al. · 2017 [cited by applicant]
US 9665275B2 · Huang et al. · 2017 [cited by applicant]
US 9858268B2 · Huang et al. · 2018 [cited by applicant]
US 9858269B2 · Huang et al. · 2018 [cited by applicant]
US 9928040B2 · Tarlow et al. · 2018 [cited by applicant]
US 9928828B2 · Fume et al. · 2018 [cited by applicant]
US 10089975B2 · Fume et al. · 2018 [cited by applicant]
US 10185710B2 · Egi · 2019 [cited by applicant]
US 10373606B2 · Ashikawa et al. · 2019 [cited by applicant]
US 10394960B2 · Pino et al. · 2019 [cited by applicant]
US 10394964B2 · Deshmukh et al. · 2019 [cited by applicant]
US 10402489B2 · Pino et al. · 2019 [cited by applicant]
US 10496948B1 · Liang · 2019 [cited by applicant]
US 10643028B1 · Pino et al. · 2020 [cited by applicant]
US 10686750B2 · Daryani et al. · 2020 [cited by applicant]
US 10706056B1 · Lin et al. · 2020 [cited by applicant]
US 10810380B2 · Pino et al. · 2020 [cited by applicant]
US 11032676B2 · Mottes et al. · 2021 [cited by applicant]
US 11055352B1 · Beitchman et al. · 2021 [cited by applicant]
US 11120064B2 · Ash · 2021 [cited by applicant]
US 11269824B1 · Waas et al. · 2022 [cited by applicant]
US 11294870B1 · Waas et al. · 2022 [cited by applicant]
US 11360937B2 · Shukes et al. · 2022 [cited by applicant]
US 11550800B1 · Uthaman et al. · 2023 [cited by applicant]
US 11644955B1 · Singamneni · 2023 [cited by examiner]
US 11681695B2 · Abrashkevich et al. · 2023 [cited by applicant]
US 11811769B2 · Padmanabhan · 2023 [cited by applicant]
US 20070073675A1 · Kaar et al. · 2007 [cited by applicant]
US 20070100783A1 · Cialini · 2007 [cited by examiner]
US 20110295838A1 · Collins et al. · 2011 [cited by applicant]
US 20130311447A1 · Liensberger et al. · 2013 [cited by applicant]
US 20130311642A1 · Morfonios · 2013 [cited by examiner]
US 20130318070A1 · Wu et al. · 2013 [cited by applicant]
US 20140244680A1 · Chandran · 2014 [cited by examiner]
US 20140280259A1 · McGillin et al. · 2014 [cited by applicant]
US 20160125029A1 · Damm · 2016 [cited by applicant]
US 20160342650A1 · Damm · 2016 [cited by applicant]
US 20160344810A1 · Das · 2016 [cited by applicant]
US 20160350375A1 · Das et al. · 2016 [cited by applicant]
US 20160373402A1 · Becker · 2016 [cited by applicant]
US 20170177888A1 · Arora et al. · 2017 [cited by applicant]
US 20170228360A1 · Egi · 2017 [cited by applicant]
US 20180275907A1 · Subramanian et al. · 2018 [cited by applicant]
US 20180357444A1 · Kammath et al. · 2018 [cited by applicant]
US 20190266163A1 · Johnson et al. · 2019 [cited by applicant]
US 20190288850A1 · Beecham et al. · 2019 [cited by applicant]
US 20190318117A1 · Beecham et al. · 2019 [cited by applicant]
US 20190362013A1 · Lewis et al. · 2019 [cited by applicant]
US 20190370388A1 · Li et al. · 2019 [cited by applicant]
US 20200012643A1 · Cuddihy · 2020 [cited by applicant]
US 20200073863A1 · Jiang · 2020 [cited by applicant]
US 20200142890A1 · Zhang et al. · 2020 [cited by applicant]
US 20200233721A1 · Mathur · 2020 [cited by applicant]
US 20200311044A1 · Merker et al. · 2020 [cited by applicant]
US 20200334233A1 · Lee · 2020 [cited by examiner]
US 20200371778A1 · Ni et al. · 2020 [cited by applicant]
US 20210042308A1 · Mustafi · 2021 [cited by examiner]
US 20210089538A1 · Rooney et al. · 2021 [cited by applicant]
US 20210117868A1 · Sriharsha · 2021 [cited by applicant]
US 20210165808A1 · Sundström · 2021 [cited by applicant]
US 20210279259A1 · Rastogi et al. · 2021 [cited by applicant]
US 20210294776A1 · Shukes et al. · 2021 [cited by applicant]
US 20210397604A1 · Padmanabhan · 2021 [cited by applicant]
US 20220019597A1 · Takagi · 2022 [cited by examiner]
US 20220035605A1 · Borstel et al. · 2022 [cited by applicant]
US 20220035611A1 · Cseri · 2022 [cited by examiner]
US 20220066752A1 · Zhang · 2022 [cited by applicant]
US 20220269580A1 · Balasubramanian et al. · 2022 [cited by applicant]
US 20220300543A1 · Sun et al. · 2022 [cited by applicant]
US 20220405334A1 · Rozich et al. · 2022 [cited by applicant]
US 20230031327A1 · Bourbie et al. · 2023 [cited by applicant]
US 20230049730A1 · Abrashkevich et al. · 2023 [cited by applicant]
US 20230127193A1 · Mukherjee et al. · 2023 [cited by applicant]
US 20230128406A1 · Raj et al. · 2023 [cited by applicant]
US 20230128497A1 · Vijayan · 2023 [cited by examiner]
US 20230129782A1 · Benda et al. · 2023 [cited by applicant]
US 20230129994A1 · Mukherjee et al. · 2023 [cited by applicant]
US 20230130019A1 · Benda et al. · 2023 [cited by applicant]
US 20230130267A1 · Mukherjee et al. · 2023 [cited by applicant]
US 20240070149A1 · Khalyknazarov et al. · 2024 [cited by applicant]
US 20240070151A1 · Khalyknazarov et al. · 2024 [cited by applicant]
US 20240119028A1 · Kunz · 2024 [cited by applicant]
Mar. 13, 2023—(US) Office Action—U.S. Appl. No. 17/557,456. [cited by applicant]
Jul. 3, 2023—(US) Notice of Allowance—U.S. Appl. No. 17/557,456. [cited by applicant]
Aug. 22, 2023—(US) Office Action—U.S. Appl. No. 17/557,300. [cited by applicant]
Dec. 21, 2023—(US) Office Action—U.S. Appl. No. 17/557,300. [cited by applicant]
Sep. 18, 2023—(US) Office Action—U.S. Appl. No. 17/557,683. [cited by applicant]
Feb. 1, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,456. [cited by applicant]
Oct. 18, 2023—(US) Office Action—U.S. Appl. No. 17/557,456. [cited by applicant]
Oct. 25, 2023—(US) Office Action—U.S. Appl. No. 17/557,418. [cited by applicant]
Feb. 21, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,683. [cited by applicant]
Apr. 3, 2024—(US) Office Action—U.S. Appl. No. 17/557,300. [cited by applicant]
Apr. 26, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,208. [cited by applicant]
May 3, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,418. [cited by applicant]
May 7, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,456. [cited by applicant]
Aug. 16, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,208. [cited by applicant]
Aug. 22, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,418. [cited by applicant]
Aug. 28, 2024—(US) Notice of Allowance—U.S. Appl. No. 17/557,300. [cited by applicant]