# US 8,788,492 B2 · Search system and methods with integration of user annotations from a trust network

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

- Number: US 8,788,492 B2
- Document ID: US8788492B2
- Status: Granted
- Kind: B2
- Application number: 11/082,202
- Filed: 2005-03-15
- Published: 2005-11-17
- Granted: 2014-07-22
- Earliest claimed: 2004-03-15
- Assignees: Yahoo! Inc.
- Applicants: Qi Lu; Eckart Walther; David Ku; Chung-Man Tam; Kevin Lee; Zhichen Xu; Ali Diab; Kenneth Norton; Jianchang Mao
- Inventors: Qi Lu; Eckart Walther; David Ku; Chung-Man Tam; Kevin Lee; Zhichen Xu; Ali Diab; Kenneth Norton; Jianchang Mao
- Web page: https://patentgrep.com/patent/US8788492B2

## CPC

- G06F 16/24573: {using data annotations, e.g. user-defined metadata}
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9536: Search customisation based on social or collaborative filtering
- G06F 16/957: Browsing optimisation, e.g. caching or content distillation
- H04L 51/52: for supporting social networking services
- 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

Computer systems and methods incorporate user annotations (metadata) regarding various pages or sites, including annotations by a querying user and by members of a trust network defined for the querying user into search and browsing of a corpus such as the World Wide Web. A trust network is defined for each user, and annotations by any member of a first user's trust network are made visible to the first user during search and/or browsing of the corpus. Users can also limit searches to content annotated by members of their trust networks or by members of a community selected by the user.

## Claims

### Claim 1

A method for responding to a user query, the method comprising:
receiving a query submitted by a querying one of a plurality of users;
searching a corpus comprising a plurality of documents to identify one or more hits, wherein each hit is a document in the corpus that is determined to be relevant to the query;
building a trust network for the querying user, the trust network having as members a subset of the plurality of users including at least one user other than the querying user explicitly identified by the querying user as a friend, wherein the members of the trust network are members of a selected community of users, the selected community being selected by the querying user;
providing a trust network interface operable by the plurality of users to identify others of the plurality of users as friends;
receiving identifications of friends from a plurality of inputting users, including the querying user, via the trust network interface;
storing a list of identified friends for each inputting user;
accessing a store of annotations created by the plurality of users, each annotation being associated with a subject one of the documents in the corpus and with a creating one of the plurality of users, each annotation including user-specific metadata related to the subject document, wherein the user-specific metadata included in each annotation includes a rating of the subject document;
identifying, as an annotated hit, each of the hits that is the subject document of at least one matching annotation, wherein the creating user of each matching annotation is one of the members of the trust network;
obtaining an annotation rating from each matching annotation, the annotation rating being a rating of the annotation, and computing an average annotation rating based at least in part on a degree of separation of the creating user in the trust network relative to the querying user;
generating a search report including a listing of the hits, wherein for each annotated hit, the search report includes information about at least one of the matching annotations, wherein an order for the listing of the hits is determined based at least in part on the average annotation ratings of the annotated hits;
providing in the search report, for a given annotated hit, a control element operable by the querying user to request a display of the user-specific metadata of at least one of the matching annotations; and
transmitting the search report and the user-specific metadata of at least one matching annotation to the querying user.

### Claim 2 (depends on 1)

The method of claim 1 wherein building the trust network for the querying user includes:
retrieving a list of identified friends for the querying user; and
adding, as a member of the trust network, at least one of the identified friends of the querying user.

### Claim 3 (depends on 2)

The method of claim 2 wherein building the trust network for the querying user further includes:
retrieving a list of identified friends for a first one of the trust network members; and
adding, as a member of the trust network, at least one of the identified friends of the first one of the trust network members.

### Claim 4 (depends on 3)

The method of claim 3 wherein building the trust network for the querying user further includes:
adding, as members of the trust network, identified friends of the trust network members that are connected to the querying user with a degree of separation that does not exceed a maximum value.

### Claim 5 (depends on 2)

The method of claim 2 wherein building the trust network for the querying user further includes:
adding the querying user to the trust network as a member.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
assigning a trust weight to each friend in the list of identified friends.

### Claim 7 (depends on 6)

The method of claim 6 wherein the trust weight is assigned based on a user input received via the trust network interface.

### Claim 8 (depends on 7)

The method of claim 7 wherein building the trust network for the querying user includes:
selecting a user to add to the trust network as a member based at least in part on the trust weight.

### Claim 9 (depends on 1)

The method of claim 1 wherein building the trust network for the querying user includes:
automatically populating a list of identified friends for the querying user from a list of users with whom the querying user communicates.

### Claim 10 (depends on 9)

The method of claim 9 wherein the list of users with whom the querying user communicates includes a list of instant messaging contacts maintained by the querying user.

### Claim 11 (depends on 9)

The method of claim 9 wherein the list of users with whom the querying user communicates includes an e-mail address book maintained by the querying user.

### Claim 12 (depends on 9)

The method of claim 9 wherein the list of users with whom the querying user communicates includes a list of members of a community to which the querying user belongs.

### Claim 13 (depends on 9)

The method of claim 9 further comprising:
providing a trust network interface operable by the querying user to edit the automatically populated list of friends.

### Claim 14 (depends on 1)

The method of claim 1 wherein the querying user is also a member of the selected community.

### Claim 15 (depends on 1)

The method of claim 1 wherein the querying user is not a member of the selected community.

### Claim 16 (depends on 1)

The method of claim 1 further comprising:
receiving from the querying user an identifier of the selected community.

### Claim 17 (depends on 1)

The method of claim 1 wherein the querying user is one of the members of the trust network.

### Claim 18 (depends on 1)

The method of claim 1 wherein the search report visual highlight element applied to each hit that is an annotated hit.

### Claim 19 (depends on 18)

The method of claim 18 wherein the user-specific metadata included in the annotations includes a rating, the method further comprising:
for each annotated hit, extracting a rating from each matching annotation and computing an average rating,
wherein the visual highlight element applied to each annotated hit depends on the average rating.

### Claim 20 (depends on 1)

The method of claim 1 wherein generating the search report further includes:
for each annotated hit, providing in the search report information extracted from at least one of the matching annotations.

### Claim 21 (depends on 1)

The method of claim 1 wherein generating the search report further includes: generating a separate listing including only annotated hits.

### Claim 22 (depends on 1)

The method of claim 1 further comprising:
searching the store of annotations to identify one or more additional annotated hits, wherein each additional annotated hit corresponds to a document in the corpus for which the store of annotations includes an associated annotation for which the creating user is one of the trust network members and the associated annotation includes user-specific metadata that is determined to be relevant to the query; and
incorporating the additional annotated hits into the listing of the hits in the search results page.

### Claim 23 (depends on 22)

The method of claim 22 wherein searching the corpus includes:
extracting a search term from the user query; and
identifying as a hit each document in the corpus that contains the search term.

### Claim 24 (depends on 23)

The method of claim 23 wherein searching the store of annotations includes identifying as an additional annotated hit each document in the corpus for which the user-specific metadata includes the search term.

### Claim 25 (depends on 1)

The method of claim 1 wherein the store of annotations further includes at least one annotation that is associated with a group of documents in the corpus and wherein any it that is one of the group of documents is identified as an annotated hit.

### Claim 26 (depends on 1)

The method of claim 1 wherein the user-specific metadata includes an item of information explicitly input by the user.

### Claim 27 (depends on 26)

The method of claim 26 wherein the item of information is a rating of the associated document.

### Claim 28 (depends on 26)

The method of claim 26 wherein the item of information is a keyword describing the associated document.

### Claim 29 (depends on 26)

The method of claim 26 wherein the item of information is a label selected from a predefined vocabulary.

### Claim 30 (depends on 26)

The method of claim 26 wherein the item of information is a description of the associated document.

### Claim 31 (depends on 1)

The method of claim 1 wherein the corpus includes a plurality of World Wide Web pages.

### Claim 32 (depends on 1)

The method of claim 1 wherein the user is a human.

### Claim 33 (depends on 1)

The method of claim 1 wherein the user is a computer.

### Claim 34

A method for responding to a user query, the method comprising:
receiving a query submitted by a querying one of a plurality of users;
building a trust network for the querying user, the trust network having as members a subset of the plurality of users including at least one user other than the querying user explicitly identified by the querying user as a friend, wherein the members of the trust network are members of a selected community of users, the selected community being selected by the querying user;
providing a trust network interface operable by the plurality of users to identify others of the plurality of users as friends;
receiving identifications of friends from a plurality of inputting users, including the querying user, via the trust network interface;
storing a list of identified friends for each inputting user;
accessing a store of annotations created by the plurality of users, each annotation being associated with a subject one of a plurality of documents belonging to a corpus and with a creating one of the plurality of users, each annotation further including user-specific metadata related to the subject document, wherein the user-specific metadata included in each annotation includes a rating of the subject document;
identifying one or more hits, wherein each hit is a document in the corpus that is determined to be relevant to the query and wherein each hit further is the subject document of at least one matching annotation, wherein the creating user of each matching annotation is one of the trust network members, and obtaining an annotation rating from each matching annotation, the annotation rating being a rating of the annotation, and computing an average annotation rating based at least in part on a degree of separation of the creating user in the trust network relative to the querying user;
generating a search report including a listing of the hits, wherein the hits in the listing are placed in an order determined based at least in part on the average annotation ratings of the hits;
providing in the search report, for a given hit, a control element operable by the querying user to request a display of the user-specific metadata of at least one of the matching annotations; and
transmitting the search report and the user-specific metadata of the at least one matching annotation to the querying user.

### Claim 35 (depends on 34)

The method of claim 34 wherein identifying the one or more hits includes comparing the query to contents of documents in the corpus.

### Claim 36 (depends on 34)

The method of claim 34 wherein identifying one or more hits includes comparing the query to the user-specific metadata of annotations in a search pool of annotations for which the creating user is one of the trust network members.

### Claim 37 (depends on 36)

The method of claim 36 wherein identifying one or more hits further includes:
extracting a search term from the query; and
detecting, for each of the annotations in the search pool, whether the search term is present in the user-specific metadata,
wherein the associated document is identified as a hit in the event that the search term is present in the user-specific metadata.

### Claim 38 (depends on 37)

The method of claim 37 further comprising:
for each document that is the subject document of at least one of the annotations in the search pool, detecting whether the search term is present in the document,
wherein the document is identified as a hit in the event that the search term is present in the document.

### Claim 39 (depends on 37)

The method of claim 37 wherein the user-specific metadata includes a plurality of fields and wherein the query specifies which of the fields are to be considered during the act of detecting.

### Claim 40 (depends on 34)

The method of claim 34 wherein the search report further includes, for each hit, at least some of the user-specific metadata from at least one of the matching annotations.

### Claim 41 (depends on 34)

The method of claim 34 wherein the store of annotations further includes at least one annotation that is associated with a group of documents in the corpus and wherein any document that is one of the group of documents is identified as a hit.

### Claim 42 (depends on 34)

The method of claim 34 wherein the corpus is the World Wide Web.

### Claim 43 (depends on 34)

The method of claim 34 wherein the user is a human.

### Claim 44 (depends on 34)

The method of claim 34 wherein the user is a computer.

### Claim 45

A computer system for responding to user queries from a plurality of users, the system comprising:
an index data store configured to store a searchable representation of a plurality of documents belonging to a corpus;
a personalization data store configured to store annotations, each annotation being associated with a subject one of the documents in the corpus and with a creating one of the plurality of users, each annotation including user-specific metadata related to the subject document, wherein the user-specific metadata included in each annotation includes a rating; and
a search server communicably coupled to the index data store and the personalization data store,
the search server including:
input control logic configured to receive a query from a querying one of the plurality of users;
search control logic configured to search the index data store to identify one or more hits, wherein each hit is a document in the corpus that is determined to be relevant to the received query;
trust network control logic configured to:
(a) build a trust network for the querying user, the trust network having as members a subset of the plurality of users including at least one user other than the querying user explicitly identified by the querying user as a friend, wherein the members of the trust network are members of a selected community of users, the selected community being selected by the querying user;
(b) provide a trust network interface operable by the plurality of users to identify others of the plurality of users as friends;
(c) receive identifications of friends from a plurality of inputting users, including the querying user, via the trust network interface; and
(d) store a list of identified friends for each inputting user;
personalization control logic configured to identify, as an annotated hit, each of the hits that is the subject document of at least one matching annotation, wherein the creating user of each matching annotation is one of the members of the trust network, the personalization control logic being further configured to obtain an annotation rating from each matching annotation, the annotation rating being a rating of the annotation and compute an average annotation rating based at least in part on a degree of separation of the creating user in the trust network relative to the querying user; and
reporting control logic configured to generate search report including a listing of the hits, the search report further including, for each annotated hit, information about at least one of the matching annotations, wherein an order for the listing of the hits is determined based at least in part on the average ratings of the annotated hits, the reporting control logic being further configured to provide in the search report, for a given annotated hit, a control element operable by the querying user to request a display of the user-specific metadata of at least one of the matching annotations, the reporting control logic being further configured to transmit the search report along with the user-specific metadata for display to the querying user.

### Claim 46

A computer system for responding to user queries from a plurality of users, the system comprising:
an index data store configured to store a searchable representation of a plurality of documents belonging to a corpus;
a personalization data store configured to store annotations, each annotation being associated with a subject one of the documents in the corpus and with a creating one of the plurality of users, each annotation including user-specific metadata related to the subject document, wherein the user-specific metadata included in each annotation includes a rating; and
a search server communicably coupled to the index data store and the personalization data store,
the search server including:
input control logic configured to receive a query from a querying one of the plurality of users;
trust network control logic configured to build a trust network for the querying user, the trust network having as members a subset of the plurality of users including at least one user other than the querying user explicitly identified by the querying user as a friend, wherein the members of the trust network are members of a selected community of users, the selected community being selected by the querying user, the trust network control logic further configured to provide a trust network interface operable by the plurality of users to identify others of the plurality of users as friends the trust network, to receive identifications of friends from a plurality of inputting users, including the querying user, via the trust network interface, and store a list of identified friends for each inputting user;
search control logic configured to identify, as a hit, one or more of the documents from the corpus, wherein each hit is determined to be relevant to the query and wherein each hit further is the subject document of at least one matching annotation, wherein the creating user of each matching annotation is one of the trust network members and obtaining an annotation rating from each matching annotation, the annotation rating being a rating of the annotation, and computing an average annotation rating based at least in part on a degree of separation of the creating user in the trust network relative to the querying user; and
reporting control logic configured to generate a search report including a listing of the hits, wherein the hits in the listing are placed in an order determined based at least in part on the ratings of the hits, the reporting control logic being further configured to provide in the search report, for a given hit, a control element operable by the querying user to request a display of the user-specific metadata of at least one of the matching annotations, the reporting control logic being further configured to transmit the search report along with the user-specific metadata for display to the user.
