Discovering and exploiting relationships in software repositories
First Claim
1. A computing device comprising:
- one or more hardware processors; and
one or more hardware memory devices or hardware storage devices having instructions stored thereon that, when executed by the one or more hardware processors, cause the one or more hardware processors to;
identify paths in a graph, wherein one or more of the identified paths are defined by a set of regular expressions, nodes of the graph represent software development items and are separated by edges describing relationships between individual nodes, and the one or more of the identified paths have corresponding nodes and corresponding edges arranged consecutively that correlate with one or more corresponding sequences of ordered terms in the set of regular expressions;
compute probability scores for the one or more of the identified paths; and
store path data for the one or more of the identified paths in a searchable location accessible by one or more applications, wherein the path data includes the computed probability scores,wherein the software development items represented by the nodes of the graph include programming language constructs.
2 Assignments
0 Petitions
Accused Products
Abstract
Software development items can be represented in a graph data structure. Relationships between the represented items can be detected and reflected in the graph data structure. Queries can be run against the data structure to determine which software development items are related to each other. Implicit query can be implemented in a software development context. A graph browser can present panes showing related items.
In some embodiments, a set of regular expressions can be used to identify paths in a graph. Probability scores for the identified paths can be computed. Path data for the identified paths, including the probability scores, can be stored in a searchable location accessible by one or more applications. A query of the path data can be processed to return query results associated with at least one of the identified paths.
72 Citations
21 Claims
-
1. A computing device comprising:
-
one or more hardware processors; and one or more hardware memory devices or hardware storage devices having instructions stored thereon that, when executed by the one or more hardware processors, cause the one or more hardware processors to; identify paths in a graph, wherein one or more of the identified paths are defined by a set of regular expressions, nodes of the graph represent software development items and are separated by edges describing relationships between individual nodes, and the one or more of the identified paths have corresponding nodes and corresponding edges arranged consecutively that correlate with one or more corresponding sequences of ordered terms in the set of regular expressions; compute probability scores for the one or more of the identified paths; and store path data for the one or more of the identified paths in a searchable location accessible by one or more applications, wherein the path data includes the computed probability scores, wherein the software development items represented by the nodes of the graph include programming language constructs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a graph builder configured to represent software development items as nodes of a graph and to detect relationships between individual nodes of the graph; a graph analysis module configured to utilize a set of one or more user-defined regular expressions to compute path data for paths of the graph, wherein one or more of the paths are defined by an individual user-defined regular expression, and wherein individual paths comprise two or more of the nodes and at least one edge describing at least one of the relationships; a query module configured to; receive a query, and responsive to receiving the query, search the path data and return query results describing at least one of the paths; and at least one hardware processor configured to execute the graph builder, the graph analysis module, and the query module. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method performed by a computing device, the method comprising:
-
providing path data for a graph based on a set of regular expressions, wherein providing the path data comprises; identifying paths of the graph, wherein at least one of the identified paths is defined by an individual regular expression of the set, and wherein the identified paths include nodes representing software development items and edges describing relationships between individual nodes, computing probability scores for individual identified paths, identifying additional paths, wherein individual identified additional paths comprise two or more of the identified paths, and computing additional probability scores for the identified additional paths based on the computed probability scores; and processing a query of the path data to identify query results that satisfy the query, wherein processing the query comprises ranking multiple nodes to be included in the query results based at least in part on one or more of the computed probability scores or the computed additional probability scores. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification