US 20020049742 A1
A system and method for searching a database over a computer network for information relating to items located in a particular geographic area as specified by a user. The database is accessed and built-up by users interested in making their items known to the public (e.g., advertising). The items include articles of merchandise, services, events, and persons. The information stored in the database relating to the items includes a description of the provider of the item (e.g., a vendor, or an event sponsor), a description of the item, and the current geographical location of the item. The geographical location of the item may be defined using Global Position System (“GPS”) coordinates or other positioning technologies (e.g., network-based techniques). The user searches for item information in the database by specifying a description of the item and a search area within which items matching the description are to be located.
1. A method for a computing device to interact with a user, the method comprising:
receiving information relating to a search object, including information describing a current geographical location of the search object;
storing the information in a database used by the computing device;
receiving a search request from the user for information pertaining to the search object, wherein the search request includes search criteria used to identify the search object, the search criteria including an area in which the search object is geographically located;
processing the request, including searching the database using the search criteria; and
sending a result of the processing to the user, wherein the result includes information relating to the search object satisfying the search criteria, including the current geographical location of the search object.
2. The method of
3. The method of
4. The method of
wherein the storing is performed in response to receiving the information relating to the search object; and
wherein the processing and the sending are performed in response to receiving the search request.
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
18. The method of
19. The method of
20. The method of
21. The method of
22. The method of
23. The method of
24. The method of
25. The method of
26. The method of
27. The method of
28. The method of
29. The method of
30. The method of
31. The method of
32. The method of
33. The method of
34. The method of
the receiving of information is performed for a plurality of search objects;
the processing is performed for a plurality of search requests received from a plurality of users; and
the sending is performed in response to the plurality of search requests.
35. A computer system comprising a computer connected to a computer network, and computer instructions executed by the computer for performing the acts in
 This application claims the benefit of the U.S. Application No. 09/253,931, filed Feb. 22, 1999, and the International Application No. PCT/US00/03349, filed Feb. 9, 2000, both of which are herein incorporated by reference in entirety.
 This invention relates to a system and method for storing and retrieving information relating to items (“search objects”) based upon where the search objects are geographically located as specified by a user.
 The Internet is a revolutionary technology to access information. Through the Internet, users access information from around the world with a click of a mouse button. The Internet is a powerful and convenient media to provide or receive information. Companies, for example, promote their products and services online, as well as perform direct sales. To access particular information, a user typically either needs to know the website address for the particular information, or use a search engine to perform a keyword search of the Internet for the particular information. Because the amount of information on the Internet is growing explosively, the use of search engines to locate particular information desired by a user often results in the retrieval of information that is substantially irrelevant to the user. This often results because the user seeks information relevant to the user's local geographic area (hereafter “local information”), whereas the information retrieved using the search engine is relevant to geographic areas remote to the user (hereafter “remote information”).
 In the prior art, the voluminous information available over the Internet is typically organized by means of categories. Most search engines, for example, categorize the information using characteristics of the information. For example, Yahoo! Inc. (www.yahoo.com) categorizes information into automobile, travel, computer, political, and stock quote categories, among others. The user then chooses the relevant category within which to make a more particularized search. This approach generally reduces the quantity of information returned from a search, but nevertheless yields too much information for the user to manage. This approach also generally does not adequately distinguish between the local information typically sought by the user, from the plethora of remote information typically available over the Internet.
 Some websites on the Internet categorize information by geographic area. In these cases, information is typically categorized by a predefined area which is typically a governmental district, such as a ZIP code area, a city, a county, a state, or a country. One example of this type of categorizing is found at Sidewalk website (www.sidewalk.com), an website application produced by Microsoft Corporation of Redmond, Wash. The Sidewalk website provides access to an online application and database that enables a user to retrieve local information relating to particular types of stores using a Boolean search criteria and specification of a pre-defined geographic area; geographic areas are specified in terms of a ZIP code, a city, a county, a state, or a country. After the application retrieves the stores satisfying the search criteria and geographic area, a map is returned to the user marking the geographic location of the stores on the map. The Sidewalk application has the disadvantage that the geographic areas specified by the user are pre-defined; the user may not, for example, specifying geographic areas of finer granularity than a zip code or a county (e.g., a shopping mall), or define geographic areas that overlap the predefined geographic areas (e.g., cross city limits). Another disadvantage is that the information returned to the user is limited to information relating to store information, instead of information relating to particular merchandise sold by the store which is of importance for assisting users who are shopping for the merchandise. In addition, the Sidewalk application does not return driving directions to a particular store or shopping location except the map; the user must therefore extrapolate the direction from the map. Lastly, the information retrieved by the Sidewalk application may be stale, for example, the store may have moved long before the data relating to the move used by the Sidewalk application is updated.
 Another prior art system is found in many Global Position System (GPS) applications. Use of GPS technologies is more popular in Europe and Japan than in the United States. A GPS receiver receives signals from several satellites and then determines the current position of the receiver. The GPS receiver usually has a built-in small computer. A typical application using GPS technologies includes a mobile computing device displaying a map showing the current geographical location of the GPS receiver on a map. The map is either pre-stored in the computing device or downloadable from a remote location through a communications link, such as a wireless network. An application program executing within the mobile computing device may use the current position coordinates of the GPS receiver to search a built-in database for nearby gas stations, hospitals, or restaurants. The built-in database is stored in a memory device of the computer, for example, flash memory or a CDROM. It has the disadvantages that information might be obsolete and that the geographic area within which the search is conducted is not selectable by the user.
 A system and method for searching a database over a computer network for information relating to items located in a particular geographic area as specified by a user. The database is accessed and built-up by users interested in making their items (“search objects”) known to the public (e.g., advertising). The search objects include articles of merchandise, services, events, and persons, among others. The information stored in the database relating to the search objects includes a description of the provider of the item (e.g., a vendor, or an event sponsor), a description of the item, and the current geographical location of the search object. The geographical location of the search object may be defined using Global Position System (“GPS”) coordinates or any other positioning technologies, such as conventional network-based positioning techniques. The user initiates a search for search object information in the database by specifying a description of the search object and a search area within which search objects matching the description are to be located.
 In some embodiments, a search result is sent to the user which includes a map of the search area, and the current geographic locations of the user and the search objects satisfying the search marked on the map. In some embodiments, additional links are displayed to the user for selection to access additional information relating to the search objects, such a discounts and promotions of merchandise. In some embodiments, additional links may include embedded instructions that instruct the system to generate directions (e.g., driving direction) for routing the user to the current location of a selected search object.
 As used herein, a “search object” refers to an object for which a user seeks information and which is geographically located in an area specified by the user. A search object typically includes any item of interest to a group of users, such as an article of merchandise (a good), a service, or an event. A search object may also include, as another example, such diverse objects as a person, or real property.
FIG. 1 illustrates an example of a programmed computer 10 (hereafter “System”) for storing and retrieving local information relating to search objects in accordance with some embodiments of the present invention. The System 10 is generally implemented using any conventional general-purpose computer having conventional computer components, including at least one processor 11, program memory 12, a communication device 13, and at least one database 14 for storing the local information relating to the search objects. In some embodiments, the System 10 is programmed with system application program 7 (the program is illustrated for purposes of simplicity as loaded in program memory 12) causing the System 10 to operate as a network information server implementing the various processes of the present invention.
 In some embodiments, the System 10 communicates to a plurality of remote computers 20-22 (hereafter “client computers”) via a communication device.
 Communication device 13 includes any conventional communication device well-known to those skilled in the art, such as a modem, a network interface card. In yet other embodiments, a user 26 accesses the System directly as a stand-alone application computer via a peripheral device, such as monitor 19 and mouse/keyboard directly connected to processor 11 via system bus 16. In yet other embodiments, a user may download a portion of the database 14 to the client computing device, e.g., 20, executing a stand-alone application using the downloaded database portion. In I some embodiments, client computers 20-22 include a variety of computing devices, such as a PDA or mobile telephone. System application program 7 is generally executed in any conventional operating system, such as Windows NT Server, manufactured by Microsoft Corporation of Redmond, and Unix-based Solaris, manufactured by Sun Microsystems, Inc., of Palo Alto, Calif. System application program 7 is generally programmed in any conventional general-purpose programming language, such as Java and C++, any combination of general-purpose programming languages, or any combination of a general-purpose programming language and a more specialized programming language, such as a scripting language (Perl).
 As illustrated in FIG. 1, user 23-25 accesses the System 10 via communications network 27. A user 23 may include a provider of search object information (hereafter “information provider”) in addition to a user seeking search object information. Accordingly, an information provider, e.g., 23, generally includes anyone desiring to upload information relating to search objects of interest to the public user. An information provider 23 includes, for example, a vendor selling articles of merchandise or services, a promoter of, e.g., an entertainment event, or a private individual wishing to make his personal characteristic discoverable to the general public, or a selected subset of the general public. In accordance with the present invention, the information provider uploads a description of the search object and the current geographical location of the search object. In some embodiments, the current geographical location of the search object may be specified by position coordinates, such as latitude and longitude, and optionally altitude. In some embodiments, the position coordinates include the GPS coordinates of the search object. In yet other embodiments, the current geographical location may be specified by a postal code or a street address which is then subsequently, in some embodiments, converted into position coordinates by the System 10 prior to storing a record of the search object in the database 14. In yet other embodiments, conventional network-based position technologies may be used to define current geographical locations. By enabling any information provider to access the database to upload search object information for access by the general public, the System 10 provides an efficient mechanism-the self-interest of the information provider-for ensuring that the search object information provided by information provider is current. In some embodiments, a third-party commercial information provider may contract to perform updation of data in the database 14 on behalf of one or more other information providers.
 In some embodiments, database 14 is implemented using any general-purpose commercial database management system, such as Oracle 8 I, manufactured by Oracle Corporation of Redwood Shores, Calif. It should be noted that although database 14 is illustrated as a central database in FIG. 1, database 14 may be distributed across multiple computers. (In like manner, the processes constituting the System 10 may generally be distributed across multiple computers using conventional distributed computing techniques.) Database 14 may additional be implemented using relational data techniques, or object-oriented techniques, or a combination of relational and object-oriented techniques. Using relational database techniques, the information relating to each search object is organized in a database schema in which, for example, information describing the search object and the current geographic position of the search object are stored in associated tables.
 Differing types of information may be stored in the database depending upon the type of search object. For example, in the case of articles of merchandise, services and commercial events, the stored information may include pricing information, including discounts and promotions. In the case of event information, the time when the event is scheduled to occur and the event sponsor may also be stored. In the case of persons uploading personal information about themselves or someone else, the personal information may include the person's hobbies, age, occupation, height, and weight, among other personal characteristics. Information relating to each search object, however, further includes the current geographical position of the search object. In the case of articles of merchandise and services, the current geographical location of the vendor of the merchandise and services offered for sale may be uploaded into the database 14. In the case of events, information relating to where the event is scheduled to occur may be uploaded onto the database 14. In the case of persons, the current geographical location of the person may be periodically uploaded; in addition, a user uploading personal characteristics may maintain control over access to his or another's personal characteristics and current geographical location by other users.
FIG. 2 illustrates different prior art techniques for performing communication between client computers 22-22 and the System 10 via a communication link, according to some embodiments of the present invention. In some embodiments, for example, client computer 21 communicates with the System 10 using a conventional direct dial-up connection via telephone line 25. In other embodiments, client computer 20 communicates with System 10 via a computer network 27, such as the Internet, an intranet, a WAN, a LAN, or a wireless network. In these embodiments, data communication is performed using conventional protocols, such as TCP/IP. In yet other embodiments, client computer 22 communicates with the System 10 via a conventional radio frequency link 29. It should be noted that any conventional techniques for performing communication between computing devices over a communication link are generally compatible with the various embodiments of the present invention.
FIG. 3 illustrates the hardware components of a client computer in FIGS. 1-2 for retrieving search object information in accordance with some embodiments of the present invention. Client computer, e.g. 20, includes any conventional general-purpose computer having conventional computer components—e.g., at least one processor 31, program memory 32, a mouse/keyboard 34, a monitor 35, a modem 36. In some embodiments, client computer 20 includes a mobile computing device, such as a PDA, a mobile telephone or a portable computer. In general, any computing device capable of communicating information to a central server may be used in various embodiments of the present invention.
 In some embodiments, client computer 20 is connected to a conventional GPS receiver 37 which is used as a positioning instrument, periodically updating the current geographical location information supplied by the GPS receiver to the client computer 20. In some embodiments, the GPS receiver may be implemented as an add-in card that plugs into the system bus 38 of the client computer 20; in yet other embodiments, a stand-alone GPS receiver 37 (or one operating as an add-in card in a second computer (not shown)) is conventionally connected to the client computer 20 via, for example, an I/O port on the client computer. In other embodiments, the user knows his position coordinates without using a positioning instrument; in these cases, is the user simply enters the position coordinates into the client computer 20 via, for example, a keyboard 34.
 In some embodiments, the System 10 is implemented as a Web-based application using the World Wide Web communication protocol well-known to those skilled in the art (i.e., HTTP over TCP/IP). These embodiments have the advantage of instant access to large numbers of applications and users already familiar with Web-based technologies. Accordingly, in some network-based embodiments of the present invention, a graphical user interface that includes an ordered set of HTML, XML or WAP webpages provides an interactive environment for the user to access the functionalities constituting the System 10; the webpages are typically displayed on the client computer using an ordinary Web-browser application program (or a WAP-enabled mini-browser) running in a conventional (or proprietary) operating environment on the client computer 20 (or mobile computing device).
 On the server side, the System 10 is implemented using, for example, a conventional Web server, such as the Apache Web Server, maintained by the Apache Software Foundation (more information relating to the Apache Web Server may be obtained at www.apache.org.) In some embodiments of the present invention, the webpages are dynamically generated and processed using scripting programs—such as CGI scripts written in Perl—uploaded into the Web server (e.g., the Web server CGI bin). Numerous conventional technologies may be used to implement the Web-based information processing services of the present invention, such as the use of servlets, applets, and JSP pages within a Java virtual machine, or competing Microsoft technologies using ASP pages.
FIG. 4 illustrates a method of processing a search object request by the System 10, according to some embodiments of the present invention. The process is interactive, with System 10 responding to user input made, typically, via a graphical user interface displayed on a client computer. In some embodiments, the user fills in pre-defined fields (FIG. 5) and then uses a mouse 33 to instruct the client computer to send the information to the System 10. In stage 41, the System 10 receives information defining a geographical point as specified by the user. The geographical point may be defined in various ways in different embodiments, such as using position coordinates (e.g., GPS coordinates or network-based position coordinates), a postal address, or a street intersection. In some embodiments, a default value may be assumed by the System 10 in the absence of receiving the geographical point information; in some embodiments, the default value includes the current geographical position of the user generated by a positioning instrument.
 In stage 42, the System 10 receives a search area as specified by the user. The search area defines a geographical area (hereafter “area”) containing the geographical point of stage 41. The area may be specified in various ways, including, for example, a distance, a governmental district, a street name, or a second geographical position (e.g., a postal address or position coordinates). A governmental district in turn may be specified in numerous ways, including, e.g., a zip code, a name of a city, a name of a state or province, a name of a county, or a name of a municipality, or the name of school district. An area defined as a distance (or a second geographical position) is used by the System 10 in some embodiments to define a search area consisting of a circle with a radius equal to the distance centered on the geographical position. User input of a geographical point and an area-thereby defining a search area-constrains the scope of information search and retrieved by the System 10 for the user; in particular, only information relating to search objects geographically located within the search area are returned to the user. In this manner, the System 10 efficiently searches and retrieves the relevant local information for the user, instead of in many cases an abundance of unwanted, remote information. In the default case, for example, where the current geographical location of the user substantially defines the search area, the System 10 automatically retrieves information relating to search objects in the user's geographical proximity. In other cases, the user may specify a search area covering a geographical area in which the user expects to be located at during some time in the future; in this case, the System 10 enables a mobile user to search for search objects in generally any search area, such as search areas anticipating the movement of the user.
 In stage 43, the System 10 receives a Boolean search expression or one or more keywords describing the type of search object to be retrieved, and converts the expression or keywords into an appropriate database query used for matching search objects in the database with the query. The use of Boolean search expressions and keywords for performing database queries is well-known in the art, and any conventional techniques for implementing these processes, such as parsing the Boolean expression and converting it into an SQL query, is compatible with the various embodiments of the present invention. In stage 44, the System 10 receives additional information depending upon the type of search object sought by the user; the additional information is then used in combination with the search expression/keywords in stage 43 for creating a more precise query. For example, FIGS. 5-6 are screenshots illustrating a graphical user interface (hereafter “screen”) 51 to the System 10 for searching for articles of merchandise and services, according to some embodiments of the present invention. As illustrated, screen 51 includes a merchandise criteria field 54, a merchandise price field 55, a position field 52, and an area range field 53. The user enters the Boolean search expression/keyword description in the merchandise criteria field 54, and additional information including the pricing information in a merchandise price field 55 (stage 44A). The additional pricing information field 55 is also used in some embodiments in a screen for searching for services (not shown). Additional fields not illustrated in FIGS. 5-6 may be used to assist the user in defining a particular search object. In like manner to articles of merchandise and services, a screen 60 used for searching for events includes a time criteria field 72. This field enables the user to specify a time range within which the searched-for event is scheduled to occur (stage 44B).
 In stage 45, the System generates a database query using the information provided by the user via the client computer (for example, via screen 51, 60 and 80. In stage 46, the System 10 searches the search object data in the database against the search criteria specified by the user (or added by default by the System 10 or specified in a user profile in the absence of specification by the user). In some embodiments, the search objects having a current geographic location within the search area (defined, e.g., by fields 54 and 55) and which additionally match the search and price criteria (fields 54 and 55) are returned to the user.
 In stage 47, the System 10 returns the result of the database query to the user.
 In some embodiments, the result will include information describing the search object, and the geographical location of the search object. FIG. 5-8 illustrate screens rendered on the client computer used to perform stages 41-43 according to some embodiments of the present invention. In some embodiments, the screens are implemented in HTML, XML or WAP for display on a web browser executing in the client computer. There are several input boxes and buttons on the screens to accept input from the user. FIGS. 5-6 illustrate a screen used for searching for merchandise (or, alternatively, services) compatible with some embodiments of the present invention. As illustrated in FIG. 6, the results of the search in some embodiments include a listing of the business names of a predetermined number (e.g., 3) of merchants 61 b offering for sale the article of merchandise defined by a Boolean search expression (e.g., “Yamaha AND Piano” 54). Additional links may be provided in table 60 for providing additional access to the user to relevant information relating to the merchandise, such as current promotions or discounts. In some embodiments of the present invention, the System 10 further queries a map database (not shown) using the received searching area and the current geographical position of the requesting user. The map database then returns a map 90 covering the searching area. In some embodiments, the System 10 marks the map with index numbers and symbols identifying the current geographical location of the user 56, and the merchants 57-59 offering for sale the searched-for merchandise.
 The system could further help the user by providing a routing service because processor 31 knows each of received merchandise positions. The user requests a routing service by moving the cursor and clicking on an index number on map 67. Processor 31 then transmits the routing request to computer 10 through the Internet. In some embodiments, the routing request includes the current geographical location of the user and the current geographical locations of the user the returned search objects. The destination position is the current geographical location of a returned search object. In some embodiments, the user may select a link associated with a search object to cause the System 10 to determine the best route from the user's current geographical location the destination position of the selected search object. In some embodiments, the best route is determined in terms of the shortest driving distance; in other embodiments, the best route may be defined in terms of time, if a real-time traffic database is provided in computer system 10. In other embodiment, a route (e.g., driving directions) may be generated from the user to the selected search object if a route database is accessible to the System 10, or if a routing application executing on the client computer has access to a route database.
 Although the description above contains many specific details, these should not be construed as limiting the scope of the invention but as merely providing illustrations of some embodiments of the present invention. Thus the scope of the invention should be determined by the appended claims and their legal equivalents, rather than by the examples given.
FIG. 1 is a block diagram illustrating the hardware components of a server computer compatible with some embodiments of the present invention.
FIG. 2 is a block diagram illustrating multiple client computers connected to the server computer system of FIG. 1 via communication links, according to some embodiments of the present invention.
FIG. 3 is a block diagram illustrating the hardware components of a client computer in FIG. 2 compatible with some embodiments of the present invention.
FIG. 4 is a flow chart illustrating a method for processing a search request received from a user, according to some embodiments of the present invention.
FIG. 5 is a screenshot illustrating a graphical user interface (“screen”) for merchandise searching, according to some embodiments of the present invention.
FIG. 6 is a screenshot illustrating search results returned from a merchandise search, according to some embodiments of the present invention.
FIG. 7 shows a screen for performing a search for events, according to some embodiments of the present invention.
FIG. 8 shows a screen for performing a search for people, according to some embodiments of the present invention.