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 .
Status of the Claims
Claims 1-20 are pending for examination.
Claims 1, 16 and 20 are independent Claims.
Claims 1-20 are rejected under 35 U.S.C. §103.
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.
Claim(s) 1-4, 6-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Rummler et al. (U.S. 2015/0046904 hereinafter Rummler) in further view of Badlani et al. (U.S. 2021/0240453 hereinafter Badlani).
As Claim 1, Rummler teaches a method, implemented at a computer system that includes a processor (Rummler (¶0016 line 2-3), one or more processor with instruction stored), comprising:
identifying a first source code location, the first source code location being within
source code that is displayed at a code editor user interface (UI) (Rummler (¶0051 line 1-9), user select class 1, the source code for class 1 is displayed on the editor frame);
from a set of mappings generated based on a language model attention matrix (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface), identifying a set of one or more source code locations as being related to the first source code location (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface), the set of one or more source code locations including a second source code location (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location); and
concurrent with presenting the first source code location in the code editor UI,
presenting a related source code navigation experience (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location), including:
presenting the second source code location in the code editor UI (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location); and
presenting a visual indication that the second source code location is related
to the first source code location (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code).
Rummler may not explicitly disclose:
the set of mappings having been generated by processing a multi-layer attention tensor of a self-attention language model to determine match strengths between tokens.
Badlani teaches:
the set of mappings having been generated by processing a multi-layer attention tensor of a self-attention language model to determine match strengths between tokens (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant. By using both sequence and structural position information in this manner, the transformer network is able to focus on both short-term and long-term sequence dependencies”),
Rummler disclose a system/method to compare source code to the subscription information and display the matched source codes. Badlani disclose an attention mechanism for comparing codes. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify comparison module of Rummler instead be an attention mechanism taught by Badlani, with a reasonable expectation of success. The motivation would be to allow system to “with a transformer network, there is no requirement that the input source code sequence be processed in order. Consequently, more parallelization is possible during training, and long-range dependencies are easier to learn.” (Badlani (¶0032 last 5 lines)).
As Claim 2, besides Claim 1, Rummler teaches wherein the first source code location corresponds to a cursor location within the source code that is displayed within the code editor UI (Rummler (¶0051 line 1-9), user select class 1, the source code for class 1 is displayed on the editor frame).
As Claim 3, besides Claim 1, Rummler teaches wherein the first source code location corresponds to a selection within the source code that is displayed within the code editor UI (Rummler (¶0051 line 1-9), user select class 1, the source code for class 1 is displayed on the editor frame).
As Claim 4, besides Claim 1, Rummler teaches wherein the first source code location and the second source code location are within a single source code file (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code).
As Claim 6, besides Claim 1, Rummler teaches wherein the set of one or more source code locations includes a plurality of source code locations (Rummler (¶0056 line 7-8), system determines whether one or more subscriptions re relevant to one or more entities), the plurality of source code locations including the second source code location (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code).
As Claim 7, besides Claim 6, Rummler teaches wherein presenting the related source code navigation experience includes:
presenting each of the plurality of source code locations in the code editor UI (Rummler (¶0051 line 1-9), user select class 1, the source code for class 1 is displayed on the editor frame); and
for each of the plurality of source code locations, presenting a corresponding visual
indication that the source code location is related to the first source code location (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code).
As Claim 8, besides Claim 6, Rummler teaches wherein the plurality of source code locations includes at least one first source code location identified based on the language model attention matrix (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes), and at least one second source code location identified based on static analysis (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), one or more entities is compared to subscription information. Relevant subscriptions are provided on the user interface).
As Claim 9, besides Claim 1, Rummler teaches wherein presenting the related source code navigation experience comprises presenting the second source code location within a first pane of the code editor UI that is separate from a second pane of the code editor UI within which the first source code location is displayed (Rummler (¶0052 line 1-3, fig. 2A), first source code location is also displayed the list of Class 1, Class 2, Class 3).
As Claim 10, besides Claim 1, Rummler teaches wherein presenting the related source code navigation experience comprises presenting the second source code location within a same pane of the code editor UI within which the first source code location is displayed (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), one or more entities is compared to subscription information. Relevant subscriptions are provided on the user interface).
As Claim 11, besides Claim 1, Rummler teaches wherein presenting the second source code location in the code editor UI comprises:
presenting a first source code line corresponding to the second source code location (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), one or more entities is compared to subscription information. Relevant subscriptions are provided on the user interface); and
presenting a plurality of source code lines surrounding the first source code line as
context for the first source code line (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code).
As Claim 12, besides Claim 11, Rummler teaches wherein presenting the plurality of source code lines surrounding the first source code line as context for the first source code line (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code location) comprises eliding one or more source code lines from a block of contiguous source code lines (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code location. Only matching code is highlighted, many other codes are omitted).
As Claim 13, besides Claim 1, Rummler teaches wherein presenting the visual indication that the second source code location is related to the first source code location comprises presenting an indication of why the second source code location is related to the first source code location (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 provides explanation for the code).
As Claim 14, besides claim 13, Rummler teaches wherein presenting the indication of why the second source code location is related to the first source code location is based on a static source code analysis (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), one or more entities is compared to subscription information. Relevant subscriptions are provided on the user interface).
As Claim 15, besides Claim 1, Rummler teaches further comprising generating the set of mappings based on the language model attention matrix (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface).
As Claim 16, Rummler teaches a method, implemented at a computer system that includes a processor, comprising:
accessing an attention matrix that is produced as part of generation of a language
model prediction (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface);
processing the attention matrix to generate a set of mappings (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface),
and present, in a user interface of the code editor application and concurrently with display of a source code location corresponding to a selected subject token of the set of mappings (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code location), one or more related source code locations corresponding to related tokens associated with the selected subject token (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes. One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface),
present a visual indication of relevance between the source code location and the one or more related source code locations (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 is displayed on a second source code location. Second source code location is highlighted in a box within the first source code location).
Rummler may not explicitly disclose:
including processing a multi-dimensional attention tensor produced by a self-attention architecture of the language model to determine match strengths between tokens based on interactions of corresponding observers across a plurality of lavers, and generating the set of mappings based on the match strengths, each mapping in the set of mappings associating a subject token within source code to a set of one or more related tokens within the source code, each related token being estimated to relate to the subject token; and
applying a distance function to one or more mappings in the set of mappings including, for a mapping of the one or more mappings, weighting each related token based on its distance from its subject token within the source code.
the one or more related source code locations being selected according to the one or more mappings to which the distance function has been applied, and
Smith teaches:
including processing a multi-dimensional attention tensor produced by a self-attention architecture of the language model to determine match strengths between tokens based on interactions of corresponding observers across a plurality of layers (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant. By using both sequence and structural position information in this manner, the transformer network is able to focus on both short-term and long-term sequence dependencies”), and generating the set of mappings based on the match strengths (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant”), each mapping in the set of mappings associating a subject token within source code to a set of one or more related tokens within the source code (Badlani (¶0034 last 3 lines), “Combination module 124 may then generate a hybrid embedding based on the graph data structure and the incorporated token embeddings”), each related token being estimated to relate to the subject token (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant”); and
applying a distance function to one or more mappings in the set of mappings including, for a mapping of the one or more mappings, weighting each related token based on its distance from its subject token within the source code (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant. By using both sequence and structural position information (distance information) in this manner, the transformer network is able to focus on both short-term and long-term sequence dependencies”).
Rummler disclose a system/method to compare source code to the subscription information and display the matched source codes. Badlani disclose an attention mechanism for comparing codes. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify comparison module of Rummler instead be an attention mechanism taught by Badlani, with a reasonable expectation of success. The motivation would be to allow system to “with a transformer network, there is no requirement that the input source code sequence be processed in order. Consequently, more parallelization is possible during training, and long-range dependencies are easier to learn.” (Badlani (¶0032 last 5 lines)).
As Claim 17, besides Claim 16, Rummler in view of Badlani teaches wherein processing a language model attention matrix to generate the set of mappings includes one or more of attention mean postprocessing or follow-up attention postprocessing (Rummler (¶0045 line 5-2, ¶0055 line 1-5, ¶0056 line 1-5 and 10-11, fig. 3 item 306, 308, 310), program language analyzer using a parser to analyze changes (postprocessing or follow-up attention postprocessing). One or more entities is compared to subscription information, Relevant subscriptions are provided on the user interface).
As Claim 18, besides Claim 16, Rummler in view of Badlani teaches further comprising using a static analysis of the source code to generate an annotation for a related token (Rummler (¶0053 line 6-7, fig. 2C item 230), notification 230 provides explanation for the code), the annotation indicating why the related token is related to its subject token (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant. By using both sequence and structural position information (distance information) in this manner, the transformer network is able to focus on both short-term and long-term sequence dependencies”).
As Claim 19, besides Claim 16, Rummler in view of Badlani teaches further comprising using a static analysis of the source code to add a new related token to a mapping of the set of mappings (Badlani (¶0042 line 13-18, ¶0044 line 1-3), “an attention mechanism of the transformer network may attend to identifying which tokens are most/least important and/or relevant. By using both sequence and structural position information (distance information) in this manner, the transformer network is able to focus on both short-term and long-term sequence dependencies”).
As Claim 20, the Claim is rejected for the same reasons as Claim 1.
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.
Claim(s) 5 is/are rejected under 35 U.S.C. 103 as being unpatentable over Rummler in view of Badlani in further view of Gao et al. (U.S. 2021/0133092 hereinafter Gao).
As Claim 5, besides Claim 1, Rummler in view of Badlani does not disclose:
wherein the first source code location and the second source code location are in different source code files
Gao teaches:
wherein the first source code location and the second source code location are in different source code files (Gao (¶0091, fig. 8), shaded lines indicate differences between element-value pairs and the baseline data result 820).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify User Interface of Rummler in view of Badlani instead be a User Interface taught by Gao, with a reasonable expectation of success. The motivation would be to identify “defective codes of the application that have caused the differences” (Gao (abstract)).
Response to Arguments
35 U.S.C. §101 Rejections
Applicants’ arguments are persuasive regarding recently amended Claims; therefore, 35 U.S.C. §101 rejections are respectfully withdrawn.
35 U.S.C. §102 and §103 Rejections:
As Claim 1, 16 and 20, Applicants argue that Rummler does not disclose an attention based processing (last paragraph of page 8) and “token level relationship” (first paragraph of page 9 in the remarks).
Applicants’ arguments are moot because new reference Badlani teaches the limitation(s). See current rejection(s) for details.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NHAT HUY T NGUYEN whose telephone number is (571)270-7333. The examiner can normally be reached M-F: 12:00-8:00 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Viker Lamardo can be reached at 571-270-5871. 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.
/NHAT HUY T NGUYEN/ Primary Examiner, Art Unit 2147