U.S. patent application number 13/150878 was filed with the patent office on 2011-09-22 for unified search interface.
Invention is credited to Dustin Boswell.
Application Number | 20110231392 13/150878 |
Document ID | / |
Family ID | 43568646 |
Filed Date | 2011-09-22 |
United States Patent
Application |
20110231392 |
Kind Code |
A1 |
Boswell; Dustin |
September 22, 2011 |
Unified Search Interface
Abstract
Methods, systems, and computer program products feature
determining a plurality of search result items responsive to a
search query. A plurality of search modes are identified based on
the query or the plurality of search result items or both. Each
search mode is associated with a respective collection of records.
The plurality of search result items are provided to a user with an
indication of each search mode in the plurality of search modes.
User input selecting a first search mode is received, where the
first search mode is one of the plurality of search modes. One or
more mode-specific search result items are determined based on the
search query, where each mode-specific search result item is from
the collection of records that is associated with the first search
mode. The one or more mode-specific search result items are
provided to the user.
Inventors: |
Boswell; Dustin; (Agoura
Hills, CA) |
Family ID: |
43568646 |
Appl. No.: |
13/150878 |
Filed: |
June 1, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13005251 |
Jan 12, 2011 |
|
|
|
13150878 |
|
|
|
|
11566083 |
Dec 1, 2006 |
7890499 |
|
|
13005251 |
|
|
|
|
11460928 |
Jul 28, 2006 |
|
|
|
11566083 |
|
|
|
|
Current U.S.
Class: |
707/722 ;
707/E17.014; 707/E17.108 |
Current CPC
Class: |
G06F 16/951 20190101;
G06F 16/287 20190101; G06F 16/9038 20190101 |
Class at
Publication: |
707/722 ;
707/E17.014; 707/E17.108 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1-10. (canceled)
11. A computer-implemented method comprising: receiving a search
query; generating first search results that identify resources that
a search engine has identified as being responsive to the search
query; identifying one or more search modes based on the search
query, the resources, or both the search query and the resources,
each of the one or more search modes being associated with a
particular collection of records from among multiple collections of
records; providing a first user interface that presents for display
at least a portion of the first search results and a respective
search mode selector for each of one or more of the identified one
or more search modes; receiving user input selecting a first search
mode by selecting one of the search mode selectors; generating
second search results that satisfy the search query and that refer
to mode-specific records that are associated with the first search
mode; formatting a plurality of the second search results using a
mode-specific presentation template that is associated with the
first search mode to generate formatted search results; and
providing a second user interface that presents for display the
formatted search results.
12. The computer-implemented method of claim 11, wherein all
records in each particular collection have a common attribute
structure of data elements that pertain to the respective search
mode.
13. The computer-implemented method of claim 11, wherein the first
search mode is associated with a first collection of records that
share a first common attribute structure.
14. The computer-implemented method of claim 11, wherein the first
search results identify resources that the search engine has
identified from a corpus of resources as being responsive to the
search query.
15. The computer-implemented method of claim 11, wherein
identifying one or more search modes comprises: determining that
the search query includes one or more keywords that are associated
with the one or more search modes.
16. The computer-implemented method of claim 11, wherein
identifying one or more search modes comprises: determining that
one or more of the resources include respective keywords that are
associated with the one or more search modes.
17. The computer-implemented method of claim 11, wherein
identifying one or more search modes comprises: determining that
one or more of the resources are associated with respective one or
more records from among the multiple collections of records, the
one or more records being associated with the one or more search
modes.
18. The computer-implemented method of claim 11, wherein: the
second user interface further presents a user interface element
that identifies and allows users to specify an attribute value
constraint for an attribute that is specific to the first search
mode; and the method further comprises: receiving an indication of
a user selection of the user interface element, removing from the
second user interface second search results that do not satisfy the
attribute value constraint to generate a revised second user
interface, and providing the revised second user interface for
display.
19. The computer-implemented method of claim 11, wherein: the
second user interface further presents a user interface element
that allows users to sort the second search results according to
values of an attribute that is specific to the first search mode;
and the method further comprises: receiving an indication of a user
selection of the user interface element, reordering in the second
user interface the second search results in a sorted order
according to values of the attribute to generate a revised second
user interface, wherein before the user selection the second search
results were not presented in the sorted order, and providing the
revised second user interface for display.
20. The computer-implemented method of claim 11, wherein the first
user interface presents for display a respective search mode
selector for each of two or more of the identified search
modes.
21. The computer-implemented method of claim 11, further
comprising: identifying mode-specific user interface elements that
are associated with the first search mode, wherein the second user
interface further presents for display the mode-specific user
interface elements; receiving user input selecting one of the
mode-specific user interface elements; generating a display of
third search results based on the selected mode-specific user
interface element; and providing a third user interface that
presents for display the generated display of third search
results.
22. The computer-implemented method of claim 21, wherein generating
the display of third search results based on the selected
mode-specific user interface element includes ordering the third
search results by values of a mode-specific attribute that is
associated with the selected mode-specific user interface
element.
23. The computer-implemented method of claim 21, wherein generating
the display of third search results based on the selected
mode-specific user interface element includes limiting the third
search results to search results that have attribute values that
satisfy a constraint that is associated with the selected
mode-specific user interface element.
24. The computer-implemented method of claim 11, wherein: the
mode-specific presentation template specifies a mode-specific
format for displaying the mode-specific records; and another of the
search modes is associated with another mode-specific presentation
template that specifies another different mode-specific format for
displaying records.
25. A computer storage medium encoded with a computer program, the
program comprising instructions that when executed by data
processing apparatus cause the data processing apparatus to perform
operations comprising: receiving a search query; generating first
search results that identify resources that a search engine has
identified as being responsive to the search query; identifying one
or more search modes based on the search query, the resources, or
both the search query and the resources, each of the one or more
search modes being associated with a particular collection of
records from among multiple collections of records; providing a
first user interface that presents for display at least a portion
of the first search results and a respective search mode selector
for each of one or more of the identified one or more search modes;
receiving user input selecting a first search mode by selecting one
of the search mode selectors; generating second search results that
satisfy the search query and that refer to mode-specific records
that are associated with the first search mode; formatting a
plurality of the second search results using a mode-specific
presentation template that is associated with the first search mode
to generate formatted search results; and providing a second user
interface that presents for display the formatted search
results.
26. The computer storage medium of claim 25, wherein all records in
each particular collection have a common attribute structure of
data elements that pertain to the respective search mode.
27. The computer storage medium of claim 25, wherein the first
search mode is associated with a first collection of records that
share a first common attribute structure.
28. The computer storage medium of claim 25, wherein the first
search results identify resources that the search engine has
identified from a corpus of resources as being responsive to the
search query.
29. The computer storage medium of claim 25, wherein identifying
one or more search modes comprises: determining that the search
query includes one or more keywords that are associated with the
one or more search modes.
30. The computer storage medium of claim 25, wherein identifying
one or more search modes comprises: determining that one or more of
the resources include respective keywords that are associated with
the one or more search modes.
31. The computer storage medium of claim 25, wherein identifying
one or more search modes comprises: determining that one or more of
the resources are associated with respective one or more records
from among the multiple collections of records, the one or more
records being associated with the one or more search modes.
32. The computer storage medium of claim 25, wherein: the second
user interface further presents a user interface element that
identifies and allows users to specify an attribute value
constraint for an attribute that is specific to the first search
mode; and the operations further comprise: receiving an indication
of a user selection of the user interface element, removing from
the second user interface second search results that do not satisfy
the attribute value constraint to generate a revised second user
interface, and providing the revised second user interface for
display.
33. The computer storage medium of claim 25, wherein: the second
user interface further presents a user interface element that
allows users to sort the second search results according to values
of an attribute that is specific to the first search mode; and the
operations further comprise: receiving an indication of a user
selection of the user interface element, reordering in the second
user interface the second search results in a sorted order
according to values of the attribute to generate a revised second
user interface, wherein before the user selection the second search
results were not presented in the sorted order, and providing the
revised second user interface for display.
34. The computer storage medium of claim 25, wherein the first user
interface presents for display a respective search mode selector
for each of two or more of the identified search modes.
35. The computer storage medium of claim 25, wherein the operations
further comprise: identifying mode-specific user interface elements
that are associated with the first search mode, wherein the second
user interface further presents for display the mode-specific user
interface elements; receiving user input selecting one of the
mode-specific user interface elements; generating a display of
third search results based on the selected mode-specific user
interface element; and providing a third user interface that
presents for display the generated display of third search
results.
36. The computer storage medium of claim 35, wherein generating the
display of third search results based on the selected mode-specific
user interface element includes ordering the third search results
by values of a mode-specific attribute that is associated with the
selected mode-specific user interface element.
37. The computer storage medium of claim 35, wherein generating the
display of third search results based on the selected mode-specific
user interface element includes limiting the third search results
to search results that have attribute values that satisfy a
constraint that is associated with the selected mode-specific user
interface element.
38. The computer storage medium of claim 25, wherein: the
mode-specific presentation template specifies a mode-specific
format for displaying the mode-specific records; and another of the
search modes is associated with another mode-specific presentation
template that specifies another different mode-specific format for
displaying records.
39. A system comprising: one or more computers; and a
computer-readable medium coupled to the one or more computers
having instructions stored thereon which, when executed by the one
or more computers, cause the one or more computers to perform
operations comprising: receiving a search query; generating first
search results that identify resources that a search engine has
identified as being responsive to the search query; identifying one
or more search modes based on the search query, the resources, or
both the search query and the resources, each of the one or more
search modes being associated with a particular collection of
records from among multiple collections of records; providing a
first user interface that presents for display at least a portion
of the first search results and a respective search mode selector
for each of one or more of the identified one or more search modes;
receiving user input selecting a first search mode by selecting one
of the search mode selectors; generating second search results that
satisfy the search query and that refer to mode-specific records
that are associated with the first search mode; formatting a
plurality of the second search results using a mode-specific
presentation template that is associated with the first search mode
to generate formatted search results; and providing a second user
interface that presents for display the formatted search
results.
40. The system of claim 39, wherein all records in each particular
collection have a common attribute structure of data elements that
pertain to the respective search mode.
41. The system of claim 39, wherein the first search mode is
associated with a first collection of records that share a first
common attribute structure.
42. The system of claim 39, wherein the first search results
identify resources that the search engine has identified from a
corpus of resources as being responsive to the search query.
43. The system of claim 39, wherein identifying one or more search
modes comprises: determining that the search query includes one or
more keywords that are associated with the one or more search
modes.
44. The system of claim 39, wherein identifying one or more search
modes comprises: determining that one or more of the resources
include respective keywords that are associated with the one or
more search modes.
45. The system of claim 39, wherein identifying one or more search
modes comprises: determining that one or more of the resources are
associated with respective one or more records from among the
multiple collections of records, the one or more records being
associated with the one or more search modes.
46. The system of claim 39, wherein: the second user interface
further presents a user interface element that identifies and
allows users to specify an attribute value constraint for an
attribute that is specific to the first search mode; and the
operations further comprise: receiving an indication of a user
selection of the user interface element, removing from the second
user interface second search results that do not satisfy the
attribute value constraint to generate a revised second user
interface, and providing the revised second user interface for
display.
47. The system of claim 39, wherein: the second user interface
further presents a user interface element that allows users to sort
the second search results according to values of an attribute that
is specific to the first search mode; and the operations further
comprise: receiving an indication of a user selection of the user
interface element, reordering in the second user interface the
second search results in a sorted order according to values of the
attribute to generate a revised second user interface, wherein
before the user selection the second search results were not
presented in the sorted order, and providing the revised second
user interface for display.
48. The system of claim 39, wherein the first user interface
presents for display a respective search mode selector for each of
two or more of the identified search modes.
49. The system of claim 39, wherein the operations further
comprise: identifying mode-specific user interface elements that
are associated with the first search mode, wherein the second user
interface further presents for display the mode-specific user
interface elements; receiving user input selecting one of the
mode-specific user interface elements; generating a display of
third search results based on the selected mode-specific user
interface element; and providing a third user interface that
presents for display the generated display of third search
results.
50. The system of claim 49, wherein generating the display of third
search results based on the selected mode-specific user interface
element includes ordering the third search results by values of a
mode-specific attribute that is associated with the selected
mode-specific user interface element.
51. The system of claim 49, wherein generating the display of third
search results based on the selected mode-specific user interface
element includes limiting the third search results to search
results that have attribute values that satisfy a constraint that
is associated with the selected mode-specific user interface
element.
52. The system of claim 39, wherein: the mode-specific presentation
template specifies a mode-specific format for displaying the
mode-specific records; and another of the search modes is
associated with another mode-specific presentation template that
specifies another different mode-specific format for displaying
records.
Description
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 11/460,928, titled "Unified Search Interface,"
filed Jul. 28, 2006.
BACKGROUND
[0002] This specification relates generally to information systems,
and more particularly to interactive searching.
[0003] Users seeking to find information among an abundance of data
can turn to an information retrieval system that can search for the
sought after information. A search engine is an example of an
information retrieval system that can be used to find information
on the World Wide Web. To find information, users can specify
search criteria (a "query") to a user interface provided by the
search engine.
[0004] Typical general-purpose search engines provide a user
interface that allows search queries to be specified as simple
strings of text. A query is typically answered with an overwhelming
number of search result items. Search result items can refer to a
wide variety of content, pertain to various subjects, and may or
may not reflect the sort of information that a user is actually
seeking. For example, a user seeking a recipe for Cajun jambalaya
may provide the query "Cajun" and receive search results concerning
Cajun cuisine, Acadian history, and performance art in Louisiana.
Finding precise information from among the search results can be
difficult. To refine the search results, users are normally
required to revise their search criteria. Typically, users' lack of
knowledge prevents them from providing the precise terminology
needed to accurately articulate the specific search results that
they desire.
[0005] Search engines that pertain to particular subject matter may
provide a user interface that allows users to provide
subject-specific search criteria that are germane to the search
engine's subject matter. Ideally, the user interface of the search
engine provides some guidance for users by providing
subject-specific search options that users might otherwise be
unaware of. For example, a real-estate searching facility might
allow specification of criteria such as geographical location,
minimum and maximum price, and whether or not the property has a
swimming pool. For users, switching between various
subject-specific search engines can be inconvenient and awkward.
Subject-specific search engines typically do not provide users with
a comprehensive overview that encompasses more than one
subject.
SUMMARY
[0006] In general, one aspect of the subject matter described in
this specification can be embodied in a method that includes
determining a plurality of search result items responsive to a
search query. A plurality of search modes are identified based on
the query or the plurality of search result items or both. Each
search mode is associated with a respective collection of records.
The plurality of search result items are provided to a user with an
indication of each search mode in the plurality of search modes.
User input selecting a first search mode is received, where the
first search mode is one of the plurality of search modes. One or
more mode-specific search result items are determined based on the
search query, where each mode-specific search result item is from
the collection of records that is associated with the first search
mode. The one or more mode-specific search result items are
provided to the user. Other embodiments of this aspect include
corresponding systems, apparatus and computer program products.
[0007] These and other embodiments can optionally include one or
more of the following features. Providing the user the one or more
mode-specific search result items can include providing an
indication of each search mode in the plurality of search modes
with the one or more mode-specific search result items. The method
can include receiving user input selecting a second search mode,
where the second search mode is one of the plurality of search
modes and different from the first search mode; determining a
second one or more mode-specific search result items based on the
search query and from the collection of records that is associated
with the second search mode; and providing to the user the second
one or more mode-specific search result items and an indication of
each search mode in the plurality of search modes. The method can
include receiving user input de-selecting the first search mode;
and providing to the user the plurality of search result items. A
search mode can be a mode of operation that includes presenting
mode-specific user interface elements and presenting mode-specific
search result items satisfying the search query, where the
mode-specific search result items refer to records from a
collection of records associated with the search mode. Each search
result item in the plurality of search result items can refer to
either a record in a collection of records or a document in a
corpus of documents. The method can include providing to the user
the one or more mode-specific search result items in a format based
on a presentation template associated with the first search mode.
Records associated with a particular search mode can contain
information that pertains to a particular subject matter. All the
records associated to the first search mode are stored in a
database. All records in the collection of records have a common
attribute structure. The method can include, in response to
receiving a mode-specific criterion, presenting mode-specific
search result items referring to records that have attributes
satisfying the mode-specific criterion. The method can include, in
response to receiving user input, sorting the one or more
mode-specific search result items based on the user input selecting
one or more attributes. The method can include, in response to
receiving user input, formatting the one or more mode-specific
search result items based on the user input selecting presentation
templates. The method can include, in response to receiving user
input, grouping the one or more mode-specific search result items
by one or more attributes, the one or more attributes selected by
the user input.
[0008] In general, another aspect of the subject matter described
in this specification can be embodied in a method that includes, in
response to receiving a first search query, determining a plurality
of search result items responsive to the first search query. A
plurality of search modes are identified based on the first search
query or the plurality of search result items or both. A first user
interface is provided that is configured to: 1) present the
plurality of search result items, 2) present the plurality of
search modes, and 3) receive user input selecting a first search
mode, where the first search mode is one of the plurality of search
modes. In response to receiving user input selecting the first
search mode, a second user interface is provided that is configured
to present the plurality of search modes and present a plurality of
mode-specific search result items satisfying the first search
query. Other embodiments of this aspect include corresponding
systems, apparatus and computer program products.
[0009] These and other embodiments can optionally include one or
more of the following features. The mode-specific search result
items can refer to records from a collection of records associated
with the first search mode. The method can include configuring the
second user interface to present one or more user interface
elements associated with the first search mode. The method can
include receiving user input selecting a second search mode, where
the second search mode is one of the plurality of search modes, and
where the second search mode is different from the first search
mode; and in response, providing a user interface that is
configured to present the plurality of search modes and present a
plurality of mode-specific search result items satisfying the
second search mode. The method can include configuring the second
user interface to receive de-selection of the first search mode;
receiving user input de-selecting the first search mode; and
providing a user interface configured to present search result
items satisfying the first search query, where the search result
items satisfy no particular search mode. The method can include
configuring the second user interface to receive a second search
query; receiving the second search query; and providing a user
interface configured to present search result items satisfying the
second search query, the search result items satisfying no
particular search mode. The method can include configuring the
second user interface to receive a second search query; receiving
the second search query; and providing a user interface configured
to present mode-specific search result items satisfying the second
search query and associated with the first search mode.
[0010] In general, another aspect of the subject matter described
in this specification can be embodied in a method that includes
receiving a search query. A plurality of first search result items
are determined based on the search query, where at least one of the
plurality of first search result items refer to a record. The
record is associated with a document in a corpus of documents, and
each document in the corpus has a rank. Each search result item in
the plurality of first search result items is ordered based on the
rank of the document referred to by the search result item or the
rank of the document associated to the record referred to by the
search result item. The ordered plurality of first search result
items is provided. Other embodiments of this aspect include
corresponding systems, apparatus and computer program products.
[0011] These and other embodiments can optionally include one or
more of the following features. Where documents in the corpus can
be documents accessible on the World Wide Web. The method can
include identifying a search mode from a plurality of search modes
based on the search query or the plurality of first search result
items or both; and providing the identified search mode. Each
record can be in a collection of records and each collection of
records is associated with a search mode. All records in each
collection of records can have a common attribute structure. The
method can include receiving user input selecting a search mode;
determining a plurality of second search result items referring to
records from the collection of records associated with the selected
search mode; and providing the plurality of second search result
items. The plurality of second search result items can be sorted,
constrained or grouped based on the one or more common attributes
of each record.
[0012] Particular embodiments of the invention can be implemented
to realize one or more of the following advantages. A search engine
user interface that provides user-selectable search modes allows
users to conduct mode-specific searching on a general purpose
search engine. Search modes, which correspond to specific subjects,
are automatically suggested to the user based on the search query
provided, without requiring the user to know and select the
appropriate search mode before providing the search query.
Providing mode-specific user interface elements in the search
engine user interface allows users to constrain and affect the
presentation (e.g., layout, sorting, grouping) of search results
relevant to a selected search mode. Mode-specific presentation
templates can format and present results to emphasize particular
aspects of the results. A consistent user interface having a
unified look-and-feel that allows users to switch between search
modes can be used to deliver both subject-specific searching in
combination with general purpose searching. Relevant results can be
identified by users more quickly and without users having to
directly edit the original search query.
[0013] The details of one or more embodiments of the invention are
set forth in the accompanying drawings and the description below.
Other features, aspects, and advantages of the invention will be
apparent from the description and drawings, and from the
claims.
DESCRIPTION OF DRAWINGS
[0014] FIG. 1 illustrates an example search engine user
interface.
[0015] FIG. 2 illustrates a user interface with mode-specific
search result items.
[0016] FIG. 3 is a flow diagram of a method for generating
mode-specific search result items.
[0017] FIG. 4 is a flow diagram of a method for presenting
mode-specific user interface elements.
[0018] FIG. 5 is a flow diagram of a method for formatting
mode-specific search result items.
[0019] FIG. 6 illustrates an example user interface for presenting
formatted mode-specific search results.
[0020] FIG. 7 is a block diagram of a client and a search
engine.
[0021] Like reference symbols in the various drawings indicate like
elements.
DETAILED DESCRIPTION
[0022] FIG. 1 illustrates an example search engine user interface
100. The user interface 100, provided by a search engine in
response to the query "nursing jobs", can be presented by a client
such as a web browser. Generally, a client is an instance of a
computer program that is capable of presenting a search engine user
interface provided by the search engine. The client is also capable
of accepting user interaction from the user and providing it to the
search engine. A client can be instantiated on various mobile and
tethered computing devices, for example personal computers,
workstations, mobile computers, laptop computers, electronic games,
media players (e.g., Apple iPod), mobile phones, combinations of
these, and other suitable computing devices. A client can be
implemented in software, firmware, hardware or combinations of
these. The client and the search engine can be instantiated on the
same computing device or on separate computing devices connected by
one or more networks (e.g., the Internet) or other suitable
means.
[0023] The user interface 100 can be provided by the server as an
encoded document such as a Hypertext Markup Language (HTML) encoded
document. In general, the user interface can be encoded in a
document using an alternative encoding, a combination of encodings
or a combination of different documents and encodings. For example,
the HTML document can also contain client instructions encoded as
JavaScript, which can be used to affect the user interface in
response to user input. The user interface is configured by the
search engine. By configuring the user interface the search engine
specifies what user interface elements are included in the encoded
user interface.
[0024] The user interface 100 contains user interface elements such
as a text box 185, in which a search query can be specified, and a
button 170 which can be used to submit the search query. In
general, user interface elements are capable of receiving input
from users that allows users to use functionality associated with
the user interface element. For example, the submit button can
receive input (e.g., from a computer mouse or other input device),
and in response the search query "nursing jobs" 180 from the text
box 185 is submitted to the search engine. The user interface 100
can be configured to include user interface elements such as the
"Advanced Search" link 187, which can provide the user with a
completely different user interface.
[0025] In response to the query, search result items 190 are
presented. Each search result item 190A and 190B refers to a
document from a corpus of documents. A corpus of documents is a
collection of documents that each generally contain textual
information. The content of each document can be structured (e.g.,
a word processor file, text file or a file whose contents are
specified in HTML), however the content of all documents in the
corpus has no common, predetermined structure. In some
implementations, the corpus of documents can be the documents and
files found on the World Wide Web.
[0026] Information regarding each search result item can be
presented, including the document's title 120, location 135 and a
summary or sample of the document's content 130, for example.
Search result items can be ordered according to the rank of
documents in the corpus. The rank of a document ideally indicates
how interesting, important, authoritative or accurate the document
is relative to other documents in the corpus.
[0027] In addition to the search result items, the user interface
100 includes a search mode selector 110. In general, the search
mode selector can be a button, link, hotspot, a selectable item on
a menu, or an identifiable gesture or utterance (e.g., applicable
to voice recognition systems). A search mode selector 110 provides
an indication to the user that search modes have been identified by
the search engine. Search modes can be identified based on the
search query 180, search result items or both. User selection of a
search mode selector causes selection of a search mode. A search
mode generally refers to a particular subject or topic that can be
of interest to the user (e.g., jobs, recipes or restaurants). In
this example, the search engine provides the `job` search mode
selector 110 in response to the query 180. In other
implementations, search modes are identified from the query, the
search result items, or both.
[0028] User selection of the search mode selector 110 causes
presentation of mode-specific search results.
[0029] FIG. 2 illustrates a user interface 200 with mode-specific
search result items. The user interface 200 can be provided in
response to the user selecting a search mode (e.g., selecting the
`job` search mode selector 110 in FIG. 1). The user interface 200
includes aspects of the previous user interface (e.g., interface
100), including a textbox 185 and submit button 170 for providing a
new search query to the search engine. In addition, the user
interface 200 also includes mode-specific search result items 295
and mode-specific user interface elements (e.g., 220 and 230).
[0030] Each search result item 295 refers to mode-specific records
that are in a collection of records associated to the selected
search mode. All the records in a particular collection of records
mode have a common attribute structure that includes one or more
data elements or attributes. Generally, each attribute contains
information that pertains to the particular search mode (e.g.,
subject matter). For example, one attribute of a job record can be
the job's salary.
[0031] In some implementations, records can be associated with more
than one search mode. For example, a record can be associated with
a hierarchy of search modes (e.g., a record that is associated with
both the job mode and the nursing-job mode). A record that is
associated with more than one mode includes the attributes of all
the modes it is associated with. For example, if `specialty` is an
attribute of nursing-job records, then a nursing-job record has
both the `salary` and `specialty` attributes.
[0032] Records can be stored as structured information in a file or
in memory, or alternatively in one or more tables in a database
management system (DBMS). One or more databases or database systems
can contain any or all of the records associated with any or all
search modes.
[0033] Records can be derived from one or more other records (e.g.,
by composing records from multiple tables). In some
implementations, records are derived by processing (e.g., parsing)
unstructured documents (e.g., web pages, XML data, media files).
The derivation of records can occur at regular intervals (e.g.,
batch) or as required (e.g., on the fly, just-in-time).
[0034] In some implementations, a record can be associated with
documents in the corpus. The association can be pre-determined, or
can be automatically determined based on the source of the
information contained in the record. For example, if a record is
derived from processing a document in the corpus, the record can be
associated to that particular document. If a record is associated
with a document in the corpus, then the record can be ranked based
on the rank of the associated document. For example, if a record is
derived from a highly ranked document, then the record itself will
be highly ranked as well.
[0035] The user interface 200 includes search result items 295 that
present information from some of the mode-specific attributes of
each record referred to by each search result item. All or part of
any of the attributes associated with a record can be presented.
For example, each job result includes a job offer title 240, an
offering agency 255, an excerpt of a description of the position
245 and a date when the job was posted 250.
[0036] Mode-specific user interface elements (e.g., 220 and 230)
allow users to affect how the mode-specific search result items are
presented. For example, users can choose to have search result
items presented in a table view or on a map by selecting `Table
view` 220A or `Map view` 2208, respectively. A table view, for
example, displays results in table form, where each row refers to a
result and each column refers to one attribute of each search
result item. In a map view, search result items are presented as
points on a map (e.g., according to the job location attribute of
each search result item).
[0037] Mode-specific user interface elements can also allow the
user to have the mode-specific search result items presented in a
particular sorted order. Generally, the user interface can allow
the user to sort result items according to their mode-specific
attributes. For example, job search result items can be sorted
according to when each job was posted 230A or the geographical
distance 230B of each job's location from a pre-defined point.
[0038] Selecting a search mode essentially selects a mode of
operation that can affect subsequent user interaction until another
search mode is selected or the selected search mode is deselected
or turned off. The mode of operation is characterized by the search
result items that, in addition to satisfying the specified search
query, refer to records associated with the selected search mode.
When a search mode is selected, the mode-specific search result
items which refer to the selected search mode can be said to
satisfy the search mode. In addition to any mode-specific user
interface elements, while a search mode is selected, search mode
selectors 210 are presented to allow users to select a new search
mode or de-select the selected search mode (e.g., selector 210). In
response to de-selecting the selected search mode,
non-mode-specific search result items are presented (as in FIG. 1)
without mode specific user interface elements, and, if no search
modes are identified from the search query, without search mode
selectors.
[0039] FIG. 3 is a flow diagram of a method 300 for generating
mode-specific search result items, which is performed generally by
a search engine. Mode-specific search results are generated in
response to selection of one or more identified search modes. A
search query is received from the user (step 310). The search query
characterizes information that the user is seeking. The search
query is generally specified by a user and received from the
client, but the search query can be determined automatically based
on other information (e.g., the content of a document currently
being displayed, the geographical coordinates from a global
positioning system or identifications made by a voice and image
recognition systems). Search result items are generated (step 320)
that each refer to either a document in the corpus or a record.
Each search result item can include one or more of a title (e.g.,
name), location (e.g., location of the document or record), a
summary of information contained in the document or record.
[0040] Search result items that refer to records can be associated
to any search mode. For example, assuming that restaurants, recipes
and jobs are each defined search modes, then a search for "cajun"
can produce search result items, each of which refer to documents
from the corpus or to mode-specific records that each pertain to
any one of the restaurant, recipe or job search modes.
[0041] Search result items pertaining to a particular search mode
can include the mode-specific attributes from the record each
search result item refers to. For example, recipe search result
items (i.e., the recipe records that each search result item refers
to) can include a "diet-type" attribute which can be one of
"vegan", "vegetarian", "low-fat"; and another attribute called
"calories" that can contain the number of calories that a serving
of the recipe contains.
[0042] One or more search modes are identified (step 330). The
search mode is identified based on the search query, the search
result items or both.
[0043] Search modes can be identified based on the search query. In
some implementations, search modes can be identified according to
pre-defined keywords associated with each search mode. For example,
if the words "recipe" and "cooking" are keywords associated with a
recipe search mode, then the recipe search mode will be identified
for any query that includes either of these words. Search modes can
also be identified using pre-defined heuristic rules. For example,
a heuristic rule can require that a particular combination of
keywords found among either the query or the search result set
identifies a particular search mode. Statistical probabilities can
be used to identify search modes (e.g., Bayesian models, based on
the prevalence of words among mode-specific records). In some
implementations, the user's history of search queries and search
mode selections can also be used to identify search modes.
[0044] Search modes can also be identified based the search result
items generated in response to the search query. In some
implementations, search modes can be identified from a document
referred by a search result item if the document contains highly
relevant keywords corresponding to the particular search mode. For
example, if a document contains `recipe` in its title, individual
food ingredients and an accompanying text block (e.g.,
instructions) the document can be associated to the recipe search
mode. Search modes can be identified from the search mode
associated to a record referred to by one or more of the search
result items. For example, if among search result items there are
search result items that refer to records associated with the job
and recipe modes, then the job and recipe modes are both
identified. In some implementations, the particular search modes
identified from the search result items depend on each search
result item's rank (e.g., relevance, authority, popularity) as
determined by the search engine, for example, and the prevalence of
search modes among the result items. Heuristic rules, such as a
threshold, can be applied to search mode identification. For
example, if 20% of result items for a particular query are
associated with recipes, 18% to restaurants and 5% to jobs, then
the recipes and restaurants search modes can be
identified--assuming a minimum qualifying threshold of 15%.
[0045] Search modes can also be identified based on both the search
query and the search result items generated in response to the
search query. The search modes identified from the search query and
search result items alone can be combined. For example, consider
when the search query "cajun" is associated with two search modes:
recipes and restaurants; and when two result items pertain to the
restaurants and five other result items to recipes. In this
example, both search modes, restaurant and recipe, can be
identified because both search modes are applicable. Alternatively,
the recipe search mode is identified because the recipe search mode
applies to more search result items. In another implementation, the
restaurant search mode is identified if the restaurant search
result items are more relevant than other search result items.
[0046] A user interface that includes the search result items and
is configured to allow for the selection of the one or more
identified search modes is provided to the user (step 340). The
user interface can be configured to allow selection of search modes
by including a search mode selector that allows the selection of a
search mode. The search mode selector's exact appearance depends on
the user's environment (e.g., client software, computing device).
For example, in a web browser, each search mode selector can appear
as a hypertext link; user selection of a particular link selects
the search mode which is associated with the selected link. Search
mode selectors are included with the search results and presented.
Alternatively, search mode selectors decorate or augment individual
search result items when a search mode pertains to a particular
search result item but not to the query in general. When a search
result item is decorated by a search mode selector and presented,
the search mode selector is presented with (or in close proximity
to) the search result item (e.g., as a hypertext link, a button).
Search mode selectors can be selected by users interacting with the
user interface presented by the client. User selection of a search
mode selector causes the client to notify the search engine of the
selected search mode.
[0047] In some implementations, the user interface is also
configured to allow the user to provide a new search query to the
search engine. Receiving a new search query causes the search
engine to generate new search result items and identify new search
modes (return to step 310).
[0048] A particular search mode can be selected by the user (step
350).
[0049] In response to receiving search mode selection, the search
engine generates new results based on the original search query
(step 360). The new results contain search result items that
satisfy the search query and refer to mode-specific records that
pertain to the selected search mode. For example, if the `job`
search mode is selected by the user, then the new search result
items refer only to job records.
[0050] FIG. 4 is a flow diagram of a method 400 for presenting
mode-specific user interface elements. The method 400 begins after
a search mode has been selected and a mode-specific search result
generated. The selected search mode is used to identify
mode-specific user interface elements based on associations between
the search mode and the mode-specific user interface elements (step
470). Mode-specific user interface elements are identified based on
predefined associations between the search modes and mode-specific
user interface elements. However, a particular mode-specific user
interface element can be associated with multiple search modes. For
example, a mode-specific user interface element (e.g. element 640)
that allows a user to view only vegetarian result items according
to the "diet-type" attribute, is relevant to both the restaurant
and recipe search modes, assuming that the "diet-type" attribute
pertains to both modes. In another example, a mode-specific user
interface element that allows users to sort results based on the
distance (e.g., element 230B) to a known location can be relevant
to job and restaurant search modes, but not to the recipe search
mode.
[0051] The mode-specific user interface elements allow users to
manipulate the presentation of mode-specific search results. In
some implementations, the presentation is manipulated by receiving
a revised user interface (e.g., encoded as HTML) provided by the
search engine. Alternatively, the presentation can be manipulated
on the user's client (e.g., according to JavaScript instructions).
In some implementations, the presentations can be manipulated by a
conjunction of the client and the server (e.g., an implemented in
AJAX). Mode-specific user interface elements allow the presentation
of search result items to be altered, for example, by displaying
result items in a table (e.g., element 220A), or a list (e.g.,
element 220B). A list or table presents information in a structured
manner that allows users to compare results relevant to the search
mode (e.g., the job-mode results include salary and location).
Another mode-specific user interface element can allow users to
view search result items on a map, which affords precise comparison
of the geographical location attribute of the search result items
(e.g., restaurants in San Francisco). Some mode-specific user
interface elements are allow users reorder or sort search result
items according to criteria that are relevant to the search mode
(e.g., salary and industry-type for the job search mode, or
square-footage and price for the real-estate search mode). Other
mode-specific user interface elements are operable to affect how
search result items are grouped together according to mode-specific
attributes of the search result items (e.g., by location, by
salary-range or by diet-type).
[0052] Mode-specific user interface elements can also allow users
to provide mode-specific criteria that are relevant to the selected
search mode. Users can operate the mode-specific user interface
elements to apply one or more mode-specific criteria to the search
result items without directly manipulating the search query. Mode
specific criteria generally apply a constraint to one or more
attributes of the search result items. For example, a recipe search
mode user interface element (e.g., element 640) allows users to
select `low-fat` as the diet-type, where diet-type is an attribute
of recipe result items. Adding a mode-specific criteria affects the
presentation of search result items by removing or hiding search
result items that have attributes that do not satisfy the
constraint. For example, in response to applying the `low-fat`
diet-type criterion, result items that do not have `low-fat`
diet-type would be hidden or removed from the presentation.
Mode-specific user interface elements can allow users to specify a
range of result items to include or alternatively, exclude. For
example, a real-estate search mode user interface element allows
users to specify a price range that constrains the results to show
only those search result items that satisfy the specified price
range.
[0053] Still other mode-specific user interface elements allow a
user to select an alternative search mode (e.g., 610). In response
to selection of an alternative search mode, new mode-specific
search results are generated and provided for presentation to the
user with mode-specific user interface elements that are associated
to the alternative search mode. For example, although the recipe
search mode is first selected in response to the "cajun" search
query, subsequent input can select the restaurant search mode. In
response, only restaurant mode search result items that satisfy the
search query will be presented.
[0054] Both the mode-specific result items and the identified
mode-specific user interface elements are presented (step 480). In
some implementations, mode-specific user interface elements are
presented to users on a graphical display device as user interface
widgets such as buttons, links (e.g., 620) or hotspots. For
example, a mode-specific user interface element can be displayed as
a drop down box (e.g., 640) that contains several options to select
from (e.g., to constrain the search result items or to select a
search mode). Other user interface mechanisms are appropriate for
other user interfaces (e.g., mobile devices, voice response
systems, and computer vision systems).
[0055] In some implementations, the user interface that includes
mode-specific user interface elements also allows the user to
provide a new search query to the search engine. In response to
receiving the new search query new search result items can be
generated that include both documents and records that do not
pertain to any particular search mode, and new search modes can be
identified (step 310 in FIG. 3). Alternatively, receiving a new
search query while a search mode is selected can cause new search
result items to be generated which satisfy the new search query and
refer to the selected search mode (step 360 in FIG. 3).
[0056] User input directed to a particular mode-specific user
interface element is received (step 485). For example, a user can
select `Map View` 220 (FIG. 2), by clicking on the link with a
mouse or by using another input device. Based on the received
input, new search result items are generated based on the effect of
the particular mode-specific user interface element (step 490).
Alternatively, if the user chooses to sort the search result items
according to an alternative mode-specific attribute (e.g., `Post
Date` 230), the result items that are ordered by the alternative
mode-specific attribute are provided. If the user selects a user
interface element that constrains the search result then new result
items are generated that satisfy the selected constraint. For
example, in reference to FIG. 6, restricting results to `vegan`
recipes 640, causes new a search result to be generated that
includes only recipe search result items whose diet type is
`vegan`. The new search result items reflect the initial search
query and the particular effect imparted by the user interface
element (e.g., viewing, sorting, mode-specific constraints,
grouping). The new results are provided to the client for
presentation (step 495).
[0057] FIG. 5 is a flow diagram of a method 500 for formatting
mode-specific search result items. The method 500 begins after a
search mode has been selected and a mode-specific search result
generated. A mode-specific presentation template can be identified
(step 570) based on the selected search mode. A presentation
template specifies how mode-specific result items will be
formatted. Formatting of the search result generally affects how
the result items will be presented to the user. Presentation
templates can concern every aspect of presentation including how
result items are ordered and summarized, the layout of results
(e.g., list, table, on a map), and whether a particular result item
is presented at all. For example, the real-estate presentation
template can specify that each result item (e.g., houses for sale)
be shown as an icon on a geographical map where each icon on the
map indicates the location of each of the presented result items.
In another example, the real-estate presentation template can
specify that each result item be presented in a table where each
search result item is a row and each of the location, price,
square-footage and a picture attributes are presented in separate
columns in the respective row. The search results are formatted
according to the identified presentation template (step 580) and
provided for display (step 590).
[0058] FIG. 6 illustrates an example user interface 600 presenting
formatted mode-specific search results 690. In this example,
`recipe` mode has been selected 615. The recipe-mode search results
690 are presented according to the recipe-mode presentation
template. The formatted search result items each include a picture
of the recipe 650 and attributes of recipe search result items
containing recipe-specific information including: the recipe title
652, a summary of ingredients 654 and an excerpt of the recipe
directions 656. In this example, mode-specific user interface
elements are also provided. The associated recipe-mode user
interface elements allow the user to select an alternative search
mode 610, alter the presentation of search result items 620,
reorder the search result items 630 and filter the search result
items 640 based on mode-specific criteria. Note that each user
interface element pertains specifically to attributes related to
recipe search result items (e.g., ingredients, directions, picture
and diet-type).
[0059] FIG. 7 is a block diagram of a client and a search engine. A
search engine 740 is connected to one or more networks 710 such as
the Internet and can communicate with various clients 720 that are
also connected to the network 710 (e.g., using a communication
protocol such as HTTP). The communication flow for the client 280
and search engine 740 are bidirectional so that the search engine
740 receives information (e.g., queries or other input) from the
client and can send information (e.g., results) to the client. In
some implementations, the search engine 740 is Google, available
from Google Inc.
[0060] The search engine 740 includes various components such as a
query processor 742, search mode identifier 744, search result
analyzer 746 and user interface configuration 748 module. Queries
directed to the search engine are received by the query processor
742. The query processor 742 identifies one or more search result
items that satisfy the search query. The query processor 742 can
provide both the search query and the search result items to the
search mode identifier 744. The search mode identifier 744
identifies the search modes based on information received from the
query processor 742. The search result analyzer 746 can also remove
and re-order search result items in response the operation of
mode-specific user interface elements (e.g., sorting). The user
interface configuration 748 module configures the user interface
provided to users to allow selection of the search modes identified
by the search mode identifier 744 and provides mode-specific user
interface elements when a search mode is selected. Search result
items are formatted by the user interface configuration 748 module
according to the selected search mode. The search engine 740 can
use the web-crawler 750 to collect documents from the network
710.
[0061] The search engine 740 can operate on resources including
collections of records 760, presentation templates 770 and a corpus
of documents 780. Each time a search query is received, the corpus
of documents 780 is searched to retrieve search result items. The
corpus can be indexed to make searching more efficient. In some
implementations, the web crawler 750 populates the corpus 780 with
the content of documents it has collected. The search engine 740
can also search the one or more collections of records 760 for
mode-specific search result items. Each collection 760 contains
records pertaining a particular search modes 763. Each
mode-specific record refers to one or more mode-specific attributes
766. Each collection 760 can be located on physically separate
devices, or can be contained on a single machine. In some
implementations, each collection 760 is generated on the fly by
processing documents in the corpus 780. The search engine 740 can
also refer to particular presentation templates 770 that are
predefined for each mode. In some implementations, the user
interface configuration 748 module configures mode-specific search
result items in the user interface according to the presentation
templates 770.
[0062] The client 720 includes message receiver 728. The message
receiver 728 facilitates communication with the network, and in
particular, can receive encoded user interface elements and search
result items (e.g. encoded in an HTML document) from the search
engine 740 through the network 710. Messages are processed by the
client to produce a model 724 of the user interface. The model 724
(e.g., the syntax tree of an HTML document) describes the content
received by the message receiver 728. The model 724 is, in whole or
in part, presented in a user interface 722 included with the client
720 (e.g., a display surface on a device, a drawing surface in a
web browser application). User input is received from a user input
processor 730 that can receive input from an input device (e.g.,
keyboard, touch screen, mouse, track pad, camera, microphone). The
user input processor 730 allows for user interaction with the user
interface 722. For example, input from the input processor 730 can
be used to specify a search query. The search query can be encoded
and provided to the search engine 740 through the network 710 by
the message sender 726.
[0063] The system illustrated in FIG. 7 can contain fewer or more
components than illustrated. An implementation of the search engine
740 component can be distributed, such that components of the
system are separate from each other. Each component itself can be
distributed across multiple physical systems. In some
implementations, the client and the server are on the same physical
device.
[0064] Embodiments of the invention and all of the functional
operations described in this specification can be implemented in
digital electronic circuitry, or in computer software, firmware, or
hardware, including the structures disclosed in this specification
and their structural equivalents, or in combinations of one or more
of them. Embodiments of the invention can be implemented as one or
more computer program products, i.e., one or more modules of
computer program instructions encoded on a computer-readable medium
for execution by, or to control the operation of, data processing
apparatus. The computer-readable medium can be a machine-readable
storage device, a machine-readable storage substrate, a memory
device, a composition of matter effecting a machine-readable
propagated signal, or a combination of one or more of them. The
term "data processing apparatus" encompasses all apparatus,
devices, and machines for processing data, including by way of
example a programmable processor, a computer, or multiple
processors or computers. The apparatus can include, in addition to
hardware, code that creates an execution environment for the
computer program in question, e.g., code that constitutes processor
firmware, a protocol stack, a database management system, an
operating system, or a combination of one or more of them. A
propagated signal is an artificially generated signal, e.g., a
machine-generated electrical, optical, or electromagnetic signal,
that is generated to encode information for transmission to
suitable receiver apparatus.
[0065] A computer program (also known as a program, software,
software application, script, or code) can be written in any form
of programming language, including compiled or interpreted
languages, and it can be deployed in any form, including as a
stand-alone program or as a module, component, subroutine, or other
unit suitable for use in a computing environment. A computer
program does not necessarily correspond to a file in a file system.
A program can be stored in a portion of a file that holds other
programs or data (e.g., one or more scripts stored in a markup
language document), in a single file dedicated to the program in
question, or in multiple coordinated files (e.g., files that store
one or more modules, sub-programs, or portions of code). A computer
program can be deployed to be executed on one computer or on
multiple computers that are located at one site or distributed
across multiple sites and interconnected by a communication
network.
[0066] The processes and logic flows described in this
specification can be performed by one or more programmable
processors executing one or more computer programs to perform
functions by operating on input data and generating output. The
processes and logic flows can also be performed by, and apparatus
can also be implemented as, special purpose logic circuitry, e.g.,
an FPGA (field programmable gate array) or an ASIC
(application-specific integrated circuit).
[0067] Processors suitable for the execution of a computer program
include, by way of example, both general and special purpose
microprocessors, and any one or more processors of any kind of
digital computer. Generally, a processor will receive instructions
and data from a read-only memory or a random access memory or both.
The essential elements of a computer are a processor for performing
instructions and one or more memory devices for storing
instructions and data. Generally, a computer will also include, or
be operatively coupled to receive data from or transfer data to, or
both, one or more mass storage devices for storing data, e.g.,
magnetic, magneto-optical disks, or optical disks. However, a
computer need not have such devices. Moreover, a computer can be
embedded in another device, e.g., a mobile telephone, a personal
digital assistant (PDA), a mobile audio player, a Global
Positioning System (GPS) receiver, to name just a few.
Computer-readable media suitable for storing computer program
instructions and data include all forms of non-volatile memory,
media and memory devices, including by way of example semiconductor
memory devices, e.g., EPROM, EEPROM, and flash memory devices;
magnetic disks, e.g., internal hard disks or removable disks;
magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor
and the memory can be supplemented by, or incorporated in, special
purpose logic circuitry.
[0068] To provide for interaction with a user, embodiments of the
invention can be implemented on a computer having a display device,
e.g., a CRT (cathode ray tube) or LCD (liquid crystal display)
monitor, for displaying information to the user and a keyboard and
a pointing device, e.g., a mouse or a trackball, by which the user
can provide input to the computer. Other kinds of devices can be
used to provide for interaction with a user as well; for example,
feedback provided to the user can be any form of sensory feedback,
e.g., visual feedback, auditory feedback, or tactile feedback; and
input from the user can be received in any form, including
acoustic, speech, or tactile input.
[0069] Embodiments of the invention can be implemented in a
computing system that includes a back-end component, e.g., as a
data server, or that includes a middleware component, e.g., an
application server, or that includes a front-end component, e.g., a
client computer having a graphical user interface or a Web browser
through which a user can interact with an implementation of the
invention, or any combination of one or more such back-end,
middleware, or front-end components. The components of the system
can be interconnected by any form or medium of digital data
communication, e.g., a communication network. Examples of
communication networks include a local area network ("LAN") and a
wide area network ("WAN"), e.g., the Internet.
[0070] The computing system can include clients and servers. A
client and server are generally remote from each other and
typically interact through a communication network. The
relationship of client and server arises by virtue of computer
programs running on the respective computers and having a
client-server relationship to each other.
[0071] While this specification contains many specifics, these
should not be construed as limitations on the scope of the
invention or of what may be claimed, but rather as descriptions of
features specific to particular embodiments of the invention.
Certain features that are described in this specification in the
context of separate embodiments can also be implemented in
combination in a single embodiment. Conversely, various features
that are described in the context of a single embodiment can also
be implemented in multiple embodiments separately or in any
suitable subcombination. Moreover, although features may be
described above as acting in certain combinations and even
initially claimed as such, one or more features from a claimed
combination can in some cases be excised from the combination, and
the claimed combination may be directed to a subcombination or
variation of a subcombination.
[0072] Similarly, while operations are depicted in the drawings in
a particular order, this should not be understood as requiring that
such operations be performed in the particular order shown or in
sequential order, or that all illustrated operations be performed,
to achieve desirable results. In certain circumstances,
multitasking and parallel processing may be advantageous. Moreover,
the separation of various system components in the embodiments
described above should not be understood as requiring such
separation in all embodiments, and it should be understood that the
described program components and systems can generally be
integrated together in a single software product or packaged into
multiple software products.
[0073] Thus, particular embodiments of the invention have been
described. Other embodiments are within the scope of the following
claims. For example, the actions recited in the claims can be
performed in a different order and still achieve desirable
results.
* * * * *