Source: http://patents.com/us-8015172.html
Timestamp: 2019-07-16 12:23:11
Document Index: 601146208

Matched Legal Cases: ['art\n2009', 'Application No. 2005', 'Application No. 2007', 'Application No. 2008', 'Application No. 2009', 'Application No. 2009']

US Patent # 8,015,172. Method of conducting searches on the internet to obtain selected information on local entities and provide for searching the data in a way that lists local businesses at the top of the results - Patents.com
United States Patent 8,015,172
Cave , et al. September 6, 2011
The invention utilizes local search engines to view a display of local business listings in order of relevance to the user. Relevance to the user depends on a variety of factors whose importance varies by user and business--these factors include distance from user-defined starting location, business size, whether or not the business is local, content provided with listing, and relevance based on user-defined search terms. The system collects and parses business information from Web pages and other sources, stores the information in a format that facilitates searches, provides a simple way for users to initiate searches, analyzes all the factors mentioned above each time a search is performed, retrieves listings in order of factor importance, and displays results to the user in order and formatted to make further inspection and use of the results easy for the user.
Inventors: Cave; Mark D (Studio City, CA), Mercer; David (Spring Valley, CA)
Assignee: eBridge, Inc. (Encino, CA)
Appl. No.: 12/459,517
Current U.S. Class: 707/706 ; 707/723
Field of Search: 707/706,723
6240425 May 2001 Naughton
6650998 November 2003 Rutledge
6980982 December 2005 Geddes, Jr.
7133867 November 2006 Irle et al.
7231383 June 2007 Andreev et al.
7308440 December 2007 Rajarajan et al.
7457628 November 2008 Blumberg et al.
2008/0086460 April 2008 Stewart
2009/0106225 April 2009 Smith et al.
2009/0106681 April 2009 Gupta et al.
Assistant Examiner: Nguyen; Kim
1. A method of conducting a search comprising: a. set the number of rows to display per page; b. check to see which page to display; c. process any incoming what and where values; d. see if previous search results exits, and use them if so; e. parse a search location, and get appropriate latitude and longitude, or the city and state; f. process search keywords into a string appropriate for a full text search; g. check a default distance to search from a central point represented by the latitude and longitude or city and state and retrieve all zip codes within the default distance; h. perform the first search on an information database, limiting the result set to 900, and generating a relevance factor for each resulting record; i. perform a second search for paid members in the search region but with records from the additional zip codes table (using the zip codes from the first search), limited to 30, also generating a relevance factor for each resulting record; j. verify that all resulting records are current and properly paid or unpaid members; k. generate distance values for each record; l. remove any duplicate records (by exact match on company name only); m. find up to two paid members at random and mark as sponsored listings; n. sort members by rank from highest to lowest; o. sort members by distance from center; p. mark records as chains and sort highest frequency chains lowest; q. generate content factor and selected factor; r. sort members by content factor and selected factor; s. sort lowest rank members to bottom, according to the cutoff rank t. set a pages link; u. remove member records that are already marked as sponsored listings; v. strip off records assigned to previous pages; w. get additional data for reach record, process and clean data, get any missing geocodes; and x. deliver results to user.
2. The method in accordance with claim 1 wherein before the step of sort least frequently found business is performed, the list is composed of the least frequently found businesses and the code that produces this list is rerun periodically, depending on updates to the lists of all business in the area where the search is performed, and during this step the system matches businesses in the main database to business on this list and if a match is found, it marks the record in the search results with the "least frequent" values, and then it sorts the results in reverse order, so the least frequently found float to the top of the results.
The field of the invention relates to a method of conducting searches on the internet. Specifically, computers connected to each other using common communications protocols form computer networks, the most common and ubiquitous one being the Internet. Software on connected computers can often both transmit and receive data--software that "serves" data to many other computers is often called "server" software, and computers fulfilling this role are often called servers--software that primarily receives data from servers is often called "client" software, thus forming a "client-server" relationship on a computer network. One of the most common types of "client-server" relationship is between computers used for browsing the World Wide Web and computers "serving" Web pages to such "client" computers.
Search Engine Websites employ a variety of techniques to gather and "index" (enter into their internal databases) these lists of links and attach weighted values to words found within the Website associated with the indexed link. Users then conduct searches at the Search Engine Website, and the Search Engine Website attempts to sort the results displayed to the search engine user according to a ranking factor that measures the degree to which the search terms entered by the user match the overall weighted values associated with the links listed within the search engine database. Users judge for themselves whether or not the results displayed by a search engine Website are in fact relevant for their own purposes.
The following ten patents and published applications are relevant to the present invention. 1. U.S. Pat. No. 6,240,425 issued to John Naughton on May 29, 2001 for "Geographic Search Engine Having Independent Selections Of Direction And Distance From Relocatable Hub" (hereafter the "Naughton Patent"); 2. U.S. Pat. No. 6,650,998 issued to Charles Wayne Rutledge et al. on Nov. 18, 2003 for "Information Search System For Enabling A User OF A User Terminal To Search A Data Source" (hereafter the "Rutledge Patent"); 3. United States Published Patent Application No. 2005/0160014 to Andy Moss et al. on Jun. 21, 2005 for "Techniques For Identifying And Comparing Local Retail Prices" (hereafter the "Moss Published Patent Application"); 4. U.S. Pat. No. 6,980,982 issued to William T. Geddes, Jr. et al. on Dec. 27, 2005 for "Search System And Method Involving User And Provider Associated Beneficiary Groups" (hereafter the "Geddes Patent"); 5. U.S. Pat. No. 7,231,405 issued to Xiongwu Xia and assigned to Doug Norman, Interchange Corp. on Jun. 12, 2007 for "Method And Apparatus of Indexing Web Pages Of A Web Site For Geographic Searchine Based On User Location" (hereafter the "Xia Patent"); 6. United States Published Patent Application No. 2007/0150369 to Michael A. Zlvin on Jun. 28, 2007 for "Method And System For Determining The Optimal Travel Route By Which Customers Can Purchase Local Goods At the Lowest Total Cost" (hereafter the "Zlvin Published Patent Application"); 7. United States Published Patent Application No. 2008/0086460 to Kelsey Byron Stewart on Apr. 10, 2008 for "Local Search Directory Techniques" (hereafter the "Stewart Published Patent Application"); 8. U.S. Pat. No. 7,457,628 issued to Brad W. Blumberg et al. and assigned to Smarter Agent, LLC on Nov. 25, 2008 for "System And Method For Providing Information Based On Geographic Position" (hereafter the "Blumberg Patent"); 9. United States Published Patent Application No. 2009/0106681 to Abhinav Gupta et al. on Apr. 23, 2009 for "Method And Apparatus For Geographic Specific Search Results Including A Map-Based Display" (hereafter the "Gupta Published Patent Application"); 10. United States Published Patent Application No. 2009/0106225 to Wade S. Smith et al. on Apr. 23, 2009 for "Identification Of Medical Practitioners Who Emphasize Specific Medical Conditions Or Medical Procedures In Their Practice" (hereafter the "Smith Published Patent Application").
The Rutledge Patent discloses a system and method are disclosed for searching a data source suing text string searches in which queries and information records are qualified by temporal and/or geographical references. In an exemplary embodiment, temporal and geographical references associated with a query are the date/time the query was last submitted by a user and the user's geographical area of interest (defined by ranges of latitude and longitude coordinates), respectively. The temporal and geographical references associated with an information record are the date/time the record was last modified and the "origin" of the record, respectively. A comparison between the temporal and geographic references associated with a query and those associated with the information records in the data source permits geographically irrelevant records to be suppressed and allows an individual user to receive only information that has been modified since the user last requested it. Thus, search results are automatically pre-filtered prior to transmission to the user thereby conserving network resources and reducing the amount of context-based filtering required of the user.
The primary goal of users utilizing local search engines is to view a display of local business listings in order of relevance to the user. Relevance to the user depends on a variety of factors whose importance varies by user and business--these factors include distance from user-defined starting location, business size, whether or not the business is local, content provided with listing, and relevance based on user-defined search terms. The system collects and parses business information from Web pages and other sources, stores the information in a format that facilitates searches, provides a simple means for users to initiate searches, analyzes all the factors mentioned above each time a search is performed, retrieves listings in order of factor importance, and displays results to the user in order and formatted to make further inspection and use of the results easy for the user. In addition, the system is constructed such that newly defined relevance factors can easily be incorporated into the system in a way that makes the displayed results even more relevant.
In addition, users prefer to receive results including even businesses that do not have Websites. The invention lists all businesses, whether or not those businesses have a traditional Website. This has the advantage of enabling fast searches with greatly reduced cost for server networks required to deliver results in a reasonable time. This and the unique ranking factors calculated by the invention also have the advantage of pushing small, local business closer to the top of the results--when they would otherwise go unnoticed when searched for on conventional search engines.
The concept of the present invention search engine is an algorithm which delivers the "least frequently found" result to the top of the rankings which least frequency found results are located within a certain geographic distance of the individual performing the search. This algorithm provides the following primary business benefits:
The specific focus and steps of the invention on the least frequent algorithm are as follows: set the number of rows to display per page check to see which page to display process any incoming what and where values see if previous search results exist, and use them if so parse a search location, and get appropriate latitude and longitude, or the city and state process search keywords into a string appropriate for a full text search check a default distance to search from a central point represented by the latitude and longitude or city and state and retrieve all zip codes within the default distance--default distances may start at 2 miles in rural areas or even a few blocks for larger cities perform the first search on an information database, limiting the result set to 900, and generating a relevance factor for each resulting record perform a second search for paid members in the search region but with records from the additional zip codes table (using the zip codes from the first search), limited to 30, also generating a relevance factor for each resulting record verify that all resulting records are current and properly paid or unpaid members generate distance values for each record remove any duplicate records (by exact match on company name only) find up to two paid members at random and mark as sponsored listings sort members by rank from highest to lowest sort members by distance from center mark records as chains and sort highest frequency chains lowest generate content factor and selected factor sort members by content factor and selected factor sort lowest rank members to bottom, according to the cutoff rank set a pages link remove member records that are already marked as sponsored listings strip off records assigned to previous pages get additional data for reach record, process and clean data, get any missing geocodes deliver results to user
The step starting with "mark records as chains" is the one in which the "sort least frequency found businesses to the top" takes place. Before this step can occur, the list is composed of least frequently found businesses (the code that produces this list is rerun periodically, depending on updates to the list of all businesses in the country), and during this step the system matches businesses in the main database to businesses on this list, and if a match is found it marks the record in the search results with the "least frequent" value, and then it sorts the search results in reverse order, so the least frequently found flow to the top of the results.
FIG. 3a is a detailed illustration of data gathering, processing and storage showing crawl web pages, gather, parse and validate data;
FIG. 3b is a detailed illustration of data gathering, processing and storage illustrating sort records, combine records and remove duplicate records;
FIG. 3c is a detailed illustration of data gathering, processing and storage showing assigned geocodes based on addresses;
FIG. 3d is a detailed illustration of data gathering, processing and storage showing associate records with additional keywords and categories;
FIG. 3e is a detailed illustration of data gathering, processing and storage showing calculate weighted keywords factors, populate full text search fields;
FIG. 4a is a detailed illustration of search processing, formatting and delivery illustrating parsing location and search terms, retrieving search starting point;
FIG. 4b is a detailed illustration of search processing, formatting and delivery illustrating conducting the search, eliminating duplicate or bad records;
FIG. 4c is a detailed illustration of search processing, formatting and delivery showing calculating ranking factors;
FIG. 4d is a detailed illustration of search processing, formatting and delivery illustrating calculating distance factors;
FIG. 4e is a detailed illustration of search processing, formatting and delivery showing calculating content factors;
FIG. 4f is a detailed illustration of search processing, formatting and delivery illustrating calculating size factors;
FIG. 4g is a detailed illustration of search processing, formatting and delivery illustrating calculating local factors;
FIG. 4h is a detailed illustration of search processing, formatting and delivery showing sorting and displaying the results; and
Computing devices supporting data gathering, processing, storage, searching, and delivery are termed "server" computers--server computers generally having very robust processors and storage devices in order to serve the needs of many simultaneous users, while computing devices used to request search results are termed "client" computers, and may be almost any computing device capable of making an Internet connection, from desktop computers to laptop computers to cell phones. Therefore, no distinction is made between computing devices shown in FIG. 2--all of them contain the general hardware and capabilities for computing devices as shown in FIG. 1.
This process begins with crawling authoritative Web pages (301 and 300a) (in the current embodiment Web pages related to businesses found in the United States, but the invention is capable of crawling Web pages related to businesses anywhere in the world) across the Internet and extracting data related to local businesses (the invention is not limited to crawling or parsing Web pages, and can in fact be used to extract data from any text-based document).
Such information includes specific search terms and keywords associated with the business (302a) (such as major line of business, and products or services for sale), contact information (such as business name, phones numbers, and email addresses) address data associated with the business (such as physical addresses and zip codes), and content information (such as the Website URL of the business, if it exists).
The extracted raw data is further processed (303a) so that zip code, telephone, and email data is properly formatted and a determination is made whether the data is actually valid (in the current embodiment, the system validates US zip codes and phone number, but can use any validation method desired, so that zip codes and phone numbers from other countries can also be processed). The result is a set of individual business records. (304a).
To accomplish this compilation, the records are first sorted by business name and address (301b). Then, the keywords in records having the same name and address are accumulated into a single field which is then attached to a single record for this business name and address. (302b) Duplicate records and records without valid addresses are removed. (303b)
To ensure that accurate geographic location information is obtained, the system first formats address data as a string. (301c) The invention uses specialized algorithms to identify data that appears to be addresses (such as validation routines the check for the format of addresses, and verification routines that check to see if the zip code actually exists). Next, the address string is submitted to a third-party geocoding service (302c) (in the current embodiment, the invention uses the Google geocoding service, but any geocoding service that produces accurate results may be employed). The resulting geocode is formatted as a programming object to facilitate further processing. (303c) The accuracy of the result is checked (304c), and if accurate geocodes (numerical values indicating latitude and longitude) cannot be obtained the record is discarded (305c). If accurate geocodes are obtained (306c) the address information is adjusted as necessary (307c), and the latitude and longitude are attached to the record. (308c)
The company name, keywords, and preliminary categories are processed (removing excess white spaces and other undesirable characters) and formatted to be suitable for Full Text processing (301d). A Full Text search is conducted upon a database of standardized Keywords and Categories. (302d) The most relevant Keywords and Categories from the standardized database are retrieved (303d) and the additional relevant categories and keywords are then added to the record. (304d)
The records are then inserted into the main database used by the invention to fulfill search requests by users. (300e) Each keyword in each business record being inserted into the main database is examined (301e), a weighting factor calculated (302e), the Full Text search field populated (303e), and the remaining fields of the main database then populated (304e). The system is now ready to serve search results.
Search Processing begins with a search query entered by a user. (401 and 400a) The search query consists of two parts: the location to search, and keywords representing the type of business, product, and services the user wishes to find. (401a) Both incoming search terms are trimmed (402a), undesirable characters (characters which should not be included in a normal search, or which could lead to broken search code) are removed (403a), and the length of the search terms is checked. (404a) Terms too short are rejected with an error message to the user (405a). Terms that are long enough allow processing to proceed. (406a).
During deliberate searches, the user may enter any starting point (such as a full address, zip code, or even identifiable street corners in a city, so long as the length of the string entered is sufficient to warrant further processing. The location portion of the search query is processed (using the Google GeoCode service, but any GeoCode service returning accurate latitude and longitude may be used) to identify the most likely latitude and longitude, and this data is saved for use later. (407a).
The search terms portion is processed to remove undesirable characters and to format the keywords to facilitate full-text searches. (401b).
At this point, factors identifying the radius of the search, as well as the depth of detail to be displayed on the map, are calculated--default values for both these factors are used if none are supplied by the user (the user has the ability to set these values under some circumstances). Depending on the search radius to be used, parameters used to define the search area are calculated and retrieved. (402b).
The full search is performed (403b) against records processed during Data Gathering, Processing, and Storage, and retrieved records fall within the boundaries defined by the search radius parameters previously calculated. Duplicate business records are identified by name and removed. (404b). The retrieved records are sorted in a manner that allows for the removal of out-of-date or inactive records and then such records are removed. (405b).
The retrieved search results begin as raw business records containing a text-relevance factor indicating how closely the keywords and other words in the record match the search terms entered by the system user (401c, 402c, 403c, and 404c), as well as contact and location data related to the business.
Distance from the center point of the search is calculated and assigned to each record, using algorithms based on the formulas found here: http://en.wikipedia.org/wiki/Great-circle_distance. (401d, 402d, 403d, and 404d)
Each record is then examined for specific content types available, for example, the presence of a Website URL. The types and amounts of content present within the listing are used to calculate a content factor. (401e, 402e, and 403e)
Each record is then compared to records in another database indicating the size of the business. The contents of the other database, consisting of factors related to the frequency with which the business is found in the main database, are assembled in an automated fashion, and related to the raw business records by business name. (401f, 402f, and 403f)
Each record is then compared to records in another database indicating the degree of "localness" of the business. The contents of the other database, consisting of factors related to the localness of the business, are assembled both manually and in an automated fashion, and related to the raw business records by business name. (401g, 402g, and 403g)
These comparisons result in the calculation of factors indicating how local and small the business is. The distance, text-relevance, user-indicated-relevance, localness, size, and content factors all are combined into a single sort factor (401h), and the records are then sorted according to this factor, with the closest, smallest, most relevant, and most local businesses at the top of the list. (402h)
Depending on the record set to be shown (often referred to as "pages", meaning the number of records to be displayed as the list of results for one "page" in the search results display page of the Website), a "page" full of records (defaulting to 9 records) is identified for display and the remaining records are stored in temporary storage associated with the user making the search, so that those records may be retrieved if the user decides to proceed to view the next "page" of records. (403h)
The results are then formatted into a listing making it easy for the user to review and select relevant businesses, and matched with markers that appear on the map, so users can easily determine which businesses within walking, biking, or driving distance. (404h)
Any results falling within these three relevant distance measures are shown by markers on the map, but businesses listed but outside these three distance measures are also shown on the map, and even if outside the currently displayed map borders they can be displayed by the user via the map controls provided. (405h)
Previous Patent US 8,015,171 | Next Patent US 8,015,173