Utility Patent Application of
Ting-Mao Chang
Jawe Chan
for
CONTINUOUS LOCAL INFORMATION DELIVERY SYSTEM AND METHOD
Cross Reference to Other Applications
This application claims the benefit of US Provisional Application Number 60/227,454, filed
August 23, 2000.
Background— Field of Invention
This invention relates to an efficient information searching system and method that require less communication bandwidth than the prior art. It is especially important for mobile information devices, like hand-held computers and mobile phones, which have lower communication bandwidtli by nature.
Background— Description of Prior Art
Mobile information processors, such as notebook computers, handheld computers, in-vehicle computers, electronic organizers, and personal data assistants (PDA), are in themselves computer systems and are able to process information. Each kind of mobile information processor has different capabilities and features for different purposes. Because of the mobile nature, a user is not able to store a large amount of information on the mobile information processor. The user needs to connect to other systems to access other information. Because of the mobile nature, the user will typically choose wireless connection to access the information on otlier system. Therefore, the wireless connection capability on mobile information processors becomes important. Many mobile information processors have either an embedded wireless communication peripheral or an expansion slot for an add-on wireless communication card.
Mobile communication devices, like mobile phones or pagers, are communication devices with a small computer system embedded. The earlier mobile phone has limited capability to process information otlier than voice messages. The earlier pager also is only able to receive the caller's phone number. However, newer mobile phones and pagers have much more powerful processing units and larger displays to process and display extra information beyond a voice message or phone number.
A mobile information device is mobile equipment that has both information processing and communication capabiMties. Both mobile information processors and mobile communication devices are mobile information device. Both have great processing and great communication capabilities, which will likely have little or no difference in the near future.
The Internet is a revolutionary technology that is a rich source of information. Tlirough the Internet, a user can access information about the world with the click of a mouse button. The user
can access information related to a company on the other side of earth from their home. Companies are promoting their product information and services or malting direct sales on the Internet. The Internet is so powerful and convenient to store or retrieve information that the Internet naturally becomes the best source of information for mobile information devices.
Wireless communication bandwidth is so much lower than hardwire communication bandwidth that the wireless connection becomes a bottleneck when the mobile information device connects to the Internet. In order for the prior art to search information on Internet, they either need to know the Web site address of the information or use a search engine on the Internet to search for the information. The user needs to provide the search engine with some key words that relate to the information. However, the tremendous information on the Internet is explosively growing. The user could receive thousands of related pieces of information from a search engine. In many cases, the user only needs the local information instead of global information. Too much unnecessary information will lengthen the download of the search result. This situation will be much more serious and eventually become intolerable for the user of a mobile information device with wireless connection to Internet.
The prior art deals with the explosive global information problem by categorizing the available information. Most of the search engines on the Internet categorize the information by the information characteristics. For example, Yahoo Company categorizes their database into automobile, travel, computer, political, stock quote, etc. The user could choose the category to do the search. This approach might reduce the quantity of information returned from a search. However, it is still too many pieces of information and contains d e global information within that category.
Some of the companies on the Internet further categorize their information by the geograpliic area, for example countries or cities. With the geographic area category, the user could search the information only in a predefined area, which usually is a government district, for example ZIP code
area, city, county, state, and country, etc. One of the examples is the Sidewall- web site of Microsoft Company. The web site provides a utility to locate the stores by choosing Boolean search criteria and an area, which could be a ZIP code, a city, a county, a state, or a country. After it found the stores, it returns a map and shows the store location by malting a mark on the returned map. It has the disadvantage that the searching area is predefined. The user could not choose as they wish. For example, the user could not cross a city limit or narrow down the search to a shopping mall.
Another prior art device is the Global Position System (GPS) receiver. The Global Position System receiver receives signals from one of several satellites and then determines its current position. The Global Position System receiver usually has a built-in small computer. The computer has a display that could display a simplified map and show the current position on die map. The map is either pre-stored in the computer or could be downloaded from a remote site through a wireless connection. The computer uses the current position coordinates to search a built-in database for local information, for example die closest gas stations, hospitals, or restaurants. The built-in database is stored in a memory device of the computer, for example, flash memory or CD-ROM. It has the disadvantages that information might be out-dated and the searching area may not be selectable. Some Internet map application mentions the feature to automatic download another map when user reaches the boundary of the map. The application usually downloads a fix scale of map around the user's current position. Since that, the previous map and next map usually has a lot of overlap that is a waste to the network bandwidth. To download the next map at the boundary may not be just in time because the download process takes time.
Some of the Internet web browsers provide the schedule features to automatic downloading the information through Internet. However, they are not location sensitive. The tool cannot automatically retrieve information around user's current position.
A preliminary novelty search of classes 707/1, 701/213, 701/200 in U.S. patents, uncovered U.S. Patent Numbers 5751246, 586799, 5839088, 5802492, 5959577, and 6112520. None of which
disclose the concept of a continuous local information delivery system that efficiently and continuously delivers user preferred local information tiirough wireless telecommunication and automatically adjusts the search area and search schedule based on moving conditions and other constrains. Furthermore, none of die prior art could continuously deliver updated information just in time and fulfill die low bandwiddi requirement.
Summary of the Invention
A fast and convenient local information search system and method is provided for a mobile information device user who is able to search and efficiendy retrieve the information corresponding to the user's current location from Internet. The task manager of preferred embodiment of the invention smartiy schedules several search events and chooses geographic search area with littie or no overlap between the geograpliic areas- of search events to retrieves user's nearby information along the travel path. The task manager of die preferred embodiment of die invention is accessible to an automatic positioning system, such as a Global Position System (GPS) or Network based positioning system, to track user's mobile position and to predict the future travel path. The task manager plans and schedule before reach the desired area and further uses historical search criteria to reduce die
* search results of current search criteria before transmitting the final results through the wireless communication bottleneck.
The user of die preferred embodiment of the invention has a mobile information device that is able to process information and wirelessly communicates witii other computer systems on the Internet. The mobile information device of the preferred embodiment of the invention also equips with the peripherals to accept user's command and present die search result to user.
The other computer system of die preferred embodiment of die invention is a computer server. The computer server links to a database containing information about possible search topic and corresponding geo-coded information and/ or geographic information.
In the preferred embodiment of die invention, the user of die mobile information device direcdy connects to an Internet Service Provider (ISP) wirelessly or to a mobile phone carrier and then to an ISP. After connecting to the ISP, the mobile information device can communicate with any other computer system on the Internet. The user of the preferred embodiment of the invention specifies a request and the task manager executes the request. The request describes what desired information topic is and where the information is to be located. The task manager could handle a plurality of requests at the same time. The task manager is accessible to automatic positioning system and otiier moving conditions or constraints to predict the future travel path, plans the geographic area and trigger condition of a search, and schedules the search according to the trigger condition, such as time or location. Several searches could be scheduled for a user's request. Then, the task manager queries a computer server on die Internet to search for information by providing triggered search criteria when trigger condition is satisfied. The computer server searches the database according to the search criteria.
The geographic area of the search criteria of the preferred embodiment of the invention describes criteria for the information topic and the geographic area where the information located. The geographic area is described in coordinates of referencing system, such as coordinates in GPS system, or a location identifier, such as cell identifier of cellular phone system. If the previous search result is stored in the mobile information device, the geographic area of die search criteria could excluded the area covered by historical search criteria when task manager plans the geographic area. In another preferred embodiment of the invention, the computer server records the user's search criteria history. The computer server searches the database according to the current search criteria and filters out the search results that match with the historical search criteria and, therefore, have
already been transmitted back to die mobile device. This approach could further reduce the quantity of query information transmitted to die computer server by increasing the working load of d e computer server and managing a user profile for their prior queries. The criteria for information topic are included in each query to server computer. However, criteria for information topic are die same for all the searches of a user request. In another embodiment of the invention, die criteria for information topic are replaced with an identifier for identifying the unique combination of a user and a request.
The preferred embodiment of die invention further proposed a prediction metiiod to estimate the next information search turn-around time. With the prediction the invention could determine when to do die next search to serve the user just in time and leaves a buffer time to allow one or more other real time applications to share the communication channel. With this technique, the user could continuously do information searches, but not prevent the communication channel from executing other time critical tasks.
Another prediction metiiod of the preferred embodiment of the invention is to utilize dynamic information, such as speed and direction of the user, to determine a best geographic area for the next search and thereby create a better query that would reduce the redundant search results from previous queries.
The search results of the preferred embodiment of the present invention could be transmitted back to the user in ascending order based on the distance from the position of each search result to user's position. In this case, die user could receive or present the closer and approacliing information first and dien information on fartiier candidates. The mobile information device memorizes the search results according to user preference or storage space limitation.
Accordingly, besides the objects and advantages of die system and method for searching local information describes in our above patent, several advantages of the present invention are:
(a) Providing a mobile information device tiiat uses an highly efficient system and metiiod to access the local information witii a lower communication bandwidth requirement,
(b) Providing a mobile information device that is convenient and fast and uses a local information searching system and metiiod which could find information in a user specified
5 searching area, and match user specified criteria,
(c) Providing a mobile information device to accurately search local information by utilizing the Automatic Position System,
(d) Providing a flexible local information searching system and method with highly adjustable searching area, for example, crossing city boundaries, along the road, or a narrowed down to
10 a shopping mall,
(e) Providing a mobile information device using the most up-to-date information on the Internet instead of local storage,
(f) Providing a mobile information device to retrieve information just in time to share a low bandwidth communication channel wid other applications,
l-*-* (g) Providing a mobile information device using an automatic continuous local information search capability witiiout requiring additional user input, which is very important when a user is driving a vehicle, and
(h) Providing a mobile information device using a well-managed scheduling and planning metiiod tiiat reduces the redundant information transmission, thereby reducing the cost of 20 aj-etime charges for the wireless connection.
Drawing Figures
A system and method for mobile devices to access local information is described. In the following description, for purpose of explanation, numerous of specific details are set forth in order to provide a thorough understanding of d e present invention.
FIG.l shows several mobile end user computers comrnunicating with a server computer in a variety of ways.
FIG.2 shows a server computer system witii links to several databases.
FIG.3 shows a user's driving route and two continuous search areas on a map.
FIG.4 shows a gap between two continuous search areas that allows missing in the uncovered area.
FIG.5 shows two predefined search area systems and differences between d e systems.
FIG.6 shows a predefined search area system and a car driving nortii and turning right.
FIG.7 shows a predefined search area system and a car driving south and turning right.
FIG.8 shows the search scheduler determining the next search time.
FIG.9 shows an aggressive search concept that searches the information of an area before the user arrives in die area.
FIG.10 shows the estimation of die turn around time of the next search and decision of d e next search area.
FIG.l 1 shows a car changing direction and the scheduler rescheduling the search area and excluding d e overlapped area.
FIG.12 shows a graphical user interface to display the search results.
FIG. 13 shows the relation between the server computer, the client computer, and the task manager.
FIG. 1 shows the task manager and all its subsystems.
FIG. 15 shows the flow chart of user the input process in task manager.
FIG 16 shows the flow chart of scheduling a one-time search event.
FIG. 17 shows the flow chart of scheduling a periodic search event.
FIG. 18 shows the flow chart of scheduling a continuous search event.
FIG.1 19 shows the flow chart of scheduling an event in the schedule task database.
FIG. 20 shows d e flow chart of executing the time trigger event.
FIG. 21 shows the flow chart of executing the position trigger event.
FIG 22. shows the flow chart of reaction to change in the moving condition.
Description— Figs. 1 to 22
FIG. 1 illustrates several typical models of low bandwidth search systems, according to the present invention. User 100 is driving a car 101. An in-vehicle computer 102 on the car is linking
with a remote computer 103 tlirough linkage 104. User 100 is using the information searching service provided by the remote computer for locating merchandize. User 110 is also driving a car 111. A personal assistant device (PDA) 112 on the car 111 is Uniting with the remote computer 103 through linkage 112. User 110 is connected with the remote computer for retrieving the local street maps. User 120 is walldng in a shopping mall and using a cellular phone 121 to link with the remote computer to inquiry d e merchandize on sale.
The user's computer 102, 112, 121 could be any kind of mobile computer, for example, an in- vehicle computer, a personal assistant device (PDA), an electronic organizer, a hand-held computer, or even a mobile phone. The user's computer 102, 112, 121 is capable of processing information and communicating with a remote computer 103. The preferred linkage 104, 113, 123 of the present invention between the user's computer 102, 112, 121 and the remote computer 103 could be connected through the public or private wireless and/or wired communication channel to an Internet Service Provider (ISP). The Internet Service Provider relays information to and from the user's computer 102, 112, 121 to die remote computer 103 through the Internet. On the Internet, the user's computer 102, 112, 121 could communicate with any remote computer in the world.
The user's computer 102, 112, 121 of the present invention has a Global Position System receiver. The receiver may be embedded in the mobile computer 102, 112, 121 or is an external receiver connected to the mobile computer 102, 112, 121. The software on the mobile computer 102, 112, 121 could access the GPS receiver to locate the current position dynamically.
FIG. 2 illustrates a remote computer 200 that is accessible by a user's computer 203. The remote computer 200 is also accessible to one or more database systems 201, 202. One database system 201 contains the topical information and the corresponding locations. Topical information could be found in the database 201 by giving a specific search topic criteria and a geographical criteria. Another database system 202 is Geographic Information System (GIS). Using the geographic information in the database system 202, a software application on the remote computer 200 could
generate a street map that is requested by a user. The remote computer 200 could access many databases, such as a traffic condition database, a restaurant information database, etc.
Searching task manager
Users frequentiy need to know information about their surroundings. In the prior art, the user uses a Palm organizer or Compact Window CE PDA with a wireless modem to access the Internet in order to do searching. It is very convenient to have a wireless connection to the Internet. However, the user has to manually repeat the search process when the user searches for the same kind of information for different locations. There is no way to efficiendy use the wireless communication channel. The present invention is a solution to help resolve these problems. The preferred embodiment of the present invention has a searching task manager subsystem. The searching task manager subsystem maintains a list of searching tasks. Each searching task defines a one time searching activity or a repeating searching activity. The searching activity contains die information about what to search, where to search, and when to search. What to search includes a topic search criteria. Where to search includes a rule of geographic search area, for example a 5 miles radius circle around the user. When to search includes a search schedule, in terms of time and/or spatial location, for example any combination of a search frequency, start condition, and stop condition, and other dynamic arrangement, for example to arrange next search when approach the boundary of searched area. The present invention executes the search tasks automatically without further input or action from the user. The search result may be stored in memory or output to the user by a display or a voice synthesizer. It is especially important while the user is operating a vehicle or walking on the road.
An example of the searching task is continuously searching the traffic conditions in the surrounding area. Since this information could not be planned in advance or does not make sense to download before approaching the area and should be retrieved real time. The user is concerned about die traffic conditions on or around the current or planned travel path. So, die user could
schedule two searching tasks. One searching task searches a smaller area around the current position more frequently. Another searching task searches a larger area less frequentiy. The search tasks could be started between 8:00 am to 9:30 am Monday to Friday when user enter highway 85.
In another example of a searching task, the user downloads the local map through the Internet, thereby alleviating the need to carry potentially out-dated information in the local computer system. However, the map itself contains a large quantity of data and the download is slow. If a map covers a large area or is in small-scale, it tends to contain an even quantity of data. The user could schedule one task for searching the detailed map and another task for searching the large-scale map. The large area and large-scale map provide a driver with large and rough geometry of their path and makes the information quantity manageable by the low bandwidth communication channel. The small scale and small area map is around the driver's current location. The small area and small-scale map provides die driver with a detailed street environment and makes the quantity of data manageable by the low bandwidth communication channel. The present invention automatically downloads two kinds of maps when user approaches the boundary of the map.
In a simple preferred embodiment of the present invention, the user initiates a searching task by providing a topic search criteria, a searching time period, and an initial geographic search area. The searching task is tiien stored in die searching task manager. The user's computer of the present invention periodically sends die queries to the remote computer. Each query differs by the geographic search area that relates to the user's current position as measured by an automatic positioning system. The search topic of each query is the same, but the search area is moving according to user's position. A circular search area is a good choice because checking a search target is in a circular search area is fast. The center of the circular search area is at the position of the car or user and the user may pre-select a search radius. Depending on the speed of the car and die radius, two or more continuous search circles may overlap each other.
In Fig 3, a searching task does a search within area 301 and then anotiier search within area 302 after a period of time has passed. The user may receive updated information related to the overlapped area 303 if the information changes between two searches. The preferred embodiment of die present invention can remove die old search results on the overlapped area and update with the latest search results. If the user prefers to keep the old search result, the invention could present all the search results according to the received time of each search result. For example, present the latest received search result in front of previous received search results or include a time stamp next to each search result. If the information does not change that often, the user may receive duplicate information related to the overlapped area when each query is independentiy transmitted and the outputs are independently received. Since the bandwidth of the wireless connection used by the mobile device is very low, die duplicate information wastes bandwidth, if the user's computer transmits the query too often. To remove the duplicate information, the present invention has a query synthesis subsystem that synthesizes a query by excluding the previous search activities of a search task from the following search activity. To perform this task, each search activity is stored for a period of time, which could be predefined by the user. To reduce the storage cost, the invention might only store the search area of a search activity of a search task because the search topic is remaining the same. Since the previous search activities are excluded from die following search, the user could decide to store the search result for the same period of time for future reference. This technique uses the historical search activities to reduce die network traffic and speed up the searching process. The query synthesis subsystem could be implemented on the user computer or the server computer. If it is implemented on the server computer, the server computer needs to store and maintain the previous search activities on a per user basis. The generated query may be a set of query instructions that instruct the search engine to process the inquiries. For example, the following is a set of query instructions of a new query where the new coordinates are 55°50'N 12°50'E, and coordinates 55°50'N 11°50'E and 55°50'N 10°50'E are centers of previous search areas.
1. searching topic is "piano sale"
2. searching area is "coordinates 55°50'N 12°50'E radius 10 miles"
3. exclude search area "coordinates 55°50'N 11°50'E radius 10 miles"
4. exclude search area "coordinates 55°50'N 10°50'E radius 10 miles"
Planning where to search
The driving speed and direction could affect the information search quality. In Fig 4, a car is moving out of user- specified search area before the next query returns the search results. It makes the first search at 401 and the second search at 402. The driver does not have enough information in the blind area 403, which was missed by both queries. However, too much overlap in the search areas causes too much redundancy and too littie search area coverage causes poor search quality. The preferred embodiment of the invention could use a predefined search area system that rninimizes the overlap between searches areas, for example pre-selected discrete areas, like malls, continuous square grids, or continuous pentagonal cells. A search task tiien invokes a search activity when die user approaches or reaches the boundary of the already covered geographic area. Giving each search area in a predefined searching area system an identifier, all search area definitions in a query could be replaced with identifiers and an identifier for the predefined search area system. If the server already knows which predefined search area system is being using, the invention could even skip the identifier for the predefined search area system.
The present invention could automatically choose a different predefined search area system based on die speed and/ or direction the user is moving. For example, choosing a larger grid search area while the user is moving quickly. Or, choosing a rectangular shape search area tiiat has edges parallel to die direction of motion and covers evenly around the travel path. In order to accomplish this, die present invention has a search area planning subsystem to collect the speed and direction of motion of the user and dynamically adjust the searching area for the next query. In Fig 5, for example, user 501 is travels through position 502. The user chose to use a predefined search area
system. Predefined search area system 503 is not a good choose because die user drives around the boundary of the search area 504 where the user may loose the information on the left-hand side. To avoid that, die present invention needs an extra search area 505 for searching die information on the left. The user 506 travels through position 507. Predefined search area system 508 is a good choice because the user drives through the middle of die search area 508, so, the search area could be minimized and may find less information and use less bandwidth.
Changing die direction of motion could change the next search area. The following example uses a predefined search area system of which each search area is constructed by a road or street segment and its surrounding area. This type of predefined search area system is wells in a city area where a car moves at a slow speed. To help searching information, information vendor could associate the information somewhere on the road segment, which looks like an electronic sign to the user. The intersection in Fig 6 and the intersection in Fig 7 are the same one, but each figure shows a different predefined search area system. In Fig 6, the predefined search area system shows four search areas, 601, 602, 603, and 604. A car 605 goes north with current search area 604. The next search area will be 602. However, the driver intends to turn right and switches on the right turn signal at the intersection. The present invention senses die right turn light and starts the search on search area 603. In Fig 7, another car 705 goes soutii at the same intersection but selects a different predefined search area system with search areas 701, 702, 703, and 704. The current search area is 702 and the next search area is 704. The driver of car 705 intends to turn right and switches on the right turn signal. The present invention senses die right turn Ught and starts the search on search area 701. As we can see die difference between the two predefined search area systems are between 602 vs. 702 and 604 vs. 704. The preferred embodiment of the present invention chooses die predefined search area system that puts the intersection at the far end of a search area, so the user can foresee the condition at the intersection. The preferred embodiment of die invention senses the driving direction and chooses system in Fig 6 or Fig 7. For a car going north, the system will pick the system
in Fig 6. From the current position of car 605 in Fig 6, the invention determines the current search area 604. Since the user is driving north, the next search area on nortii is search area 602.
Further more, die present invention could dynamically decide the best search area instead of using a predefined search area system. The original user-specified search area becomes an initial setting. The derived best search area may not be the same size or same shape as the initial setting. It may become an oval, rectangle, or square searching area. The subsystem can dynamically adjust d e searching area to reduce the overlap and improve the coverage. If die user is on a planned travel route, die preferred embodiment of the invention could use the planned information to estimate the next search area. The search area planning subsystem may use one or more of the following factors to determine die best search area and best utilize die limited communication bandwidth.
• the direction of motion
• the vehicle turning signal
• the speed of motion
• a planned travel route
• the query turn-around time
• die current position
Planning when to search
In Fig 8, a user 801 is at the center 802 of a circular search area 803 with a search radius of 5 miles. The user is driving at a speed of 30 miles per hour. The user has 10 minutes left before reacliing die boundary of die previous search area. The user needs to have the next search results ready before reaching the boundary of previous search area. If the average inquiry turn around time
is 2 minutes, die preferred embodiment of die invention estimates the next search should start no later than 8 minutes later.
The driver of a vehicle will care more about die things he is approaching than die tilings he has passed. In consideration of tiiis, the present invention uses a look-ahead search technique that always puts the search area in front of die user. In Fig 9, the user's current position is at location 900 and the user's speed is driving at 30 miles per hour. The current search has been completed and covers the area 901. The invention decides the next search area 903 based on the previously described planning technique and calculates when or where to start die next search. Assuming die driving direction and speed remain the same and die query is done quickly, the invention calculates when the user will reach the edge of the next search area 903. For example, die user is estimated to reach die edge of die next search area 903 20 minutes later based on die user's current position and the current speed and direction the user is moving. The invention schedules the next search area at die position 904 to begin 10 minutes from the current time.
Because the search result will not return immediately, we need to take the search turn around time into consideration. FIG.10 shows an example of a travel route and several searching areas along the travel route. The different shapes of tiles, such as tile 1000 and tile 1003, are the searching areas.
The driver starts a query with searching area tile 1000 on point 1000 and moves at a speed of 35- mph. If the driver finish receiving the search result at point 1002 which is at edge of tile 1001, the system will estimate the rest of the time before moving out of tile 1001 according to the current driving speed. The time before the system needs to query and receive new information for the searching area beyond tile 1000 is a buffer time Tb. Assume die driver continues to move on die current speed and direction and the estimate turn-around time for next query is Tq. Then the system allows Tb-Tq as idle time for sharing the communication channel with other applications. The system will start another query when the user reaches position 1004 such that the user still has turn- around time Tq before moving out of tile 1000. If the user prefers to have very reliable information,
the user could assign a factor, which could be stored in a user profile, to enlarge the estimated turnaround time. In order to accomplish this, the preferred embodiment of the invention has a search scheduling subsystem to collect the user's velocity, current position, next search area, etc. to determine die schedule of the next search. Other than using time to schedule the next query, the present invention could also use distance or position to schedule die next query. For example, preforming the next query when the driver arrives at position 1004 or when the driver approaches the border of Tile 1003 within a distance less than 35 miles per hour times the turn-around time Tq.
A query synthesis subsystem of the present invention constructs a query based on the search area and search schedule of the next search. For example, changing the moving direction, receiving a turn signal, an acceleration signal, or a deceleration signal may trigger a new search or rescheduling. In Fig 11, when the car arrives at point 1103, die driver makes a right turn on 1103 and the subsystem instantly generates a new searching area, tile 1101. Since tile 1101 is a bit overlapped with tile 1100, the query synthesis subsystem will generate the following query instruction as the new query.
1. Topic: five cheapest gasoline sale
2. Search Area: tile 1101 - tile 1100
3. Tile 1101: rectangle at coordinates 55°50'N 12°50'E height 2 miles and widtii 3 miles and direction 135°
4. Tile 1100: rectangle at coordinates 55°50'N 12°53'E height 2 miles and width 3 miles and direction 90°
5. Density: tile 1102
6. Tile 1102: rectangle at coordinates 55°45'N 12°56'E height 2 miles and width 3 miles and direction 135°
7. end
Instruction 1 indicates tiiat the search topic is five gas stations and their gasoline price that is cheapest in the search area. Instruction 2 indicates that search area is tile 1101 minus tile 1100, where tile 1101 and tile 1100 are two of search areas. Instruction 3 defines tile 1101 as rectangular, its size, and its location. Instruction 4 defines tile 1100 as rectangular, its size, and its location. Instruction 5 requests the information density in tile 1102, which is the predicted next search area. The information density is used to predict the query turn-around time as described in the following. Instruction 6 defines tile 1102 as rectangular, its size, and its location. Instruction 7 ends die query. Using an identifier for each tile and an instruction to indicate which search area system to use, the present invention could skip the tile definition.
The information quantity, communication traffic, Internet traffic, and customer traffic on the server computer affect the query turn-around time. The preferred embodiment of the present invention has a query turn around time estimation subsystem. The subsystem incorporates many ways to collect several factors to estimate the query turn-around time. The following are die methods and factors for estimating the turn around time.
• The turn around time of previous searches are stored and used as reference to predict the turn around time of the upcoming search.
• The ratio of quantity of the information in the next geographic area to the quantity of information in the current geographic search area. To get this ratio, the information density, user computer makes a special request within the current query. The special request contains an extra search about the next geograpliic area. The server computer makes two searches. One is for the query in current search geographic area. Another searches the same topic but in the next search geographic area. The server computer returns the search result in the current search area but does not return the search result in the next geographic area.
Instead it returns die ratio of die quantity of information in next search area and the current search area.
• Server site statistic on the traffic ratio of die current query to die next query. The user's computer could request the server computer report the ratio of the next traffic volume to the current traffic volume based on statistic values.
• Internet routing trace information. The subsystem may trace Internet routing time to determine the time for a round trip between the user's computer and the server computer.
Search area constraint
Altiiough communication bandwidth is a major concern when we determine the size of the search area, odier factors could further constrain the search area to further limit the size of the returned information and reduce the bandwidtii usage. For example, the gasoline remains in the gas tank determines the remaining driving distance. The user would like to find gas stations that offer die cheapest price or better service before running out of gasoline. Therefore, the present invention may contain a dynamic constraint subsystem. The dynamic constraint subsystem further constrains the geographic search area base on some dynamic information, such as remaining gasoline. The dynamic constraint subsystem may access to the sensor of the remaining gasoline and, based on d e statistic energy consumption rate, determine the remaining driving distance. A more sophisticated constraint system could also monitor several other sensors as other factors, such as road condition, weather, and weight loading etc, to better estimate the remaining driving distance. If the user decides to activate this query, the user's computer automatically repeats searching activity for d e gas stations diat offers the cheapest gasoline or better service within the remaining driving distance.
Another example of d e dynamic information is d e remaining time before a meal. The constraint subsystem measures the remaining time to the next meal and adjusts the search area. It automatically reduces the search area for dining restaurants as the mealtime approaches. Another
example of dynamic information is d e remaining driving time before a stop for rest. The constraint subsystem monitors the lengtii of non-stop driving duration to determine die searching distance for rest areas. It automatically reduces the search area and search distance to user for rest areas if die driver has been continuously driving for a long time.
Present search results
The search results are transmitted from die server computer to a remote computer tlirough a wireless connection. The user of the present invention could choose to transmit the closer search results first and then the farther search result later, if the server side knows the user's current position and direction of motion. The server computer either receives the user's current position and/or direction of motion in a query from the seatcliing task manager or accesses die information from another user position monitor system. The mobile device or remote computer then stores the search results in memory. Depending on processing speed of the mobile device, die present invention can present the search results in a series beginning with the information the user will arrive at first and progress through to die information the user will arrive at last.
A good presentation metiiod is important to a mobile user. The present invention can present the search results audibly or visually. A mobile user usually is operating a vehicle or is walking while they receiving die presentation. Voice presentation is considered better because it is less distracting to a mobile user. However, visual presentation usually displays on a video screen and can present more information than vocal presentation. In either method, the presentation order of the search results is important. Closer or approaching information is usually more important to die user. The user of the present invention could choose to present a search result that is closest to the user first. The user could also choose to present a search result that die user is approaching first.
The following are some of examples about how to present search result in different scenarios. In a voice presentation, the present invention announces the closer and/or approaching search result
entry first by default. After finishing the approacliing search results, the user can press a button or say a voice command to instruct the mobile device to present the receding search results in an order beginning witii the closest first. The user could certainly choose to present receding search results right after the approaching search result without user instruction.
For a mobile phone handset user, the screen is small and can only display a couple lines of text.
The present invention compiles a Ust of search result that begin with far and approaching information on die top and far and leaving information on the bottom. For catching the user's eye, the present invention puts a special mark on the closest and approaching entry. A special entry could certainly be used to indicate the user's current position in die Ust instead of using a mark. If the Ust is longer than the screen can display, the present invention wiU only display the entries closest to the user's current position. In Fig 12, screen 1201 displays six gas stations and their gasoline price. The four entries on the top are gas stations approaching the user witii positive distances. The two entries on the bottom are gas stations leaving user with negative distances. The underlined entry 1202 is the closest approaching gas station. After 3 miles of driving, gas station 1202 is passed and the system makes another search and screen 1203 is shown. The entries are pushed down and one new entry is added on the top with greatest distance. The bottom entry on screen 1201 was pushed off on screen 1203. AU die distances on screen 1203 are updated and die underlined entry changed from 1202 to entry 1204. However, it certainly could display the results in die alphabetic order or otiier sorting criteria related to the information itself, like price or time.
For a PDA user, the screen can display a simple map. The present invention marks the search results on the map according to tiieir position on the map and also displays a Ust of search results to provide more information for the user. A mark on the map or an entry in die Ust could be a hyper link to other information related to that search result. The order of the Ust could be similar to die ordering method described in the mobile handset.
In anodier example, the user is looking for a price criteria of a Yamaha Piano, the user might setup a search rule about a Yamaha Piano price, coupon, and on sale information. At time 1, die user will search a geograpliic area with the search rule and get the first results — 5 candidates. At time 2, the user wiU get the 2nd set of the results — 4 candidates. The 1st and 2nd results can be combined and shown to the user on his mobile phone handset. If the 1st and 2nd results have 2 candidates overlapped, the combined results wiU show only 7 candidates on the user's mobile phone handset. These 7 candidates can be sorted by name or by searching criteria (may be price) or by distance from die current user's position. The recent candidates (The 2nd search results) can be bighUghted, and the 1st search results can show up in darker color.
The present invention couples the subsystems: search task manager subsystem, search area planning subsystem, search scheduling subsystem, query turn around time estimate subsystem, query synthesis subsystem, and dynamic constraint subsystem, such that the searching task is executed on the search area identified by the searching area planning subsystem, at die schedule decided by the scheduling subsystem, and furdier constrained by the constraint subsystem. The final query is further restricted by historical searching activities.
Example of system implementations
An implementation example of the present invention is described as foUows. In Fig 13, a server computer 1301 accesses to a geo-coded topical database 1304 and geographic information system (GIS) database 1303. One cUent computer 1305 is shown on Fig 13 and communicates with the server computer 1301 through a wireless telecommunication channel 1310. However, a server computer could certainly communicate with several cUent computers at the same time. The cUent computer could be a mobile computer, PDA, phone handset, etc. A task manger 1302 takes user's inputs that are for specifying a search task. The task manger parses die inputs and schedules die
search tasks. A search task may schedule one or many search activities. When a search activity of a search task matures, task manager 1302 send die query of die search activity to server computer 1301. A search activity becomes mature when the user approaches or arrives at a location or when a scheduled time has elapsed or a time arrives. The server computer 1301 searches for requested topical information within the specified geographic area from the geo-coded topical database 1304. The server computer sends the search results of the query to the cUent computer 1302 through the wireless telecommunication channel 1310. The server computer 1301 could furdier generate a map for die specified geograpliic area from the GIS database 1303 if the cUent computer 1305 can display a map. The search results could be marked on the map before or after sending the map to the cUent computer. The cUent computer stores the received search results in its memory and announces die results witii the speaker 1306 or displays them on a screen 1307. The screen 1307 of the cUent computer 1305 could also present the map received from the server computer 1301.
Fig 14 is an implementation example of the task manager of the present invention. The task manager is includes task manager subsystem 1401, a search task schedule database 1402, and several other subsystems. The task manager 1401 has access to the search task schedule database 1402. When a search activity is due, the task manager sends the query of the search activity to the server computer. After a query is requested, the task manager subsystem 1401 asks the query syntiiesis subsystem 1403 to generate a query for the next search of the search task if it is an iterated search task. Query synthesis subsystem then request search area planning subsystem 1404 to calculate a new geographic area for die next search.
Search area planning subsystem 1404 accesses moving condition subsystem 1405, which contains a moving condition memory 1406 and a moving condition controUer 1407. The moving condition controUer accesses one or more sensors 1408 and stores the conditions in the memory 1406. The sensors could be for die accelerator pedal, break pedal, turn signal, and positioning systems for monitoring a moving object 1409. The positioning system could be any Automatic Positioning
System (APS). Examples of automatic location instruments are GPS receivers, ceUular network triangulation positioning systems, ceU ID of the ceUular wireless phone systems, etc.
Search area planning subsystem 1404 accesses the dynamic constraint subsystem 1414, which contains a dynamic constraint memory 1415 and a dynamic constraint controUer 1416. The dynamic constraint controller has access to one or more sensors 1417 and stores constraints in die memory 1415. The sensors monitor many conditions, for example the remaining gas in the gas tank 1418, the slope of die road 1419, weather condition 1420, etc. This information provides the planning system extra information to make decisions. For example, reduce die search area if the gas remaining is low or it is time to have meal after a long drive.
If a predefined route is avaUable, search area planning subsystem ,1404 could refer to die predefined route in the predefined travel route database 1410 to predict d e next search area. If die user's current position is stiU on the predefined route, the search area planning subsystem wiU estimate a geographic area to cover the closest coming travel route according to the predefined route. The user may prefer to use a predefined search area system. One of the predefined search area systems wiU be chosen from the predefined search area system database 1411 to provide the necessary coverage. The selection of predefined search area systems may depend on die moving conditions of the moving object 1409. For example, choose a system that has a large single search area if the object 1409 is moving quickly. Or choose a rectangular search area system that best covers the predicted travel route. The user could also predefine the size of coverage in a user profile, for example 5 mUes. If the predefine search area system is not chosen, the planning system 1404 has more freedom to select a search area in any shape or angle or size that best covers the predicted travel route.
After a new search area is calculated, the search area planning subsystem 1404 returns die area to the query synthesis subsystem 1403. If the user prefers the turn-around time analysis and turns on d e next query information density request, query synthesis subsystem 1403 could request search area planning subsystem to produce two continuous search areas instead of just one. Query synthesis
subsystem 1403 then generate a new query. The search area may be further reduced by excluding the search area covered by a previous query, depend on user's preference. Previous queries are stored in a historical query database 1412. If the turn-around time analysis is turn on, die query of information density for the second search area wiU also be synthesized into die query. Query syntiiesis subsystem 3 tiien stores die new query in the historical query database 1412 and also sends it to the task manager subsystem 1401. The task manager subsystem then updates the search activity in task schedule database 1402 with the new query.
The task manager also request search scheduling subsystem 1413 to estimate when to do the next query. Search scheduUng subsystem 1413 accesses moving condition subsystem 1405 and query turn- around time subsystem 1421. The query turn-around time subsystem analyzes the query turn-around time from different sources. The sources come from previous query turn-around times, the information quantity ratio, statistical network traffic information, and Internet routing trace information. The statistical network traffic information is stored in a statistical network traffic database 1422. Based on the turn-around time, moving condition of the moving object 1409 and die current search area, search scheduUng subsystem 1413 estimates what time from now or where from the boundary the next query should be invoked. If what time from now is used, the task manager 1401 needs to continuously monitor the time and invoke the next query when the appropriate amount of time has elapsed. If where from die boundary is used, the task manager 1401 needs to continuously monitor the position of the moving object 1409 and invoke the next query when the distance from the moving object to the boundary of the current search area is less than an estimated length. The task manager subsystem will then reschedule the search activity in the search schedule database 1402 based on the estimate schedule from die search scheduUng subsystem.
The preferred embodiment of die invention is a dynamic system tiiat could takes feedback from subsystems. For example, the moving condition subsystem 1405 will interrupt the task manger 1401
when the moving condition of object 1409 is changed. Then, task manager subsystem 1401 wiU reevaluate aU scheduled search tasks tiiat related to the moving object 1409.
The task manager as described above could be implement partiaUy on the server side and partiaUy the cUent side. For example, put most of the subsystems of the task manager on the cUent computer that moves with a vehicle and put the statistical query turn-around time subsystem close to server computer. The subsystems on the cUent computer could access the turn-around time subsystem tiirough wireless telecommunication channel. The task manager subsystem takes search task inputs from a voice command or a keyboard command from the cUent computer. The sensors of the moving condition subsystem and the dynamic constraint subsystem are installed on the vehicle. The preferred automatic positioning system (APS) in this case is a GPS receiver on the vehicle. However, die APS could also be a network based positioning system that could be accessed by subsystems tlirough wireless telecommunication channel. Since sensors are close to most of the task manager subsystems, the task manager can respond to die moving condition quickly and has more control on die selection of the search area and schedule. For example, initiate a new search right away when the left turn signal is turned on. However, the cost and computing power requirement on the cUent computer may also be increased. In cUent and server point of view, the cUent, where most task manager subsystem located, puEs the information from server.
On another example, puts most of the subsystems of the task manager on the server side and puts die moving condition subsystem, the constraint subsystem, and their sensors on the cUent side with a vehicle and is able to access tiirough wireless telecommunication channel. The invention could remove die moving condition subsystem to reduce the communication and rely on die APS to decide the moving condition. Because the search area planning subsystem and search schedule subsystem are on server side, the preferred APS in this case is a network based positioning system that could be accessed by the server side subsystems tiirough a wired high-speed communication network. The benefit is that the task manager could simultaneously monitor several vehicles with one network base
positioning system without going tiirough wireless connections. The task manager could use an IP address, user account name, Ucense plate number, or cellular phone number to identify the user. However, a GPS receiver on the vehicle could certainly be used to provide position information but wiU need to be accessed by the task manager through a wireless telecommunication channel. In this case, the cUent computer requires less computing power and cost less but the server computer must be powerful and complex to handle multiple vehicles or users. In cUent and server point of view, the server, where most task manager subsystem located, pushes the information to server.
Many of the subsystem, for example dynamic constraint subsystem and query turn-around time subsystem, described above is optional and die information provided by d e subsystem could be replace with default value specified by user or system in eitiier cUent or server side.
Example of operation flow
With reference to the remaining figures, preferred and exemplary embodiments of the invention wiU now be described. The embodiment is implemented witii multitliread programming techniques and operated on a computer system with a real time operating system. With multi-thread or multi- processing programming, the S)rstem processes several operations concurrentiy. Each thread could take care of a different operation, for example, waiting for input from a user and tiien parsing the inputs, monitoring the moving conditions and interrupting the task manager subsystem, etc. The real-time operating system shortens the response time, therefore, the task manager could quickly react to die moving condition change. However, die non real-time operating system and single tiiread could certainly be used but slower.
The flow chart of Fig 15 iUustrates the operation of the task manager receiving user input and scheduling a user specified search task. Step 1 waits for the new search task from the user. If the user input arrives, go to step 2 and parse the user input. If it is an one time task, go to step 5 to schedule a one-time search event which is continued in Fig 16. If it is a periodic task, go to step 7 to schedule a
periodic search event, wliich is continued in Fig 17. If it is a continuous task, go to step 9 to schedule a continuous search event, wliich is continued in Fig 18. Otiierwise, go to step 10 to report an error. After scheduUng an event or reporting an error, go back to step 2 to wait for other user input.
The flow chart of Fig 16 iUustrates the operation of scheduling a one-time event. Step 1 starts scheduUng a new one-time event. Step 2 creates a new one-time search event. Then, step 3 sets the geographic search area. For example, the geographic search area is a 1 mile radius circle centered at the user's position when the event is triggered. Step 4 checks for the event trigger type. If it is a position triggered search event, step 5 calculate and sets the trigger zone of the event. For example, the trigger zone is an area that is 1 mile distant to die current position. If it is a time triggered event, step 6 set die trigger time of the event. For example, the trigger time is at 10:30, which is 10 minutes from now. After setting the trigger condition, continue to step 1 of Fig 19 to schedule the event in the schedule database.
The flow chart of Fig 17 illustrates die operation of scheduling a periodic event. Step 1 starts scheduling a new periodic event. Step 2 creates a new periodic search event by a given period factor. For example, the period could be every 20 minutes or every 10 miles. Then, step 3 sets the geographic search area. For example, the geographic search area is a 1 mUe radius circle centered at the user's position when the event is triggered. Step 4 checks for the event trigger type. If it is a position triggered search event, step 5 calculates and sets the trigger zone of the event. For example, the trigger zone is an area that is 10 miles distant to the current position. If it is a time triggered event, step 6 sets d e trigger time of the event. For example, the trigger time is at 10:40, wliich is 20 minutes from now. After setting the trigger condition, continue to step 1 of Fig 19 to schedule the event in die schedule database.
The flow chart of Fig 18 iUustrates the operation of scheduling a continuous event. Step 1 starts scheduling a new continuous event. Step 2 creates a new continuous search event. Then, step 3 obtains the current moving condition, for example the current position and velocity, from the
moving condition subsystem. Step 4 gets tiie current geograpliic search area covered by d e previous search events of the search task. This operation wiU try to find a search area that is in the user's current direction and is adjacent to the previous covered search area. For example, the user is moving west and the previous search area covered up to 10 miles in front of the user, then the potential next search area is a geographic area that begins 10 miles to the west. Step 4 also gets a predefined travel route from die predefine travel route database if it is available. Step 5 checks the user preference, using the predefined search area system or not. If the user chose the predefined search area system, step 6 finds a predefined search area according to the current moving condition or the predefined travel route. Otiierwise, step 7 calculates a search area that best covers the future travel route, which could be a predefined travel route. After getting tiie search area, step 8 gets the constraints from tiie dynamic constraint subsystem to further adjust the search area. Step 9 checks the previous search area for overlapped with the current search area. If tiiere is an overlap, the query synthesis subsystem synthesizes a new search area by excluding the previous search areas at step 10. Step 11 sets the final search area to the event. Then, step 12 starts the process to estimate the event trigger condition. Step 12 obtains the turn-around time estimation Tt from turn-around time analysis subsystem. Step 13 calculates the buffer time Tb. The distance from user's current position to the boundary of the final search area or the boundary of current covered search area is Lr. The buffer time is Lr divided by the user's current speed V. Step 14 checks the event trigger type. If it is a time trigger type, step 15 sets the trigger time to Tb — Tt from current time. Otiierwise, step 16 calculates and sets the trigger zone of the event. For example, the rigger zone is V * Tt wide surrounding belt area around the boundary final search area. After setting the trigger condition, continue to step 1 of Fig 19 to schedule die event in the schedule database.
Fig 19 iUustrates the operation of scheduling the event in tiie event schedule database. Step 2 checks the event trigger type. If it is a time-triggered event, step 3 inserts the event in a queue according to the order of the event trigger time. A timer is designed for counting the remaining time for triggering d e earUest event in the queue. Step 4 updates the timer with the trigger time of the event if the event
is tiie earUest event in die queue. Step 5 starts the time trigger event execution process shown in Fig 20. If the event is a position-triggered event, step 6 inserts the event into a position-triggered event Ust, wliich may be ordered by their position for a quick search. Step 7 starts the position trigger event execution process shown Fig 21. The event schedule database is constructed to efficiendy access die time-triggered events and the position-triggered events. Step 8 finishes the scheduUng process and returns step 5, 7, or 9 in Fig 15 for a new event scheduUng or an event reschedule process.
Fig 20 illustrates die operation to execute time trigger events and the interaction between the server computer and the task manager. Step 2 waits for the timer expire. When the timer expires, step 3 gets a matured event from the queue and sends the query of the event to the server computer at step 14. At the server computer, step 15 queries the geo-coded database and step 16 returns the search results to the cUent computer through the wireless telecommunication channel. At the same time, the task manager continues to process the event. Step 4 checks if the event is a continuous event. If it is, step 5 goes to step 18 of Fig 18 to reschedule die event if the stop condition of the event is not meet. Step 6 checks if the event is a periodic event if the stop condition of the event is not meet. If it is, step 7 goes to step 8 of Fig 17 to reschedule die event. Otherwise, it is a one-time event and the system deletes the event. After deleting or rescheduling the event, step 9 checks for more matured events. If there is a more matured event, go to step 3 to process more events. When done witii aU matured events, step 10 checks for any more events left in the queue. If there are no timetriggered events, step 12 ends die process. Otherwise, step 11 sets the timer to the earUest trigger time of the events in the queue and goes back to step 2 to wait for the timer expired.
Fig 21 illustrates die operation to execute position trigger events and the interaction between the server computer and the task manager. Step 2 obtains the user's current position from the automatic positioning system (APS) until the position triggers an event. A position triggers an event if the position faUs in the trigger zone of the event. Step 3 gets a triggered event from the Ust and sends the query of the event to the server computer at step 13. In step 14, die server computer queries the geo-
coded database and step 15 returns tiie search results to the cUent computer through the wireless telecommunication channel. At the same time, the task manager continues to process the event. Step 4 checks if the event is a continuous event. If it is, step 5 goes to step 18 of Fig 18 to reschedule the event if the stop condition of the event is not meet. Step 6 checks if the event is a periodic event. If it is, step 7 goes to step 8 of Fig 17 to reschedule the event if the stop condition of the event is not meet. Otiierwise, it is one-time event and the system deletes the event. After deleting or rescheduling the event, step 9 checks for more triggered events. If there is another triggered event, go to step 3 to process more events. When done with aU matured event, step 10 checks for any more events left in the queue. If there is no position-triggered event, step 11 ends the process. Otiierwise, die system goes back to step 2 to continue the process.
Fig 22 illustrates the operation to react to the moving condition changing. Step 2 continues to monitor the moving condition and/or receives an interrupt from the moving condition subsystem. For example, the interrupt from the moving condition subsystem is caused by a turn signal or a break signal. If the moving condition change causes the user to potentiaUy or actuaUy move out of the predicted travel route at step 3, step 4 reschedules aU the scheduled events, both position-triggered events and time-triggered events. If the moving condition change causes the schedule time change only at step 5, step 6 reschedules aR the time-triggered events. Then, the system goes back to step 2 to continue the process.
Conclusion, Ramifications, and Scope
The present invention automaticaUy schedules searching tasks in response to user's request and smartly uses the limited wireless communication bandwidth. The user of the invention could access nearby information, such as an ATM, a store, a lottery ticket station, a movie theater, a specific
movie, on sale items, coupons, a person, jobs, etc. The retrieved information may be combination of location, time, price, person, etc.
Although the description above contains many specific details, these should not be construed as Umiting the scope of the invention but as merely providing illustrations of some tiie possible embodiments of the invention.
Thus, the scope of the invention should be determined by the appended claims and their legal equivalents, rather than by the examples given.