DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1, 3-11, and 13-22 are presented for examination.
Response to Amendment
Applicant’s invocation of the exception under 35 USC § 102(b)(2)(C) disqualifying previously cited reference Ibrahim as prior art is acknowledged. Therefore, the previous rejections under 35 USC § 103 are withdrawn and new grounds of rejection are introduced herein.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 21-22 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 21-22 contain the trademark/trade name LLVM. Where a trademark or trade name is used in a claim as a limitation to identify or describe a particular material or product, the claim does not comply with the requirements of 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph. See Ex parte Simpson, 218 USPQ 1020 (Bd. App. 1982). The claim scope is uncertain since the trademark or trade name cannot be used properly to identify any particular material or product. A trademark or trade name is used to identify a source of goods, and not the goods themselves. Thus, a trademark or trade name does not identify or describe the goods associated with the trademark or trade name. In the present case, the trademark/trade name is used to identify/describe computer software for use in the development of cross-platform software applications, software components, and websites and, accordingly, the identification/description is indefinite.
Claim Rejections - 35 USC § 103
The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action.
Claims 1, 3-4, 7-8, 11-13, 16-17, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Devlin, BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding ("Devlin") in view of Burke et al. (US 20210194891) ("Burke") and further in view of Verdon-Akzam (WO 2021067963) (“Verdon”).
Regarding Claim 1, Devlin teaches:
A … method, comprising:
training a bidirectional encoder representations from transformers (BERT) model to generate a software representation; (Devlin teaches Figure 1 provided below, which shows steps for training a BERT. Devlin also teaches: “At the output, the token representations (reads on software representation) are fed into an output layer for token level tasks, such as sequence tagging or question answering, and the [CLS] representation is fed into an output layer for classification, such as entailment or sentiment analysis.” [Page 5] which teaches generation a software representation, in this case a sentiment analysis (representation of data by the software.))
PNG
media_image1.png
689
1230
media_image1.png
Greyscale
inputting an intermediate representation (IR) of a software package to the trained BERT model, (Devlin teaches: “our input representation is able to unambiguously represent both a single sentence and a pair of sentences (e.g., <Question, Answer>) in one token sequence. […] A “sequence” refers to the input token sequence to BERT, which may be a single sentence or two sentences packed together.” [Page 4] which teaches inputting an IR (vector input) that represents a package of information (reads on software package).) wherein the trained BERT model analyzes the IR of the software package … (Devlin sec. 3, subsection entitled “Input/Output Representation” discloses that the first token of every sequence is the classification token [CLS]; sec. 3.2, penultimate paragraph discloses that the [CLS] representation [part of the IR] is fed to an output layer for classification [analysis])
receiving a software representation corresponding to the software package as output from the trained BERT model, (Devlin teaches: “At the output, the token representations (reads on software representation) are fed into an output layer for token level tasks, such as sequence tagging or question answering, and the [CLS] representation is fed into an output layer for classification, such as entailment or sentiment analysis.” [Page 5] which teaches an output from the BERT is a software representation that is tagged. As taught in Page 4 and seen in the quotation above, it also corresponds to a software package.) …, wherein the software representation received as the output from the trained BERT model is in a form of embedding (Devlin teaches Figure 1, which shows the output of the BERT (which is the software representation) as a span of data which is a form of embedding (as it is data that is stored or embedded in a span).) ….
Devlin appears not to disclose explicitly the further limitations of the claim. However, Burke discloses [a] computer-implemented method, comprising: … (Burke Fig. 5 discloses that the method is executed on a computer comprising a processor and memory and that the computer executes coded instructions)
determin[ing] whether the software package includes any malicious malware functions; … (Burke Fig. 3 discloses determining whether a classification score of network-traffic samples [software package] satisfies a malware confirmation threshold; if so, a potential malware detection is reported and a malware scan is performed [i.e., the system determines whether the traffic contains malware])
wherein the software representation indicates whether the software package includes any of the malicious malware functions; (Burke Fig. 3 discloses determining whether a classification score [software representation] of network-traffic samples [software package] satisfies a malware confirmation threshold; if so, a potential malware detection is reported and a malware scan is performed [i.e., the system determines whether the traffic contains malware])
and in response to a determination that the software representation indicates that the software package includes at least one of the malicious malware functions, preventing devices from executing the software package. (Burke Fig. 3 discloses that, if the scan identifies malware, remediation actions are taken, and paragraph 76 discloses that those remediation actions may include quarantining files corresponding to a process, program, and/or an application that initiated potentially malicious network traffic [i.e., prevents devices from executing the software contained in the traffic])
Burke and the instant application both relate to malware detection and are analogous. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Devlin to prevent devices from executing malicious software packages, as disclosed by Burke, and an ordinary artisan could reasonably expect to have done so successfully. Doing so would protect the computer from malware, thereby enhancing its performance. See Burke, paragraph 76.
Devlin/Burke appears not to disclose explicitly the further limitations of the claim. However, Verdon discloses storing the software representation corresponding to the software package in qubit form on a storage device, wherein the storage device is a quantum computing storage device. (Verdon paragraph 107 discloses that the essential elements of a quantum computer include memory devices [quantum computing storage devices] for storing instructions [e.g., software representations of software packages] and digital and/or quantum data; paragraph 100 discloses that data are stored in quantum systems of which the smallest non-trivial system is a qubit)
Verdon and the instant application both relate to quantum computing and are analogous. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Devlin and Burke to store the software in qubit form on a quantum storage device, as disclosed by Verdon, and an ordinary artisan could reasonably expect to have done so successfully. Doing so would allow the system to take advantage of quantum phenomena such as superposition that can lead to faster and more robust computation. See Verdon, paragraph 3.
Claim 11 is a computer program product claim corresponding to method claim 1 and is rejected for the same reasons as given in the rejection of that claim. Similarly, claim 20 is a system claim corresponding to method claim 1 and is rejected for the same reasons as given in the rejection of that claim.
Regarding Claim 3, Devlin/Burke/Verdon teaches all the limitations of Claim 2, and further teaches:
The computer-implemented method of claim 2, wherein the embedding is selected from the group consisting of: a vector representation of the software package and a tensor representation of the software package. (Devlin teaches: “final hidden vector for the i th input token as Ti ∈ R H” [Page 4] which teaches that the output span consistent of a set of vectors Tn which formulate the embedding. Therefore, the embedding is “selected” and consists of a vector representation of the software package.)
Regarding Claim 4, Devlin/Burke/Verdon teaches all the limitations of Claim 1, and further teaches:
The computer-implemented method of claim 1,
wherein the BERT model is trained with a pre-training objective that includes a first model,
wherein training with the first model includes: (Devlin teaches all the steps below, in section 3.1 on page 4, which details training the BERT model with the effectiveness of training tested by pre-training objectives: “evaluating two pretraining objectives using exactly the same pretraining data, fine-tuning scheme, and hyperparameters” [Page 8] which is performed for the first BERT model.)
randomly selecting a first predetermined percentage of tokens of a training IR based on a source code, (First, Devlin teaches: “The training data generator chooses 15% of the token positions at random for prediction.” [Page 4] which teaches randomly selecting a predetermined percentage of tokens of the input training Intermediate representation (IR) based on the training data generator (reads on source code). See Figure 1 above for the Sentence Pairs Tok 1 – Tok N which are inputted into training the model. This is understood to be a set of data created for training by the “training data generator” which has the same format as the IR to the BERT (as they both serve as inputs).)
masking a second predetermined percentage of the randomly selected tokens, (Devlin teaches: “If the i-th token is chosen, we replace the i-th token with (1) the [MASK] token 80% of the time “[Page 4] which teaches choosing 80% (predetermined percentage) of the selected tokens and masking them with a mask tag.)
replacing a third predetermined percentage of the randomly selected tokens with random tokens, (Devlin teaches: “If the i-th token is chosen, we replace the i-th token with [..] (2) a random token 10% of the time” [Page 4] which directly follows the step above and replacing 10% (predetermined percentage) of the random selected tokens with random tokens.)
and not modifying a remainder of the randomly selected tokens. (Devlin finishes teaching: “If the i-th token is chosen, we replace the i-th token with [..] (3) the unchanged i-th token 10% of the time.”[Page 4] which teaches not modifying the remainder 10% of tokens.)
Claim 13 is a computer program product claim corresponding to method claim 4 and is rejected for the same reasons as given in the rejection of that claim.
Regarding Claim 7, Devlin/Burke/Verdon teaches all the limitations of Claim 1, and further teaches:
The computer-implemented method of claim 1, wherein the BERT model is trained with a pre-training objective that includes a first model (Devlin sec. 3.1 discloses that the pre-training of BERT may be for tasks [objectives] including masked LM and next-sentence prediction), wherein training with the first model includes:
selecting a value sentence of a first sequence of a training IR based on a source code, wherein the selected value sentence corresponds to an IR sentence of a second sequence of the training IR in a first predetermined percentage of cases of the first model, (Devlin teaches: “The first sentence receives the A embedding and the second receives the B embedding. 50% of the time B is the actual next sentence that follows A and 50% of the time it is a random sentence, which is done for the “next sentence prediction” task.” [Page 13] which teaches selecting a value sentence (embedding) for training (therefore based on a training IR) ran on the code of the machine learning model, where the sentence (when chosen to be B) is the second sequence (next sentence) in 50% (predetermined percentage) of cases.)
and selecting value sentences randomly in a second predetermined percentage of the cases of the first model. (Devlin teaches the quotation of page 13 provided above, which teaches that 50% of the time the value sentence B is randomly selected rather than a next sentence.)
Claim 16 is a computer program product claim corresponding to method claim 7 and is rejected for the same reasons as given in the rejection of that claim.
Regarding Claim 8, Devlin/Burke/Verdon teaches all the limitations of Claim 1, and further teaches:
The computer-implemented method of claim 1, wherein the BERT model is trained with a pre-training objective that includes a first model (Devlin sec. 3.1 discloses that the pre-training of BERT may be for tasks [objectives] including masked LM and next-sentence prediction), wherein training with the first model includes:
selecting a pair that includes a first sequence and a second sequence from a same basic block of a training IR in a first predetermined percentage of cases of the first model, (Devlin teaches: “The first sentence receives the A embedding and the second receives the B embedding. 50% of the time B is the actual next sentence that follows A and 50% of the time it is a random sentence, which is done for the “next sentence prediction” task.” [Page 13] which also reads on selecting a pair (A and B embedding pair for a first sentence – reads on first sequence and a second sentence – reads on second sequence.) based on a first block based on B following A in 50% of cases.)
and selecting at least a second pair of sequences from other basic blocks in a second predetermined percentage of the cases of the first model. (Devlin teaches the quotation of page 13 provided above which teaches selecting a new random block based on A and the random B in 50% of cases.)
Claim 17 is a computer program product claim corresponding to method claim 8 and is rejected for the same reasons as given in the rejection of that claim.
Claims 5-6 and 14-15 are rejected under 35 U.S.C. 103 as being unpatentable over Devlin in view of Burke and Verdon and further in view of Xia (US Publication US20210374603A1).
Regarding Claim 5, Devlin/Burke/Verdon teaches all the limitations of Claim 4, but does not distinctly teach:
The computer-implemented method of claim 4, wherein training with the first model includes: extracting symbolic identifiers from a first sequence of the training IR,
and creating the tokens from the extracted symbolic identifiers.
However, Xia teaches these limitations. Xia teaches: “For example, the intent 406 may include a combination of a domain and an action, denoted by y=(yd,ya). Then for a given intent y=(yd,ya) and an utterance x=(w1, w2, . . . , wn) with n tokens “ [0040] which teaches extracting intent token (symbolic identifiers) from a first sequence of data and Xia further teaches using this extracted intent token being used with training data (and therefore is from a training IR) from the extracted symbolic identifiers: “At subprocess 922, the CLANG model encodes the in-class training sample with the first intent token and the second intent token (reads on from the extracted symbolic identifiers) into a first encoded sequence (reads on token), and the out-of-class training sample with the first intent token and the second intent token into a second encoded sequence, respectively. “ [0076].
Before the effective filing date of the invention, it would have been obvious to one of ordinary skill in the art to modify the training IR of Devlin/Burke/Verdon with the method of training a model by extracting symbolic identifiers from a first sequence and creating tokens from the extracted symbolic identifiers for the improvement of introducing a contrastive regularization loss system to improve learning of the model and lowering the probability of generating negative examples. This improvement is taught by Xia: “Additionally, the training 210 of the CLANG model 130 further adopts a contrastive regularization loss to improve learning. For example, during the training 210, an in-class utterance (e.g., the utterance that specifically corresponds to a certain intent) from one intent may be contrasted with an out-of-class utterance (e.g., an utterance that does not match with the one intent) from another intent. [..] With the contrastive loss, the CLANG model 130 is regularized to focus on the given domain and intent and the probability of generating negative examples is reduced” [0030]. Xia teaches through this the improvement of creating symbolic identifiers so that the system can then leverage machine learning to improve the performance of the model.
Claim 14 is a computer program product claim corresponding to method claim 5 and is rejected for the same reasons as given in the rejection of that claim.
Regarding Claim 6, Devlin/Burke/Verdon teaches all the limitations of Claim 4, and further teaches:
The computer-implemented method of claim 4, wherein the BERT model is trained by iteratively considering a plurality of variations of the pre-training objective, (Devlin teaches a plurality of variations of the pre-training objective in section 5.1 on page 8, where there’s variation 1 (No NSP) and variation two (LTR & No NSP).)
Devlin/Burke/Verdon does not distinctly disclose: - wherein each iteration is based on different tokens of the training IR.
However, Xia teaches this improvement.
“At subprocess 922, the CLANG model encodes the in-class training sample with the first intent token and the second intent token into a first encoded sequence (reads on token), and the out-of-class training sample with the first intent token and the second intent token into a second encoded sequence, respectively. “ [0076] which teaches generating different tokens (encoded sequences) for different objectives (in-class vs out-of-class).
Before the effective filing date of the invention, it would have been obvious to one of ordinary skill in the art to modify the training of the model by using iterations of objectives as taught by Devlin/Burke/Verdon by having each iteration being based on different tokens as taught by Xia for the improvement of lowering the probability of generating negative examples. This improvement is taught by Xia: “With the contrastive loss, the CLANG model 130 is regularized to focus on the given domain and intent and the probability of generating negative examples is reduced” [0030]. Xia teaches the model generating different subsets of data for the contrastive loss method to decrease the odds of generating negative examples.
Claim 15 is a computer program product claim corresponding to method claim 6 and is rejected for the same reasons as given in the rejection of that claim.
Claims 9-10 and 18-19 are rejected under 35 U.S.C. 103 as being unpatentable over Devlin in view of Burke and Verdon and further in view of Satish (U.S. Patent US9412066B1).
Regarding Claim 9, Devlin/Burke/Verdon teaches all the limitations of Claim 1, and further teaches: The computer-implemented method of claim 1, comprising:
using the software representation received as output from the trained BERT model (Devlin teaches output a representation of data from the BERT model: “At the output, the token representations (reads on software representation) are fed into an output layer for token level tasks, such as sequence tagging or question answering, and the [CLS] representation is fed into an output layer for classification, such as entailment or sentiment analysis.” [Page 5] which teaches an output from the BERT is a software representation.)
Devlin/Burke does not distinctly disclose:
to determine whether any functions of an object of an executable of the IR of the software package have at least a predetermined percentage of similarity with a function determined to have a first characteristic;
and in response to a determination that at least one function of the object of the executable has at least the predetermined percentage of similarity with the function determined to have the first characteristic, determining that the executable also has the first characteristic.
However, Satish teaches:
to determine whether any functions of an object of an executable of the IR of the software package have at least a predetermined percentage of similarity with a function determined to have a first characteristic; (Satish teaches Figure 3, which teaches identifying a set of characteristics (including a first characteristic) of a software sample (the software sample reads on functions of an object of an executable of the intermediate representation of the software package as it is a sample of executable code that is executed by the software-analysis mechanism and represents a set of software.) in step 302 then teaches determining the level of similarity to another software sample in 306 on the basis of the characteristics (including at least a first characteristic).)
and in response to a determination that at least one function of the object of the executable has at least the predetermined percentage of similarity with the function determined to have the first characteristic, (Satish teaches “For example, at step 306 determination module 106 may, as part of server 206 in FIG. 2, determine that the static characteristics of software sample 126 and the static characteristics of software sample 124 exceed a threshold level of similarity. “ [Page 16, Column 13, last paragraph] which teaches determining that the software sample (which reads on the function of the object of the executable) exceeds (has at least) a threshold of similarity with the function with the first characteristic.)
determining that the executable also has the first characteristic. (Satish teaches “For example, determination module 106 may compare the number of executable sections included in software samples 126 and 124, the respective sizes of the executable sections included in software samples 126 and 124, the number of functions imported and/or called by software samples 126 and 124, and whether software samples 126 and 124 each have a multimedia library dependency” [Page 16, Column 14] which teaches the system determining that each set of software has a certain characteristic, in this case: “multimedia library dependency”.)
Before the effective filing date of the invention, it would have been obvious to one of ordinary skill in the art to modify the output step as taught by Devlin/Burke/Verdon by introducing the comparison step of comparing the software samples as taught by Satish for the improvement of being able to predict the runtime of the new executable based on the old executable. This improvement is taught by Satish: “fairly accurately predict an optimum run time for the soon-to-be executed software sample based at least in part on the amount of time needed to observe the interesting run-time behaviors exhibited by the previously executed software samples” [Page 12, Column 5, first paragraph] which teaches predicting an optimum run time for the executed sample based on a previous sample.
Claim 18 is a computer program product claim corresponding to method claim 9 and is rejected for the same reasons as given in the rejection of that claim.
Regarding Claim 10, Devlin as modified by Burke, Verdon, and Satish teaches all the limitations of Claim 9, and Satish further teaches: The computer-implemented method of claim 9, wherein the first characteristic is selected from the group consisting of: trustworthy and untrustworthy. (For example, identification module 104 may apply a run time of “00:20:45” to the “Low Risk” sample class since software sample 124 did not exhibit any run-time behaviors after running for “00:20:45.” Additionally or alternatively, identification module 104 may apply a run time of “05:30:00” to the “High Risk” sample class since the other software sample represents a “High Risk” of malware” [Page 16, Column 13, first paragraph] which teaches the characteristic of “Low Risk” (which reads on trustworthy) and “High Risk” which reads on untrustworthy.)
The motivation for this combination is the same as claim 9.
Claim 19 is a computer program product claim corresponding to method claim 10 and is rejected for the same reasons as given in the rejection of that claim.
Claims 21-22 are rejected under 35 U.S.C. 103 as being unpatentable over Devlin in view of Burke and Verdon and further in view of Tepper et al. (US 20200326934) (“Tepper”).
Regarding claim 21, the rejection of claim 1 is incorporated. Devlin further discloses a training IR used to train the BERT model, as shown above in the rejection of claim 1.
Neither Devlin, Burke, nor Verdon appears to disclose explicitly the further limitations of the claim. However, Tepper discloses that a[n] … IR … is generated by compiling a source code into machine code and lifting the machine code to generate the … IR, wherein the … IR is a low level virtual machine (LLVM) IR. (Tepper paragraph 16 discloses compiling source code into machine code used to generate an IR comprising an LLVM)
Tepper and the instant application both relate to compilation of code into intermediate representations and are analogous. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the combination of Devlin, Burke, and Verdon to compile source code into an intermediate representation comprising an LLVM, as disclosed by Tepper, and an ordinary artisan could reasonably expect to have done so successfully. Doing so would allow the code to be abstracted away from any particular programming language, thereby increasing its versatility. See Tepper, paragraph 16.
Claim 22 is a computer program product claim corresponding to method claim 21 and is rejected for the same reasons as given in the rejection of that claim.
Response to Arguments
Applicant’s arguments with respect to the art rejection of the claims have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Specifically, Applicant’s argument that the existing references do not teach the use of a quantum storage device to store the software representation in qubit form is moot by virtue of the use of newly cited reference Verdon to teach this element.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RYAN C VAUGHN whose telephone number is (571)272-4849. The examiner can normally be reached M-R 7:00a-5:00p ET.
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, Kamran Afshar can be reached at 571-272-7796. 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.
/RYAN C VAUGHN/Primary Examiner, Art Unit 2125