U.S. patent application number 13/553684 was filed with the patent office on 2013-01-24 for method and apparatus for allowing users to augment searches.
This patent application is currently assigned to Ness Computing, Inc.. The applicant listed for this patent is Sourav Chatterji, Corey Layne Reese, Jeremy Ryan Schiff, Paul Kenneth Twohey. Invention is credited to Sourav Chatterji, Corey Layne Reese, Jeremy Ryan Schiff, Paul Kenneth Twohey.
Application Number | 20130024449 13/553684 |
Document ID | / |
Family ID | 47556530 |
Filed Date | 2013-01-24 |
United States Patent
Application |
20130024449 |
Kind Code |
A1 |
Chatterji; Sourav ; et
al. |
January 24, 2013 |
METHOD AND APPARATUS FOR ALLOWING USERS TO AUGMENT SEARCHES
Abstract
Embodiment of the invention relate to a computer-implemented
method for providing augmented searches for entities to a user, the
method comprising obtaining, at a server computer operated by an
entity search system, user data related to a user, and obtaining
entity data related to a plurality of entities. Then, the entity
search system receives a query for a search for relevant entities
from the user. The method then further comprises searching for a
set of relevant entities based on the query, entity data, and user
data, determining a set of criteria for an initial order of
relevance, and determining an order of relevance of the set of
relevant entities based on the set of criteria. The set of relevant
entities or order of relevance may be augmented by obtaining
feedback data from the user, thereby providing an augmented search
for relevant entities to the user.
Inventors: |
Chatterji; Sourav; (Fremont,
CA) ; Schiff; Jeremy Ryan; (Portola Valley, CA)
; Reese; Corey Layne; (Portola Valley, CA) ;
Twohey; Paul Kenneth; (Palo Alto, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Chatterji; Sourav
Schiff; Jeremy Ryan
Reese; Corey Layne
Twohey; Paul Kenneth |
Fremont
Portola Valley
Portola Valley
Palo Alto |
CA
CA
CA
CA |
US
US
US
US |
|
|
Assignee: |
Ness Computing, Inc.
Los Altos
CA
|
Family ID: |
47556530 |
Appl. No.: |
13/553684 |
Filed: |
July 19, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61510003 |
Jul 20, 2011 |
|
|
|
61509999 |
Jul 20, 2011 |
|
|
|
61509995 |
Jul 20, 2011 |
|
|
|
61510004 |
Jul 20, 2011 |
|
|
|
Current U.S.
Class: |
707/728 ;
707/E17.014 |
Current CPC
Class: |
G06F 16/33 20190101;
G06F 16/35 20190101; G06F 16/951 20190101; G06F 16/335 20190101;
G06F 16/3331 20190101 |
Class at
Publication: |
707/728 ;
707/E17.014 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A computer-implemented method for providing searches for
entities to a primary user, the method comprising: Obtaining user
data related to a plurality of users relevant to the primary user;
storing the user data at the server computer; obtaining entity data
from a plurality of data sources, wherein the entity data is
associated with an entity in a plurality of entities storing the
entity data, wherein the entity data associated with the plurality
of entities is stored in an entity database; receiving a query for
a search for relevant entities; searching for a set of relevant
entities relevant to the primary user from the plurality of
entities based on the query, entity data, and user data;
determining a set of criteria for an initial order of relevance,
wherein the initial order of relevance is an order in which the set
of relevant entities are to be communicated to the primary user;
determining the initial order of relevance of the set of relevant
entities based on the set of criteria; communicating to the primary
user, on a user device, the set of relevant entities in the initial
order of relevance to the primary user; obtaining, via the user
device, feedback data from the user related to the search for the
set of relevant entities; augmenting the search for the set of
relevant entities, thereby updating the set of relevant entities,
based on the feedback data; and communicating, via the user device,
the updated set of relevant entities to the primary user, thereby
providing an augmented search for relevant entities to the primary
user.
2. The computer-implemented method of claim 1, further comprising:
obtaining, via the user device, feedback data from the user related
to the initial order of relevance for the set of relevant entities;
augmenting the initial order of relevance for the set of relevant
entities, thereby creating an adjusted order of relevance for the
set of relevant entities based on the feedback data; and
communicating, via the user device, the set of relevant entities to
the primary user based on the adjusted order of relevance.
3. The computer-implemented method of claim 1, further comprising:
assigning a corresponding weight of each criteria in the set of
criteria; determining the initial order of relevance of the set of
relevant entities based on the weight of each criteria in the set
of criteria; obtaining, via the user device, feedback data from the
user related to the corresponding weight of each criteria in the
set of criteria; augmenting the initial order of relevance for the
set of relevant entities, thereby creating an adjusted order of
relevance for the set of relevant entities, based on the feedback
data related to the corresponding weight of each criteria in the
set of criteria; and communicating, via the user device, the set of
relevant entities to the primary user based on the adjusted order
of relevance.
4. The computer-implemented method of claim 1, wherein the set of
criteria includes one or more filters applied to entity data
related to the plurality of entities.
5. The computer-implemented method of claim 4, wherein the one or
more filters are applied either alone or in combination based on a
corresponding weight assigned to each filter.
6. The computer-implemented method of claim 3, wherein one or more
criteria in the set of criteria related to the query is implicitly
determined, and is stored in a database.
7. The computer-implemented method of claim 3, wherein one or more
criteria in the set of criteria related to the query is determined
in real-time, by the server computer, based on the query.
8. The computer-implemented method of claim 7, wherein one or more
criteria in the set of criteria related to the query is based on
feedback data from the primary user.
9. The computer-implemented method of claim 3, wherein the one or
more criteria includes geographic location, distance radius around
the geographic location, or current location data.
10. The computer-implemented method of claim 9, wherein the current
location data is obtained via the user device.
11. The computer-implemented method of claim 3, wherein the one or
more criteria includes one or more attributes of entity data
related to the plurality of entities, wherein the attribute
includes cuisine, price, type, or environment.
12. The computer-implemented method of claim 1, wherein
communicating the set of relevant entities may be numerical,
textual, pictorial, auditory, tactile, either alone or in
combination.
13. The computer-implemented method of claim 1, wherein the query
meets a search relaxation criterion, the method further comprises:
ignoring one or more criteria in the set of criteria, thereby
creating a reduced set of criteria; determining a set of relevant
entities based on the reduced set of criteria and the corresponding
weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to
the primary user based on the reduced set of criteria.
14. The computer-implemented method of claim 1, further comprising:
determining an error in the query; correcting the error in the
query, thereby creating a corrected set of criteria; determining a
set of relevant entities based on the corrected set of criteria and
the corresponding weight of each criteria in the reduced set of
criteria; and communicating, via the user device, the set of
relevant entities to the primary user based on the corrected set of
criteria.
15. The computer-implemented method of claim 3, further comprising:
broadening one or more criteria in the set of criteria, thereby
creating a broadened set of criteria; determining a set of relevant
entities based on the broadened set of criteria and the
corresponding weight of each criteria in the reduced set of
criteria; and communicating, via the user device, the set of
relevant entities to the primary user based on the broadened set of
criteria.
16. The computer-implemented method of claim 1, wherein the entity
provides goods or services to the target user.
17. The computer-implemented method of claim 13, wherein ignoring
one or more criteria to create a reduce set of criteria is based on
the corresponding weight of each criteria.
18. The computer-implemented method of claim 13, wherein ignoring
one or more criteria to create the reduced set of criteria is based
on a previous user response to each criteria.
19. A computer-implemented method for providing searches for
entities to a primary user, the method comprising: receiving a
query for a search for relevant entities; searching, at a server
computer, for a set of relevant entities relevant to the primary
user from the plurality of entities based on the query, entity
data, and user data; receiving location data from the primary user;
automatically determining a relevant distance from the location
data of the primary user; determining a set of criteria for an
initial order of relevance, wherein the initial order of relevance
is an order in which the set of relevant entities are to be
communicated to the primary user; determining the initial order of
relevance of the set of relevant entities based on the set of
criteria and the relevant distance; communicating to the primary
user, on a user device, the set of relevant entities in the initial
order of relevance to the primary user; obtaining, via the user
device, feedback data from the user related to the search for the
set of relevant entities; augmenting the search for the set of
relevant entities, thereby updating the set of relevant entities,
based on the feedback data; and communicating, via the user device,
the updated set of relevant entities to the primary user, thereby
providing an augmented search for relevant entities to the primary
user.
20. A server computer comprising a processor and a non-transitory
computer readable medium, the non-transitory computer readable
medium comprising code executable by the processor to implement a
method for providing searches for entities to a primary user, the
method comprising: obtaining, at the server computer, user data
related to a plurality of users relevant to the primary user;
storing the user data at the server computer; obtaining, at the
server computer, entity data from a plurality of data sources,
wherein the entity data is associated with an entity in a plurality
of entities storing the entity data, wherein the entity data
associated with the plurality of entities is stored in an entity
database; receiving a query for a search for relevant entities;
searching, at the server computer, for a set of relevant entities
relevant to the primary user from the plurality of entities based
on the query, entity data, and user data; determining a set of
criteria for an initial order of relevance, wherein the initial
order of relevance is an order in which the set of relevant
entities are to be communicated to the primary user; determining
the initial order of relevance of the set of relevant entities
based on the set of criteria; communicating to the primary user, on
a user device, the set of relevant entities in the initial order of
relevance to the primary user; obtaining, via the user device,
feedback data from the user related to the search for the set of
relevant entities; augmenting the search for the set of relevant
entities, thereby updating the set of relevant entities, based on
the feedback data; and communicating, via the user device, the
updated set of relevant entities to the primary user, thereby
providing an augmented search for relevant entities to the primary
user.
21. The computer-implemented method of claim 20, further
comprising: obtaining, via the user device, feedback data from the
user related to the initial order of relevance for the set of
relevant entities; augmenting the initial order of relevance for
the set of relevant entities, thereby creating an adjusted order of
relevance for the set of relevant entities based on the feedback
data; and communicating, via the user device, the set of relevant
entities to the primary user based on the adjusted order of
relevance.
22. The computer-implemented method of claim 20, further
comprising: assigning a corresponding weight of each criteria in
the set of criteria; determining the initial order of relevance of
the set of relevant entities based on the weight of each criteria
in the set of criteria; obtaining, via the user device, feedback
data from the user related to the corresponding weight of each
criteria in the set of criteria; augmenting the initial order of
relevance for the set of relevant entities, thereby creating an
adjusted order of relevance for the set of relevant entities, based
on the feedback data related to the corresponding weight of each
criteria in the set of criteria; and communicating, via the user
device, the set of relevant entities to the primary user based on
the adjusted order of relevance.
23. The computer-implemented method of claim 20, wherein the set of
criteria includes one or more filters applied to entity data
related to the plurality of entities.
24. The computer-implemented method of claim 23, wherein the one or
more filters are applied either alone or in combination based on a
corresponding weight assigned to each filter.
25. The computer-implemented method of claim 22, wherein one or
more criteria in the set of criteria related to the query is
implicitly determined, and is stored in a database.
26. The computer-implemented method of claim 22, wherein one or
more criteria in the set of criteria related to the query is
determined in real-time, by the server computer, based on the
query.
27. The computer-implemented method of claim 26, wherein one or
more criteria in the set of criteria related to the query is based
on feedback data from the primary user.
28. The computer-implemented method of claim 22, wherein the one or
more criteria includes geographic location, distance radius around
the geographic location, or current location data.
29. The computer-implemented method of claim 28, wherein the
current location data is obtained via the user device.
30. The computer-implemented method of claim 22, wherein the one or
more criteria includes one or more attributes of entity data
related to the plurality of entities, wherein the attribute
includes cuisine, price, type, or environment.
31. The computer-implemented method of claim 20, wherein
communicating the set of relevant entities may be numerical,
textual, pictorial, auditory, tactile, either alone or in
combination.
32. The computer-implemented method of claim 20, wherein the query
meets a search relaxation criterion, the method further comprises:
ignoring one or more criteria in the set of criteria, thereby
creating a reduced set of criteria; determining a set of relevant
entities based on the reduced set of criteria and the corresponding
weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to
the primary user based on the reduced set of criteria.
33. The computer-implemented method of claim 20, further
comprising: determining an error in the query; correcting the error
in the query, thereby creating a corrected set of criteria;
determining a set of relevant entities based on the corrected set
of criteria and the corresponding weight of each criteria in the
reduced set of criteria; and communicating, via the user device,
the set of relevant entities to the primary user based on the
corrected set of criteria.
34. The computer-implemented method of claim 22, further
comprising: broadening one or more criteria in the set of criteria,
thereby creating a broadened set of criteria; determining a set of
relevant entities based on the broadened set of criteria and the
corresponding weight of each criteria in the reduced set of
criteria; and communicating, via the user device, the set of
relevant entities to the primary user based on the broadened set of
criteria.
35. The computer-implemented method of claim 20, wherein the entity
provides goods or services to the target user.
36. The computer-implemented method of claim 32, wherein ignoring
one or more criteria to create a reduce set of criteria is based on
the corresponding weight of each criteria.
37. The computer-implemented method of claim 32, wherein ignoring
one or more criteria to create the reduced set of criteria is based
on a previous user response to each criteria.
38. A computer-implemented method for providing searches for
entities to a primary user, the method comprising: receiving a
query for a search for relevant entities; searching, at a server
computer, for a set of relevant entities relevant to the primary
user from the plurality of entities based on the query, entity
data, and user data; receiving location data from the primary user;
automatically determining a relevant distance from the location
data of the primary user; determining a set of criteria for an
initial order of relevance, wherein the initial order of relevance
is an order in which the set of relevant entities are to be
communicated to the primary user; determining the initial order of
relevance of the set of relevant entities based on the set of
criteria and the relevant distance; communicating to the primary
user, on a user device, the set of relevant entities in the initial
order of relevance to the primary user; obtaining, via the user
device, feedback data from the user related to the search for the
set of relevant entities; augmenting the search for the set of
relevant entities, thereby updating the set of relevant entities,
based on the feedback data; and communicating, via the user device,
the updated set of relevant entities to the primary user, thereby
providing an augmented search for relevant entities to the primary
user.
Description
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application claims priority from co-pending U.S.
Provisional Patent Application No. 61/510,003 filed Jul. 20, 2011
entitled "Method and Apparatus for Allowing Users to Augment
Searches".
[0002] The present disclosure may be related to the following
commonly assigned U.S. Provisional Patent Applications: U.S.
Provisional Patent Application No. 61/509,999 filed Jul. 20, 2011
entitled "Method and Apparatus for Explaining Recommendations",
U.S. Provisional Patent Application No. 61/509,995 filed Jul. 20,
2011, entitled "Method and Apparatus for Category Based
Navigation", and U.S. Provisional Patent Application No. 61/510,004
filed Jul. 20, 2011 entitled "Method and Apparatus for Quickly
Evaluating Entities".
[0003] The respective disclosures of these applications/patents are
incorporated herein by reference, as if set forth in full in this
document, for all purposes.
FIELD OF THE INVENTION
[0004] The present invention relates to recommendation systems in
general and in particular to an entity search system that allows
users to search for entities and augment searches, via user
devices, in order to present informative and intuitive entity
evaluations.
BACKGROUND OF THE INVENTION
[0005] The Internet has become a useful source of information
relating to goods and services, but because so many users and
companies are connected to the Internet and providing information
of their own, it is difficult to find relevant information among
all available information. One area of information is in
recommendations. As individuals and groups are now able to connect
to the Internet and retrieve information from websites and via
apps, and do so perhaps while in transit towards a geographic area
of interest, they come to expect the ability to find information
about goods and services being offered.
[0006] One source of information is in the form of websites hosted
by or for providers. As used herein, "website" refers to a
collection of one or more web pages displayable by a browser or
other web client, the one or more web pages being hosted on a web
server (i.e., a computer coupled to the Internet, or other network
over which communication occurs) that responds to requests for
pages hosted thereon. An example might be a restaurant that
generates information about its hours, pictures of its dining room,
contact information, history, menus and other offerings, then puts
that information into a suitable form (such as HTML pages,
dynamically generated pages, etc.), stores those pages in
electronic storage accessible by the web server (hosted by the
restaurant or perhaps a company that specializes in web presence
that provides such services to the restaurant), and then serves
those pages as client devices request pages. The information might
also be presented in another form, such as data supplied to an app
on the client device rather than a generic browser on the client
device.
[0007] However the restaurant gets the information to interested
users, it is still limited to information sourced by that
restaurant. A number of websites have been set up to collect
information from other customers of a vendor of goods or services
and provide reviews and comments and other details to other
customers or potential customers. For example, there might be a
website that focuses on hotels, another on restaurants, another on
home repair, or a general one. However, these websites might just
have too much information to be useful to a user searching for
relevant recommendations.
[0008] Additionally, with the increase of users participating in
social media websites, users are also interested in getting
information about their friends, and the opinions of their friends.
For example, a user may find out that a number of their friends on
a social media website highly recommend a restaurant, which may be
more persuasive to that user than the recommendations of strangers
or high rankings on general rating websites. Thus, social media
websites that provide information to a user regarding the user's
friends may also be another source that the user refers to in
gathering information and searching for relevant recommendations.
However, social media websites allow users to provide a wide
variety of information that may or may not be related to what a
user is searching for (e.g., status updates unrelated to a vendor
of goods or services), and it is also difficult to cross-reference
the recommendations of friends through social media websites with
general websites providing reviews, or websites for particular
businesses, in a user's search for relevant recommendations.
[0009] Thus, there is a massive amount of data to be processed in
order for a user to search for relevant data and find what the user
has sought out to seek. Realistically, a user cannot sort through
all the information collected through various sources, so a more
efficient means of processing the data is needed, such as a data
navigation system.
[0010] An improved recommendations system is desirable.
BRIEF SUMMARY OF THE INVENTION
[0011] Embodiments of the invention relate to improved data
searching methods and systems. Existing methods for providing data
searches and search results to a target user may not provide
options to the target user to modify the search based on customized
attributes, which may be selected by the target user, or
automatically determined based on the target user's query. Thus, if
the target user is unable to properly search and find what they are
looking for in search results, provided, it is difficult for the
target user to feed back to the search system how to narrow down
the search, re-direct the search, organize search results, etc.
Therefore embodiments of the invention provide methods and systems
in which a target user can more efficiently search through data,
such as entity evaluations or personalized recommendations, by
being able to augment the searches as they are being conducted.
[0012] Thus, allowing the target user to augment searches is
advantageous and allows users to modify and organize data such that
receiving relevant search results, and searching through the search
results is executed in the most optimal and efficient manner for
the target user. Additionally, data search systems, and other
systems in use of such data search systems (e.g., entity search
systems, personalized recommendation systems, data navigation
systems, etc.) are improved in this manner by becoming more
intelligent about providing more relevant search results by
allowing users to augment the searches.
[0013] Embodiments of the invention relate to improved search
methods and systems. Existing methods for providing searches to a
target user may not provide options to the target user to modify
the search without initiating a new one. Thus, if the target user
is dissatisfied with the an initial set of search results, it is
difficult for the target user to feed back to a search system what
the target user is really searching for and how to improve search
results in real-time without starting over. Therefore embodiments
of the invention provide methods and systems in which a target user
can improve an existing search by augmenting criteria or queries on
which the search is based. In some embodiments, there may be
multiple simultaneous target users, or there may be one target user
and several associated users for whom searches should also be
relevant. Input data from such multiple users can be presented
synchronously or asynchronously. Some embodiments may provide
methods of operation in which they do not need to know who a user
is; for example, there may be a kiosk mode in which members of the
public can use the system without identifying themselves.
[0014] Thus, providing augmented searches to the target user is
advantageous and allows users to understand the logic and processes
behind generating search results and augment them for optimal
results. Additionally, search systems, and other systems in use of
such search systems (e.g., personalized recommendation systems,
entity navigation systems, etc.) are improved in this manner by
becoming more intelligent about providing search results to its
users.
[0015] In an embodiment of the invention, a computer-implemented
method for providing augmented searches for entities to a primary
user is described. The method, performed by an entity search
system, comprises obtaining, at a server computer, user data
related to a plurality of users relevant to the primary user,
storing the user data, wherein the user data associated with the
plurality of users is stored in a user database. The entity search
system then obtains entity data from a plurality of data sources.
The entity data is associated with an entity in a plurality of
entities, in which the entity provides goods or services to the
target user. The method further comprises storing the entity data,
wherein the entity data associated with the plurality of entities
is stored in an entity database. Then, the entity search system
receives a query for a search for relevant entities from the target
user, wherein the query is related to an entity in the plurality of
entities. The method then further comprises searching for a set of
relevant entities relevant to the primary user from the plurality
of entities based on the query, entity data, and user data,
determining a set of criteria for an initial order of relevance,
wherein the initial order of relevance is an order in which the set
of relevant entities are to be displayed to the primary user, and
determining the initial order of relevance of the set of relevant
entities based on the set of criteria. The entity search system may
then display, on a user device, the set of relevant entities in the
initial order of relevance to the primary user, and obtain, via the
user device, feedback data from the user related to the search for
the set of relevant entities. Further, the entity search system may
augment the search for the set of relevant entities, thereby
updating the set of relevant entities, based on the feedback data;
and display the updated set of relevant entities to the primary
user, thereby providing an augmented search for relevant entities
to the primary user.
[0016] In another embodiment of the invention, the method further
comprises obtaining, via the user device, feedback data from the
user related to the initial order of relevance for the set of
relevant entities, and augmenting the initial order of relevance
for the set of relevant entities, thereby creating an adjusted
order of relevance for the set of relevant entities based on the
feedback data. The entity search system then displays the set of
relevant entities to the primary user based on the adjusted order
of relevance.
[0017] In another embodiment of the invention, the entity search
system may assign a corresponding weight of each criteria in the
set of criteria, and determine the initial order of relevance of
the set of relevant entities based on the weight of each criteria
in the set of criteria. The method further comprises obtaining, via
the user device, feedback data from the user related to the
corresponding weight of each criteria in the set of criteria, and
augmenting the initial order of relevance for the set of relevant
entities, thereby creating an adjusted order of relevance for the
set of relevant entities, based on the feedback data related to the
corresponding weight of each criteria in the set of criteria.
Lastly, the entity search system displays the set of relevant
entities to the primary user based on the adjusted order of
relevance.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018] A further understanding of the nature and advantages of the
present invention may be realized by reference to the following
drawings. In the appended figures, similar components or features
may have the same reference label. Further, various components of
the same type may be distinguished by following the reference label
by a dash and a second label that distinguishes among the similar
components. If only the first reference label is used in the
specification, the description is applicable to any one of the
similar components having the same first reference label
irrespective of the second reference label.
[0019] FIG. 1 is a block diagram of a navigation system according
to aspects of the present invention.
[0020] FIG. 2 is a block diagram of a modularized navigation system
according to aspects of the present invention.
[0021] FIG. 3 illustrates an exemplary user display according to an
embodiment of the invention.
[0022] FIG. 4 illustrates an exemplary user display according to an
embodiment of the invention.
[0023] FIG. 5 illustrates an exemplary user display according to an
embodiment of the invention.
[0024] FIG. 6 illustrates an exemplary user display according to an
embodiment of the invention.
[0025] FIG. 7 illustrates an exemplary user display according to an
embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0026] In various embodiments of the invention, improved methods
and systems of searching for entities are described. In an
embodiment of the invention, an information retrieval or search
system takes an explicit or implicit query, finds entities matching
the query, orders or ranks the entities, and then displays a subset
of the ranked entities.
[0027] An improved entity search system is described herein. In
order to provide a context for describing embodiments of the
present invention, embodiments of the invention will be described
herein with reference to a user device receiving personalized
recommendations which the user may navigate through. Those skilled
in the art will recognize, however, that the present invention is
not limited to such embodiments.
[0028] It should be understood that, given the complexity of the
operations performed, the invention is implemented using computing
elements and may also include communication elements that convey
data between disparate locations.
System Overview
[0029] In FIG. 1, an exemplary entity search system according to an
embodiment of the invention is shown. The entity search system 160
may be coupled to a plurality of users, such as a primary user 100,
secondary user 102, or any number of users 104. There may be
relationships between specific users, for example, the primary user
100 and secondary user 102 may be friends, family members, or
co-workers. The plurality of users may be coupled to the
personalized recommendations system 160 through associated user
devices 110, 112, and 114. User devices may include mobile phones
(e.g., a Blackberry.TM. phone, an iPhone.TM. device, an Android.TM.
device), tablets (e.g., an iPad.TM. tablet), or other electronic
devices.
[0030] The entity search system 160 may obtain inputs from any
number of users 100, 102, and 104, registered with the personalized
recommendations system 160. The users 100, 102, and 104 may be
interconnected and have relationships with one another. The inputs
may be transmitted through the user devices 110, 112, 114 via an
application. The user devices 110, 112, 114 may be connected to the
entity search system 160 through the internet, a wireless network,
a telecommunications network, or any suitable communications
network. For example, the primary user 100 may use the primary user
device 110 to download and install an application issued by the
entity search system 160. Through the application, the primary user
100 may edit personal ratings for entities, such as venues and
restaurants, and other personal preferences, such as cuisine, type
of food, price range, location, distance from current location,
etc. The primary user 100 may also provide feedback items or data
through the application to respond to recommendations, to add or
remove entities, and/or rate an experience at an entity. In other
embodiments of the invention, entities may include merchants and
service providers.
[0031] Additional inputs to the entity search system 160 may come
from external data sources, for example, a social network computer
system such as the Facebook.TM. computer system 140(A), a public
messaging system such as the Twitter.TM. messaging system 140(B),
and/or any number of other data sources 140(N) via the user
accounts 150(A), 150(B), 152(A), 152(B) with the data sources
and/or user devices 110, 112. The external data sources may also
provide raw location data of the users, for example, through a
"check-in" through system 140(A), system 140(B), or other social
networking provider system capable of providing raw location data.
The other data sources 140(N) may themselves have associated user
accounts, which may map directly or indirectly to user accounts of
other systems.
Entity Searching
[0032] Embodiments of the invention relate to search systems of
informational data, for example, information data related to an
entity or a set of entities. However, embodiments of the invention
are not limited to searching for informational data related to
entities, but may be applied to general searching of any type of
informational data.
[0033] An entity search system according to an embodiment of the
invention, as described above, may gather data from a plurality of
data sources related to a plurality of entities. Data associated
with the plurality of entities (e.g., restaurants) may include, for
example, location data, type of cuisine, and price. Other data
associated with an entity may be evaluation data, such as a rating
based on an average rating of a plurality of users, or reviews from
users regarding their experience at or with the entity. All data
associated with the plurality of entities may be stored in an
entity database operated by the entity search system, and is
updated with information gathered from the plurality of external
data sources, and plurality of users, as indicated in FIG. 1.
[0034] It would be cumbersome, if not impossible, for a target user
to individually search through the entity database to find a
particular entity. Thus, the target user may enter queries to the
entity search system, acting as criteria or conditions for entities
that the entity search system may provide evaluation data or other
data related to the entities that match the criteria to the target
user.
[0035] Queries for a set of entities can come in many different
forms. It can be a search for an explicit entity (e.g., Restaurant
A in Berkeley), or a group of entities (e.g., diners). The queries
may be interpreted as a set of implicit filters, and may be
pre-encoded, or involve dynamic work in real-time at the time of
the query. For example, a query for "Thai restaurants" may be
pre-encoded to not include shoe stores, or restaurants categorized
as "Italian". An example of a dynamic filter implemented in
real-time may be a query for "Thai restaurants within 0.3 miles of
my current location", which would involve determining the target
user's current location, and filtering out Thai restaurants that
are within 0.3 miles of the current location, such that neither a
Thai restaurant 1 mile away or an Italian restaurant 0.1 mile away
both would not be included in the search results. Another example
of such filter might be a query for restaurants that lie in a
particular direction, such as the direction a user is traveling or
currently gazing.
[0036] What entities may be searched for depend on the embodiment
of the invention and may be anything that can be represented or
referred to in a computer system. In some embodiments, entities are
providers of goods and services, such as restaurants or nightclubs.
In other embodiments, entities are particular goods or services or
events, such as a particular dish at a restaurant or a one-time or
repeating event such as a concert. In others entities are documents
or sections of documents, such as text pages or musical
compositions, to be presented to a user. In other embodiments, an
entity may be a relationship or potential relationship between two
people. For example, a dating recommendation system may recommend
in favor of or against a potential relationship between one user
and another, or may allow searches for potential relationships
meeting some criteria. In another example, entities may be
individuals.
[0037] Search queries may involve different input modalities either
alone or in combination. For example, a simple box into which users
may type textual queries, a sketch pad in which users draw
something they want to find, opening an application on a mobile
user device which uses GPS or other location sensing technology to
find items related to their location, and/or structural interfaces
which let users select a subset of various attributes of entities,
which may be based on evaluation data associated with the entities.
A search query could involve a user looking in a particular
direction or using an audio or haptic interface.
[0038] A user, users, sets of users, or any combination of users
may use one or more personalized recommendation, evaluation, or
navigation systems that evaluate entities known to a search system.
"Recommendations" according to embodiments of the invention may be
along a single or multiple dimensions, and/or over a discrete or
continuous domain. Recommendations may be presented in a numerical,
textual, pictorial, auditory, or tactile fashion.
Recommendations may be include any of these characteristics, either
alone or in combination. For example, a user may rate a restaurant
on a scale of 1, 2, 3, 4, or 5 stars, with 1 star being the lowest
rating, and 5 stars being the highest rating. In another
realization, a user may instead rate a restaurant on a 1-5 star
scale for taste rating, 1-4 "$" scale for price rating, and add an
optional one word description.
[0039] In some implementations, recommendations might be called
"evaluations" or used in a similar manner. For example, an
evaluation might be done by a team of doctors choosing a picture
that best represents the mood or situation of a clinical patient,
in effect, "recommending" which is the "best" image to use.
[0040] Another example of an evaluation or recommendation may
include citizen journalists recording a five second video to make a
review or recommendation, or an audio summary of a protest or
event. In another example, recommendations may use three
dimensional sensing technologies to have dancers record their
expressions in response to listening to a composition. Another
example may include a user operating an application on a mobile
device, and dragging pictorial representations of dishes into
different groups or piles categorized as "tasty", "yucky", and
"only sometimes". In another example, a recommendation may be
inferred from aspects of a user's behavior such as whether the user
looks in one direction or another, or whether the user walks or
turns in one way or another.
[0041] Evaluations or recommendations of entities may include
"evaluation data", that may be, according to embodiments of the
invention, inputs into a recommendation service provided by a
personalized recommendation system described herein. For example,
evaluation data may include ratings on a discrete star scale for
the quality of a restaurant for a restaurant discovery
website/product or answers to personality questions for a match
making website/service. Evaluation data may be associated with one
entity or a set of entities. For example, a user may rate Jane's
Sushi 90/100 and may rate sushi restaurants in general 82/100.
[0042] Evaluation data and other data in evaluations may be used,
according to embodiments of the invention, in an improved search
involving filtering by evaluations. For the purpose of applying the
filter, entities may be shown or hidden based on which users, sets
of users, or arbitrary combinations of users thereof, who have or
have not evaluated each entity. For example, a geographic entity
search system may offer the option to not show the user entities
which have already been evaluated. As another example, a jewelry
search system may offer a group of users performing a query the
ability to only show results for jewelry stores in which the group
of users' parents have rated more than 80 on a 1-100 scale.
[0043] An evaluation filter may be used alone or in arbitrary
combination with other filters. They may be broadening (OR) or
narrowing (AND). For example, an English language query using
Boolean syntax may be, "wines I have previously rated excellent OR
(wines costing between $30-$50 AND which my wife has rated at least
good) OR the wine of the day". Other combinations than Boolean ones
are possible, however. For instance, one might combine two filters
with a weighting to indicate that one was more important. One might
also specify in a query that one attribute of an entity be similar
to ("like") a specific datum or an attribute of another entity.
[0044] A generalization of filtering considered is an order of
relevance for re-ranking search results. For example, with the
example provided earlier about filtering all results a user had
already passed evaluated, similarly, a list of search results could
down-weight results based on filtering criteria. This filtering
criteria could either be explicit, or generated implicitly from
other context such as GPS or prior search history. As another
clarifying example, restaurants rated 5 stars may appear before
other restaurants not rated by the person or persons performing a
search query if a "prefer my highest rated" filter is active. The
ability for a user to meet the system half way by requesting
changes to the ranking is referred to as user-specified
re-ranking.
[0045] The implementation of an evaluation filter may happen at one
or more parts of a search system either alone or in combination.
For example, it could be implemented in real-time at the time of a
query or search. If the system has control over other parts of the
result pages that are served, information from the result pages
could be dynamically changed. For example, if a target user looks
for Japanese food, but the result is for a restaurant that serves
only Yakitori (grilled chicken or meat skewers), that information
(the fact that it only serves Yakitori) may be obscured, and the
target user may only be informed that the restaurant serves
Japanese food. However, if a target user explicitly searches for
restaurants serving Yakitori, the same restaurant may appear in the
search results, but the target user might see the specific
information that the restaurant serves only Yakitori, rather than
the restaurant serves Japanese food.
[0046] Some search systems involve searching by, or for location,
and return search results which have locations in the real
world.
[0047] When entity search systems according to embodiments of the
invention are performing ranking of certain criteria over others,
all criteria may be fused together to generate an initial order of
relevance in ordering the results of a search query. A mechanism of
weighting certain criteria over others may be provided to determine
the initial order of relevance. This criteria is most frequently
determined a priori, for instance, using hand-tuning However, there
are many ways to allow user specified filtering or re-ranking order
of relevance, such as using machine learning or statistical
techniques such as collaborative filtering or regression.
[0048] One such example of user-specified re-ranking an order of
relevance may be exposing parameters that the system is using.
There could be many motivations for this including providing
clarity, or providing mechanisms for a user to tune/refine the
automatically assumed parameters of the system. These parameters
could be performed a priori, or at query time, or a hybrid using
both approaches. For example, when a user is searching near a
specific location, an entity search system may automatically
determine a maximum radius for the search. This distance could be
surfaced to the user, which in turn the user could use to provide
feedback about if the estimated range was ideal or not, and if not,
to change that specific parameter or criteria. This also means that
when designing search ranking algorithms to model behavior, the
entity search system may determine an order of relevance in
intuitive ways that can be explained to the user. For example, use
of a penalty function in a distance parameter could lead to a
gradual tradeoff of distance and other factors, so that the most
relevant restaurants in the periphery appeared and both the most
relevant and less relevant restaurants in the center appeared. This
approach offers certain advantages but, in some cases, may be
difficult for users to work with as intuitively as a maximum
radius. An algorithm designer might therefore choose a maximum
radius model in this case to make it easier for a user to
understand the meaning of a search query they were entering.
[0049] Although a user may specify distance as a criteria, for
example, preferring entities located in closer proximity of 0.5
miles over entities located over 0.5 miles away, the user may still
hold a higher weight (e.g., higher priority) to another criteria,
such as a rating of the entity. Thus, the user could specify "more
heavily care about distance" vs. "less heavily care about distance.
So because the user weighs the rating more heavily than the
distance, the user may select a 5-star rated entity over 0.5 miles
away over a 3-star rated entity within 0.5 miles. Therefore, the
entity search system may display the 5-star entity higher (e.g.,
higher order of relevance) than the 3-star entity, even though the
5-star entity is over 0.5 miles away and the 3-star entity is
within 0.5 miles. However, in comparing two 3-star entities that
are both within 0.5 miles, they may be ranked in an order based on
distance (e.g., entity 0.2 miles away is displayed higher than an
entity 0.4 miles away).
[0050] The criteria for searching is not limited to geographic, but
rather any sort of parameters that could be modified. For
geographical, it is also not limited to city, it could be
neighborhood, country, zip code, real estate plots, crime
gradients, etc.
[0051] One example of a specific type of dynamic filter is a
mechanism for automatically changing the range of a search based on
the search when doing a search for physical places. This may take
in additional context, including hints such as signals from search
rankers, GPS data, affinity graph information, or many other
different types of subsystems. This would automatically determine
the range necessary, balancing the two conflicting requirements of
finding many high quality results, and not having the users travel
far. This could be variable depending on not just the query, but
also the specific information we have learned about a user, such as
an observation about the user's decisions about this tradeoff.
[0052] Similar to a filter or a re-ranking, is the concept of
search relaxation. Search relaxation occurs when a target user
makes a query for a search, but the search is unsuccessful in
finding entities matching the target user's query, so the query
automatically becomes generalized, or altered in a pre-determined
way. There are many different forms of search relaxation, such as:
1) ignoring explicit user criteria that have been specified about
the price, radius of a search, etc., 2) exposing spelling
correction logic 3) automatically generalizing a query, for
example, if a user looks for Yakitori, and there are not many
results, the entity search system begins searching for Japanese,
which is broader or more generalized than Yakitori.
[0053] When and how search relaxation occurs may be based on
explicit search relaxation criteria determined by a product
designer, or may be based on implicit search relaxation criteria
derived from information learned through statistical inference. For
example, a search relaxation may occur if there are few results, or
if there are no results. A search relaxation could also occur if
the system determined that a word in a query was extremely rare,
and furthermore was similar by edit distance or another distance
metric to a non-rare word, in a spelling correction system. Search
relaxation criteria may be broader than this, however. Relaxation
criteria, and the way in which queries are relaxed, may change over
time and may be inferred from user feedback or other information.
For example, a system may notice that queries of one kind are
commonly followed quickly by queries of another kind, and conclude
that information responsive to the second query should be provided
immediately without actually requiring the second query.
[0054] User feedback may be an explicit response from the user
interacting with the user device. The user may interact with the
user device via a mobile application associated with the entity
search system. Interacting with the application on the user device
allows the entity search system and a user to communicate with each
other, such as sending queries to the entity search system,
providing criteria, editing criteria, providing and editing entity
search query results, etc. User feedback may also include editing
the query and re-running a search based on the new query. Some
search systems may allow a user to save queries for later use. In
these systems the fact a query was saved may be user feedback about
a query's utility.
[0055] FIG. 2 shows a block diagram of an exemplary modular entity
search system 160 according to an embodiment of the invention,
where the entity search system 160 is configured to provide
explanations of the personalized recommendations. In other
embodiments of the invention, an explanations provider may be
separate from the recommendations provider, and may be operated by
different systems. In the example shown in FIG. 2, the entity
search system 160 operates as the recommendations provider and
explanation (i.e., recommendations explanation) provider.
[0056] The entity search system 160 may be a server computer 700,
which may be a single computer, a cluster of computers, a server,
or a super computer. Processes and methods implemented by or at the
server computer could also be implemented by or at a client, in
various embodiments. The server computer 700 may comprise a
processor 740, and a non-transitory computer readable medium 750,
on which code is stored. There may be several databases to store
data, for example, an entity database 730(a), a factor database
730(b), a user database 730(c), and a media object database 730(d).
Stored in the entity database 730(a) may be evaluation data
relating to entities, including entity meta-data (e.g., location,
hours of operation, specialty, rating). Entity meta-data may
include any sub-category of data related to the entity. The
criteria database 730(b) may store previously determined and
selected factors from a plurality of users. The user database
730(c) may store user data obtained from a plurality of users, such
as real-time data from social networking sites (e.g., tweets,
status updates), and stored data related to a plurality of users,
such as user preferences and settings (e.g., gender, dietary
restrictions). The real-time data may be explicit or implicit, and
may include text, images, video, audio, or other media. The user
data may be directly obtained from the user or may be obtained from
external data sources, such as a social networking site associated
with the user. The entity search system 160 may also include a
media object database 730(d), storing media objects, such as high
resolution photos. The media objects may be associated with
entities, recommendations, and/or the target user, and may be used
in the display of recommendations and/or recommendation
explanations.
[0057] The user database and entity database could be NoSQL
databases, an SQL database, another information retrieval system
such as a computer filesystem, or an in-memory data store. In other
embodiments, the system could have a temporary piece of data
obtained from a third-party on demand, such that data does not need
to be statically or locally stored. A database could consist of
multiple storage facilities, such as a cache backed by a database
or a normalized authoritative database and denormalized in-memory
stores.
[0058] The code stored on the non-transitory computer readable
medium 750 may be in modules, and is executable by the processor
740 to perform functions, which are implemented as processing steps
described above by the entity search system providing
recommendation explanations. The non-transitory computer-readable
medium 750 may comprise software modules, such as a criteria
weighting module 701, a filter module 702, a filter weighting
module 703, an order of relevance module 704, a search display
module 705, and a query analysis module 706. The functions of these
modules are described in the process flows described above.
[0059] The entity search system 160, to communicate with external
data sources, social networking sites, and users, may include a
network interface 720. The network interface 720 includes hardware
and software that enables the entity search system 160 to transmit
and receive data over the Internet or any other communications
network (e.g., telecommunications network, cable, radio).
Exemplary User Display and Interfaces
[0060] Filtering options may be dynamic based on information from
the search using a query, and vice versa (the search options can be
dynamic based on information from the filters). For example, if a
user has entered information into a location search box (coupled
with a query search box), and some criteria is used to determine
that the user is specifying a location other than the current one,
then using a radius-based distance criteria may not make sense. For
example, if a user enters a city, it might be more prudent to
search all locations in a city, rather than scoping by a radius
around a specific location. Thus, if it is determined that such a
filter is not prudent, it may be dynamically changed, or stripped
from the user interface, to reinforce a user's understanding about
said functionality. In some cases a filtering option may be
automatically enabled, and this information may be communicated to
the user or not, based on the context of the search, such as
whether the user is searching by location and radius or all
locations in a city, or whether the user is searching from a mobile
device rather than a desktop computer. User displays of results are
not limited to display screens but can include generally visual
displays such as heads-up displays, audio results, and haptic
feedback.
[0061] As shown in examples in FIGS. 3 and 4, the filters have been
changed, because the term "Berkeley" has been specified in the top
right location box. In FIG. 3, an exemplary user display 300 is
illustrated for a user to customize filter parameters as criteria
for a search, or for an order of relevance. The user may enter a
search query in an input box 304, for example, "pizza" or "cheap
eats". In input box 306, the user may enter a location, select an
option to choose "near me" or "current location," which may enable
the user device to determine the current location. The user device
may use GPS (Global Positioning System), or other systems to
determine the current location of the user device. Section 308 of
the user display 300 may indicate a searching criteria "Search",
which could be by "Personal" 308(a) (e.g., personal preferences),
or by "Distance" 308(b). A user may also indicate a "Range" 310,
and may include a "Smart" option 310(a), in which the entity search
system may determine the best range. Otherwise, the user may select
a desired range in the options shown in 310(b) (e.g., 0.3 mi, 1 mi,
5 mi, and 15 mi). The user display 300 may also allow the user to
set "Price" criteria 312, with options shown as 312(a) using "$",
with "$" indicating inexpensive, while "$$$$$" indicates expensive.
The user may also select criteria to "Hide" 314, for example, to
hide entities that the user has already evaluated 314(a) (e.g.,
"Placed I've Rated"), or chain restaurants 314(b) (e.g., "Big
Chains"). When the user has completed selecting and augmenting the
criteria, the user may select "Done" 302, to save the criteria.
[0062] In FIG. 4, an exemplary user display 400 is illustrated for
a user to customize filter parameters as criteria for a search, or
for an order of relevance. The user may enter a search query in an
input box 404, for example, "pizza" or "cheap eats". In input box
406, the user may enter a location, for example, "Berkeley" the
prompting a different set of criteria options than shown in FIG. 3.
Section 408 of the user display 400 may indicate a searching
criteria "Search", which could be by "Personal" 408(a) (e.g.,
personal preferences), or by "Distance" 408(b). However, since the
user has inputted into the location box 406 "Berkeley," the "Range"
section 410, now displays a "Use Current Location" option 410(a),
in which the entity search system may determine, using GPS or other
systems, to determine the user's specific location within the
explicit location in 406, Berkeley. The user display 400 may also
allow the user to set "Price" criteria 412, with options shown as
412(a) using the dollar sign symbol "$", with "$" indicating
inexpensive, while "$$$$$" indicates expensive. The user may also
select criteria to "Hide" 414, for example, to hide entities that
the user has already evaluated 414(a) (e.g., "Placed I've Rated"),
or chain restaurants 414(b) (e.g., "Big Chains"). When the user has
completed selecting and augmenting the criteria, the user may
select "Done" 402, to save the criteria. Upon selecting certain
criteria, the entity search system may search in real-time as the
criteria are being augmented, and shown in a textual display 416,
preliminary results. For example, in the user display 400, the
textual display 416 shows that no entities could be found with a
"$" or "$$" price in the specified location, Berkeley.
[0063] FIGS. 5 and 6 show how the chosen parameters can differ
based upon the query (City, vs. a specified range). FIG. 5
illustrates an exemplary user display 500 with search results for
the primary user. The user may enter a search query in an input box
504, for example, "pizza" or "cheap eats". In location box 506, the
user may enter a location, for example, "Berkeley". To augment
other criteria for search, the user may select "Refine your search"
508 to display other criteria that the user may select and/or
modify in the search. The user display 500 may show a set of
entities, for example, "Jupiter's" in section 510, "Triple Rock
Brewery & Alehouse" in 512, and "Bette's Oceanview Diner" in
514. Each section may display entity data, such as a name of the
entity 510(a) "Jupiter's", a type of food or cuisine 510(b)
"Pizza", a price range 510(c) "$$", location data 510(d)
"Berkeley--33.1 mi" (e.g., city and distance from current
location), and evaluation data 510(g) "#2 Second most popular Pizza
in Berkeley, 3382 Mentions" (e.g., rating, review, number of
check-ins, etc.). Further, other navigation indicators may be
displayed, such as an arrow 510(e), which would direct the user to
a display with more detailed entity data regarding the specific
entity, in this example, "Jupiter's". There may also be other
options 510(f), such as an informative display about a
recommendation from a recommendation system, a product logo, an
icon to add the entity to a favorites list, or an icon to ask for
help. Entity "Triple Rock Brewery & Alehouse" in section 512
has similar options, indicators, and data, as in section 510 for
"Jupiter's". If the user wishes to view the results displayed in a
different layout, the user may select 502 for a tiled format, or
other layout.
[0064] FIG. 6 illustrates an exemplary user display 600 with search
results for the primary user. The user may enter a search query in
an input box 604, for example, "pizza" or "cheap eats". To augment
other criteria for search, the user may select "Refine your search"
608 to display other criteria that the user may select and/or
modify in the search. In location box 606, the user may select
"Near Me", which would augment the search and display the search
results differently from that shown in FIG. 5. The "Near Me" option
would use the current location of the user device, determined using
GPS or other systems. The user display 600 may show a new set of
entities from those shown in FIG. 5, for example, "Hobee's
Restaurant" in section 610, and "Lozano's Brushless Car . . ." in
612. Each section may display entity data, such as a name of the
entity 610(a) "Hobee's Restaurant", a type of food or cuisine
610(b) "American", a price range 610(c) "$$", location data 610(d)
"Palo Alto--0.3 mi" (e.g., city and distance from current
location), and evaluation data 610(g) "#3 Third most popular
American in Palo Alto, 568 Mentions" (e.g., rating, review, number
of check-ins, etc.). Further, other navigation indicators may be
displayed, such as an arrow 610(e), which would direct the user to
a display with more detailed entity data regarding the specific
entity, in this example, "Hobee's Restaurant". There may also be
other options 610(f), such as an informative display about a
recommendation from a recommendation system, a product logo, an
icon to add the entity to a favorites list, or an icon to to ask
for help. Entity "Lozano Brushless Car" in section 612 may have
similar options, indicators, and data, as in section 610 for
"Hobee's Restaurant". If the user wishes to view the results
displayed in a different layout, the user may select 602 for a
tiled format, or other layout.
[0065] In another embodiment of the invention, the entity search
system may apply a search relaxation, which occurs when a target
user makes a query for a search, but the search is unsuccessful in
finding sufficient entities matching the target user's query, so
the query automatically becomes generalized, or altered in a
pre-determined way. Search relaxation may happen in a way that is
not exposed to the target user, or it could be explicitly explained
to the target user why the search query and/or criteria have been
relaxed, as shown in FIG. 7.
[0066] FIG. 7 illustrates an exemplary user display 700 with search
results for the primary user. The user may enter a search query in
an input box 704, for example, "noodle theory". To augment other
criteria for search, the user may select "Refine your search" 708
to display other criteria that the user may select and/or modify in
the search. In location box 706, the user may select "Near Me". If
the user wishes to view the results displayed in a different
layout, the user may select 702 for a tiled format, or other
layout. The "Near Me" option would use the current location of the
user device, determined using GPS or other systems. The user
display 700 may show in a textual description 710, which no
entities matching the search query (e.g., "noodle theory") within
the specified range (e.g., 0.3 miles). The entity search system may
then make other recommendations matching the search query, but with
relaxed range criteria. For example, "Noodle Theory" in 712. Again,
each section may display entity data, such as a name of the entity
712(a) "Noodle Theory", a type of food or cuisine 712(b) "Asian", a
price range 712(c) "$$", and location data 712(d) "Oakland--31.4
mi" (e.g., city and distance from current location). Further, other
navigation indicators may be displayed, such as an arrow 712(e),
which would direct the user to a display with more detailed entity
data regarding the specific entity, in this example, "Noodle
Theory". There may also be other options 712(f), such as an
informative display about a recommendation from a recommendation
system, a product logo, an icon to add the entity to a favorites
list, or an icon to ask for help.
[0067] The description provides preferred exemplary embodiment(s)
only, and is not intended to limit the scope, applicability or
configuration of the invention. Rather, the description of the
preferred exemplary embodiment(s) will provide those skilled in the
art with an enabling description for implementing a preferred
exemplary embodiment of the invention. It is to be understood that
various changes may be made in the function and arrangement of
elements without departing from the spirit and scope of the
invention as set forth in the appended claims.
[0068] Specific details are given in the description to provide a
thorough understanding of the embodiments. However, it will be
understood by one of ordinary skill in the art that the embodiments
may be practiced without these specific details. For example,
systems may be shown in block diagrams in order not to obscure the
embodiments in unnecessary detail. In other instances, well-known
processes, structures and techniques may be shown without
unnecessary detail in order to avoid obscuring the embodiments.
[0069] Also, it is noted that the embodiments may be described as a
process which is depicted as a flowchart, a flow diagram, a data
flow diagram, a structure diagram, or a block diagram. Although a
flowchart may describe the operations as a sequential process, many
of the operations may be performed in parallel or concurrently. In
addition, the order of the operations may be re-arranged. A process
is terminated when its operations are completed, but could have
additional steps not included in the figure. A process may
correspond to a method, a function, a procedure, a subroutine, a
subprogram, etc. When a process corresponds to a function, its
termination corresponds to a return of the function to the calling
function or the main function.
[0070] Moreover, as disclosed herein, the term "storage medium" may
represent one or more devices for storing data, including read only
memory (ROM), random access memory (RAM), magnetic RAM, core
memory, magnetic disk storage mediums, optical storage mediums,
flash memory devices and/or other machine readable mediums for
storing information. The term "computer-readable medium" includes,
but is not limited to portable or fixed storage devices, optical
storage devices, wireless channels and various other mediums
capable of storing, containing or carrying instruction(s) and/or
data.
[0071] Furthermore, embodiments may be implemented by hardware,
software, firmware, middleware, microcode, hardware description
languages, or any combination thereof. When implemented in
software, firmware, middleware or microcode, the program code or
code segments to perform the necessary tasks may be stored in a
machine readable medium such as storage medium. A processor(s) may
perform the necessary tasks. A code segment may represent a
procedure, a function, a subprogram, a program, a routine, a
subroutine, a module, a software package, a class, or any
combination of instructions, data structures, or program
statements. A code segment may be coupled to another code segment
or a hardware circuit by passing and/or receiving information,
data, arguments, parameters, or memory contents. Information,
arguments, parameters, data, etc. may be passed, forwarded, or
transmitted via any suitable means including memory sharing,
message passing, token passing, network transmission, etc.
[0072] Further embodiments may be envisioned to one of ordinary
skill in the art after reading this disclosure. In other
embodiments, combinations or sub-combinations of the above
disclosed invention may be advantageously made. The example
arrangements of components are shown for purposes of illustration
and it should be understood that combinations, additions,
re-arrangements, and the like are contemplated in alternative
embodiments of the present invention. Thus, while the invention has
been described with respect to exemplary embodiments, one skilled
in the art will recognize that numerous modifications are
possible.
[0073] For example, the processes described herein may be
implemented using hardware components, software components, and/or
any combination thereof. The specification and drawings are,
accordingly, to be regarded in an illustrative rather than a
restrictive sense. It will, however, be evident that various
modifications and changes may be made thereunto without departing
from the broader spirit and scope of the invention as set forth in
the claims and that the invention is intended to cover all
modifications and equivalents within the scope of the following
claims.
* * * * *