# US 10,482,139 B2 · Structured user graph to support querying and predictions

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,139 B2
- Document ID: US10482139B2
- Status: Granted
- Kind: B2
- Application number: 14/071,867
- Filed: 2013-11-05
- Published: 2015-05-07
- Granted: 2019-11-19
- Earliest claimed: 2013-11-05
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Pranav Khaitan; Shobha Diwakar
- Web page: https://patentgrep.com/patent/US10482139B2

## CPC

- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/36: Creation of semantic tools, e.g. ontology or thesauri
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving user-specific content, the user-specific content being associated with a user of one or more computer-implemented services, processing the user-specific content using one or more parsers to identify one or more entities and one or more relationships between entities, a parser being specific to a schema, and the one or more entities and the one or more relationships between entities being identified based on the schema, providing one or more user-specific knowledge graphs, a user-specific knowledge graph being specific to the user and including nodes and edges between nodes to define relationships between entities based on the schema, and storing the one or more user-specific knowledge graphs.

## Claims

### Claim 1

A computer-implemented method for providing an answer for a query specific to a user, the method comprising:
receiving, by a system of one or more computers, a query specific to a specific user, wherein the query specific to the user includes one or more terms that represent an entity, an entity type, or an entity attribute;
identifying, by the system, a user-specific knowledge graph generated from user-specific content representing past real-world physical activities of the specific user and date ranges representing when the real-world physical activities occurred, captured in one or more computer-implemented services and occurring outside the computer-implemented services, the user-specific knowledge graph comprising nodes that represent entities in the user-specific content, wherein the nodes include at least one timing node that represents a date range, and edges connecting pairs of nodes that each represent a respective relationship, identified from the user-specific content between the entities represented by the respective pairs of nodes,
wherein an edge between: (i) a timing node and (ii) an activity node representing a real-world physical activity referenced in the user-specific content, indicates that the real-world physical activity occurred during the date range represented by the timing node;
querying, by the system, the user-specific knowledge graph to find nodes that represent entities that match the entity, entity type, or entity attribute of the one or more terms of the query;
determining, by the system, weights of edges connected to the found nodes in the graph, wherein the weight of each edge between a respective timing node and a respective activity node is based on how many times the real-world activity represented by the activity node is referenced in the user-specific content as occurring during the date range represented by the timing node; and
providing, by the system, an answer for the query specific to the user based on the determined weights of the edges connected to the found nodes in the graph.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
providing, by the system, information from the found nodes that match an entity, entity type, or entity attribute of one or more terms of the query for display to the user.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
increasing a value of the weight of an edge based on reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
decreasing a value of the weight of an edge based on lack of reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the query specific to the user includes a specific time, activity, or location.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the query specific to the user is a query to predict participation of the specific user in one or more activities.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the query specific to the user is a query to predict travel of the specific user to one or more locations.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein providing an answer for the query specific to the user further comprises:
for each edge between found nodes, determining whether the weight of the edge connected to the found nodes exceeds a threshold weight;
for each edge with a weight that exceeds the threshold weight, including, in the answer, entities represented by the other nodes connected to the found nodes by the edge; and
for each edge with a weight that does not exceed the threshold weight, excluding, from the answer, entities represented by the other nodes connected to the found nodes by the edge.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein entities in the user-specific content are people, places, or things in addition to timings.

### Claim 10

A system comprising:
one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
receiving a query specific to a specific user, wherein the query specific to the user includes one or more terms that represent an entity, an entity type, or an entity attribute;
identifying a user-specific knowledge graph generated from user-specific content representing past real-world physical activities of the specific user and date ranges representing when the real-world physical activities occurred, captured in one or more computer-implemented services and occurring outside the computer-implemented services, the user-specific knowledge graph comprising nodes that represent entities in the user-specific content, wherein the nodes include at least one timing node that represents a date range, and edges connecting pairs of nodes that each represent a respective relationship, identified from the user-specific content between the entities represented by the respective pairs of nodes,
wherein an edge between: (i) a timing node and (ii) an activity node representing a real-world activity referenced in the user-specific content, indicates that the real-world physical activity occurred during the date range represented by the timing node;
querying the user-specific knowledge graph to find nodes that represent entities that match the entity, entity type, or entity attribute of the one or more terms of the query;
determining weights of edges connected to the found nodes in the graph, wherein the weight of each edge between a respective timing node and a respective activity node is based on how many times the real-world activity represented by the activity node is referenced in the user-specific content as occurring during the date range represented by the timing node; and
providing an answer for the query specific to the user based on the determined weights of the edges between the found nodes in the graph.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise:
providing information from the found nodes that match an entity, entity type, or entity attribute of one or more terms of the query for display to the user.

### Claim 12 (depends on 10)

The system of claim 10, wherein the operations further comprise:
increasing a value of the weight of an edge based on reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 13 (depends on 10)

The system of claim 10, wherein the operations further comprise:
decreasing a value of the weight of an edge based on lack of reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 14 (depends on 10)

The system of claim 10, wherein the query specific to the user is a query to predict participation of the specific user in one or more activities.

### Claim 15 (depends on 10)

The system of claim 10, wherein the query specific to the user is a query to predict travel of the specific user to one or more locations.

### Claim 16 (depends on 10)

The system of claim 10, wherein providing an answer for the query specific to the user further comprises:
for each edge between found nodes, determining whether the weight of the edge connected to the found nodes exceeds a threshold weight;
for each edge with a weight that exceed the threshold weight, including, in the answer, entities represented by the other nodes connected to the found nodes by the edge; and
for each edge with a weight that does not exceed the threshold weight, excluding, from the answer, entities represented by the other nodes connected to the found nodes by the edge.

### Claim 17 (depends on 10)

The system of claim 10, wherein entities in the user-specific content are people, places, or things, in addition to timings.

### Claim 18

A non-transitory computer readable medium storing instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:
receiving a query specific to a specific user, wherein the query specific to the user includes one or more terms that represent an entity, an entity type, or an entity attribute;
identifying a user-specific knowledge graph generated from user-specific content representing past real-world physical activities of the specific user and date ranges representing when the real-world physical activities occurred, captured in one or more computer-implemented services and occurring outside the computer-implemented services, the user-specific knowledge graph comprising nodes that represent entities in the user-specific content, wherein the nodes include at least one timing node that represents a date range, and edges connecting pairs of nodes that each represent a respective relationship, identified from the user-specific content, between the entities represented by the respective pairs of nodes,
wherein an edge between: (i) a timing node and (ii) an activity node representing a real-world physical activity referenced in the user-specific content, indicates that the real-world physical activity occurred during the date range represented by the timing node;
querying the user-specific knowledge graph to find nodes that represent entities that match the entity, entity type, or entity attribute of the one or more terms of the query
determining weights of edges connected to the found nodes in the graph, wherein the weight of each edge between a respective timing node and a respective activity node is based on how many times the real-world activity represented by the activity node is referenced in the user-specific content as occurring during the date range represented by the timing node; and
providing an answer for the query specific to the user based on the determined weights of the edges between the found nodes in the graph.

### Claim 19 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the operations further comprise:
providing information from the found nodes that match an entity, entity type, or entity attribute of one or more terms of the query for display to the user.

### Claim 20 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the operations further comprise:
increasing a value of the weight of an edge based on reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 21 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the operations further comprise:
decreasing a value of the weight of an edge based on lack of reinforcement in the user-specific content of the relationship represented by the edge.

### Claim 22 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the query specific to the user includes a specific time, activity, or location.

### Claim 23 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the query specific to the user is a query to predict participation of the specific user in one or more activities.

### Claim 24 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the query specific to the user is a query to predict travel of the specific user to one or more locations.

### Claim 25 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein providing an answer for the query specific to the user further comprises:
for each edge connecting found nodes, determining whether the weight of the edge connected to the found nodes exceeds a threshold weight;
for each edge with a weight that exceeds the threshold weight, including, in the answer, entities represented by the other nodes connected to the found nodes by the edge; and
for each edge with a weight that does not exceed the threshold weight, excluding, from the answer, the entities represented by the other nodes connected to the found nodes by the edge.

### Claim 26 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein entities in the user-specific content are people, places, or things, in addition to timings.

### Claim 27 (depends on 10)

The system of claim 10, wherein the query specific to the user is a specific time, activity, or location.
