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 .
Specification
The title of the invention is not descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 2 and 12 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 2 and 12 recite the limitation "the query plan" in the body of the claim in the “parsing the query plan into an abstract syntax tree. There is insufficient antecedent basis for this limitation in the claim.
Claims 2 and 12 respectively depend upon claims 1 and 11 which recite “generate an initial query plan” and “produce an optimized query plan”. There is no mention of “a query plan”. Additionally, claim 2 is describing how to generate the initial query plan with the first step appearing to have the query plan already created before doing various actions upon it. The Examiner notes that the independent claim indicates that the initial query plan is generated “based on the query request”. Additionally, paragraph [0053] indicates that the respective node “parses the query to create an abstract syntax tree” and not the “query plan”. As such, it is unclear if the limitation is a typographical error (i.e. meant to be similar to paragraph [0053]). For purposes of compact prosecution, the Examiner is construing the limitation to be similar to applicant’s paragraph [0053]. Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
With regard to claim 1:
Step 2A, Prong One:
The claim recites the following limitations which are drawn towards an abstract idea:
wherein a set of loader nodes of the plurality of loader nodes collectively
wherein a set of foundation nodes of the plurality of foundation nodes collectively execute a set of query operational instructions on the at least a portion of the ingested data set to produce a partial query response (recites mental process steps of performing evaluations/analysis/calculations on data which can include mathematical functions);
and wherein the set of SQL nodes collectively generate an output query response based on the partial query response and one or more output query operational instructions (recites mental process steps of analytics/analyzing as well as combinational/logical or even mathematical operations that aggregate or combine various input datasets together to form an answer/output response);
generate an initial query plan based on the query request; and wherein the set of SQL nodes is operable to: optimize the initial query plan based on resource capabilities of the set of foundation nodes to produce an optimized query plan, wherein the optimized query plan includes the set of query operational instructions and the one or more output query operational instructions (recites mental process steps of evaluation and judgement including formulating a plan or order of operations/instructions to perform).
As seen from above, the identified limitations recite concepts associated with an abstract idea and thus the respective claim recites a judicial exception (see 2106.04(a)) and thus requires further analysis as discussed below.
Step 2A, Prong Two:
The following limitations have been identified as being additional elements as discussed below.
A database system comprises: a load sub-system that includes a plurality of loader nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
wherein a set of loader nodes of the plurality of loader nodes collectively ingests (recites insignificant extrasolution activity of data gathering or receiving information, see MPEP 2106.05(g)),
a store and compute sub-system that includes a plurality of foundation nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
and a query and response sub-system that includes a plurality of SQL (Standard Query Language) nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
wherein a set of SQL nodes of the plurality of SQL nodes collectively generate the set of query operational instructions (recites creating computer instructions to perform generic computer operations at a high-level of generality amounting to idea of a solution that uses the computer as a tool to implement the abstract idea, see MPEP 2106.05(f)),
wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set (recites insignificant extrasolution activity of data gathering or receiving information, see MPEP 2106.05(g));
As seen from the above discussion, the identified limitations did not integrate the judicial exception into a practical application (see MPEP 2106.04(d)). This judicial exception is not integrated into a practical application because the additional elements recite generic computer elements at a high-level of generality to perform/implement the abstract idea as well as various generic functions of retrieving and storing information as well as transmitting information.
Step 2B:
Below is the analysis of the claims:
A database system comprises: a load sub-system that includes a plurality of loader nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
wherein a set of loader nodes of the plurality of loader nodes collectively ingests (recites well-understood, routine, and conventional activity of data gathering or receiving information, see MPEP 2106.05(d)),
a store and compute sub-system that includes a plurality of foundation nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
and a query and response sub-system that includes a plurality of SQL (Standard Query Language) nodes (recites generic computer elements to use a computer as a tool to implement the judicial exception, see MPEP 2106.05(f)),
wherein a set of SQL nodes of the plurality of SQL nodes collectively generate the set of query operational instructions (recites creating computer instructions to perform generic computer operations at a high-level of generality amounting to idea of a solution that uses the computer as a tool to implement the abstract idea, see MPEP 2106.05(f)),
wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set (recites well-understood, routine, and conventional activity of data gathering or receiving information, see MPEP 2106.05(d)).
As seen from above, the respective claim elements taken individually do not amount to significantly more than the judicial exception. When taken as a whole (in combination), the claim also does not amount to significantly more than the abstract idea because the additional elements generic computer elements at a high-level of generality to perform/implement the abstract idea as well as various generic functions of retrieving and storing information as well as transmitting information.
With regard to claim 2, wherein the first SQL node is further operable to generate the initial query plan by: parsing the query plan into an abstract syntax tree (recites mental process steps of evaluation/parsing data into some other form such as forming a flowchart from a textual document);
when the abstract syntax tree is validated (recites mental process step of evaluation for correctness), annotating the abstract syntax tree to create an annotated abstract syntax tree; and creating the initial query plan based on the annotated abstract syntax tree (recites mental process steps of making notes/annotations on the data under review in order to formulate a plan or order of operations/instructions to perform).
With regard to claim 3, this claim recites wherein the set of SQL nodes is further operable to: allocate a first sub-set of query operational instructions of the set of query operational instructions to a first foundational node of the set of foundation nodes; and allocate a second sub-set of query operational instructions of the set of query operational instructions to a first foundational node of the set of foundation node (recites insignificant extrasolution activity of transmitting information over a network which amounts to well-understood, routine, and conventional activity of transmitting information, see MPEP 2106.05(d)).
With regard to claim 4, this claim recites wherein the first SQL node is further operable to: determine that the data set is currently stored in the load sub-system (recites mental process steps of evaluating and judging, e.g., checking inventory to see if an item is there);
and provide data retrieval instructions to the set of foundation nodes regard the at least a portion of the ingested data set (recites insignificant extrasolution activity of transmitting information over a network which amounts to well-understood, routine, and conventional activity of transmitting information, see MPEP 2106.05(d)),
wherein the data retrieval instructions instruct the set of foundation nodes to retrieve the at least a portion of the ingested data set from the load sub-system (recites field of use limitations describing the meaning/purpose of what the data is that is transmitted and its intended purpose, see MPEP 2106.05(h)).
With regard to claim 5, this claim recites: the first SQL node receives a first portion of the partial query response from a first foundation node of the set of foundation nodes; and a second SQL node of the set of SQL nodes receives a second portion of the partial query response from a second foundation node of the set of foundation nodes (recites insignificant extrasolution activity of receiving information over a network which amounts to well-understood, routine, and conventional activity of receiving information, see MPEP 2106.05(d)).
With regard to claim 6, this claim recites wherein the one or more output query operational instructions includes a plurality of output query operational instructions (recites field of use limitations describing the amount of instructions that are intended to be generated and adds no meaningful limitation beyond that of the abstract idea, see MPEP 2106.05(h));
wherein the first SQL node executes a first set of output query operational instructions of the plurality of output query operational instructions to produce a first partial output query response; and wherein the second SQL node executes a second set of output query operational instructions of the plurality of output query operational instructions to produce a second partial output query response (recites mental process steps of analytics/analyzing as well as combinational/logical or even mathematical operations that aggregate or combine various input datasets together to form an answer/output response).
With regard to claim 7, this claim recites in accordance with a final set of query operational instructions of the plurality of output query operational instructions, the first SQL combines the first and second partial output query response to produce at least a portion of the output query response (recites mental process steps of aggregating results together).
With regard to claim 8, this claim recites in accordance with a first final set of query operational instructions of the plurality of output query operational instructions, the first SQL combines the first and second partial output query response to produce a combined partial output query response (recites mental process steps of aggregating results together);
and the first SQL node executes a second final set of query operational instructions of the plurality of output query operational instructions to produce at least a portion of the output query response (recites mental process steps of analytics/analyzing as well as combinational/logical or even mathematical operations that aggregate or combine various input datasets together to form an answer/output response).
With regard to claim 9, this claim recites in accordance with a final set of query operational instructions of the one or more output query operational instructions, the first SQL combines the first and second portions of the partial query response to produce at least a portion of the output query response (recites mental process steps of analytics/analyzing as well as combinational/logical or even mathematical operations that aggregate or combine various input datasets together to form an answer/output response).
With regard to claim 10, this claim recites in accordance with a first final set of query operational instructions of the one or more output query operational instructions, the first SQL combines the first and second portions of the partial query response to produce a combined partial output query response (recites mental process steps of aggregating results together);
and the first SQL node executes a second final set of query operational instructions of the one or more output query operational instructions to produce at least a portion of the output query response (recites mental process steps of analytics/analyzing as well as combinational/logical or even mathematical operations that aggregate or combine various input datasets together to form an answer/output response).
With regard to claims 11-20, these claims are substantially similar to claims 1-10 and are rejected for similar reasons as discussed above.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
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 37 CFR 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 1, 3-11, and 13-20 are rejected under 35 U.S.C. 103 as being unpatentable over Lang et al [US 2017/0083588 A1] in view of Oberbrekling et al [US 2018/0074786 A1], and McKenna [US 2015/0154256 A1].
With regard to claim 1, Lang teaches a database system comprises: a load sub-system that includes a plurality of loader nodes, wherein a set of loader nodes of the plurality of loader nodes collectively ingests,
“For example, the query partitioner 310 may partition the query 104 based upon the number, kinds, and sequence of operators comprising the query 104; e.g., a query 104 specified in SQL may be partitioned into a first query portion 206 comprising a “SELECT NAME, DATE FROM RECORDS” operation that projects selected records from a data set;”, para 45; Examiner Note (EN): projecting from a dataset is similar to ingesting data since both relate to the receiving of data from a dataset);
a store and compute sub-system that includes a plurality of foundation nodes, wherein a set of foundation nodes of the plurality of foundation nodes collectively execute a set of query operational instructions on the at least a portion of the ingested data set to produce a partial query response (see paragraphs [0045], [0047], and [0061]; the system can have multiple query engines that obtain portions of the data set and can execute respective query instructions to form local query response;
“For instance, the data set 102 may be distributed over the node set 106, and respective nodes 106 may apply a query operator to the subset of the data set 102 that is stored by and/or accessible to the node 106. In this model, the nodes 108 selected from the node set 106 may be arranged as a processing chain or pipeline; e.g., a node 108 may receive a first intermediate result 214 produced by a previous selected node 108 by performing a previous query portion 206 of the query 104, may execute the query instruction set 212 over the first intermediate result 214 to produce a second intermediate query result 214, and may transmit the second intermediate query result 214 to a next selected node 322 of the node set 108.”, para 61);
and a query and response sub-system that includes a plurality of SQL (Standard Query Language) nodes, wherein a set of SQL nodes of the plurality of SQL nodes collectively generate the set of query operational instructions, and wherein the set of SQL nodes collectively generate an output query response based on the partial query response and one or more output query operational instructions (see [0045], [0047], and [0061], [0036]; the system can have a processing chain/pipeline with earlier stages/nodes sending results to a second set of query engines/nodes that perform additional operations in accordance with an instruction set to produce an intermediate query response;
“For instance, the data set 102 may be distributed over the node set 106, and respective nodes 106 may apply a query operator to the subset of the data set 102 that is stored by and/or accessible to the node 106. In this model, the nodes 108 selected from the node set 106 may be arranged as a processing chain or pipeline; e.g., a node 108 may receive a first intermediate result 214 produced by a previous selected node 108 by performing a previous query portion 206 of the query 104, may execute the query instruction set 212 over the first intermediate result 214 to produce a second intermediate query result 214, and may transmit the second intermediate query result 214 to a next selected node 322 of the node set 108.”, para 61;
“The selected nodes 108 are then instructed to invoke the query instruction sets 210, which causes the set of selected nodes 108 to execute the query instruction sets 210 that, together, cause the selected nodes 108 to perform the entire query 104 in a distributed manner”, para 36);
Lang does not appear to explicitly teach:
transforms, and temporarily stores a data set to produce an ingested data set;
wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set;
generate an initial query plan based on the query request;
and wherein the set of SQL nodes is operable to: optimize the initial query plan based on resource capabilities of the set of foundation nodes to produce an optimized query plan, wherein the optimized query plan includes the set of query operational instructions and the one or more output query operational instructions.
Oberbrekling teaches transforms, and temporarily stores a data set to produce an ingested data set (see paragraphs [0039], [0037], [0053], [0055], [0063], and [0068]; the system can have an ingest subsystem that allows for the short term storage of data as well as have long term storage for the data after it has been ingested;
“In certain embodiments of the present disclosure, prior to loading data into a data warehouse (or other data target) the data is processed through a pipeline (also referred to herein as a semantic pipeline) which includes various processing stages. In some embodiments, the pipeline can include an ingest stage, prepare stage, profile stage, transform stage, and publish stage.”, para 37;
“The distributed storage system 105 provides a temporary storage space for ingested data files, which can then also provide storage of intermediate processing files, and for temporary storage of results prior to publication”, para 39;
“The publishing sub-system can deliver the processed data to one or more data targets. A data target may correspond to a place where the processed data can be sent. The place may be, for example, a location in memory, a computing system, a database, or a system that provides a service.”, para 53;
“The prepare engine can identify a format associated with the raw data and can convert the raw data into a format (e.g., normalize the raw data) that can be processed by the data enrichment service 302.”, para 63).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the distributed query processing system of Lang by including a load/ingest sub-system can that uses both temporary and non-temporary storage as taught by Oberbrekling in order to allow the system to be able to receive new data and store that data in quicker volatile memory for temporary storage and any subsequent operations before sending the data to more permanent but slower storage for other downstream processes while ensuring no data loss if the node losses power since ingested data is not in any temporary or volatile storage.
Lang in view of Oberbrekling teach query execution but do not appear to explicitly teach:
wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set;
generate an initial query plan based on the query request;
and wherein the set of SQL nodes is operable to: optimize the initial query plan based on resource capabilities of the set of foundation nodes to produce an optimized query plan, wherein the optimized query plan includes the set of query operational instructions and the one or more output query operational instructions.
McKenna teach receives a query request for the data set; generate an initial query plan based on the query request; optimize the initial query plan,… wherein the optimized query plan includes the set of query operational instructions and the one or more output query operational instructions (see Figures 2 and 3; see paragraphs [0047]-[0049], [0074], [0002], and [0038]; the system has means to obtain a query and generate a query plan that can be optimized).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the distributed query processing system of Lang in view of Oberbrekling by including providing a query planner and query optimizer as taught by McKenna in order to determine the optimal or best possible sequence of instructions/operations to execute a query so that the system would be able to minimize processor processing time by having an optimal plan that performs/executes the query in an efficient manner.
Lang in view of Oberbrekling and McKenna teach wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set; generate an initial query plan based on the query request; and wherein the set of SQL nodes is operable to: optimize the initial query plan based on resource capabilities of the set of foundation nodes to produce an optimized query plan (see McKenna, see Figures 2 and 3; see paragraphs [0047]-[0049], [0074], [0002], and [0038]; see Lang, Figure 2 and paragraphs [0067], [0072]-[0076], [0045] and [0036]; system query instructions are generated and sent to the assigned/chosen node/query engine while taking into the resource capabilities of the various nodes/devices).
With regard to claim 3, Lang in view of Oberbrekling and McKenna teach wherein the set of SQL nodes is further operable to: allocate a first sub-set of query operational instructions of the set of query operational instructions to a first foundational node of the set of foundation nodes; and allocate a second sub-set of query operational instructions of the set of query operational instructions to a first foundational node of the set of foundation node (see Lang, paragraphs [0039], [0045], [0047], and [0036]; the system can have a processing chain/pipeline with earlier stages/nodes sending results to a second set of query engines/nodes that perform additional operations in accordance with an instruction set to produce respective results).
With regard to claim 4, Lang in view of Oberbrekling and McKenna wherein the first SQL node is further operable to: determine that the data set is currently stored in the load sub-system; and provide data retrieval instructions to the set of foundation nodes regard the at least a portion of the ingested data set, wherein the data retrieval instructions instruct the set of foundation nodes to retrieve the at least a portion of the ingested data set from the load sub-system (see Lang, paragraphs [0032]-[0033], [0045], and [0039]; the system can determine/discover data at a prescribed location based on the node receiving particular instructions on what data to retrieve).
With regard to claim 5, Lang in view of Oberbrekling and McKenna teach the first SQL node receives a first portion of the partial query response from a first foundation node of the set of foundation nodes; and a second SQL node of the set of SQL nodes receives a second portion of the partial query response from a second foundation node of the set of foundation nodes (see Lang, paragraphs [0061]; the partial results from a first set of nodes can be received by a second set of nodes for additional query processing).
With regard to claim 6, Lang in view of Oberbrekling and McKenna teach wherein the one or more output query operational instructions includes a plurality of output query operational instructions; wherein the first SQL node executes a first set of output query operational instructions of the plurality of output query operational instructions to produce a first partial output query response; and wherein the second SQL node executes a second set of output query operational instructions of the plurality of output query operational instructions to produce a second partial output query response (see Lang, paragraphs [0061] and [0027]; the next set of nodes have various operational instructions to be able to perform operations on the partial query response to start forming a portion of the final query response).
With regard to claim 7, Lang in view of Oberbrekling and McKenna teach in accordance with a final set of query operational instructions of the plurality of output query operational instructions, the first SQL combines the first and second partial output query response to produce at least a portion of the output query response (see Lang, paragraphs [0061], [0036]-[0037], and [0027]; the next set of nodes have various operational instructions to be able to perform operations on the partial query response to start forming a portion of the final query response with one of the nodes being able to combine/aggregate/order the respective responses together to form a final query result/response).
With regard to claim 8, Lang in view of Oberbrekling and McKenna in accordance with a first final set of query operational instructions of the plurality of output query operational instructions, the first SQL combines the first and second partial output query response to produce a combined partial output query response; and the first SQL node executes a second final set of query operational instructions of the plurality of output query operational instructions to produce at least a portion of the output query response (see Lang, paragraphs [0061], [0036]-[0037], [0027], [0071], and [0075]-[0076]; the next set of nodes have various operational instructions to be able to perform operations on the partial query response to start forming a portion of the final query response with one of the nodes being able to combine/aggregate/order the respective responses together to form a final query result/response).
With regard to claim 9, Lang in view of Oberbrekling and McKenna teach in accordance with a final set of query operational instructions of the one or more output query operational instructions, the first SQL combines the first and second portions of the partial query response to produce at least a portion of the output query response (see Lang, paragraphs [0061], [0036]-[0037], and [0027]; the next set of nodes have various operational instructions to be able to perform operations on the partial query response to start forming a portion of the final query response with one of the nodes being able to combine/aggregate/order the respective responses together to form a final query result/response).
With regard to claim 10, Lang in view of Oberbrekling and McKenna teach in accordance with a first final set of query operational instructions of the one or more output query operational instructions, the first SQL combines the first and second portions of the partial query response to produce a combined partial output query response; and the first SQL node executes a second final set of query operational instructions of the one or more output query operational instructions to produce at least a portion of the output query response (see Lang, paragraphs [0061], [0036]-[0037], [0027], [0071], and [0075]-[0076]; the next set of nodes have various operational instructions to be able to perform operations on the partial query response to start forming a portion of the final query response with one of the nodes being able to combine/aggregate/order the respective responses together to form a final query result/response).
Claim 11 is substantially similar to claim 1 and is rejected for similar reasons as discussed above. The main difference between claims 1 and 11 is that claim 11 recites a first set of computing devices and a second set of computing devices (see Lang, Fig 2 and paragraphs 61 and 72-75; various devices and device types can be used including the ability to have different sets of nodes for different types of operations of the query).
Claims 13-20 are substantially similar to claims 3-10 and are rejected for substantially similar reasons as discussed above.
Claims 2 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Lang et al [US 2017/0083588 A1] in view of Oberbrekling et al [US 2018/0074786 A1], and McKenna [US 2015/0154256 A1] in further view of Grabs et al [US 2007/0168324 A1].
With regard to claim 2, Lang in view of Oberbrekling and McKenna teach all the claim limitations of claim 1 as discussed above.
Lang in view of Oberbrekling and McKenna do not appear to explicitly teach:
wherein the first SQL node is further operable to generate the initial query plan by: parsing the query plan into an abstract syntax tree; when the abstract syntax tree is validated, annotating the abstract syntax tree to create an annotated abstract syntax tree; and creating the initial query plan based on the annotated abstract syntax tree.
Grabs teaches wherein the first SQL node is further operable to generate the initial query plan by: parsing the query plan into an abstract syntax tree; when the abstract syntax tree is validated, annotating the abstract syntax tree to create an annotated abstract syntax tree; and creating the initial query plan based on the annotated abstract syntax tree (see Figure 2 and paragraphs [0024] and [0021]; the system is able to parse the query into an abstract syntax tree and also perform validation such that the system is able to make another tree from the abstract syntax tree which is then used to generate the query plan).
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify the distributed query processing system of Lang in view of Oberbrekling and McKenna by including means to parse query into an abstract syntax tree as part of the process of generating a query plan as taught by Grabs in order to utilize widely-used techniques of converting queries into a form more aligned with the computer’s ability to understand the query and how to perform it.
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 and 11 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1 and 7 of copending Application No. 19/207,179 (reference application). Although the claims at issue are not identical, they are not patentably distinct from each other because the claims are substantially similar to each other as discussed below.
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
#
Limitation
‘179 Limitation
‘179 #
1
A database system comprises: a load sub-system that includes a plurality of loader nodes, wherein a set of loader nodes of the plurality of loader nodes collectively ingests, transforms, and temporarily stores a data set to produce an ingested data set;
A database system comprises: a load and store sub-system that includes: a data input module operable to ingest a data set; short term storage operable to temporarily store the data set to produce an ingested data set;
1
1
a store and compute sub-system that includes a plurality of foundation nodes, wherein a set of foundation nodes of the plurality of foundation nodes collectively execute a set of query operational instructions on the at least a portion of the ingested data set to produce a partial query response;
a query execution sub-system that includes: a plurality of local query engines operable to: collectively obtain the ingested data set; and collectively execute a set of local query operational instructions on at least a portion of the ingested data set to produce a local partial query response;
1
1
and a query and response sub-system that includes a plurality of SQL (Standard Query Language) nodes, wherein a set of SQL nodes of the plurality of SQL nodes collectively generate the set of query operational instructions,
and a query planning subsystem operable to: generate the set of local query operational instructions, the set of intermediate query operational instructions, and the set of global query operational instructions;
1
1
and wherein the set of SQL nodes collectively generate an output query response based on the partial query response and one or more output query operational instructions;
and a global query engine operable to execute a set of global query operational instructions on at least a portion of the intermediate partial query response to produce a query result;
1
1
wherein a first SQL node of the set of SQL nodes is operable to: receives a query request for the data set; generate an initial query plan based on the query request;
obtaining a query; generating an initial query plan;
7
1
and wherein the set of SQL nodes is operable to: optimize the initial query plan based on resource capabilities of the set of foundation nodes to produce an optimized query plan, wherein the optimized query plan includes the set of query operational instructions and the one or more output query operational instructions.
optimizing the initial query plan based at least in part on database system data to produce an optimized query plan; and parsing the optimized query plan to assign operational instructions of the optimized query plan as the set of local query operational instructions, the set of intermediate query operational instructions, and the set of global query operational instructions.
7
The main difference between the instant claims versus the reference application’s claims is that the reference application indicates that it “transforms” a data set as part of the process to produce an ingested data set. Although the instant claims do not mention it, the Examiner notes that formatting data from one memory type to another can involve some sort of transformation of data or formatting of data from one memory type to another. Another difference is what device is generating instructions; which amounts to being an obvious variation of design choice for where particular operations are occurring, at least as recited at the current high-level of generality.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Barsness et al [US 2017/0168748 A1] teaches at Figure 1 and paragraphs [0026] and [0029] that various compute nodes can be chained/pipelined together with results/output (partial response) from one stage being sent to another stage for further processing while considering processing resources for where various processing elements (engines) and respective operators should be allocated.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARC S SOMERS whose telephone number is (571)270-3567. The examiner can normally be reached M-F 11-8 EST.
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, Ann Lo can be reached at 5712729767. 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.
/MARC S SOMERS/Primary Examiner, Art Unit 2159 2/12/2026