DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 have been submitted for examination and are pending further prosecution by the United States Patent & Trademark Office.
Allowable Subject Matter
With respect to independent claim 1, the prior art of record does not teach or suggest, either solely or in combination, the limitations "based at least in part on determining that the second section is unpredictable, storing an indication that a second particular section of the corpus of code that corresponds to the second section of the modified corpus of code has a priority for the further code analysis, wherein a first particular section of the corpus of code that corresponds to the first section of the modified corpus of code does not have a priority for the further code analysis; causing display of a recommendation to analyze the second section of the modified corpus of code based on the stored indication." when considered in combination with the other limitations of claim 1.
With respect to independent claim 9, the prior art of record does not teach or suggest, either solely or in combination, the limitations "based at least in part on determining that the second section is unpredictable, storing an indication that a second particular section of the corpus of code that corresponds to the second section of the modified corpus of code has a priority for the further code analysis, wherein a first particular section of the corpus of code that corresponds to the first section of the modified corpus of code does not have a priority for the further code analysis; causing display of a recommendation to analyze the second section of the modified corpus of code based on the stored indication." when considered in combination with the other limitations of claim 9.
With respect to independent claim 16, the prior art of record does not teach or suggest, either solely or in combination, the limitations "based at least in part on determining that the second section is unpredictable, storing an indication that a second particular section of the corpus of code that corresponds to the second section of the modified corpus of code has a priority for the further code analysis, wherein a first particular section of the corpus of code that corresponds to the first section of the modified corpus of code does not have a priority for the further code analysis; causing display of a recommendation to analyze the second section of the modified corpus of code based on the stored indication." when considered in combination with the other limitations of claim 16.
However, claims 1-20 are rejected under 35 USC § 101 as being directed to an abstract idea (see below).
Specification
The disclosure is objected to because of an incorrect drawing reference. It is suggested Applicants amend the disclosure as follows:
[0046] As shown in FIG. 2 [[1]], user 202 interacts with code processing tool 204, for example, using a graphical user interface or a command-line user interface. Code processing tool 204 retrieves code to be processed from code repository 206 and stores a copy of the code being processed 208. Code processing tool processes the code and provides output 210 marking sections of the code with priority. Output 210 is consumed by code analysis tool 212, which provides interfaces to user 218, which may be the same or a different user than user 202. A code navigation interface 214 shows selectable section identifiers that have been marked for priority review, and a code viewing interface 216 shows the textual content of selected sections and other sections contiguously before and after selected sections, as well as section metadata such as section numbers.
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. Claim 1 recites a method for determining sections of code that have priority for further code analysis over other sections based upon unpredictability scores associated with the sections. Given its broadest reasonable interpretation, claim 1 would fall under the category of mental processes as the claim features limitations performable as mental steps, with the assistance of pen & paper, but without additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea. An analysis of claim 1 according to the 2019 Revised Patent Subject Matter Eligibility test follows:
Step 1: Is the claim directed to a process, machine, manufacture or composition of matter?
Yes, claim 1 is directed to a method and, therefore, a process.
Step 2A Prong 1: Does the claim recite an Abstract Idea, Law of Nature, or Natural Phenomenon?
Yes, claim 1 recites an abstract idea as the following limitations are performable as mental processes with the assistance of pen & paper: storing a corpus of code comprising a plurality of lines of code extracted from one or more data structures of a code project; - a developer can transcribe various lines of source code from a code project file into a notebook; storing a plurality of text patterns that are predetermined to be irrelevant to a further code analysis when occurring in code projects; - in the same notebook, the developer can include text patterns occurring in code projects deemed irrelevant to further code analysis; within the corpus of code, detecting and removing occurrences of text patterns of the plurality of text patterns to generate a modified corpus of code that omits the occurrences of the text patterns of the plurality of text patterns; - the developer can remove occurrences of text patterns from the transcribed source code by manually striking out source code lines containing the patterns, thereby creating modified source code; for each section of a plurality of sections of code in the modified corpus of code, determining an information unpredictability score of the section, wherein the information unpredictability score is based on an unpredictability of text in the section; - for different sections of the modified source code, the developer can manually calculate an unpredictability score for a respective section based upon the degree of randomness of text in the section; wherein a first section of the plurality of sections of code has a first information unpredictability score and a second section of the plurality of sections of code has a second information unpredictability score that indicates the second section is more unpredictable than the first section; - based upon unpredictability scores manually calculated for different sections of the modified source code, the developer can determine that a second section is more unpredictable than a first section due to the second section containing text of a higher degree of randomness than the first section; determining, based on the first information unpredictability score and the second information unpredictability score, that the first section is predictable and the second section is unpredictable; - based upon the calculated unpredictability scores, the developer can determine that the first section of code is less likely to contain sensitive information than the second section of code; based at least in part on determining that the second section is unpredictable, storing an indication that a second particular section of the corpus of code that corresponds to the second section of the modified corpus of code has a priority for the further code analysis, wherein a first particular section of the corpus of code that corresponds to the first section of the modified corpus of code does not have a priority for the further code analysis; - in the notebook, the developer can assign the label "high priority" to the second section of code as having priority for further code analysis and assign the label "low priority" to the first section of code as not having priority for further code analysis; causing display of a recommendation to analyze the second section of the modified corpus of code based on the stored indication. - in a summary page of the notebook, the developer can recommend that the section labeled "high priority" be further analyzed.
Step 2A Prong 2: Does the Claim Recite Additional Elements That Integrate The Judicial Exception Into A Practical Application?
Claim 1 recites the method is computer-implemented. However, implementing the method on a computer as recited simply amounts to using a generic computer as a tool to perform the abstract idea and, therefore, does not integrate the abstract idea into a practical application.
Step 2B: Does the Claim Recite Additional Elements That Amount To Significantly More Than The Judicial Exception?
Claim 1 recites the method is computer-implemented. However, implementing the method on a computer as recited simply amounts to using a generic computer as a tool to perform the abstract idea and, therefore, is not significantly more than the abstract idea.
Claim 9 is rejected for the same reasons given for analogous claim 1. While claim 9 recites the further additional elements of A computer-program product comprising one or more non-transitory machine-readable storage media, including stored instructions configured to cause a computing system to perform the method of claim 1, as recited, said further additional elements simply amount to using a generic computer as a tool to perform the abstract idea and, therefore, do not integrate the abstract idea into a practical application or amount to significantly more than the abstract idea.
Claim 16 is rejected for the same reasons given for analogous claim 1. While claim 16 recites the further additional elements of A system comprising: one or more processors; one or more non-transitory computer-readable media storing instructions, which, when executed by the system, cause the system to perform the method of claim 1, as recited, said further additional elements simply amount to using a generic computer as a tool to perform the abstract idea and, therefore, do not integrate the abstract idea into a practical application or amount to significantly more than the abstract idea.
Claims 2, 10 and 17 are also directed to the abstract idea as the limitations merely elaborate upon limitations found abstract in independent claims 1, 9 and 16, respectively, without reciting additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea.
Claims 3 and 11 are also directed to the abstract idea as the limitations merely elaborate upon limitations found abstract in independent claims 1, 9 and 16, respectively, without reciting additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea.
Claims 4 and 12 are also directed to the abstract idea as the limitations merely elaborate upon limitations found abstract in independent claims 1, 9 and 16, respectively, without reciting additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea.
Claims 5, 13 and 18 are also directed to the abstract idea as the developer can determine that the code project uses the English language and select corresponding English language text patterns from the notebook. The developer can also include in the notebook text patterns in different natural languages as understood by the developer. Since the claims lack additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea, the claims are ineligible.
Claims 6, 14 and 19 are also directed to the abstract idea as the developer can manually remove frequently occurring sections from a candidate set of sections as not having a priority for further code analysis upon reviewing the sections of code. Since the claims lack additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea, the claims are ineligible.
Claims 7, 15 and 20 are also ineligible as the claims recite mathematical concepts without also reciting additional elements that integrate the abstract idea into a practical application or amounting to significantly more than the abstract idea.
Claim 8 is also directed to the abstract idea as the developer can manually calculate the unpredictability score as a password strength. Since the claim lacks additional elements that integrate the abstract idea into a practical application or amount to significantly more than the abstract idea, the claim is ineligible.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. US 11550569 B2 discloses systems and methods for discovering and remediating hidden secrets in code files including determining a probability of a hidden secret being included in an element of source code; US 12511375 B2 discloses systems, methods, and software for detecting anomalies in source code by identifying high entropy strings in the source code; US 9336381 B1 discloses techniques for identifying sensitive information included in documents such as source code files, object code files, or other types of files using an entropy-based analysis of information; US 20230070420 A1 discloses a method for facilitating identification of secrets in source code using machine learning; US 20200401702 A1 discloses a method and system to more accurately label true and false vulnerabilities in source code; US 11847244 B1 discloses a private information detector for data loss prevention which uses machine learning to identify accidental disclosure of private information such as application programming interface keys; WO 2021085983 A1 discloses a method of detecting vulnerabilities in source code due to information hard coded in the source code; the NPL document "What is Gitleaks and how to use it?," describes Gitleaks, an open source tool used to detect and prevent secrets checked-in to git repositories; and the NPL document "A Comparative Study of Software Secrets Reporting by Secret Detection Tools" evaluates various open source and proprietary secret detection tools.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to GEOFFREY R ST LEGER whose telephone number is (571)270-7720. The examiner can normally be reached M-F (IFP) ~9:00-5:00 pm.
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, Hyung S Sough can be reached at 571-272-6799. 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.
/GEOFFREY R ST LEGER/Primary Examiner, Art Unit 2192