WO2001075656A1 - Procede, appareil et systeme permettant la creation et la mise a jour d'un systeme de repertoire hierarchique partage - Google Patents

Procede, appareil et systeme permettant la creation et la mise a jour d'un systeme de repertoire hierarchique partage Download PDF

Info

Publication number
WO2001075656A1
WO2001075656A1 PCT/US2001/011465 US0111465W WO0175656A1 WO 2001075656 A1 WO2001075656 A1 WO 2001075656A1 US 0111465 W US0111465 W US 0111465W WO 0175656 A1 WO0175656 A1 WO 0175656A1
Authority
WO
WIPO (PCT)
Prior art keywords
category
data
search
advertisement
ofthe
Prior art date
Application number
PCT/US2001/011465
Other languages
English (en)
Inventor
Steve Thomas
Darrin Skinner
Richard Ahrens
Original Assignee
Wherewithal, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wherewithal, Inc. filed Critical Wherewithal, Inc.
Priority to AU2001253270A priority Critical patent/AU2001253270A1/en
Publication of WO2001075656A1 publication Critical patent/WO2001075656A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Definitions

  • the present mvention relates to the processing of information. More specifically, the present invention relates to a method, apparatus, system, and machine-readable medium for creating and maintaining a shared hierarchical directory system containing various categories of information.
  • the Web is a global network of millions of pages of diverse information (e.g., the web pages or web documents) created by millions of users ofthe Internet.
  • search engine In order to make the Internet more useful as a means of information processing and commerce transacting, various technologies have been developed and implemented that allow for the searching of information on the Web. These technologies — typically embodied within a public web site, and often referred to as a "search engine” — allow a user to enter one or more search terms to initiate a search for certain information that may be of interest to the user. Upon the user's initiation ofthe search, these systems will perform a search of their databases and display links to web sites that the systems deem relevant to the terms entered by the end-user.
  • search engine One ofthe search mechanisms used is referred to as a "web crawler", which is combined with a free text searching mechanism, hi general, the "web crawler” continually scans the Web and builds an indexed database of every page it finds.
  • this kind of search engine will perform a scan of its database and display links to the web documents that it deems relevant.
  • the relevance is determined by scannmg the text contained within each web document, and finding words that are alike or nearly alike the words the user entered as search terms.
  • the problem with this approach is that it does not adequately determine the relevance to an end-user based on search terms, hi addition, this approach typically returns far too many results that are difficult for the end users to thoroughly review. This approach to searching for relevant information is ineffective and inefficient.
  • Another approach to assist the end users in locating the desired information on the Internet is to create a "directory", or categories of web sites organized in a hierarchical fashion.
  • Many search and or directory service providers on the Internet utilize this approach in helping the end users to locate the information that is potentially of interest to them.
  • Some of these providers also combine the Directory approach with the Web Crawling approach.
  • the basic problem with this approach is that there is no possible way for any of these companies to accurately and adequately index and categorize the entire Web. There are currently millions of documents on the Web, and this number continues to grow at a very rapid rate. Even if these companies could hire a staff large enough to index and categorize the documents available on the Web, there is still another problem with this approach.
  • these search engines are tasked with classifying every document on the Web. As such, they must choose one (or a very small number of) classification hierarchies for all Web documents.
  • Another approach to a web search engine is a variant ofthe second approach — the Web Directory — but one in which the classification of web documents is done by volunteers from across the Internet.
  • This approach also has many problems.
  • the first problem is that, although the contents of a given category are, under this approach, maintained by a volunteer, the central authority must still be a "middle man" in deterrnining what categories are valid, which category maintainers are the best for a given category, and to some extent, how the categories are arranged hierarchically, hi this approach, the central authority can be one or more entities that are designated to organize and coordinate the various categories maintained in the system.
  • the first is simple "untargeted” advertising, in which a buyer of advertising placements purchases the right to display his advertisement to an unspecified audience.
  • the problem with this method of advertising is that the advertising buyer has no way to "target” his audience. He has now way of knowing whether the viewers of his advertisement placement will be relevant to what he is selling. For instance, an end-user that enters the search phrase, "winter coats" might be presented with an advertisement for T-shirts, etc.
  • the second approach is "keyword buying” advertising, hi this approach, an advertisement buyer selects a keyword — a single word or a phrase — and buys the right to display his advertisement any time that an end-user enters the given keyword or phrase.
  • the search engine cannot adequately categorize information, and is therefore inaccurate for a large portion of its users, the advertisement displayed on the given category may be inaccurate in the same fashion. For instance, the category "Winter Apparel" needs to be different for people living in Alaska versus those living in Florida, and the associated advertisement needs to be different as well.
  • the present invention provides a method, apparatus, system and machine- readable medium for creating and maintaining a directory of information.
  • the directory includes a first category of information that contains at least one data link pointing to at least one data source, hi one embodiment, the at least one data link has at least one keyword being indicative of at least one informational topic contained in the at least one data source.
  • Figure 1 is a block diagram of one embodiment of a system for maintaining a directory of information accessible by users via a computer network;
  • FIG. 2 shows a detailed block diagram of one embodiment ofthe system in Figure 1;
  • Figure 3 illustrates a functional block diagram of one embodiment ofthe system described in Figure 2;
  • Figure 4 shows a structure diagram of one embodiment of a category database according to the teachings ofthe present invention
  • Figure 5 shows a tree- view diagram of one embodiment ofthe category database described in Figure 4.
  • Figure 6 shows a table- view representation ofthe category database described in Figure 4.
  • Figure 7 shows an example of a functional anatomy of a category
  • Figure 8 shows a diagram of one embodiment of an extrapolated database shown in Figure 2;
  • Figure 9 illustrates external and internal views of an example of a category structure according to teachings ofthe present invention.
  • Figure 10 shows the relationship between the various data structures in the extrapolated database according to the teachings ofthe present invention.
  • Figure 11 shows a flow diagram of one embodiment of a method according to the teachings ofthe present invention.
  • Figure 12 shows a flow diagram of one embodiment of a method according to the teachings ofthe present invention.
  • Figure 13 shows a flow diagram of one embodiment of a method according to the teachings ofthe present invention
  • Figure 14 illustrates a flow diagram of one embodiment of a method for allowing a user to view and select multiple search levels and multiple search categories on one display panel;
  • Figure 15 shows a flow diagram of one embodiment of a method for performing various category processing functions
  • Figure 16 shows a flow diagram of one embodiment of a method for creating a new category
  • Figure 17 shows a flow diagram of one embodiment of a method for modifying an existing category
  • Figure 18 shows a flow diagram of one embodiment of a method for converting a private category to a public category
  • Figure 19 illustrates a flow diagram of one embodiment of a method for allowing a user to customize a category
  • Figure 20 is flow diagram of one embodiment of a method for updating the data links of a given category
  • Figure 21 shows a flow diagram of one embodiment of a method for processing a search request
  • Figure 22 is a flow diagram of one embodiment of a search process in accordance with the teachings ofthe present invention.
  • Figures 22A-I show the various interactions between the various components of the system in processing a search request
  • Figure 23 shows a detailed flow diagram of one embodiment of a search process according to the teachings ofthe present invention.
  • Figures 24A-C illustrate an example of an application of various scoring criteria according to the teachings ofthe present invention
  • Figure 25 shows a flow diagram of one embodiment of a scoring process for determining the score of a given match
  • Figure 26 shows a flow diagram of one embodiment of a method for selecting one contributing category for advertising purposes.
  • Figure 27 is a flow diagram of another embodiment ofthe method for selecting one contributing category for advertising purposes.
  • DETAILED DESCRIPTION i the following detailed description numerous specific details are set forth in order to provide a thorough understanding ofthe present invention. However, it will be appreciated by one skilled in the art that the present invention may be understood and practiced without these specific details. h the discussion below, the teachings of he present mvention are utilized to implement a method, apparatus, and system to create and maintain a dynamic directory of information in which information providers and organizers (also referred herein as category owners) are equitably compensated based upon the usage of their work by the users.
  • the system is designed to allow any user to create and maintain one or more list of informational items, also referred to as categories of information.
  • a category owner is allowed to include all or part of another category in his category. All or part of his category is also allowed to be included in another category.
  • a category owner is provided with an opportunity to be compensated for his work through advertising activities in connection with the usage of his category in locating information for the users.
  • the teachings ofthe present invention are applicable to any search engines and directory systems, i addition, the teachings ofthe present invention are also applicable to any environment in which there is a need to organize or classify information for various purposes, including but are not limited to, targeted advertising on the Internet, personal and company information and knowledge management, genealogy databases, etc.
  • the present invention is not limited to the building and maintaining of information databases and/or directories on the Internet and can be applied to other types of information processing in other business areas or disciplines.
  • the present invention provides an effective solution to the problems of targeted advertising on the Internet, hi this system, the individual category owner selects which advertisement will be displayed when his category is selected, or when all or part of his category is used. For instance, the two different owners of "Winter Apparel" categories mentioned above might solicit very different advertisers for their respective categories. Since end-users of the system will naturally gravitate towards categories that are more relevant to their context, and a typical category owner will tend to "know his audience", the advertisement displayed to the end-user according to the teachings ofthe present invention will have a much greater tendency to be relevant to him in his context.
  • This system can be applied to both a company's Intranet (internal web sites), and or the information on a single user's computer. In both cases, information and categorization from the rest ofthe system can be intermixed with non-public information. For instance, a company might have a "computers" category that includes company- specific links to internal web sites, mixed with links from external categories in this system, entire category trees, etc.
  • This system can also be used for collaboration on a certain topic that is specific to a company and one or more of its partners. For instance, a company might create a "sub-contractor's resources" category that is made for subcontractors that work with that company.
  • the system also includes ways to support forms of compensation other than advertising. For example, a company could employ its own method (possibly connected to an internal accounting system) of awarding credit to owners of popular or important categories. The same set of features can also be applied to organizing/classifying personal information on a single computer.
  • the system described herein is unique in its ability to gather knowledge from a very large base of users.
  • Category owners enter keywords and other information on the items (also referred to as informational items or data items) within their category.
  • Both public category owners and end-users are constantly making decisions about the structure and organization of their particular hierarchies. Because of this, this system effectively creates a knowledge base that can more accurately predict the proper context of a certain piece of information.
  • the system may be configured to specify other kinds of information or data, such as documents, images, CAD drawings, etc.
  • the system can be configured to actively retrieve and search documents that are specified in a category, and use the results of this search to extend the system's hierarchy one or more levels downward into the documents. Examples of this include the use of XML on web sites and other kinds of structured documents, hi addition to knowledge management applications, the teachings ofthe present invention can be used to create decision support systems as well, using the system's database of categories and hierarchies.
  • the system can be used to create a system for market intelligence (data mining).
  • the teachings ofthe present invention can be used to create a system of genealogy in which each category can relate to a single individual, and items within that category can relate to the offspring of that individual.
  • This system will be far superior to any system today, because it will create a worldwide community of information gatherers, and the same dynamics driving the primary search engine will drive this community as well.
  • the important attributes ofthe door are different, and so is its classification (e.g., the way in which one classifies things is by its important attributes within the context). For instance, if one were building a fire in the wilderness, and came across the very same door lying on the ground, it would have a different classification (e.g., "things that burn”) and it would have different important attributes (e.g. its material, size, dryness, etc).
  • classification of objects is work, i other words, upon thinking about a classification, al though the physical effort of doing it can be straightforward, classification represents, at the core, the very essence of knowledge work. As such, people should not be required to perform this type of work (e.g., classification of information or objects) for free (although the "reward” might be either tangible or intangible).
  • classification of information or objects can dictate the outcome of commercial transactions (e.g., a certain make of automobile is classified as a "family car” versus a "sports car"), classification not only is a unit of work, but it can be very valuable (directly or indirectly) in commercial situations.
  • Person A might find the wooden door: 1) person A will relate his context to person B, relating certain attributes that person B listed to those important to him (he might say, "look for things made out of 'wood'); 2) person B might see that person A and others are using his product in a way that he had not expected, and add a new classification for his product and list important attributes of his product accordingly, thereby allowing person A to find his product when he searches for "things that burn”; 3) another party, person C, might perform the work of linking person A and person B's context seeing person A's need and person B's product.
  • there can be different types of users in the system which represent different ways of using the system and different roles within the system.
  • One type of user is an "unregistered user", which is a person or entity that has not yet identified himself as a unique user ofthe system. This kind of user uses the system primarily to find web sites/documents on the Internet relating to a certain subject in which he is interested.
  • the unregistered user can use the system to perform searches for information that may be of interest to him, or browse through the default categories displayed.
  • the advertisement specified by the given category is also displayed.
  • an unregistered user can enter a search request including one or more search terms and one or more categories in which to search (also referred to as search categories) using a user interface provided by the system.
  • the unregistered user can view results ofthe search, which may be zero to many matches.
  • the unregistered user can select a match, and the target of that match (e.g., a URL pointing to a web page) will be displayed.
  • Another type of user is a registered user.
  • an unregistered user attempts to use any controls to customize the environment — for instance, to reclassify a certain category or to select a different category owner for a category — then the user is asked to create an identity in the system so that he can be identified by the system.
  • the registered user can create new categories by using one or more user interfaces provided by the system.
  • a register user may also modify an existing category, or essentially "clone" the category by creating a new category of his own, but specifying a CatShare that represents the existing category.
  • a CatShare is an active connection to another category.
  • a CatShare uses a search method described below in conjunction with one or more specific categories and one or more search terms to produce a set of resultant links. When a user specifies a CatShare within his category, the resultant links are automatically inserted within his category, appearing is if they were part of his category.
  • a link is an item within the category that is either a pointer to another category, or a URL specification representing a web site/document that is classified within his category.
  • the user may specify one or more keywords for the link, one embodiment, keywords are used to find the specific links in the system that match the search terms specified by the user.
  • a category within the system can be classified as a private category or a public category.
  • a private category means that the respective category is not accessible by other users except the category owner, i one embodiment, a public category means that all users ofthe system may view the respective public category, browse the category, search the category, and specify use of the category in a CatShare.
  • a public category may be viewed and used by one or more subsets ofthe users ofthe system.
  • a category owner can do a number of things to make his category more popular, thus increasing his chances for greater rewards (tangible and/or intangible) from advertising payments associated with his category.
  • One ofthe things, a category owner can do to make his category more popular is to include other categories created and maintained by other category owners as subcategories within his own category.
  • a category owner chooses to include a subcategory in his category, he may optionally choose to make that subcategory an "alternate" of an existing subcategory within his category. For example, assuming that Joe owns a category called "Motorcycles" and that he already has Jane's "Helmets" category as a subcategory within his "Motorcycles" category.
  • Joe knows that Jane does a good job of maintaining her category and he gains a certain amount of credit from Jane's subcategory search hits (to be described in detail below). Assuming also that another category owner, Fred, has a different take on how a "Helmets" category should be done. Joe thinks that some users might like Fred's category more than Jane's but it may not make sense for him to include both "Helmets" categories within his since they are overlapping in concept. The present invention allows Joe to make Fred's "Helmets" category an alternate category of Jane's.
  • users that view the subcategory "Helmets" within Joe's "Motorcycles” category may choose to change from the primary subcategory (i.e., Jane's "Helmets” category) to the alternate subcategory (i.e., Fred's "Helmets” category).
  • the category is subsequently displayed with Fred's Helmets category as the primary subcategory (and the user could switch it back, or choose yet another alternate, and so on).
  • Category owners are motivated by the system to enter more alternates for various reasons.
  • First, having more alternates for subcategories means that users have more choices and therefore will be more apt to like the CO's category, view and use it more often, etc.
  • a CO would want his category to be an alternate for many other categories since this gives his category more exposure, thus increasing his category's popularity, and so on.
  • the alternate category feature disclosed in the present invention gives a CO a middle ground option between rejecting another CO's request to be a subcategory and accepting it as a full subcategory.
  • the system therefore allows the category owners to choose their own alternates to offer more choices to the users which would result in more usage of their own categories leading to more opportunities for greater reward and/or compensation (tangible and/or intangible).
  • link nodes that represent the alternate subcategories are flagged as such in the parent structure ofthe respective node.
  • a certain category may be a subcategory of several categories within the system. In some cases, it may be a primary subcategory while in other cases it may be an alternate subcategory. hi one embodiment, as explained in more detail below, when a category is displayed to the users, only its primary subcategory links are displayed.
  • the users are allowed to select an alternate subcategory for each primary subcategory if one exists.
  • a category which is flagged as an alternate is given a lower score, but nevertheless is included as if it were a normal subcategory.
  • the search algorithm will score the original primary lower, and the newly chosen alternate higher.
  • the chosen alternate is displayed, and not the original primary.
  • an advertisement buyer or advertiser
  • the system uses an affiliate advertising model in which an entity (e.g., a merchant who wants to advertise his products, services, etc.) pays anyone who generates visits, leads, sales, or other transactional activities on his web site.
  • entity e.g., a merchant who wants to advertise his products, services, etc.
  • the category owner can be compensated in various ways by the entity (e.g., merchant) for which the advertisement is displayed.
  • the various activities for which the category owner can be compensated include the display ofthe advertisement to the user, "click through”, “buy through”, and "lead through”, etc.
  • the category owner may be compensated by some fixed amount each time the respective advertisement is displayed to a user. Similarly, the category owner may be compensated by some fixed amount for each click through (e.g., each time the user clicks on the advertisement). If the user purchases the product or services advertised, the category owner may get a fixed percentage ofthe purchase price (i.e., buy through). Likewise, the category owner may get some fixed commission if the user clicks on an advertisement link and he later buys something (or don't). This is called “lead through”.
  • these various methods and mechanisms for rewarding or compensating the category owners for the usage of their work through affiliated advertising are for illustrations and explanations and are not meant to be exhaustive or restrictive.
  • the teachings ofthe present invention are also applicable to other forms or methods of compensating the category owners for the usage of their work. Similarly, the teachings ofthe present invention are not limited to the compensation structures described herein and should be equally applicable to other compensation structures based upon specific applications and implementations ofthe present invention.
  • the system provides the advertisers with the capability to sign up with the system to advertise their products, services, messages, ideas, etc.
  • the various category owners in the system are allowed to select from the list of available advertisements one or more appropriate advertisements that they think are related to their categories.
  • the advertisement associated with a specific category is displayed, the respective category owner is provided with the opportunity to be compensated not only for the display ofthe advertisement but also for other activities originated from the display ofthe advertisement. As such, each category owner is allowed to choose any advertisement from the list to be associated with his category.
  • an ad buyer purchases advertisement placements from COs.
  • an ad buyer will select a CO's category based on his impression of how the CO is targeting his desired audience with his category. Since an advertiser typically pays a CO based on the number of users that view his advertisement, select (e.g.”click") his advertisement, or perform other transactional activities, it is in the advertiser's best interest to find the most "targeted" audience possible. That is, the audience that is the most likely to be interested in his products, services, or any other messages or information that the advertiser wants to communicate.
  • Default a user in the true sense
  • system user This user is the category owner that "owns” all ofthe categories that are on the system before any users use the system (the default root category).
  • a user ofthe system can play one or more roles in the system.
  • a user may be a category owner with respect to his own category and an advertiser with respect to another category maintained by another user ofthe system.
  • Figure 1 illustrates a block diagram of one embodiment of a system environment and configuration 100 for maintaining a dynamic directory information, i this configuration, various entities can be connected to a system 101 via a computer network
  • the computer network can be a local area network (LAN), a wide area network (WAN), the Internet, or any combinations thereof.
  • the system 101 is an Internet-based system designed to perform various functions according to the requests received from the various entities connected to the system 101.
  • the various functions performed by system 101 include creating and maintaining categories of information based upon the category specification information provided by category owners 103, allowing users 105 to access the categories to locate information, searching the categories based upon search requests submitted by the users 105, facilitating advertising activities between the category owners 103 and advertisers 107, keeping track of advertising activities in connection with the usage ofthe categories, and providing the category owners with the opportunity to be compensated based upon advertising activities in connection with the usage of their categories, etc.
  • the various functions performed by the system 101 are described in detail below.
  • various category owners 103 can establish connections with the system 101 via the Internet.
  • the category owners 103 can submit various types of requests to the system 101 to create and maintain various categories of information that can be accessed and used by the end users 105.
  • the category owners can submit requests to the system 101 to designate one or more advertisements for their respective categories.
  • Category owners 103 may include individual or corporate entities that are aware of, have access to, or possess various sources of information or data (also referred to as "data sources") that maybe of interest to the end users 105.
  • the end users 105 may include individual or corporate entities that have a need to locate and obtain various kinds of information for various purposes.
  • Advertisers 107 may include individual or corporate entities that want to advertise any products, services, etc.
  • the system 101 is designed to facilitate and process various types of requests submitted by the category owners 103, the end users 105, and the advertisers 107. The various processes and functions performed by the system 101 are described in detail below.
  • one ofthe category owners 103 can establish connection with the system 101 via an Internet connection.
  • the category owner 103 can submit a request to the system 101 to create or update a specific category or perform other category processing functions that are described in more detail below.
  • the system 101 upon receiving the request from the category owner 103, performs a corresponding function depending upon the request from the category owner 103. For example, if the category owner 103 requests to create a new category, the system 101 will create a new category data structure based upon the category specification provided by the category owner 103. If the category owner 103 requests to update an existing category, the system 101 will update the existing category based upon the changes provided by the category owner 103, etc.
  • the category owner 103 can request that one or more particular advertisements be associated or linked with his category.
  • the advertisements that are associated or linked with his category will be presented or displayed to an end user when the corresponding category is selected, either by the end user 105 or by the system 101.
  • the users 105 can establish connection with the system 101 via an
  • the users 105 after being connected to the system 101, can use various user interfaces provided by the system 101 to perform various functions to locate information. For example, the users 105 can browse existing categories that are made available to the end users, submit a search request to search for information in multiple categories that match the search terms specified by the users 105, send comments to the category owners 105 with respect to their category, etc.
  • the advertisers 107 in one embodiment, can also establish connection with the system 101 via an Internet connection to conduct various advertising activities with respect to various products or services. As an example, the advertisers 107 can select one or more specific categories and contact the respective category owners to place their advertisements in connection with the selected categories.
  • an advertisement is associated or linked with a particular category
  • that advertisement will be presented to an end user if the corresponding category is selected either by the end user or by the system.
  • the system's selection of a particular category for advertising purposes will be described in more detail below.
  • the category owners 103, the end users 105, and the advertisers 107 can perform other types of transactions and functions to be described in more detail below using the system 101.
  • other entities can also be connected to the system 101 to conduct various types of business transactions and functions.
  • various entities may want to use the category structure and processing functions provided by the system 101 to build and maintain personal or company information/knowledge databases, filing systems, etc.
  • other entities may want to use the category structure and processing functions provided by the system 101 to build and maintain public or private genealogy databases, etc.
  • other entities can also use the system 101 for other purposes including establishing business connection with users ofthe system 101, obtaining statistical information with respect to category usage, etc.
  • Figure 2 illustrates a more detailed block diagram of one embodiment ofthe system configuration 100 shown in Figure 1.
  • the discussion is focused on the interactions between the category owners 203, the end users 205, the advertisers 207, and the system 201.
  • everything discussed herein equally applies to other entities connected to the system 101 as well as in other environments, hi one embodiment, the system 201 performs various functions in response to various requests submitted by the category owners 203, the end users 205, and the advertisers
  • the various functions performed by the system 201 include processing category creation and maintenance requests submitted by the category owners 203, allowing the end users 205 to browse through available existing categories, processing search requests submitted by the end users 205, processing advertising requests submitted by either the category owners 203 or the advertisers 207, etc. hi one embodiment, the various functions performed by the system 201 also include facilitating transactions between the category owners 205 and the advertisers 207.
  • the system 201 can be logically organized into three major subsystems or units: a server subsystem or unit 211, a database subsystem or unit 231, and a backend accounting subsystem or unit 251.
  • the server subsystem 211 in one embodiment, contains one or more servers 213.
  • the database subsystem or unit 23 in one embodiment, contains a category database 233, a user database 235, an event database 237, and an extrapolated hierarchy database 239.
  • the accounting subsystem or unit 25 in one embodiment, contains an accounting application program 253 and an accounting database 255.
  • the category owners 203 establish connection with the system 201 via the Internet and access the various functions ofthe system 201 using an Internet browser (also referred to as the client program).
  • the category owners 203 can establish connection with the system 201 using a router, a dial-up modem, or other methods of Internet connections available to them.
  • the category owners 203 can utilize an Internet browser to interface with the system 201 in order to access the various functions and features ofthe system 201 including category processing functions, account management functions, and advertising placements, etc.
  • the category owners 203 can also use the browser client program to communicate with other entities connected to the system including the end users 205 and the advertisers 207.
  • the system 201 can support both Microsoft® INTERNET EXPLORER® and Netscape® NAVIGATOR® browser software.
  • End users 205 (also referred to as users ofthe system or users), in one embodiment, establish connection with the system 201 via the Internet.
  • the users 205 can establish connection with the system 201 using routers, dial-up modems or other methods of Internet connections available to them.
  • the users 205 use an Internet browser to access the system 201 to perform various functions including browsing available categories, performing search in one or multiple categories, communicating with category owners, etc.
  • the various functions performed by the system 201 in response to various requests submitted by the users 205 are described in detail below.
  • advertisers 207 in one embodiment, establish connection with the system 201 via the Internet.
  • the advertisers 207 can establish connection with the system 201 using routers, dial-up modems or other methods of Internet connections available to them.
  • the advertisers 207 use an Internet browser to access the system 201 to place their advertisements into the system 201 that can be selected by the various category owners for their respective categories.
  • the advertisements submitted by various advertisers are put into a list maintained by the system 201 that can be viewed and selected by the various category owners for their respective categories.
  • the advertisers 207 use an Internet browser to access the system 201 to perform various functions including placing advertisements for specific categories, submitting advertisements to be selected by category owners 203, communicating with category owners, etc.
  • the various entities connected to the system 201 can play one or many different roles.
  • one entity can be a category owner, an end user, and an advertiser.
  • the server 213 is connected to the client 161 via the network 271.
  • the server 213 includes a web server 215 and a server application 217.
  • the web server 215 is used to communicate with the client 161 (e.g., a web browser front end).
  • the web server 215 is omitted and the client 261 is connected directly to the server application 217 via the network 271.
  • the server application 217 in one embodiment, includes one or more computer programs that are designed to perform various functions in response to various requests submitted by the client 261. As mentioned above, the various functions performed by the server application 217 include category processing, search processing, and advertising processing, etc.
  • the server application 217 communicates with the web server 215 and creates web pages dynamically to be sent to the client 261 via the network 271, in response to various requests submitted by the client 261.
  • the server application 217 in performing its various corresponding functions, accesses and stores data in various databases in the database subsystem 231, including the category database 233, the user database 235, the event database 237, and the extrapolated hierarchy database 239.
  • the category database 233 in one embodiment, is used to store information related to personal and public categories that are created and maintained by the server application server 217, based upon category information or specification provided by the category owners 203.
  • the information stored in the category database 233 includes category information, data links information associated with the categories, category- share (catshare) information associated with the categories, advertisement placement information associated with the categories, etc.
  • the structure and specification ofthe various types of information or data stored in the category database are described in detail below.
  • the category database 233 can be any type of storage medium including disk, tape, etc. hi one embodiment, the category database 233 is configured as a relational database containing a set of various tables used to store various types of information associated with the various categories as described above.
  • the teachings ofthe present invention are not limited to relational database structures and can equally apply to any other database or file structures including flat file structure, indexed file structure, hierarchical database structure, networked database structure, or any combinations thereof, etc.
  • the category database 233 is populated and updated by the server application 217 in response to various types of category processing requests submitted by the various entities connected to the system 201.
  • the various entities e.g., category owners 203
  • the category database 233 is used by the accounting subsystem 251 to perform its corresponding functions described in more detail below.
  • the user database 235 is configured to store user information for registered users in the system including payment information for category owners and billing information for advertisers, hi one embodiment, the user database 235 is used by the accounting subsystem 251 to perform its corresponding functions including preparing and generating payments, bills, etc. to the appropriate users ofthe system.
  • the user database 235 can be any type of storage medium including disk, tape, etc.
  • the user database 235 is configured as a relational database containing a set of various tables used to store various types of user information including user profile, payment, and billing information, etc.
  • the teachings ofthe present invention are not limited to relational database structures and can equally apply to any other database or file structures including flat file structure, indexed file structure, hierarchical database structure, networked database structure, or combinations thereof, etc.
  • the event database 237 is configured to store various events tracked by the server application 217.
  • the various events tracked by the server application 217 include occurrences of advertisements displayed, advertisements selected, categories displayed, users logons, logoffs, etc.
  • the event database 237 can also be referred to as event log, transaction log, server log, or statistics database, etc.
  • the event database 237 is used by the accounting subsystem 251 to prepare payment and billing information corresponding to advertising and other activities associated with various categories in the system.
  • the event database 237 can be any type of storage medium including disk, tape, etc.
  • the event database 237 can be configured as a relational database containing one or more tables used to store the various events and relating information tracked by the server application server 217. Again, the teachings ofthe present invention, however, are not limited to relational database structures and can equally apply to any other database or file structures including flat file structure, indexed file structure, hierarchical database structure, networked database structure, or combinations thereof, etc.
  • the extrapolated hierarchy database 239 in one embodiment, is used to store the combined extrapolated category hierarchy of various category hierarchies in the system.
  • the structure and specification ofthe extrapolated hierarchy database 239 and various data structures contained therein are described in greater detail below.
  • the accounting subsystem 251 in one embodiment, is a set of one or more programs that prepares and generates billing and payment information to advertisers and category owners, respectively.
  • the accounting subsystem 251 uses the accounting database 253 to store and retrieve the information needed to perform its corresponding functions.
  • Figure 3 shows a functional block diagram of one embodiment ofthe system 201 described above with respect to Figure 2.
  • the logic and/or functions that are described below can be implemented using one or more programming languages suitable for the software or system development in a client- server environment, such as Visual Basic, C++ or Java, etc. It should be recognized by one skilled in the art, however, that the logic or functions described herein can be implemented by other programming languages, circuits, or techniques in accordance with the teachings ofthe present invention without loss of generality.
  • the system 301 includes a user profile/account update logic or function 311, a category processing logic or function 321, a search processing logic or function 331, an advertising processing logic or function 341, an accounting logic or function 351, and other processing logic or functions 361.
  • the user profile/account update logic 311 includes logic to allow users to register with the system, to establish and maintain their user profile and account information that are used for various purposes as described in greater detail below.
  • the user profile and account information maintained for a user can contain the user personal and/or business contact information, account balances if applicable, billing and/or payment information if applicable, etc.
  • the category processing logic 321 contains logic to create and update various categories and related information based upon category information or specification provided by the corresponding users (e.g., category owners).
  • the category processing logic 321 includes logic to allow a category owner to create a new category for use in the system, logic to update the content and structure of an existing category, logic to convert a private category to a public category, logic to allow the category owner to share all or part of his category with another category owner, logic to include all or part of another category within his category, and logic to place or associate one or more particular advertisements with a specific category, etc.
  • the various functions and processes included in the category processing logic 321 are described in more detail below.
  • the category processing logic 321 contains category create logic 323, category modify logic 325, category-share logic 327, and category advertisement logic 329.
  • the category create logic 323 is used to create and store a new category in the category database 233 and its corresponding data structures in the extrapolated database 239, based upon the category information/specification supplied by a category owner.
  • the category modify logic 325 contains logic to allow the category owner to modify the content and/or structure of his category, to include all or part of another category within his category, to include all or part of his category within the structure of another category, etc.
  • the category share (catshare) logic 327 includes logic to allow the category owner to dynamically change the content and/or structure of his category by specifying a catshare.
  • a catshare in one embodiment, represents an active and dynamic connection to another category.
  • a catshare in one embodiment, includes a set of criteria including one or more search terms and one or more categories in which to search for data links whose associated keywords match the specified search terms.
  • the catshare associated with a particular category is used by the search logic described below to identify and link to that particular category one or more links from the specified category that match one or more specified search terms, hi one embodiment, when a category owner specifies a catshare within his category, the resultant links are automatically inserted within his category as if they were part of his category.
  • a category owner can dynamically include within his category all or part of another category that match his criteria (e.g., search terms) without keeping track ofthe changes that may have taken place with respect to another category structure and/or contents and without spending time and effort to do the work himself.
  • his criteria e.g., search terms
  • the search processing logic 33 includes a core search logic 333, a scoring logic 335, and a category/advertisement selection logic 337.
  • the core search logic 333 includes logic to identify data links within one or more specified categories that match one or more specified search terms.
  • the scoring logic 335 includes logic to assign an appropriate weight or score to each given match based upon a set of scoring criteria or parameters that are explained in more detail below.
  • the category/advertisement selection logic 337 in one embodiment, performs a selection function to select a specific category whose associated advertisement will be presented along with the results ofthe search (i.e., the list of matches). The selection function is described in more detail below.
  • the search processing logic 331 is invoked when a user submits, using various user interfaces described in more detail below, a search request that includes one or more categories in which to search and one or more search terms.
  • the user can specify multiple categories at different hierarchical levels in which to search for data items (links) that match his specified search term(s).
  • the user can select/specify the multiple search categories using a user interface described in more detail below, or specify a root category in which to search.
  • the root category specified by the user in turn may contain multiple different categories and data items that are structured in multiple levels ofthe hierarchy.
  • the search processing logic 331 will return one or more data links from one or more specified search categories that match one or more search terms specified by the user in his search request. If the search is not successful, it will return no links.
  • a maximum number of matching links to be returned by the search processing logic 331 can be limited either by the user or by specific implementations of different user interfaces. Each returned matching data link will have a certain "weight" or “score” associated with the data item which corresponds to the "closeness” or “accuracy” ofthe result. A higher weight or score corresponds to a closer match to the search terms entered by the user, based upon a set of scoring criteria or rules described in detail below.
  • a category contains one or more data links.
  • Each data link can point to a specific data source or data item that can be represented by an address of a location in which the data source or data item resides.
  • a data link can also point to another category (e.g., a subcategory with respect to the parent category to which the respective data link is linked or associated).
  • a data link included in a given category can contain one or more keywords specified by the category owner.
  • Each keyword included in a data link can be indicative of one or more informational topics included in the corresponding data source or data item to which the respective data link points.
  • the search processing logic 331 uses these keywords to identify the specific data links in the search categories that match the search terms entered by the user, hi one embodiment, a subcategory in a given category is considered a data link within that category and therefore can have keywords associated with it. hi one embodiment, categories themselves can also have keywords
  • the search logic 331 attempts to find a "hierarchical" match, in that it will look at one level ofthe search tree for a search term, another level ofthe search tree for another search term, and so on, based upon the number ofthe specified search terms. In one embodiment, the search logic 331 will rearrange the order ofthe specified search terms to find more matches. In one embodiment, each time the search terms are rearranged, the weight or score ofthe match for the rearranged search terms will be diminished by a factor. Accordingly, in one embodiment, the order ofthe search terms is important in the searching process as well as in determining the corresponding weight or score of a given match.
  • a higher weight or score is given to matches that are hierarchically closer together. For example, assuming that a category called “Computers" is being searched. This category has a link which points to a subcategory called “Sony Stuff, which has a keyword “Sony”. Assuming also that the "Sony Stuff 'category has a link which is a pointer to another subcategory called "Monitors", which has a keyword “monitor”. The "Monitors” category has several links to several different web sites, one of these links (e.g., link F) has a keyword "flat” which points to a web site that sells flat-panel monitors made by Sony Corp.
  • link F e.g., link F
  • the search logic 331 in this example, will search the tree representing the search category "Computers” and will identify link F as a perfect match (i.e., the match with a highest matching weight or score) because the hierarchical order in which the match is found (e.g., link F) is the same order in which the search terms are entered.
  • the search logic 331 will return a set of matching links, each having an associated score or weight based upon various scoring criteria described herein.
  • a category might be categorized in different ways, which can effect the score or weight ofthe resultant link. For instance, a user might specify the search terms, “chicago pastimes self-tours”. "Joe CO” might have a category called, “Chicago Motorcycle Rentals”, which he has managed to get listed in other CO's categories, such as “Chicago Vehicle Rentals” and “Chicago Automotive”. Another CO, “Jane CO”, might have a Category called “Chicago Pastimes”, under which she lists Joe's category with some keywords, including the term, "self-tour".
  • Jane CO in this case, is aware that many users are looking for pastimes in Chicago that involve a self-guided tour, and she knows that motorcycle rental is a way of providing this service. It's important to note that Joe may have never thought of positioning his category this way, even though he is diligent about keeping his links up to date and on topic.
  • one ofthe goals ofthe present invention is to create a system or an environment in which both Joe and Jane are provided with an opportunity to be rewarded for their work in bringing together a user with the desired information.
  • one ofthe ways in which COs are rewarded is through the display of advertisements associated with their categories.
  • a search can produce resultant links that might be from multiple different categories owned by different COs, from a practical viewpoint, there should be only one single advertisement or a small number of advertisements that can be presented to the user along with the matching links.
  • the present invention provides a method or mechanism to solve the problem described above.
  • a method referred to as the "advertising lottery” is used to solve this problem.
  • each link returned has an associated score or weight, and an associated category from which the link originated.
  • the respective returned link has an associated "path" through the given category hierarchy that the search logic takes to return the given match.
  • search results are obtained in response to a search request submitted by a user
  • the information described above is used to determine or select a specific category for advertising purposes (i.e., presenting one or more advertisements associated with the selected category to the user along with the search results). This determination can be compared to buying lottery tickets in a raffle. Resultant search links that have greater scores or weights get more "tickets", and those with lower scores or weights get fewer tickets. In addition, categories that "took part" in obtaining a given resultant link also get their shares ofthe "tickets" to put into the hat.
  • all ofthe tickets are "put into a hat” and a single "ticket” is randomly selected.
  • the category to which the "winning" ticket belongs is chosen (i.e., the advertisement associated with the selected category will be presented to the user).
  • the system will then record the display ofthe corresponding advertisement (along with other associated events, such as the user clicking on the ad, etc.) in the event database.
  • the data stored in the event database e.g., displaying, clicking ofthe advertisement, etc. will be used to determine the reward or compensation to be paid to the respective category owner by the respective advertiser.
  • each contributing category owner is provided with an opportunity to be compensated for his work in proportion to the amount of his contributions in obtaining the information for the users.
  • Figure 4 shows a structure diagram of one embodiment ofthe category database
  • the category database 233 is configured to store category information and related information which include category specification data 401, link specification 403, catshare specification 405, ad placement specification 407, and advertisement specification or information 409.
  • category specification 401 contains category identifier, category name, current advertisement placements, links, owner identifier, keywords, etc.
  • the link specification 403, in one embodiment, contains the link identifier, the link name, description, keywords, pointer to either a data source that can referenced by a URL or a sub category.
  • the catshare specification in one embodiment, contains the link identifier, the link name, description, keywords, pointer to either a data source that can referenced by a URL or a sub category.
  • the ad placement specification 407 includes the link name, description, keywords, a URL or pointer to a sub category, etc.
  • the advertisement specification 409 in one embodiment, contains the ad identifier, the advertiser identifier, the image or object to be presented or displayed to the user, and a target URL associated with the respective ad, etc.
  • the category database 233 is implemented as a relational database structure and the various information stored in the category database 233 can be organized and maintained in various tables that can be cross-referenced or linked together using certain data items stored as keys or descriptors.
  • the category database 233 is implemented as a relational database structure and the various information stored in the category database 233 can be organized and maintained in various tables that can be cross-referenced or linked together using certain data items stored as keys or descriptors.
  • relational database structure 233 is not limited to relational database structure and can be implemented in any other database or file structure including flat file, indexed file, hierarchical database, networked database, etc. or any combinations thereof.
  • Figure 5 shows a tree view diagram of one embodiment ofthe category database
  • a category owner identified as category owner 1 may have created multiple categories (e.g., category 1, category 2,..., category N), the information of which are stored in the category database 233. As shown in Figure 5, each of these categories are created and maintained by category owner 1 and therefore can be traced back to category owner 1 using some identifiers, for example a unique category owner identifier assigned to category owner 1 by the system. Each of these categories may have one or more data links and other information associated with it. For example, as shown in Figure 5, category 1 has two data links (data link 1 and data link 2), one catshare
  • Each data link associated with category 1 may have an associated data source or contain a pointer to another category within the system 201 (a sub category).
  • data link 1 is associated with a data source and data link 2 points to another category in the system 201 (category 4).
  • the data source or data item associated with data link 1 of category 1 maybe referenced by a file name or an address of a location at which the respective data source resides. In one embodiment, the data source can be referenced by a URL.
  • the data source can contain text data, graphics data, voice data, video data, or any combination thereof.
  • the catshare 1 is used to dynamically identify and include within category 1 those data links associated with another category (category 5) whose specified keywords match the search terms specified (K4, K6). The process of identifying and including within one category
  • category 1 includes ad placement 1 as one of its current ad placements.
  • the ad placement 1 in this example points to a particular advertisement (advertisement 1) that has been designated to be presented or displayed to an end user once category 1 is selected, either by the end user in browsing through available categories or by the system in performing the search process in response to a search request submitted by the end user.
  • advertisement 1 advertisement 1
  • the system selection of a specific category (e.g., category 1) for advertising purposes is described in more detail below in connection with the search process.
  • Figure 6 shows a table- view representation of one embodiment ofthe category database 233.
  • the category and related information are organized and maintained in various tables that are cross-referenced or linked by certain data items stored in the tables (keys or descriptors), hi this example, information about the various categories created and maintained by the category owners are stored in a table referred to as category table 611.
  • Data links associated with each category are stored in a table referred to as link table 621.
  • Each category entry in the category table 611 may have one or more corresponding data link entries in the link table 621.
  • each category entry stored in the category table 611 may have one or more catshare entries stored in another table referred to as catshare table 631.
  • Each category entry in the category table 611 may also have one or more ad placement entries stored in a table referred to as the ad placement table 641.
  • Each ad placement entry in the ad placement table 641 may have one or more advertisement entries stored in a table referred to as the advertisement table 651.
  • Entries that are stored in the various tables mentioned above are also referred to as records or rows in the present specification.
  • the table structures shown in Figure 6 are for illustrative purposes only and it should be appreciated by one skilled in the art that the table structures described herein can be implemented by other data structures, methods, and techniques within the scope ofthe present invention.
  • Figure 7 illustrates an example of one embodiment of a user interface 700 showing a functional anatomy of a category, in this case a category called "Motorcycle Helmets".
  • the motorcycle Helmets category 701 includes several data links 705 that are displayed in the first display area 710 ofthe user interface 700.
  • the data links 705 displayed in the first display are 710 represent the addresses or locations (e.g., URLs) ofthe various web sites or web documents to which the data links 705 point.
  • the category 701 in this example also includes a data link 709 which points to another category (referred to as a sub category within the category 701).
  • the category 701 further includes several data links 713 that are dynamically obtained using the catshare structure or specification provided by the category owner of category 701.
  • the data links 713 are those data links in another category (e.g., "Auto-related Agencies and Non-Profits) that match the search terms specified (e.g., "motorcycle helmet”).
  • the user interface 700 also contains a list of functions or options that can be activated or invoked by the user by selecting or clicking on the corresponding user interface element.
  • the UI element 721 in this example, when selected by the user, will display a corresponding user interface to allow the user to place an add for the category 701.
  • the UI element 725 can be used by the user to send feedback or comments to the category owner ofthe category 701.
  • the UI element 729 can be used by the user to customize category 701 according to how he wants to organize or classify his information.
  • Figure 8 shows a diagram of one embodiment ofthe extrapolated hierarchy database 239.
  • the extrapolated hierarchy database 239 is configured to include a keyword dictionary array 810, a node ID array 820, a catshare array 830, a user customization structure array 840, a plurality of keyword structures 850, and a plurality of node structures 860.
  • the various categories and data links associated with each category are considered nodes within the extrapolated hierarchy database for various processing purposes including searching.
  • Figure 9 illustrates an external view of a category called "Computers" and a corresponding internal view ofthe respective category. As shown in Figure 9, the category
  • Computers includes several data links (e.g., Peripherals, CompUSA, CNET, etc.), each of which points to a corresponding data source.
  • the data source corresponding to each data link can be either a web page or web site represented by an URL (the COMPUSA or
  • the data source can also be another category (i.e., a subcategory with respect to the "Computers” category).
  • the "Peripherals" data link in this example is a subcategory. As shown in Figure 9, the category
  • each ofthe nodes can have one or more keywords associated with it.
  • each ofthe nodes has a pointer linking the respective node to its parent node(s).
  • each node can have a corresponding external ID number to link the respective node with the category database 233.
  • each node can have a list of data links (e.g., as in the case of a category node), a pointer to another category (e.g., as in the case of a subcategory link), or a pointer to a URL (e.g., as in the case of a normal "leaf node" link), hi one embodiment, a node can have a flag to indicate whether it is a default (i.e. primary) or an alternate, hi one embodiment, each of node structures 860 includes the information associated with the respective node as described above.
  • the keyword dictionary 810 in one embodiment, includes a list of keywords associated with the various nodes in the extrapolated database 239.
  • the keywords contained in the keyword dictionary 810 are non-redundant (unique).
  • the keyword dictionary 810 is implemented as an array having multiple entries with each entry corresponding to a unique keyword, hi one embodiment, each entry in the keyword array contains the text string keyword and a pointer to a corresponding keyword structure 850. hi one embodiment, each keyword structure 850 contains a back-pointer to point back to the corresponding keyword element or entry in the keyword dictionary array 810.
  • each keyword structure 850 includes a list of nodes that contain the respective keyword. More specifically, each keyword structure 850 may point to one or more node structures 860 that correspond to the various nodes which contain the respective keyword included in the respective keyword structure 850.
  • the NodelD array 820 is an array or lookup table that contains a list of external nodelDs and their corresponding node pointers. In one embodiment, this lookup table allows a node pointer to be located quickly by its corresponding external nodel-D. In one embodiment, when a user merely wants to display a given category, the system will perform a lookup on the NodelD array 820 and return a list of links pointed to by the node corresponding to the given category.
  • the catshare array 830 contains all ofthe system catshares and is indexed to allow quick retrieval on a catshare target.
  • a catshare is a special kind of category. Instead of having links of its own, a catshare specifies one or more nodes (i.e., one or more categories) in which to search and one or more search terms to find the links in the specified categories whose associated keywords match the specified search terms.
  • catshares are extrapolated when they are added to the system, in that the results ofthe search based upon the catshare' s specified category and the specified search terms are entered into the respective category and is added as a normal category.
  • a category in the system is updated, it is checked to see if it is named in any catshare, and if so, the given catshare is regenerated after the respective category is updated, hi one embodiment, one or more search categories and one or more search terms can be specified in a catshare to obtain the links in the specified categories whose associated keywords match the specified search term(s).
  • the catshare array 830 is implemented as an array of catshare structures.
  • Each catshare structure may contain the following: a node pointer for the respective catshare, one or more node pointers for one or more target categories (i.e., one or more categories in which to search), and one or more search terms.
  • categories that are maintained in the system may be classified as private categories or public categories.
  • private categories may be accessed by their respective category owners only.
  • public categories can be accessed by all users ofthe system or by one or more subsets ofthe users ofthe system.
  • private and public categories are maintained in the databases (e.g., the category database and the extrapolated hierarchy database).
  • each node has an owner JJD associated with it.
  • an owner J-D associated with a publicly accessible node i.e., a node in a public category
  • publicly accessible nodes have positive owner ID's whereas private nodes have negative owners ID's.
  • a node is disregarded if it has a negative owner ID and its owner ID does not match the user ID ofthe user who requests the search, hi other words, if a node is not a publicly accessible node, it can be accessed only by its respective owner.
  • user customized categories are distinguished from public categories and are not added to the core search system to keep the core search system smaller and thus more efficient. Instead, a special case can be performed within the core search loop that checks each category along the way for any needed edits and changes the contents ofthe given category accordingly.
  • the user customized structure array 840 contains a list of user customization structures. Each customization structure is used to hold the edits for each user. For each search, the given user's customization structure is retrieved so that it can be used for the search, hi one embodiment, a user customization structure contained in the user customization structure array 840 contains the following information: the user ID, a list of owner IDs to ignore, a list of category edits that contains the node ID to edit and one of: an alternate category owner selection containing the node ID to change and the node ID to change it to; added/deleted links within a given category containing the node ID ofthe given category and whether this is an addition or a deletion.
  • the system also includes a mechanism or feature referred to as alternate category owner selection.
  • alternate category owner selection For example, assuming that Joe is the CO for the "Computers" category. Joe's "Computers” category may contain many links, including many subcategories. One of those subcategories is a pointer to Fred's "Peripherals" category. Assuming that Joe finds out that another CO Jane has a category about peripherals also. In this example, Joe thinks that Jane has a good category for certain audience but he does not want to give up Fred's category, h this instance, the system allows Joe to make Jane's peripherals category an alternate for Fred's.
  • each node that is a link contains a flag to indicate whether it is a default (primary) link or an alternate link, h the category's node list, there are default links and alternate links.
  • an alternate link is read, it is assumed to be an alternate ofthe previous default link in the category's link list.
  • alternate nodes are given lower scores or weights than default nodes. Accordingly, a category owner would want his category to be chosen as a "default" category instead of an "alternate" category.
  • the user customization structure that is retrieved or loaded for a given search is used along the way to determine if an alternate node is chosen instead of a default node. If so, the alternate node is scored higher and the default node is scored lower. As explained above, when a user selects an alternate subcategory, he effectively swaps the role between the original primary subcategory and the one he selects.
  • Figure 10 illustrates the relationship between the keyword dictionary array 810, the keyword structures 850, and the node structures 860 according to one embodiment of the present invention. As described in more detail below, these various structures are used to process search requests submitted by users ofthe system 201.
  • the node structure 860 includes the various information associated with various nodes as described above.
  • the keyword dictionary 810 includes a list of keywords associated with the various nodes in the extrapolated database 239.
  • the keywords contained in the keyword dictionary 810 are unique, hi one embodiment, the keyword dictionary 810 is implemented as an array having multiple entries with each entry corresponding to a unique keyword.
  • each entry in the keyword array contains the text string keyword and a pointer to a corresponding keyword structure 850.
  • each keyword structure 850 contains a back-pointer to point back to the corresponding keyword element or entry in the keyword dictionary 810.
  • each keyword structure 850 contains a list of nodes that contain the respective keyword.
  • each keyword structure 850 may point to one or more node structures 860.
  • each node structure 860 may contain a pointer to point back to the corresponding keyword structure 850.
  • the keyword dictionary array 810, the keyword structures 850, and the node structures 860 are linked using pointers. For example, from an element or entry contained in the keyword dictionary array 810, one can use the corresponding pointers to identify or trace to the corresponding keyword structures 850 and node structures 860. The use of these various structures to process search requests are described in detail below.
  • Figure 11 shows a flow diagram of one embodiment of a method 1100 for promoting information building and sharing by equitably compensating information providers and organizers (i.e. category owners) for the usage of their work.
  • the method 1100 begins at block 1101 and proceeds to block 1105.
  • a first category of information is created and maintained based upon category specification data provided by a first category owner.
  • the process of creating and maintaining a category of information is described in detail below.
  • the category and related information provided by the first category owner are organized and maintained in various tables in the category database 233 that are cross-referenced or linked by certain data items stored in the tables (keys or descriptors).
  • a first advertisement is designated for display to users in connection with the first category's usage.
  • the first advertisement once linked or associated with the first category, will be presented or displayed to the users when the first category is selected, either by the users or by the system.
  • information relating to the first advertisement associated with the first category is stored in various tables in the category database 233.
  • the method 1100 proceeds to block 1113.
  • the system 201 keeps track of various advertising activities involving the first advertisement.
  • these various advertising activities include the display ofthe first advertisement to the user in response to a selection ofthe first category, either by the user or by the system; the selection ofthe first advertisement by the user (e.g., the user clicks on the image or object representing the first advertisement or performs any other actions indicating that he wants to initiate further activities in response to the first advertisement, also called “click through”); or any transactional activity that originates from the user's exposure to the first advertisement, including "buy through” and "lead through”.
  • the various activities involving the first advertisement are stored as entries or records in the event database 235.
  • the first category owner is compensated based upon the advertising activities involving the first advertisement in connection with the first category' usage. Basically, the first category owner is compensated based upon the actual usage of his category by the users, including direct and indirect usage, through advertisement sources that are associated with his category. More usage of his category results in more advertising activities which in turn results in more compensation to the first category owner.
  • Figure 12 shows a flow diagram of one embodiment of a method 1200 that describes in more detail the method 1100 in Figure 11 above.
  • the method 1200 starts at block 1201 and proceeds to block 1205.
  • a first category of information is maintained by the first category owner using various user interfaces provided by the system 201.
  • a first advertisement is selected to be associated with the first category, hi one embodiment, the system uses an affiliate advertising model in which an advertiser can sign up with the system to advertise their products, services, etc. hi this embodiment, the advertisements from the advertisers are put into a list.
  • the various category owners in the system can select from the list of available advertisements one or more advertisements that they think are related to their respective categories.
  • the advertisements selected by the category owners will be associated or linked with their respective categories.
  • the first advertiser can select the first category as one of the categories with which to associate his first advertisement and contact the respective category owner in order to place the advertisement request.
  • the first advertisement will be linked to the first category so that it will be presented or displayed to the user when the first category is selected, either by the user or by the system. The process of facilitating the advertisement transaction between the first category owner and the first advertiser is described in more detail below.
  • a first user selects one ofthe available categories to browse through in order to locate information that may be of interest to him.
  • the first user can either choose to browse various categories through a system default category hierarchical structure or define or customize his own category structure using various user interfaces provided by the system.
  • the process for customizing a category hierarchical structure containing various categories selected by the first user is described in more detail below.
  • the method 1200 proceeds to block 1221 if the category selected by the first user for browsing is the first category.
  • the first advertisement is presented or displayed to the first user.
  • the system keeps track of this information in the event database 237.
  • keeping track ofthe presentment or displaying ofthe first advertisement includes recording or entering a display entry corresponding to the first advertisement in the event database 237.
  • the display entry or display record (also referred to as an event record or advertisement transaction record herein) for the first advertisement includes an ad identifier corresponding to the first advertisement, an activity identifier indicating the type of advertising activity involving the first advertisement for which the respective entry is recorded, the user ID ofthe user to whom the first advertisement is presented, etc.
  • the display entry may also include a date/time stamp corresponding to when the first advertisement is presented to the first user, etc.
  • the first CO's credit is increased based upon the display ofthe first ad.
  • the user's context is also modified accordingly and displayed on the browser.
  • the method 1200 proceeds from either block 1217 or block 1221 to block 1225.
  • the first user submits a search request which may contain multiple search terms and multiple search categories at multiple hierarchical levels in which to search for information.
  • the search function is performed to locate the data links within the specified search categories that match the search terms specified by the first user. The process of searching including the user interface that allows the first user to specify multiple search categories at multiple levels is described in more detail below.
  • the method 1200 proceeds to block 1237 if the first category plays a part or contributes, directly or indirectly, in the search to locate the data links that match the search terms specified by the first user. Otherwise the method 1200 proceeds to end at block 1291.
  • the first category is given a score proportionate to the amount of contributions made by the first category in the search process for locating the data links that match the search specification.
  • the first category is given a chance or probability of being selected for advertising purposes, the chance or probability given is proportionate to its score determined at block 1237.
  • one ofthe categories that contribute, directly or indirectly, in the search is randomly selected by the system for advertising purposes.
  • the method 1200 proceeds to block 1253 if the category selected by the system is the first category, otherwise the method 1200 proceeds to end at block 1291.
  • the first advertisement associated with the first category is presented or displayed to the first user. A corresponding display entry for the first advertisement, as described above, is recorded or entered in the event database 237 in response to the display ofthe first advertisement. The method 1200 then proceeds to end at block 1291.
  • Figure 13 shows a system flow diagram of one embodiment ofthe system 201 shown in Figure 2.
  • the method 1300 starts at block 1301 and proceeds to block 1305.
  • a user logs into the system.
  • the user can establish a connection with the system 201 via the Internet.
  • the teachings ofthe present invention are equally applicable when the user comiects to the system via a Local Area Network (LAN), a Wide Area Network (WAN), or other types of network connections.
  • the user can use a client browser software such as the Netscape® Communicator software or the Microsoft® Internet Explorer software to communicate with the system (i.e., transmitting requests/data to and receiving responses/data from the system, etc.).
  • the Internet browser software or any other software program used by the user to communicate with the system is also referred to as the client program.
  • a main user interface is displayed to the user that allows the user to invoke one ofthe functions that are described in more detail below.
  • the method 1300 proceeds from block 1309 to block 1313 where the user initiates an activity or invokes a function.
  • the method 1300 either proceeds to block 1321, block 1323, block 1325, block 1327, or block 1329, depending upon the function selected or activity initiated by the user.
  • a user registration function is performed to allow the user to register with the system or update existing registration information.
  • a category processing function is performed.
  • the category processing function is described in more detail below.
  • the method 1300 performs a search function in response to a search request submitted by the user.
  • the search function or process is described in greater detail below.
  • an advertising function is performed which is described in detail below.
  • other functions are performed including user supporting functions, etc.
  • the method 1300 then proceeds from block 1321, block 1323, block 1325, block 1327 or block 1329 to decision block
  • the method 1300 loops back to block 1317 if there are more activities or functions to be performed. Otherwise the method 1300 proceeds to block 1361. At decision block 1361, the method 1300 loops back to block 1309 if the user wants to continue using the system, otherwise the method 1300 proceeds to end at block 1391.
  • Figure 14 illustrates a flow diagram of one embodiment of a method 1400 for allowing a user to view and select multiple search levels and multiple search categories on one display panel.
  • the method 1400 starts at block 1401 and proceeds to decision block 1405.
  • decision block 1405 the method 1400 proceeds to block 1409 to select a system default root category if the user does not have a user-defined root category.
  • the method 1400 proceeds to block 1413 to select the user's defined root category.
  • the system default root category is created and maintained by the system 201 in order to allow new users or those users who have not customized their search environment to be able to locate or search for information using the system's category structure. As mentioned above, the user is allowed to customize their search environment based on his personal preferences and his own classification system.
  • the method 1400 then proceeds from either block 1409 or 1413 to block 1417.
  • the data links that are associated with the selected root category are displayed in a first grouping area on the display panel.
  • An example of a user interface displaying the data links associated with the selected root category (in this case the system default root category) is shown in Figure 14A.
  • the various subcategories of the system default root category are displayed in the first grouping area on the display panel.
  • the user selects one ofthe links (subcategories) displayed in the first grouping area on the display panel.
  • the method 1400 then proceeds to decision block 1425.
  • the method 1400 proceeds to block 1429 if the selected link points to another category (next level category), otherwise the method 1400 proceeds to block 1445.
  • the data links associated with the next level category are displayed in a next level grouping area on the display panel.
  • An example of the system's response to the user's selection of a specific link (subcategory) in the top level category is shown in Figure 14B. hi this example, the user selects the "Computers" link which points to the "Computers" subcategory. As shown in Figure 14B, the
  • Computers subcategory in this example has various subcategories that are displayed in a next level grouping area on the display panel.
  • the method 1400 then proceeds from block 1429 to block 1433.
  • the user selects one ofthe links associated with any level category.
  • the method 1400 loops back to block
  • FIG. 1429 to display links associated with the next level category if the selected link points to another category. Otherwise the method 1400 proceeds to block 1445.
  • the URL or hyperlink associated with the selected link is displayed in a body area on the display panel.
  • Figure 14C illustrates an example ofthe system's response to the user's selection ofthe "Companies" link associated with the "Computers” category. As shown in Figure 14C, the subcategories associated with the "Companies" category are displayed in a new level grouping area on the display panel. Also shown in Figure 14C are the
  • URLs or hyperlinks are displayed in the body area on the display panel.
  • the different grouping areas corresponding to the different category levels are displayed in an overlapping manner as illustrated in Figures 14B and 14C.
  • the system allows the user to switch back and forth between different levels of category groupings that are displayed on the same display panel.
  • the user can select a different category level by placing the cursor on the corresponding category level.
  • Figures 14 D and 14E show examples ofthe system's response to the user's selection ofthe "Computers" category level and the "Top" category level, respectively. As shown in Figures 14D and 14E, the category level selected by the user is brought forward and overlaid the other category levels.
  • the user is allowed to individually select multiple categories at multiple levels in which to search for information.
  • the user is provided with a selectable indicator (also called a search light) 1451 for each category to select or click on if he wants the respective category to be included in the search.
  • the user can select multiple categories at multiple levels in which to search for information by selecting or clicking on the selectable indicators (search lights) 1451 corresponding to the categories that he wants to select, hi one embodiment, in response to the user's selections, the corresponding search lights 1451 will change their color or intensity level to indicate to the user that the corresponding categories have been selected.
  • Figures 14F
  • FIGS 14G, and 14H show examples ofthe various categories at various levels that are selected by the user for searching.
  • the selectable indicators search lights
  • the present invention thus allows for the specification of multiple categories at multiple levels in a single search that will return a single set of search results.
  • the user interface illustrated in Figures 14A - 14H allows the user to specify or select multiple search categories at multiple levels in one single search request.
  • Tins feature ofthe present invention is designed to solve one ofthe problems mentioned above, i.e., that current search engines only allows for the specification of a search of one single category at a time.
  • Figure 141 illustrates an example of a single set of search results returned by the system in response to a search request submitted by the user that includes multiple search terms and multiple categories at various levels in which to search.
  • the user entered the search terms "compaq pc" to search in various categories selected by the user as shown in Figures 14F-H.
  • Figure 15 shows a flow diagram of one embodiment of a method 1500 for performing the various category processing functions according to a request from a user.
  • the method 1500 starts at block 1501 and proceeds to decision block 1505.
  • decision block 1505 the method 1500 proceeds to block 1509 to perform a registration function if the user is not a registered user. Otherwise the method 1500 proceeds to block 1513 to display a category processing user interface to allow the user to perform various category processing functions described herein.
  • specification information regarding the respective category is supplied by the user using the user interface provided by the system.
  • the method 1500 proceeds to block 1525 to perform a category create function if the information entered by the user is for a new category, otherwise the method 1500 proceeds to block 1529 to perform a category modify function.
  • the method 1500 proceeds to block 1537 to perform a public upgrade function if the user has indicated that he wants to convert his private category to a public category.
  • the method 1500 proceeds to block 1545 to perform a catshare function in response to a request from the user.
  • the method 1500 proceeds to block 1553 to perform other category processing functions in response to a request from the user. The method 1500 then proceeds to end at block 1591.
  • Figure 16 is a flow diagram of one embodiment of a method 1600 for creating a new category in response to a request from a user.
  • category specification is obtained from the user.
  • a category entry is created based upon the category specification provided by the user.
  • the method 1600 proceeds to block 1613 if the user wants to add links to the new category. Otherwise the method 1600 proceeds to block 1631.
  • a link user interface is displayed to allow the user to specify information for the links that he wants to add.
  • link specification is obtained from the user.
  • one or more links are created based upon the link specification provided by the user.
  • the category structure (category entry and associated link entries) are stored in the category database
  • FIG. 16A-B show an example of one embodiment of a user interface provided by the system to allow the user to create a new category.
  • the user is allowed to enter the name and keywords for the corresponding category that he wants to create in the appropriate boxes provided by the user interface
  • Figure 16A After the user enters the name and keywords for the category, another user interface as shown in Figure 16B is displayed to allow the user to specify link information for the category.
  • the user can specify one or more links associated with the category.
  • the user is allowed to specify the corresponding link information including the URL for the link, the name for the link, the description for the link, and one or more keywords for the link, hi one embodiment, after the user has created the category and its associated link(s), another user interface is displayed as shown in Figure 16C to allow the user to select one or more advertisements to be displayed in connection with his category's usage.
  • the user can select one or more advertisements from a list of available advertisements placed into the system by various advertisers.
  • the category owner can go through the list to select one or more advertisements that he thinks are related to his category, hi one embodiment, as shown in Figure 16C, the advertising rate associated with various actions regarding the corresponding advertisement is also displayed in this advertisement selection user interface including the click rate (the rate for click through), the sale rate (the rate for buy through), and the lead rate (the rate for lead through).
  • This rate information is provided to inform the category owner ofthe compensation rate and structure that he will receive from the various activities involving the particular advertisement that he selects for his category.
  • Figure 17 shows a flow diagram of one embodiment of a method 1700 for modifying an existing category.
  • the method 1700 starts at block 1701 and proceeds to block 1705 to retrieve category and link information for the selected category from the category database.
  • category and link information for the category are displayed to the user.
  • the method 1700 proceeds to block 1725 to delete the links selected by the user to be deleted.
  • the method 1700 proceeds to block 1733 to display the link user interface if the user wants to add new links to the category.
  • link specification for the new links are provided by the user.
  • new link entries are created based upon the link specification provided by the user.
  • the method 1700 proceeds to block 1743 to display the link user interface in response to the user's request to edit existing links for the respective category.
  • existing links are modified based upon the user's specification.
  • the method 1700 then proceeds to block 1751 to update the category database 233 and the extrapolated hierarchy database 239 to reflect the changes made by the user to the respective category and/or its associated links.
  • the method 1700 ends at block 1791.
  • Figure 18 shows a flow diagram of one embodiment of a process 1800 for converting a private category to a public category.
  • the process 1800 starts at block 1801 and proceeds to block 1805.
  • the process 1800 proceeds to block 1809 to perform a category owner registration function if the user has not registered as a category owner.
  • the process 1800 proceeds to block 1817 to perform a category create function if the category does not exist.
  • the process 1800 then proceeds to block 1821 to display a public category creation user interface.
  • public category information for the respective category is obtained from the user.
  • an ad placement function is performed to associate or link one or more advertisements to the respective category.
  • the system allows advertisers to place their advertisements in the system.
  • the various category owners are allowed to choose from the list of available advertisements one or more advertisements that they think are related to their categories.
  • the process 1800 proceeds to block 1849 to perform an alternate registration function if the user indicates that he wants to apply for alternate category status.
  • the category database is updated accordingly based upon the information provided by the user. The process 1800 proceeds to end at block 1891.
  • Figure 19 illustrates a flow diagram of one embodiment of a method 1900 for allowing a user to customize a category structure.
  • the method 1900 starts at block 1901 and proceeds to block 1905.
  • a list of system default categories are displayed to the user.
  • the method 1900 proceeds to block 1913 if the user wants to customize the displayed category. Otherwise the method 1900 proceeds to end at block 1991.
  • the method 1900 proceeds to block 1917 to perform a user registration function if the user has not registered. Otherwise the method 1900 proceeds to block 1921 to display the category customization user interface.
  • the user uses the category customization user interface to add or remove items from the designated category and specify a new name for the new category.
  • the user selects a place within his category hierarchy to store the new category.
  • the category database 233 and the extrapolated hierarchy database 239 are updated accordingly to reflect the changes made by the user. After the changes have been made, the categories displayed to the user will be changed accordingly.
  • Figure 20 is a flow diagram of one embodiment of a method 2000 for updating the data links of a given category.
  • the method 2000 starts at block 2001 and proceeds to block 2005.
  • decision block 2005 the method 2000 proceeds to block 2009 to obtain link information from the user if the link is a new link to be added to the category. Otherwise the method 2000 proceeds to block 2013 to retrieve link information from the databases and display the link information to the user if the link is an existing link.
  • the method 2000 proceeds to block 2019 to perform an add keyword function if the user indicates that he wants to add a new keyword to the link.
  • the method 2000 proceeds to block 2029 to allow the user to modify an existing keyword selected by the user.
  • FIG. 21 shows a flow diagram of one embodiment of a method 2100 for processmg a search request submitted by a user.
  • the method 2100 begins at block 2101 and proceeds to block 2105.
  • a search request is received from the user.
  • the search request in this example is assumed to include two search terms (e.g., first and second search terms) and two categories in which to search (first and second search categories). It should be understood and appreciated by one skilled in the art that the teachings ofthe present invention are not limited to this specific example and should be applicable to any search request with any number of search terms and any number of categories in which to search.
  • the method 2100 proceeds from block 2105 to block 2109.
  • a search function is performed to identify those nodes (data links) in the first and second search categories whose associated key words match the first and second search terms specified in the search request.
  • the search function or search process performed at block 2109 is described in detail below.
  • the score for each category which contributes to obtaining the matches is determined.
  • one ofthe contributing categories is selected as the winner for advertising purposes. In one embodiment, the selection of the winner for advertising purposes is performed randomly.
  • each contributing category is given a selection chance (probability) that is proportionate to its contributing score
  • the selection may be done based upon a set of criteria including, but not limited to, the contributing score of each category, the number of contributing categories, the number of advertisements associated with each contributing category, the advertising rate for the associated advertisements, etc.
  • the method 2100 proceeds from block 2117 to block 2121.
  • the list of matches is presented to the user along with one or more advertisements associated with the winning category.
  • the method 2100 proceeds to end at block 2191.
  • Figure 22 shows a flow diagram of one embodiment ofthe overall search process 2200 using the system 201 described above.
  • the process 2200 starts at block 2201 and proceeds to block 2205.
  • a user enters a search request via a web browser.
  • users ofthe system 201 are connected to the system via the Internet and can use a standard web browser to communicate (e.g., send data to and receive data from) with the system 201.
  • the search request is submitted to a web server (e.g., the web server 215) within the system 201.
  • the web server 215 is omitted and the search request can be submitted directly to a server application (e.g., the server application 217).
  • the search request is sent by the web server 215 to a search program in the server application 217.
  • the search program is a program that is responsible for processing the search request.
  • the search program performs a search function to search the extrapolated hierarchy database 239 (also referred to as the in-memory data structure herein) for matches based upon the search terms and search categories specified by the user in the search request.
  • a set of node identifiers whose associated keywords match the specified search terms is produced.
  • the node ID results are looked up in the category database 233 for text data (e.g., category and link information) corresponding to the node ID results.
  • the combined data (node ID results and the corresponding text data retrieved from the category database 233) are sent back to the web server 213 by the search program.
  • the data returned from the search program is combined with information retrieved from an ad database and one or more ad images (if extant) from a local file system.
  • the web server is responsible for retrieving the advertising information from the ad database and the corresponding advertising images (if extant) from the local file system.
  • the advertising information and the corresponding advertising images can be logically and/or physically configured as one or more subsets ofthe category database 233.
  • the combined data (including category information, link information, advertising information, advertising images, etc.) are formatted into a web page and returned to the user by the web server 215.
  • the web page is formatted according to HTML specifications. It should be understood and appreciated by one skilled in the art that the web page or web document containing matching links, advertising information, etc. can be formatted in other formats as well including XSL and XML formats, etc.
  • Figures 22A - 221 illustrate the process 2200 described above showing the interactions between the various system components in processing a search request submitted by a user.
  • Figure 23 shows a detailed flow diagram of one embodiment ofthe search function or process 2300 performed at blocks 2217 and 2221 in Figure 22.
  • the search function 2300 is described using a sample search request submitted by a user that specifies two search terms (e.g., first and second search terms) and two search categories in which to search (e.g., first and second search categories).
  • two search terms e.g., first and second search terms
  • search categories in which to search e.g., first and second search categories
  • the search categories specified by the user in the search request are also referred to as herein as context nodes (i.e., nodes that are used to specify scope of search).
  • the search request is received.
  • the keyword dictionary array 810 is searched for a semantic match on the second search term.
  • decision block 2307 if there is no match, the process 2300 proceeds to end at block 2391. If there is a match (i.e., there is an entry in the keyword dictionary array 810 that contains a keyword matching the second search tenn), the process 2300 proceeds to block 2309. At block 2309, a corresponding pointer in the matching entry is used to reference the keyword data structure to identify a list of nodes that contain the specified keyword (i.e., the second search term).
  • each entry in the keyword dictionary array contains a pointer to a corresponding keyword structure and that each keyword structure points to one or more nodes that contain the corresponding keyword.
  • a node from the list of nodes containing the second search term is selected for further processing.
  • each node contains a pointer to its parent node(s). This pointer is used to trace back to the ancestors ofthe respective node to determine whether the respective node is within the specified search categories.
  • the process 2300 proceeds to block 2323 if the respective node is within the specified search categories. Otherwise the process 2300 proceeds to block
  • the selected node is checked to see if it contains a keyword matching the first search term. If the selected node contains a keyword matching the first search term, the process 2300 proceeds to block 2327A to add the selected node to the result set. Otherwise the process 2300 proceeds to block 2331. The process 2300 also proceeds from block 2327A to block 2331.
  • the ancestor nodes ofthe selected node are checked to see if they contain a keyword matching the first search term.
  • the selected node is added to the result set at block 2327B. Otherwise to process 2300 proceeds from block 2335 to block 2361.
  • the process 2300 goes back to block 2311 to select another node from the list of nodes if there are more nodes to be processed. The processing continues until all nodes in the list of nodes have been processed as described above. If there is no more nodes in the list to be processed, the process 2300 proceeds to end and return the result set at block 2391.
  • the search process 2300 as described above also performs other functions including scoring, user checking, handling user-edited categories, handling default/alternate CO selection, and handling catshares.
  • the following items or criteria are used to determine the score of each item returned in the search, and also determine the "winning" category that will be allowed to choose the advertisement to be presented to the user along with the search results, hi one embodiment, the score values below are meant to be relative, and the system allows the values to be changed ("tuned") on the fly.
  • a table containing all ofthe included categories is created and running a total is kept for its particular score (or "lottery tickets").
  • the search process adds up the total score from all categories in the table, and randomly chooses a number between one and that number. That number is used to select one ofthe contributing categories as the "winner” in the ad lottery for advertising purposes.
  • the "winning category” will then be used to select one or more corresponding advertisements for presentment (e.g., display) to the user.
  • Sequence Score 0-75 Represents how closely a given match's keywords correspond to the sequence or order in which the search terms are entered by the user. For example, if the search terms are entered as "A B C" and found in the search tree as "C B A”, the sequence score is zero because the order of search te ⁇ ns and the hierarchy of keywords in the search tree do not match. If the matching item or link has keywords in the order of "A C B" the score is about 40, and so on. As described above, the search process will "rotate” or “rearrange” the order or sequence ofthe entered search terms and attempt to find an exact match based on that order.
  • the "rotation" or “rearrangement” is done in an order that is thought to be the closest to the furthest away from what the user intended, and as such each "rotation” or “rearrangement” is considered one more step away, and thus corresponding sequence score is reduced. Note that this factor has no relevance on single term searches.
  • Origin Distance 0-80 A factor that represents how "far" away the given Score result item is from the origin category ofthe search. For example, a result found at the same level as the search origin is a perfect score; a result found "buried" many levels down is closer to zero, and so on.
  • Figures 24A-C illustrate an example of one embodiment of an application ofthe various scoring criteria (also referred to as scoring types, scoring factors or scoring rules) described above with respect to a search request submitted by a user that contains three search terms in a specific order.
  • the user enters "mac monitor sony" as the search te ⁇ ns.
  • sequence score criterion it can be seen in Figure 24A that a match is considered a good or perfect match with respect to the sequence score if the keywords associated with the branch in which the matching node is found are in the same order as that ofthe search terms.
  • the branch shown on the left of Figure 24 A illustrates a good match since the matching keywords are in the same order as that ofthe search terms ("mac monitor sony").
  • the branch shown on the right side of Figure 24A while considered a match, is not as good because the matching keywords are not in the same order as that ofthe search terms.
  • Figure 24B illustrates and example of how the origin distance score criterion is used in determining the total score for each matching link, hi this example, it can be seen that the match identified on the left side of Figure 24B is considered a good or perfect match with respect to the origin distance criterion (i.e., to be given a higher origin distance score) because the matching link is close to the origin category, hi contrast, the match identified on the right side of Figure 24B, while considered a match, is not as good because the matching link is farther away from the origin category. Accordingly, the match identified on the right side of Figure 24B will be given a lower score with respect to the origin distance criterion, compared to that ofthe match shown on the left side of Figure 24B.
  • Figure 24C illustrates an example of an application ofthe term spread score criterion. In this example, it can be seen that the match shown on the left side of Figure
  • FIG 25 shows a flow diagram of one embodiment of a scoring process 2500 for determining the total matching score for a given match.
  • the process 2500 starts at block 2501 and proceeds to block 2505.
  • the sequence score for the given match is determined.
  • the origin distance score for the given match is determined.
  • the tenn spread score for the given match is determined.
  • the semantic score for the given match is determined.
  • the total score for the given match is adjusted based upon the number of keywords in the nodes that are used to identify the given match.
  • Figure 26 shows a flow diagram of one embodiment of a method 2600 for selecting, from among the categories that contribute to obtaining search results, one category for advertising purposes (i.e., one or more advertisements associated with the selected category will be presented to the user along with the search results).
  • each contributing category is assigned a selection probability that corresponds to its total score as determined at block 2605.
  • a number of selection tickets corresponding to the selection probability of each contributing category is generated. For example, if a category "A" has a total score of 100 points, then it may be given 100 selection tickets to be put into a pool of selection tickets from other contributing categories.
  • a ticket is selected from the pool ofthe selection tickets.
  • the category that has the selected ticket is chosen as the winning category for advertising purposes, hi one embodiment, the advertisement(s) associated with the winning category will be presented to the user along with the search results.
  • any category that contributes, either directly or indirectly, to obtaining the search results for the user is given a chance to be selected for advertising purposes (which would generate corresponding compensation for the respective category owner), regardless of how much the respective category contributes.
  • a contributing category that contributes more to obtaining the search results i.e., has a higher score
  • a category that contributes less i.e., having a lower score.
  • the method 2600 as described can be used to fairly and equitably compensate category owners based upon the amount of contributions their respective categories make in helping the user to obtain the information that he wants.
  • Figure 27 illustrates a flow diagram of another embodiment of a method 2700 for selecting a contributing category as the winning category for advertising purposes.
  • the method 2700 starts at block 2701 and proceeds to block 2705.
  • the scores for the contributing categories are kept track of in a scoring table (also refe ⁇ ed to as the master scoring table herein).
  • the master scoring table represents a list of categories and their co ⁇ esponding scores and is updated throughout the search, hi one embodiment, while going through the search process as described above, a mini scoring table is created for each iteration. This table is used to keep track ofthe categories that take part in the suspected result. Each node that is "touched" is given some points, based on the scoring rales and criteria described and explained above.
  • the mini scoring table is merged with the master scoring table. Otherwise it is discarded or ignored.
  • all the scores are added to generate a total number at block 2709.
  • a number between zero and the total number is randomly selected, hi one embodiment, a random number generator is used to randomly select a number between zero and the total number.
  • the master scoring table is traversed to select one ofthe contributing categories as the winning category for advertising purposes, hi one embodiment, using the score of each category entry, a running total is kept as the master scoring table is traversed. The category which contains the generated number is selected as the winning category.
  • the category identified at block 2717 is chosen as the wimiing category for advertising purposes (i.e., its associated advertisement(s) will be presented to the user along with the search results).
  • the random number is 763

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

La présente invention concerne un procédé, un appareil, un système (301) et un support lisible par machine, permettant de créer (323) et de mettre à jour un répertoire (341) d'informations. Le répertoire (341) comprend une première catégorie d'informations (329) qui contient au moins un lien de données associé à au moins une source de données. Dans un mode de réalisation, le(s) lien(s) de données présent(ent) au moins un mot clé fournissant des indications concernant au moins un sujet d'information (361) contenu dans la/les source(s) de données.
PCT/US2001/011465 2000-04-04 2001-04-04 Procede, appareil et systeme permettant la creation et la mise a jour d'un systeme de repertoire hierarchique partage WO2001075656A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001253270A AU2001253270A1 (en) 2000-04-04 2001-04-04 Method, apparatus, and system for creating and maintaining shared hierarchicaldirectory system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54222100A 2000-04-04 2000-04-04
US09/542,221 2000-04-04

Publications (1)

Publication Number Publication Date
WO2001075656A1 true WO2001075656A1 (fr) 2001-10-11

Family

ID=24162839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/011465 WO2001075656A1 (fr) 2000-04-04 2001-04-04 Procede, appareil et systeme permettant la creation et la mise a jour d'un systeme de repertoire hierarchique partage

Country Status (2)

Country Link
AU (1) AU2001253270A1 (fr)
WO (1) WO2001075656A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
US5819092A (en) * 1994-11-08 1998-10-06 Vermeer Technologies, Inc. Online service development tool with fee setting capabilities
US5940831A (en) * 1996-08-28 1999-08-17 Nec Corporation Hypermedia system and method of managing directories and directory data originating from a node link structure in a directory server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
US5819092A (en) * 1994-11-08 1998-10-06 Vermeer Technologies, Inc. Online service development tool with fee setting capabilities
US5940831A (en) * 1996-08-28 1999-08-17 Nec Corporation Hypermedia system and method of managing directories and directory data originating from a node link structure in a directory server

Also Published As

Publication number Publication date
AU2001253270A1 (en) 2001-10-15

Similar Documents

Publication Publication Date Title
US6978263B2 (en) System and method for influencing a position on a search result list generated by a computer network search engine
US7822733B2 (en) Content/information search system
Rowley Product search in e‐shopping: a review and research propositions
US7181438B1 (en) Database access system
US8260771B1 (en) Predictive selection of item attributes likely to be useful in refining a search
US8843481B1 (en) System and method of forming action based virtual communities and related search mechanisms
US6311194B1 (en) System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
US20020107718A1 (en) "Host vendor driven multi-vendor search system for dynamic market preference tracking"
US8768937B2 (en) System and method for retrieving and normalizing product information
US7451152B2 (en) Systems and methods for contextual transaction proposals
US6826572B2 (en) System and method allowing advertisers to manage search listings in a pay for placement search system using grouping
US6286002B1 (en) System and method for storing and searching buy and sell information of a marketplace
US6704727B1 (en) Method and system for generating a set of search terms
US20110252015A1 (en) Qualitative Search Engine Based On Factors Of Consumer Trust Specification
US8260777B1 (en) Server system and methods for matching listings to web pages and users
WO2003010689A1 (fr) Systeme et procede perfectionnes permettant d'influencer une position sur une liste de resultats de recherche generee par un moteur de recherche de reseau informatique
WO2001044992A1 (fr) Systeme et procede de mise en correspondance de contextes
GB2389682A (en) System for categorizing documents in a distributed database using a transactional score
JP2002539559A (ja) インターネット検索とホットリンクを結びつける、相乗作用を生むインターネットブックマーク
Liu et al. Deployment of personalized e-catalogues: An agent-based framework integrated with XML metadata and user models
WO2001075681A9 (fr) Procede, appareil et systeme de creation et exploitation d'un repertoire hierarchise partage
WO2001075656A1 (fr) Procede, appareil et systeme permettant la creation et la mise a jour d'un systeme de repertoire hierarchique partage
US20020107700A1 (en) System and process for capturing, storing, maintaining and reporting information regarding databases via the internet
Lucas et al. The present and future of internet search
Lisnyak An Agent-Based System for Intelligent Internet Shopping

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP