DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This is Non-Final Office Action in response to application filed on November 19, 2024 in which claims 1-20 are presented for examination.
Information Disclosure Statement
The references listed in the IDS filed on September 23, 2025 has been considered and entered into record. A copy of the signed or initialed IDS is hereby attached.
Examiner Notes
Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. US 12182117 B1. Although the claims at issue are not identical, they are not patentably distinct from each other because they are directed toward the same subject matter.
All limitations and elements in claim 1 of the instant application are found in claim 1 of Emani except “a code block processing engine configured to process a sequence of statements of a code block” have been omitted. However, the library in the ‘551 invention includes operations and code blocks; therefore, they are considered substantially similar. Although the claims at issue are not identical, they are not patentably distinct from each other because they are substantially similar in scope and they use the similar limitations as showed in the Claims Comparison Table below as the claims of the cited patent teach every claims of the instant application, as such, anticipate the claims of the instant application. The motivation would have to expand the overall use of the claimed invention at no significant cost.
Claims Comparison Table:
Instant application #18/952551
US Patent # 12182117
Claim 1. A system, comprising: a processor circuit; and memory that stores program code structured to cause the processor circuit to:
enable a library to be imported into a computer program under development, the library comprising an operation evaluator and an engine interface; and
based on the importing, enable code of the library to be referenced within the computer program under development to: cause data processing operations to be included in a queue by the operation evaluator, the queue comprising a translatable portion comprising indications of data processing operations translatable to data queries and a non-translatable portion comprising indications of non-translatable data processing operations, cause the translatable data portion of the queue to be compiled into a database query by the operation evaluator, cause the engine interface to cause the database query to be executed by a database engine to generate a query result, and
transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
2. The system of claim 1, wherein the program code is further structured to cause the processor to import the library as the computer program under development is loaded by an application for developing programs.
3. The system of claim 1, wherein the program code is further structured to cause the processor to: subsequent to user interaction with a user interface, invoke the operation evaluator to cause the data processing operations to be included in the queue and cause the translatable data portion of the queue to be compiled into a database query.
4. The system of claim 1, wherein the program code is further structured to cause the processor to: enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query.
5. The system of claim 1, wherein an indication of a first data processing operation in the non-translatable portion of the queue further indicates the first data processing operation is dependent on a second data processing operation, and an indication of the second data processing operation is included in the translatable portion of the queue.
6. The system of claim 5, wherein the program code is structured to cause the processor circuit to utilize the operation evaluator to determine that the first data processing operation is not translatable to a database query based on at least one of: a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query.
7. The system of claim 1, wherein the program code is structured to cause the processor circuit to utilize the operation evaluator to: identify, in one or more queues comprising the queue, a common indication that occurs more than a predetermined number of times; generate a common table indication corresponding to the common indication; and map the common table indication to instances of the common indication in the one or more queues.
8. The system of claim 1, wherein the program code is structured to cause the processor circuit to utilize the engine interface to process a sequence of statements of a code block, the statements comprising the data processing operations.
9. A method for processing a sequence of statements of a code block, the statements including data processing operations, the data processing operations comprising a first data processing operation and a second data processing operation, the method comprising: enabling a library to be imported into a computer program under development, the library comprising an operation evaluator and an engine interface; and based on the importing, enabling code of the library to be referenced within the computer program under development to: cause the operation evaluator to place a first indication of the first data processing operation in a translatable portion of a queue, cause the operation evaluator to place a second indication of the second data processing operation in a non-translatable portion of the queue, cause the operation evaluator to compile the translatable portion of the queue, resulting in a database query, cause the engine interface to cause the database query to be executed by a database engine, resulting in a query result, and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
10. The method of claim 9, wherein the library is imported as the computer program under development is loaded by an application for developing programs.
11. The method of claim 9, further comprising: subsequent to user interaction with a user interface, invoking the operation evaluator to cause the first and second data processing operations to be included in the queue and to cause the translatable portion of the queue to be compiled into the database query.
12. The method of claim 9, further comprising: enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query.
13. The method of claim 9, wherein the first indication further indicates the first data processing operation is dependent on the second data processing operation.
14. The method of claim 9, further comprising determining the first data processing operation is not translatable to a database query based on at least one of: a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query.
15. The method of claim 9, further comprising: identifying, in one or more queues comprising the queue, a common indication that occurs more than a predetermined number of times; generating a common table indication corresponding to the common indication; and mapping the common table indication to instances of the common indication in the one or more queues.
16. A computer-readable storage medium encoded with program instructions that, when executed by a processor circuit, perform a method for processing a sequence of statements of a code block, the method comprising: enabling a library to be imported into a computer program under development, the library comprising an operation evaluator and an engine interface; and based on the importing, enabling code of the library to be referenced within the computer program under development to: cause the operation evaluator to place a first indication of the first data processing operation in a translatable portion of a queue, cause the operation evaluator to place a second indication of the second data processing operation in a non-translatable portion of the queue, cause the operation evaluator to compile the translatable portion of the queue, resulting in a database query, cause the engine interface to cause the database query to be executed by a database engine, resulting in a query result, and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
17. The computer-readable storage medium of claim 16, wherein the library is imported as the computer program under development is loaded by an application for developing programs.
18. The computer-readable storage medium of claim 16, the method further comprising: subsequent to user interaction with a user interface, invoking the operation evaluator to cause the first and second data processing operations to be included in the queue and to cause the translatable portion of the queue to be compiled into the database query.
19. The computer-readable storage medium of claim 16, the method further comprising: enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query.
Claim 1. A system, comprising: a processor circuit; and memory that stores program code executable by the processor circuit, the program code comprising:
a code block processing engine configured to process a sequence of statements of a code block, the statements including data processing operations, the code block processing engine including an operation evaluator configured to: maintain a queue that includes a translatable portion comprising indications of data processing operations translatable to database queries and a non-translatable portion comprising indications of non-translatable data processing operations, determine that a first data processing operation of a first code block statement is not translatable to a database query, include an indication of the first data processing operation in the translatable portion of the queue, and responsive to a determination that a second data processing operation of a second code block statement is undeferrable, compile the translatable portion of the queue into a database query; and an engine interface configured to: cause the database query to be executed by a database engine to generate a query result; cause the first data processing operation to be executed by a data processing engine to generate a first data processing result; and
transmit, to an application configured to analyze the result dataset, a result dataset corresponding to the query result and the first data processing result.
2. The system of claim 1, wherein the indication of the first data processing operation in the non-translatable portion of the queue further indicates the first data processing operation is dependent on a third data processing operation.
3. The system of claim 2, wherein an indication of the third data processing operation is included in the translatable portion of the queue.
4. The system of claim 2, wherein the operation evaluator is further configured to: generate an expression tree comprising a first database expression and a second database expression, the first database expression comprising the indication of the first data processing operation, the second database expression comprising the indication of the third data processing operation, the expression tree indicating the first database expression is dependent on the second database expression.
5. The system of claim 1, wherein the engine interface is further configured to: select a subset of data to execute the first data processing operation against; and cause the first data processing operation to be executed by the data processing engine and with respect to the selected subset of data to generate the first data processing result.
6. The system of claim 5, wherein the subset of data comprises data included in the query result.
7. The system of claim 1, wherein the operation evaluator is configured to determine that the first data processing operation is not translatable to a database query based on at least one of: a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query.
8. A method for processing a sequence of statements of a code block, the statements including data processing operations, the method comprising: maintaining a queue that includes a translatable portion comprising indications of data processing operations translatable to data queries and a non-translatable portion comprising indications of non-translatable data processing operations; determining that a first data processing operation of a first code block statement is not translatable to a database query; including an indication of the first data processing operation in the non-translatable portion of the queue; responsive to a determination that a second data processing operation of a second code block statement is undeferrable, compiling the translatable portion of the queue into a database query; causing the database query to be executed by a database engine to generate a query result; causing the first data processing operation to be executed by a data processing engine to generate a first data processing result; and transmitting, to an application configured to analyze the result dataset, a result dataset corresponding to the query result and the first data processing result.
9. The method of claim 8, wherein the indication of the first data processing operation in the non-translatable portion of the queue further indicates the first data processing operation is dependent on a third data processing operation.
10. The method of claim 9, wherein an indication of the third data processing operation is included in the translatable portion of the queue.
11. The method of claim 8, further comprising: generating an expression tree comprising a first database expression and a second database expression, the first database expression comprising the indication of the first data processing operation, the second database expression comprising the indication of the third data processing operation, the expression tree indicating the first database expression is dependent on the second database expression.
12. The method of claim 8, further comprising: selecting a subset of data to execute the first data processing operation against; and causing the first data processing operation to be executed by the data processing engine and with respect to the selected subset of data to generate the first data processing result.
13. The method of claim 12, wherein the subset of data comprises data included in the query result.
14. The method of claim 8, wherein said determining that the first data processing operation is not translatable to a database query is based on at least one of: a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query.
15. A computer-readable storage medium encoded with program instructions that, when executed by a processor circuit, perform a method for processing a sequence of statements of a code block, the method comprising: maintaining a queue that includes a translatable portion comprising indications of data processing operations translatable to data queries and a non-translatable portion comprising indications of non-translatable data processing operations; determining that a first data processing operation of a first code block statement is not translatable to a database query; including an indication of the first data processing operation in the non-translatable portion of the queue; responsive to a determination that a second data processing operation of a second code block statement is undeferrable, compiling the translatable portion of the queue into a database query; causing the database query to be executed by a database engine to generate a query result; causing the first data processing operation to be executed by a data processing engine to generate a first data processing result; and transmitting, to an application configured to analyze the result dataset, a result dataset corresponding to the query result and the first data processing result.
16. The computer-readable storage medium of claim 15, wherein the indication of the first data processing operation in the non-translatable portion of the queue further indicates the first data processing operation is dependent on a third data processing operation.
17. The computer-readable storage medium of claim 16, wherein an indication of the third data processing operation is included in the translatable portion of the queue.
18. The computer-readable storage medium of claim 15, the method further comprising: generating an expression tree comprising a first database expression and a second database expression, the first database expression comprising the indication of the first data processing operation, the second database expression comprising the indication of the third data processing operation, the expression tree indicating the first database expression is dependent on the second database expression.
19. The computer-readable storage medium of claim 15, the method further comprising: selecting a subset of data to execute the first data processing operation against; and causing the first data processing operation to be executed by the data processing engine and with respect to the selected subset of data to generate the first data processing result.
20. The computer-readable storage medium of claim 19, wherein the subset of data comprises data included in the query result.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Kadiyala et al. “Applications of Python to Evaluate Environmental Data Science Problems” in view of Brossard et al. (US 11726976 B1).
Regarding claim 1, Kadiyala discloses a system, comprising: a processor circuit; and memory that stores program code structured to cause the processor circuit to: enable a library (page 1580, col. 1, Kadiyala, i.e. Python machine learning library package) to be imported into a computer program under development (page 1582, col. 1-2, Kadiyala, i.e. “…there are multiple methods of importing different types of data into the Spyder IDE for use with Scikit-learn…Type in the following commands in the Spyder Editor file to import the data from b20yesCO2.csv file. Type in command 8 to initiate the pandas as pd. All the subsequent references to “pd” in the Python code call on the pandas package functions, for example “import pandas as pd”), the library comprising an operation evaluator and an engine interface (Title and page 1582, col. 2, Kadiyala, i.e. The Python language was created to serve as a successor to the programing language handled and interfaced); and based on the importing (pages 1581- 1582, i.e., importing data), enable code of the library to be referenced within the computer program under development to: cause data processing operations to be included in a queue by the operation evaluator (page 1582, col. 1-2 “…Type in command 8 to initiate the pandas as pd. All the subsequent references to “pd” in the Python code will call on the pandas package functions for evaluation, wherein the input data from b20yesCO2.csv data is then imported as a DataFrame and assigned to the variable named “data” by using command 9), the queue comprising a translatable portion comprising indications of data processing operations translatable to data queries (page 1582, col. 1-2 “…b20yesCO2.csv data is then imported as a DataFrame and assigned to the variable named “data” subsequent references to pd in the Python code call on the pandas package functions, the input data from b20yesCO2.csv data is then imported as a DataFrame and assigned to the variable named “data” corresponding to “…operations translatable to data queries) and a non-translatable portion comprising indications of non-translatable data processing operations (page 1582, col. 1-2 “..in the absence of the input .csv file not being located within the working directory corresponding to “non-translatable data processing operations) cause the translatable data portion of the queue to be compiled into a database query by the operation evaluator (page 1582, col. 1-2), cause the engine interface to cause the database query to be executed by a database engine to generate a query result (page 1582, col. 1-2, The output “query result” from running the commands may be seen in the IPython console window of Spyder application launched in Anaconda with the three integrated panes: Editor pane for coding, variable Explorer pane for referring to the data formats, and the TPython console pane that provides programming output).
Kadiyala, however, does not explicitly disclose data portion of the queue to be compiled into a database query and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
Brossard discloses translatable data portion of the queue to be compiled into a database query (col.10, lines 25-53, Brossard, i.e., job compiler parses a job into multiple tasks and generates the execution code “query” for each of the multiple tasks and generating query plan for executing received queries read on the claimed “translatable data portion of the queue to be compiled into a database query”) and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset (col.10, lines 25-53 and col. 22, line 32 to col.23, line 31, Brossard, i.e., return values list reflects how SQL argument is encoded as a Pandas array of a particular dtype). It would have been obvious to a person having ordinary skill in the art before the effective filing date, having both Kadiyala and Brossard before them to compile multiple tasks into query as taught by Brossard for enhancing the execution’s query speed of Brossard. Because both Kadiyala and Brossard teach method for processing query operations, it would have been obvious to one skilled in the art to substitute one known method for the other to improve the speed and efficiency of executing query (col.10, lines 25-36, Brossard).
Regarding claim 2, Kadiyala/Brossard combination discloses wherein the program code is further structured to cause the processor to import the library as the computer program under development is loaded by an application for developing programs (page 1582, col. 1-2, Kadiyala).
Regarding claim 3, Kadiyala/Brossard combination discloses wherein the program code is further structured to cause the processor to: subsequent to user interaction with a user interface (page 1582, col. 1-2, Kadiyala), invoke the operation evaluator to cause the data processing operations to be included in the queue and cause the translatable data portion of the queue to be compiled into a database query (col.10, lines 25-36, Brossard).
Regarding claim 4, Kadiyala/Brossard combination discloses wherein the program code is further structured to cause the processor to: enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query (col.10, lines 25-36 and col. 22, line 32 to col.23, line 31, Brossard).
Regarding claim 5, Kadiyala/Brossard combination discloses wherein an indication of a first data processing operation in the non-translatable portion of the queue further indicates the first data processing operation is dependent on a second data processing operation, and an indication of the second data processing operation is included in the translatable portion of the queue (col.4, line 4 to col.5, line 18, Brossard).
Regarding claim 6, Kadiyala/Brossard combination discloses a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query (page 1582, col. 1-2 “..in the absence of the input .csv file not being located within the working directory).
Regarding claim 8, Kadiyala/Brossard combination discloses wherein the program code is structured to cause the processor circuit to utilize the engine interface to process a sequence of statements of a code block, the statements comprising the data processing operations (page 1582, col. 1-2 “…Type in command 8 to initiate the pandas as pd. All the subsequent references to “pd” in the Python code will call on the pandas package functions for evaluation, wherein the input data from b20yesCO2.csv data is then imported as a DataFrame).
Regarding claim 9, Kadiyala discloses a method for processing a sequence of statements of a code block, the statements including data processing operations (page 1582, col. 1-2, Kadiyala), the data processing operations comprising a first data processing operation and a second data processing operation, the method comprising: enabling a library to be imported into a computer program under development (page 1582, col. 1-2, Kadiyala, i.e. “…there are multiple methods of importing different types of data into the Spyder IDE for use with Scikit-learn…Type in the following commands in the Spyder Editor file to import the data from b20yesCO2.csv file. Type in command 8 to initiate the pandas as pd. All the subsequent references to “pd” in the Python code call on the pandas package functions, for example “import pandas as pd”), the library comprising an operation evaluator and an engine interface (Title and page 1582, col. 2, Kadiyala, i.e. The Python language was created to serve as a successor to the programing language handled and interfaced); and based on the importing (pages 1581- 1582, i.e., importing data), enabling code of the library to be referenced within the computer program under development to: cause the operation evaluator to place a first indication of the first data processing operation in a translatable portion of a queue (page 1582, col. 1-2 “…b20yesCO2.csv data is then imported as a DataFrame and assigned to the variable named “data” subsequent references to pd in the Python code call on the pandas package functions, the input data from b20yesCO2.csv data is then imported as a DataFrame and assigned to the variable named “data” corresponding to “…operations translatable to data queries), cause the operation evaluator to place a second indication of the second data processing operation in a non-translatable portion of the queue (page 1582, col. 1-2 “..in the absence of the input .csv file not being located within the working directory corresponding to “non-translatable data processing operations), cause the operation evaluator to compile the translatable portion of the queue (page 1582, col. 1-2), resulting in a database query, cause the engine interface to cause the database query to be executed by a database engine, resulting in a query result(page 1582, col. 1-2, The output “query result” from running the commands may be seen in the IPython console window of Spyder application launched in Anaconda with the three integrated panes: Editor pane for coding, variable Explorer pane for referring to the data formats, and the TPython console pane that provides programming output).
Kadiyala, however, does not explicitly disclose data portion of the queue to be compiled into a database query and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
Brossard discloses translatable data portion of the queue to be compiled into a database query (col.10, lines 25-53, Brossard, i.e., job compiler parses a job into multiple tasks and generates the execution code “query” for each of the multiple tasks and generating query plan for executing received queries read on the claimed “translatable data portion of the queue to be compiled into a database query”) and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset (col.10, lines 25-53 and col. 22, line 32 to col.23, line 31, Brossard, i.e., return values list reflects how SQL argument is encoded as a Pandas array of a particular dtype). It would have been obvious to a person having ordinary skill in the art before the effective filing date, having both Kadiyala and Brossard before them to compile multiple tasks into query as taught by Brossard for enhancing the execution’s query speed of Brossard. Because both Kadiyala and Brossard teach method for processing query operations, it would have been obvious to one skilled in the art to substitute one known method for the other to improve the speed and efficiency of executing query (col.10, lines 25-36, Brossard).
Regarding claim 10, Kadiyala/Brossard combination discloses wherein the library is imported as the computer program under development is loaded by an application for developing programs (pages 1581- 1582, Kadiyala).
Regarding claim 11, Kadiyala/Brossard combination discloses subsequent to user interaction with a user interface (page 1582, col. 1-2, Kadiyala), invoke the operation evaluator to cause the data processing operations to be included in the queue and cause the translatable data portion of the queue to be compiled into a database query (col.10, lines 25-36, Brossard).
Regarding claim 12, Kadiyala/Brossard combination discloses enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query (col.10, lines 25-36 and col. 22, line 32 to col.23, line 31, Brossard).
Regarding claim 13, Kadiyala/Brossard combination discloses wherein the first indication further indicates the first data processing operation is dependent on the second data processing operation (col.4, line 4 to col.5, line 18, Brossard).
Regarding claim 14, Kadiyala/Brossard combination discloses determining the first data processing operation is not translatable to a database query based on at least one of: a function of the first data processing operation not being translatable to an operator of a database query; or an argument of the first data processing operation not being translatable to an operand of a database query (page 1582, col. 1-2 “..in the absence of the input .csv file not being located within the working directory).
Regarding claim 16, Kadiyala discloses a computer-readable storage medium encoded with program instructions that, when executed by a processor circuit, perform a method for processing a sequence of statements of a code block, the method comprising: enabling a library to be imported into a computer program under development (page 1582, col. 1-2, Kadiyala, i.e. “…there are multiple methods of importing different types of data into the Spyder IDE for use with Scikit-learn…Type in the following commands in the Spyder Editor file to import the data from b20yesCO2.csv file. Type in command 8 to initiate the pandas as pd. All the subsequent references to “pd” in the Python code call on the pandas package functions, for example “import pandas as pd”), the library comprising an operation evaluator and an engine interface (Title and page 1582, col. 2, Kadiyala, i.e. The Python language was created to serve as a successor to the programing language handled and interfaced); and based on the importing (pages 1581- 1582, i.e., importing data), enabling code of the library to be referenced within the computer program under development to: cause the operation evaluator to place a first indication of the first data processing operation in a translatable portion of a queue, cause the operation evaluator to place a second indication of the second data processing operation in a non-translatable portion of the queue (page 1582, col. 1-2 “..in the absence of the input .csv file not being located within the working directory corresponding to “non-translatable data processing operations), cause the operation evaluator to compile the translatable portion of the queue (page 1582, col. 1-2), resulting in a database query, cause the engine interface to cause the database query to be executed by a database engine, resulting in a query result(page 1582, col. 1-2, The output “query result” from running the commands may be seen in the IPython console window of Spyder application launched in Anaconda with the three integrated panes: Editor pane for coding, variable Explorer pane for referring to the data formats, and the TPython console pane that provides programming output).
Kadiyala, however, does not explicitly disclose data portion of the queue to be compiled into a database query and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset.
Brossard discloses translatable data portion of the queue to be compiled into a database query (col.10, lines 25-53, Brossard, i.e., job compiler parses a job into multiple tasks and generates the execution code “query” for each of the multiple tasks and generating query plan for executing received queries read on the claimed “translatable data portion of the queue to be compiled into a database query”) and transmit a result dataset corresponding to the query result to an application configured to analyze the result dataset (col.10, lines 25-53 and col. 22, line 32 to col.23, line 31, Brossard, i.e., return values list reflects how SQL argument is encoded as a Pandas array of a particular dtype). It would have been obvious to a person having ordinary skill in the art before the effective filing date, having both Kadiyala and Brossard before them to compile multiple tasks into query as taught by Brossard for enhancing the execution’s query speed of Brossard. Because both Kadiyala and Brossard teach method for processing query operations, it would have been obvious to one skilled in the art to substitute one known method for the other to improve the speed and efficiency of executing query (col.10, lines 25-36, Brossard).
Regarding claim 17, Kadiyala/Brossard combination discloses wherein the library is imported as the computer program under development is loaded by an application for developing programs (pages 1581- 1582, Kadiyala).
Regarding claim 18, Kadiyala/Brossard combination discloses subsequent to user interaction with a user interface (page 1582, col. 1-2, Kadiyala), invoke the operation evaluator to cause the data processing operations to be included in the queue and cause the translatable data portion of the queue to be compiled into a database query (col.10, lines 25-36, Brossard).
Regarding claim 19, Kadiyala/Brossard combination discloses enabling code to be referenced within the computer program under development to generate an expression tree comprising a database expression, and wherein the operation evaluator compiles the database expression into the database query (col.10, lines 25-36 and col. 22, line 32 to col.23, line 31, Brossard).
Allowable Subject Matter
Claims 7, 15 and 20 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Regarding claim 7, similar claim 15 and claim 20, Kadiyala/Brossard combination discloses all of the claimed limitations as discussed above, except identify, in one or more queues comprising the queue, a common indication that occurs more than a predetermined number of times; generate a common table indication corresponding to the common indication; and map the common table indication to instances of the common indication in the one or more queues.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Pandas et al. (US 11853301 B1) disclose compiled portions of code generated to perform a query plan at a query engine is shared with other query engines. A data store, separate from the query engines, is store compiled portions of query code generated for different queries. If a query engine does not have a locally stored compiled portion of query code, then the separate data store may be accessed in order to obtain a compiled portion of query code, allowing reuse of compiled query code across different queries engines for queries directed to different databases (Fig.7; abstract, and col.8, lines 19-53, Pandas). Waas et al. (US 11625414 B2) disclose transparent interoperability between applications and data management system including code block processing comprising operation evaluator (col.5, line58 to col.6, line 63, Waas) and translating code block statement to database query (col.18, lines 9-22, Waas). Tempero et al. (US 20160342645 A1) disclose efficient storage using automatic data translation that automatically translates data as it passes between certain applications, specifically, an automatic data translation module (ADTM) receives a first particular format of data from a first application (abstract and ¶[0027]-[0028], Tempero) and automatically/transparently converts the first particular format of data into another representation of the same data, but in a second format utilized by a recipient application (¶[0027]-[0028], [0039]-[0040] and [0048], Tempero).
Ikeda et al. (S 20060056413 A1) disclose methods and systems for efficient queue propagation using a single protocol-based remote procedure call to stream a batch of messages.
Bireley et al. (US 20080319959 A1) disclose GENERATING INFORMATION ON DATABASE QUERIES IN SOURCE CODE INTO OBJECT CODE COMPILED FROM THE SOURCE CODE.
Hrle et al. (US 20160110439 A1) disclose DATABASE MANAGEMENT SYSTEM AND METHOD OF OPERATION.
Jahankhani (US 20160117364 A1) discloses GENERATING IMPERATIVE-LANGUAGE QUERY CODE FROM DECLARATIVE-LANGUAGE QUERY CODE.
Kondiles et al. (US 20210303570 A1) disclose FACILITATING QUERY EXECUTIONS VIA DYNAMIC DATA BLOCK ROUTING.
Argon et al. (US 20140282587 A1) disclose multi-core binary translation task processing.
Fallon (US 9298871 B1) discloses method and system for implementing transactions of parameterized cells.
Kogan et al. (US 20160092265 A1) disclose systems and methods for utilizing futures for constructing scalable shared data structures.
Perez (US 20190122139 A1) discloses system and method for generating SQL support for tree ensemble classifiers.
Bertoldi et al. (US 20200073947 A1) disclose translation system and method.
Danivas et al. (US 20220182331 A1) disclose methods and systems for adaptive network quality of service for latency critical applications.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HANH B THAI whose telephone number is (571)272-4029. The examiner can normally be reached Mon-Friday 7-4:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Tony Mahmoudi can be reached at 571-272-4078. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/HANH B THAI/Primary Examiner, Art Unit 2163
October 29, 2025