DETAILED ACTION
Claims 1-20 are pending in this office action.
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, 4, 7-13, 16, 19-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 12189626. Although the claims at issue are not identical, they are not patentably distinct from each other because they are substantially similar in scope.
Claim 1 recites the same limitation as claim 1 of the reference patent 12189626.
Claims 4, 16 recite the same limitation as claims 1, 2 of the reference patent 12189626.
Claims 7, 19 recite the same limitation as claim 3 of the reference patent 12189626.
Claim 8 recites the same limitation as claim 4 of the reference patent 12189626.
Claim 9 recites the same limitation as claim 5 of the reference patent 12189626.
Claim 10 recites the same limitation as claim 6 of the reference patent 12189626.
Claim 11 recites the same limitation as claim 7 of the reference patent 12189626.
Claim 12 recites the same limitation as claim 9 of the reference patent 12189626.
Claim 13 recites the same limitation as claim 11 of the reference patent 12189626.
Claim 20 recites the same limitation as claim 16 of the reference patent 12189626.
The claims of the instant application and the claims of the reference patents are compared in the table below:
The instant application
U.S. Patent No. 12189626
1. A method, comprising:
executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time;
generating, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time;
storing the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and
executing, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
4. The method of claim 1, further comprising: receiving a second instance of the query, wherein executing the improved version of the query is based at least in part on the second instance of the query.
7. The method of claim 1, further comprising: generating, in accordance with a hashing function, a fingerprint for the query; and storing the fingerprint for the query in a fingerprint database, wherein the fingerprint database maps the fingerprint for the query to the improved version of the query.
8. The method of claim 7, wherein at least one of the fingerprint or the improved version of the query is associated, within the fingerprint database, with a client from which the first instance of the query is received.
9. The method of claim 7, wherein the fingerprint is associated, within the fingerprint database, with the database from which the first information and the second information are obtained.
10. The method of claim 7, further comprising: scanning, in response to receiving a second instance of the query, the fingerprint database for the fingerprint for query, wherein executing the improved version of the query is based at least in part on the scanning.
11. The method of claim 1, further comprising: storing, in a response cache, a fingerprint for the query and the second information obtained in response to executing the improved version of the query, wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries.
12. The method of claim 1, further comprising: generating, in accordance with a hashing function, a fingerprint for the query in response to receiving the first instance of the query; and scanning a cache for the fingerprint for the query, wherein the cache comprises one or more fingerprints for one or more queries, one or more sets of information that are responsive to the one or more queries, one or more improved versions of the one or more queries, or any combination thereof, and wherein executing the query is based at least in part on an absence of the fingerprint in the cache.
13. An apparatus, comprising: one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; generate, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time; store the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and execute, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
16. The apparatus of claim 13, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: receive a second instance of the query, wherein executing the improved version of the query is based at least in part on the second instance of the query.
19. The apparatus of claim 13, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: generate, in accordance with a hashing function, a fingerprint for the query; and store the fingerprint for the query in a fingerprint database, wherein the fingerprint database maps the fingerprint for the query to the improved version of the query.
20. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; generate, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time; store the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and execute, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
1. A method, comprising:
executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time;
identifying, in response to the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version associated with a second execution time that is less than or equal to the threshold amount of time;
executing the improved version of the query after identifying the improved version of the query;
verifying the improved version of the query based at least in part on second information obtained by executing the improved version of the query and based at least in part on the first information, wherein the verifying the improved version of the query comprises identifying the second execution time of the improved version of the query based at least in part on executing the improved version of the query;
storing the improved version of the query based at least in part on the verifying the improved version of the query;
retrieving, in response to receiving a second instance of the query, the improved version of the query from storage, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is based at least in part on the second execution time being less than or equal to the threshold amount of time; and
executing, after the retrieving the improved version of the query from storage, the improved version of the query to obtain the second information from the database that is responsive to the query.
2. The method of claim 1, further comprising: storing the first information obtained by executing the query; and comparing the second information obtained by executing the improved version of the query with the first information, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is further based at least in part on the second information being the same as the first information.
3. The method of claim 1, further comprising: generating, in accordance with a hashing function, a fingerprint for the query; and storing the fingerprint for the query in a fingerprint database, wherein the fingerprint database maps the fingerprint for the query to the improved version of the query.
4. The method of claim 3, wherein at least one of the fingerprint or the improved version of the query is associated, within the fingerprint database, with a client from which the first instance of the query is received.
5. The method of claim 3, wherein the fingerprint is associated, within the fingerprint database, with the database from which the first information and the second information are obtained.
6. The method of claim 3, further comprising: scanning, in response to receiving the second instance of the query, the fingerprint database for the fingerprint for query, wherein retrieving the improved version of the query from the storage is based at least in part on the scanning.
7. The method of claim 1, further comprising: storing, in a response cache, a fingerprint for the query and the second information obtained in response to the improved version of the query, wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries.
8. The method of claim 7, further comprising: identifying a change in at least a portion of the second information in the database; and deleting, in response to identifying the change, the second information from the response cache.
9. The method of claim 1, further comprising: generating, in accordance with a hashing function, a fingerprint for the query in response to receiving the first instance of the query; and scanning a response cache for the fingerprint for the query, wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries, and wherein executing the query is based at least in part on an absence of the fingerprint in the response cache.
10. The method of claim 1, further comprising: generating, in accordance with a hashing function, a fingerprint for the query in response to receiving the first instance of the query; and scanning a fingerprint database for the fingerprint for the query, wherein the fingerprint database comprises one or more fingerprints for one or more queries and one or more improved versions of the one or more queries, wherein executing the query is based at least in part on an absence of the fingerprint in the fingerprint database.
11. An apparatus, comprising: one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; identify, in response to the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version associated with a second execution time that is less than or equal to the threshold amount of time; execute the improved version of the query after identifying the improved version of the query; verify the improved version of the query based at least in part on second information obtained by executing the improved version of the query and the first information, wherein the verifying the improved version of the query comprises identifying the second execution time of the improved version of the query based at least in part on executing the improved version of the query; store the improved version of the query based at least in part on the verifying the improved version of the query; retrieve, in response to receiving a second instance of the query, the improved version of the query from storage, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is based at least in part on the second execution time being less than or equal to the threshold amount of time; and execute, after the retrieving the improved version of the query from storage, the improved version of the query to obtain the second information from the database that is responsive to the query.
12. The apparatus of claim 11, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: store the first information obtained by executing the query; and compare the second information obtained by executing the improved version of the query with the first information, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is further based at least in part on the second information being the same as the first information.
13. The apparatus of claim 11, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: generate, in accordance with a hashing function, a fingerprint for the query; and store the fingerprint for the query in a fingerprint database, wherein the fingerprint database maps the fingerprint for the query to the improved version of the query.
14. The apparatus of claim 11, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: store, in a response cache, a fingerprint for the query and the second information obtained in response to the improved version of the query, wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries.
15. The apparatus of claim 11, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to: generate, in accordance with a hashing function, a fingerprint for the query in response to receiving the first instance of the query; and scan a response cache for the fingerprint for the query, wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries, and wherein executing the query is based at least in part on an absence of the fingerprint in the response cache.
16. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; identify, in response to the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version associated with a second execution time that is less than or equal to the threshold amount of time; execute the improved version of the query after identifying the improved version of the query; verify the improved version of the query based at least in part on second information obtained by executing the improved version of the query and the first information, wherein the verifying the improved version of the query comprises identifying the second execution time of the improved version of the query based at least in part on executing the improved version of the query; store the improved version of the query based at least in part on the verifying the improved version of the query; retrieve, in response to receiving a second instance of the query, the improved version of the query from storage, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is based at least in part on the second execution time being less than or equal to the threshold amount of time; and execute, after the retrieving the improved version of the query from storage, the improved version of the query to obtain the second information from the database that is responsive to the query.
17. The non-transitory computer-readable medium of claim 16, wherein the instructions are further executable by the one or more processors to: store the first information obtained by executing the query; and compare the second information obtained by executing the improved version of the query with the first information, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is further based at least in part on the second information being the same as the first information.
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.
Claim 1 recites a method, comprising: executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; generating, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time; storing the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and executing, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
Claim 13 recites an apparatus, comprising: one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; generate, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time; store the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and execute, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
Claim 20 recites a non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: execute a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time; generate, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version of the query associated with a second execution time that is less than the first execution time; store the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and execute, after storing the improved version of the query, the improved version of the query to obtain second information from the database that is responsive to the query.
a) In analyzing under step 2A Prong One, Does the claim recite an abstract idea law of nature or natural phenomenon? Yes.
Claims 1, 13, 20 similarly recite abstract idea of
(executing a query, to obtain, from a database, first information that is responsive to the query;
generating, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query;
executing the improved version of the query to obtain second information from the database that is responsive to the query) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of executing, generating and executing. Accordingly, the claims recite an abstract idea.
b) In analyzing under step 2A Prong Two, Does the claim recite additional elements that integrate the judicial exception into a practical application? NO. Claims do not recite any additional elements that integrate the judicial exception into a practical application because additional elements of one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to (in claim 13) and instructions executable by one or more processors (in claim 20) that are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component for obtaining that are well understood routine and conventional activities.
The additional limitations of (in response to receiving a first instance of the query; storing the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and after storing the improved version of the query) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
The additional limitation of (wherein a first execution time associated with execution of the query is greater than a threshold amount of time) that just indicates execution time of query exceeds threshold time.
Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea.
c) In analyzing under step 2B, does the claim recite additional elements that amount to significantly more than the judicial exception? NO
The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception because additional elements of one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to (in claim 13) and instructions executable by one or more processors (in claim 20) that are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component for obtaining that are well understood routine and conventional activities.
The additional limitations of (in response to receiving a first instance of the query; storing the improved version of the query based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query; and after storing the improved version of the query) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
The additional limitation of (wherein a first execution time associated with execution of the query is greater than a threshold amount of time) that just indicates execution time of query exceeds threshold time.
Accordingly, these additional elements do not amount to significantly more than the judicial exception. The claims are not patent eligible.
Dependent claims 2-12, 14-19 include all the limitations of claims 1, 13. Therefore, claims 2-12, 14-19 recite the same abstract idea practically being performed in the mind, and the analysis must therefore proceed to Step 2A Prong Two.
In particularly:
Claims 2, 14 similarly recite abstract limitation of
(executing, after generating the improved version of the query and as part of a verification operation, the improved version of the query to obtain the second information from the database; and comparing a first hash value associated with the first information that is responsive to the query with a second hash value associated with the second information that is responsive to the improved version of the query) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of executing and comparing. Accordingly, the claims recite an abstract idea.
The additional limitation of (wherein storing the improved version of the query is based at least in part on the first hash value being the same as the second hash value) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
Claims 3, 15 similarly recite abstract limitation of (executing, after generating the improved version of the query and as part of a verification operation, the improved version of the query to obtain the second information from the database; and comparing the first information that is responsive to the query with the second information that is responsive to the improved version of the query) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of executing and comparing. Accordingly, the claims recite an abstract idea.
The additional limitation of (wherein storing the improved version of the query is based at least in part on an amount of the first information being the same as the second information and also being greater than a threshold amount of information) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
Claim 4, 16 similarly recite limitation (receiving a second instance of the query) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
The limitation of (wherein executing the improved version of the query is based at least in part on the second instance of the query) that just indicates executing query based on instance of query.
Claims 5, 17 similarly recites limitation (wherein the first instance of the query and the second instance of the query are received via a user interface) that just indicates instances of the query received via interface.
Claims 6, 18 similarly recite abstract limitation of (generating, in response to the first execution time being greater than the threshold amount of time, a first version of the query, the first version associated with a third execution time that is greater than or equal to the threshold amount of time, wherein generating the improved version of the query is further based at least in part on the third execution time being greater than or equal to the threshold amount of time) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of generating. Accordingly, the claims recite an abstract idea.
Claims 7, 19 similarly recite abstract limitation of (generating, in accordance with a hashing function, a fingerprint for the query) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of generating. Accordingly, the claims recite an abstract idea.
The limitation of (storing the fingerprint for the query in a fingerprint database) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
The limitation of (wherein the fingerprint database maps the fingerprint for the query to the improved version of the query) just indicates database for mapping fingerprint to a version of query.
Claim 8 recites limitation (wherein at least one of the fingerprint or the improved version of the query is associated, within the fingerprint database, with a client from which the first instance of the query is received) that just indicates fingerprint associated with a client.
Claim 9 recites limitation (wherein the fingerprint is associated, within the fingerprint database, with the database from which the first information and the second information are obtained) that just indicates the fingerprint associated with information.
Claim 10 recites abstract limitation of (scanning the fingerprint database for the fingerprint for query, wherein executing the improved version of the query is based at least in part on the scanning) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of scanning. Accordingly, the claims recite an abstract idea.
The limitation (in response to receiving a second instance of the query) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
Claim 11 recites limitation (storing, in a response cache, a fingerprint for the query and the second information obtained in response to executing the improved version of the query) are insignificant extra solution activities which are well understood routine and conventional activities, see (Presenting offers and gathering statistics, OIP Techs and Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec) and See (MPEP 2106.05(g) or 2106.05(d) for Receiving or transmitting data over a network, e.g. see Intellectual Ventures v. Symantec; Storing and retrieving information in memory: Versata; Analyzing data: Genetic Techs; Determining: OIP Techs; Electronic recordkeeping: Alice Corp).
The limitation of (wherein the response cache comprises one or more fingerprints for one or more queries and one or more sets of information that are responsive to the one or more queries) that just indicates definition of cache.
Claim 12 recites abstract limitation of (generating, in accordance with a hashing function, a fingerprint for the query in response to receiving the first instance of the query; and scanning a cache for the fingerprint for the query) as drafted, is a process or system or medium that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. The human mind can perform step of generating and scanning. Accordingly, the claim recites an abstract idea.
The limitation of (wherein the cache comprises one or more fingerprints for one or more queries, one or more sets of information that are responsive to the one or more queries, one or more improved versions of the one or more queries, or any combination thereof, and wherein executing the query is based at least in part on an absence of the fingerprint in the cache) that just indicate definition of cache and the executing of query based on absence of fingerprint.
Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea.
Accordingly, these additional elements do not amount to significantly more than the judicial exception. The claims are not patent eligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 4-6, 13, 16-18 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta et al (or hereinafter “Gupta”) (US 20170300536) in view of Dettinger et al (or hereinafter “De”) (US 20060161528) and Srinivasan et al (or hereinafter “Sri”) (US 20210191980).
As to claim 1, Gupta teaches a method, comprising:
“executing a query, in response to receiving……, to obtain…… first information that is responsive to the query “as executing a query, in response to receiving the query to provide query result(s) as first information to the user as responsive to the query (paragraphs 79-81, 98-99, figs. 4A-5), “wherein a first execution time associated with execution of the query is greater than a threshold amount of time” as a first execution time associated with execution of the query is greater than target time e.g. 5 minutes (paragraph 70) as a threshold amount of time (figs. 4A-5, paragraphs 81, 88, 99-100),
“generating, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query” as repeatedly generate, when or based on the first execution time at step 420 (fig. 4B) or step 520 (fig. 5) is greater than a target time e.g. 5 minutes as a threshold amount of time (paragraph 70), a modified query of the query as a version of the query, which is further modified or is modified again at step 426 (fig. 4B) or step 542 (fig. 5) (figs. 4A-5, paragraphs 81-87, 98-100, 105).
The modified version of the query is represented as the improved version of the query.
In particularly:
[0016] Performing at least one of providing one or more subsequent alternate query suggestions upon determining the execution time for the modified query exceeding the target time, or providing the result of the modified query upon determining the execution time for the modified query within the target time.
[0081] If the execution time of the received query is more than the target time, the method proceeds to block 410 via YES.
[0082] At block 410, identify one or more alternate query suggestions. In an embodiment, the execution time of the alternate query suggestions is within the target time provided by the user.
[0083] At block 412, provide the one or more alternate query suggestions to the user device for modifying the query.
[0086] At block 416, modify the query based on the selection.
[0087] At block 418, determine, in real time, execution time for the modified query. [0088] At block 420, determine if the execution time of the modified query is greater than the target time. If the execution time of the modified query is less than the target time, the method proceeds to block 422 via NO. At block 422, the modified query is executed and the query results are provided to the user. In the alternative, if the execution time of the modified query is more than the target time, the method proceeds to block 424 via YES.
[0089] At block 422, provide one or more subsequent alternate query suggestions upon determining the execution time for the modified query exceeding the target time.
[0105] At block 540, user selects one of the suggested options. At block 542, the updated query is provided to the system for further alternative suggestions/execution;
“the improved version of the query associated with a second execution time that is less than the first execution time” as the modified query of the query as a version of the query that is modified again is represented as the modified version of the query (figs. 4A-5, paragraphs 80-87, 98-100, 105) associated with a second execution time of the modified version of the query (figs. 4-5, paragraphs 16, 88-89, 99,105). Since the first execution time of the modified query is greater than the target time; and the second execution time of the modified version of the query is less than the target time; therefore, the second execution time of the modified version of the query as the improved version of the query is less than the first execution time of the modified query (figs. 4A-5, paragraphs 80-87, 98-100, 105).
“……based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query” as when or based on the second execution time of the modified version of the query at step 426 (fig. 4) or step 542, 520 (fig. 5) is less than the first execution time of the modified query (paragraphs 12, 88, 99), providing the result of the modified version of the query (fig. 4. Paragraphs 12, 88) or step 542, 520 (fig. 5, paragraph 99).
Since the first execution time of the modified query is greater than the target time; and the second execution time of the modified version of the query is less than the target time; therefore, the second execution time of the modified version of the query as the improved version of the query is less than the first execution time of the modified query (figs. 4A-5, paragraphs 80-87, 98-100, 105).
The modified version of the query is represented as the improved version of the query;
“executing, after……, the improved version of the query to obtain second information ……that is responsive to the query” as after determining an execution time as the second execution time that is less than the target time, executing the modified query of the query as a version of the query that is modified again is represented as an modified version of the query at step 426 (fig. 4B) or step 542 (fig. 5, 99) to provide as obtain a result of the modified query to a user as responsive to the query (paragraphs 12, 16, 36, 99).
The modified query of the query as the version of the query that further is modified at step 426(fig. 4B) or step 542 (fig. 5) is represented as the modified version of the query. The modified version of the query is represented as the improved version of the query.
Gupta does not explicitly teach limitations
a first instance of the query;
from a database; from the database;
storing the improved version of the query; storing the improved version of the query.
De teaches limitations
“a first instance of the query” as a first instance of a query (paragraph 56);
from a database; from the database (executing a query, in response to receiving a first instance of a query, to obtain results that contain two or more rows as first information (figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (figs. 1, 2A-3, paragraphs 46, 56- 97);
“storing……; storing …… (as store queries which the user has executed against the database: paragraph 5)
De further teaches limitation
“executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query” as executing a query, in response to receiving a first instance of an query, to generate results that contain two or more rows as first information (figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (figs. 1, 2A-3, paragraphs 46, 56-57);
“executing…… to obtain second information from the database that is responsive to the query” as executing, after retrieving the stored query from storage, the stored query to retrieve rows from the database (fig. 1) that is responsive to the query (figs. 2A, 5, paragraphs 9-10, 69, 74-76).
De and Gupta teach a method of executing a query to generate a result. These references are in the same field with application’s field. Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply De’s teaching to Gupta’s system in order to allow a user to retrieve the stored query, modify the stored query, and/or re-execute the stored query for retrieving data from a database quickly.
Sri teaches limitation
storing the improved version of the query; storing the improved version of the query (as including as storing, in a query history graph, a modified version of base query as the improved version of the query: paragraph 94; or
A user may navigate this query history graph to return to previously-created query versions, the query history graph represents a set of query versions (paragraph 30) e.g., query history graph 900 depicts a node 902 that represents the base query Q1 and a node 904 that represents a modified version of the base query Q2 (paragraph 94).
The above information indicates the modified version of the base query is stored in the query history graph for navigating.
In particularly:
FIG. 9A depicts a series of query history graphs 900, 910, 920, and 930, which track the progress of a single query history graph that changes as a user creates new versions of a base query. Query history graph 900 depicts a node 902 that represents the base query (“Q1”) and a node 904 that represents a modified version of the base query (“Q2”) in which the value “Robin Hayes” is substituted for the variable “name” as indicated by edge 906 (paragraph 94)
At this point, visualization client 112 causes at least both of node 902 (representing the base version of the query) and a second node, such as node 904, representing the updated query version to be displayed. Visualization client 112 causes edge 906 to be displayed when node 904 is displayed (paragraph 95).
Sri and Gupta teach a method of executing a query to generate a result. These references are in the same field with application’s field. Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Sri’s teaching to Gupta’s system in order to allow a user to quickly perform successive refinements on a base query for retrieving data and further to allow user to further manipulate the selected query version and/or display the result set of the selected query version.
As to claims 4, 16, Gupta, De and Sri teach limitations
“wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“receive or receiving a second instance of the query” as repeatedly receiving an instance of a query as a second instance of the query (De: paragraph 56; Bo: paragraphs 8, 40), “wherein executing the improved version of the query is based at least in part on the second instance of the query” as executing the modified query of the query as the version of the query that further is modified is represented as the improved version of query based on (Gupta: figs. 4A-5, paragraphs 88-89, 99) the instance of a query (De: paragraph 56; Sri: paragraph 94).
As to claims 5, 17, Gupta, De and Sri teach limitations
“wherein the first instance of the query and the second instance of the query are received via a user interface” as repeatedly receiving a first instance of the query and second instance of query via (De: paragraph 56) a user interface (Gupta: fig. 6A, paragraph 70).
As to claims 6, 18, Gupta, De and Sri teach limitations
““wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“generate or generating, in response to the first execution time being greater than the threshold amount of time, a first version of the query, the first version associated with a third execution time that is greater than or equal to the threshold amount of time” as generating, in response to an execution time as the first execution time being greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99), a first modified query of the query as a first version of the query, the first modified query of the query as the first version of the query is associated with an execution time being as a third execution time greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99),
“wherein generating the improved version of the query is further based at least in part on the third execution time being greater than or equal to the threshold amount of time” as generating the modified query as a version of the query that is further modified is represented as the improved version of the query based on an execution time being as a third execution time greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99; De: paragraph 56).
Claim 13 has the same limitation as discussed in claim 1; thus claim 13 is rejected under the reason as discussed in claim 1. In addition, Gupta teaches apparatus, comprising: “one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:” as a non-transitory computer readable medium as a memory storing executable code and a processor connected to the medium to execute the code to cause a device to: (paragraphs 42, 121, figs. 3A, 7).
Claim 20 has the same limitation as discussed in claim 1; thus claim 20 is rejected under the reason as discussed in claim 1. In addition, Gupta teaches a non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: (paragraphs 42, 121, figs. 3A, 7).
Claims 7-11, 19 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of De and Sri and further in view of Mathew et al (or hereinafter “Ma’) (US 20210334272).
As to claims 7, 19, Gupta, De and Sri teach limitation
“wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“……the improved version of the query” as the modified query of the query as a version of the query that further is modified at step 426 (Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query.
Gupta, De and Sri do not explicitly teach limitation
generating, in accordance with a hashing function, a fingerprint for the query; and
storing the fingerprint for the query in a fingerprint database,
wherein the fingerprint database maps the fingerprint for the query to…….
Ma teaches limitations
“generating, in accordance with a hashing function, a fingerprint for the query” as generating, in accordance with a hashing function, a fingerprint for the query (Ma: paragraph 53);
“storing the fingerprint for the query in a fingerprint database” as storing the fingerprint for the query in a fingerprint database (Ma: paragraph 46, fig. 2);
“wherein the fingerprint database maps the fingerprint for the query to……. “ as the fingerprint database matches the fingerprint to a statement (paragraphs 20, 31, 33).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Ma’s teaching to Gupta’s system in order to allow a user to construct and tune the query statement so that the optimizer can select a query plan that meets certain query processing performance criteria and further improve query performance.
As to claim 8, Gupta, De, Sri and Ma teach limitations
“wherein at least one of the fingerprint or the improved version of the query is associated, within the fingerprint database, with a client from which the first instance of the query is received” as the fingerprint is associated, within the fingerprint database 170, with (Ma: fig.1, paragraphs 31-32) a client from which the first instance of the query is received (De: fig. 1, paragraphs 44, 56-57).
As to claim 9, Gupta, De, Sri and Ma teach limitations
“wherein the fingerprint is associated, within the fingerprint database, with the database from which the first information and the second information are obtained” as the fingerprint is associated, within the fingerprint database 170, with (Ma: fig.1, paragraphs 31-32) the database that stores obtained rows or records as first information and second information (De: figs. 5A-5B, paragraphs 5, 8, 77-78).
As to claim 10, Gupta, De, Sri and Ma teach limitations
“scanning, in response to receiving a second instance of the query, the fingerprint database for the fingerprint for query” as searching, in response to receiving the request of the query (De, fig. 5A, paragraphs 76-77), the fingerprint database for the fingerprint for query (Ma: paragraphs 31-32);
“ wherein executing the improved version of the query is based at least in part on the scanning” as executing, based on searching (De: fig. 5A, paragraphs 77-78; Ma: fig. 1, paragraphs 31- 32) the modified query of the query as a version of the query that further is modified at step 426 (Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query or the modified version of query as the improved version of the query (Sri: paragraph 94).
As to claims 11, Gupta, De and Sri teach limitations
“storing, in a response cache, …….and the second information obtained in response to executing the improved version of the query” as storing, in a table as a response cache, result and result as the second information retrieved in response to executing (De: paragraph 6) the modified query as version of the query that further is modified at step 426 (Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query or the version of the query that is optimized is represented as the improved version of the query (Sri: paragraph 94).
“wherein the response cache comprises ……for one or more queries and one or more sets of information that are responsive to the one or more queries” as table as the response cache includes results for a query and rows and columns as one or more sets of information that responsive to a query (De: paragraphs 7-8; Sri: paragraphs 55-56).
Gupta, De and Sri do not explicitly teach limitations
a fingerprint for the query; one or more fingerprints for one or more queries.
Ma teaches limitations
a fingerprint for the query; one or more fingerprints for one or more queries (as one or more fingerprints for one or more queries: paragraphs 30-31).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Ma’s teaching to Gupta’s system in order to allow a user to construct and tune the query statement so that the optimizer can select a query plan that meets certain query processing performance criteria and further improve query performance.
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of De and Sri and further in view of Zhang et al (US 20140101113)
As to claim 12, Gupta, De and Sri teach limitations
“……in response to receiving the first instance of the query” as executing a query, in response to receiving a first instance of a query, to obtain results that contain two or more rows as first information (De: figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (De: figs. 1, 2A-3, paragraphs 46, 56-57);
“wherein the cache comprises…… one or more sets of information that are responsive to the one or more queries, one or more improved versions of the one or more queries, or any combination thereof” as table as the response cache includes results for a query and rows and columns as one or more sets of information that responsive to a query (De: paragraphs 7-8) and modified version of the query (Sri: paragraph 94).
Gupta, De and Sri do not explicitly teach limitations
generating, in accordance with a hashing function, a fingerprint for the query; and scanning a cache for the fingerprint for the query, wherein executing the query is based at least in part on an absence of the fingerprint in the cache.
Zhang teaches limitations
“generating, in accordance with a hashing function, a fingerprint for the query” as generating, in accordance with hash function (paragraph 65), a fingerprint for a query (paragraphs 56-58);
“scanning a cache for the fingerprint for the query” as comparing fingerprints stored in cache with the fingerprint for query (paragraphs 95-96);
“wherein executing the query is based at least in part on an absence of the fingerprint in the cache” as executing a query is based on the fingerprint is not present in a client cache (paragraphs 95-96).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Zhang’s teaching to Gupta’s system in order to reduce time to complete executing a query and further to network resources used to communicate the queries and responses across the network.
Claims 1, 4-6, 13, 16-18 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta et al (or hereinafter “Gupta”) (US 20170300536) in view of Dettinger et al (or hereinafter “De”) (US 20060161528) and Sadasivam et al (or hereinafter “Sa”) (US 20240004879).
As to claim 1, Gupta teaches a method, comprising:
“executing a query, in response to receiving……, to obtain…… first information that is responsive to the query “as executing a query, in response to receiving the query to provide query result(s) as first information to the user as responsive to the query (paragraphs 79-81, 98-99, figs. 4A-5), “wherein a first execution time associated with execution of the query is greater than a threshold amount of time” as a first execution time associated with execution of the query is greater than target time e.g. 5 minutes (paragraph 70) as a threshold amount of time (figs. 4A-5, paragraphs 81, 88, 99-100),
“generating, based at least in part on the first execution time being greater than the threshold amount of time, an improved version of the query” as repeatedly generate, when or based on the first execution time at step 420 (fig. 4B) or step 520 (fig. 5) is greater than a target time e.g. 5 minutes as a threshold amount of time (paragraph 70), a modified query of the query as a version of the query, which is further modified or is modified again at step 426 (fig. 4B) or step 542 (fig. 5) (figs. 4A-5, paragraphs 81-87, 98-100, 105).
The modified version of the query is represented as the improved version of the query.
In particularly:
[0016] Performing at least one of providing one or more subsequent alternate query suggestions upon determining the execution time for the modified query exceeding the target time, or providing the result of the modified query upon determining the execution time for the modified query within the target time.
[0081] If the execution time of the received query is more than the target time, the method proceeds to block 410 via YES.
[0082] At block 410, identify one or more alternate query suggestions. In an embodiment, the execution time of the alternate query suggestions is within the target time provided by the user.
[0083] At block 412, provide the one or more alternate query suggestions to the user device for modifying the query.
[0086] At block 416, modify the query based on the selection.
[0087] At block 418, determine, in real time, execution time for the modified query. [0088] At block 420, determine if the execution time of the modified query is greater than the target time. If the execution time of the modified query is less than the target time, the method proceeds to block 422 via NO. At block 422, the modified query is executed and the query results are provided to the user. In the alternative, if the execution time of the modified query is more than the target time, the method proceeds to block 424 via YES.
[0089] At block 422, provide one or more subsequent alternate query suggestions upon determining the execution time for the modified query exceeding the target time.
[0105] At block 540, user selects one of the suggested options. At block 542, the updated query is provided to the system for further alternative suggestions/execution;
“the improved version of the query associated with a second execution time that is less than the first execution time” as the modified query of the query as a version of the query that is modified again is represented as the modified version of the query (figs. 4A-5, paragraphs 80-87, 98-100, 105) associated with a second execution time of the modified version of the query (figs. 4-5, paragraphs 16, 88-89, 99,105). Since the first execution time of the modified query is greater than the target time; and the second execution time of the modified version of the query is less than the target time; therefore, the second execution time of the modified version of the query as the improved version of the query is less than the first execution time of the modified query (figs. 4A-5, paragraphs 80-87, 98-100, 105).
“……based at least in part on the second execution time associated with the improved version being less than the first execution time associated with the query” as when or based on the second execution time of the modified version of the query at step 426 (fig. 4) or step 542, 520 (fig. 5) is less than the first execution time of the modified query (paragraphs 12, 88, 99), providing the result of the modified version of the query (fig. 4. Paragraphs 12, 88) or step 542, 520 (fig. 5, paragraph 99).
Since the first execution time of the modified query is greater than the target time; and the second execution time of the modified version of the query is less than the target time; therefore, the second execution time of the modified version of the query as the improved version of the query is less than the first execution time of the modified query (figs. 4A-5, paragraphs 80-87, 98-100, 105).
The modified version of the query is represented as the improved version of the query;
“executing, after……, the improved version of the query to obtain second information ……that is responsive to the query” as after determining an execution time as the second execution time that is less than the target time, executing the modified query of the query as a version of the query that is modified again is represented as an modified version of the query at step 426 (fig. 4B) or step 542 (fig. 5, 99) to provide as obtain a result of the modified query to a user as responsive to the query (paragraphs 12, 16, 36, 99).
The modified query of the query as the version of the query that further is modified at step 426(fig. 4B) or step 542 (fig. 5) is represented as the modified version of the query. The modified version of the query is represented as the improved version of the query.
Gupta does not explicitly teach limitations
a first instance of the query;
from a database; from the database;
storing the improved version of the query; storing the improved version of the query.
De teaches limitations
“a first instance of the query” as a first instance of a query (paragraph 56);
from a database; from the database (executing a query, in response to receiving a first instance of a query, to obtain results that contain two or more rows as first information (figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (figs. 1, 2A-3, paragraphs 46, 56- 97);
“storing……; storing …… (as store queries which the user has executed against the database: paragraph 5)
De further teaches limitation
“executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query” as executing a query, in response to receiving a first instance of an query, to generate results that contain two or more rows as first information (figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (figs. 1, 2A-3, paragraphs 46, 56-57);
“executing…… to obtain second information from the database that is responsive to the query” as executing, after retrieving the stored query from storage, the stored query to retrieve rows from the database (fig. 1) that is responsive to the query (figs. 2A, 5, paragraphs 9-10, 69, 74-76).
De and Gupta teach a method of executing a query to generate a result. These references are in the same field with application’s field. Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply De’s teaching to Gupta’s system in order to allow a user to retrieve the stored query, modify the stored query, and/or re-execute the stored query for retrieving data from a database quickly.
Sa teaches limitation
“the improved version of the query” as a modified version of the query (paragraph 16) or modified instance of the query as the improved version of the query (paragraph 92).
Sa further teaches limitation
“a second execution time that is less than the first execution time” as the execution time as a second execution time of the modified query instance 118 is less than or equal to 85% of the execution time as the first execution time of the unmodified query instance 116 (paragraph 79).
Sa and Gupta teach a method of executing a query to generate a result. These references are in the same field with application’s field. Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Sa’s teaching to Gupta’s system in order to improve execution performance of database queries and further to reduce execution time and/or resource usage of future query executions.
As to claims 4, 16, Gupta, De and Sa teach limitations
“wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“receive or receiving a second instance of the query” as repeatedly receiving an instance of a query as a second instance of the query (De: paragraph 56; figs. 4A-5), “wherein executing the improved version of the query is based at least in part on the second instance of the query” as executing the modified query of the query as the version of the query that further is modified is represented as the improved version of query based on (Gupta: figs. 4A-5, paragraphs 88-89, 99) the instance of a query (De: paragraph 56; Sa: paragraph 16).
As to claims 5, 17, Gupta, De and Sa teach limitations
“wherein the first instance of the query and the second instance of the query are received via a user interface” as repeatedly receiving a first instance of the query and second instance of query via (De: paragraph 56; Bo: paragraphs 8, 40) a user interface (Gupta: fig. 6A, paragraph 70).
As to claims 6, 18, Gupta, De and Sa teach limitations
““wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“generate or generating, in response to the first execution time being greater than the threshold amount of time, a first version of the query, the first version associated with a third execution time that is greater than or equal to the threshold amount of time” as generating, in response to an execution time as the first execution time being greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99), a first modified query of the query as a first version of the query, the first modified query of the query as the first version of the query is associated with an execution time being as a third execution time greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99),
“wherein generating the improved version of the query is further based at least in part on the third execution time being greater than or equal to the threshold amount of time” as generating the modified query as a version of the query that is further modified is represented as the improved version of the query based on an execution time being as a third execution time greater than the target time e.g., 5 minutes (Gupta: figs. 4A-5, paragraphs 70. 88-89, 98-99; De: paragraph 56).
Claim 13 has the same limitation as discussed in claim 1; thus claim 13 is rejected under the reason as discussed in claim 1. In addition, Gupta teaches apparatus, comprising: “one or more memories storing processor-executable code; and one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:” as a non-transitory computer readable medium as a memory storing executable code and a processor connected to the medium to execute the code to cause a device to: (paragraphs 42, 121, figs. 3A, 7).
Claim 20 has the same limitation as discussed in claim 1; thus claim 20 is rejected under the reason as discussed in claim 1. In addition, Gupta teaches a non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to: (paragraphs 42, 121, figs. 3A, 7).
Claims 7-11, 19 are rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of De and Sa and further in view of Mathew et al (or hereinafter “Ma’) (US 20210334272).
As to claims 7, 19, Gupta, De and Sa teach limitation
“wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:” as the processor executes the code to cause a device to: (Gupta: paragraphs 42, 121, figs. 3A, 7); and/or
“……the improved version of the query” as the modified query of the query as a version of the query that further is modified at step 426 (Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query.
Gupta, De and Sa do not explicitly teach limitation
generating, in accordance with a hashing function, a fingerprint for the query; and
storing the fingerprint for the query in a fingerprint database,
wherein the fingerprint database maps the fingerprint for the query to…….
Ma teaches limitations
“generating, in accordance with a hashing function, a fingerprint for the query” as generating, in accordance with a hashing function, a fingerprint for the query (Ma: paragraph 53);
“storing the fingerprint for the query in a fingerprint database” as storing the fingerprint for the query in a fingerprint database (Ma: paragraph 46, fig. 2);
“wherein the fingerprint database maps the fingerprint for the query to……. “ as the fingerprint database matches the fingerprint to a statement (paragraphs 20, 31, 33).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Ma’s teaching to Gupta’s system in order to allow a user to construct and tune the query statement so that the optimizer can select a query plan that meets certain query processing performance criteria and further improve query performance.
As to claim 8, Gupta, De, Sa and Ma teach limitations
“wherein at least one of the fingerprint or the improved version of the query is associated, within the fingerprint database, with a client from which the first instance of the query is received” as the fingerprint is associated, within the fingerprint database 170, with (Ma: fig.1, paragraphs 31-32) a client from which the first instance of the query is received (De: fig. 1, paragraphs 44, 56-57).
As to claim 9, Gupta, De, Sa and Ma teach limitations
“wherein the fingerprint is associated, within the fingerprint database, with the database from which the first information and the second information are obtained” as the fingerprint is associated, within the fingerprint database 170, with (Ma: fig.1, paragraphs 31-32) the database that stores obtained rows or records as first information and second information (De: figs. 5A-5B, paragraphs 5, 8, 77-78).
As to claim 10, Gupta, De, Sa and Ma teach limitations
“scanning, in response to receiving a second instance of the query, the fingerprint database for the fingerprint for query” as searching, in response to receiving the request of the query (De, fig. 5A, paragraphs 76-77), the fingerprint database for the fingerprint for query (Ma: paragraphs 31-32);
“ wherein executing the improved version of the query is based at least in part on the scanning” as executing, based on searching (De: fig. 5A, paragraphs 77-78; Ma: fig. 1, paragraphs 31- 32) the modified query of the query as a version of the query that further is modified at step 426(Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query or the modified version of query as the improved version of the query (Sa: paragraph 16).
As to claims 11, Gupta, De and Sa teach limitations
“storing, in a response cache, …….and the second information obtained in response to executing the improved version of the query” as storing, in a table as a response cache, result and result as the second information retrieved in response to executing (De: paragraph 6) the modified query as version of the query that further is modified at step 426 (Gupta: fig. 4B, paragraphs 88-89) or step 542 (Gupta: fig. 5, paragraphs 98-99) is represented as the improved version of the query or the version of the query that is optimized is represented as the improved version of the query (Sa: paragraph 16).
“wherein the response cache comprises ……for one or more queries and one or more sets of information that are responsive to the one or more queries” as table as the response cache includes results for a query and rows and columns as one or more sets of information that responsive to a query (De: paragraphs 7-8; Sa: paragraph 16).
Gupta, De and Sa do not explicitly teach limitations
a fingerprint for the query; one or more fingerprints for one or more queries.
Ma teaches limitations
a fingerprint for the query; one or more fingerprints for one or more queries (as one or more fingerprints for one or more queries: paragraphs 30-31).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Ma’s teaching to Gupta’s system in order to allow a user to construct and tune the query statement so that the optimizer can select a query plan that meets certain query processing performance criteria and further improve query performance.
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Gupta in view of De and Sa and further in view of Zhang et al (US 20140101113)
As to claim 12, Gupta, De and Sa teach limitations
“……in response to receiving the first instance of the query” as executing a query, in response to receiving a first instance of a query, to obtain results that contain two or more rows as first information (De: figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (De: figs. 1, 2A-3, paragraphs 46, 56-57);
“wherein the cache comprises…… one or more sets of information that are responsive to the one or more queries, one or more improved versions of the one or more queries, or any combination thereof” as table as the response cache includes results for a query and rows and columns as one or more sets of information that responsive to a query (De: paragraphs 7-8) and modified version of the query (Sa: paragraph 16).
Gupta, De and Sa do not explicitly teach limitations
generating, in accordance with a hashing function, a fingerprint for the query; and scanning a cache for the fingerprint for the query, wherein executing the query is based at least in part on an absence of the fingerprint in the cache.
Zhang teaches limitations
“generating, in accordance with a hashing function, a fingerprint for the query” as generating, in accordance with hash function (paragraph 65), a fingerprint for a query (paragraphs 56-58);
“scanning a cache for the fingerprint for the query” as comparing fingerprints stored in cache with the fingerprint for query (paragraphs 95-96);
“wherein executing the query is based at least in part on an absence of the fingerprint in the cache” as executing a query is based on the fingerprint is not present in a client cache (paragraphs 95-96).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply Zhang’s teaching to Gupta’s system in order to reduce time to complete executing a query and further to network resources used to communicate the queries and responses across the network.
Allowable Subject Matter
Claims 2-3, 14-15 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The prior arts of the record such as Gupta teaches executing a query, in response to receiving the query to provide as obtain query result(s) to the user (paragraphs 79-80, 98-99, figs. 4A-5), repeatedly modify the query to generate, based on an execution time as the first execution time is greater than target time as the threshold amount of time, an updated query of the query that further is modified at step 426 is represented as an improved version of the query (figs. 4B, 5, paragraphs 86-88, 100-105).
De teaches executing a query, in response to receiving a first instance of a query, to obtain results that contain two or more rows as first information (figs. 2A-3, paragraphs 27, 46, 56-57) from DBMS database that is responsive to the query (figs. 1, 2A-3, paragraphs 46, 56-57).
However, none of the prior arts of the record teaches wherein:
executing, after generating the improved version of the query and as part of a verification operation, the improved version of the query to obtain the second information from the database; and comparing a first hash value associated with the first information that is responsive to the query with a second hash value associated with the second information that is responsive to the improved version of the query, wherein storing the improved version of the query is based at least in part on the first hash value being the same as the second hash value (in claims 2, 14); and
executing, after generating the improved version of the query and as part of a verification operation, the improved version of the query to obtain the second information from the database; and comparing the first information that is responsive to the query with the second information that is responsive to the improved version of the query, wherein storing the improved version of the query is based at least in part on an amount of the first information being the same as the second information and also being greater than a threshold amount of information (in claims 3, 15).
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CAM-Y T TRUONG whose telephone number is (571)272-4042. The examiner can normally be reached (571) 272 4042.
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, SHERIEF BADAWI can be reached on (571) 272-9782. 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.
/CAM Y T TRUONG/ Primary Examiner, Art Unit 2169