Prosecution Insights
Last updated: August 17, 2026
Application No. 19/300,969

SYSTEM AND METHOD FOR BATCHING DATABASE QUERIES

Non-Final OA §102§103§DP
Filed
Aug 15, 2025
Priority
Aug 30, 2024 — continuation of 12/411,846
Examiner
LU, KUEN S
Art Unit
2165
Tech Center
2100 — Computer Architecture & Software
Assignee
SAP SE
OA Round
1 (Non-Final)
85%
Grant Probability
Favorable
1-2
OA Rounds
1y 12m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 85% — above average
85%
Career Allowance Rate
788 granted / 923 resolved
+30.4% vs TC avg
Strong +15% interview lift
Without
With
+15.1%
Interview Lift
resolved cases with interview
Typical timeline
2y 12m
Avg Prosecution
24 currently pending
Career history
939
Total Applications
across all art units

Statute-Specific Performance

§101
12.8%
-27.2% vs TC avg
§103
48.2%
+8.2% vs TC avg
§102
19.4%
-20.6% vs TC avg
§112
9.1%
-30.9% vs TC avg
Black line = Tech Center average estimate • Based on career data from 923 resolved cases

Office Action

§102 §103 §DP
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 . DETAILED ACTION This action is response to the application filed on 08/15/2025. Claims 1-20 are pending in this Office Action in which claims 1-20 are rejected and claims 1, 14 and 19 are independent claims. Priority Acknowledged is that this Application claims the benefit of priority from parent Application 18820822 (U.S. Patent 12411846 issued 09/09/2025). Double Patenting Rejections The non-statutory 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 non-statutory 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 non-statutory 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 non-statutory 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 non-statutory obviousness-type double patenting as being unpatentable over claims 1-14 of U.S. Patent 12411846 (issued 09/09/2025 to the parent application 18820822, filed 08/30/2024). Although the conflicting are not patentably distinct from each other because since the claims of the U.S. Patent 12411846 contain elements of the claims of the instant application, and as such, anticipate the claims of the instant application. The conflicting claims between the instant application and the granted U.S. Patent 12411846 are listed in parallel in below table. Patent 12411846 claims 1-14 Instant Application claims 1-20 1. A system comprising: a memory storing executable program code; and one or more processing units to execute the executable program code to cause the system to: receive a plurality of database queries; determine a first set of database queries from the plurality of database queries, where each of the first set of database queries requests data from a same database table, and where a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table; merge the first set of database queries into a batch query, the batch query including a subclause respectively associated with each of the first set of database queries, where each subclause defines a query identifier column populated with an identifier of its respective database query, a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns, and a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns; transmit the batch query to a database; receive a batch query result set from the database; for each of the first set of database queries, determine a result set from the batch query result set; and return the result sets for each of the first set of database queries. 2. The system of claim 1, wherein a first one of the first set of database queries is associated with a first database schema and wherein a second one of the first set of database queries is associated with a second database schema. 3. The system of claim 1, wherein the plurality of database queries are received from a queue, and the one or more processing units are to execute the executable program code to cause the system to: remove the first set of database queries from the queue to leave a second plurality of database queries in the queue. 4. The system of claim 3, the one or more processing units to execute the executable program code to cause the system to: determine a third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table, and where a total count of returned records for the third set of database queries is less than the threshold; merge the third set of database queries into a second batch query; transmit the second batch query to the database; receive a second batch query result set from the database; for each of the third set of database queries, determine a second result set based on the second batch query result set; and return the second result sets for each of the third set of database queries. 5. The system of claim 1, wherein the plurality of database queries comprise a first queue associated with a first database connection, the one or more processing units to execute the executable program code to cause the system to: determine a second plurality of database queries of a second queue associated with a second database connection; determine a third set of database queries from the second plurality of database queries, where each of the third set of database queries selects from a second same database table; determine a second count of returned records for each of the third set of database queries; determine a fourth set of database queries from the third set of database queries, where a total second count of returned records for the fourth set of database queries is less than the threshold; determine a second batch query based on the fourth set of database queries; transmit the second batch query to the database; receive a second batch query result set from the database; for each of the fourth set of database queries, determine a second result set based on the second batch query result set; and return the second result sets for each of the fourth set of database queries. 6. The system of claim 1, wherein transmission of the batch query to the database comprises: determination that a database connector to the database is available; and transmission of the batch query to the database via the database connector only if it is determined that the database connector is available. 7. The system of claim 1, where the plurality of database queries comprises the first set of database queries and a second set of database queries, the one or more processing units to execute the executable program code to cause the system to: successively transmit each of the second set of database queries to the database after reception of the batch query result set from the database. 8. The system of claim 7, wherein the plurality of database queries are received from a queue, and wherein one of the second set of database queries was stored in the queue before one of the first set of database queries was stored in the queue. 9. The system of claim 1, where determination of the first set of database queries comprises determination that a number of the first set of database queries is less than a maximum number of queries to batch. 10. A method comprising: identifying a plurality of database queries in a queue; determining a first set of database queries of the plurality of database queries, where each of the first set of database queries requests data from a same database table, and where a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table; determining a batch query based on the first set of database queries the batch query including a subclause respectively associated with each of the first set of database queries, where each subclause defines a query identifier column populated with an identifier of its respective database query, a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns, and a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns; transmitting the batch query to a database; receiving a batch query result set from the database; for each of the first set of database queries, determine a result set from the batch query result set; and return the result sets for each of the first set of database queries. 11. The method of claim 10, further comprising: removing the first set of database queries from the queue to leave a second plurality of database queries in the queue; determining a third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table, and where a total count of returned records for the third set of database queries is less than the threshold; determining a second batch query based on the third set of database queries; transmitting the second batch query to the database; receiving a second batch query result set from the database; for each of the third set of database queries, determining a second result set based on the second batch query result set; and returning the second result sets for each of the third set of database queries. 12. The method of claim 10, wherein the plurality of database queries comprises the first set of database queries and a second set of database queries, and wherein one of the second set of database queries was stored in the queue before one of the first set of database queries was stored in the queue, the method further comprising: successively transmitting each of the second set of database queries to the database after reception of the batch query result set from the database. 13. One or more non-transitory computer-readable media storing program code that, when executed by a computing system, causes the computing system to perform operations comprising: receiving a plurality of database queries; determining a first set of database queries from the plurality of database queries, where each of the first set of database queries requests data from a same database table, where a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table; merging the first set of database queries into a batch query, the batch query including a subclause respectively associated with each of the first set of database queries, where each subclause defines a query identifier column populated with an identifier of its respective database query, a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns, and a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns; transmitting the batch query to a database; receiving a batch query result set from the database; for each of the first set of database queries, determining a result set from the batch query result set; and returning the result sets for each of the first set of database queries. 14. The one or more non-transitory computer-readable media storing program code according to claim 13 that, when executed by the computing system, causes the computing system to perform operations comprising: removing the first set of database queries from the queue to leave a second plurality of database queries in the queue; determining third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table; merging the third set of database queries into a second batch query; transmitting the second batch query to the database; receiving a second batch query result set from the database; for each of the third set of database queries, determining a second result set based on the second batch query result set; and returning the second result sets for each of the third set of database queries. 1. A system comprising: a memory storing executable program code; and one or more processing units to execute the executable program code to cause the system to: receive a plurality of database queries; determine a first set of database queries from the plurality of database queries, where each of the first set of database queries requests data from a same database table, and where a total count of returned records for the first set of database queries is less than a threshold; merge the first set of database queries into a batch query; transmit the batch query to a database; receive a batch query result set from the database; for each of the first set of database queries, determine a result set from the batch query result set; and return the result sets for each of the first set of database queries. 2. The system of claim 1, wherein a first one of the first set of database queries is associated with a first database schema and wherein a second one of the first set of database queries is associated with a second database schema. 3. The system of claim 2, wherein a third one of the first set of database queries requests data from a first one or more columns of the database table and a fourth one of the first set of database queries requests data from a second one or more columns of the database table. 4. The system of claim 1, wherein the batch query includes a subclause respectively associated with each of the first set of database queries, and each subclause defines a query identifier column populated with an identifier of its respective database query. 5. The system of claim 1, wherein a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table. 6. The system of claim 5, wherein the batch query includes a subclause respectively associated with each of the first set of database queries, wherein a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns, and wherein a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns. 7. The system of claim 1, wherein the plurality of database queries are received from a queue, and the one or more processing units are to execute the executable program code to cause the system to: remove the first set of database queries from the queue to leave a second plurality of database queries in the queue. 8. The system of claim 7, the one or more processing units to execute the executable program code to cause the system to: determine a third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table, and where a total count of returned records for the third set of database queries is less than the threshold; merge the third set of database queries into a second batch query; transmit the second batch query to the database; receive a second batch query result set from the database; for each of the third set of database queries, determine a second result set based on the second batch query result set; and return the second result sets for each of the third set of database queries. 9. The system of claim 1, wherein the plurality of database queries comprise a first queue associated with a first database connection, the one or more processing units to execute the executable program code to cause the system to: determine a second plurality of database queries of a second queue associated with a second database connection; determine a third set of database queries from the second plurality of database queries, where each of the third set of database queries selects from a second same database table; determine a second count of returned records for each of the third set of database queries; determine a fourth set of database queries from the third set of database queries, where a total second count of returned records for the fourth set of database queries is less than the threshold; determine a second batch query based on the fourth set of database queries; transmit the second batch query to the database; receive a second batch query result set from the database; for each of the fourth set of database queries, determine a second result set based on the second batch query result set; and return the second result sets for each of the fourth set of database queries. 10. The system of claim 1, wherein transmission of the batch query to the database comprises: determination that a database connector to the database is available; and transmission of the batch query to the database via the database connector only if it is determined that the database connector is available. 11. The system of claim 1, where the plurality of database queries comprises the first set of database queries and a second set of database queries, the one or more processing units to execute the executable program code to cause the system to: successively transmit each of the second set of database queries to the database after reception of the batch query result set from the database. 12. The system of claim 11, wherein the plurality of database queries are received from a queue, and wherein one of the second set of database queries was stored in the queue before one of the first set of database queries was stored in the queue. 13. The system of claim 1, where determination of the first set of database queries comprises determination that a number of the first set of database queries is less than a maximum number of queries to batch. 14. A method comprising: identifying a plurality of database queries in a queue; determining a first set of database queries of the plurality of database queries, where each of the first set of database queries requests data from a same database table, and where a total count of returned records for the first set of database queries is less than a threshold; determining a batch query based on the first set of database queries; transmitting the batch query to a database; receiving a batch query result set from the database; for each of the first set of database queries, determine a result set from the batch query result set; and return the result sets for each of the first set of database queries. 15. The method of claim 14, wherein a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table, wherein the batch query includes a subclause respectively associated with each of the first set of database queries, wherein a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns, and wherein a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns. 16. The method of claim 14, wherein the batch query includes a subclause respectively associated with each of the first set of database queries, and each subclause defines a query identifier column populated with an identifier of its respective database query. 17. The method of claim 14, further comprising: removing the first set of database queries from the queue to leave a second plurality of database queries in the queue; determining a third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table, and where a total count of returned records for the third set of database queries is less than the threshold; determining a second batch query based on the third set of database queries; transmitting the second batch query to the database; receiving a second batch query result set from the database; for each of the third set of database queries, determining a second result set based on the second batch query result set; and returning the second result sets for each of the third set of database queries. 18. The method of claim 14, wherein the plurality of database queries comprises the first set of database queries and a second set of database queries, and wherein one of the second set of database queries was stored in the queue before one of the first set of database queries was stored in the queue, the method further comprising: successively transmitting each of the second set of database queries to the database after reception of the batch query result set from the database. 19. One or more non-transitory computer-readable media storing program code that, when executed by a computing system, causes the computing system to perform operations comprising: receiving a plurality of database queries; determining a first set of database queries from the plurality of database queries, where each of the first set of database queries requests data from a same database table, and where a total count of returned records for the first set of database queries is less than a threshold merging the first set of database queries into a batch query; transmitting the batch query to a database; receiving a batch query result set from the database; for each of the first set of database queries, determining a result set from the batch query result set; and returning the result sets for each of the first set of database queries. 20. The one or more non-transitory computer-readable media storing program code according to claim 19 that, when executed by the computing system, causes the computing system to perform operations comprising: removing the first set of database queries from the queue to leave a second plurality of database queries in the queue; determining third set of database queries from the second plurality of database queries, where each of the third set of database queries requests data from a same second database table; merging the third set of database queries into a second batch query; transmitting the second batch query to the database; receiving a second batch query result set from the database; for each of the third set of database queries, determining a second result set based on the second batch query result set; and returning the second result sets for each of the third set of database queries. “Omission of element and its function in combination is obvious expedient if the remaining elements perform same functions as before.” See In re Karlson (CCPA) 136 USPQ 184, decide Jan 16, 1963, Appl. No. 6857, U.S. Court of Customs and Patent Appeals. Claim Rejections - 35 USC § 102 (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claim 14, 1 and 19 are rejected under 35 U.S.C. 102(a)(2) as anticipated by Gladwin et al.: “ENFORCEMENT OF MINIMUM QUERY COST RULES REQUIRED FOR ACCESS TO A DATABASE SYSTEM”, (U.S. Patent Application Publication US 20210124744 A1, DATE PUBLISHED 2021-04-29; and DATE FILED 2019-10-28, hereafter “Gladwin"). As per claim 14, Gladwin teaches a method comprising: identifying a plurality of database queries in a queue (See [0438], the query and/or generated result sets for these non-compliant queries can be queued in a local cache of the analytics system.); determining a first set of database queries of the plurality of database queries (See [0260], retrieving the result set-based query pricing scheme data for a particular type of the result set of the query based on result set characteristics determined by the query pricing module 880 for the result set of the query. Here the determined set of queries based on pricing data reads on a first set of database queries), where each of the first set of database queries requests data from a same database table (See [0283], query data indicating access to a same table as the given query utilizing the same and/or similar filtering parameters), and where a total count of returned records for the first set of database queries is less than a threshold (See [0171], the query processing module utilizes intermediate results and/or values generated in executing a query to determine whether compliance is achieved. In particular, one or more rules of the runtime ruleset can pertain to rules specific to intermediate result sets and/or values, which may not be derivable from a final result of the query. For example, a runtime rule can require that an aggregation, such as an average, must be performed upon at least a threshold minimum number of records. The number of records utilized to generate the resulting average cannot be derived from the value of the average itself. Thus, an intermediate result, corresponding to the set of records utilized to generate the average, must be evaluated to determine if the number of records in this set meets or exceeds the threshold minimum number of records.); determining a batch query based on the first set of database queries (See [0122], to track payment by the user in accordance costs of performing individual queries set [together] by the billing structure data of one or more data providers. Here the individual queries set performed for all queries in the set reads on the batch of queries performed); transmitting the batch query to a database (See [0122], to track payment by the user in accordance costs of performing individual queries set [together] by the billing structure data of one or more data providers. Here the individual queries set performed for all queries in the set reads on the batch of queries transmitted to the database for being performed); receiving a batch query result set from the database (See [0074], The result sets generated in executing these queries can be utilized to generate a query response for transmission back to the corresponding user device); for each of the first set of database queries, determine a result set from the batch query result set (See [0074], The result sets generated in executing these queries can be utilized to generate a query response for transmission back to the corresponding user device); and return the result sets for each of the first set of database queries (See [0074], The result sets generated in executing these queries can be utilized to generate a query response for transmission back to the corresponding user device). As per claim 1, the claim recites a system comprising: a memory storing executable program code (See Gladwin: [0084], a memory module 222 can store operational instructions); and one or more processing units to execute the executable program code to cause the system (See Gladwin: [0084], when the operational instructions executed by the processing module that cause the processing module) to execute the operations recited as the steps of the method of the claim 14 and rejected above under 35 U.S.C. 102 as anticipated by Gladwin. Accordingly, claim 1 is rejected along the same rationale that rejected claim 14. As per claim 19, OraDWG teaches one or more non-transitory computer-readable media storing program code that, when executed by a computing system, causes the computing system (See Gladwin: [0084], a memory module 222 can store operational instructions that, when executed by the processing module) to perform operations recited as the steps of the method of the claim 14 and rejected above under 35 U.S.C. 102 as anticipated by Gladwin. Accordingly, claim 19 is rejected along the same rationale that rejected claim 14. 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 of this title, 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. The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action. The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or non-obviousness. This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37CPR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention. Claims 2-13, 15-18 and 20 are rejected under 35 U.S.C. § 103 as being unpatentable over Gladwin et al.: “ENFORCEMENT OF MINIMUM QUERY COST RULES REQUIRED FOR ACCESS TO A DATABASE SYSTEM”, (U.S. Patent Application Publication US 20210124744 A1, DATE FILED 2021-04-29; and DATE PUBLISHED 2019-10-28, hereafter “Gladwin"), in view of Lane et al.: “Oracle Database Data Warehousing Guide, 10g Release 1 (10.1)”, ( December 2003, Oracle Corporation, hereafter “OraDWG"). As per claim 2, Gladwin does not explicitly teach the system of claim 1, wherein a first one of the first set of database queries is associated with a first database schema and wherein a second one of the first set of database queries is associated with a second database schema. However, OraDWG teaches the system of claim 1, wherein a first one of the first set of database queries is associated with a first database schema (See Pages 18-64, SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'M' and c.cust_city = 'San Francisco' UNION ALL SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'F' and c.cust_city = 'Los Angeles'; Here the SELECT statements teaches the first set of queries associated with the first schema customers), and wherein a second one of the first set of database queries is associated with a second database schema (See Pages 18-64, SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the SELECT statements teaches the second set of queries associated with the second schema cust_postal_mv and the schema cust_postal_mv is associated with first schema customers by a materialized view created). It would have been obvious to one having ordinary skill in the art at the time of the Applicant's invention was made to combine the teaching of OraDWG with Gladwin because OraDWG is dedicated to query rewrites and materialized view creation and Gladwin is dedicated to query processing, and a combined teaching of the references would have enabled Gladwin to utilize materialized view and query rewrites to improve database system performance by more efficient queries and data storage. As per claim 3, Gladwin in view of OraDWG teaches the system of claim 2, wherein a third one of the first set of database queries requests data from a first one or more columns of the database table and a fourth one of the first set of database queries requests data from a second one or more columns of the database table (See OraDWG: Pages 18-64 and 2-8, SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'M' and c.cust_city = 'San Francisco' UNION ALL SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'F' and c.cust_city = 'Los Angeles'; a rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; and the customers table is created with four columns: #cust_id, cust_last_name, cust_city, and cust_state_province; and materialized view cust_postal_mv is created with columns mv.cust_city, mv.cust_postal_code and mv.cust_gender for queries to access the numerous columns). As per claim 4, Gladwin in view of OraDWG teaches the system of claim 1, wherein the batch query includes a subclause respectively associated with each of the first set of database queries and each subclause defines a query identifier column populated with an identifier of its respective database query (See OraDWG: Pages 18-64 and 24-2, CREATE MATERIALIZED VIEW cust_postal_mv ENABLE QUERY REWRITE AS SELECT 1 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'Los Angeles' UNION ALL SELECT 2 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'San Francisco'; and parallel execution can be seen in DSS and data warehousing environments. OLTP systems can also benefit from parallel execution during batch processing and during schema maintenance operations such as creation of indexes. The average simple DML or SELECT statements that characterize OLTP applications would not see any benefit from being executed in parallel. Here each SELECT statement teaches a subquery marked by a marker as identifier for populating data from the columns in the SELECT statements). As per claim 5, Gladwin in view of OraDWG teaches the system of claim 1, wherein a first one of the first set of database queries requests data from a first one or more columns of the database table and a second one of the first set of database queries requests data from a second one or more columns of the database table (See OraDWG: Page 18-77, Example 18–14 Rewrite Using Equivalence (UNION ALL) CREATE MATERIALIZED VIEW T1 AS SELECT g.region, g.state, g,city, 0 as gid, SUM(sales) sales FROM sales_fact f, geog_dim g WHERE f.geog_key = g.geog_key GROUP BY g.region, g.state, g.city; CREATE MATERIALIZED VIEW T2 AS SELECT region, state, SUM(sales) sales FROM T1 GROUP BY region, state; CREATE VIEW T3 AS SELECT region, SUM(sales) sales FROM T2 GROUP BY region; Here T1, T2 and T3 teaches or reads on the tables providing columns for the set of queries by query statements SELECTs). As per claim 6, Gladwin in view of OraDWG teaches the system of claim 5, wherein the batch query includes a subclause respectively associated with each of the first set of database queries (See OraDWG: Page 24-2, parallel execution can be seen in DSS and data warehousing environments. OLTP systems can also benefit from parallel execution during batch processing and during schema maintenance operations such as creation of indexes. The average simple DML or statements that characterize OLTP SELECT applications would not see any benefit from being executed in parallel. ), wherein a subclause associated with the first one of the first set of database queries defines NULL fields for ones of the second one or more columns which are not in the first one or more columns (See OraDWG: Page 18-77, the ROLLUP(region, state, city) query is then equivalent to: SELECT * FROM T1 UNION ALL SELECT region, state, NULL, 1 AS gid, sales FROM T2 UNION ALL SELECT region, NULL, NULL, 3 AS gid, sales FROM T3 UNION ALL SELECT NULL, NULL, NULL, 7 AS gid, SUM(sales) FROM T3;), and wherein a subclause associated with the second one of the first set of database queries defines NULL fields for ones of the first one or more columns which are not in the second one or more columns (See OraDWG: Page 18-77, the ROLLUP(region, state, city) query is then equivalent to: SELECT * FROM T1 UNION ALL SELECT region, state, NULL, 1 AS gid, sales FROM T2 UNION ALL SELECT region, NULL, NULL, 3 AS gid, sales FROM T3 UNION ALL SELECT NULL, NULL, NULL, 7 AS gid, SUM(sales) FROM T3;). As per claim 7, Gladwin in view of OraDWG teaches the system of claim 1, wherein the plurality of database queries are received from a queue, and the one or more processing units are to execute the executable program code to cause the system to: remove the first set of database queries from the queue to leave a second plurality of database queries in the queue (See OraDWG: Page 15-20, If the process that is executing DBMS_MVIEW.REFRESH is interrupted or the instance is shut down, any refresh jobs that were executing in job queue processes will be requeued and will continue running. To remove these jobs, use the DBMS_JOB.REMOVE procedure. Here removing a job from job que reads on removing a current one and leaving the next to be processed). As per claim 8, Gladwin in view of OraDWG teaches the system of claim 7, the one or more processing units to execute the executable program code to cause the system to: determine a third set of database queries from the second plurality of database queries (See OraDWG: Page 18-64, SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'M' and c.cust_city = 'San Francisco' UNION ALL SELECT c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_gender = 'F' and c.cust_city = 'Los Angeles'; The query can be answered using the following materialized view: CREATE MATERIALIZED VIEW cust_postal_mv ENABLE QUERY REWRITE AS SELECT 1 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'Los Angeles' UNION ALL SELECT 2 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'San Francisco'; The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here listed above are three sequenced set of queries, the 3rd is a rewrite of the 1st referencing to the 2nd that created materialized view cust_postal_mv), where each of the third set of database queries requests data from a same second database table (See OraDWG: Page 18-64, the third set of queries all request data from cust_postal_mv, the same materialized view that reads on a database table), and where a total count of returned records for the third set of database queries is less than the threshold (See Gladwin: [0171], the query processing module utilizes intermediate results and/or values generated in executing a query to determine whether compliance is achieved. In particular, one or more rules of the runtime ruleset can pertain to rules specific to intermediate result sets and/or values, which may not be derivable from a final result of the query. For example, a runtime rule can require that an aggregation, such as an average, must be performed upon at least a threshold minimum number of records. The number of records utilized to generate the resulting average cannot be derived from the value of the average itself. Thus, an intermediate result, corresponding to the set of records utilized to generate the average, must be evaluated to determine if the number of records in this set meets or exceeds the threshold minimum number of records.); merge the third set of database queries into a second batch query (See OraDWG: Page 24-22, Parallel DML (merge) uses parallel execution mechanisms to speed up or scale up large DML operations against large database tables and indexes.); transmit the second batch query to the database (See OraDWG: Pages 16-84 and 24-43, a query with extended GROUP BY is represented as an equivalent UNION ALL and recursively submitted for rewrite optimization. The groupings that cannot be rewritten stay in the last branch of UNION ALL and access the base data instead. Here the set of queries are lack of GROUP BY clause are submitted optionally in batch for processing); receive a second batch query result set from the database (See OraDWG: Pages 16-84, The query can be answered using the following materialized view: CREATE MATERIALIZED VIEW cust_postal_mv ENABLE QUERY REWRITE AS SELECT 1 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'Los Angeles' UNION ALL SELECT 2 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'San Francisco'; Here the second set queries is submitted and results returned); for each of the third set of database queries, determine a second result set based on the second batch query result set (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the third set of queries is submitted for processing pending the determined a second result set based on the second batch query result set); and return the second result sets for each of the third set of database queries (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the third set of queries is submitted for processing pending the determined a second result set based on the second batch query result set). As per claim 9, Gladwin in view of OraDWG teaches the system of claim 1, wherein the plurality of database queries comprise a first queue associated with a first database connection, the one or more processing units to execute the executable program code to cause the system to: determine a second plurality of database queries of a second queue associated with a second database connection (See OraDWG: Pages 15-20 and 16-84, Job queues can be used to refresh multiple materialized views in parallel and the query can be answered using the following materialized view: CREATE MATERIALIZED VIEW cust_postal_mv ENABLE QUERY REWRITE AS SELECT 1 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'Los Angeles' UNION ALL SELECT 2 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'San Francisco'; Here the second set queries is submitted and results returned); determine a third set of database queries from the second plurality of database queries (See The query can be answered using the following materialized view: CREATE MATERIALIZED VIEW cust_postal_mv ENABLE QUERY REWRITE AS SELECT 1 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'Los Angeles' UNION ALL SELECT 2 AS marker, c.cust_gender, c.cust_city, c.cust_postal_code FROM customers c WHERE c.cust_city = 'San Francisco'; Here the second set queries is submitted and results returned); for each of the third set of database queries, determine a second result set based on the second batch query result set (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the third set of queries is submitted for processing pending the determined a second result set based on the second batch query result set), where each of the third set of database queries selects from a second same database table (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here each query of the third set of queries selects from a same second table, the materialized view cust_postal_mv); determine a second count of returned records for each of the third set of database queries (See Gladwin: [0171], the query processing module utilizes intermediate results and/or values generated in executing a query to determine whether compliance is achieved. In particular, one or more rules of the runtime ruleset can pertain to rules specific to intermediate result sets and/or values, which may not be derivable from a final result of the query. For example, a runtime rule can require that an aggregation, such as an average, must be performed upon at least a threshold minimum number of records. The number of records utilized to generate the resulting average cannot be derived from the value of the average itself. Thus, an intermediate result, corresponding to the set of records utilized to generate the average, must be evaluated to determine if the number of records in this set meets or exceeds the threshold minimum number of records); determine a fourth set of database queries from the third set of database queries (See Pages 18-42 and 18-43, Every grouping of the original query is placed in a separate UNION ALL branch. The branch will have a simple GROUP BY clause. For example, consider this query: SELECT p.prod_category, p.prod_subcategory, c.cust_state_province, t.calendar_month_desc, SUM(s.amount_sold) AS sum_amount_sold FROM sales s, products p, customers c, times t WHERE s.prod_id = p.prod_id AND s.cust_id = c.cust_id GROUP BY GROUPING SETS ((p.prod_subcategory, t.calendar_month_desc), (t.calendar_month_desc), (p.prod_category, p.prod_subcategory, c.cust_state_province), (p.prod_category, p.prod_subcategory)); This is first represented as UNION ALL with four branches: SELECT null, p.prod_subcategory, null, t.calendar_month_desc, SUM(s.amount_sold) AS sum_amount_sold FROM sales s, products p, customers c, times t WHERE s.prod_id = p.prod_id AND s.cust_id = c.cust_id GROUP BY p.prod_subcategory, t.calendar_month_desc How Oracle Rewrites Queries Query Rewrite 18-43 UNION ALL SELECT null, null, null, t.calendar_month_desc, SUM(s.amount_sold) AS sum_amount_sold FROM sales s, products p, customers c, times t WHERE s.prod_id = p.prod_id AND s.cust_id = c.cust_id GROUP BY t.calendar_month_desc UNION ALL SELECT p.prod_category, p.prod_subcategory, c.cust_state_province, null, SUM(s.amount_sold) AS sum_amount_sold FROM sales s, products p, customers c, times t WHERE s.prod_id = p.prod_id AND s.cust_id = c.cust_id GROUP BY p.prod_category, p.prod_subcategory, c.cust_state_province UNION ALL SELECT p.prod_category, p.prod_subcategory, null, null, SUM(s.amount_sold) AS sum_amount_sold FROM sales s, products p, customers c, times t WHERE s.prod_id = p.prod_id AND s.cust_id = c.cust_id GROUP BY p.prod_category, p.prod_subcategory; Here the queries of the third and fourth UNION ALL reads on the 3rd and 4th sets of queries, respectively), where a total second count of returned records for the fourth set of database queries is less than the threshold (See Gladwin: [0171], the query processing module utilizes intermediate results and/or values generated in executing a query to determine whether compliance is achieved. In particular, one or more rules of the runtime ruleset can pertain to rules specific to intermediate result sets and/or values, which may not be derivable from a final result of the query. For example, a runtime rule can require that an aggregation, such as an average, must be performed upon at least a threshold minimum number of records. The number of records utilized to generate the resulting average cannot be derived from the value of the average itself. Thus, an intermediate result, corresponding to the set of records utilized to generate the average, must be evaluated to determine if the number of records in this set meets or exceeds the threshold minimum number of records); determine a second batch query based on the fourth set of database queries (See OraDWG: Page 24-2, parallel execution can be seen in DSS and data warehousing environments. OLTP systems can also benefit from parallel execution during batch processing and during schema maintenance operations such as creation of indexes. The average simple DML or statements that characterize OLTP SELECT applications would not see any benefit from being executed in parallel.); transmit the second batch query to the database (See OraDWG: Pages 16-84 and 24-43, a query with extended GROUP BY is represented as an equivalent UNION ALL and recursively submitted for rewrite optimization. The groupings that cannot be rewritten stay in the last branch of UNION ALL and access the base data instead. Here the set of queries are lack of GROUP BY clause are submitted optionally in batch for processing); receive a second batch query result set from the database (See OraDWG: Page 24-2, parallel execution can be seen in DSS and data warehousing environments. OLTP systems can also benefit from parallel execution during batch processing and during schema maintenance operations such as creation of indexes. The average simple DML or statements that characterize OLTP SELECT applications would not see any benefit from being executed in parallel.)); for each of the fourth set of database queries, determine a second result set based on the second batch query result set (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the third set of queries is submitted for processing pending the determined a second result set based on the second batch query result set); and return the second result sets for each of the fourth set of database queries (See OraDWG: Pages 16-84, The rewritten query is as follows: SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 2 AND mv.cust_gender = 'M' UNION ALL SELECT mv.cust_city, mv.cust_postal_code FROM cust_postal_mv mv WHERE mv.marker = 1 AND mv.cust_gender = 'F'; Here the third set of queries is submitted for processing pending the determined a second result set based on the second batch query result set). As per claim 10, Gladwin in view of OraDWG teaches the system of claim 1, wherein transmission of the batch query to the database comprises: determination that a database connector to the database is available (See OraDWG: Page 12-11, below SQL scripts creates local table and populates data from remote database source by connecting to the schema of the remote database in which database available for connection is determined before creating local table: CREATE TABLE country_city AS SELECT distinct t1.country_name, t2.cust_city FROM countries@source_db t1, customers@source_db t2 WHERE t1.country_id = t2.country_id AND t1.country_name='United States of America';); and transmission of the batch query to the database via the database connector only if it is determined that the database connector is available (See OraDWG: Pages 16-84 and 24-43, a query with extended GROUP BY is represented as an equivalent UNION ALL and recursively submitted for rewrite optimization. The groupings that cannot be rewritten stay in the last branch of UNION ALL and access the base data instead. Here the set of queries are lack of GROUP BY clause are submitted optionally in batch for processing). As per claim 11, Gladwin in view of OraDWG teaches the system of claim 1, where the plurality of database queries comprises the first set of database queries and a second set of database queries, the one or more processing units to execute the executable program code to cause the system to: successively transmit each of the second set of database queries to the database after reception of the batch query result set from the database (See OraDWG: Pages 16-84 and 24-43, a query with extended GROUP BY is represented as an equivalent UNION ALL and recursively submitted for rewrite optimization. The groupings that cannot be rewritten stay in the last branch of UNION ALL and access the base data instead. Here the set of queries are lack of GROUP BY clause are submitted optionally in batch for processing). As per claim 12, Gladwin in view of OraDWG teaches the system of claim 11, wherein the plurality of database queries are received from a queue, and wherein one of the second set of database queries was stored in the queue before one of the first set of database queries was stored in the queue (See OraDWG: Page 15-25, If job queues are enabled and there are many materialized views to refresh, it is faster to refresh all of them in a single command than to call them individually.). As per claim 13, Gladwin in view of OraDWG teaches the system of claim 1, where determination of the first set of database queries comprises determination that a number of the first set of database queries is less than a maximum number of queries to batch (See OraDWG: Page 24-22, running Batch Jobs Batch jobs executed in an OLTP database during off hours have a fixed time window in which the jobs must complete. A good way to ensure timely job completion is to parallelize their operations. As the work load increases, more machine resources can be added; the scaleup property of parallel operations ensures that the time constraint can be met.). As per claims 15, 16, 17 and 18, the claims recite the method comprising steps recited as the operations performed by the system of the claims 2, 4, (7 and 8) and 11, respectively, and rejected above as under 35 U.S.C. 103 as unpatentable over Gladwin in view of OraDWG. Accordingly, claims 15, 16, 17 and 18, are rejected along the same rationale that rejected claims 2, 4, (7 and 8) and 11, respectively. As per claim 20, OraDWG teaches one or more non-transitory computer-readable media storing program code that, when executed by a computing system, causes the computing system (See Gladwin: [0084], a memory module 222 can store operational instructions that, when executed by the processing module) to perform operations recited as the operations performed by the system of the claims 7 and 8 in combination, and rejected above under 35 U.S.C. 103 as unpatentable over Gladwin in view of OraDWG. Accordingly, claim 20 is rejected along the same rationale that rejected claims 7 and 8 in combination. Related Prior Arts The prior art made of record and not relied upon is considered pertinent to applicant's disclosure can be found in the PTO-892 Notice of Reference Cited. Conclusion Examiner has cited particular columns and line numbers in the references applied to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in 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. SEE MPEP 2141.02 [R-5] VI. PRIOR ART MUST BE CONSIDERED IN ITS ENTIRETY, INCLUDING DISCLOSURES THAT TEACH AWAY FROM THE CLAIMS: A prior art reference must be considered in its entirety, i.e., as a whole, including portions that would lead away from the claimed invention. W.L. Gore & Associates, Inc. v. Garlock, Inc., 721 F.2d 1540, 220 USPQ 303 (Fed. Cir. 1983), cert. denied, 469 U.S. 851 (1984) In re Fulton, 391 F.3d 1195, 1201, 73 USPQ2d 1141, 1146 (Fed. Cir. 2004). >See also MPEP §2123. In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to KUEN S LU whose telephone number is (571)272-4114. The examiner can normally be reached on M-F, 8-19, Mid-Flex 2 hours. 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, Mr. Aleksandr Kerzhner can be reached on 571-270-1760. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. KUEN S LU /Kuen S Lu/ Art Unit 2165 Primary Patent Examiner July 15, 2026
Read full office action

Prosecution Timeline

Aug 15, 2025
Application Filed
Jul 17, 2026
Non-Final Rejection mailed — §102, §103, §DP (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12699380
DATA TRANSMISSION THROUGH A UNIDIRECTIONAL GATEWAY
3y 2m to grant Granted Aug 04, 2026
Patent 12682011
Methods and Systems for Data Feature Extraction
1y 6m to grant Granted Jul 14, 2026
Patent 12670132
CARDINALITY ESTIMATION METHOD AND APPARATUS
1y 9m to grant Granted Jun 30, 2026
Patent 12657170
Computer-Implemented Method for Configuring a Component with an OPC UA Server in an Industrial Plant
1y 4m to grant Granted Jun 16, 2026
Patent 12645726
LATENT CONCEPT ANALYSIS METHOD
3y 1m to grant Granted Jun 02, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
85%
Grant Probability
99%
With Interview (+15.1%)
2y 12m (~1y 12m remaining)
Median Time to Grant
Low
PTA Risk
Based on 923 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month