IP Library › Granted Patent US 11,182,396
Granted Patent B2
US 11,182,396 · App. 16/025,554 · Granted Nov 23, 2021

System and method for a graph search engine

Inventors: Ryan A. Rossi (Mountain View, CA); Rong Zhou (Saratoga, CA)
Assignee: Palo Alto Research Center Incorporated
G06F16/24578G06F16/248G06F16/9535
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 11,182,396
App. No.
16/025,554
Granted
Nov 23, 2021
Kind
B2
Abstract

One embodiment provides a system for facilitating a graph search engine. During operation, the system receives, by a server from a client computing device, a search request which includes a user-inputted graph. The system performs a search based on a structure of the user-inputted graph for a plurality of relevant graphs. The system orders the plurality of relevant graphs from a most relevant ranking to a least relevant ranking. The system returns, to the client computing device, the ordered plurality of relevant graphs for display on a user interface of the client computing device, thereby enhancing the search for relevant graphs by allowing the graph search engine to take as an input the user-inputted graph and return as an output the relevant graphs.

Claims (84)

1. A computer-implemented method for facilitating a graph search engine, the method comprising:

receiving, by a server from a client computing device, a search request which includes a user-inputted graph;

performing, based on a structure, a type, a size, and a number of nodes of the user-inputted graph, a search for a plurality of relevant graphs;

ordering the plurality of relevant graphs from a most relevant ranking to a least relevant ranking;

returning, to the client computing device, the ordered plurality of relevant graphs; and

displaying, on a user interface of the client computing device, the ordered plurality of relevant graphs in a plurality of rows,

wherein each relevant graph is indicated, based on a sequentially ordered rank number, in a respective row which includes at least: a rank number for a respective relevant graph; a name of the respective relevant graph; a type of the respective relevant graph; a number of nodes in the respective relevant graph; and a plurality of additional features and/or properties of the respective relevant graph,

thereby enhancing the search for relevant graphs by allowing the graph search engine to take as an input the user-inputted graph and return as an output the relevant graphs.

2. The method of claim 1 , wherein performing the search is further based on one or more of:

structural properties of the user-inputted graph;

metadata associated with the user-inputted graph, wherein the metadata includes one or more of:

unstructured metadata, which includes one or more of a description of data associated with the user-inputted graph, a type of the user-inputted graph, a type of a node or an edge in the user-inputted graph, and any text-based metadata; and

semi-structured metadata; and

user-defined constraints.

3. The method of claim 1 , wherein performing the search is further based on one or more of:

multiple levels of granularity, including one or more of:

a macro or a global property of the user-inputted graph; and

a micro or a local property of the user-inputted graph; and

previously cached graphs which are obtained based on pre-computed properties.

4. The method of claim 1 , wherein ordering the plurality of relevant graphs is based on a ranking function.

5. The method of claim 1 , further comprising:

defining a simple language based on mathematical notations and symbols for properties and values of a graph, wherein the search request indicates specific filters using the simple language; and

prior to ordering the plurality of relevant graphs, filtering the plurality of relevant graphs based on the specific filters indicated in the search request.

6. The method of claim 1 , further comprising:

enhancing the performing of the search or the ordering of the plurality of relevant graphs based on one or more of:

a representation learning technique;

a normalization technique;

a non-linear scaling technique;

a weighting scheme; and

a low-rank approximation technique.

7. The method of claim 1 , further comprising:

applying an online learning technique by including implicit or explicit relevancy feedback for the user-inputted graph as training examples; and

updating a model associated with the user-inputted graph based on the relevancy feedback to improve the ordering of the plurality of relevant graphs over time.

8. The method of claim 1 , further comprising:

storing a predetermined number of the ordered plurality of relevant graphs based on a min-max heap;

determining whether a specific graph is in the stored predetermined number of the ordered plurality of relevant graphs in an O(1) or a constant time; and

inserting or deleting a graph from the stored predetermined number of the ordered plurality of relevant graphs in a time which is based on a logarithm of the predetermined number.

9. The method of claim 1 , further comprising:

in response to accessing, in an in-memory cache, a feature of a relevant graph or a result which includes an ordered plurality of relevant graphs:

updating a weight associated with the feature or result to prevent the feature or result from being deleted from the in-memory cache.

10. The method of claim 1 , wherein performing the search is further based on properties associated with the user-inputted graph, including one or more of: a type or a size of the user-inputted graph; a number of nodes; a number of edges; a density; a degree or a number of incident edges; an assortativity; a number of triangles; an average or a maximum clique; an average or a global clustering coefficient; a clique number; a maximum k-core; a temporal property; a spatial property; an attributed property; a labeled property; multiple types of properties; a heterogeneous property; and any property associated with a graph.

11. A computer system for facilitating a graph search engine, the computer system comprising:

a processor; and

a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

receiving, by a server from a client computing device, a search request which includes a user-inputted graph;

performing, based on a structure, a type, a size, and a number of nodes of the user-inputted graph, a search for a plurality of relevant graphs;

ordering the plurality of relevant graphs from a most relevant ranking to a least relevant ranking;

returning, to the client computing device, the ordered plurality of relevant graphs; and

displaying, on a user interface of the client computing device, the ordered plurality of relevant graphs in a plurality of rows,

wherein each respective graph is indicated, based on a sequentially ordered rank number, in a respective row which includes at least: a rank number for a respective relevant graph; a name of the respective relevant graph; a type of the respective relevant graph; a number of nodes in the respective relevant graph; and a plurality of additional features and/or properties of the respective relevant graph,

thereby enhancing the search for relevant graphs by allowing the graph search engine to take as an input the user-inputted graph and return as an output the relevant graphs.

12. The computer system of claim 11 , wherein performing the search is further based on one or more of:

structural properties of the user-inputted graph;

metadata associated with the user-inputted graph, wherein the metadata includes one or more of:

unstructured metadata, which includes one or more of a description of data associated with the user-inputted graph, a type of the user-inputted graph, a type of a node or an edge in the user-inputted graph, and any text-based metadata; and

semi-structured metadata; and

user-defined constraints.

13. The computer system of claim 11 , wherein performing the search is further based on one or more of:

multiple levels of granularity, including one or more of:

a macro or a global property of the user-inputted graph; and

a micro or a local property of the user-inputted graph; and

previously cached graphs which are obtained based on pre-computed properties.

14. The computer system of claim 11 , wherein ordering the plurality of relevant graphs is based on a ranking function.

15. The computer system of claim 11 , wherein the method further comprises:

defining a simple language based on mathematical notations and symbols for properties and values of a graph, wherein the search request indicates specific filters using the simple language; and

prior to ordering the plurality of relevant graphs, filtering the plurality of relevant graphs based on the specific filters indicated in the search request.

16. The computer system of claim 11 , wherein the method further comprises:

enhancing the performing of the search or the ordering of the plurality of relevant graphs based on one or more of:

a representation learning technique;

a normalization technique;

a non-linear scaling technique;

a weighting scheme; and

a low-rank approximation technique.

17. The computer system of claim 11 , wherein the method further comprises:

applying an online learning technique by including implicit or explicit relevancy feedback for the user-inputted graph as training examples; and

updating a model associated with the user-inputted graph based on the relevancy feedback to improve the ordering of the plurality of relevant graphs over time.

18. The computer system of claim 11 , wherein the method further comprises:

storing a predetermined number of the ordered plurality of relevant graphs based on a min-max heap;

determining whether a specific graph is in the stored predetermined number of the ordered plurality of relevant graphs in an O(1) or a constant time; and

inserting or deleting a graph from the stored predetermined number of the ordered plurality of relevant graphs in a time which is based on a logarithm of the predetermined number.

19. The computer system of claim 11 , wherein the method further comprises:

in response to accessing, in an in-memory cache, a feature of a relevant graph or a result which includes an ordered plurality of relevant graphs:

updating a weight associated with the feature or result to prevent the feature or result from being deleted from the in-memory cache.

20. The computer system of claim 11 , wherein performing the search is further based on properties associated with the user-inputted graph, including one or more of: a type or a size of the user-inputted graph; a number of nodes; a number of edges; a density; a degree or a number of incident edges; an assortativity; a number of triangles; an average or a maximum clique; an average or a global clustering coefficient; a clique number; a maximum k-core; a temporal property; a spatial property; an attributed property; a labeled property; multiple types of properties; a heterogeneous property; and any property associated with a graph.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073562/0677 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2018
From: ROSSI, RYAN A.; ZHOU, RONG
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 046254/0982 →
Continuity (1)
Related Publication 20200004888A1 · Jan 2, 2020
Cited By (1)
US 12,308,950