U.S. patent application number 09/384686 was filed with the patent office on 2003-03-27 for location-based information retrieval system for wireless communication device.
Invention is credited to CHERN, VINCENT, SON, WILLIAM Y..
Application Number | 20030060211 09/384686 |
Document ID | / |
Family ID | 22894221 |
Filed Date | 2003-03-27 |
United States Patent
Application |
20030060211 |
Kind Code |
A1 |
CHERN, VINCENT ; et
al. |
March 27, 2003 |
LOCATION-BASED INFORMATION RETRIEVAL SYSTEM FOR WIRELESS
COMMUNICATION DEVICE
Abstract
A wireless location-based information-retrieval system includes
a wireless communication device. The wireless device has a
transceiver for sending and receiving communications across a
wireless communication network, a position-determination device for
determining the location of the wireless device, and an Internet
browser. A remote server communicates with the wireless device. The
server receives the location data from the wireless device over the
network and maintains a web page listing information service
options. The information service options are accessible to and
selectable by the wireless device via the browser. The server
retrieves information from a database based on the location data
provided by the wireless device and on the selected service option.
The retrieved information is sent to the wireless device over the
network.
Inventors: |
CHERN, VINCENT; (SAN DIEGO,
CA) ; SON, WILLIAM Y.; (SAN DIEGO, CA) |
Correspondence
Address: |
LOUIS M. HEIDELBERGER
REED SMITH LLP
2500 ONE LIBERTY PLACE
PHILADELPHIA
PA
19103-7301
US
|
Family ID: |
22894221 |
Appl. No.: |
09/384686 |
Filed: |
August 27, 1999 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09384686 |
Aug 27, 1999 |
|
|
|
09237552 |
Jan 26, 1999 |
|
|
|
Current U.S.
Class: |
455/456.2 ;
455/403 |
Current CPC
Class: |
H04M 2242/30 20130101;
H04W 4/029 20180201; H04W 88/06 20130101; H04M 3/493 20130101; H04W
4/02 20130101; H04W 88/04 20130101; H04M 2250/10 20130101; H04M
1/6075 20130101 |
Class at
Publication: |
455/456 ;
455/403 |
International
Class: |
H04Q 007/20; H04M
011/00 |
Claims
1. A wireless location-based information-retrieval system
comprising: a wireless communication device comprising a
transceiver for sending and receiving communications across a
wireless communication network, a position-determination device for
determining a location of the wireless device and providing
location data indicative of the location to the wireless device,
and an Internet browser; a remote server in communication with the
wireless device over the network, wherein the server receives the
location data from the wireless device over the network and
maintains a web page listing information service options that are
accessible to and selectable by the wireless device via the
browser; and a database in communication with the server, the
server retrieving information from the database based on the
location data provided by the wireless device and based on a
selected service option, and sending the information to the
wireless device over the network.
2. A system as claimed in claim 1, wherein the position
determination device is a GPS receiver.
3. A system as claimed in claim 1, wherein the wireless device
further comprises memory for storing user information and
preferences, and wherein the user information and preferences is
provided to the server to assist in information retrieval.
4. A system as claimed in claim 1, wherein the information service
options are selected from a group comprising driving directions,
points of interest, location monitoring and notification
services.
5. A system as claimed in claim 1, wherein the information service
options including a driving direction service, and wherein the
server automatically determines the starting point from the
location data provided by the wireless device and the destination
point is entered by a user of the wireless device and sent to the
server over the network, the server compiling driving directions
and sending the driving directions to the wireless device.
6. A system as claimed in claim 5, and further comprising a traffic
monitoring service, wherein the wireless device periodically sends
the current location to the server, and the server accesses a real
time database to determine whether any impediments exist between
the current location and the destination point, the server
calculating new driving directions if necessary and sending the new
driving directions to the wireless device.
7. A system as claimed in claim 1, wherein the information service
options comprise a points of interest service, wherein the server
searches for points of interest to the user of the wireless device
based on the location data and sends the points of interest to the
wireless device for display.
8. A system as claimed in claim 1, wherein the information service
options comprise a location monitoring option, wherein the wireless
device periodically sends location data to the server and the
server maintains a log of the location data.
9. A system as claimed in claim 1, wherein the information service
options comprise a notification service, wherein the wireless
device periodically sends location data to the server and the
server in response searches for information corresponding to
pre-selected parameters and sends notifications to the wireless
device of any such information that is found.
10. A method for accommodating information requests from a user of
a wireless device comprising the following steps: presenting the
user with information service options via a wireless network;
determining the location of the wireless device; obtaining user
information stored on the wireless device; accepting a user's
information service choice from the wireless device via the
wireless network; retrieving information corresponding to the
service choice based on the user location and user information; and
sending retrieved information to the wireless device over the
wireless network.
11. A method as claimed in claim 10, wherein the information
service options are presented to the user on an Internet web
page.
12. A method as claimed in claim 10, wherein the user is presented
with an option for obtaining driving directions from the location
of the wireless device to a destination point.
13. A method as claimed in claim 12, and comprising the additional
steps of: obtaining the destination point from the user;
determining a route from the location of the wireless device to the
destination point; and sending the route to the wireless device for
display to the user.
14. A method as claimed in claim 13, and further comprising the
steps of: monitoring the route for impediments until the user
reaches the destination point; calculating a new route if an
impediment is found; and sending the new route to the wireless
device for display to the user.
15. A method as claimed in claim 10, wherein the user is presented
with an option for being informed of points of interest near the
location of the wireless handset.
16. A method as claimed in claim 15, and comprising the additional
steps of: obtaining points of interest preference information from
the user; retrieving points of interest matching the preference
information that are within a pre-determined proximity to the
location of the wireless device; and sending the retrieved points
of interest to the wireless device for display to the user.
17. A method as claimed in claim 10, wherein the user is presented
with an option for having the location of the wireless device
monitored.
18. A method as claimed in claim 17, and comprising the additional
steps of: periodically receiving the current location of the
wireless device; and maintaining a user-accessible log of the
locations of the wireless device.
19. A method as claimed in claim 10, wherein the user is presented
with an option for receiving notifications about subject matter of
interest to the user.
20. A method as claimed in claim 19, and comprising the additional
steps of: presenting the user with notification options; accepting
the user's chosen notification options from the wireless handset
via the network; retrieving information corresponding to the chosen
notification options based on the location and user data; and
sending and notifying the user of the retrieved information.
Description
RELATED APPLICATIONS
[0001] This is a continuation-in-part of application serial no.
09/237,552, filed on Jan. 26, 1999.
FIELD OF THE INVENTION
[0002] The present invention relates generally to radio or wireless
communications and, more particularly, relates to a location-based
information retrieval system.
BACKGROUND OF THE INVENTION
[0003] The advent of wireless personal communications devices has
revolutionized the telecommunications industry. Cellular, PCS and
other services provide wireless personal communications to
businesses and individuals at home, in the office, on the road, and
any other locations the wireless network reaches. Wireless
telephone subscribers no longer have to use pay telephones along
the road, or wait until they return home or to the office to check
messages and return important business calls. Instead, wireless
subscribers carry out their day to day business from their cars,
from the jobsite, while walking along the airport concourse, and
just about anywhere their signals are accessible.
[0004] Thus, it is no surprise that since the introduction of the
cellular telephone service, the number of wireless telephone
subscribers has increased steadily. Today, the number of wireless
telephone subscribers is staggering and still growing rapidly. In
fact, many households have multiple wireless telephones in addition
to their conventional land-line services.
[0005] With a market of this size, there is fierce competition
among hardware manufacturers and service providers. In an attempt
to lure customers, most providers offer handsets with desirable
features or attributes such as small size, light weight, longer
battery life, speed dial, and so forth. Many recent additions to
the marketplace include multifunctional handsets that even provide
pocket-organizer functions integrated into the wireless handset.
Most manufacturers, however, are still scrambling to add new
features to their communication devices to snare a portion of this
booming market.
SUMMARY OF THE INVENTION
[0006] The present invention is directed toward a location-based
information retrieval system for a wireless communication
device.
[0007] In one embodiment of the invention, a wireless
location-based information-retrieval system is provided. The system
includes a wireless communication device. The wireless device has a
transceiver for sending and receiving communications across a
wireless communication network. The wireless device also has a
position-determination device for determining a location of the
wireless device and providing location data indicative of the
location to the wireless device. Finally, the device comprises an
Internet browser.
[0008] The system also includes a remote server in communication
with the wireless device over the network. The server receives the
location data from the wireless device over the network and
maintains a web page listing information service options. The
information service options are accessible to and selectable by the
wireless device via the browser. The server retrieves information
from a database based on the location data provided by the wireless
device and on the selected service option. The retrieved
information is sent to the wireless device over the network.
[0009] In another embodiment of the present invention, a method for
accommodating information requests from a user of a wireless device
is provided. The user is first presented with information service
options via a wireless network. In one implementation, this
presentation is made in the form of an Internet web page. Next, the
location of the wireless device is determined, and user information
stored on the wireless device is obtained. The user's information
service choice is accepted from the wireless device via the
wireless network, and information corresponding to the service
choice is obtained based on the user location and user information.
The information retrieved is sent to the wireless device over the
wireless network.
[0010] Objects and advantages of the present invention include any
of the foregoing, singly or in combination. Further objects and
advantages will be apparent to those of ordinary skill in the art,
or will be set forth in the following disclosure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The present invention is described with reference to the
accompanying drawings. In the drawings, like reference numbers
indicate identical or functionally similar elements, and
[0012] FIG. 1 is a diagram illustrating an example wireless
communication device.
[0013] FIG. 2 is a block diagram of a wireless communication system
according to the present invention.
[0014] FIG. 3 is a flowchart illustrating a method for requesting
information across a wireless network according to the present
invention.
[0015] FIG. 4 is a block diagram of a hands-free unit having a GPS
receiver according to one embodiment of the present invention.
[0016] FIG. 5 is a block diagram of a hands-free unit having a GPS
receiver and voice synthesis and recognition according to another
embodiment of the invention.
[0017] FIG. 6 is a diagram of example formats for location
information requests responses.
[0018] FIG. 7 is a block diagram of a processor-based system
according to one embodiment of the invention.
[0019] FIG. 8 is a flowchart showing one implementation of a
location-based information retrieval system according to the
present invention.
[0020] FIG. 9 is a flowchart of a driving directions service
portion of the information retrieval system.
[0021] FIG. 10 is a flowchart of a points of interest service
portion of the information retrieval system.
[0022] FIG. 11 is a flowchart of a location monitoring service
portion of the information retrieval system.
[0023] FIG. 12 is a flowchart of a notification services portion of
the information retrieval system.
[0024] FIG. 13 is a flowchart of a traffic monitoring service
portion of the information retrieval system.
[0025] FIG. 14 is a flowchart of a server routine for performing
subscribed user services.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0026] 1. Introduction and Overview
[0027] The present invention provides a location-based information
retrieval system and method for wireless communication devices. A
position determination system is included with the wireless
communication device to allow the location of the device to be
determined. The location of the device can be used to provide
additional information or features to a user of the wireless
communication device. Examples of the information that may be
provided include map information; driving information; location
information; location of retailers, goods, services, or other
points of interest near the communication device; and any other
information that may be useful or valuable to a user of the
communication device. The device location is sent to a remote
server that accesses and compiles the requested information and
sends it back to the user via the communication device.
[0028] Voice recognition and speech synthesis capability can be
included to provide an enhanced user interface. This enhanced
interface allows acceptance of a user's vocal commands and provides
audible vocal responses. The enhanced interface may complement a
conventional display and keypad interface.
[0029] 2. Example Environment
[0030] Before describing the invention in detail, it is useful to
describe an example environment in which the invention can be
implemented. One example environment is a handset or communication
device operating within a wireless communication network such as,
for example, a cellular, GSM, PCS or radio communication network.
Wireless communication devices embodying the present invention can
be implemented in various configurations and architectures.
Typically, a wireless communication device will include a keypad
for control of the device and data entry, and a display for
displaying relevant information.
[0031] An example wireless communication device 100 is illustrated
in FIG. 1. Communication device 100 is presented for illustrative
purposes only; implementation of the invention is not dependent on
any particular device architecture or communication network.
[0032] Device 100 includes a processor 104, a speaker 106, a
display 108, a keypad 110, a transceiver 112, a memory 114, a
microphone 116, a power source 118 and an antenna 120. Device 100
is typically a mobile device such as a handheld handset or an
integrated vehicle phone. It is configured to communicate with
other communications devices such as base station 112. Base station
112 is typically within a geographic area known as a "cell" and
handles communications for all wireless devices within the
cell.
[0033] Processor 104 directs the overall operation of device 100. A
computer program or set of instructions is typically coded or
otherwise implemented on the processor to enable the processor to
carry out the device operation. Memory 114 interfaces with
processor 104 and may store program code and provide storage space
for data useful in executing the program code and carrying out the
device functions. Memory 114 may be implemented as ROM, RAM or any
other convenient memory format. The features and functionality of
the invention described below may be implemented using hardware,
software, or a combination thereof, and such software can run on a
processor such as processor 104 and be stored in a memory such as
memory 114.
[0034] Transceiver 112 includes a transmitter that transmits voice
and data information via antenna 120 to a recipient communication
device such as, for example, base station 112. Transceiver 112 also
includes a receiver that receives voice and data information from
another communication device (e.g., base station 112). The received
voice and data information is provided to the user or used to
facilitate device operation.
[0035] User interface features include speaker 106, display 108,
keypad 110, and microphone 116. Microphone 116 accepts voice or
other audio information from the user and converts this information
into electrical signals that can be transmitted by transceiver 112.
Likewise, speaker 106 converts electrical signals received by
transceiver 112 into audio information that can be heard by a user
of device 100. Display 108 displays information such as call
information, keypad entry information, signal presence and strength
information, battery life information, or any other information
useful to the user. Display 108 preferably takes the form of a
liquid crystal display (LCD), which have low power consumption
characteristics, but could also be implemented as a light emitting
diode (LED) display or any other appropriate visual indicator.
Keypad 110 typically includes an alphanumeric keypad and may also
include special function keys. In one embodiment, keypad 110 is
backlit to permit viewing of the keys in low light or dark
conditions. Device 100 may also include a flip panel (not shown)
that can be closed to conceal some or all of the keypad.
[0036] Power source 118 is provides power to device 100. It can be
implemented with rechargeable batteries, such as NiCad or NiMH
rechargeable batteries, or with any other suitable power
source.
[0037] 3. A Location-Based Information Retrieval System
[0038] FIG. 2 is a block diagram illustrating a wireless
communication system according to the present invention. The
communication system provides information to a wireless device user
based on the location of the user and his device. It includes a
wireless handset 130 and a hands-free unit 132. Handset 130 can be
implemented in a configuration such as device 100 of FIG. 1, or in
any other wireless communication device capable of communicating
with remote locations via a wireless communication medium. In the
description below, "handset" refers to any communication device
capable of communicating with other devices via a wireless
medium.
[0039] Hands-free unit 132 is optionally provided to allow the user
of wireless device 130 to communicate in a hands-free mode.
Hands-free unit 132 may include a microphone and speaker to provide
wireless device 130 with speakerphone-like capabilities. Such
capabilities are particularly desirable where wireless device 130
is utilized in an automobile or other mobile situation. In one
implementation, hands-free unit 132 is configured according to
conventional industry standards for a "hands-free kit".
[0040] In addition to the conventional standards, hands-free unit
132 is equipped with a position determination system 134 to
determine the location of unit 132 and handset 130. Alternatively,
position determination system 134 may be directly incorporated into
handset 130. Position determination system 134 determines location
in terms of parameters such as latitude, longitude, height, speed
of travel, and any other useful location or position parameters. In
one embodiment, position determination system 134 is implemented
using a GPS (global positioning system) or differential GPS. The
design and configuration of GPSs is well known to those of ordinary
skill in the art. Alternative position determination systems could
also be utilized.
[0041] One example of an alternative position determination system
is a triangulation system. In such a system, the position of
handset 130 is determined by triangulating a signal from handset
130 with the fixed locations of two or more base stations.
Triangulation systems, though useful and relatively inexpensive,
have several drawbacks. Errors due to multipath signal transmission
may occur and the systems may be inoperable in areas where only one
base station is available.
[0042] Wireless device 130 preferably includes both a voice and
data interface, particularly where position determination system
134 is incorporated in a hands-free unit 132. The voice interface
provides hands-free operation and speakerphone-like capabilities.
The data interface allows position information obtained by system
134 to be provided to handset 130 for transmission over wireless
network 140. Moreover, where voice recognition or speech synthesis
capabilities are provided (discussion below), the data interface
provides the data to be synthesized into speech or the data
received via voice recognition.
[0043] Handset 130 communicates with other entities via wireless
network 140. Network 140 is typically comprised of a plurality of
base stations that provide relay points for communication. Network
140 may be a cellular, PCS, GSM, or any other wireless
communication network. In addition to conventional communication
with other wired or wireless communication devices, as shown in
FIG. 2, network 140 permits communication between handset 130 and
data server(s) 136. When a user requests information, handset 130
provides the location of the handset to server 136 across wireless
network 140. Server 136 retrieves relevant information from an
associated database 138 and conveys the information to handset 130
over wireless network 140. The information may be displayed on the
handset display or audibly rendered via speech synthesis or
prerecorded scripts. Although the types of information stored in
database 138 are virtually limitless, several example applications
are provided for illustrative purposes.
[0044] In one example application, driving directions to a
destination address are provided to a handset user. The user
requests driving directions to the destination via keypad entry
and/or voice command, and the request is communicated to server 136
over wireless network 140. At the time of the request, the handset
location determined by position determination system 134 is also
provided to server 136 to provide a starting point for the
directions. Using the handset location and the destination address,
server 136 calculates a route and compiles driving directions. The
driving directions are transmitted to handset 130 over network 140
and are displayed or audibly rendered to the user. In addition to
textual driving directions, a map showing the route may be
displayed on the handset display. Options such as the shortest
possible route, interstate route, safest route, most scenic route,
etc. may be provided. The user's choice of options will dictate the
route calculation. The options may be stored, and prompts or
scripts generated, locally (in the memory of handset 130).
Alternatively, the options, prompts and scripts may be stored at
server 136 and provided to the user via network 140.
[0045] Another example application locates particular types of
businesses or services in the user's location. Restaurants, gas
stations, hotels and other businesses or services near the user's
location can be identified and provided to the user. Again, the
user requests the business or service type vocally or via keypad
entry. The request is communicated to server 136 over wireless
network 140, along with the user's current location as determined
by the position determination system 134. Server 136, based on the
handset location and user request, retrieves and returns relevant
information to handset 130 over network 140.
[0046] Parameter limits or filters may be implemented to refine the
request and selections returned. The user may set a location
filter, for example, that requires returned selections be within X
miles of the user's current location. If the user is seeking a
restaurant, the user may request or be prompted to select
parameters that refine the search results. These parameters may
include cuisine type (e.g., Italian, French, American, etc.),
restaurant type (e.g., fast food, casual dining, formal, etc.),
price range and so on. For restaurants as well as gas stations,
motels and other businesses, the user may identify a preferred
national or regional chain.
[0047] As noted above, the search may be refined (the query
narrowed) on the user's own initiative or based on system prompts.
If the user simply requests a nearby restaurant, for example,
server 136 may prompt the user with questions about parameters such
as those described above. Alternatively, to conserve bandwidth over
network 140, prompts can be stored locally and made by handset 130
(or hands-free unit 132) before the request is sent to server 136.
In this embodiment, updated scripts and/or prompts may be
downloaded from server 136 to handset 130. Preferably,
memory-intensive data such as establishment locations, driving
directions, etc. are stored in database 138 to minimize the amount
of memory required in handset 130. The precise distribution of data
storage among these devices will be influenced by factors such as
available bandwidth, memory costs and airtime costs.
[0048] The user may also specify avoidance of certain areas or
parts of town, such as those that have high crime rates, gang or
drug activity, or other undesirable attributes. Crime statistics
from law enforcement authorities or other sources can be compiled
and stored in database 138. Based on these statistics, certain
areas or neighborhoods may be identified as high crime rate areas
or otherwise undesirable areas. The user may opt to not receive
choices for establishments in, or driving directions through, those
areas. This feature can be implemented automatically, as a default
selection or through a user prompt. Alternatively, the system may
provide an automatic warning sound or indication to alert the user
of entry into a high-crime-rate area. This feature is particularly
useful if the user is unfamiliar with a particular area in which he
or she is travelling.
[0049] A method for requesting information across network 140 is
illustrated in FIG. 3. In step 202, a user initiates a request for
information. As described above, this request can be made via a
keypad entry or by voice command with an appropriate voice
recognition system. In step 204, the system determines whether the
request requires the handset location or position. If all
information is based on positional information, this step can be
eliminated on the assumption that answering any request requires
positional information. Since many requests may be fulfilled based
on previously transmitted position information or without any
position information at all, however, inclusion of step 204 is
preferable to avoid unnecessary transmission of position
information over network 140.
[0050] If position information is required, the method proceeds
from step 204 to step 212, where position determination device 134
acquires the position of handset 130. In one implementation,
position determination occurs somewhat constantly while handset 130
(or unit 132) is powered on. If position determination device 134
is situated in hands-free unit 132, unit 132 provides the position
data to handset 130 for transmission to server 136 over wireless
network 140 (step 214). If position information is not required,
the method proceeds from step 204 directly to step 206.
[0051] In step 206, handset 130 sends the request to server 136 via
wireless network 140. The request includes any position data
acquired in steps 212-214. In step 208, server 136 retrieves the
data or information requested from database 138. The data may be
retrievable and usable in raw form, or it may need to be processed.
This determination is based on the type of request, the information
requested, and the manner or format in which the information is
stored in database 138. The raw or processed data is communicated
to handset 130 over network 140 and, in step 210, is displayed or
provided to the user.
[0052] As described above, scripts or prompts may be provided to
the user to refine the information request. If the scripts or
prompts are stored in database 138 (as opposed to local storage in
handset 130), they are retrieved by server 136 in step 208 and
provided to the user in step 210. The user's answers to the prompts
are sent by handset 130 to server 136, which uses the refined
information to retrieve additional data or information from
database 138, or to further refine the user's query. This
potentially repetitive process is illustrated in FIG. 3 by flow
line 222 and the repetition of steps 202, 206 and 208. During this
repetitive prompting process, depending on time elapsed and
distance traveled, updated position information may be provided to
server 136. If the refining prompts are stored locally in device
130 or unit 132, refinement occurs before the query is sent and
this repetitive process will not usually be necessary.
[0053] Once the request has been sufficiently refined, server 136
uses the refined request to retrieve data from database 138.
Continuing with the examples described above, server 136 may
retrieve locations of restaurants, gas stations, hotels, or other
facilities or services near the user. In one implementation, the
information is listed or ranked in order of best matches to the
user's request and/or preferences. The listing of facilities or
services matching the request is provided to handset 130 over
network 140 (step 208), and the information is audibly or visually
provided to the user (step 210). If the information is provided
audibly, audio data can be prerecorded or synthesized by server 136
and transmitted over network 140, or data can be sent across
network 140 and speech synthesized locally.
[0054] Once the user selects a facility or service from the list of
options provided, server 136 can retrieve or compute driving
directions to the facility or service based on the user's current
position. If sufficient time has elapsed to significantly alter the
user's current position, server 136 may request a position update.
In one implementation, a speed of travel parameter is provided by
handset 130 along with the current position. In this
implementation, the determination of whether to update the position
information can be based in part on this parameter. Where the user
is traveling at a high rate of speed, positional updates will be
required often to ensure accurate directions. Additionally, where
the user is approaching a freeway exit or other waypoint in the
route being computed, server 136 may request a position update to
ensure that this waypoint has not been passed. If it has been
passed, an alternative route may be calculated or the user may be
directed to backtrack to the passed waypoint.
[0055] 4. Implementation of a Location-Based Information Retrieval
System
[0056] FIGS. 8-14 depict in more detail a method 600 for
location-based information retrieval using a wireless communication
device such as handset 130. As in the information retrieval system
described above, handset 130 communicates with a server 136 and
database 138 over a wireless network 140. In method 600, a web site
maintained on server 136 handles user requests for information. The
web site includes a "services home page" that serves as an index to
the available information services. Handset 130 is equipped with an
Internet browser or minibrowser program that accesses server 136
via network 140 and pulls the services home page to handset 130.
The home page is displayed on the handset display 108.
[0057] Referring to FIG. 8, the user enters the services home page
via handset 130 or another appropriate portable or navigational
device (step 602). Keypad 110 of handset 130 may include a special
function key that permits activation of the minibrowser and loading
of the services home page from server 136 in one keystroke. In step
604, as soon as the user has entered the home page, server 136
automatically attempts to retrieve from handset 130 information
stored in the handset memory relating to the user, the user's
preferences and handset 130 ("user information"). The user
information, if available, is useful to server 136 in formatting a
response to information requests based on the user's past
preferences.
[0058] The user information may be stored in the handset memory as
a data file or "cookie" created by server 136, and may be
periodically updated by server 136. At decision node 606, if server
136 found the user information, the user information is stored on
server 136 (step 608) and the method proceeds to step 610. If the
user information was not found, the method proceeds directly to
step 610. Though not shown in FIG. 8, if user information is not
found, the method could include an additional step of creating a
user data file or cookie and storing it in the handset memory.
[0059] In step 610, server 136 attempts to retrieve from handset
130 the location of handset 130 as determined by position
determination system 134. At decision node 612, if server 136 was
able to retrieve the location of handset 130, the location
information is stored on server 136 (step 614) and the method
proceeds to step 616. If server 136 was not able to retrieve the
location information, the method proceeds directly to step 616.
[0060] The home page index or list of services is displayed on
handset 130 in step 616. All available information retrieval
services are listed for the user to choose from. A selection for
ending the information services session may also be provided. If
handset 130 has voice synthesis capability, the available
selections could be audibly announced to the user. Although the
potential types of information retrieval services are virtually
limitless, for exemplary purposes, four types of information
retrieval services are discussed below.
[0061] One implementation of a location-based information retrieval
system includes a driving direction service, a points of interest
service, a location monitoring service, and notification services.
If driving directions are selected, an additional traffic
monitoring service is available. In step 618, the user selects one
of the listed services via the handset user interface. The
selection may be made through use of a menu navigation key, by
pressing a keypad number corresponding to the desired service, or
if voice recognition capability exists, by stating the
selection.
[0062] In steps 620-628, handset 130 sends the appropriate service
choice to server 136 over network 140. If the driving directions
service (step 620) is selected, the system proceeds to node 630 of
FIG. 9. If the points of interest service (step 622) is selected,
the system proceeds to node 660 of FIG. 10. If the location
monitoring service (step 624) is selected, the system proceeds to
node 680 of FIG. 11. If the notification services (step 626) are
selected, the system proceeds to node 690 of FIG. 12. Finally, if
the user opted to end the information services session, an
appropriate termination signal is sent to server 136 (step 628) and
the session is ended.
[0063] A sub-method for providing location-based driving directions
in response to a user request (step 620) is shown in FIG. 9
starting at node 630. The available types of driving directions are
displayed on handset 130 (step 632). In one implementation,
city-to-city and door-to-door driving directions are available. The
scripts and prompts related to the types of driving directions
available for selection may be stored remotely on server 136 or
locally on handset 130. In step 634, the user selects the desired
direction type, which is sent to server 136 over network 140.
[0064] The method proceeds according to which type of directions is
requested (decision node 636). If city-to-city directions are
requested, the method proceeds from node 636 to step 638. At step
638, if location information was available from handset 130 (see
step 610 of FIG. 8), the starting city is already known and the
method proceeds to step 640. If location information was not
available, the user will first be required to enter the starting
city (step 639). At step 640, the user enters the destination city.
If door-to-door directions were requested, the method proceeds from
node 636 to node 642. At step 642, if location information was
available from handset 130, the starting address is already known
by server 136 and the method proceeds directly to step 644. If
location information was not available, the user will first be
required to enter the starting address (step 643). At step 644, the
user enters the destination address.
[0065] At step 646, the city(s) or address(s) entered by the user
are sent from handset 130 over network 140 to server 136. Server
136 uses the handset location and the destination address or city
to calculate a route and compile driving directions. If necessary,
server 136 may access database 138 or other Internet servers to
assemble the route and directions. The driving directions are
transmitted to handset 130 over network 140 and are displayed or
audibly rendered to the user (step 648). In addition to textual
driving directions, a map showing the route may be displayed on the
handset display. User preferences such as the shortest possible
route, interstate route, safest route, most scenic route, etc. may
dictate the route calculation. If such preferences exist, they
would have been retrieved by server 136 from handset 130 in steps
604-608 (FIG. 8).
[0066] If location information is available from handset 130
(decision node 650), the user is presented with the additional
option of activating a traffic monitoring (TM) service (decision
node 652). If location information is not available, or if it is
available but the user opts not to activate the traffic monitoring
service, the method returns to step 616 of FIG. 8. The home page
(HP) services are listed, and the system waits for the next user
selection. If location information is available and the user opts
to activate the traffic monitoring service, the system proceeds to
the traffic monitoring sub-method of FIG. 13 (node 720).
[0067] If the traffic monitoring service is selected, handset 130
periodically sends its location to server 136 while in transit
according to the driving directions, and server 136 determines
whether there are any impediments such as accidents or construction
work along the calculated route. If impediments are present, the
server may configure an alternate route. The traffic monitoring
sub-method is illustrated in detail in FIG. 13 starting at node
720.
[0068] Referring to FIG. 13, server 136 first assesses whether the
destination address or city has been reached (step 722). If the
destination has been reached, the traffic monitoring service is no
longer necessary. Accordingly, the server cancels the traffic
monitoring service (step 738) and sends a message over network 140
instructing handset 130 to cease sending periodic location updates
(step 740). The method then proceeds directly to step 742.
[0069] If the destination has not been reached, server 136 searches
for any accidents, construction work or other impediments or
hazards between the current handset location and the destination
(step 724). In one implementation, this is accomplished through a
check of real time data maintained on database 138 or elsewhere on
the Internet. If no impediments are found (decision node 726), the
original route is not disturbed and the method proceeds to node
736. If an impediment is found, the server determines if an
alternate route is necessary (step 728). In one implementation, the
user's current speed (provided by handset 130) and the estimated
clearing time of the impediment are considered in determining
whether an alternate route should be calculated. If these factors
do not dictate an alternate route (decision node 730), the original
route is again left undisturbed and the method proceeds to step
736. If a new route is necessary, it is mapped and compiled as
described above with reference to FIG. 9 (step 732). The user is
notified of the change and the new route and map are sent to and
displayed by handset 130 (step 734). Information about the accident
or impediment necessitating the route change is also preferably
provided to the user.
[0070] As indicated by step 736, handset 130 continues to
periodically update server 136 with location information as long as
the traffic monitoring routine remains active (e.g., until the user
reaches the destination). If the destination has been reached, the
periodic updates are stopped. At step 742, server 136 determines
whether it needs to attend to other services in addition to the
traffic monitoring service. If there are additional services, the
system proceeds to step 756 of FIG. 14. FIG. 14 illustrates the
steps followed by server 136 each time a location or user
information update is received, and will be described in more
detail below.
[0071] Referring again to FIG. 8, another location-based
information retrieval service identifies certain points of interest
near the user's current location (step 622). The sub-method for
retrieval of information about points of interest is illustrated in
FIG. 10, beginning at node 660. At node 662, the user is prompted
to enter the business or type of facility she would like
information about. Examples include restaurants, gas stations,
hotels and any other businesses, services or recreation areas or
facilities the user would like information about. Again, the user
may enter his request either vocally or by keypad, depending on the
capabilities of handset 130. The request is communicated to server
136 over wireless network 140.
[0072] If the location of handset 130 was provided by an associated
position determination system, the method proceeds directly to step
668. If the location was not provided, the user will be required to
provide his current location at step 666. At step 668, server 136
searches database 138 and possibly other Internet resources for
nearby businesses matching the user's request. As described above,
limits or user preferences may be implemented to refine the request
and selections returned. The user may set a location filter, for
example, that requires returned selections be within X miles of the
user's current location. If the user is seeking a restaurant, the
user may set parameters such as cuisine type, restaurant type,
price range and so on. Preferred national or regional chain may be
set. In one implementation, server 136 in steps 606-610 (FIG. 8)
automatically retrieves this information from handset 130.
[0073] In step 670, server 136 sends the retrieved information over
network 140 to handset 130. The information is displayed on handset
130 (step 672), and may be listed or ranked according to proximity,
price or any other user preference. The system then returns to step
616 of FIG. 8 and awaits another user selection from the home page
index.
[0074] If the location monitoring service is selected, the system
proceeds to node 680 of FIG. 11. Server 136 initially determines
whether this service has already been activated (decision node
682). If it has, nothing further is required and the user is
returned to the main listing of services on the home page. If it
has not been activated, server 136 creates a user web page or file
where the user's locations are periodically posted and/or stored
(step 684). Essentially, the location monitoring service creates a
log of the user's whereabouts and makes the log available for the
user to inspect. The web page URL and password required for entry
are sent to the user over network 140 (step 684), and are displayed
by handset 130 to the user in step 686. Handset 130 may
automatically store this information locally, or may prompt the
user as to whether he desires to do so. With the web page address
and password in hand, the user can review his daily activities and
travels by properly directing his handset minibrowser. Step 688
notes that, while the location monitoring service is active,
handset 130 periodically sends updated location information to
server 136. The method returns to step 616 to display the home page
index.
[0075] If notification services are selected from the home page,
the information retrieval system proceeds to node 690 of FIG. 12.
With this option, the user is automatically notified about selected
types of news, events, promotions, etc. occurring near his location
(as reported by handset 130). On the initial selection of this
option, the user selects the types of events or information that he
would like to subscribe to and be notified about (step 691). These
selections may be later changed or deleted. At decision node 692,
server 136 proceeds according to the notifications the user has
subscribed to. Notifications about virtually any type of activity
or event are possible. Three types of notifications--news, events
and promotions--are shown in FIG. 12.
[0076] If the user has selected news notifications, the method
proceeds to step 694. Server 136 obtains search parameters to
define the types of news notifications provided to the user, such
as the news type (i.e., politics, sports, headlines, entertainment,
etc.) or region (city, county, state, national, world). These
parameters may have already been retrieved by server 136 from
handset 130 in steps 606-610 of FIG. 8. If not, the user may be
prompted at step 694 to enter search parameters. At step 696,
server 136 searches for news that falls within the search
parameters.
[0077] If the user has selected event notifications, the method
proceeds from node 692 to step 698. Server 136 obtains search
parameters to define the types of event notifications provided to
the user. Parameters may include the event type (i.e., community
events, sporting events, theatre, arts, etc.), events within a
certain region (city, county or state), or events occuring within a
configurable mile radius of the user. These parameters may have
already been retrieved by server 136 from handset 130 in steps
606-610 of FIG. 8. If not, the user may be prompted at step 698 to
respond to queries to define the search parameters. At step 700,
server 136 searches for events that fall within the search
parameters.
[0078] If the user has selected promotion or sales notifications,
the method proceeds from node 692 to step 702. Server 136 obtains
search parameters to define the types of promotional or sales
notifications provided to the user. Parameters may include merchant
or service type (i.e., clothing, household goods, restaurants,
etc.), or promotions/sales occuring within a defined region or
configurable mile radius of the user. These parameters may have
already been retrieved by server 136 from handset 130 in steps
606-610 of FIG. 8. If not, the user may be prompted at step 702 to
respond to queries to define the search parameters. At step 704,
server 136 searches for events that fall within the search
parameters.
[0079] Once server 136 has retrieved all subscribed notifications
matching the search parameters, it proceeds to node 706 and
determines whether the notifications found in the search were
already sent to the user. If the notifications were already sent,
it is usually not necessary or desirable to send them to the user
again, and the server proceeds directly to step 712. It should be
noted, however, that the user may set her preferences to eliminate
this step if she wishes to receive all notifications found, even if
they were previously sent. If the notifications have not yet been
sent to the user, the notifications are sent to handset 130 over
network 140 (step 708). The notifications may be sorted according
to the user's preferences such as, for example, by region,
proximity, price, merchant-type and so on. At step 710, handset 130
displays the received and sorted notifications.
[0080] So long as the notification service is active, handset 130
periodically sends updated location and user preference information
to server 136 (step 712). As will be described with reference to
FIG. 14, when server 136 receives such updates, it initiates a
routine to perform all services the user is subscribed to. At
decision node 714, server 136 determines whether the user is
subscribed to other services. If the user is subscribed to other
services, the method returns to step 756 of FIG. 14 to perform the
remaining services. If the user is not subscribed to other
services, the user is presented with the main home page display of
service options (step 616 of FIG. 8)
[0081] FIG. 14 depicts the steps followed by server 136 each time a
location or user information update is received from handset 130
(step 752). Such updates are sent periodically by handset 130
whenever the location monitoring, traffic monitoring and/or
notification services are active. At step 754, upon receiving an
update from handset 130, server 136 determines which services
handset 130 subscribes to. From node 756, server 136 performs the
subscribed services. For location monitoring, at step 758, server
136 updates the user record and/or web page with the location
information received from handset 130. At step 760, server 136
determines whether handset 130 is subscribed to additional
services. If it is, the method loops back to step 756 to perform
the additional services. If it is not, the user is returned to the
home page list of options. For notification services, server 136
proceeds with step 692 of FIG. 12. For traffic monitoring services,
server 136 proceeds with step 720 of FIG. 13.
[0082] As described in more detail below, the method steps of FIGS.
8-14 may be implemented as computer programs, software or hardware.
The portions relating to control of handset 130 may be coded in
processor 104 or could be stored in memory 114. Alternatively, the
program or portions of it could be stored on server 136 and
downloaded to handset 130 as needed. The portions relating to the
steps carried out by server 136, such as FIG. 14, preferably reside
in a processor or memory in server 136.
[0083] 5. Additional System Details
[0084] As stated above, in one embodiment, position-determination
device 134 is located in hands-free unit 132. FIG. 4 illustrates
one implementation of a hands-free unit 132, including a GPS
receiver 304 that functions as the position determination device
and an associated controller 306. Position information is exchanged
with wireless handset 130 via data in-out interface 308. Antenna
310 allows GPS receiver 304 to communicate with the constellation
of GPS satellites. As stated above, alternative position
determination devices could be implemented if desired. Speaker 312
and microphone 314 provide speakerphone like capabilities to
wireless device 130. Audio processor 316 provides A/D, D/A and echo
canceling for voice digitization or synthesis. Preferably, the
digitized voice is in the form of PCM (pulse code modulated) data,
although other data coding techniques could be utilized.
[0085] As described above, voice synthesis and/or recognition
capabilities may be provided. In one implementation, voice
synthesis and recognition are provided in hands-free unit 132.
Alternatively, wireless device 130 or server 136 could provide
these capabilities.
[0086] FIG. 5 shows an example implementation of hands-free unit
132 with voice synthesis and recognition. In this implementation,
user speech commands are received by microphone 314, digitized by
audio processor 316 and processed by voice recognition algorithm
322. The processed speech commands are provided to controller 306
and sent to server 136 as data 309. Similarly, information
retrieved by server 136 can be provided to controller 306 and voice
synthesizer 324. Voice synthesizer 324 converts this information to
digital voice data, which is processed by audio processor 316 and
announced to the user via speaker 312. Additionally, audio
information can be provided to audio processor 316 via audio in-out
communication path 308. Where server 136 performs speech synthesis
or recognition, digital voice data is sent across network 140 and
is provided to, or received from, the user via audio in-out
connection 308.
[0087] Where position determination device 134 is located in
hands-free unit 132, wireless device 130 sends a location
information request message to hands-free unit 132. Hands-free unit
132 in response sends a location information response message to
the handset 130. The location information response includes
parameters indicating position such as time, longitude, latitude,
height, speed, and data age.
[0088] FIG. 6 is a diagram illustrating an example format for the
location information request 404 and the location information
response 408. Location information request 404 is a one-byte data
field. Response 408 includes several fields, including time 410,
longitude 412, latitude 414, height 416, speed 418 and data age
420. Time field 410 is six bytes in length, longitude field 412 is
nine bytes in length, latitude 414 is eight bytes in length, height
field 416 is eight bytes in length, speed field 418 is three bytes
in length, and data age 420 is one byte in length. As would be
apparent to one of ordinary skill in the art, other message formats
and field lengths could be utilized.
[0089] In one embodiment, the time is GPS time of day in seconds
and is in ASCII format. Longitude, latitude and speed are also in
ASCII format, with the longitude data being positive east, the
latitude data being positive north and the speed being in miles per
hour. The data age reflects the age of the return data and can
indicate whether the data is fresh, old, or otherwise not
available. Data is listed as fresh if it is less than ten seconds
of age, or old if it is greater than or equal to ten seconds. Of
course, alternative formats can be provided and alternative time
frames established for determining if data is fresh or old.
[0090] A status request and response may be used to query the
status of position determination device 134 before requesting
location information. This is particularly useful if position
determination device is implemented as a GPS receiver. The request
message may be one byte in length and simply request the status of
the GPS receiver. In this implementation, the response may be a one
byte status word indicating whether the device is ready. The
response could include additional information such as, for example,
the reason the status is ready or not ready, or any other pertinent
information.
[0091] The various embodiments and features of the invention
described above may be implemented with hardware, software or a
combination thereof and may be implemented using a computing system
having one or more processors. In one embodiment, these elements
are implemented using a processor-based system capable of carrying
out the functionality described with respect thereto. An example
processor-based system 502 is shown in FIG. 7. System 502 includes
one or more processors, such as processor 504. Processor 504 is
connected to communication bus 506.
[0092] System 502 includes main memory 508 and secondary memory
510. Main memory 508 is preferably random access memory (RAM), and
secondary memory 510 preferably includes hard disk drive 512 and/or
a removable storage drive 514. Removable storage drive 514 is
typically a floppy disk drive, a magnetic tape drive, an optical
disk drive or the like. Storage drive 514 reads from and writes to
removable storage media 518 in a well known manner. Storage media
518 is typically a floppy disk, magnetic tape, optical disk or the
like having stored therein computer software and/or data.
[0093] Secondary memory 510 may include additional or alternative
means for allowing computer programs or other instructions to be
loaded into computer system 502. A removable storage unit 522 and
interface 520, for example, may be provided. Interface 520 and
storage unit 522 could take the form of a program cartridge and
cartridge interface (such as that found in video game devices), or
a removable memory chip (such as an EPROM, or PROM) and associated
socket.
[0094] Communications interface 524 allows software and data to be
transferred between computer system 502 and external devices.
Examples of communications interface 524 include a modem, a network
interface (such as, for example, an Ethernet card), a
communications port, or a PCMCIA slot and card. Software and data
is transferred via communications interface 524 as electronic,
electromagnetic, optical or other signals capable of being received
by communications interface 524. These signals are provided to
communications interface via channel 528. Channel 528 carries
signals and can be implemented as a wireless medium, wire or cable,
fiber optics, or other communications medium. Examples include a
phone line, a cellular phone link, an RF link or a network
interface.
[0095] In this document, the terms "computer program medium" and
"computer usable medium" are used to generally refer to media such
as removable storage device 518, a disk capable of installation in
disk drive 512, and signals on channel 528. These computer program
products are means for providing software or program instructions
to computer system 502. Computer programs (also called computer
control logic) are stored in main memory and/or secondary memory
510. Computer programs can also be received via communications
interface 524. Such computer programs, when executed, enable the
computer system 502 to perform the features of the present
invention as discussed herein. In particular, the computer
programs, when executed, enable the processor 504 to perform the
features of the present invention. Accordingly, such computer
programs represent controllers of the computer system 502.
[0096] In an embodiment where the elements of the invention are
implemented using software, the software may be stored in, or
transmitted via, a computer program product and loaded into
computer system 502 using removable storage drive 514, hard drive
512 or communications interface 524. The control logic (software),
when executed by the processor 504, causes processor 504 to perform
the functions of the invention as described herein.
[0097] In another embodiment, the elements are implemented
primarily in hardware using components such as PALs, application
specific integrated circuits (ASICs) or other hardware components.
Implementation of a hardware state machine to perform the functions
described herein will be apparent to persons skilled in the
relevant art(s). In yet another embodiment, elements are
implemented using a combination of both hardware and software.
[0098] While various embodiments of the present invention have been
described above, it should be understood that they have been
presented by way of example only, and not limitation. Thus, the
breadth and scope of the present invention should not be limited by
any of the above-described exemplary embodiments, but should be
defined only in accordance with the following claims and their
equivalents.
* * * * *