U.S. patent application number 13/952447 was filed with the patent office on 2013-12-26 for presenting information for a current location or time.
This patent application is currently assigned to Google Inc.. The applicant listed for this patent is Google Inc.. Invention is credited to Pablo Bellver, Bill Connor, James A. Guggemos, Gokay Baris Gultekin, Dale Kris Hawkins, Andrew Kirmse, Keir Banks Mierle, Emil Praun, Tom Carl Stamm, Tushar Udeshi, Guang Yang.
Application Number | 20130344899 13/952447 |
Document ID | / |
Family ID | 48747776 |
Filed Date | 2013-12-26 |
United States Patent
Application |
20130344899 |
Kind Code |
A1 |
Stamm; Tom Carl ; et
al. |
December 26, 2013 |
PRESENTING INFORMATION FOR A CURRENT LOCATION OR TIME
Abstract
A computing system is described that obtains, based at least in
part on information included in previous communication associated
with a user of a computing device, an indication of a future
location and a future time and further obtains information
associated with an event which is associated with the future
location and the future time. The computing system obtains a
duration of time for the user to travel from a current location of
the computing device to the future location, and further obtains,
based at least in part on the duration of time, a departure time at
which the user is predicted to need to depart from the current
location in order to arrive at the future location by an arrival
time that is determined based at least in part on the future time.
The computing system outputs, for transmission to the computing
device, an indication of the departure time.
Inventors: |
Stamm; Tom Carl;
(Louisville, CO) ; Hawkins; Dale Kris; (Erie,
CO) ; Guggemos; James A.; (Windsor, CO) ;
Udeshi; Tushar; (Broomfield, CO) ; Bellver;
Pablo; (Mountain View, CA) ; Praun; Emil;
(Union City, CA) ; Yang; Guang; (San Jose, CA)
; Kirmse; Andrew; (Redwood City, CA) ; Gultekin;
Gokay Baris; (Palo Alto, CA) ; Connor; Bill;
(Mountain View, CA) ; Mierle; Keir Banks;
(Mountain View, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Google Inc. |
Mountain View |
CA |
US |
|
|
Assignee: |
Google Inc.
Mountain View
CA
|
Family ID: |
48747776 |
Appl. No.: |
13/952447 |
Filed: |
July 26, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
PCT/US2013/047180 |
Jun 21, 2013 |
|
|
|
13952447 |
|
|
|
|
61790539 |
Mar 15, 2013 |
|
|
|
61663813 |
Jun 25, 2012 |
|
|
|
61663049 |
Jun 22, 2012 |
|
|
|
Current U.S.
Class: |
455/456.3 |
Current CPC
Class: |
G06Q 10/109 20130101;
H04L 67/26 20130101; G01C 21/00 20130101; H04W 4/023 20130101; H04W
4/029 20180201; G01S 19/13 20130101; G01C 21/3697 20130101; G06Q
10/1095 20130101 |
Class at
Publication: |
455/456.3 |
International
Class: |
H04W 4/02 20060101
H04W004/02 |
Claims
1. A method comprising: obtaining, by a computing system and based
at least in part on information included in at least one previous
communication associated with a user of a computing device, an
indication of a future location and a future time; obtaining, by
the computing system, information associated with an event, the
event being associated with the future location and the future
time; obtaining, by the computing system, a duration of time for
the user of the computing device to travel from a current location
of the computing device to the future location; obtaining, by the
computing system, based at least in part on the duration of time, a
departure time at which the user of the computing device is
predicted to need to depart from the current location of the
computing device in order to arrive at the future location by an
arrival time, the arrival time being determined based at least in
part on the future time; and outputting, by the computing system,
for transmission to the computing device, an indication of the
departure time.
2. The method of claim 1, further comprising: outputting, by the
computing system, for transmission to the computing device, an
indication of a credential associated with the event for output by
a computing device.
3. The method of claim 2, wherein the indication of the credential
associated with the event is output, for transmission to the
computing device, responsive to an indication that the current
location of the computing device is within a threshold distance of
the future location.
4. The method of claim 2, wherein the indication of the credential
associated with the event is output, for transmission to the
computing device, responsive to an indication that a current time
is within a threshold time of the future time.
5. The method of claim 2, wherein the indication of the credential
associated with the event is outputted for transmission in response
to receiving, by the computing system, from the computing device, a
request for a credential associated with the event.
6. The method of claim 1, further comprising: responsive to
obtaining an indication that the current location of the computing
device is within a threshold distance of the future location,
outputting, by the computing system, for transmission to the
computing device, an indication associated with the event.
7. The method of claim 1, further comprising: responsive to
obtaining an indication that a current time is within a threshold
time of the departure time, outputting, by the computing system,
for transmission to the computing device, an indication that the
user of the computing device needs to depart from the current
location of the computing device in order to arrive at the future
location by the arrival time.
8. The method of claim 1, further comprising: determining, by the
computing system and based at least in part on traffic conditions
along a travel route from the current location of the computing
device to the future location, the departure time.
9. The method of claim 1, further comprising: classifying, by the
computing system, the information included in the at least one
previous communication by at least applying one or more location
tags and one or more time tags to the information, wherein
obtaining the indication of the future location and the future time
comprises determining that a location value of at least one of the
one or more location tags is associated with the current location
of the computing device and that a time value of at least one of
the one or more time tags is associated with a current time.
10. The method of claim 9, wherein determining that the location
value of at least one of the one or more location tags is
associated with the current location of the computing device and
that the time value of at least one of the one or more time tags is
associated with the current time comprises obtaining, by the
computing system, an indication that the location value is within a
threshold distance of the current location of the computing device
and that the time value is within a threshold time of the current
time.
11. The method of claim 1, wherein obtaining the information
associated with the event comprises identifying, by the computing
system, at least one keyword associated with the event within a
portion of the information included in the one or more previous
communications.
12. The method of claim 1, wherein the arrival time corresponds to
a time of day that occurs prior to the future time.
13. The method of claim 1, wherein the arrival time indicates a
time of day that corresponds to the future time.
14. A computing system comprising: at least one processor; and at
least one module operable by the at least one processor to: obtain,
based at least in part on information included in at least one
previous communication associated with a user of a computing
device, an indication of a future location and a future time;
obtain information associated with an event, the event being
associated with the future location and the future time; obtain a
duration of time for the user of the computing device to travel
from a current location of the computing device to the future
location; obtain, based at least in part on the duration of time, a
departure time at which the user of the computing device is
predicted to need to depart from the current location of the
computing device in order to arrive at the future location by an
arrival time, the arrival time being determined based at least in
part on the future time; and output, for transmission to the
computing device, an indication of the departure time.
15. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to:
output, for transmission to the computing device, an indication of
a credential associated with the event for output by a computing
device.
16. The computing system of claim 15, wherein the indication of the
credential is output, for transmission to the computing device, in
response to an indication that the current location of the
computing device is within a threshold distance of the future
location.
17. The computing system of claim 15, wherein the indication of the
credential is output, for transmission to the computing device, in
response to an indication that a current time is within a threshold
time of the future time.
18. The computing system of claim 15, wherein the indication of the
credential associated with the event is outputted for transmission
to the computing device in response to receiving a request for the
credential associated with the event.
19. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to:
responsive to obtaining an indication that the current location of
the computing device is within a threshold distance of the future
location, output, for transmission to the computing device, an
indication associated with the event.
20. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to:
responsive to obtaining an indication that a current time is within
a threshold time of the departure time, output, for transmission to
the computing device, an indication that the user of the computing
device needs to depart from the current location of the computing
device in order to arrive at the future location by the arrival
time.
21. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to
determine the departure time based at least in part on traffic
conditions along a travel route from the current location of the
computing device to the future location.
22. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to
classify the information included in the at least one previous
communication by at least applying one or more location tags and
one or more time tags to the information included in the at least
one previous communication, wherein the indication of the future
location and the future time is obtained in response to a
determination that a location value of at least one of the one or
more location tags is within a threshold distance of the current
location of the computing device and a time value of at least one
of the one or more time tags is within a threshold time of a
current time.
23. The computing system of claim 22, wherein the at least one
module is further operable by the at least one processor to
determine that the location value of at least one of the one or
more location tags is associated with the current location of the
computing device and that the time value of at least one of the one
or more time tags is associated with the current time by at least
obtaining an indication that the location value is within a
threshold distance of the current location of the computing device
and that the time value is within a threshold time of the current
time.
24. The computing system of claim 14, wherein the at least one
module is further operable by the at least one processor to obtain
the information associated with the event based on an
identification of at least one keyword associated with the event
within a portion of the information included in the at least one
previous communication.
25. The computing system of claim 14, wherein the arrival time
corresponds to a time of day that occurs prior to the future
time.
26. The computing system of claim 14, wherein the arrival time
indicates a time of day that corresponds to the future time.
Description
[0001] This is a continuation of Application Serial No.
PCT/US2013/47180, filed Jun. 21, 2013 which claims the benefit of
U.S. Provisional Application No. 61/790,539, filed Mar. 15, 2013,
U.S. Provisional Application No. 61/663,049, filed Jun. 22, 2012,
and U.S. Provisional Application No. 61/663,813, filed Jun. 25,
2012, the entire contents of each of which are hereby incorporated
by reference.
BACKGROUND
[0002] A mobile computing device (e.g., a mobile phone, tablet
computer, etc.) may function as a personal digital assistant (PDA),
a phone, a camera, an e-mail client, an Internet browser, and a
global positioning system (GPS) navigation device. The mobile
computing device may be used to search for information about an
upcoming airline flight, nearby attractions (such as shows, events,
and concerts), nearby real estate listings, local movie times, etc.
A user may search within this information (e.g., using such a
mobile computing device) on the Internet, within e-mail accounts,
and within other information repositories stored locally or
accessible by the mobile computing device. Finding a particular
piece of information within all this data can be daunting and time
consuming, however.
SUMMARY
[0003] In one example, the disclosure is directed to a method that
includes obtaining, by a computing system and based at least in
part on information included in at least one previous communication
associated with a user of a computing device, an indication of a
future location and a future time. The method further includes
obtaining, by the computing system, information associated with an
event, the event being associated with the future location and the
future time, and obtaining, by the computing system, a duration of
time for the user of the computing device to travel from a current
location of the computing device to the future location. The method
further includes obtaining, by the computing system, based at least
in part on the duration of time, a departure time at which the user
of the computing device is predicted to need to depart from the
current location in order to arrive at the future location by an
arrival time, the arrival time being determined based at least in
part on the future time. The method further includes outputting, by
the computing system, for transmission to the computing device, an
indication of the departure time.
[0004] In another example, the disclosure is directed to a
computing system that includes at least one processor, and at least
one module operable by the at least one processor to obtain, based
at least in part on information included in at least one previous
communication associated with a user of a computing device, an
indication of a future location and a future time. The at least one
module is further operable by the at least one processor to obtain
information associated with an event, the event being associated
with the future location and the future time, and obtain a duration
of time for the user of the computing device to travel from a
current location of the computing device to the future location.
The at least one module is further operable by the at least one
processor to obtain, based at least in part on the duration of
time, a departure time at which the user of the computing device is
predicted to need to depart from the current location in order to
arrive at the future location by an arrival time, the arrival time
being determined based at least in part on the future time, and
output, for transmission to the computing device, an indication of
the departure time.
[0005] The details of one or more examples are set forth in the
accompanying drawings and the description below. Other features,
objects, and advantages of the disclosure will be apparent from the
description and drawings, and from the claims.
BRIEF DESCRIPTION OF DRAWINGS
[0006] FIG. 1 is a conceptual diagram illustrating an example
computing system that is configured to present information relevant
to a particular time and location of the computing system, in
accordance with one or more aspects of the present disclosure.
[0007] FIG. 2 is a block diagram illustrating an example computing
device configured to present information relevant to a particular
time and location of the computing device, in accordance with one
or more aspects of the present disclosure.
[0008] FIG. 3 is a block diagram illustrating an example computing
device that outputs graphical content for display at a remote
device, in accordance with one or more techniques of the present
disclosure.
[0009] FIGS. 4-6 are conceptual diagrams illustrating example
graphical user interfaces for presenting information relevant to a
particular time and location of the computing device, in accordance
with one or more aspects of the present disclosure.
[0010] FIG. 7 is a flowchart illustrating an example operation of
the computing device, in accordance with one or more aspects of the
present disclosure.
DETAILED DESCRIPTION
[0011] In general, techniques of this disclosure may enable a
computing device to present graphical indications associated with
information (also referred herein as "data") obtained from
previously-received communications that include references to one
or more future locations, future times, future activities, and/or
future events associated with a future location and/or future time.
The computing device may customize the graphical indication to a
specific activity that occurs at one or more future location and/or
future time.
[0012] The computing device may present the graphical indications
as one or more cards of information within a graphical user
interface (GUI). The computing device may present information cards
of varying types and categories (e.g., the information may depend
on the specific activity that a user may perform at the future
location and/or the future time). Some examples of the types of
information cards may include flight-related information,
attraction-related information (e.g., movie and event information),
real estate listing information, financial/stock-related
information, package-tracking information, weather information,
transportation/transit-related information, and other types of
information. Rather than require a user to search for a particular
piece of information, the computing device can output predicted
information that the user would otherwise search for and include
the predicted information within, for example, one or more
information cards.
[0013] The computing device may analyze previous communications
only if the computing device receives permission from the user to
analyze the information. For example, in situations discussed below
in which the computing device may collect or may make use of
personal information about the user (e.g., from previous
communications) the user may be provided with an opportunity to
control whether programs or features of the computing device can
collect user information (e.g., information about a user's e-mail,
a user's social network, social actions or activities, profession,
a user's preferences, or a user's current location), or to control
whether and/or how to the computing device may receive content that
may be relevant to the user. In addition, certain data may be
treated in one or more ways before it is stored or used by the
computing device, so that personally identifiable information is
removed. For example, a user's identity may be treated so that no
personally identifiable information can be determined about the
user, or a user's geographic location may be generalized where
location information is obtained (such as to a city, ZIP code, or
state level), so that a particular location of a user cannot be
determined. Thus, the user may have control over how information is
collected about the user and used by the computing device.
[0014] FIG. 1 is a conceptual diagram illustrating example
computing device 10 that is configured to present useful
information for a particular time and location, in accordance with
one or more aspects of the present disclosure. In the example of
FIG. 1, computing device 10 is a mobile phone. However, in other
examples, computing device 10 may be a tablet computer, a personal
digital assistant (PDA), a laptop computer, a portable gaming
device, a portable media player, an e-book reader, a watch,
television platform, or other type of computing device.
[0015] As shown in FIG. 1, computing device 10 includes a user
interface device (UID) 12. UID 12 of computing device 10 may
function as an input device for computing device 10 and as an
output device. UID 12 may be implemented using various
technologies. For instance, UID 12 may function as an input device
using a presence-sensitive input screen, such as a resistive
touchscreen, a surface acoustic wave touchscreen, a capacitive
touchscreen, a projective capacitance touchscreen, a pressure
sensitive screen, an acoustic pulse recognition touchscreen, or
another presence-sensitive screen technology. UID 12 may function
as an output (e.g., display) device using any one or more display
devices, such as a liquid crystal display (LCD), dot matrix
display, light emitting diode (LED) display, organic light-emitting
diode (OLED) display, e-ink, or similar monochrome or color display
capable of outputting visible information to the user of computing
device 10.
[0016] UID 12 of computing device 10 may include a
presence-sensitive screen that may receive tactile input from a
user of computing device 10. UID 12 may receive indications of the
tactile input by detecting one or more gestures from a user of
computing device 10 (e.g., the user touching or pointing to one or
more locations of UID 12 with a finger or a stylus pen). The
presence-sensitive screen of UID 12 may present output to a user.
UID 12 may present the output as a graphical user interface (e.g.,
user interface 14) which may be associated with functionality
provided by computing device 10. For example, UID 12 may present
various user interfaces of applications executing at or accessible
by computing device 10 (e.g., an electronic message application, an
Internet browser application, etc.). A user may interact with a
respective user interface of an application to cause computing
device 10 to perform operations relating to a function.
[0017] Computing device 10 may include user interface ("UI") module
20, device location module 22, user data analysis module 24, and
suggestion module 26. Modules 20, 22, 24, and 26 may perform
operations described using software, hardware, firmware, or a
mixture of hardware, software, and firmware residing in and/or
executing at computing device 10. Computing device 10 may execute
modules 20, 22, 24, and 26 with multiple processors. Computing
device 10 may execute modules 20, 22, 24, and 26 as a virtual
machine executing on underlying hardware. Modules 20, 22, 24, and
26 may execute as a service of an operating system or computing
platform. Modules 20, 22, 24, and 26 may execute as one or more
executable programs at an application layer of a computing
platform.
[0018] Computing device 10 may be part of a mobile communications
network, as described in U.S. Provisional Application No.
61/663,049, filed Jun. 22, 2012, and U.S. Provisional Application
No. 61/663,813, filed Jun. 25, 2012, the entire contents of each of
which are hereby incorporated by reference and to which this
disclosure claims priority. Computing device 10 may exchange data
with a server or cloud computing system over the mobile
communications network. The server or cloud computing system may
perform some or all of the techniques and operations related to
modules 20, 22, 24, and 26 described herein. In other words, some
or all of the techniques and operations related to modules 20, 22,
24, and 26 can be implemented locally at computing device 10, for
instance, a mobile phone, and some or all of the techniques and
operations may by performed remotely via a server connected to the
mobile communications network that exchanges data with computing
device 10. In other words, while shown in FIG. 2 as being included
within computing device 10, modules 20, 22, 24, and 26 may be a
part of a remote computing system and may execute as one or more
remote computing services, such as one or more services provided by
a cloud and/or cluster based computing system.
[0019] UI module 20 may cause UID 12 to present user interface 14.
User interface 14 includes graphical indications (e.g., elements)
displayed at various locations of UID 12. FIG. 1 illustrates
information card 16 ("card 16") as one example graphical indication
within user interface 14. As described in more detail below, card
16 includes a portion of information included in previous
communications. UI module 20 may receive the portion of information
from suggestion module 26 when computing device 10 determines that
the current location of computing device 10 and the current time
corresponds to the time and the location associated with the
information. UI module 20 update users interface 14 with card 16 to
include the portion of information and may cause UID 12 to output,
for display, card 16 within user interface 14.
[0020] Device location module 22 may determine a current location
of computing device 10 and a current time. For example, computing
device 10 may include a global positioning system (GPS) radio (not
shown in FIG. 1) for receiving GPS signals (e.g., from a GPS
satellite) having data corresponding to the current time and the
current location of computing device 10. Device location module 22
may analyze the GPS signals received by the GPS radio and determine
the current location of computing device 10 and the current time.
Computing device 10 may include other radios or sensor devices
(e.g., cellular radio, Wi-Fi radio, etc.) capable of receiving
signal data which device location module 22 can determine the
current location of computing device 10 and the current time. In
some examples, device location module 22 may determine location
data as coordinate (e.g., GPS) location data. In other examples,
device location module 22 may determine location data as one or
more general or relative locations, such as an address, a place, a
country, a city, a type of building (e.g., a library, an airport,
etc.). Device location module 22 may output location and time data
to other modules of computing device 10 such as suggestion module
26.
[0021] Computing device 10 may include user data analysis module 24
(UDA module 24). UDA module 24 may determine, based on previous
communications and other data received by computing device 10, such
as, electronic mail messages (e-mail), text messages (e.g., SMS),
transcribed voicemails, social media posts, Internet search
queries, application interactions, webpage history, etc., a time
and/or a location associated with at least a portion of information
included in the previous communications and other data. For
example, UDA module 24 may perform data mining techniques on
textual data contained within previously received communications to
isolate words and/or phrases that indicate future locations and
future times of day that may be of interest to a user of computing
device 10. The previous communications may be stored locally at
computing device 10 and/or remotely at a server or cloud. UDA
module 24 may tag portions of information included in previous
communications with location and time tags that indicate the
portions of communication information that may be of interest to
the user when the current time and/or the current location
corresponds to the tagged time and/or tagged location. UDA module
24 may store the time and location tags as pointers to locations
where the portions of information in a particular communication are
stored. Computing device 10 may later use the location and time
tags to determine which portions of information may be relevant to
a current location of computing device 10 and/or current time.
[0022] UDA module 24 may format the tagged portions of information
within the communication data into one or more formats for
inclusion in information cards (e.g., card 16). For example,
computing device 10 may present different categories of information
cards, such as information cards related to electronic tickets
(e-tickets), movie show times, public and private events, business
or personal meetings, attractions, transportation and/or travel
information (e.g., flight information), package tracking, etc. As
UDA module 24 tags portions of communication data, UDA module 24
may format the portions of communication data into a format that
can later be incorporated into the different fields of information
cards.
[0023] For example, UDA module 24 may associate one or more fields
with each category of information card. A flight information card
may include fields that identify a date, a time, an airport, a
flight number, a passenger name, etc. of a flight. A movie show
time card may include fields of information that indicate when and
where a movie is playing at a particular theatre. A package
tracking card may include fields of information that indicate a
package tracking number, an estimated delivery date and time, etc.
Other information cards may include other fields specific to that
category of information card (e.g. real estate cards, event cards,
attraction cards, other package tracking cards, etc.). UDA module
24 may data mine an e-mail confirmation sent by an airline, an
movie ticket sales company, etc. for data to include in one or more
of these data fields and store the data as location and time tagged
data. UDA module 24 may data mine a package tracking e-mail sent by
a shipping company for data to include in one or more of these data
fields and store the data as location and time tagged data. UDA
module 24 may data mine browsing histories, webpage data, and third
party application data of applications executing at computing
device 10 to identify portions of the communication data for one or
more recognized data fields. UDA module 24 may tag the portions of
communication data with a time, a location, an information card
category, and one or more data fields associated with the
information card category.
[0024] Computing device 10 may analyze previous communications and
other data only if computing device 10 receives permission from the
user to analyze the information. For example, in situations in
which computing device 10 may collect, data mine, analyze and/or
otherwise make use of personal information about the user the user
may be provided with an opportunity to control whether programs or
features of computing device 10 can collect user information (e.g.,
previous communications, information about a user's e-mail, a
user's social network, social actions or activities, profession, a
user's preferences, or a user's current location), or to control
whether and/or how to computing device 10 may receive content that
may be relevant to the user. In addition, certain data may be
treated in one or more ways before it is stored or used by
computing device 10, so that personally identifiable information is
removed. For example, a user's identity may be treated so that no
personally identifiable information can be determined about the
user, or a user's current location may be generalized where
location information is obtained (such as to a city, ZIP code, or
state level), so that a particular location of a user cannot be
determined. Thus, the user may have control over how information is
collected about the user and used by computing device 10.
[0025] Computing device 10 may include suggestion module 26 that
may manage requests from a user to display graphical indications of
information that may be of interest to the user at a particular
time and/or when the current location of computing device 10
corresponds to a particular place. For example, computing device 10
may receive an indication of an input detected at UID 12. UI module
20 may determine the input is associated with user interface 14. UI
module 20 may transmit information corresponding to the input to
suggestion module 26. Suggestion module 26 may determine, based on
the input information that the input corresponds to a request from
a user to invoke user interface 14 and present information cards
within graphical user interface 14. Likewise, suggestion module 26
may automatically (e.g., without user intervention) cause UI module
20 to present graphical indications such as these when the current
time and/or current location of computing device 10 corresponds to
a particular time and/or place.
[0026] Whether suggestion module 26 is invoked automatically by
computing device 10 or in response to user interaction, suggestion
module 26 may determine whether the current location of computing
device 10 and/or the current time corresponds to any of the time
and/or location tags associated with the tagged portions of
communication data identified by UDA module 24. If suggestion
module 26 determines that the current location of computing device
10 and/or the current time does correspond to the any of the time
and/or location tags, suggestion module 26 may retrieve the
corresponding tagged communication data and format the tagged
communication data into one or more information cards. Suggestion
module 26 may transmit the formatted data to UI module 20 for
inclusion as a graphical indication (e.g., an information card) of
user interface 14.
[0027] For example, suggestion module 26 may receive location and
time data from device location module 22. Suggestion module 26 may
receive the location and time data periodically (e.g., at specific
time intervals) and/or when device location module 22 determines
that the current location of computing device 10 changes. Likewise,
suggestion module 26 may request the location and time data from
device location module 22 in response to an indication of an input
detected at UID 12 to present an information card.
[0028] The location and time data received from device location
module 22 may include information about the current location of
computing device 10 and/or the current time (e.g., at the current
location of computing device 10). The location data may include
information such as a coordinate location and/or a name of a
physical location (e.g., an airport name, a movie theatre name, a
street, etc.). Suggestion module 26 may compare the current
location and/or the current time to the time and/or location tags
associated with the tagged communication data stored locally and/or
remotely to computing device 10 by UDA module 24. The computing
device may determine that the portions of tagged communication data
having time and/or location tags that approximately correspond to
the current location and/or the current time match the current
location and/or the current time. Based on the comparison,
suggestion module 26 may identify corresponding portions of tagged
information that may be of interest to the user at the current time
and/or the current location.
[0029] For example, suggestion module 26 may parse the tagged
communication data for one or more location tags within a threshold
distance from the current location of computing device 10.
Similarly, suggestion module 26 may parse the tagged communication
data for one or more time tags within a threshold amount of time
from the current time. If any of the time and/or location tags are
within the threshold distance and or threshold times, suggestion
module 26 may identify those portions of communication data that
are associated with the identified tags as being "matching"
portions of communication data to present as information cards.
[0030] Suggestion module 26 may format the portions of information
within the corresponding communication data into one or more
information cards (e.g., card 16) for inclusion within user
interface 14. For example, suggestion module 26 may retrieve the
data that UDA module 24 organized by category and field into
graphical information that can be presented as graphical
indications (e.g., information cards) in user interface 14.
Suggestion module 26 may output the graphical information to UI
module 20. UI module 20 may cause UID 12 to present the graphical
indications corresponding to the graphical information as
information card 16 within user interface 14.
[0031] In accordance with techniques of this disclosure, computing
device 10 may determine, based on previous communications, a time
and a location associated with at least a portion of information
included in the previous communications. For example, computing
device 10 may execute an e-mail application that receives one or
more e-mail messages over time. With explicit permission from the
user to access personal information such as e-mail, UDA module 22
may data mine the one or more e-mail messages for keywords and
phrases that may indicate future important times, locations and
events. Events may include public events, such as movies, airplane
flights, other entertainment performances, etc. and personal
events, or events that are not necessarily public in nature, such
as birthday parties, meetings, social gatherings, etc.
[0032] For example, a user of computing device 10 may book a flight
two weeks prior to traveling. An e-mail client executing at
computing device 10 may receive an e-mail confirmation of the
flight booking from the airline. UDA module 24 may data mine the
e-mail confirmation for one or more keywords about travel and after
detecting the keywords, categorize the communication as flight
information (e.g., based on information within the e-mail about a
date of travel, a time of travel, a name of an airport, an
electronic ticket confirmation number, etc.). UDA module 24 may
apply a time and location tag to portions of information within the
e-mail communication for later retrieval by suggestion module 26.
For instance, UDA module 24 may assign one or more pointers to the
portions of information that correspond to the future time and
future locations indicated by the communication.
[0033] Computing device 10 may determine a current location of the
computing device and a current time. For example, at some time
subsequent to receiving the e-mail confirmation from the airline,
device location module 22 may determine the current location of
computing device 10. Device location module 22 may determine the
current location corresponds to an international airport. Device
location module 22 may determine based on a GPS signal received by
computing device 10 the current date and time.
[0034] Computing device 10 may determine, based at least in part on
the current location and the current time, that the current
location and the current time correspond to the location and the
time associated with the at least a portion of the information. For
example, suggestion module 26 may receive the current location and
the current time from device location module 22 that indicates
computing device 10 is at the international airport the day of the
flight indicated within the e-mail confirmation. Suggestion module
26 may compare the current location (e.g., the international
airport location) and the current time to the time and location
tags within the tagged portions of previous communications stored
by computing device 10. Suggestion module 26 may identify the
tagged data associated with the portions of the flight e-mail
confirmation as corresponding to the current location and current
time.
[0035] For example, suggestion module 26 may compare the current
location and/or the current time to the time and location tags
within the tagged portions of previous communications. Suggestion
module 26 may determine the time tag has a time value within a time
threshold (e.g., one day) of the current time. Suggestion module 26
may determine the location tag has a location value within a
location threshold (e.g., one mile) of the current location.
Suggestion module 26 may determine that the location and/or time
tags associated with the portions of the flight e-mail confirmation
match the current location and current time.
[0036] Computing device 10 may output, for display, a graphical
indication of the at least a portion of the information. For
example, suggestion module 26 may format the portions of the flight
e-mail confirmation into graphical information of an information
card (e.g., card 16). Suggestion module 26 may send as output, the
graphical information to UI module 20 with instructions for
updating the presentation of user interface 14. UI module 20 may
receive the graphical information of the information card and cause
UID 12 to output card 16 within user interface 14.
[0037] By using computing device 10, a user may rarely manually
perform a keyword search on the Internet or a manual search though
previous communications to find information (such as an e-ticket,
movie show times, real estate listings, etc.) relevant to the
current location of computing device 10 and/or the current time.
Instead, automatically or upon request from the user, computing
device 10 may present information cards that include likely
information of interest to the user based on the current location
of computing device 10 and the current time. Computing device 10
may minimize the time spent by a user performing unsuccessful
searches through previous communication and/or on the Internet to
find information related to a current time and or a current
location. With the user performing fewer searches in this way,
computing device 10 may perform fewer operations and use less
power.
[0038] FIG. 2 is a block diagram illustrating an example computing
device, in accordance with one or more aspects of the present
disclosure. Computing device 10 of FIG. 2 is described below within
the context of FIG. 1. FIG. 2 illustrates only one particular
example of computing device 10, and many other examples of
computing device 10 may be used in other instances and may include
a subset of the components included in example computing device 10
or may include additional components not shown in FIG. 2.
[0039] As shown in the example of FIG. 2, computing device 10
includes user interface device 12 ("UID 12"), one or more
processors 40, one or more input devices 42, one or more
communication units 44, one or more output devices 46, and one or
more storage devices 48. Storage devices 48 of computing device 10
also include UI module 20, device location module 22, user data
analysis module 24, and suggestion module 26. Communication
channels 50 may interconnect each of the components 12, 13, 20, 22,
24, 26, 40, 42, 44, and 46 for inter-component communications
(physically, communicatively, and/or operatively). In some
examples, communication channels 50 may include a system bus, a
network connection, an inter-process communication data structure,
or any other method for communicating data.
[0040] One or more input devices 42 of computing device 10 may
receive input. Examples of input are tactile, audio, and video
input. Input devices 42 of computing device 10, in one example,
includes a presence-sensitive screen, touch-sensitive screen,
mouse, keyboard, voice responsive system, video camera, microphone
or any other type of device for detecting input from a human or
machine.
[0041] One or more output devices 46 of computing device 10 may
generate output. Examples of output are tactile, audio, and video
output. Output devices 46 of computing device 10, in one example,
includes a presence-sensitive screen, sound card, video graphics
adapter card, speaker, cathode ray tube (CRT) monitor, liquid
crystal display (LCD), or any other type of device for generating
output to a human or machine.
[0042] One or more communication units 44 of computing device 10
may communicate with external devices via one or more networks by
transmitting and/or receiving network signals on the one or more
networks. For example, computing device 10 may use communication
unit 44 to transmit and/or receive radio signals on a radio network
such as a cellular radio network. Likewise, communication units 44
may transmit and/or receive satellite signals on a satellite
network such as a global positioning system (GPS) network. Examples
of communication unit 44 include a network interface card (e.g.
such as an Ethernet card), an optical transceiver, a radio
frequency transceiver, a GPS receiver, or any other type of device
that can send and/or receive information. Other examples of
communication units 44 may include short wave radios, cellular data
radios, wireless Ethernet network radios, as well as universal
serial bus (USB) controllers.
[0043] In some examples, UID 12 of computing device 10 may include
functionality of input devices 42 and/or output devices 46. In the
example of FIG. 2, UID 12 may be or may include a
presence-sensitive screen. In some examples, a presence sensitive
screen may detect an object at and/or near the presence-sensitive
screen. As one example range, a presence-sensitive screen may
detect an object, such as a finger or stylus that is within 2
inches or less of the presence-sensitive screen. The
presence-sensitive screen may determine a location (e.g., an (x,y)
coordinate) of the presence-sensitive screen at which the object
was detected. In another example range, a presence-sensitive screen
may detect an object six inches or less from the presence-sensitive
screen and other ranges are also possible. The presence-sensitive
screen may determine the location of the screen selected by a
user's finger using capacitive, inductive, and/or optical
recognition techniques. In some examples, presence sensitive screen
provides output to a user using tactile, audio, or video stimuli as
described with respect to output device 46. In the example of FIG.
2, UID 12 presents a user interface (such as user interface 14 of
FIG. 1).
[0044] While illustrated as an internal component of computing
device 10, UID 12 also represents and external component that
shares a data path with computing device 10 for transmitting and/or
receiving input and output. For instance, in one example, UID 12
represents a built-in component of computing device 10 located
within and physically connected to the external packaging of
computing device 10 (e.g., a screen on a mobile phone). In another
example, UID 12 represents an external component of computing
device 10 located outside and physically separated from the
packaging of computing device 10 (e.g., a monitor, a projector,
etc. that shares a wired and/or wireless data path with a tablet
computer).
[0045] One or more storage devices 48 within computing device 10
may store information for processing during operation of computing
device 10 (e.g., computing device 10 may store data accessed by
modules 20, 22, 24, and 26 during execution at computing device
10). In some examples, storage device 48 is a temporary memory,
meaning that a primary purpose of storage device 48 is not
long-term storage. Storage devices 48 on computing device 10 may
configured for short-term storage of information as volatile memory
and therefore not retain stored contents if powered off. Examples
of volatile memories include random access memories (RAM), dynamic
random access memories (DRAM), static random access memories
(SRAM), and other forms of volatile memories known in the art.
[0046] Storage devices 48, in some examples, also include one or
more computer-readable storage media. Storage devices 48 may be
configured to store larger amounts of information than volatile
memory. Storage devices 48 may further be configured for long-term
storage of information as non-volatile memory space and retain
information after power on/off cycles. Examples of non-volatile
memories include magnetic hard discs, optical discs, floppy discs,
flash memories, or forms of electrically programmable memories
(EPROM) or electrically erasable and programmable (EEPROM)
memories. Storage devices 48 may store program instructions and/or
data associated with modules 20, 22, 24, and 26.
[0047] One or more processors 40 may implement functionality and/or
execute instructions within computing device 10. For example,
processors 40 on computing device 10 may receive and execute
instructions stored by storage devices 48 that execute the
functionality of UI module 20, device location module 22, user data
analysis module 24, and suggestion module 26. These instructions
executed by processors 40 may cause computing device 10 to store
information, within storage devices 48 during program execution.
Processors 40 may execute instructions of modules 20, 22, 24, and
26 to cause UID 12 to present user interface 14 with information
card 16 at UID 12. That is, modules 20, 22, 24, and 26 may be
operable by processors 40 to perform various actions or functions
of computing device 10, for instance, causing UID 12 to present
user interface 14 at UID 12.
[0048] In accordance with aspects of this disclosure computing
device 10 of FIG. 2 may determine, based on previous
communications, a time and a location associated with at least a
portion of information included in the previous communications. For
example, computing device 10 may execute an e-mail application that
receives one or more e-mail messages over time. With explicit
permission from the user to access personal information such as
e-mail, UDA module 22 may data mine the one or more e-mail messages
for keywords and phrases that may indicate future important times,
locations and events. For example, a user of computing device 10
may purchase tickets to a movie from a movie theatre webpage. An
e-mail client executing at computing device 10 may receive an
e-mail confirmation of the movie ticket booking from the theatre.
UDA module 24 may data mine the e-mail confirmation for one or more
keywords indicating an e-ticket and after detecting the keywords,
categorize the communication as movie ticket information (e.g.,
based on information within the e-mail about a date of the movie,
time of the movie, theatre location, movie title, etc.). UDA module
24 may apply time and location tags to portions of information
within the e-mail communication for later retrieval by suggestion
module 26. For instance, UDA module 24 may assign one or more
pointers to the portions of information that correspond to the
future time and future location indicated in the e-mail
communication.
[0049] Computing device 10 may determine a current location of the
computing device and a current time (e.g., at the current location
of the computing device). For example, at some time subsequent to
receiving the e-mail confirmation from the theatre, device location
module 22 may determine the current location of computing device
10. For instance, the user of computing device 10 may travel to the
theatre a few minutes prior to the movie indicated in the e-mail
confirmation. Device location module 22 may determine the current
location corresponds to a particular movie theatre. Device location
module 22 may determine based on a GPS signal received by computing
device 10 the current date and time.
[0050] Computing device 10 may determine, based at least in part on
the current location and the current time, that the current
location and the current time correspond to the location and the
time associated with the at least a portion of the information. For
example, suggestion module 26 may receive the current location and
the current time from device location module 22 that indicates
computing device 10 is at the movie theatre within an hour of the
start time of the movie indicated within the e-mail confirmation.
Suggestion module 26 may compare the current location (e.g., the
movie theatre location) and the current time to the time and
location tags within the tagged portions of previous communications
stored by computing device 10. Suggestion module 26 may identify
the tagged data associated with the portions of the movie ticket
e-mail confirmation as corresponding to the current location and
current time.
[0051] Computing device 10 may output, for display, a graphical
indication of the at least a portion of the information. For
example, suggestion module 26 may format the portions of the movie
ticket e-mail confirmation into graphical information of an
information card that when presented at UID 12 represents an
e-ticket for presentation and entrance to the movie. Suggestion
module 26 may send as output, the graphical information to UI
module 20 with instructions for updating the presentation of user
interface 14. UI module 20 may receive the graphical information of
the information card and cause UID 12 to output the information
within user interface 14.
[0052] FIG. 3 is a block diagram illustrating an example computing
device that outputs graphical content for display at a remote
device, in accordance with one or more techniques of the present
disclosure. Graphical content, generally, may include any visual
information that may be output for display, such as text, images, a
group of moving images, etc. The example shown in FIG. 3 includes a
computing device 100, presence-sensitive display 101, communication
unit 110, projector 120, projector screen 122, mobile device 126,
and visual display device 130. Although shown for purposes of
example in FIGS. 1 and 2 as a stand-alone computing device 10, a
computing device such as computing devices 10, 100 may, generally,
be any component or system that includes a processor or other
suitable computing environment for executing software instructions
and, for example, need not include a presence-sensitive
display.
[0053] As shown in the example of FIG. 3, computing device 100 may
be a processor that includes functionality as described with
respect to processor 40 in FIG. 2. In such examples, computing
device 100 may be operatively coupled to presence-sensitive display
101 by a communication channel 102A, which may be a system bus or
other suitable connection. Computing device 100 may also be
operatively coupled to communication unit 110, further described
below, by a communication channel 102B, which may also be a system
bus or other suitable connection. Although shown separately as an
example in FIG. 3, computing device 100 may be operatively coupled
to presence-sensitive display 101 and communication unit 110 by any
number of one or more communication channels.
[0054] In other examples, such as illustrated previously by
computing device 10 in FIGS. 1-2, a computing device may refer to a
portable or mobile device such as mobile phones (including smart
phones), laptop computers, etc. In some examples, a computing
device may be a desktop computers, tablet computers, smart
television platforms, cameras, personal digital assistants (PDAs),
servers, mainframes, etc.
[0055] Presence-sensitive display 101 may include display device
103 and presence-sensitive input device 105. Display device 103
may, for example, receive data from computing device 100 and
display the graphical content. In some examples, presence-sensitive
input device 105 may determine one or more inputs (e.g., continuous
gestures, multi-touch gestures, single-touch gestures, etc.) at
presence-sensitive display 101 using capacitive, inductive, and/or
optical recognition techniques and send indications of such input
to computing device 100 using communication channel 102A. In some
examples, presence-sensitive input device 105 may be physically
positioned on top of display device 103 such that, when a user
positions an input unit over a graphical element displayed by
display device 103, the location at which presence-sensitive input
device 105 corresponds to the location of display device 103 at
which the graphical element is displayed. In other examples,
presence-sensitive input device 105 may be positioned physically
apart from display device 103, and locations of presence-sensitive
input device 105 may correspond to locations of display device 103,
such that input can be made at presence-sensitive input device 105
for interacting with graphical elements displayed at corresponding
locations of display device 103.
[0056] As shown in FIG. 3, computing device 100 may also include
and/or be operatively coupled with communication unit 110.
Communication unit 110 may include functionality of communication
unit 44 as described in FIG. 2. Examples of communication unit 110
may include a network interface card, an Ethernet card, an optical
transceiver, a radio frequency transceiver, or any other type of
device that can send and receive information. Other examples of
such communication units may include Bluetooth, 3G, and Wi-Fi
radios, Universal Serial Bus (USB) interfaces, etc. Computing
device 100 may also include and/or be operatively coupled with one
or more other devices, e.g., input devices, output devices, memory,
storage devices, etc. that are not shown in FIG. 3 for purposes of
brevity and illustration.
[0057] FIG. 3 also illustrates a projector 120 and projector screen
122. Other such examples of projection devices may include
electronic whiteboards, holographic display devices, and any other
suitable devices for displaying graphical content. Projector 120
and projector screen 122 may include one or more communication
units that enable the respective devices to communicate with
computing device 100. In some examples, the one or more
communication units may enable communication between projector 120
and projector screen 122. Projector 120 may receive data from
computing device 100 that includes graphical content. Projector
120, in response to receiving the data, may project the graphical
content onto projector screen 122. In some examples, projector 120
may determine one or more inputs (e.g., continuous gestures,
multi-touch gestures, single-touch gestures, etc.) at projector
screen 122 using optical recognition or other suitable techniques
and send indications of such input using one or more communication
units to computing device 100. In such examples, projector screen
122 may be unnecessary, and projector 120 may project graphical
content on any suitable medium and detect one or more user inputs
using optical recognition or other such suitable techniques.
[0058] Projector screen 122, in some examples, may include a
presence-sensitive display 124. Presence-sensitive display 124 may
include a subset of functionality or all of the functionality of UI
device 4 as described in this disclosure. In some examples,
presence-sensitive display 124 may include additional
functionality. Projector screen 122 (e.g., an electronic
whiteboard), may receive data from computing device 100 and display
the graphical content. In some examples, presence-sensitive display
124 may determine one or more inputs (e.g., continuous gestures,
multi-touch gestures, single-touch gestures, etc.) at projector
screen 122 using capacitive, inductive, and/or optical recognition
techniques and send indications of such input using one or more
communication units to computing device 100.
[0059] FIG. 3 also illustrates mobile device 126 and visual display
device 130. Mobile device 126 and visual display device 130 may
each include computing and connectivity capabilities. Examples of
mobile device 126 may include e-reader devices, convertible
notebook devices, hybrid slate devices, etc. Examples of visual
display device 130 may include other semi-stationary devices such
as televisions, computer monitors, etc. As shown in FIG. 3, mobile
device 126 may include a presence-sensitive display 128. Visual
display device 130 may include a presence-sensitive display 132.
Presence-sensitive displays 128, 132 may include a subset of
functionality or all of the functionality of UID 12 as described in
this disclosure. In some examples, presence-sensitive displays 128,
132 may include additional functionality. In any case,
presence-sensitive display 132, for example, may receive data from
computing device 100 and display the graphical content. In some
examples, presence-sensitive display 132 may determine one or more
inputs (e.g., continuous gestures, multi-touch gestures,
single-touch gestures, etc.) at projector screen using capacitive,
inductive, and/or optical recognition techniques and send
indications of such input using one or more communication units to
computing device 100.
[0060] As described above, in some examples, computing device 100
may output graphical content for display at presence-sensitive
display 101 that is coupled to computing device 100 by a system bus
or other suitable communication channel. Computing device 100 may
also output graphical content for display at one or more remote
devices, such as projector 120, projector screen 122, mobile device
126, and visual display device 130. For instance, computing device
100 may execute one or more instructions to generate and/or modify
graphical content in accordance with techniques of the present
disclosure. Computing device 100 may output the data that includes
the graphical content to a communication unit of computing device
100, such as communication unit 110. Communication unit 110 may
send the data to one or more of the remote devices, such as
projector 120, projector screen 122, mobile device 126, and/or
visual display device 130. In this way, computing device 100 may
output the graphical content for display at one or more of the
remote devices. In some examples, one or more of the remote devices
may output the graphical content at a presence-sensitive display
that is included in and/or operatively coupled to the respective
remote devices.
[0061] In some examples, computing device 100 may not output
graphical content at presence-sensitive display 101 that is
operatively coupled to computing device 100. In other examples,
computing device 100 may output graphical content for display at
both a presence-sensitive display 101 that is coupled to computing
device 100 by communication channel 102A, and at one or more remote
devices. In such examples, the graphical content may be displayed
substantially contemporaneously at each respective device. For
instance, some delay may be introduced by the communication latency
to send the data that includes the graphical content to the remote
device. In some examples, graphical content generated by computing
device 100 and output for display at presence-sensitive display 101
may be different than graphical content display output for display
at one or more remote devices.
[0062] Computing device 100 may send and receive data using any
suitable communication techniques. For example, computing device
100 may be operatively coupled to external network 114 using
network link 112A. Each of the remote devices illustrated in FIG. 3
may be operatively coupled to network external network 114 by one
of respective network links 112B, 112C, and 112D. External network
114 may include network hubs, network switches, network routers,
etc., that are operatively inter-coupled thereby providing for the
exchange of information between computing device 100 and the remote
devices illustrated in FIG. 3. In some examples, network links
112A-112D may be Ethernet, ATM or other network connections. Such
connections may be wireless and/or wired connections.
[0063] In some examples, computing device 100 may be operatively
coupled to one or more of the remote devices included in FIG. 3
using direct device communication 118. Direct device communication
118 may include communications through which computing device 100
sends and receives data directly with a remote device, using wired
or wireless communication. That is, in some examples of direct
device communication 118, data sent by computing device 100 may not
be forwarded by one or more additional devices before being
received at the remote device, and vice-versa. Examples of direct
device communication 118 may include Bluetooth, Near-Field
Communication, Universal Serial Bus, Wi-Fi, infrared, etc. One or
more of the remote devices illustrated in FIG. 3 may be operatively
coupled with computing device 100 by communication links 116A-116D.
In some examples, communication links 112A-112D may be connections
using Bluetooth, Near-Field Communication, Universal Serial Bus,
infrared, etc. Such connections may be wireless and/or wired
connections.
[0064] In accordance with techniques of the disclosure, computing
device 100 may be operatively coupled to visual display device 130
using external network 114. Computing device 100 may determine,
based on previous communications, a time and a location associated
with at least a portion of information included in the previous
communications. For example, computing device 100 may execute an
e-mail application that receives one or more e-mail messages over
time. With explicit permission from the user to access personal
information such as e-mail, computing device 100 may data mine the
one or more e-mail messages for keywords and phrases that may
indicate future important times, locations and events. Computing
device 100 may time and location tag the portions of information
within the e-mail communication for later retrieval.
[0065] Computing device 100 may determine a current location of
computing device 100 and a current time. Computing device 100 may
determine, based at least in part on the current location and the
current time, that the current location and the current time
correspond to the location and the time associated with the at
least a portion of the information. For example, computing device
100 may compare the current location and the current time to the
time and location tags within the tagged portions of previous
communications stored by computing device 100. Computing device 100
may identify the tagged data associated with the portions of the
previous communications as corresponding to the current location
and current time.
[0066] Computing device 100 may output, for display, a graphical
indication of the at least a portion of the information. For
example, computing device 100 may format the portions of the
previous communications into graphical information related to
graphical indications (e.g., information cards) to be included in a
user interface (e.g., card 16) presented at visual display device
130. Computing device 100 may send the graphical information to
visual display device 130 over external network 114. Visual display
device may output for display a graphical indication of the at
least a portion of the information.
[0067] FIGS. 4 through 6 are conceptual diagrams illustrating
example graphical user interfaces for presenting information
relevant to a particular time and location of a computing device,
in accordance with one or more aspects of the present disclosure.
FIGS. 4 through 6 are described below in the context of computing
device 10 from FIG. 1 and FIG. 2. For instance, FIGS. 4 through 6
show mobile phone 200 as one example of computing device 10 from
FIG. 1 and FIG. 2. Mobile phone 200 may include UDA module 24,
device location module 22, suggestion module 26, and UI module 20.
Mobile phone may include UID 12 for presenting a user interface and
information cards 220, 240, and 260 to a user.
[0068] In the example of FIG. 4, mobile phone 200 presents
information card 220 (e.g., at a screen of UID 12) which includes
information about an online real estate listing of an apartment for
rent. Mobile phone 200 may determine, based on previous
communications related to internet searches for property listings
on the internet or e-mail communications with a realtor, a location
associated with at least a portion of information included in the
previous communications. For instance, mobile phone 200 may
determine a street location or an area of a city within the
previous communications and tag the previous communications with
the street location.
[0069] When a user of mobile phone 200 enters the area of the city
indicated by the e-mail communications, mobile phone 200 may
determine the current location of mobile phone 200 corresponds to
the location tag of the e-mail communication and present
information card 220 that includes one or more online listings of
real estate in the area (e.g., information card 220 may include
portions of the information in the e-mail communication with the
realtor that includes the one or more online listings). In this
way, whether the user requested to view information card 220 or
mobile phone 200 automatically presented information card 220, a
user is alerted about information of interest to the user for a
current time and a current location of mobile phone 200.
[0070] In the example of FIG. 5, mobile phone 200 presents
information card 240 (e.g., at a screen of UID 12) which includes
information about an e-ticket for a movie showing at a theatre.
Mobile phone 200 may determine, based on a previous e-mail
communication confirming the online purchase of a movie ticket, a
location and a time associated with at least a portion of
information included in the previous communication. For instance,
mobile phone 200 may determine an address of the movie theatre and
a time the movie is playing based on the previous e-mail
communication and may tag the previous communication with the
address and the time.
[0071] When a user of mobile phone 200 enters the movie theatre
indicated in the e-mail confirmation at a time just prior to the
start of the movie, mobile phone 200 may determine the current
location of mobile phone 200 and the current time corresponds to
the location tag of the e-mail communication and present
information card 240 at UID 12 (e.g., the screen of mobile phone
200) that includes the e-ticket. In this way, whether the user
requested to view information card 240 or mobile phone 200
automatically presented information card 240, a user does not need
to search for the e-ticket confirmation e-mail with mobile phone
200 while at the theatre at the time of the movie. Instead, the
user is alerted about the e-ticket at the appropriate time and
place indicated by the e-mail confirmation when the current
location of mobile phone 200 and the current time corresponds to
the location and time of the movie.
[0072] In the example of FIG. 6, mobile phone 200 presents
information card 260 (e.g., at a screen of UID 12) which includes
information about a movie showing at a movie theatre. Mobile phone
200 may determine, by data mining and time and location tagging
previous communications (e.g., social network interactions between
a user and friends) a location associated with at least a portion
of information included in the previous communications. For
instance, mobile phone 200 may determine a street location of a
theatre mentioned within the previous communications and tag the
previous communications with the street location.
[0073] When a user of mobile phone 200 enters within a threshold
distance of the theatre (e.g., one mile) with mobile phone 200,
mobile phone 200 may determine the current location of mobile phone
200 corresponds to the location tag of the previous social media
communications (e.g., the movie theatre) and present information
card 260 that includes a popular movie playing at the nearby
theatre in the immediate future (e.g., at 10:25 pm). In this way,
whether the user requested to view information card 260 or mobile
phone 200 automatically presented information card 260, a user is
alerted about information of interest to the user for a current
time and a current location of mobile phone 200.
[0074] FIG. 7 is a flowchart illustrating an example operation of
the computing device, in accordance with one or more aspects of the
present disclosure. The process of FIG. 7 may be performed by one
or more processors of a computing device, such as computing device
10 and computing device 100 illustrated in FIG. 1, FIG. 2, and FIG.
3. For purposes of illustration, FIG. 7 is described below within
the context of computing devices 10 of FIG. 1.
[0075] Computing device 10 may determine based on previous
communications, a location associated with at least a portion of
information included in the previous communications (300). For
example, computing device 10 may data mine and/or otherwise parse
communications for information having a time and/or location
dependency, such as flight confirmations, e-tickets, etc. Computing
device 10 may tag the previous communications with location and
time data for later retrieval.
[0076] Computing device 10 may determine a current device location
of computing device 10 (310). For example, a user interacting with
computing device 10 may interact with user interface 14. The user
may provide a gesture at a presence-sensitive input device of
computing device 10 to command computing device 10 to present
information cards within user interface 14. In response to an
indication of the gesture detected at the presence-sensitive input
device, computing device 10 may determine the current device
location of computing device 10 (e.g., GPS coordinates) and the
current time.
[0077] Computing device 10 may determine, based at least in part on
the current device location, that the current location corresponds
to the location associated with the portion of the information
(320). For example, to determine information that the user may find
relevant to the current device location and current time, computing
device 10 may parse the previous communications for location and
time tags corresponding to the current location and the current
time. Computing device 10 may retrieve the portions of the previous
communications having location and time tags that match the current
location and the current time. In some examples, computing device
10 may determine the matching location and time tags based on
approximate correlations between the location and time tags of
portions of communication data and the current location and/or the
current time. For example, computing device 10 may identify
location and time tags of portions of communication data having
values that are within a threshold quantity of distances and/or
time to the current location and the current time. In other words,
computing device 10 may search and identify location tags of data
that are within a location threshold (e.g., two blocks, five miles,
etc.) of the current location. Computing device 10 may search and
identify matching time tags of data that are within a time
threshold (e.g., one day, two hours, twenty minutes, etc.) of the
current time.
[0078] Computing device 10 may output, for display, a graphical
indication of the portion of the information (330). For example,
computing device 10 may present one or more information cards
within user interface 14 at a display device (e.g., the
presence-sensitive screen).
[0079] In some examples, the computing system may output, for
transmission to the computing device, an indication of a credential
associated with the event for output by a computing device. In some
examples, the indication of the credential may be output, for
transmission to the computing device, in response to an indication
that the current location of the computing device is within a
threshold distance of the future location.
[0080] In some examples, the indication of the credential may be
output, for transmission to the computing device, in response to an
indication that a current time is within a threshold time of the
future time. In some examples, the indication of the credential
associated with the event may be outputted for transmission to the
computing device in response to receiving a request for the
credential associated with the event.
[0081] In some examples, responsive to obtaining an indication that
the current location of the computing device is within a threshold
distance of the future location, the computing system may output,
for transmission to the computing device, an indication associated
with the event. In some examples, responsive to obtaining an
indication that a current time is within a threshold time of the
departure time, the computing system may output, for transmission
to the computing device, an indication that the user of the
computing device needs to depart from the current location of the
computing device in order to arrive at the future location by the
arrival time.
[0082] In some examples, the computing system may determine the
departure time based at least in part on traffic conditions along a
travel route from the current location of the computing device to
the future location. In some examples, the computing system may
classify the information included in the at least one previous
communication by at least applying one or more location tags and
one or more time tags to the information included in the at least
one previous communication. The indication of the future location
and the future time may be obtained in response to a determination
that a location value of at least one of the one or more location
tags is within a threshold distance of the current location of the
computing device and a time value of at least one of the one or
more time tags is within a threshold time of a current time.
[0083] In some examples, the computing system may determine that
the location value of at least one of the one or more location tags
is associated with the current location of the computing device and
that the time value of at least one of the one or more time tags is
associated with the current time by at least obtaining an
indication that the location value is within a threshold distance
of the current location of the computing device and that the time
value is within a threshold time of the current time. In some
examples, the computing system may obtain the information
associated with the event based on an identification of at least
one keyword associated with the event within a portion of the
information included in the at least one previous
communication.
[0084] In some examples, the indication of the departure time may
include at least one of a graphical indication of the departure
time and an audible indication of the departure time. In some
examples, the arrival time may correspond to a time of day that
occurs prior to the future time. In some examples, the arrival time
may indicate a time of day that corresponds to the future time.
[0085] The techniques described herein may be implemented in
hardware, firmware, or any combination thereof. The hardware may,
also execute software. Any features described as modules, units or
components may be implemented together in an integrated logic
device or separately as discrete but interoperable logic devices.
In some cases, various features may be implemented as an integrated
circuit device, such as an integrated circuit chip or chipset. If
implemented in software, the techniques may be realized at least in
part by a computer-readable storage medium comprising instructions
that, when executed, cause a processor to perform one or more of
the techniques described above.
[0086] A computer-readable storage medium may form part of a
computer program product, which may include packaging materials. A
computer-readable storage medium may comprise a computer data
storage medium such as random access memory (RAM), synchronous
dynamic random access memory (SDRAM), read-only memory (ROM),
non-volatile random access memory (NVRAM), electrically erasable
programmable read-only memory (EEPROM), FLASH memory, magnetic or
optical data storage media, and the like. The techniques
additionally, or alternatively, may be realized at least in part by
a computer-readable communication medium that carries or
communicates code in the form of instructions or data structures
and that can be accessed, read, and/or executed by a computer.
[0087] The code or instructions may be executed by one or more
processors, such as one or more DSPs, general purpose
microprocessors, ASICs, field programmable logic arrays (FPGAs), or
other equivalent integrated or discrete logic circuitry.
Accordingly, the term "processor," as used herein may refer to any
of the foregoing structure or any other structure suitable for
implementation of the techniques described herein. In addition, in
some aspects, the functionality described herein may be provided
within dedicated software modules or hardware modules. The
disclosure also contemplates any of a variety of integrated circuit
devices that include circuitry to implement one or more of the
techniques described in this disclosure. Such circuitry may be
provided in a single integrated circuit chip or in multiple,
interoperable integrated circuit chips in a so-called chipset. Such
integrated circuit devices may be used in a variety of
applications.
[0088] Various examples have been described. These and other
examples are within the scope of the following claims.
* * * * *