# US 10,311,063 B2 · Context-based object retrieval in a social networking system

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

- Number: US 10,311,063 B2
- Document ID: US10311063B2
- Status: Granted
- Kind: B2
- Application number: 14/825,000
- Filed: 2015-08-12
- Published: 2015-12-03
- Granted: 2019-06-04
- Earliest claimed: 2012-07-19
- Assignees: Facebook, Inc.
- Applicants: Facebook, Inc.
- Inventors: Cameron Alexander Marlow; Robert William Cathcart; Jeffrey Scott Dunn; Rafael Linden Sagula; Venkataramanan Iyer Nandagopal; Siddharth Kar; Eric Sun
- Web page: https://patentgrep.com/patent/US10311063B2

## CPC

- G06F 16/24575: {using context}
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9536: Search customisation based on social or collaborative filtering
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments improve the ability of users of a social networking system to search for information that is likely to be relevant to them by learning and/or applying a search context associated with selector components used to search for objects of the social networking system. The search context is specific to the use of an individual selector and thus need not be as general as the context of an entire page or set of pages in which selectors can be embedded. The social networking system may learn the context of a selector by monitoring user selections from prior search results performed using the selector.

## Claims

### Claim 1

A computer-implemented method comprising:
providing, to a client device, a graphical user interface simultaneously including a first selector and a second selector, the first selector being a graphical component of the graphical user interface and being associated with a first object type based on object types of objects from a plurality of prior selections made by a plurality of different users within result sets of the first selector, the second selector being a graphical component of the graphical user interface and being associated with a second object type different from the first object type based on object types of objects from a plurality of prior selections made by a plurality of different users within result sets of the second selector;
receiving a query that was entered into the first selector on the client device by a user of an online system, the first object type having been associated with the first selector before the query was received;
forming a result set by identifying objects matching the query, one or more of the objects being associated with an object type;
modifying the result set based at least in part on:
comparisons of the first object type associated with the first selector with the object types of the objects in the result set, and
connections of the user on the online system; and
providing a plurality of the objects of the result set to the client device for display in visual association with the first selector in the graphical user interface, wherein the provided plurality of objects comprise at least two different object types.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
providing, to the client device, a second graphical user interface embedded in a second web page associated with a different context than the graphical user interface,
wherein the second graphical user interface includes a second selector, the second selector being a graphical component of the second graphical user interface and being associated with a second object type different from the object type based on object types of objects from a plurality of prior selections made by a plurality of different users within result sets of the second selector, wherein the result set of the second selector is based on the second object type.

### Claim 3

A computer-implemented method comprising:
providing, to a client device, a graphical user interface including a selector, the selector associated with an object type based on object types of objects from a plurality of prior user selections made by a plurality of different users within result sets of the selector;
receiving a query that was entered into the selector on the client device by a user of an online system, the object type associated with the selector before the query is received;
forming a result set by identifying objects matching the query, one or more of the objects associated with an object type;
modifying the result set based at least in part on:
comparisons of the object type associated with the selector with the object types of the objects in the result set, and
connections of the user on the online system; and
providing one or more objects of the result set to the client device for display in visual association with the selector in the graphical user interface.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
receiving a plurality of selections of objects from a plurality of users using the selector;
determining one or more types associated with the selected objects; and
determining that the object type is associated with the selector based on the determined types associated with the selected objects.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein determining a type associated with the selector comprises:
identifying a type most frequently associated with the selected objects; and
adding the most frequent type as the object type associated with the selector.

### Claim 6 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set comprises removing, from the result set, objects with types not matching the object type of the selector.

### Claim 7 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set comprises ranking the objects in the result set based at least in part on whether the object type associated with the objects match the object type associated with the selector.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the object type associated with the selector and the types of the objects matching the query are nodes of a type graph, the method further comprising:
determining distances in the type graph between the object type associated with the selector and the types of the objects matching the query; and
determining the ranking of the objects based on the determined distances.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein modifying the result set comprises ranking a first one of the objects matching the query more highly than a second one of the objects matching the query, responsive to the first one of the objects having a type matching the object type associated with the selector and the second one of the objects not having a type matching the object type of the selector.

### Claim 10 (depends on 3)

The computer-implemented method of claim 3, wherein the user interface is for a page, and the user interface includes a plurality of selectors, at least two selectors of the plurality of selectors associated with different object types.

### Claim 11 (depends on 3)

The computer-implemented method of claim 3, further comprising receiving a selection of one of the objects of the result set from the user.

### Claim 12 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set based at least in part on connections of the user on the online system is based at least in part on a connection between the user and another user.

### Claim 13 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set based at least in part on connections of the user on the online system is based at least in part on a connection between the user and a page on the online system.

### Claim 14 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set based at least in part on connections of the user on the online system is based at least in part on a connection between the user and a media item on the online system.

### Claim 15 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set based at least in part on connections of the user on the online system is based at least in part on a connection between the user and an application hosted on the online system.

### Claim 16 (depends on 3)

The computer-implemented method of claim 3, wherein modifying the result set based at least in part on connections of the user on the online system is based at least in part on a connection between the user and a group defined by the online system.

### Claim 17 (depends on 3)

The computer-implemented method of claim 3, wherein the user interface that includes the selector is a web page of a third party site external to the online system.

### Claim 18

A non-transitory computer-readable storage medium storing executable computer program instructions comprising:
instructions for providing, to a client device, a graphical user interface including a selector, the selector associated with an object type based on object types of objects from a plurality of prior user selections made by a plurality of different users within result sets of the selector;
instructions for receiving a query that was entered into the selector on the client device, the object type associated with the selector before the query is received;
instructions for forming a result set by identifying objects matching the query, one or more of the objects associated with an object type;
instructions for modifying the result set based at least in part on comparisons of the object type associated with the selector with the object types of the objects in the result set; and
instructions for providing one or more objects of the result set to the client device for display in visual association with the selector in the graphical user interface.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, further comprising:
instructions for receiving a plurality of selections of objects from a plurality of users using the selector;
instructions for determining one or more types associated with the selected objects; and
instructions for determining a type associated with the selector based on the types associated with the selected objects.

### Claim 20 (depends on 18)

The non-transitory computer-readable storage medium of claim 18, wherein the user interface is for a page, and the user interface includes a plurality of selectors, at least two selectors of the plurality of selectors associated with different object types.

### Claim 21

A non-transitory computer-readable storage medium storing executable instructions, the instructions when executed by a computer processor performing actions comprising:
providing, to a client device, a graphical user interface simultaneously including a first selector and a second selector, the first selector being a graphical component of the graphical user interface and being associated with a first object type based on object types of objects from a plurality of prior selections made by a plurality of different users within result sets of the first selector, the second selector being a graphical component of the graphical user interface and being associated with a second object type different from the first object type based on object types of objects from a plurality of prior selections made by a plurality of different users within result sets of the second selector;
receiving a query that was entered into the first selector on the client device by a user of an online system, the first object type having been associated with the first selector before the query was received;
forming a result set by identifying objects matching the query, one or more of the objects being associated with an object type;
modifying the result set based at least in part on:
comparisons of the first object type associated with the first selector with the object types of the objects in the result set, and
connections of the user on the online system; and
providing a plurality of the objects of the result set to the client device for display in visual association with the first selector in the graphical user interface, wherein the provided plurality of objects comprise at least two different object types.
