IP Library › Granted Patent US 12,197,911
Granted Patent B2
US 12,197,911 · App. 17/653,594 · Granted Jan 14, 2025

Systems and methods for multi-signal pattern matching with graph propagation

Inventors: Fanny Silavong (London, GB); Sean Moran (London, GB); Georgios Papadopoulos (London, GB); Solomon Olaniyi Adebayo (Glasgow, GB); William Covell (Weston, CT); Rob Otter (Witham, GB)
Assignee: JPMORGAN CHASE BANK, N.A.
G06F8/73G06F16/906
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,197,911
App. No.
17/653,594
Granted
Jan 14, 2025
Kind
B2
Abstract

A method may include: retrieving a plurality of code snippets from code repositories; generating a syntax representation, a property representation for each of the code snippets; receiving a query comprising a query code snippet, natural language keywords, and/or a string pattern; performing string-based matching and parser/syntax tree matching on the query and the tree representations, syntax matching on the query and the syntax representations, and property matching on the query and the property representations, wherein each of the matchings results in a score; combining the scores of the string-based matching, the parser/syntax tree matching, the syntax matching, and/or the property matching; identifying a plurality of code snippets of interest based on the combined scores; classifying the code snippets of interest using a machine learning classifier; outputting a list of the code snippets of interest with their classifications; and training the machine learning classifier based on user feedback.

Claims (46)

1. A method for multi-signal pattern matching with graph propagation, comprising:

retrieving, by a multi-signal matching computer program executed by an electronic device, a plurality of code snippets from one or more code repositories;

generating, by the multi-signal matching computer program, a tree representation, a syntax representation, and a property representation for each of the plurality of code snippets;

receiving, by the multi-signal matching computer program, a query comprising a query code snippet, natural language keywords, and/or a string pattern;

performing, by the multi-signal matching computer program, string-based matching and parser/syntax tree matching on the query and the tree representations, syntax matching on the query and the syntax representations, and property matching on the query and the property representations, wherein each of the matchings results in a score;

combining, by the multi-signal matching computer program, the scores of at least two the string-based matching, the parser/syntax tree matching, the syntax matching, and the property matching;

identifying, by the multi-signal matching computer program, a plurality of code snippets of interest in the one or more code repositories based on the combined scores;

classifying, by the multi-signal matching computer program using a machine learning classifier, the code snippets of interest, wherein the machine learning classifier is trained using user annotations and/or a label dataset;

outputting, by the multi-signal matching computer program, a list of the code snippets of interest with classifications for each of the code snippets of interest;

receiving, by the multi-signal matching computer program, user feedback on the classifications; and

training, by the multi-signal matching computer program, the machine learning classifier based on the feedback.

2. The method of claim 1 , wherein the code snippets of interest comprise code snippets having a highest combined score.

3. The method of claim 1 , wherein the code snippets of interest comprise code snippets having a combined score above a threshold.

4. The method of claim 1 , further comprising:

identifying, by the multi-signal matching computer program, dependencies between the code snippets of interest; and

propagating, by the multi-signal matching computer program, the dependencies in a graph.

5. The method of claim 1 , further comprising:

linking, by the multi-signal matching computer program, one of the code snippets with a signal.

6. The method of claim 5 , wherein the signal indicates whether the code snippet has caused a prior incident.

7. A system, comprising:

a plurality of code repositories;

a user interface; and

an electronic device executing a multi-signal matching computer program that receives a plurality of code snippets from one or more of the plurality of code repositories, generates a tree representation, a syntax representation, and a property representation for each of the plurality of code snippets, receives a query comprising a query code snippet, natural language keywords, and/or a string pattern from the user interface, performs string-based matching and parser/syntax tree matching on the query and the tree representations, syntax matching on the query and the syntax representations, and property matching on the query and the property representations, wherein each of the matchings results in a score, combines the scores of at least two the string-based matching, the parser/syntax tree matching, the syntax matching, and the property matching, identifies a plurality of code snippets of interest in the one or more code repositories based on the combined scores, classifies the code snippets of interest using a machine learning classifier that is trained using user annotations and/or a label dataset, outputs a list of the code snippets of interest with classifications for each of the code snippets of interest, receives user feedback on the classifications from the user interface, and trains the machine learning classifier based on the feedback.

8. The system of claim 7 , wherein the code snippets of interest comprise code snippets having a highest combined score.

9. The system of claim 7 , wherein the code snippets of interest comprise code snippets having a combined score above a threshold.

10. The system of claim 7 , wherein the electronic device executing the multi-signal matching computer program further identifies dependencies between the code snippets of interest and propagates the dependencies in a graph.

11. The system of claim 7 , wherein the electronic device executing the multi-signal matching computer program further links one of the code snippets with a signal.

12. The system of claim 11 , wherein the signal indicates whether the code snippet has caused a prior incident.

13. An electronic device, comprising:

a memory storing a multi-signal matching computer program; and

a computer processor;

wherein, when executed by the computer processor, the multi-signal matching computer program causes the computer processor to:

receive a plurality of code snippets from one or more of a plurality of code repositories;

generate a tree representation, a syntax representation, and a property representation for each of the plurality of code snippets;

receive a query comprising a query code snippet, natural language keywords, and/or a string pattern from a user interface;

perform string-based matching and parser/syntax tree matching on the query and the tree representations, syntax matching on the query and the syntax representations, and property matching on the query and the property representations, wherein each of the matchings results in a score, and combine the scores of at least two the string-based matching, the parser/syntax tree matching, the syntax matching, and the property matching;

identify a plurality of code snippets of interest in the one or more code repositories based on the combined scores;

classify the code snippets of interest using a machine learning classifier that is trained using user annotations and/or a label dataset;

output a list of the code snippets of interest with classifications for each of the code snippets of interest:

receive user feedback on the classifications from the user interface; and

train the machine learning classifier based on the feedback.

14. The electronic device of claim 13 , wherein the code snippets of interest comprise code snippets having a highest combined score.

15. The electronic device of claim 13 , wherein the code snippets of interest comprise code snippets having a combined score above a threshold.

16. The electronic device of claim 13 , wherein the multi-signal matching computer program further causes the computer processor to identify dependencies between the code snippets of interest and to propagate the dependencies in a graph.

17. The electronic device of claim 13 , wherein the multi-signal matching computer program further causes the computer processor to execute the multi-signal matching computer program further links one of the code snippets with a signal.

18. The electronic device of claim 17 , wherein the signal indicates whether the code snippet has caused a prior incident.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: SILAVONG, FANNY; MORAN, SEAN; PAPADOPOULOS, GEORGIOS; ADEBAYO, SOLOMON OLANIYI; COVELL, WILLIAM; OTTER, ROB
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 068811/0567 →
Priority Claims (1)
GR 20220100047 · Jan 18, 2022 · national
Continuity (1)
Related Publication 20230229440A1 · Jul 20, 2023
References Cited (11)
US 7853344B2 · Khan · 2010 [cited by examiner]
US 11003444B2 · Zhou · 2021 [cited by examiner]
US 20100050151A1 · Balasubramanian · 2010 [cited by examiner]
US 20120226492A1 · Tsuboi · 2012 [cited by examiner]
US 20140173563A1 · Dias · 2014 [cited by examiner]
US 20150046492A1 · Balachandran · 2015 [cited by examiner]
US 20160063062A1 · Yahav · 2016 [cited by examiner]
US 20190324731A1 · Zhou · 2019 [cited by examiner]
US 20190392075A1 · Han · 2019 [cited by examiner]
US 20210209303A1 · Ben-Natan · 2021 [cited by examiner]
US 20220107799A1 · Wu · 2022 [cited by examiner]