# Patent

## Title
System to conduct search updates at determined frequency

## Abstract

A system, according to some example embodiments, includes a commerce database storing item data for a plurality of items offered for sale. A search criteria database stores search criteria associated with a user, the search criteria including search frequency information indicating frequency of a search update to be performed using the search criteria. A search server operation retrieves the search criteria from the search criteria database and performs an update search of the commerce database, the search being performed using the search criteria and in accordance with the search frequency information. A notification engine operationally identifies an update to a previous search result based on the update search and generates a notification of the update to the previous search result.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 14/159,339, filed Jan. 20, 2014, which is a continuation of U.S. patent application Ser. No. 13/572,493 filed Aug. 10, 2012, and issued as U.S. Pat. No. 8,635,202 on Jan. 21, 2014, which is a continuation of U.S. patent application Ser. No. 13/284,717 filed Oct. 28, 2011, and issued as U.S. Pat. No. 8,244,709 on Aug. 14, 2012, which is a continuation of U.S. patent application Ser. No. 12/751,679 filed Mar. 31, 2010, and issued as U.S. Pat. No. 8,051,064 on Nov. 11, 2011, which is a continuation of U.S. patent application Ser. No. 09/539,167, filed Mar. 29, 2000, and issued as U.S. Pat. No. 7,720,833 on May 18, 2010, which claims the benefit of U.S. Provisional Application Ser. No. 60/179,645 filed Feb. 2, 2000, all of which applications are incorporated herein by reference in their entireties.


TECHNICAL FIELD
The present invention relates to the retrieval of information over a network and more particularly to a change detection and notification system.
BACKGROUND
As networks and computers have been able to deliver information faster, users have begun to expect instantaneous information and information available from anywhere in the world. The vast amount of information available has created an overload of information for the user.
Internet search tools and search engines allow users to find information by searching for keywords throughout an index of millions of documents posted on websites. However, a problem with the search engines is the inability to receive updated information on specific pages. A user may frequently access the information on web pages to see if changes have occurred, but this is time consuming. Accessing information is tedious, particularly when information contained in a large database and large searches must be conducted.
Software tools have been developed to automate the task of detecting updates to information on web pages and within databases. These tools allow users to specify keywords which are periodically searched for in a news database. Some of these tools send news articles containing the specified keywords to the user by electronic mail (e-mail).
These automated software tools are sometimes known as “netbots”, a network robot which automatically performs some task for a user. Netbots allow the users to manage the information within databases and reduce the amount of information that the user must read. Filtering of the information is critical to making good use of the overwhelming amount of information available to the user.
Change detection tools allow users to register a document or web page on the Internet and be notified when any change to that document occurs. The user registers a document by specifying the URL of the document and providing the user's e-mail address. The change detection tool stores a local copy of the document together with the user's e-mail address. Periodically (for example daily or weekly), the change detection tool access the source document specified by the URL and compares the retrieved source document to the local saved copy of the document. If a difference between the two copies is detected, a message is sent to the user's e-mail address notifying the user of the change in the document. These document change tools may store an actual copy of the entire document on the tools website for comparison. However, such tools are inefficient for retrieving updated information within a database, for example, an auction site. Because of the large amount of data within these sites, a user may be notified too often or with too much information for the updates to be useful. Often the user is notified of many insignificant changes and frequent e-mail notices of minor irrelevant changes become irritating to the user. In addition, such URL reminders notify the user only that a change has taken place and do not highlight the changes or indicate the changes to the user. Thus, the user must re-read the entire document to determine what has changed.



BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages will be apparent to one skilled in the art in light of the following detailed description in which:
FIG. 1 is an illustration of one embodiment for a distributed auction site, search updating system;
FIG. 2 is a block diagram of one embodiment of an architecture of a computer system;
FIG. 3A is a block diagram of one embodiment for a random access memory, such as that shown in FIG. 2;
FIG. 3B is a block diagram of one embodiment of search criteria used in the system of FIG. 1;
FIG. 4A is a block diagram of one embodiment for an auction site, search updating system;
FIG. 4B is a block diagram of one embodiment of search results;
FIG. 5 is a flow diagram of one embodiment for automatically updating auction site searches;
FIG. 6 illustrates an exemplary personal shopper user log-in window;
FIG. 7 illustrates an exemplary saved search results window;
FIG. 8 illustrates an exemplary existing search and modification window;
FIG. 9 illustrates an exemplary search criteria preview and save window;
FIG. 10 illustrates an exemplary search modified verification window;
FIG. 11 illustrates an exemplary window existing search deletion window;
FIG. 12 illustrates art exemplary new search recorded verification window;
FIG. 13A illustrates an exemplary search results window; and
FIG. 13B illustrates the exemplary search results window.



DETAILED DESCRIPTION
A method, apparatus, and system for automatically updating searches are described. In one embodiment, a first search result may be compared with a second search result to automatically identify at least one data item within the first search result that is changed relative to the second search result. The at least one data item may comprise a transaction term. A notification of the at least one data item may be transmitted to a user device.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. Although the search update system is described in terms of an auction site, the system and method may be used to automatically update searches of any database.
Some portions of the detailed description that follows are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory in the form of a computer program. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
FIG. 1 is a diagram of one embodiment for a distributed auction site, search updating system 100. Referring to FIG. 1, server 102 is coupled to mass storage device 104. Server 102 and mass storage device 104 are coupled via wide area network (WAN) 112 to a variety of clients 106 and 108. Wide area network 112 may be coupled to any of a variety of clients 106 and 108. In one embodiment, mass storage device 104 contains an auction item database, a modified or new item database, a search criteria database, and a search results database. In an alternate embodiment, each of the databases may be contained in a separate mass storage devices 104. A user accesses a server through client 106, 108 via wide area network 112 in order to enter items for sale in the auction item database, modify items for sale, and enter search criteria for searching for items within the auction item database. After the user enters all the information into the system 100, server 102 uses the search criteria to search for items within the auction item database. The search results are stored in the search results database and the user is notified that the search is complete. In one embodiment, the user is notified by an e-mail sent from server 102 via wide area network 112 to client 106, 108.
FIG. 2 is a block diagram of one embodiment for an architecture for a computer system 200. Referring to FIG. 2, CPU 202 is coupled via bus 215 to a variety of memory structures and input/output 210. The memory structures may include, for example, read only memory (ROM) 204, random access memory (RAM) 206, and/or non-volatile memory 208. In one embodiment, CPU 202 is also coupled via bus 215 to network interface 212. Network interface 212 is used to communicate between computer system 200 and server 102 and a variety of other computer terminals 108. Network interface 212 is coupled to the wide area network 112 by any of a variety of means such as, for example, a telephone connection via modem, a DSL line, or the like. The architecture shown in FIG. 2 may be utilized for either client 106, 108, server 102, or both.
FIG. 3A is a block diagram of one embodiment for random access memory (RAM) 206. Referring to FIG. 3A, RAM 206 contains auction item application 302, search criteria application 304, search engine 312, and change-detection manager 310. Change-detection manager 310 includes update responder 306 and update detector 308. Auction item application 302 is used to add or modify items to the item database. Auction item application 302 interacts with the user via a graphical user interface (GUI) to set up items for sale. Search criteria application 304 is used to add, modify and delete search criteria for searching the item database. Search criteria application 304 interacts with the user via a GUI to set up criteria for searching the item database. Search engine 312 searches the item database using the search criteria entered through search criteria application 304. Update responder 306 handles communication between server 102 and the search engine software. Update detector 308 is responsible for performing the automatic update of the searches. In one embodiment, change-detection manager 310 is the NetMind Change-Detection tool provided by NetMind Services, Inc. of Campbell, Calif.
FIG. 3B is a block diagram for one embodiment of search criteria 320 used in system 100. Referring to FIG. 3B, search criteria 320 may include a unique search ID 322, a user identification 324, user e-mail address 326, category indicator 328, search string 330, search frequency 332, minimum bidding price 334, maximum bidding price 336, search includes description 338, order of the search results 340, search starting date 342, and search ending date 344. The entries in search criteria 320 are entered through a GUI.
Search ID 322 is a unique identifier for the search criteria 320. In one embodiment, search ID 322 is automatically generated by system 100 when the search is saved. User ID 324 is a unique identifier for the user and is entered by the user when the user signs-up for the notification service. User e-mail address 326 is used to notify the user of the results of the updated search results. Category search 328 indicates the auction site category for the search. In one embodiment, the user may search items for sale based upon the item category (for example, autos, boats, or the like). Search string 320 contains the search data entered by the user for the search (for example, “BMW 3225i”). Search frequency 332 indicates how often a search update is performed. For example, search frequency 332 may indicate a daily, weekly, or monthly update. Minimum bidding price 334 contains the lowest bid price entered by the user for the item and maximum bidding price 336 contains the highest bid price entered by the user. Search includes description 338 is a tag that indicates whether the search is to be performed on the description of the item in addition to the title of the item. Order of search results 340 indicates whether the search results are displayed newest first or oldest first. Search starting date 342 indicates the date from which the search updates are performed. In one embodiment, search starting date 342 is automatically inserted by the system when the user saves the search information. Search ending date 344 indicates the date at which the search updates are to be concluded.
FIG. 4A is a block diagram of one embodiment of an auction site, search updating system 400. Referring to FIG. 4A, items processor 405 accesses item database 410 to add items to item database 410. Items are entered by a user through a GUI. Items processor 405 extracts new or modified items from item database 410 and places the extracted items in modified or new items database 415. The extraction of modified or new items is performed on a regular basis. For example, the extraction may be run on an hourly or nightly basis.
Search criteria input processor 425 downloads search criteria 320 into search criteria database 420. Search criteria 320 is input into the system 400 by the user through a GUI. In one embodiment, the user is queried at the time a search is initially entered into the system whether the user wishes to save the search for future updates. If the user does not wish to save the search, the search is performed on the item database 410 and the results displayed to the user. However, if the user wishes to save the search, search criteria input processor 425 performs an initial search against auction item database 410 and displays the search results on the user's terminal. In addition, search criteria input processor 425 saves search criteria 320 entered by the user in search criteria database 420.
Update notification engine 430 uses search criteria 320 from search criteria database 420 to search the modified or new items database 415 to create search results. The search results are stored in search result database 440. Update notification engine 430 compares search results on a periodic basis. The periodic basis is determined by search frequency 332. Thus, search criteria 320 may indicate that the search is performed and the comparison made on an hourly, nightly, or weekly basis. Update notification engine 430 runs the current search and compares the search results for the current search with search results from a prior run stored in search results database 440.
Update notification engine 430 retrieves search criteria 320 from search criteria database 420. Search criteria 320 is used to search the modified or new items database 415 and the results are transferred to update manager 310. Update detector 308 parses the new search results. In one embodiment, the search results are sorted in date order with the latest date first. Update detector 308 retrieves the previously stored search results from search result database 440 to make the comparison. In one embodiment, each auction item extracted from new or modified items database 415 is tagged with a beginning and ending tag. During the parsing, each result is divided into sections based upon the tags and the new search results are parsed and divided depending on the tags. In one embodiment, each tag section is then processed by a CRC generator to checksum each section. After all sections of the search results have been checksummed, the archived checksummed sections in search result database 440 for the corresponding search are compared to the current checksummed sections. If a match is found, then a section has not changed. However, if no match is found, then that particular auction item has changed. The changed items are saved in mail notification 435. After all comparisons have been made, the newest checksummed search results are saved in search result database 440 replacing the previous search results for the particular search.
FIG. 4B is a block diagram of one embodiment of the search results 450. Each search result 450 contains a search ID 452 and a number of search result entries 454. Each search result entry 454 contains an item tag 456, checksum entry 458, and change tag 460. Search ID 452 corresponds to search ID 332. Item tags 456 are unique identification tags to each individual auction item contained within database 410. Checksums 458 are the checksum values generated by update detector 308 and change tags 460 are temporary data areas used by update detector 308 to determine if a change has occurred. In one embodiment, the change codes are initialized to 11 before processing. Any entries 454 whose change code remains 11 at the end of processing are new sections or changed sections. Change tags 460 keep track of type of change found. A change code is written into the change tags 460 for each entry 454 when a match is found or not found. In one embodiment, when a match is found, change tag 460 is set to 00 indicating that no change occurred in this section. After all archived sections in search result 450 have been compared, if all change tags 460 are 00, then no new sections or changes were found. However, entries 454 with change tags 460 other than 00 indicate that a change has occurred.
The results of the comparison are sent to the user via e-mail notification 435. In one embodiment, the notification is by an e-mail message sent from server 102 to client 106, 108. In alternate embodiments, any applicable notification system may be utilized such as, for example, notification by web page, by facsimile, or by pager. In one embodiment, the e-mail message contains the changed auction items retrieved from auction item database 410 or new and modified item database 415. In one embodiment, an e-mail notification is sent for each item that has been found to have changed. In an alternate embodiment, a single e-mail notification 435 will be sent out for each search criteria. E-mail may include not only the item found to have been new or changed, but also the unique search ID 322, user ID 324, the category based on the category searched 328, the search from search string 330, the frequency 332, minimum or maximum bidding prices 334, 336, whether the search included the description 338, the starting date 342, and ending date 344. In alternate embodiments, additional information may be also sent in the e-mail notification 435.
In one embodiment, update notification engine 430 retrieves searches from modified or new items database 415 on a daily basis. Update notification engine 430 executes the searches for each user for each search. In one embodiment, a user may save up to three searches at any one time. In alternate embodiments, any number of searches may be saved. A search may be active or inactive depending on search criteria 320. Whether a search is active for a particular execution is dependent upon the duration of a search and frequency 332 entered by the user. If update notification engine 430 finds a match for the search and the comparison shows that a change has occurred from a prior search, the results are sent to the user. In one embodiment, each search result is sent in a separate e-mail notification 435. If a search is not found or there has been no update since the prior search, update notification engine 430 sends notification message 435 to the user indicating that no match was found. In one embodiment, an e-mail notification 435 is sent only after a specific period of time to indicate that no matches have been found. For example, in one embodiment, if update notification engine 430 does not find an updated match for a week, a “still looking” message is sent to the user.
Update notification engine 430 also sends a notification 435 to the user that a search will expire. In one embodiment, the update notification engine 430 sends the expiration notice to the user 24 hours prior to the expiration of the search.
FIG. 5 is a flow diagram of one embodiment for automatically updating auction site 100 searches. Initially at processing block 505, new and modified items for sale are extracted from item database 410 and placed into modified or new items database 415. In one embodiment, the extraction is performed on a periodic basis, for example, hourly or nightly. In addition, search criteria 320 are extracted from search criteria database 420. In one embodiment, search criteria 320 are extracted for each user and each user may have up to three search criteria.
At processing block 510, modified or new items database 415 is searched using the extracted search criteria 320 from search criteria database 420. Search results are saved in search results database 440. Any known searching method may be used to search the database.
At processing block 515, the search results for the new search are compared to the search results from a previous search. If any items have changed or are new, the particular items are tagged. Update notification engine 430 uses search criteria 320 from search criteria database 420 to search the modified or new items database 415 to create search results. The search results are stored in search result database 440. Update notification engine 430 compares search results on a periodic basis. The periodic basis is determined by search frequency 332. Thus, search criteria 320 may indicate that the search is performed and the comparison made on an hourly, nightly, or weekly basis. Update notification engine 430 runs the current search and compares the search results for the current search with search results from a prior run stored in search results database 440.
At processing block 520, the results of a comparison are sent to the user by e-mail notification. The results of the comparison are sent to the user via e-mail notification 435. In one embodiment, the notification is by an e-mail message sent from server 102 to client 106, 108. In alternate embodiments, any applicable notification system may be utilized. In one embodiment, the e-mail message contains the changed auction items retrieved from auction item database 410 or new and modified item database 415. In one embodiment, an e-mail notification is sent for each item that has been found to have changed. In an alternate embodiment, a single e-mail notification 435 will be sent out for each search criteria. E-mail may include not only the item found to have been new or changed, but also the unique search ID 322, user ID 324, the category based on the category searched 328, the search from search string 330, the frequency 332, minimum or maximum bidding prices 334, 336, whether the search included the description 338, the starting date 342, and ending date 344. In alternate embodiments, additional information may be also sent in the e-mail notification 435. In alternate embodiments, any appropriate notification method may be used.
FIG. 6 illustrates an exemplary personal shopper user log-in window 600. Referring to FIG. 6, log-in window 600 includes user ID input area 602, password input area 604, and a remember me check box 610. In one embodiment, when a user signs onto the auction site and enters the search area, the user is presented with the user log-in screen 600. In an alternate embodiment, log-in window 600 may be displayed when a user enters a search string in any window in system 100. The user has the option of performing a one time search by entering a search criteria or search string in search string input area 606 and by checking the search titles and description check box 608. In one embodiment, the user may also create a personal shopper log-in by entering or creating a user ID and password in the appropriate areas 602, 604. The user may only save search criteria by creating a personal shopper log-in account.
FIG. 7 illustrates an exemplary saved search results window 700. Saved search results window 700 includes search string input area 702, search titles and description checkbox 704, and saved searches 706. In one embodiment, a user is allowed to save up to three searches at any given time. In an alternate embodiment, the user may save any number of searches. Saved search results 706 include the name of the search and the search status (that is, whether the search is active and the date at which it will end). In addition, saved searches 706 include save search actions 708 that the user may perform on the saved searches 706. For example, the user may search using the saved search, modify the saved search or delete the saved search.
FIG. 8 illustrates an exemplary existing search and modification window 800. Referring to FIG. 8, window 800 includes search modification dialog box 802. Search modification dialog box 802 includes search string input area 804, search item title or search item title and description check boxes 806, minimum price range input area 808, maximum price input area 810, notification frequency input area 812, and e-mail notification duration input area 814. In addition, window 800 includes a preview button 816 for previewing the search and an undo button 818 for undoing the input into dialog box 802. Dialog box 802 may be used for modification of existing searches or for the input of new searches. Information entered into dialog box 802 is saved in search criteria 320.
FIG. 9 illustrates an exemplary search criteria preview and save window 900. Referring to FIG. 9, search criteria 320 entered by the user within dialog box 802 is displayed in search criteria area 902. Window 900 also includes save button 904 for saving the search results into search criteria 320 and search results received from a search of database 415 in search results area 906. In one embodiment, the search results shown in search results area 906 show the first four items of items found in database 410. In an alternate embodiment, any number of search results may be shown in area 906.
Once the user saves the search by pressing save button 904, the information entered in dialog box 802 is saved in search criteria 320. The unique search ID 322 is generated for the search and the user identification (entered through user log-in window 600) is saved in user ID 324. User identification may be a combination of the user name and user password entered in log-in window of FIG. 6. Information entered in input area 804 is saved in search string 330. If a category had been chosen for the search, the category name will be placed in category search 328, the price range is placed in the minimum bidding and maximum bidding price 334 and 336, the frequency is entered into search frequency 332, an indication whether the search includes a description from 806 is placed into 338, and the starting date 342 and ending date 344 is generated from the e-mail duration. In one embodiment, starting date 342 is the date the search is entered or modified and ending date 344 is generated based upon the duration and starting date 342.
FIG. 10 illustrates an exemplary search modified verification window 1000. Referring to FIG. 10, window 1000 includes an add a new search button 1002 and a view existing searches button 1004. After save button 904 has been entered, window 1000 is presented to the user for verification of the save operation to either save another search or modify a saved search.
FIG. 11 illustrates an exemplary window existing search deletion window 1100. Referring to FIG. 11, a user may indicate that a search is to be deleted by entering the delete button in existing search actions area 708. After the user clicks or enters the delete action, window 1100 is displayed. Window 1100 includes the search to be deleted at 1102 and a delete button 1104. A user may delete the displayed search by clicking on the delete button 1104.
FIG. 12 illustrates an exemplary new search recorded verification window 1200. Referring to FIG. 12, verification window 1200 includes an add a new search button 1202 and a view existing search button 1204. Verification window 1200 may be displayed after the user has entered a new search in search dialog blocks 802 or through the search string input area 702 of any of the display screens of system 100.
FIG. 13A and FIG. 13B illustrate an exemplary search results window 1300. Referring to FIG. 13A and FIG. 13B, search results window 1300 is displayed whenever the user searches on an existing search or enters a search string in a search string input area 702. Window 1300 includes search string input area 1304, e-mail notification and update access area 1306, and other search criteria information 1308. In addition, window 1300 includes search results area 1310. Items found based upon the search are displayed in search result area 1310. In one embodiment, the items are displayed beginning with the newest item through the oldest item found. The newest item is based upon the date the item was entered into the auction site or the date that the item was last updated. By clicking on e-mail notification access area 1306, the user may enter the input of saving searches. If the user has previously signed on, the clicking on 1306 will take the user to the search modification or input window 800 or if the user has not signed on, log-in window 600 will be displayed. By clicking on the e-mail notification access 1306, the search results displayed in search result area 1310 are saved in search results database 440. Each item in the search result area 1310 is tagged and a checksum (by the method as described above) is created for the item. The item number and checksum are saved in database 450.
The specific arrangements and methods herein are merely illustrative of the principles of this invention. Numerous modifications in form and detail may be made by those skilled in the art without departing from the true spirit and scope of the invention.

## Claims

1. A system comprising:
a commerce database storing item data for a plurality of items offered for sale;
a search criteria database storing search criteria associated with a user, the search criteria including search frequency information indicating frequency of a search update to be performed using the search criteria;
a search server to retrieve the search criteria from the search criteria database and to perform an update search of the commerce database, the search being performed using the search criteria and in accordance with the search frequency information; and
a notification engine to identify an update to a previous search result based on the update search and to generate a notification of the update to the previous search result.

2. The system of claim 1, wherein the notification engine is to compare an update search result, generated by the update search, to the previous search result.

3. The system of claim 1, wherein the notification engine is to generate an email message to be sent to the user.

4. The system of claim 3, wherein the notification engine is to transmit the email message to the user.

5. The system of claim 1, wherein the notification engine is to generate a user interface, including the notification, to be presented to the user.

6. The system of claim 5, wherein the notification engine is to transmit the user interface to the user.

7. The system of claim 5, wherein the user interface is a webpage.

8. The system of claim 1, wherein the search frequency information indicates that the search update is to be performed at least one of hourly, daily, or weekly.

9. The system of claim 1, wherein the update is at least one of a modification of an existing data item within a commerce database or an addition of a new data item to the commerce database.

10. A method comprising:
storing search criteria associated with a user, the search criteria including search frequency information indicating frequency of a search update to be performed using the search criteria;
performing an update search of a commerce database, using the search criteria and in accordance with the search frequency information;
determining an update to a previous search result based on the update search; and
generating a notification of the update to the previous search result, the notification to be presented to the user.

11. The method of claim 10, wherein the determining of the update comprises comparing an update search result, generated by the update search, to the previous search result.

12. The method of claim 10, wherein the generating of the notification of the update comprises generating an email message to the sent to the user.

13. The method of claim 12, including transmitting the email message to the user.

14. The method of claim 10, wherein the generation of notification of the update comprises generating a user interface, including the notification, to be presented to the user.

15. The method of claim 14, including transmitting the user interface to the user.

16. The method of claim 14, wherein the user interface is a webpage.

17. The method of claim 10, wherein the search frequency information indicates that the search update is to be performed at least one of hourly, daily, or weekly.

18. The method of claim 10, wherein the update is at least one of a modification of an existing data item within a commerce database or an addition of a new data item to the commerce database.

19. The method of claim 10, wherein the commerce database contains item data for a plurality of items offered for sale.

20. A storage device storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising:
performing an update search of a commerce database, using search criteria associated with the user, the commerce database storing item data for a plurality of items offered for sale;
determining an update to a previous search result based on the update search; and
generating a notification of the update to the previous search result, the notification to be communicated to a user in accordance with notification frequency information.