U.S. patent application number 15/204943 was filed with the patent office on 2016-12-08 for recommending mobile device activities.
The applicant listed for this patent is VCVC III LLC. Invention is credited to Satish Bhatti, Will Hunsinger, Jisheng Liang.
Application Number | 20160357794 15/204943 |
Document ID | / |
Family ID | 45890697 |
Filed Date | 2016-12-08 |
United States Patent
Application |
20160357794 |
Kind Code |
A1 |
Liang; Jisheng ; et
al. |
December 8, 2016 |
RECOMMENDING MOBILE DEVICE ACTIVITIES
Abstract
Techniques for recommending mobile device activities, such as
accessing mobile applications and/or mobile Web pages, are
described. Some embodiments provide an Activity Recommendation
System ("ARS") configured to recommend relevant activities for a
user to perform with a mobile device, based on context of the
mobile device. In one embodiment, the ARS recommends mobile
applications based content items (e.g., Web pages, images, videos)
that are being currently accessed via the mobile device. The ARS
may process information about mobile applications and content items
to determine semantic information, such as entities and/or
categories referenced or associated therewith. The ARS may then use
the semantic information to determine mobile applications that have
semantic information that is at least similar to that of a content
item accessed via a mobile device.
Inventors: |
Liang; Jisheng; (Bellevue,
WA) ; Hunsinger; Will; (Tiburon, CA) ; Bhatti;
Satish; (Seattle, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
VCVC III LLC |
Seattle |
WA |
US |
|
|
Family ID: |
45890697 |
Appl. No.: |
15/204943 |
Filed: |
July 7, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13233879 |
Sep 15, 2011 |
9405848 |
|
|
15204943 |
|
|
|
|
61383175 |
Sep 15, 2010 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 16/957 20190101;
G06F 16/9535 20190101; G06F 16/2228 20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1-31. (canceled)
32. A computer-implemented method for discovering mobile
applications, the method comprising: generating in a data store of
a computing system an index of semantic information for multiple
mobile applications from a plurality of sources including at least
one of a Web site, a blog, a news feed, a video feed, a social
network, an application store, and/or an information service, the
semantic information including identified entities and/or
categories related to the multiple mobile applications, wherein the
identification is performed using natural language processing
techniques; receiving a semantic search query, the query specifying
at least one entity or category; determining from the index one or
more of the multiple mobile applications that have associated
semantic information matching the received semantic search query or
that have associated semantic information that is related to the
received semantic search query through an entity and/or category
that is related to an entity and/or category stored in the index of
semantic information; and transmitting indications of the
determined one or more mobile applications in response to the
semantic search query.
33. The method of claim 32 wherein generating the index includes
processing information about each of the multiple mobile
applications, including at least one of a summary of the
application, a description of the application, a title for the
application, instructions for using the application, and a review
of the application.
34. The method of claim 33 wherein processing the information about
each of the multiple mobile applications includes determining an
entity and/or a category referenced by the processed information
and storing a relationship between the entity and/or category
referenced and a corresponding entity and/or category stored in the
data store.
35. The method of claim 32 wherein generating the index includes
storing a mapping between an entity or category and one or more of
the multiple mobile applications that are related to the entity or
category.
36. The method of claim 32 wherein determining from the index the
one or more mobile applications that have associated semantic
information matching the received semantic search query includes
accessing the index to locate mobile applications that are mapped
to the entity or category specified by the semantic search
query.
37. The method of claim 32 wherein receiving the semantic search
query includes receiving a search query that requests mobile
applications about a specified entity or category, and wherein
determining from the index the one or more mobile applications
includes locating one or more mobile applications that are about
the specified entity or category.
38. The method of claim 32 wherein receiving the semantic search
query includes receiving a search query that requests mobile
applications that are indirectly related to a specified entity or
category, and wherein determining from the index the one or more
mobile applications includes locating one or more mobile
applications that are about an entity or category that is related
to the specified entity or category.
39. The method of claim 32 wherein the multiple mobile applications
include applications that execute at least in part on mobile
devices.
40. The method of claim 32 wherein the multiple mobile applications
include Web sites configured for use by mobile devices.
41. The method of claim 32 wherein receiving the semantic search
query includes receiving the semantic search query from a mobile
application recommender module executing on a mobile device, the
recommender module configured to transmit the semantic search query
in response to receiving indication of access to a content item
accessed via the mobile device, the content item referencing the
specified at least one entity or category.
42. A computing system configured to discover mobile applications
comprising: a computer processor; a memory; code logic that is
stored in the memory and that is configured, when executed by the
computer processor, to: generate an index in a data store in the
memory of the computing system of semantic information for multiple
mobile applications from a plurality of sources including at least
one of a Web site, a blog, a news feed, a video feed, a social
network, an application store, and/or an information service, the
semantic information including identified entities and/or
categories related to the multiple mobile applications, wherein the
identification is performed using natural language processing
techniques; receive a semantic search query, the query specifying
at least one entity or category; determine from the index one or
more of the multiple mobile applications that have associated
semantic information matching the received semantic search query or
that have associated semantic information that is related to the
received semantic search query through an entity and/or category
that is related to an entity and/or category stored in the index of
semantic information; and transmit indications of the determined
one or more mobile applications in response to the semantic search
query.
43. The computing system of claim 42 wherein the code logic
includes software instructions for execution in the memory of the
computing system.
44. The computing system of claim 42 wherein the code logic
includes an activity recommendation system.
45. The computing system of claim 44 wherein the activity
recommendation system includes a client portion executing on a
mobile device.
46. The computing system of claim 42 wherein the code logic is
configured to recommend activities to at least one of a personal
digital assistant, a smart phone, a laptop computer, a notebook
computer, a mobile phone, and/or a third-party application.
47. The computing system of claim 42 wherein the mobile device is a
tablet computer.
48. The computing system of claim 42 wherein the data store
includes an application index and an entity store.
49. The computing system of claim 42 wherein the code logic
generates the index about each of the multiple mobile applications
by determining an entity and/or a category referenced by the
semantic information and storing a relationship between the to
entity and/or category referenced and the corresponding entity
and/or category in the data store.
50. A non-transitory computer-readable medium containing
instructions for controlling a computer processor to discover
mobile applications by performing method comprising: generating in
a data store of a computing system an index of semantic information
for multiple mobile applications from a plurality of sources
including at least one of a Web site, a blog, a news feed, a video
feed, a social network, an application store, and/or an information
service, the semantic information including identified entities
and/or categories related to the multiple mobile applications,
wherein the identification is performed using natural language
processing techniques; receiving a semantic search query, the query
specifying at least one entity or category; determining from the
index one or more of the multiple mobile applications that have
associated semantic information matching the received semantic
search query or that have associated semantic information that is
related to the received semantic search query through an entity
and/or category that is related to an entity and/or category stored
in the index of semantic information; and transmitting indications
of the determined one or more mobile applications in response to
the semantic search query.
51. The computer-readable medium of claim 50 wherein the
instructions are code logic, a portion of which is stored and
executes on a mobile device.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 13/233,879 filed Sep. 15, 2011, which claims
the benefit of priority from U.S. Provisional Patent Application
No. 61/383,175 filed Sep. 15, 2010, which applications are
incorporated herein by reference in their entireties.
TECHNICAL FIELD
[0002] The present disclosure relates to methods, techniques, and
systems for recommending mobile device activities and, more
particularly, to methods, techniques, and systems for recommending
mobile applications and/or mobile Websites based on context of the
mobile device.
BACKGROUND
[0003] As smart phones (e.g., Apple's iPhone and Google's Android)
and other mobile devices (e.g., Apple's iPad) gain popularity,
smart phone users are increasingly using diverse mobile
applications to perform everyday activities, such as email, social
networking, news reading, banking, and the like. A typical smart
phone user may use 20-30 different applications installed on
his/her smart phone. In addition, many Web destinations are
disaggregating their sites, and making pieces or portions of those
sites into mobile applications that can be downloaded to, and
installed on, smart phones. As the number of applications grows,
users are increasingly faced with the problem of searching through
an increasing number of applications in order to find applications
that are relevant or useful to tasks they wish to perform. This
scenario is similar to the early days of the Web. That is, as the
size of the Web increased, more scalable and efficient solutions
(e.g., better search engines) were needed to help users better
navigate and search for relevant Web sites.
[0004] A difference between mobile platforms and the Web is that,
due to the nature of mobile devices (e.g., small screen size,
limited input modalities) and how users interact with those
devices, user interaction is often more focused and
vertically-oriented. Thus, the traditional keyword-based search
engines that work well on the Web are no longer sufficient for
mobile platforms. It is frequently cumbersome to type in or copy
and paste keyword queries on a mobile device, and then have to
browse dozens of results before finding relevant results.
[0005] As another problem, there is little or no interaction
between mobile applications, and no common standards for
intercommunication. Thus, it is not be convenient or efficient to
analyze information or user's actions with respect to one
application, and then use that information to perform functions
with another application
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 illustrates an example mobile device configured to
provide activity recommendations according to an example
embodiment.
[0007] FIG. 2 illustrates an example block diagram of an example
embodiment of an activity recommendation system.
[0008] FIGS. 3A-3I illustrate example screen displays provided by
example embodiments of an activity recommendation system.
[0009] FIG. 4 is an example block diagram of an example computing
system for implementing an activity recommendation system according
to an example embodiment.
[0010] FIG. 5 is an example flow diagram of an activity
recommendation process performed by an example embodiment.
[0011] FIG. 6 is an example flow diagram of a mobile application
search and discovery process performed by an example
embodiment.
DETAILED DESCRIPTION
[0012] Embodiments described herein provide enhanced computer- and
network-based methods and systems for recommending mobile device
activities. Example embodiments provide an activity recommendation
system ("ARS") configured to recommend relevant activities for a
user to perform with a mobile device, based on context of the
mobile device. In one embodiment, the ARS recommends mobile
applications based on content items (e.g., Web pages, images,
videos) that are being currently accessed via the mobile device.
The ARS may process content items to determine semantic
information, such as entities that are referenced by, and
categories (also called "facets") associated with, those content
items. In addition, the ARS may process information about mobile
applications to determine semantic information about those mobile
applications, such as entities and/or categories related to those
mobile applications. Then, when a user accesses a content item, the
ARS determines one or more mobile applications that have semantic
information that is at least similar to that of the accessed
content item, such as by having associated entities and/or
categories that are at least similar to the entities and/or
categories of the accessed content item.
[0013] Mobile device context may include information about content
items that are currently being presented, prepared, viewed, or
otherwise processed by the mobile device. A content item may
include text, audio, image, and/or video data that describes one or
more entities and relationships between those entities. The ARS
consumes content items and determines semantic information
contained in those content items, including identifying the
entities and relationships referenced or otherwise covered by those
content items. Entities include people, places (e.g., locations),
organizations (e.g., political parties, corporations, groups),
events, concepts, products, substances, and the like. Table 1,
below, includes a list of example entity types. Fewer or more can
be made available. Other semantic information determined by the ARS
includes indirect or higher-order semantic information, such as
categories, facets, types, or classes associated with the
identified entities, taxonomies, and/or relationships. The ARS may
consume or otherwise attend to other information about or contained
in a content item, including various types of meta-information,
such as titles, authors, publication dates, summaries, quotations,
and the like. In other embodiments, mobile device context may
include other information about the operational state of the mobile
device, including its location (e.g., GPS coordinates, cell
identifier, zip code), hardware state and/or conditions (e.g.,
processor and/or memory capacity/utilization, display configuration
and/or settings, error conditions), software state and/or
conditions (e.g., application identifiers and/or version
information, error conditions), and the like.
[0014] Various types of mobile device activities may be recommended
by the ARS. In some embodiments, a recommended activity may be to
access (e.g., execute, download, install) a mobile application (an
"app") that includes instructions that execute on, or are otherwise
processed by, the mobile device to perform one or more actions,
functions, or activities. A mobile application may operate entirely
on the mobile device, but more typically, it will cooperate with
one or more network accessible modules, such as Web servers,
application servers, database systems, or the like. In other
embodiments, a recommended activity may be to access a Website that
is accessible by the mobile device (a "mobile Website"). In at
least some cases, the recommended Website is adapted, customized,
optimized, or otherwise configured for utilization by mobile
devices, such as by reducing display requirements (e.g., by
reducing screen layout size), reducing bandwidth utilization (e.g.,
by minimizing use of images), and the like.
[0015] FIG. 1 illustrates an example mobile device configured to
provide activity recommendations according to an example
embodiment. In particular, FIG. 1 illustrates a mobile device 100
that is a smart phone and that includes a speaker 102, hardware
buttons 104 and 106, a pointing device 108, and a touch screen 110.
Other components/modules of the device 100 are not shown, such as a
microphone, other hardware controls, power connections, network
connections, and the like. In the illustrated example, the device
100 is executing a Web browser application, which is displaying on
the touch screen 110 a Web page 116 received via a uniform resource
identifier ("URI") or uniform resource locator ("URL") 114. In
addition, the device 100 is displaying an activity recommender 120
that presents recommended activities based on the context of the
device 100.
[0016] As noted, the ARS processes content items to determine
semantic information such as entities, relationships between those
entities, and categories/facets associated with those entities.
Here the ARS processes Web page 116, which includes information
about a transaction for a basketball player, in particular, the
acquisition of Shaquille O'Neal by the Boston Celtics. In
processing the Web page 116, the ARS may thus identify entities
including the Boston Celtics, the NBA, Shaquille O'Neal, the
Cleveland Cavaliers, and the like. In addition, the ARS may
identify categories associated with the identified entities, such
as sports team (the Boston Celtics and Cleveland Cavaliers are
sports teams), sports league (the NBA is a sports league), athlete
(Shaquille O'Neal is an athlete), and the like. As also noted, the
ARS processes information about various activities (e.g., mobile
applications and mobile Websites) to determine semantic
information, such as entities and/or categories, about or related
to those activities. Based on semantic information about a content
item and various activities, the ARS determines one or more
relevant activities. In this example, the ARS determines, based on
the entities and/or categories referenced by Web page 116, one or
more activities that are relevant to Web page 116.
[0017] The determined activities are presented via the activity
recommender 120. Here, the example activity recommender 120 is a
"pop up" user interface control that overlays the currently
executing application in response to a user input that requests
activity recommendations. The activity recommender 120 includes
controls 122a-122f. The controls 122a-122f are software buttons,
but in other embodiments could be other types of user selectable
controls, such as links, menu items, icons, or the like. Each of
the controls 122a-122e includes an indication of one determined
activity. In particular, controls 122a-122e respectively indicate a
Boston Celtics mobile application ("Boston Celtics App"), an NBA
mobile application ("NBA Mobile App"), a ticket purchasing mobile
application ("Tickets App"), Shaquille O'Neal's personal mobile
Website ("Shaq's Mobile Blog"), and a mobile Website dedicated to
sports news ("Mobile Sports News"). Each of controls 122a-122e,
when selected by a user, facilitates its indicated activity. For
example, if a user selects control 122a, the user will be presented
with the option of downloading and installing the indicated Boston
Celtics mobile application. Or, if the user selects control 122d,
the user will be presented with the option of accessing Shaquille
O'Neal's mobile Website.
[0018] Note that the recommended activities are not limited to
entities that are directly referenced by the Web page 116. For
example, the recommender 120 includes control 122c indicating a
ticket purchasing mobile application, based on information such as
that the Boston Celtics are a professional sports team and that the
ticket purchasing mobile application can be used to purchase
tickets for professional sports teams. In addition, the recommender
120 includes control 122d indicating a sports news Website, based
on information such as that Shaquille O'Neal plays basketball and
that the sports news Website carries news stories about
basketball.
[0019] FIG. 2 illustrates an example block diagram of an example
embodiment of an activity recommendation system. In particular,
FIG. 2 illustrates an activity recommendation system ("ARS") 200
that includes a content ingester 211, an activity ingester 212, an
activity recommender 213, and a data store 217. The data store 217
includes a content index 217a, an entity store 217b, and an
activity index 217c.
[0020] In the illustrated embodiment, ARS 200 functions at least in
part as a semantic search and discovery system for mobile
applications. As will be described below, portions of the ARS 200,
including the content ingester 211, the activity ingester 212, and
the data store 217 cooperate to function as a search engine to
locate, identify, or otherwise determine mobile applications and/or
Websites for use on, or access by, a mobile device or other type of
system. Other portions of the ARS 200, including the activity
recommender 213, use the semantic search and discovery
functionality of the ARS 200 to locate applications to recommend,
and to provide such recommendations to mobile devices or other
clients. In other embodiments, third-party applications or users
may also utilize the provided semantic search and discovery
functionality directly, such as via an application program
interface or Web-based search user interface.
[0021] The content ingester 211 determines semantic information
about content items obtained from various content sources 255, and
stores the determined information in the data store 217. The
content ingester 211 receives and indexes content items from
various content sources 255, including sources such as Web sites,
Blogs, news feeds, video feeds, and the like. The content ingester
211 may also receive content from non-public or semi-public
sources, including subscription-based information services,
access-controlled social networks, and the like. The content
ingester 211 processes data included within content items (e.g.,
text, images, video) and meta-data about content items (e.g.,
author, title, date, source).
[0022] The content ingester 211 processes the received content
items to identify entities and relationships that are referenced
therein. Various automatic and semi-automatic techniques are
contemplated for identifying entities within content items. In one
embodiment, the content ingester 211 uses natural language
processing techniques, such as parts of speech tagging and
relationship searching, to identify sentence components such as
subjects, verbs, and objects, and to disambiguate and identify
entities. Example relationship searching technology, which uses
natural language processing to determine relationships between
subjects and objects in ingested content, is described in detail in
U.S. Pat. No. 7,526,425, issued on Apr. 28, 2009, and entitled
"METHOD AND SYSTEM FOR EXTENDING KEYWORD SEARCHING FOR
SYNTACTICALLY AND SEMANTICALLY ANNOTATED DATA," and entity
recognition and disambiguation technology is described in detail in
U.S. patent application Ser. No. 12/288,158, filed Oct. 15, 2008,
and entitled "NLP-BASED ENTITY RECOGNITION AND DISAMBIGUATION,"
both of which are incorporated herein by reference in their
entirety. The use of relationship searching, enables the ARS 200 to
establish second order (or greater order) relationships between
entities and to store such information.
[0023] For example, given a sentence such as "Sean Connery starred
in Goldfinger," the content ingester 211 may identify "Sean
Connery" as the sentence subject, "starred" as the sentence verb,
and "Goldfinger" as the sentence object. The identified subjects
and objects are then added as disambiguated entities to the entity
store 217b. In the above example, "Sean Connery" and "Goldfinger"
would be added to the entity store 217b. The identified verbs can
then be used to define relationships between the identified
entities. These defined relationships (e.g., stored as
subject-verb-object or SAO triplets, or otherwise) are then stored
in the data store 217, either as part of the entity store 217b or a
separate relationship index. Thus, in the above example, a
representation of the fact that the actor Sean Connery starred in
the film Goldfinger would be added to a relationship index.
[0024] The content ingester 211 may determine various kinds of
information about entities and relationships. In one embodiment,
the content ingester 211 determines categories or facets, which
include finely grained characteristics of entities, such as entity
types, classes, roles, qualities, functions, and the like. For
example, the entity Sean Connery may have various associated
facets, including that of actor, producer, knight, and Scotsman.
The facet information for entities may be also stored in the entity
store 217b. Table 2, below, includes a list of example facets.
Fewer, greater, or different facets may be incorporated or
utilized.
[0025] The content ingester 211 may also rank determined entities
by their importance and relevance to a particular content items
main subject. In one embodiment, such a ranking is based on various
factors, including the number of times an entity is mention in text
of the content item; the position of each mention, such as entities
appearing in document title are weighted more, entities appearing
earlier in a document are weighted more than the entities appearing
later, entities appearing in boilerplate text (typical for news
articles or blogs on the Web) are weighted less, and the like;
penalties for certain types of entities, such as by decreasing the
weight of a publisher entity if the publisher of a document is
referenced in the text of the document, or by decreasing the weight
of location names; and the like.
[0026] The entity store 217b is a repository of entities (e.g.,
people, organization, place names, products, events, things),
concepts, and other semantic information. In at least some
embodiments, the entities in the entity store 217b are related such
that they form a semantic network, taxonomy, or graph. The entities
in the entity store 217b are associated with categories/facets. The
categories themselves are organized into one or more taxonomies
based on taxonomic relations such as is-a, part-of, member-of, and
the like. In addition, entities are associated with certain
properties, such as name and aliases, a unique identifier, types
and facets, descriptions, and the like. Entities may also have
type/facet-specific properties. For example, for a sports athlete,
common properties may include: birth place, birth date, sports
teams, player positions, awards, and the like. Note that some of
the properties are relational, that is, the property value may
itself be another entity in the entity store 217b. For example, the
team property for an athlete may be link to a sports team entity in
the entity store 217b, and vice versa. Thus, the entities in the
entity store 217b are interconnected through the property links,
creating a semantic network or graph. Certain taxonomic relations
are represented as such property links (e.g., the "member-of"
relation for the players-team relation, and team-league relation in
the sports domain). In some embodiments, the entities, their
taxonomic paths and/or properties are extracted from one or more
structured and semi-structured sources (e.g., Wikipedia). In other
embodiments, the process of identifying entities may be at least in
part manual. For example, entities may be provisionally identified
by the content ingester 211, and then submitted to humans for
editing, finalization, review, and/or approval.
[0027] The content ingester 211 also records an entry for each
processed document in the content index 217a. In some embodiments,
the content index 217a associates content items with one or more
entities and categories, and vice versa, in order to support
efficient searches such as searches for content items having a
particular entity or for categories associated with a particular
content item. For example, given an entity or facet, the ARS 200
may provide a list of content items that reference that facet. In
addition, given an indication of a content item, the ARS may
provide a list of entities or facets referenced by that content
item.
[0028] The activity ingester 212 determines semantic information
about activities, such as mobile applications or Websites, and
stores the determined information in the data store 217. The
activity ingester 212 determines semantic information about
activities by using techniques such as those described with respect
to the content ingester 211. As discussed further below, the
activity ingester 212 processes information about activities, such
as text documents describing mobile applications, and determines
semantic information based upon the processed information. The
activity ingester 212 determines semantic information sufficient to
support searches for applications or other activities using
semantic queries. For example, given an entity, the ARS 200 can
provide a ranked list of activities about or related to that
entity. As another example, given a category or facet, the ARS 200
can provide a ranked list of activities about or related to that
category.
[0029] In one embodiment, the activity ingester 212 crawls and
pulls feeds from various activity sources 265, such as mobile
application "stores," such as Apple's iTunes App Store for iPhone
and iPad, and Google's Android Market for mobile applications
running on Android phones. In addition, the activity ingester 212
crawls or pulls feeds from certain mobile Websites, such as
Fandango sites for listing movie show times and purchasing tickets;
Stubhub sites for event tickets; Amazon.com sites for purchasing
productions such as albums, books, videos, and the like; Netflix
site for renting videos; and the like.
[0030] In one embodiment, an activity source 265 provides a feed
(e.g., RSS feed) of information about mobile applications available
at that source. The mobile applications described in the feed are
ranked by a popularity measure, such as number of downloads. In
addition, for each mobile application, the feed may include the
following types of information: an identifier (e.g., a URL), a
title, a summary (e.g., a text, HTML, or XML description), a
category, a publisher name, a price, a time stamp, a ranking, and
the like. The activity ingester 212 may also use information from
other sources, such as reviews of mobile applications (e.g., posted
on technology news sites), instructions or help files (e.g.,
included as part of an application distribution, posted or provided
by an application publisher), or the like.
[0031] The activity ingester 212 processes the textual components
of the received information, such as the title, summary, and/or
description, and determines the entities and facets that are
referenced therein. The activity ingester 212 then records, in the
activity index 217c, an association between each processed
application and at least some of the corresponding determined
entities and facets. In some embodiments, the activity ingester 212
limits its consideration to some predetermined number (e.g., the
top five) entities or facets. In order to support efficient search
queries, the activity ingester 212 may also index the recorded
associations in an inverted manner, such that for each
entity/facet, a list of applications that reference or are
otherwise related to that entity/facet can be returned. In
addition, the activity ingester 212 may update its mappings and
other information frequently, such as on a daily basis, such that
new or newly popular applications can be identified.
[0032] A similar approach to that described above can be utilized
to determine semantic information about mobile Websites. For
example, the activity ingester 212 may crawl various Websites in
order to identify those that host mobile content. In other
embodiments, one or more mobile Websites may be manually
identified. Then, for each identified mobile Website, the activity
ingester 212 may further process content associated with that
Website (e.g., instructions for use, descriptions) to determine
semantic information such as various entities and/or facets that
describe the function, operation, category, or domain of the mobile
Website. Then, the determined semantic information is stored in the
activity index 217c, such that the ARS 200 can efficiently answer
queries about mobile Websites that reference or are otherwise
related to particular entities or facets.
[0033] The activity recommender 213 receives context information
from a mobile device 201 used by a user 202, and in response,
returns indications of relevant activities. For example, if the
user 202 is browsing a particular Web page with the device 201, an
indication of the Web page may be transmitted to the activity
recommender 213, and in response the activity recommender provides
a list of activities that are relevant to the Web page. As will be
discussed below, the device 201 may include a client-side module
that provides context information to the activity recommender 213.
The client-side module may take various forms or be integrated into
the device in various ways, such as part of the operating system of
the device 201, part of an application that executes on the device
201, or the like.
[0034] When the activity recommender 213 receives an indication of
a Web page or other content item, the activity recommender 213
identifies a list of entities referenced by the Web page, ranked by
their relevance and importance to the Web page. Each entity is also
associated with one or more facets, such as its main or primary
facets (e.g., as determined by some ranking of importance) and/or a
predetermined number (e.g., five, ten) facets. Note that in some
cases, such processing may have been previously performed (e.g., by
the content ingester 211), such that identifying referenced
entities is merely a matter of accessing an index of such
information. Then, for each entity referenced by the Web page, the
activity recommender 212 determines a ranked list of recommended
activities. For each entity, one or more of the following
approaches are used to find relevant activities (e.g., mobile
applications): (1) locate mobile applications about the entity
specifically; (2) locate mobile applications based on other
entities directly related to the given entity, by using the
relations derived from the semantic network that links together
entities in the entity store 217b; and (3) locate mobile
applications based on one or more facets of the given entity, as
well as the taxonomic hierarchy of each facet.
[0035] In some embodiments, the activity recommender 213 begins by
searching for applications that are very specific to the given
entity. Then, the activity recommender 213 gradually relaxes the
restriction, by finding applications related to the entity's facets
or related entities. For example, given the entity "Kobe Bryant" of
the NBA's Los Angeles Lakers, the activity recommender 213 may
construct a list of recommendations that includes mobile
applications that are specific to the player himself, mobile
applications about the Los Angeles Lakers, mobile applications
about basketball and/or the NBA, and mobile applications about
sports in general, such as a sports trivia application, ESPN sports
scores application, or the like. Related applications (e.g., a
Lakers application, an ESPN sports scores application) are
identified by taking advantage the semantic properties and
relations from the entity store 217b. For example, given the entity
"Kobe Bryant," the relevant properties may include:
facet=basketball player; domain=sports; team=Los Angeles Lakers;
sports league=NBA. Note that the team and sports league properties
link to other entities in the entity store 217b, namely "Lakers"
and "NBA." Given the identifier of each entity, the activity
recommender 213 looks up relevant mobile applications from the
activity index 217c (e.g., applications for Lakers, and
applications for NBA). In other words, the activity recommender 213
traverses ("rolls up") semantic hierarchies or interconnections
represented in the entity index 217 as necessary to find related
applications. For example, the activity recommender 213 can roll up
the is-a taxonomic hierarchy to determine that Kobe Bryant is an
NBA basketball player, that an NBA basketball player is a
basketball player, and that a basketball player is an athlete, and
then use that information to locate applications about or for
athletes generally. As another example, the activity recommender
212 can roll up the member-of relations to determine that a
basketball player is a member of a basketball team, and that a
basketball team is a member of a basketball league, and then use
that information to locate applications about basketball
leagues.
[0036] The relations or taxonomic paths used by the activity
recommender 213 may be specified with respect to categories/facets
or other kinds of semantic information. The specific relations or
taxonomic paths can be determined manually or through an automated
data mining process. For example, given a basketball_player facet,
the data mining process may determine the most popular and unique
relations and properties. In addition, the particular facets or
related entities to use to find applications for a given entity may
also be driven by a data mining process. For example, for a given
entity, other entities or facets that are closely related may be
determined by mining the latest news to identify timely connections
between various entities. In some cases, the number of relations or
paths to utilize may be determined manually or programmatically.
For example, in some embodiments the activity recommender 213 may
be configured to consider at most N (an integer number) taxonomic
paths, where N is determined by user preference, operator setting,
and/or some data mining technique.
[0037] Other types of context information may be used by the
activity recommender 213. For example, in addition to (or instead
of) analyzing the content that user 202 is accessing, the activity
recommender 213 may use location information associated with the
user 202, such as GPS coordinates provided by the device 201, an
address or portion thereof associated with the user (e.g., a home
address or zip code determined by reference to an account of the
user), or the like. When purchasing tickets or performing some
other transaction/activity, such location information may be used
to determine a default value for a location required as part of the
transaction, such as a shipping address, a home address, a venue
location, or the like. In other cases, recommendations may be
weighted or targeted based on a location associated with a user
(e.g., current location, home address), so as to provide
recommendations that are geographically relevant to the user. For
example, if the user resides in Los Angeles and is reading a news
story about a game between the Los Angeles Lakers and the Boston
Celtics, the activity recommender 213 may prefer (e.g., emphasize,
weight, rank) activities that are more relevant to Los Angeles
(e.g., Lakers game schedule, Lakers tickets) over those that are
more relevant to Boston (e.g., Celtics game schedule).
[0038] As another example, context information may include
information about what applications are or are not already
installed on a mobile device. In some embodiments, targeted or
related recommendations may be made based on the existence of a
particular application on a mobile device. For example, if a user
has a particular eBook reader or other media viewer/player
installed on his mobile device, the activity recommender 213 may
recommend a relevant book or other media package that is compatible
with the installed media viewer. Thus, if the user is reading a
news article about President Obama, the activity recommender 213
may recommend an eBook that is by or about President Obama and that
is compatible with an eBook reader on the mobile device.
[0039] In other embodiments, context information may be based on
the activities of other users. For example, through collaborative
filtering or other data mining techniques, it may be determined
that users who purchased a first application typically also
purchased a second application. Then, when recommending
applications to a user who has purchased the first application, the
second application may be ranked more highly. In other embodiments,
user preferences may be determined based on explicit feedback for
provided recommendations (e.g., via a thumbs up/down user interface
control) and/or implicit feedback based on whether or not users
accept recommendations. Such user preferences may be collected and
aggregated over a large user population and used to improve
recommendation quality. In addition, such user preferences can be
linked or otherwise utilized in conjunction with demographic
information about users, to improve or better target
recommendations.
[0040] In addition, although the described techniques for activity
recommendation are illustrated primarily with respect to textual
content, other types of content are contemplated. For example,
other embodiments may utilize at least some of the described
techniques to perform or facilitate the recommendation of
activities based on other types of content, including
advertisements, audio (e.g., music), video, images, and the like.
In some embodiments, the ARS 200 is configured to ingest video
streams (e.g., live streaming of sports games) in a similar
fashion. In particular, the ARS 200 may obtain text content from
the stream via either closed captions or speech recognition. Then,
the ARS 200 analyzes the obtained text content as discussed above,
such that when particular entities or concepts are recognized, the
ARS 200 recommends relevant activities. For example, the ARS 200
may consume a live stream of a baseball game or other sporting
event, and recommend mobile applications or Websites dedicated to
particular players when their names are mentioned.
[0041] Furthermore, the described techniques are not limited to the
specific architecture shown in FIG. 2. For example, in some
embodiments, content and activity ingestion may be performed by
another (possibly external or remote) system or component, such as
a stand-alone mobile application search and discovery system. In
other embodiments, the ARS 200 may not interact directly with
users, but rather provide user interface components (e.g.,
recommender widgets, plug-ins) that may be embedded or otherwise
incorporated in third-party applications or systems, such as Web
sites, smart phones, desktop systems, and the like.
[0042] FIGS. 3A-3I illustrate example screen displays provided by
example embodiments of an activity recommendation system. In
particular, FIGS. 3A-3I depict screen displays provided by various
mobile applications that have each been integrated with, or are
otherwise interacting with, the activity recommendation system. The
illustrated mobile applications include a domain-based content
recommender, a Web browser, and a video application.
[0043] FIG. 3A shows a home screen provided by a mobile device. In
particular, FIG. 3A illustrates a screen 300, such as may be part
of the mobile device 100 described with respect to FIG. 1. The
screen 300 is displaying three icons 301-303. Icon 301, when
selected by a user, initiates execution of a domain-based content
recommender application that includes facilities for recommending
activities, as described further with respect to FIGS. 3B-3E.
Techniques for content recommendation are described further in U.S.
patent application Ser. No. 12/288,349, filed Oct. 16, 2008, and
entitled "NLP-BASED CONTENT RECOMMENDER," which is incorporated
herein by reference in its entirety. Icon 302, when selected by a
user, initiates execution of a mobile Web browser that can browse a
Web site that includes an activity recommender widget, as described
further with respect to FIGS. 3F-3G. Icon 303, when selected by a
user, initiates execution of a mobile video application that
interacts with facilities for recommending activities, as described
further with respect to FIGS. 3H-3I.
[0044] FIGS. 3B-3E illustrate activity recommendation integrated
into a mobile application that is executing on a mobile device. In
particular, FIGS. 3B-3E illustrate operation of a domain-based
content recommendation application that includes facilities for
activity recommendation. The illustrated domain-based content
recommendation application provides content recommendations with
respect to baseball. Content recommendations may include Web pages,
videos, audio, and the like. Content recommenders configured for
other domains are contemplated, including celebrity gossip, other
sports (e.g., basketball), news topic areas (e.g., business news,
environmental news, politics), hobbies or lifestyle domains (e.g.,
cooking, dieting, personal health), and the like.
[0045] FIG. 3B illustrates a home screen 310 of the content
recommendation application. The home screen 310 organizes content
recommendations into topics, here called "channels." For example,
the home screen 310 includes indications of channels for Top
Baseball News, Trade Talk, Injuries, as well as various teams
(e.g., Atlanta Braves). When the user selects one of the indicated
channels a content recommendation screen is displayed, as described
next.
[0046] FIG. 3C illustrates a content recommendation screen 320 of
the content recommendation application. The screen 320 is presented
in response to a user selection of a channel (not shown in FIG. 3B)
for the Seattle Mariners baseball team. The screen 320 includes
content snippets 321-323 that each provide a title and summary for
a corresponding content item that is related to the selected
channel, in this case the Seattle Mariners. Each snippet 321-323 is
interactive, in that it can be selected to obtain the corresponding
content item, as described with respect to FIG. 3D. In addition,
each snippet 321-323 includes a control, such as control 324 that
can be selected by a user to obtain activity recommendations with
respect to the corresponding content item, as described with
respect to FIG. 3E.
[0047] FIG. 3D illustrates a content screen 330 of the content
recommendation application. The illustrated content screen 330 is
displayed in response to a user selection of content snippet 321
shown in FIG. 3C. The screen 330 displays a Web page 331 that
discusses current news regarding the Seattle Mariners. Note that
the illustrated Web page 331 references various entities, including
the Seattle Mariners, New York, the Baltimore Orioles, and various
players (e.g., David Pauley, Jason Vargas). As discussed above, the
ARS processes the text on the Web page 331 to identify these (and
other entities) as well as associated facets/categories (e.g.,
baseball team, city, sports league). The screen 330 further
includes a control 332 that can be selected by a user to obtain
activity recommendations with respect to the Web page 331, as
described next.
[0048] FIG. 3E illustrates an activity recommendation screen 340 of
the content recommendation application. The activity recommendation
screen 340 is displayed in response to user selection of control
324 (FIG. 3C) and/or control 332 (FIG. 3D). The screen 340 includes
a content snippet 341 that provides information about the content
item for which activities are being recommended. The screen 340
further includes a related applications section 342, a related
Websites section 343, and a control 344 for obtaining additional
recommended activities. The sections 342 and 343 include controls
(e.g., buttons) that can be selected to obtain or otherwise access
corresponding mobile applications or Websites. For example, upon
selecting control 345, the user will be provided with the option to
install a Major League Baseball mobile application for obtaining
scores, statistics, and other information. Note that such an
application is included as a recommended application even though
the content item shown in the snippet 341 may not necessarily
directly reference the entity Major League Baseball. As discussed
above, the content item discusses the entity Seattle Mariners,
which the ARS can determine is a member of Major League Baseball,
based on a semantic network or other structure for representing
knowledge maintained by the ARS or some other system.
[0049] Some embodiments recommend activities or perform other
functions by taking into account information about what
applications are already installed or used by a mobile device. In
particular, the function(s) performed when a user selects one of
the controls in sections 342 and 343 may be based at least in part
on the mobile applications that are or are not already installed on
the mobile device. For example, if a mobile device already includes
a recommended mobile application, the application may be launched
directly. On some platforms, this may be accomplished by way of a
registered URL scheme, such as comgoogleearth: (e.g., for Google
Earth), fb: (e.g., for Facebook), skpe: (e.g., for Skype).
Parameters or other data obtained from the corresponding content
item may also be passed along to facilitate a seamless application
launch, including telephone numbers, location information, personal
information, or the like. On the other hand, if the mobile device
does not already have a recommended application installed, the user
may be provided with the option to install the application, or the
application may be installed automatically, possibly determined by
user preferences or other settings.
[0050] FIGS. 3F-3G illustrate activity recommendation integrated as
a widget on a Web page. FIG. 3F illustrates a Web browser screen
350. The screen 350 is displaying a Web page 351 that discusses
drinking water as part of a weight loss regimen. The Web page 351
further includes a control (e.g., an icon) 352 that can be selected
by a user to execute a remotely-hosted recommendation widget that
can provide activity recommendations with respect to the
illustrated Web page 351, as described next.
[0051] FIG. 3G illustrates an activity recommendation screen 360
displayed by a remotely-hosted Web-based recommendation widget. In
the illustrated embodiment, the control 352 of FIG. 3F links to a
code module (e.g., a JavaScript module) that is downloaded to, and
executed by, the Web browser of the mobile device to present the
activity recommendation screen 360. In this manner, activity
recommendations can be provided even though the user has not
installed any specific activity recommendation software on his
mobile device. In other embodiments, other types of user interface
components may be presented by the recommendation widget, including
popups, menus, or the like. The screen 360 is similar to the
activity recommendation screen 340 described with respect to FIG.
3E, except that screen 360 includes recommendations tailored to the
content of Web page 351. In particular, screen 360 includes
recommended activities with respect to dieting, personal health,
and medical research, which are all entities that are directly or
indirectly referenced by the Web page 351.
[0052] FIGS. 3H-3I illustrate activity recommendation provided as
part of a mobile device operating system and not integrated into
any particular application executing on a mobile device. In the
illustrated example, an activity recommendation module executes as
a service or other component managed by the operating system of a
mobile device. In such an embodiment, activity recommendation need
not necessarily be integrated into any particular application, but
is rather provided by the mobile device itself. The activity
recommendation module may execute concurrently with other mobile
applications, monitoring the content accessed by those
applications, and determining activity recommendations.
[0053] FIG. 3H shows a video player application 370. When a user
operates the video player application 370 to view a video stream,
the activity recommendation module may access the stream and
related data (e.g., summary, title, closed captions) and determine
recommended activities based on semantic information contained
therein. In this example, when the user selects a particular
control (e.g., hardware control 104 of FIG. 1, a software menu
item), the mobile device presents the determined recommended
activities, as described next.
[0054] FIG. 3I shows illustrates an activity recommendation screen
380 displayed by an activity recommender module of a mobile device
in response to a user input. The screen 380 is similar to the
activity recommendation screen 340 described with respect to FIG.
3E, except that screen 380 includes recommendations tailored to the
video and associated content displayed in the video player
application 370. In particular, screen 380 includes recommended
activities with respect to the Washington Post newspaper, oil
spills, the White House, and the environment, which are all
entities or categories that are directly or indirectly referenced
by the video and associated content of the video player application
370.
[0055] Although the activity recommendation techniques of FIGS.
3A-3I have been described primarily with reference to Web-based and
mobile technologies, the described techniques are equally
applicable in other contexts. For example, activity recommendation
may be performed in the desktop computing context, such that
plug-ins, add-ons, or applications may be recommended based on
context information associated with the operation of a desktop
computer, such as Web pages accessed by a user.
[0056] FIG. 4 is an example block diagram of an example computing
system for implementing an activity recommendation system according
to an example embodiment. In particular, FIG. 4 shows a computing
system 400 that may be utilized to implement an activity
recommendation system 410.
[0057] Note that one or more general purpose or special purpose
computing systems/devices may be used to implement the activity
recommendation system 410. In addition, the computing system 400
may comprise one or more distinct computing systems/devices and may
span distributed locations. Furthermore, each block shown may
represent one or more such blocks as appropriate to a specific
embodiment or may be combined with other blocks. Also, the activity
recommendation system 410 may be implemented in software, hardware,
firmware, or in some combination to achieve the capabilities
described herein.
[0058] In the embodiment shown, computing system 400 comprises a
computer memory ("memory") 401, a display 402, one or more Central
Processing Units ("CPU") 404, Input/Output devices 404 (e.g.,
keyboard, mouse, CRT or LCD display, and the like), other
computer-readable media 405, and network connections 406. The
activity recommendation system 410 is shown residing in memory 401.
In other embodiments, some portion of the contents, some or all of
the components of the activity recommendation system 410 may be
stored on and/or transmitted over the other computer-readable media
405. The components of the activity recommendation system 410
preferably execute on one or more CPUs 403 and recommend activities
based on mobile device context, as described herein. Other code or
programs 430 (e.g., an administrative interface, a Web server, and
the like) and potentially other data repositories, such as data
repository 420, also reside in the memory 401, and preferably
execute on one or more CPUs 403. Of note, one or more of the
components in FIG. 4 may not be present in any specific
implementation. For example, some embodiments may not provide other
computer readable media 405 or a display 402.
[0059] In a typical embodiment, the activity recommendation system
410 includes a content ingester 411, an activity ingester 412, an
activity recommender 413, a user interface manager 415, a
recommender application program interface ("API") 416, and a data
store 417. The content ingester 411, activity ingester 412, user
interface manager 415, and recommender API 416 are drawn in dashed
lines to emphasize that in other embodiments, functions performed
by one or more of these components may be performed externally to
the activity recommendation system 410. For example, a separate
mobile application search and discovery system may host the content
ingester 411, activity ingester 412, and at least some of the data
store 417.
[0060] The content ingester 411 performs functions such as those
described with reference to the content ingester 211 of FIG. 2. The
ingester 411 obtains content items, such as Web pages, Blog
postings, videos, audio files, and the like from various content
sources 455 via network 450, and stores semantic information about
the obtained content items (e.g., entities and relationships
between them) in the data store 417, for use by other components,
such as the activity ingester 412 and/or the activity recommender
413.
[0061] The activity ingester 412 performs functions such as those
described with reference to the activity ingester 212 of FIG. 2.
The activity ingester 412 obtains and processes information about
activities, such as mobile applications and/or Websites. The
activity ingester stores semantic information about ingested mobile
applications and Websites in the data store 417, for use by other
components such as the activity recommender 413.
[0062] The UI manager 415 provides a view and a controller that
facilitate user interaction with the activity recommendation system
410 and its various components. For example, the UI manager 415 may
provide interactive access to the activity recommendation system
410, such that users can search for applications related to
particular entities or categories. In some embodiments, access to
the functionality of the UI manager 415 may be provided via a Web
server, possibly executing as one of the other programs 430. In
such embodiments, a user operating a Web browser executing on one
of the client devices 460 can interact with the activity
recommendation system 410 via the UI manager 415. For example, a
user may manually submit a search for mobile applications that are
about or related to a specified entity.
[0063] The activity recommender 413 performs functions such as
those described with reference to the activity recommender 213 of
FIG. 2. The recommender 413 receives from one of the mobile devices
460, possibly via the UI manager 415 or the API 416, an indication
of a content item. In response, the recommender 413 determines
activities that are related to the indicated content item, and
transmits the determined activities to the mobile device 460. The
mobile device itself may have client logic that interacts with the
activity recommender 413, such as a portion of a mobile application
executing on the mobile device (e.g., the domain-based content
recommender of FIGS. 3B-3E), a network-accessible code module that
is downloaded to and executed by the mobile device in the context
of some other application (e.g., the Web browser of FIGS. 3F-3G), a
portion or service of the operating system of the mobile device
(e.g., as discussed with respect to the video player of FIGS.
3H-3I), or the like.
[0064] The API 416 provides programmatic access to one or more
functions of the activity recommendation system 410. For example,
the API 416 may provide a programmatic interface to one or more
functions of the activity recommendation system 410 that may be
invoked by one of the other programs 430 or some other module. In
this manner, the API 416 facilitates the development of third-party
software, such as user interfaces, plug-ins, news feeds, adapters
(e.g., for integrating functions of the activity recommendation
system 410 into Web applications), and the like. In addition, the
API 416 may be in at least some embodiments invoked or otherwise
accessed via remote entities, such as code executing on one of the
mobile devices 460, to access various functions of the activity
recommendation system 410. For example, an application on a mobile
device may obtain recommended activities for a specified content
item via the API 416. As another example, one of the activity
sources 465 may push information about mobile applications to the
activity recommendation system 410 via the API 416. The API 416 may
also be configured to provide recommendation widgets (e.g., code
modules) that can be integrated into third-party applications and
that are configured to interact with the activity recommendation
system 410 to make at least some of the described functionality
available within the context of other applications.
[0065] The data store 417 is used by the other modules of the
activity recommendation system 410 to store and/or communicate
information. As discussed above, components 411-416 use the data
store 417 to record various types of information, including
semantic information about content and/or activities, such as
entities, categories, and relationships. Although the components
411-416 are described as communicating primarily through the data
store 417, other communication mechanisms are contemplated,
including message passing, function calls, pipes, sockets, shared
memory, and the like.
[0066] The activity recommendation system 410 interacts via the
network 450 with content sources 455, activity sources 465, and
mobile devices 460. The network 450 may be any combination of media
(e.g., twisted pair, coaxial, fiber optic, radio frequency),
hardware (e.g., routers, switches, repeaters, transceivers), and
protocols (e.g., TCP/IP, UDP, Ethernet, Wi-Fi, WiMAX) that
facilitate communication between remotely situated humans and/or
devices. The mobile devices 460 include notebook computers, mobile
phones, smart phones, tablet computers, personal digital
assistants, and the like.
[0067] In an example embodiment, components/modules of the activity
recommendation system 410 are implemented using standard
programming techniques. For example, the activity recommendation
system 410 may be implemented as a "native" executable running on
the CPU 403, along with one or more static or dynamic libraries. In
other embodiments, the activity recommendation system 410 may be
implemented as instructions processed by a virtual machine that
executes as one of the other programs 430. In general, a range of
programming languages known in the art may be employed for
implementing such example embodiments, including representative
implementations of various programming language paradigms,
including but not limited to, object-oriented (e.g., Java, C++, C#,
Visual Basic.NET, Smalltalk, and the like), functional (e.g., ML,
Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada,
Modula, and the like), scripting (e.g., Perl, Ruby, Python,
JavaScript, VBScript, and the like), and declarative (e.g., SQL,
Prolog, and the like).
[0068] The embodiments described above may also use either
well-known or proprietary synchronous or asynchronous client-server
computing techniques. Also, the various components may be
implemented using more monolithic programming techniques, for
example, as an executable running on a single CPU computer system,
or alternatively decomposed using a variety of structuring
techniques known in the art, including but not limited to,
multiprogramming, multithreading, client-server, or peer-to-peer,
running on one or more computer systems each having one or more
CPUs. Some embodiments may execute concurrently and asynchronously,
and communicate using message passing techniques. Equivalent
synchronous embodiments are also supported. Also, other functions
could be implemented and/or performed by each component/module, and
in different orders, and by different components/modules, yet still
achieve the described functions.
[0069] In addition, programming interfaces to the data stored as
part of the activity recommendation system 410, such as in the data
store 417, can be available by standard mechanisms such as through
C, C++, C#, and Java APIs; libraries for accessing files,
databases, or other data repositories; through scripting languages
such as XML; or through Web servers, FTP servers, or other types of
servers providing access to stored data. The data store 417 may be
implemented as one or more database systems, file systems, or any
other technique for storing such information, or any combination of
the above, including implementations using distributed computing
techniques.
[0070] Different configurations and locations of programs and data
are contemplated for use with techniques of described herein. A
variety of distributed computing techniques are appropriate for
implementing the components of the illustrated embodiments in a
distributed manner including but not limited to TCP/IP sockets,
RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the
like). Other variations are possible. Also, other functionality
could be provided by each component/module, or existing
functionality could be distributed amongst the components/modules
in different ways, yet still achieve the functions described
herein.
[0071] Furthermore, in some embodiments, some or all of the
components of the activity recommendation system 410 may be
implemented or provided in other manners, such as at least
partially in firmware and/or hardware, including, but not limited
to one or more application-specific integrated circuits ("ASICs"),
standard integrated circuits, controllers executing appropriate
instructions, and including microcontrollers and/or embedded
controllers, field-programmable gate arrays ("FPGAs"), complex
programmable logic devices ("CPLDs"), and the like. Some or all of
the system components and/or data structures may also be stored as
contents (e.g., as executable or other machine-readable software
instructions or structured data) on a computer-readable medium
(e.g., as a hard disk; a memory; a computer network or cellular
wireless network or other data transmission medium; or a portable
media article to be read by an appropriate drive or via an
appropriate connection, such as a DVD or flash memory device) so as
to enable or configure the computer-readable medium and/or one or
more associated computing systems or devices to execute or
otherwise use or provide the contents to perform at least some of
the described techniques. Some or all of the system components
and/or data structures may be stored as non-transitory content on
one or more tangible computer-readable mediums. Some or all of the
system components and data structures may also be stored as data
signals (e.g., by being encoded as part of a carrier wave or
included as part of an analog or digital propagated signal) on a
variety of computer-readable transmission mediums, which are then
transmitted, including across wireless-based and wired/cable-based
mediums, and may take a variety of forms (e.g., as part of a single
or multiplexed analog signal, or as multiple discrete digital
packets or frames). Such computer program products may also take
other forms in other embodiments. Accordingly, embodiments of this
disclosure may be practiced with other computer system
configurations.
[0072] FIG. 5 is an example flow diagram of an activity
recommendation process performed by an example embodiment. In
particular, FIG. 5 illustrates a process that may be implemented
by, for example, one or more elements of the activity
recommendation system 200, such as the activity recommender 213,
described with reference to FIG. 2. In other embodiments, the
process may be performed primarily on a mobile device, possibly in
cooperation with a remote activity recommendation system 200. The
process recommends activities based on content items accessed via a
mobile device.
[0073] The illustrated process begins at block 502, where it
receives an indication of a content item accessed by a mobile
device. The content item may be a Web page that is being accessed
by the mobile device, such as via a Web browser executing on the
device.
[0074] At block 504, the process determines semantic information
about the indicated content item. Determining semantic information
may include processing the content item to identify entities and/or
categories referenced by or related to the content item. In other
embodiments, the content item may have been previously processed,
such that determining the semantic information may include
accessing a data repository to look up the semantic information
associated with the content item.
[0075] At block 506, the process determines an activity that has
one or more entities and/or categories in common with the
determined semantic information. Determining an activity may
include determining one or more mobile applications and/or Websites
that have entities and/or categories that match (e.g., are the same
as or similar to) one or more entities or categories of the content
item. This may include processing information about one or more
mobile applications and/or Websites to determine entities and/or
categories related thereto. In some embodiments, this operation may
have been previously performed, such that the entities/categories
can be determined by way of a look up in a table or other data
repository.
[0076] At block 508, the process provides information about the
determined activity. Providing information may include transmitting
the information to the mobile device for display thereon, such as
by a recommendation component executing on the mobile device. In
other embodiments, such as when the illustrated process is
performed on the mobile device, providing information may include
displaying the information. After block 508, the process returns.
In other embodiments the process may instead proceed to one of
blocks 502-506 to make further recommendations.
[0077] Some embodiments perform one or more operations/aspects in
addition to, or instead of, the ones described with reference to
the process of FIG. 5. For example, in one embodiment, the process
also or instead uses other context information, such as user
preferences, user location, operational state data of the
hardware/software of the mobile device, or the like.
[0078] FIG. 6 is an example flow diagram of a mobile application
search and discovery process performed by an example embodiment. In
particular, FIG. 6 illustrates a process that may be implemented
by, for example, one or more elements of the activity
recommendation system 200, such as the activity ingester 212 and
the data store 217, described with reference to FIG. 2. The process
responds to semantic search queries for mobile applications.
[0079] The process begins at block 602 where it generates an index
of semantic information, including entities and categories, for
multiple mobile applications. Generating the index may include
crawling or otherwise processing information about mobile
applications and/or Websites in order to determine semantic
information, including entities and/or categories that are related
to the mobile applications. The processed information about the
mobile applications may be represented as textual data such as
titles, summaries, descriptions, help files, reviews, instruction
manuals, and the like. The information about the mobile
applications may be obtained from various sources, including "app
stores" (e.g., Android Market, Apple App Store), mobile Websites
(e.g., Fandango movie tickets mobile Website), third-party Websites
(e.g., mobile application review sites, blogs), and the like.
[0080] The semantic information determined as part of the indexing
process may include entities and categories/facets that describe or
are otherwise related to the mobile applications. For example, a
Seattle Mariners mobile application may be associated with entities
such as Seattle and Seattle Mariners, and categories such as
baseball_team and sports_team. The mobile applications are then
associated (e.g., tagged) with their corresponding determined
semantic information, and such associations are stored in a data
structure (e.g., hash table, index, tree), such that mobile
applications having a particular entity or category can be
efficiently identified.
[0081] At block 604, the process receives a semantic search query.
The semantic search query specifies at least one entity (e.g.,
Seattle) or category (e.g., baseball_team). The semantic search
query may support various types of searches, including searches for
applications about a particular entity (e.g., mobile applications
about the Seattle Mariners); searches for applications about a
particular category, genre, or group of entities (e.g., mobile
applications about baseball teams, mobile applications about heavy
metal music); searches for applications that are related to
particular entities or categories (e.g., mobile applications about
movies starring a specified actor).
[0082] At block 606, the process determines one or more of the
multiple mobile applications that have semantic information
matching the received query. Determining the one or more mobile
applications includes accessing the index or other data structure
generated at block 602 to determine which mobile applications are
associated with the semantic information (e.g., entities and/or
categories) specified as part of the received search query.
[0083] At block 608, the process provides indications of the
determined one or more mobile applications. Providing the
indications may include transmitting, presenting, storing, or
displaying the indications. After block 608, the process returns.
In other embodiments the process may instead proceed to one of
blocks 602-606 to index additional applications and/or handle
additional search requests.
[0084] Some embodiments perform one or more operations/aspects in
addition to, or instead of, the ones described with reference to
the process of FIG. 6. For example, in one embodiment, the process
orders or ranks the determined one or more applications, based on
various factors, such as importance, relevance, salience of the
entity or category of the search request to each of the one or more
applications; popularity of each of the applications (e.g., based
on number of downloads or user ratings/feedback); and the like.
Example Entity Types
[0085] The following Table defines several example entity types in
an example embodiment. Other embodiments may incorporate different
types.
TABLE-US-00001 TABLE 1 Person Organization Location Concept Event
Product Condition Organism Substance
Example Facets
[0086] The following Table defines several example facets in an
example embodiment. Other embodiments may incorporate different
facets.
TABLE-US-00002 TABLE 2 PERSON actor Evri/Person/Entertainment/Actor
PERSON animator Evri/Person/Entertainment/Animator PERSON
cinematographer Evri/Person/Entertainment/Cinematographer PERSON
comedian Evri/Person/Entertainment/Comedian PERSON fashion_designer
Evri/Person/Entertainment/Fashion_Designer PERSON musician
Evri/Person/Entertainment/Musician PERSON composer
Evri/Person/Entertainment/Musician/Composer PERSON producer
Evri/Person/Entertainment/Producer PERSON director
Evri/Person/Entertainment/Director PERSON radio_personality
Evri/Person/Entertainment/Radio_Personality PERSON
television_personality
Evri/Person/Entertainment/Television_Personality PERSON author
Evri/Person/Entertainment/Author PERSON model
Evri/Person/Entertainment/Model PERSON screenwriter
Evri/Person/Entertainment/Screenwriter PERSON playwright
Evri/Person/Entertainment/Playwright PERSON conductor
Evri/Person/Entertainment/Conductor PRODUCT film
Evri/Product/Entertainment/Movie PRODUCT television_show
Evri/Product/Entertainment/Television_Show PRODUCT album
Evri/Product/Entertainment/Album PRODUCT musical
Evri/Product/Entertainment/Musical PRODUCT book
Evri/Product/Entertainment/Book PRODUCT newspaper
Evri/Product/Publication PERSON politician
Evri/Person/Politics/Politician PERSON cabinet_member
Evri/Person/Politics/Cabinet_Member PERSON government_person
Evri/Person/Politics/Government_Person PERSON
political_party_leader Evri/Person/Politics/Political_Party_Leader
PERSON judge Evri/Person/Politics/Judge PERSON country_leader
Evri/Person/Politics/Politician/World_Leader PERSON
joint_chiefs_of_staff
Evri/Person/Politics/Politician/Joint_Chiefs_of_Staff PERSON
white_house_staff Evri/Person/Politics/White_House_Staff PERSON
activist Evri/Person/Politics/Activist PERSON lobbyist
Evri/Person/Politics/Lobbyist PERSON ambassador
Evri/Person/Politics/Ambassador PERSON analyst Evri/Person/Analyst
PERSON journalist Evri/Person/Journalist PERSON blogger
Evri/Person/Blogger ORGANIZATION band
Evri/Organization/Entertainment/Band ORGANIZATION political_party
Evri/Organization/Politics/Political_Party ORGANIZATION
advocacy_group Evri/Organization/Politics/Advocacy_Group EVENT
film_award_ceremony Evri/Event/Entertainment/Film_Award_Ceremony
EVENT music_award_ceremony
Evri/Event/Entertainment/Music_Award_Ceremony EVENT
television_award_ceremony
Evri/Event/Entertainment/Television_Award_Ceremony EVENT court_case
Evri/Event/Politics/Court_Case ORGANIZATION television_network
Evri/Organization/Entertainment/Company/Television_Network
ORGANIZATION music_production_company
Evri/Organization/Entertainment/Company/Music_Production_Company
ORGANIZATION film_production_company
Evri/Organization/Entertainment/Company/Film_Production_Company
LOCATION congressional_district
Evri/Location/Politics/Congressional_District LOCATION
military_base Evri/Location/Politics/Military_Base ORGANIZATION
congressional_committee
Evri/Organization/Politics/Congressional_Committee ORGANIZATION
international_organization
Evri/Organization/Politics/International_Organization ORGANIZATION
government_agency Evri/Organization/Politics/Government_Agency
ORGANIZATION armed_force Evri/Organization/Politics/Armed_Force
ORGANIZATION terrorist_organization
Evri/Organization/Politics/Terrorist_Organization ORGANIZATION
us_court Evri/Organization/Politics/US_Court ORGANIZATION
cabinet_department Evri/Organization/Politics/Cabinet_Department
LOCATION continent Evri/Location/Continent LOCATION
geographic_region Evri/Location/Geographic_Region LOCATION country
Evri/Location/Country LOCATION province Evri/Location/Province
LOCATION state Evri/Location/State LOCATION city Evri/Location/City
LOCATION us_city Evri/Location/City LOCATION neighborhood
Evri/Location/Neighborhood LOCATION building
Evri/Location/Structure/Building LOCATION island
Evri/Location/Island LOCATION mountain Evri/Location/Mountain
LOCATION body_of_water Evri/Location/Body_of_Water ORGANIZATION
media_companyEvri/Organization/Entertainment/Company/Media_Company
ORGANIZATION haute_couture_house
Evri/Organization/Entertainment/Company/Haute_Couture_House
ORGANIZATION publishing_company
Evri/Organization/Entertainment/Company/Publishing_Company
ORGANIZATION entertainment_company
Evri/Organization/Entertainment/Company CONCEPT fictional_character
Evri/Concept/Entertainment/Fictional_Character PERSON
military_leader Evri/Person/Politics/Military_Leader PERSON
military_person Evri/Person/Politics/Military_Person EVENT
military_conflict Evri/Event/Politics/Military_Conflict PERSON
terrorist Evri/Person/Politics/Terrorist PERSON criminal
Evri/Person/Criminal PERSON explorer Evri/Person/Explorer PERSON
inventor Evri/Person/Technology/Inventor PERSON lawyer
Evri/Person/Lawyer PERSON artist Evri/Person/Artist PERSON painter
Evri/Person/Artist/Painter PERSON revolutionary
Evri/Person/Revolutionary PERSON spiritual_leader
Evri/Person/Spiritual_Leader PERSON philosopher
Evri/Person/Philosopher PERSON anthropologist
Evri/Person/Anthropologist PERSON architect Evri/Person/Architect
PERSON historian Evri/Person/Historian PERSON editor
Evri/Person/Editor PERSON astronaut Evri/Person/Astronaut PERSON
photographer Evri/Person/Photographer PERSON scientist
Evri/Person/Technology/Scientist PERSON economist
Evri/Person/Economist PERSON technology_person
Evri/Person/Technology/Technology_Person PERSON business_person
Evri/Person/Business/Business_Person PERSON stock_trader
Evri/Person/Business/Business_Person/Stock_Trader PERSON first_lady
Evri/Person/Politics/First_Lady ORGANIZATION us_state_legislature
Evri/Organization/Politics/Legislative_Body/State_Legislature
ORGANIZATION legislative_body
Evri/Organization/Politics/Legislative_Body ORGANIZATION
executive_body Evri/Organization/Politics/Executive_Body PERSON
team_owner Evri/Person/Sports/Team_Owner PERSON sports_announcer
Evri/Person/Sports/Sports_Announcer PERSON sports_executive
Evri/Person/Sports/Sports_Executive PERSON olympic_medalist
Evri/Person/Sports/Olympic_Medalist PERSON athlete
Evri/Person/Sports/Athlete PERSON coach Evri/Person/Sports/Coach
PERSON sports_official Evri/Person/Sports/Sports_Official PERSON
motorcycle_driver Evri/Person/Sports/Athlete/Motorcycle_Rider
PERSON race_car_driver Evri/Person/Sports/Athlete/Race_car_Driver
ORGANIZATION auto_racing_team
Evri/Organization/Sports/Auto_Racing_Team PERSON baseball_player
Evri/Person/Sports/Athlete/Baseball_Player ORGANIZATION
baseball_team Evri/Organization/Sports/Baseball_Team PERSON
basketball_player Evri/Person/Sports/Athlete/Basketball_Player
ORGANIZATION basketball_team
Evri/Organization/Sports/Basketball_Team PERSON football_player
Evri/Person/Sports/Athlete/Football_Player ORGANIZATION
football_team Evri/Organization/Sports/Football_Team PERSON
hockey_player Evri/Person/Sports/Athlete/Hockey_Player ORGANIZATION
hockey_team Evri/Organization/Sports/Hockey_Team PERSON
soccer_player Evri/Person/Sports/Athlete/Soccer_Player ORGANIZATION
soccer_team Evri/Organization/Sports/Soccer_Team ORGANIZATION
sports_league Evri/Organization/Sports/Sports_League PERSON
cricketer Evri/Person/Sports/Athlete/Cricketer ORGANIZATION
cricket_team Evri/Organization/Sports/Cricket_Team PERSON cyclist
Evri/Person/Sports/Athlete/Cyclist ORGANIZATION cycling_team
Evri/Organization/Sports/Cycling_Team PERSON volleyball_player
Evri/Person/Sports/Athlete/Volleyball_Player ORGANIZATION
volleyball_team Evri/Organization/Sports/Volleyball_Team PERSON
rugby_player Evri/Person/Sports/Athlete/Rugby_Player ORGANIZATION
rugby_team Evri/Organization/Sports/Rugby_Team PERSON boxer
Evri/Person/Sports/Athlete/Boxer PERSON diver
Evri/Person/Sports/Athlete/Diver PERSON golfer
Evri/Person/Sports/Athlete/Golfer PERSON gymnast
Evri/Person/Sports/Athlete/Gymnast PERSON figure_skater
Evri/Person/Sports/Athlete/Figure_Skater PERSON horse_racing_jockey
Evri/Person/Sports/Athlete/Horse_Racing_Jockey PERSON
lacrosse_player Evri/Person/Sports/Athlete/Lacrosse_Player
ORGANIZATION lacrosse_team Evri/Organization/Sports/Lacrosse_Team
PERSON rower Evri/Person/Sports/Athlete/Rower PERSON swimmer
Evri/Person/Sports/Athlete/Swimmer PERSON tennis_player
Evri/Person/Sports/Athlete/Tennis_Player PERSON
track_and_field_athlete
Evri/Person/Sports/Athlete/Track_and_Field_Athlete PERSON wrestler
Evri/Person/Sports/Athlete/Wrestler PERSON triathlete
Evri/Person/Sports/Athlete/Triathlete EVENT sports_competition
Evri/Event/Sports/Sports_Event/Sporting_Competition EVENT
sports_event Evri/Event/Sports/Sports_Event EVENT olympic_sport
Evri/Event/Sports/Olympic_Sports EVENT election
Evri/Event/Politics/Election LOCATION sports_venue
Evri/Location/Sports/Sports_Venue ORGANIZATION sports_division
Evri/Organization/Sports/Sports_Division ORGANIZATION
sports_event_promotion_company
Evri/Organization/Sports/Sports_Event_Promotion_Company
ORGANIZATION sports_organization
Evri/Organization/Sports/Sports_Organization ORGANIZATION company
Evri/Organization/Business/Company ORGANIZATION news_agency
Evri/Organization/Business/Company/News_Agency PRODUCT cell_phone
Evri/Product/Technology/Cell_Phone PRODUCT computer
Evri/Product/Technology/Computer PRODUCT software
Evri/Product/Technology/Software PRODUCT video_game
Evri/Product/Technology/Software/Video_Game PRODUCT
video_game_console Evri/Product/Technology/Video_Game_Console
PRODUCT media_player Evri/Product/Technology/Media_player
ORGANIZATION website Evri/Organization/Technology/Website
ORGANIZATION technology_company
Evri/Organization/Technology/Company PRODUCT magazine
Evri/Product/Publication ORGANIZATION financial_services_company
Evri/Organization/Business/Company/Financial_Services_Company
ORGANIZATION radio_network
Evri/Organization/Entertainment/Company/Radio_Network ORGANIZATION
futures_exchange Evri/Organization/Business/Futures_Exchange
ORGANIZATION stock_exchange
Evri/Organization/Business/Stock_Exchange ORGANIZATION
government_sponsored_enterprise
Evri/Organization/Politics/Government_Sponsored_Enterprise
ORGANIZATION political_organization
Evri/Organization/Politics/Political_organization ORGANIZATION
labor_union Evri/Organization/Politics/Labor_Union ORGANIZATION
nonprofit_corporation
Evri/Organization/Business/Company/Nonprofit_Corporation
ORGANIZATION nonprofit_organization
Evri/Organization/Nonprofit_Organization ORGANIZATION
national_laboratory Evri/Organization/Politics/National_Laboratory
ORGANIZATION unified_combatant_commands
Evri/Organization/Politics/Unified_Combatant_Commands ORGANIZATION
research_institute Evri/Organization/Research_Institute CONCEPT
stock_market_index Evri/Concept/Business/Stock_Market_Index PERSON
business_executive
Evri/Person/Business/Business_Person/Business_Executive PERSON
corporate_director
Evri/Person/Business/Business_Person/Corporate_Director PERSON
banker Evri/Person/Business/Business_Person/Banker PERSON publisher
Evri/Person/Business/Business_Person/Publisher PERSON us_politician
Evri/Person/Politics/U.S._Politician PERSON nobel_laureate
Evri/Person/Nobel_Laureate PERSON chemist Evri/Person/Chemist
PERSON physicist Evri/Person/Physicist ORGANIZATION
business_organization
Evri/Organization/Business/Business_Organization ORGANIZATION
consumer_organization
Evri/Organization/Business/Consumer_Organization ORGANIZATION
professional_association
Evri/Organization/Business/Professional_Association PERSON investor
Evri/Person/Business/Business_Person/Investor PERSON financier
Evri/Person/Business/Business_Person/Financier PERSON money_manager
Evri/Person/Business/Business_Person/Money_Manager ORGANIZATION
aerospace_company
Evri/Organization/Business/Company/Aerospace_Company ORGANIZATION
advertising_agency
Evri/Organization/Business/Company/Advertising_Company ORGANIZATION
agriculture_company
Evri/Organization/Business/Company/Agriculture_Company ORGANIZATION
airline Evri/Organization/Business/Company/Airline ORGANIZATION
architecture_firm
Evri/Organization/Business/Company/Architecture_Firm ORGANIZATION
automotive_company
Evri/Organization/Business/Company/Automotive_Company ORGANIZATION
chemical_company
Evri/Organization/Business/Company/Chemical_Company ORGANIZATION
clothing_company
Evri/Organization/Business/Company/Clothing_Company ORGANIZATION
consulting_company
Evri/Organization/Business/Company/Consulting_Company ORGANIZATION
cosmetics_company
Evri/Organization/Business/Company/Cosmetics_Company ORGANIZATION
defense_company Evri/Organization/Business/Company/Defense_Company
ORGANIZATION distribution_company
Evri/Organization/Business/Company/Distribution_Company
ORGANIZATION gaming_company
Evri/Organization/Business/Company/Gaming_Company ORGANIZATION
electronics_company
Evri/Organization/Business/Company/Electronics_Company ORGANIZATION
energy_company Evri/Organization/Business/Company/Energy_Company
ORGANIZATION hospitality_company
Evri/Organization/Business/Company/Hospitality_Company ORGANIZATION
insurance_company
Evri/Organization/Business/Company/Insurance_Company ORGANIZATION
law_firm Evri/Organization/Business/Company/Law_Firm ORGANIZATION
manufacturing_company
Evri/Organization/Business/Company/Manufacturing_Company
ORGANIZATION mining_company
Evri/Organization/Business/Company/Mining_Company ORGANIZATION
pharmaceutical_company
Evri/Organization/Business/Company/Pharmaceutical_Company
ORGANIZATION railway_company
Evri/Organization/Business/Company/Railway ORGANIZATION
real_estate_company
Evri/Organization/Business/Company/Real_Estate_Company ORGANIZATION
retailer Evri/Organization/Business/Company/Retailer ORGANIZATION
shipping_company
Evri/Organization/Business/Company/Shipping_Company ORGANIZATION
software_company
Evri/Organization/Technology/Company/Software_Company ORGANIZATION
steel_company Evri/Organization/Business/Company/Steel_Company
ORGANIZATION telecommunications_company
Evri/Organization/Business/Company/Telecommunications_Company
ORGANIZATION utilities_company
Evri/Organization/Business/Company/Utilities_Company ORGANIZATION
wholesaler Evri/Organization/Business/Company/Wholesaler
ORGANIZATION television_production_company
Evri/Organization/Entertainment/Company/Television_Production_Company
ORGANIZATION food_company
Evri/Organization/Business/Company/Food_Company ORGANIZATION
beverage_company
Evri/Organization/Business/Company/Food_Company/Beverage_Company
ORGANIZATION restaurant
Evri/Organization/Business/Company/Food_Company/Restaurant
ORGANIZATION winery
Evri/Organization/Business/Company/Food_Company/Beverage_Company
EVENT film_festival Evri/Event/Entertainment/Film_Festival
ORGANIZATION film_festival Evri/Event/Entertainment/Film_Festival
PRODUCT anime Evri/Product/Entertainment/Anime PRODUCT aircraft
Evri/Product/Aircraft PRODUCT military_aircraft
Evri/Product/Aircraft/Military_Aircraft PRODUCT vehicle
Evri/Product/Vehicle PRODUCT ballet
Evri/Product/Entertainment/Ballet PRODUCT opera
Evri/Product/Entertainment/Opera PRODUCT painting
Evri/Product/Entertainment/Painting PRODUCT song
Evri/Product/Entertainment/Single EVENT technology_conference
Evri/Event/Technology/Technology_Conference CONCEPT legislation
Evri/Concept/Politics/Legislation CONCEPT treaty
Evri/Concept/Politics/Treaty ORGANIZATION trade_association
Evri/Organization/Business/Trade_Association ORGANIZATION
technology_organization
Evri/Organization/Technology/Technology_Organization ORGANIZATION
educational_institution Evri/Organization/Educational_Institution
LOCATION museum Evri/Location/Structure/Building/Museum LOCATION
religious_building
Evri/Location/Structure/Building/Religious_Building PERSON
astronomer Evri/Person/Astronomer PERSON mathematician
Evri/Person/Mathematician PERSON academic Evri/Person/Academic
PERSON dancer Evri/Person/Entertainment/Dancer PRODUCT play
Evri/Product/Entertainment/Play LOCATION botanical_garden
Evri/Location/Botanical_Garden LOCATION hospital
Evri/Location/Health/Hospital PERSON psychiatrist
Evri/Person/Health/Psychiatrist PERSON physician
Evri/Person/Health/Physician PERSON nurse Evri/Person/Health/Nurse
ORGANIZATION journalism_organization
Evri/Organization/Journalism_Organization ORGANIZATION
healthcare_company
Evri/Organization/Business/Company/Healthcare_Company ORGANIZATION
religious_organization Evri/Organization/Religious_Organization
PERSON biologist Evri/Person/Scientist/Biologist PERSON biochemist
Evri/Person/Scientist/Biochemist PERSON botanist
Evri/Person/Scientist/Botanist PERSON poet
Evri/Person/Entertainment/Author/Poet PERSON curler
Evri/Person/Sports/Athlete/Curler PERSON biathlete
Evri/Person/Sports/Athlete/Biathlete PERSON alpine_skier
Evri/Person/Sports/Athlete/Alpine_Skier PERSON cross-country_skier
Evri/Person/Sports/Athlete/Cross-country_Skier PERSON
freestyle_skier Evri/Person/Sports/Athlete/Freestyle_Skier PERSON
luger Evri/Person/Sports/Athlete/Luger PERSON nordic_combined_skier
Evri/Person/Sports/Athlete/Nordic_Combined_Skier PERSON
speed_skater Evri/Person/Sports/Athlete/Speed_Skater PERSON
skeleton_racer Evri/Person/Sports/Athlete/Skeleton_Racer PERSON
ski_jumper Evri/Person/Sports/Athlete/Ski_Jumper PERSON snowboarder
Evri/Person/Sports/Athlete/Snowboarder PERSON bobsledder
Evri/Person/Sports/Athlete/Bobsledder PERSON bodybuilder
Evri/Person/Sports/Athlete/Bodybuilder PERSON equestrian
Evri/Person/Sports/Athlete/Equestrian PERSON fencer
Evri/Person/Sports/Athlete/Fencer PERSON hurler
Evri/Person/Sports/Athlete/Hurler PERSON martial_artist
Evri/Person/Sports/Athlete/Martial_Artist PERSON canoer
Evri/Person/Sports/Athlete/Canoer LOCATION music_venue
Evri/Location/Entertainment/Music_Venue LOCATION aquarium
Evri/Location/Aquarium LOCATION cemetery Evri/Location/Cemetery
LOCATION national_park Evri/Location/National_Park LOCATION volcano
Evri/Location/Volcano LOCATION zoo Evri/Location/Zoo LOCATION
structure Evri/Location/Structure LOCATION airport
Evri/Location/Structure/Airport LOCATION bridge
Evri/Location/Structure/Bridge LOCATION hotel
Evri/Location/Structure/Hotel LOCATION palace
Evri/Location/Structure/Palace LOCATION monument
Evri/Location/Structure/Monument LOCATION street
Evri/Location/Street LOCATION amusement_park
Evri/Location/Amusement_Park LOCATION unitary_authority
Evri/Location/Unitary_Authority PRODUCT drug_brand
Evri/Product/Health/Drug_Brand PRODUCT weapon Evri/Product/Weapon
PRODUCT missile_system Evri/Product/Weapon/Missile_System PRODUCT
firearm Evri/Product/Weapon/Firearm PRODUCT artillery
Evri/Product/Weapon/Artillery PRODUCT anti-aircraft_weapon
Evri/Product/Weapon/Anti-aircraft_Weapon PRODUCT anti-tank_weapon
Evri/Product/Weapon/Anti-tank_Weapon PRODUCT biological_weapon
Evri/Product/Weapon/Biological_Weapon PRODUCT chemical_weapon
Evri/Product/Weapon/Chemical_Weapon CHEMICAL chemical_weapon
Evri/Product/Weapon/Chemical_Weapon SUBSTANCE chemical_weapon
Evri/Product/Weapon/Chemical_Weapon PRODUCT explosive
Evri/Product/Weapon/Explosive PRODUCT weapons_launcher
Evri/Product/Weapon/Weapons_Launcher PERSON chess_player
Evri/Person/Chess_Player PERSON sculptor
Evri/Person/Artist/Sculptor PRODUCT game Evri/Product/Game
ORGANIZATION theater_company
Evri/Organization/Entertainment/Company/Theater_Company PERSON
badminton_player Evri/Person/Sports/Athlete/Badminton_Player
PRODUCT naval_ship Evri/Product/Watercraft/Naval_Ship PRODUCT
battleship Evri/Product/Watercraft/Naval_Ship/Battleship PRODUCT
cruiser Evri/Product/Watercraft/Naval_Ship/Cruiser PRODUCT
aircraft_carrier
Evri/Product/Watercraft/Naval_Ship/Aircraft_Carrier PRODUCT
destroyer Evri/Product/Watercraft/Naval_Ship/Destroyer PRODUCT
frigate Evri/Product/Watercraft/Naval_Ship/Frigate PRODUCT
submarine Evri/Product/Watercraft/Naval_Ship/Submarine PRODUCT
cruise_ship Evri/Product/Watercraft/Cruise_Ship PRODUCT yacht
Evri/Product/Watercraft/Yacht PRODUCT ocean_liner
Evri/Product/Watercraft/Ocean_Liner LOCATION county
Evri/Location/County PRODUCT symphony
Evri/Product/Entertainment/Symphony ORGANIZATION television_station
Evri/Organization/Entertainment/Company/Television_Station
ORGANIZATION radio_station
Evri/Organization/Entertainment/Company/Radio_Station CONCEPT
constitutional_amendment
Evri/Concept/Politics/Constitutional_Amendment PERSON
australian_rules_footballer
Evri/Person/Sports/Athlete/Australian_Rules_Footballer ORGANIZATION
australian_rules_football_team
Evri/Organization/Sports/Australian_Rules_Football_Team
ORGANIZATION criminal_organization
Evri/Organization/Criminal_Organization PERSON poker_player
Evri/Person/Poker_Player PERSON bowler
Evri/Person/Sports/Athlete/Bowler PERSON yacht_racer
Evri/Person/Sports/Athlete/Yacht_Racer PERSON water_polo_player
Evri/Person/Sports/Athlete/Water_Polo_Player PERSON
field_hockey_player Evri/Person/Sports/Athlete/Field_Hockey_Player
PERSON skateboarder Evri/Person/Sports/Athlete/Skateboarder PERSON
polo_player Evri/Person/Sports/Athlete/Polo_Player PERSON
gaelic_footballer Evri/Person/Sports/Athlete/Gaelic_Footballer
PRODUCT programming_language
Evri/Product/Technology/Programming_Language PERSON engineer
Evri/Person/Technology/Engineer EVENT cybercrime
Evri/Event/Technology/Cybercrime EVENT criminal_act
Evri/Event/Criminal_Act PERSON critic Evri/Person/Critic PERSON
pool_player Evri/Person/Pool_Player PERSON snooker_player
Evri/Person/Snooker_Player PERSON competitive_eater
Evri/Person/Competitive_Eater PRODUCT data_storage_medium
Evri/Product/Technology/Data_Storage_Medium PRODUCT
data_storage_device Evri/Product/Technology/Data_Storage_Device
PERSON mountain_climber Evri/Person/Mountain_Climber PERSON aviator
Evri/Person/Aviator ORGANIZATION cooperative
Evri/Organization/Cooperative CONCEPT copyright_license
Evri/Concept/Copyright_License EVENT observance
Evri/Event/Observance PERSON outdoor_sportsperson
Evri/Person/Sports/Outdoor_Sportsperson PERSON rodeo_performer
Evri/Person/Sports/Rodeo_Performer PERSON sports_shooter
Evri/Person/Sports/Athlete/Sports_Shooter CONCEPT award
Evri/Concept/Award CONCEPT entertainment_series
Evri/Concept/Entertainment/Entertainment_Series PERSON chef
Evri/Person/Chef PERSON cartoonist
Evri/Person/Entertainment/Cartoonist PERSON comics_creator
Evri/Person/Entertainment/Comics_Creator PERSON nobility
Evri/Person/Nobility PERSON porn_star Evri/Person/Porn_Star PERSON
archaeologist Evri/Person/Scientist/Archaeologist PERSON
paleontologist Evri/Person/Scientist/Paleontologist PERSON
victim_of_crime Evri/Person/Victim_of_Crime LOCATION region
Evri/Location/Region PERSON linguist Evri/Person/Linguist PERSON
librarian Evri/Person/Librarian PERSON bridge_player
Evri/Person/Bridge_Player PERSON choreographer
Evri/Person/Entertainment/Choreographer PRODUCT camera
Evri/Product/Technology/Camera PRODUCT publication
Evri/Product/Publication PRODUCT comic
Evri/Product/Entertainment/Comic PRODUCT short_story
Evri/Product/Entertainment/Short_Story ORGANIZATION
irregular_military_organization
Evri/Organization/Irregular_Military_Organization SUBSTANCE
chemical_element Evri/Substance/Chemical_Element SUBSTANCE alkaloid
Evri/Substance/Organic_Compound/Alkaloid SUBSTANCE glycoside
Evri/Substance/Glycoside SUBSTANCE amino_acid
Evri/Substance/Amino_Acid SUBSTANCE protein Evri/Substance/Protein
SUBSTANCE enzyme Evri/Substance/Enzyme SUBSTANCE hormone
Evri/Substance/Hormone SUBSTANCE hydrocarbon
Evri/Substance/Organic_Compound/Hydrocarbon SUBSTANCE
inorganic_compound Evri/Substance/Inorganic_Compound SUBSTANCE
lipid Evri/Substance/Organic_Compound/Lipid SUBSTANCE steroid
Evri/Substance/Organic_Compound/Lipid/Steroid SUBSTANCE molecule
Evri/Substance/Molecule SUBSTANCE polymer
Evri/Substance/Molecule/Polymer SUBSTANCE terpene
Evri/Substance/Organic_Compound/Terpene SUBSTANCE toxin
Evri/Substance/Toxin SUBSTANCE antibiotic
Evri/Substance/Health/Antibiotic SUBSTANCE antioxidant
Evri/Substance/Health/Antioxidant SUBSTANCE anti-inflammatory
Evri/Substance/Health/Anti-inflammatory SUBSTANCE
antiasthmatic_drug Evri/Substance/Health/Antiasthmatic_drug
SUBSTANCE anticonvulsant Evri/Substance/Health/Anticonvulsant
SUBSTANCE antihistamine Evri/Substance/Health/Antihistamine
SUBSTANCE antihypertensive Evri/Substance/Health/Antihypertensive
SUBSTANCE antiviral Evri/Substance/Health/Antiviral SUBSTANCE
painkiller Evri/Substance/Health/Painkiller SUBSTANCE Painkiller
Evri/Substance/Health/Painkiller SUBSTANCE anesthetic
Evri/Substance/Health/Anesthetic SUBSTANCE antibody
Evri/Substance/Antibody SUBSTANCE chemotherapeutic_drug
Evri/Substance/Health/Chemotherapeutic SUBSTANCE anti-diabetic_drug
Evri/Substance/Health/Anti-diabetic SUBSTANCE antianginal_drug
Evri/Substance/Health/Antianginal SUBSTANCE muscle_relaxant
Evri/Substance/Health/Muscle_relaxant SUBSTANCE hypolipidemic_drug
Evri/Substance/Health/Hypolipidemic_Drug SUBSTANCE
psychoactive_drug Evri/Substance/Health/Psychoactive_Drug SUBSTANCE
vaccine Evri/Substance/Health/Vaccine SUBSTANCE
gastrointestinal_drug Evri/Substance/Health/Gastrointestinal_Drug
SUBSTANCE erectile_dysfunction_drug
Evri/Substance/Health/Erectile_Dysfunction_Drug SUBSTANCE
organometallic_compound
Evri/Substance/Organic_Compound/Organometallic_Compound SUBSTANCE
phenol Evri/Substance/Organic_Compound/Phenol SUBSTANCE ketone
Evri/Substance/Organic_Compound/Ketone SUBSTANCE amide
Evri/Substance/Organic_Compound/Amide
SUBSTANCE ester Evri/Substance/Organic_Compound/Ester SUBSTANCE
ether Evri/Substance/Organic_Compound/Ether SUBSTANCE
heterocyclic_compound
Evri/Substance/Organic_Compound/Heterocyclic_Compound SUBSTANCE
organic_compound Evri/Substance/Organic_Compound SUBSTANCE
carbohydrate Evri/Substance/Organic_Compound/Carbohydrate SUBSTANCE
peptide Evri/Substance/Organic_Compound/Peptide SUBSTANCE
organohalide Evri/Substance/Organic_Compound/Organohalide SUBSTANCE
organosulfur_compound
Evri/Substance/Organic_Compound/Organosulfur_Compound SUBSTANCE
aromatic_compound Evri/Substance/Organic_Compound/Aromatic_Compound
SUBSTANCE carboxylic_acid
Evri/Substance/Organic_Compound/Carboxylic_Acid SUBSTANCE
nucleic_acid Evri/Substance/Nucleic_Acid SUBSTANCE ion
Evri/Substance/Ion ORGANISM cyanobacterium
Evri/Organism/Health/Cyanobacterium ORGANISM
gram-positive_bacterium
Evri/Organism/Health/Gram-positive_Bacterium ORGANISM
gram-negative_bacterium
Evri/Organism/Health/Gram-negative_Bacterium ORGANISM
acid-fast_bacterium Evri/Organism/Health/Acid-fast_Bacterium
ORGANISM dna_virus Evri/Organism/Health/DNA_Virus ORGANISM
rna_virus Evri/Organism/Health/RNA_Virus CONDITION symptom
Evri/Condition/Health/Symptom CONDITION injury
Evri/Condition/Health/Injury CONDITION inflammation
Evri/Condition/Health/Inflammation CONDITION disease
Evri/Condition/Health/Disease CONDITION cancer
Evri/Condition/Health/Disease/Cancer ORGANISM medicinal_plant
Evri/Organism/Health/Medicinal_Plant ORGANISM poisonous_plant
Evri/Organism/Poisonous_Plant ORGANISM herb Evri/Organism/Herb
CONCEPT medical_procedure Evri/Concept/Health/Medical_Procedure
ORGANISM bacterium Evri/Organism/Health/Bacterium ORGANISM virus
Evri/Organism/Health/Virus ORGANISM horse Evri/Organism/Horse
PERSON fugitive Evri/Person/Fugitive ORGANIZATION military_unit
Evri/Organization/Politics/Military_Unit ORGANIZATION
law_enforcement_agency
Evri/Organization/Politics/Law_Enforcement_Agency LOCATION
golf_course Evri/Location/Golf_Course PERSON law_enforcement_agent
Evri/Person/Politics/Law_Enforcement_Agent PERSON magician
Evri/Person/Entertainment/Magician LOCATION educational_institution
Evri/Organization/Educational_Institution CONCEPT social_program
Evri/Concept/Politics/Social_Program EVENT international_conference
Evri/Event/Politics/International_Conference
[0087] All of the above U.S. patents, U.S. patent application
publications, U.S. patent applications, foreign patents, foreign
patent applications and non-patent publications referred to in this
specification and/or listed in the Application Data Sheet,
including but not limited to U.S. patent application Ser. No.
13/233,879, entitled "RECOMMENDING MOBILE DEVICE ACTIVITIES," filed
Sep. 15, 2011; and U.S. Provisional Patent Application No.
61/383,175, entitled "RECOMMENDING MOBILE DEVICE ACTIVITIES," filed
Sep. 15, 2010, are incorporated herein by reference, in their
entireties.
[0088] From the foregoing it will be appreciated that, although
specific embodiments have been described herein for purposes of
illustration, various modifications may be made without deviating
from the spirit and scope of this disclosure. For example, the
methods, techniques, and systems for activity recommendation are
applicable to other architectures. For example, instead of
recommending activities for mobile devices, the techniques may be
used to automatically generate reviews, lists, or groupings of
mobile applications that can be browsed by users. Also, the
methods, techniques, and systems discussed herein are applicable to
differing query languages, protocols, communication media (optical,
wireless, cable, etc.) and devices (e.g., desktop computers
wireless handsets, electronic organizers, personal digital
assistants, portable email machines, game machines, pagers,
navigation devices such as GPS receivers, etc.).
* * * * *