WO2001075656A1 - Method, apparatus, and system for creating and maintaining a shared hierarchical directory system - Google Patents

Method, apparatus, and system for creating and maintaining a shared hierarchical directory system 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
French (fr)
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/en

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

Abstract

The present invention provides a method, apparatus, system (301), and machine-readable medium for creating (323) and maintaining a directory (341) of information. The directory (341) includes a first category of information (329) that contains at least one data link pointing to at least one data source. In one embodiment, the at least one data link has at least one keyword being indicative of at least one informational topic (361) contained in the at least one data source.

Description

METHOD, APPARATUS, AND SYSTEM FOR CREATING AND MAINTAINING A SHARED HIERARCHICAL DIRECTORY SYSTEM
FIELD OF THE TNVENTION
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.
BACKGROUND OF THE INVENTION
As technology continues to advance and the information age continues to march forward, it has become more and more critical for people to be able to effectively and efficiently locate and obtain information that is of interest to them. In particular, more and more people have been using the Internet and the World Wide Web ("the Web") which contains a vast amount of diverse information to locate and obtain 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.
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.
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. When the user enters his search terms, 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. One ofthe reasons is because words and phrases in a particular language (e.g., English) can be used in several different ways, in several different contexts. The phrase "oak tree", for instance, might be used in a document concerning gardening, the lumber industry, song lyrics, and so on. An end-user typically enters his search with a particular context in mind, but there is no way for a simple scan of text to accurately determine the context, and there is no way for the user to specify an accurate context using this search approach.
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. Because they create a single hierarchy, 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. Unfortunately not all human beings classify things in the same way and the problem is greatly compounded when a vast amount of diverse information in so many different categories in so many different contexts need to be classified and reduced to some numbers of categories that are practically manageable. Consequently, the Web Directory approach alone or in combination with the Web Crawler approach does not scale to the size ofthe Web, and it does not take into account the diverse nature of individual human thought (e.g., people classify things differently based upon their interests, background, educational levels, contexts, etc.).
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. Since there are potentially millions of categories, and they might change every day, this approach continues to be limited by the central authority, in the same way the Web Directory approach is limited. The second problem with this approach is that the structure ofthe site is still determined by the central system authority, i other words, although there might be a volunteer to maintain a specific category such as the "motorcycles" category, the central system authority determines that this should be classified under another specific category , for example the "automotive" category, and so on. As explained above, this kind of predetermined and inflexible structure of categories may not work for many users who classify or categorize tilings differently based upon various factors. For example, some users might find that classifying "motorcycles" under the category
"hobbies" might make more sense. The third problem with the current implementations of this approach is that they do not adequately allow for the specification of keywords and other information about the contents of a given category, and they do not have any mechanism for diverse sharing of those keywords. The lack of an adequate mechanism makes the sharing of categories much more difficult, and precludes the use of a more intelligent search based on the way an end-user might structure his own information. The fourth and most practical problem with this approach is that volunteers run the core of the system. Because they have no economic incentive to do a better or worse job, there is no guarantee that each category maintainer will do a good job of maintaining his category. In addition, this approach precludes the existence of professional category maintainers, as well as maintainers that are part of well-known commercial enterprises and editorial entities.
In addition to the problems mentioned above, the current search mechanisms and approaches also suffer from other shortcomings with respect to their user interfaces. For example, current Web search engines offer a user interface that allows for the specification of a search of a single category at a time. No search engine user interface allows the simultaneous specification of multiple categories of information in a single search that will return a single set of results. The problem with this limitation is that a user may not be certain under which category the desired Web documents might be found. As such, it is necessary to either broaden his search to a super-category (and thereby increase the likelihood of many irrelevant results), or perform multiple searches on individual categories (which is both inconvenient, and does not allow the user to automatically rank results from different categories).
Currently advertising on Web search engines are done in three ways. 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 problem with this approach is similar to the problem of Web Crawler search engines in general: that a word or phrase can mean different things in different contexts. For instance, an end-user miglit enter the phrase, "winter coats of paint for my house" and be presented an advertisement for a down parka. The third approach to advertising on search engines is limited to Web Directories, i this approach, an advertisement buyer specifies the category under which he wants his ad displayed. For example, a company that wants to create awareness for its new down parka might purchase an advertisement placement on the "Winter Apparel" category. This approach also shares the problems ofthe Directory approach to search engines in general. Because 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.
SUMMARY OF THE INVENTION
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.
BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages ofthe present invention will be more fully understood by reference to the accompanying drawings, in which:
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;
Figure 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; and
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.
Since this system allows a multitude — potentially millions — of category owners to solicit and sell advertisement placements for their categories, 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.
The overall effect ofthe solution provided by the present invention in solving this problem is that advertisements on this system are much more "targeted", which means that end-users of this system will be less apt to ignore advertisements as is often the case with today's technology and current methods of advertising. Advertisers will have more selection as to how to "target" their products and services, and will have a much greater chance of results for a much lower cost.
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.
In one embodiment, rather than using simple web hyperlinks as items in the category, the system may be configured to specify other kinds of information or data, such as documents, images, CAD drawings, etc. Also, 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. Moreover, 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.
There are some basic theories under which the system described herein operates. First, there is the concept ofthe contextual nature of knowledge. Knowledge is held in concepts, those concepts referring to one or more things. When one thinks of a "door", one thinks of a certain kind of object. He may classify the object by means ofthe important attributes it possesses. The contextual nature of knowledge means that the important attributes ofthe "door" in this context might be different in a different context, and therefore, the way in which one classifies the object might be different.
For instance, one might classify a certain wooden door in a room in the category, "things that will let me get out of this room". Attributes ofthe door that are important are the doorknob, the lock (if any), whether it opens inward or outward and so on. However, it one takes that same door in another context, 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).
The method and system described herein are based oh the idea that things can be classified differently according to different contexts, and that there can be an infinite number of contexts possible in human interaction.
Another theory on which the system is based is the notion that the 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). Moreover, since the 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.
Another concept that is important is that the way in which people communicate is, speaking broadly, and act of trading contexts, hi other words, person A might have a certain goal in mind ("build a fire"), and person B might have a certain object to sell ("a wooden door"). Person A may not be aware that person B's product is important to him because it has not been classified in a way that is relevant to his context. Person B might not know that anybody would want to use his product in the way that person A wants to. hi this case, there can be different ways that 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. hi one embodiment, 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. When a category is displayed, the advertisement specified by the given category is also displayed.
When an advertisement is displayed, the system records the occurrence of such display in a database or file referred to as the Event Database herein. Whenever an advertisement is selected, etc., these actions are also stored in the Event Database. The Ad, the time, and the user (which is specified as "unregistered" for non-registered users) are also stored in this database. hi one embodiment, 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. When 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. When a registered user wants to create a category, he specifies the name ofthe category, and individual items to be included in the category (also referred to as links), hi one embodiment, 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. For each link in the 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.
In one embodiment, a category within the system can be classified as a private category or a public category. In one embodiment, 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. hi another embodiment, a public category may be viewed and used by one or more subsets ofthe users ofthe system.
In one embodiment, 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. When 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. As a result, 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). When a user does this, 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. Second, since an alternate subcategory is treated like a normal subcategory for the purposes of searching, a CO effectively increases the categories beneath his own by adding alternates, and thus increases the chances that his category will get credit for being a "linking node" (to be described in more detail below). Similarly, 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. Accordingly, 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). Internally, link nodes that represent the alternate subcategories are flagged as such in the parent structure ofthe respective node.
This is because 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.
However, the users are allowed to select an alternate subcategory for each primary subcategory if one exists. As described in more detail below, with respect to searching, a category which is flagged as an alternate is given a lower score, but nevertheless is included as if it were a normal subcategory. When a user selects an alternate subcategory, he effectively swaps the role between the original primary subcategory and the one he selects. As such, the search algorithm will score the original primary lower, and the newly chosen alternate higher. When a category is displayed, the chosen alternate is displayed, and not the original primary.
Another type of users in the system is an advertisement buyer ("ad buyer" or advertiser), i one embodiment, 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.
Accordingly, if a user ofthe system sees an advertisement while using a category (e.g., viewing the category, searching for information in the category, etc.) and initiates an activity with respect to the advertisement, 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.
In one embodiment, 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". Of course, 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. hi one embodiment, to facilitate the affiliate advertising model described above, 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. As mentioned above, when 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.
In another embodiment ofthe present invention, an ad buyer purchases advertisement placements from COs. In this embodiment, 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.
Another type of user in the system is not really a user in the true sense, and is called the "Default" user, or 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).
The various types of users described above interact with each other in various ways, depending on their roles and the functions that they want to perform. A user ofthe system, of course, can play one or more roles in the system. For instance, 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, hi one embodiment, the computer network can be a local area network (LAN), a wide area network (WAN), the Internet, or any combinations thereof. In one embodiment, 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.
Referring to Figure 1, in one embodiment, 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. In addition, 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. and/or communicate/disseminate any other messages or information of whatever kind. Of course, any individual or corporate entity can function as a category owner only, an end user only, an advertiser only, or any combinations thereof. 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.
Continuing with the present discussion, in one embodiment, 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, in one embodiment, 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.
Similarly, the users 105 can establish connection with the system 101 via an
Internet connection. 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. Again, once 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. Similarly, 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.
In one embodiment, other entities can also be connected to the system 101 to conduct various types of business transactions and functions. For example, 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. Similarly, 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. hi addition, 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. For clarity and simplicity, the discussion is focused on the interactions between the category owners 203, the end users 205, the advertisers 207, and the system 201. However, 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
207. 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. In one embodiment, 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 231, 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 251, in one embodiment, contains an accounting application program 253 and an accounting database 255. These various system components ofthe system 201 are described in greater detail below.
Continuing with the present discussion, in one embodiment, 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. In one embodiment, 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. In one embodiment, 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. In one embodiment, 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.
Similarly, 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. In one embodiment, 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. In this embodiment, as mentioned above and explained in more detail below, 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. hi another embodiment, 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. As mentioned above, the various entities connected to the system 201 can play one or many different roles. For example, one entity can be a category owner, an end user, and an advertiser.
Referring again to Figure 2, in one embodiment, the server 213 is connected to the client 161 via the network 271. In one embodiment, 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). In another embodiment, 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. h one embodiment, 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. hi one embodiment, 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. However, 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. i one embodiment, 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. As mentioned above, using a client program such as a web browser, the various entities (e.g., category owners 203) connected to the system 201 can access various user interfaces designed to allow them to add, modify, or remove private or public categories, as well as to place one or more specific advertisements for the respective categories. In one embodiment, the category database 233 is used by the accounting subsystem 251 to perform its corresponding functions described in more detail below.
In one embodiment, 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. In one embodiment, 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, 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.
In one embodiment, 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. In one embodiment, 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. hi one embodiment, 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. It will be recognized and appreciated by one skilled in the art that the following description is for illustration and explanation purposes and does not limit the scope ofthe present invention, one embodiment, 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.
Continuing with the present discussion, 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. In one embodiment, 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). For example, in one embodiment, 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.
In one embodiment, 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. In one embodiment, 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. Through this catshare mechanism, 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.
The search processing logic 331, in one embodiment, includes a core search logic 333, a scoring logic 335, and a category/advertisement selection logic 337. hi one embodiment, 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, in one embodiment, 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.
In one embodiment, 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). In one embodiment, 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.
If the search is successful (i.e., at least one match found), 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. In one embodiment, 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.
As explained above, in one embodiment, 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
In one embodiment, 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.
In one embodiment, 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. In this example, assuming that the search terms entered by a user "A" are "sony monitor flat". 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.
As mentioned above, 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.
As explained above, 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.
As explained above, 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. In one embodiment, as described above, one ofthe ways in which COs are rewarded is through the display of advertisements associated with their categories. Although 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. In one embodiment, a method referred to as the "advertising lottery" is used to solve this problem. When a search is performed, each link returned has an associated score or weight, and an associated category from which the link originated. In addition, the respective returned link has an associated "path" through the given category hierarchy that the search logic takes to return the given match.
When 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.
In one embodiment, when the results are compiled, 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.
As such, 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
233 described in Figure 2 above. As illustrated in Figure 4, the category database 233, in one embodiment, 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. In one embodiment, the 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. In one embodiment, the catshare specification
405 contains one or more search terms, the category identifier(s) of one or more categories in which to search for links that match the specified search terms, etc. h one embodiment, 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. A detailed description ofthe creation and update ofthe various types of information stored in the category database 233 is provided below. As explained above, in one embodiment, 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, however, 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
233 with respect to some ofthe information maintained therein. A category owner identified as category owner 1 (e.g., a registered user in the system 201) 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
(catshare 1), and one ad placement (ad placement 1) associated with it. Since these data or information items (or structures) are associated with category 1, they can be linked or traced back to category 1 using an identifier, for example a unique category identifier generated by the system. 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). For example, 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. As illustrated in Figure 5, 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
(e.g., category 1) those data links from another category (e.g., category 5) whose keywords match the specified search terms is described in more detail below in connection with the search process. As shown in Figure 5, 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. 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. As shown in Figure 6, 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. Likewise, 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. Again, 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". In one embodiment, as shown in Figure 7, the Motorcycle Helmets category 701 includes several data links 705 that are displayed in the first display area 710 ofthe user interface 700. In this example, 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. hi this example, 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"). As shown in Figure 7, 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. hi one embodiment, 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. hi one embodiment, 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
CNET data links in this example). The data source can also be another category (i.e., a subcategory with respect to the "Computers" category). For example, the "Peripherals" data link in this example is a subcategory. As shown in Figure 9, the category
"Computers" and its associated links and subcategories, etc. are basically considered nodes from the internal view. For example, the "Computers" category itself is considered nodel, the data links "Peripherals", "CompUSA", and "CNET" are node2, node 3, and node 4, respectively and so on. hi one embodiment, each ofthe nodes can have one or more keywords associated with it. hi one embodiment, each ofthe nodes has a pointer linking the respective node to its parent node(s). In one embodiment, each node can have a corresponding external ID number to link the respective node with the category database 233. As described above and as shown in Figure 9, 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. In one embodiment, the keywords contained in the keyword dictionary 810 are non-redundant (unique). In one embodiment, 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. In one embodiment, 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. hi one embodiment, 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.
In one embodiment, the catshare array 830 contains all ofthe system catshares and is indexed to allow quick retrieval on a catshare target. As described above, 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. As such, the owner ofthe respective catshare does not have to worry about maintaining or updating the respective links that he "borrows" or "shares" from another category, hi one embodiment, 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. In one embodiment, when 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). In one embodiment, 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.
As described above, categories that are maintained in the system may be classified as private categories or public categories. In one embodiment, private categories may be accessed by their respective category owners only. In one embodiment, public categories can be accessed by all users ofthe system or by one or more subsets ofthe users ofthe system. In one embodiment, private and public categories are maintained in the databases (e.g., the category database and the extrapolated hierarchy database). In one embodiment, each node has an owner JJD associated with it. In one embodiment, an owner J-D associated with a publicly accessible node (i.e., a node in a public category) can be distinguished from an owner ID associated with a private node by a predetermined differentiation scheme. For example, in one embodiment, publicly accessible nodes have positive owner ID's whereas private nodes have negative owners ID's. hi one embodiment, during a search for nodes that match a user's search specification, 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. hi one embodiment, 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. This mechanism allows the users ofthe system to modify any number of categories in the system without creating apparently changing the contents ofthe public categories, h one embodiment, 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.
As explained above, the system according to the teachings ofthe present invention also includes a mechanism or feature referred to as 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. By doing this, when people come to Joe's category, they can choose Jane's as the default (primary) instead of Fred's if they want to do so. hi one embodiment, to implement this feature, 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. In one embodiment, if an alternate link is read, it is assumed to be an alternate ofthe previous default link in the category's link list. In one embodiment, during the search process to be described in more detail below, 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. However, since alternate categories are still given scores, the respective category owners are still provided with the opportunity to be compensated for their work, hi one embodiment, 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.
As shown in Figure 10, in one embodiment, the node structure 860 includes the various information associated with various nodes 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. hi one embodiment, 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. In 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 810. hi one embodiment, each keyword structure 850 contains a list of nodes that contain the respective keyword. As shown in Figure 10, each keyword structure 850 may point to one or more node structures 860. hi one embodiment, each node structure 860 may contain a pointer to point back to the corresponding keyword structure 850. As such, 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. At 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. As explained above, in one embodiment, 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). The category and related information with respect to the first category are also maintained in the various data structures in the extrapolated hierarchy database 239 as described above with respect to Figures 8-10. At block 1109, a first advertisement is designated for display to users in connection with the first category's usage. In one embodiment, 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. In one embodiment, as explained above, 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. At block 1113, the system 201 keeps track of various advertising activities involving the first advertisement. These various advertising activities, in one embodiment, 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". In one embodiment, the various activities involving the first advertisement are stored as entries or records in the event database 235. At block 1117, 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. At block 1205, a first category of information is maintained by the first category owner using various user interfaces provided by the system 201. At block 1209, 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.
In another embodiment, 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. Once the advertisement agreement is reached between the first category owner and the first advertiser, 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.
At block 1213, a first user selects one ofthe available categories to browse through in order to locate information that may be of interest to him. As described above, 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. At decision block 1217, the method 1200 proceeds to block 1221 if the category selected by the first user for browsing is the first category.
Otherwise the method 1200 proceeds to block 1225. At block 1221, the first advertisement is presented or displayed to the first user. As explained above, each time the first advertisement is presented or displayed to the user, the system keeps track of this information in the event database 237. hi one embodiment, 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. In one embodiment, 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. In one embodiment, the display entry may also include a date/time stamp corresponding to when the first advertisement is presented to the first user, etc. At block
1221, the first CO's credit is increased based upon the display ofthe first ad. In one embodiment, based upon the selection ofthe first category, the user's context is also modified accordingly and displayed on the browser.
Continuing with the present discussion, the method 1200 proceeds from either block 1217 or block 1221 to block 1225. At 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. At block 1229, 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. At decision block 1233, 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. At block 1237, 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. At block 1241, 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. At block 1245, one ofthe categories that contribute, directly or indirectly, in the search is randomly selected by the system for advertising purposes. At decision block 1249, 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. At block 1253, 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. At block 1305, a user logs into the system. As mentioned above, in one embodiment, the user can establish a connection with the system 201 via the Internet. However, 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. As described above, in one embodiment, 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.). For the purposes of the present specification, 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.
Continuing with the present discussion, at block 1309, 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. Referring again to Figure 13, the method 1300 proceeds from block 1309 to block 1313 where the user initiates an activity or invokes a function. At decision block 1317, 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. At block 1321, a user registration function is performed to allow the user to register with the system or update existing registration information. At block
1323, a category processing function is performed. The category processing function is described in more detail below. At block 1325, 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. At block 1327, an advertising function is performed which is described in detail below. At block 1329, 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
1341. At decision block 1341, 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. At 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.
Otherwise 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. At block
1417, the data links that are associated with the selected root category (i.e., either the system default root category or the user's defined 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. As shown in Figure 14A, the various subcategories of the system default root category are displayed in the first grouping area on the display panel. At block 1421, 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. At 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. At block 1429, 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. At block 1433, the user selects one ofthe links associated with any level category. At decision block 1437, the method 1400 loops back to block
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. At 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 associated with the selected link ("Companies" subcategory). These
URLs or hyperlinks are displayed in the body area on the display panel. In one embodiment, the different grouping areas corresponding to the different category levels are displayed in an overlapping manner as illustrated in Figures 14B and 14C. hi one embodiment, the system allows the user to switch back and forth between different levels of category groupings that are displayed on the same display panel. In one embodiment, 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.
In one embodiment, the user is allowed to individually select multiple categories at multiple levels in which to search for information. In one embodiment, 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,
14G, and 14H show examples ofthe various categories at various levels that are selected by the user for searching. As shown in Figures 14F-H, the selectable indicators (search lights) corresponding to the selected categories change their color when they are clicked on or selected by the user. 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 inFigures 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. In this example, 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. At 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. At block 1517, specification information regarding the respective category is supplied by the user using the user interface provided by the system. At block 1521, 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. At decision block 1533, 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. At decision block 1541, the method 1500 proceeds to block 1545 to perform a catshare function in response to a request from the user. At decision block 1549, 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. At block 1605, category specification is obtained from the user. At block 1607, a category entry is created based upon the category specification provided by the user. At decision block 1609, 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. At block 1613, a link user interface is displayed to allow the user to specify information for the links that he wants to add. At block 1617, link specification is obtained from the user. At block 1621, one or more links are created based upon the link specification provided by the user. At block 1631 , the category structure (category entry and associated link entries) are stored in the category database
233. Various data structures corresponding to the newly created category and links are also stored in the extrapolated hierarchy database 239. The method 1600 then proceeds to end at block 1691. Figures 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. In this example, 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. In this example, the user can specify one or more links associated with the category. As illustrated in Figure 16B, for each link to be added to 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. As illustrated in Figure 16C, the user (category owner) can select one or more advertisements from a list of available advertisements placed into the system by various advertisers. In one embodiment, 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. At block 1709, category and link information for the category are displayed to the user. At decision block 1721, the method 1700 proceeds to block 1725 to delete the links selected by the user to be deleted. At decision block 1731, the method 1700 proceeds to block 1733 to display the link user interface if the user wants to add new links to the category. At block 1735, link specification for the new links are provided by the user. At block 1737, new link entries are created based upon the link specification provided by the user. At decision block 1741, 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. At block 1745, 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. At 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. At block 1813, 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. At block 1825, public category information for the respective category is obtained from the user. At block 1829, an ad placement function is performed to associate or link one or more advertisements to the respective category. In one embodiment, as described herein, 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. At decision block 1845, 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. At block 1853, 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. At block 1905, a list of system default categories are displayed to the user. At block 1909, 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. At block 1913, 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. At block 1925, 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. At block 1929, the user selects a place within his category hierarchy to store the new category. At block 1933, 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. At 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. At block 2017, 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. At block 2027, the method 2000 proceeds to block 2029 to allow the user to modify an existing keyword selected by the user. At block 2037, the method 2000 proceeds to block 2039 to delete an existing keyword selected by the user to be removed from the link. Figure 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. At block 2105, a search request is received from the user. For illustrative and explanation purposes, 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. At 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. At block 2113, the score for each category which contributes to obtaining the matches is determined. At block 2117, 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. In one embodiment, each contributing category is given a selection chance (probability) that is proportionate to its contributing score, hi another embodiment, 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. At 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. At block 2205, a user enters a search request via a web browser. As described above, users ofthe system 201, in one embodiment, 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. At block 2209, in one embodiment, the search request is submitted to a web server (e.g., the web server 215) within the system 201. In another embodiment, the web server 215 is omitted and the search request can be submitted directly to a server application (e.g., the server application 217). At block 2213, the search request is sent by the web server 215 to a search program in the server application 217. In one embodiment, the search program is a program that is responsible for processing the search request. At block 2217, 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. At block 2221, a set of node identifiers whose associated keywords match the specified search terms is produced. At block 2225, 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. At block 2229, 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. At block 2233, 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. In one embodiment, 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. In one embodiment, as described above, the advertising information and the corresponding advertising images can be logically and/or physically configured as one or more subsets ofthe category database 233. At block 2237, 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. In one embodiment, 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. For explanation and illustration purposes, 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). 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 search categories in which to search. 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).
With continuing reference to Figure 23, at block 2303, the search request is received. At block 2305, the keyword dictionary array 810 is searched for a semantic match on the second search term. At 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). Recall from the above description that 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. At block 2311, a node from the list of nodes containing the second search term is selected for further processing. At block
2313, the parent's hierarchy ofthe selected node is checked to determine whether the selected node is contained within the first or second search categories specified by the user. In one embodiment, as described above, 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. At decision block 2319, the process 2300 proceeds to block 2323 if the respective node is within the specified search categories. Otherwise the process 2300 proceeds to block
2361. At decision block 2323, 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. At block 2331 , the ancestor nodes ofthe selected node are checked to see if they contain a keyword matching the first search term. At decision block 2335, if an ancestor node ofthe selected node contains 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. At decision 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. hi one embodiment, 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. As the results are being compiled, a table containing all ofthe included categories is created and running a total is kept for its particular score (or "lottery tickets"). When all ofthe results are compiled, 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.
Since some categories and links may not themselves be term/keyword matches, but may in fact be an important reason that the match was found, an additional score is given to each node's category. This score is small but allows a "linking node" a chance to win the ad lottery.
The table below illustrates various types of scores (scoring criteria or scoring rules) that are used to determine the total matching score for each match (search result). These various scoring criteria and their corresponding weights are shown for explanation and illustration purposes. The teachings ofthe present invention are equally applicable to other scoring methods or systems, other scoring criteria and their corresponding weights, etc. For example, depending on the applications and/or implementations ofthe present invention, different scoring criteria and their corresponding weights may be used to determine the respective score for each search result (e.g., match). Score Score Description Type/Criteria Value/Weight
Range
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. In one embodiment, 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.
Term Spread 0-100 Represents how spread apart the matched
Figure imgf000050_0001
Figure imgf000051_0001
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. As shown in Figure 24A, the user enters "mac monitor sony" as the search teπns. With respect to the 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. In this example, 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"). hi contrast, 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
24C is considered a good or perfect match with respect to the term spread score criterion
(i.e., to be given a higher term spread score) because the matching keywords are located closely together with respect to the tree structure in which the matching keywords are found. In contrast, the match shown on the right side of Figure 24C is not as good because the matching keywords are spread out with respect to the tree structure in which these keywords are found. Accordingly, the match shown on the right side of Figure 24C will be given a lower term spread score compared to the match shown on the left side of
Figure 24C. Figure 25 shows a flow diagram of one embodiment of a scoring process 2500 for determining the total matching score for a given match. For clarity, the various tasks performed by the scoring process 2500 are illustrated and described below in a sequential manner. However, it should be understood and appreciated by one skilled in the art that these various scoring tasks can be performed in parallel or in any other order depending on the specific applications and/or implementations. The process 2500 starts at block 2501 and proceeds to block 2505. At block 2505, the sequence score for the given match is determined. At block 2509, the origin distance score for the given match is determined. At block 2513, the tenn spread score for the given match is determined. At block 2517, the semantic score for the given match is determined. At block 2521, 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). The method
2600 starts at block 2601 and proceeds to block 2605. At block 2605, the total score for each contributing category is determined or calculated as described above with respect to
Figure 25. At block 2609, each contributing category is assigned a selection probability that corresponds to its total score as determined at block 2605. At block 2613, 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. At block 2617, a ticket is selected from the pool ofthe selection tickets. At block 2621, 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. It can be appreciated that by using the method 2600 as described above, 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. However, as described and explained above, a contributing category that contributes more to obtaining the search results (i.e., has a higher score) is given a greater chance compared to a category that contributes less (i.e., having a lower score). As such, 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. At 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). In one embodiment, 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. If a node is a "keeper" and added to the result set, the mini scoring table is merged with the master scoring table. Otherwise it is discarded or ignored. With continuing reference to Figure 27, all the scores are added to generate a total number at block 2709. At block 2713, 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. At block 2717, 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. At block 2721, 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 following example is used to further illustrate the method 2700. Assuming that the master scoring table contains four different categories, the first category has a score of 100, the second category has a score of 150, the third category has a score of 200, and the fourth category has a score of 350. The total score number for the four categories are therefore 100+150+200+350 = 800. If the random number is 44, then the first category is selected because the corresponding running total as the master scoring table is being traversed for this category is 100, which contains the number 44. If the random number is 127, then the second category is selected because the corresponding running total for this category as the master scoring table is being traversed is 100+350 = 450, which contains the random number 127. Similarly, if the random number is 763, then the fourth number is selected because the nrrming total for this category as the master scoring table is being traversed is 100+350+200+150 = 800, which contains the random number 763.
The invention has been described in conjunction with the prefeπed embodiment. It is evident that numerous alternatives, modifications, variations and uses will be apparent to those skilled in the art in light ofthe foregoing description.

Claims

CLAIMSWhat is claimed is:
1. A directory of information comprising: a first category of information comprising at least one data link pointing to at least one data source, the at least one data link having at least one keyword indicative of at least one informational topic included in the at least one data source.
2. The directory of claim 1 wherein the first category further comprises a category identifier.
3. The directory of claim 1 wherein the first category further comprises a category name.
4. The directory of claim 1 wherein the first category further comprises a category description.
5. The directory of claim 1 wherein the first category further comprises one or more keywords indicating one or more informational topics contained in the first category.
6. The directory of claim 1 wherein the first category further comprises an owner identifier identifying an owner ofthe first category.
7. The directory of claim 1 wherein the at least one data link further comprises a link identifier.
8. The directory of claim 1 wherein the at least one data link further comprises a link name.
9. The directory of claim 1 wherein the at least one data link further comprises a link description.
10. The directory of claim 1 wherein the at least one data source comprises a combination of data being selected from the group consisting of text data, graphics data, video data, and audio data.
11. The directory of claim 1 wherein the at least one data source is referenced by an address conesponding to a location where the data source resides.
12. The directory of claim 1 wherein the address conesponding to the location where the data source resides is represented by a Uniform Resource Locator (URL).
13. The directory of claim 1 wherein the at least one data source represents another category of information.
14. The directory of claim 1 wherein the first category further comprises: one or more additional data links from another category whose keywords match one or more search terms specified by the first category's owner.
15. The directory of claim 1 wherein the at least one data link is dynamically obtained from another category based upon a set of criteria specified by the first category's owner.
16. The directory of claim 1 wherein the set of criteria comprises an identifier of said another category and one or more keywords that are used to identify the at least one data link in said another category.
17. The directory of claim 1 wherein the first category is allowed to include all or part of another category.
18. The directory of claim 1 wherein all or part ofthe first category is allowed to be included in another category.
19. A category database comprising: at least one data structure containing a plurality of entries each conesponding to a category specification, said category specification comprising: a category identifier; and at least one data link pointing to at least one data source, the at least one data link having at least one keyword indicative of at least one informational topic included in the at least one data source.
20. The category database of claim 19 wherein the at least one data structure comprises a table.
21. The category database of claim 19 wherein said category specification further comprising: a catshare specification comprising one or more search terms and one or more categories in which to search for data links whose keywords match the one or more specified search terms.
22. The category database of claim 21 wherein the catshare specification is used to dynamically include in the conesponding category one or more data links from one or more other categories
23. The category database of claim 21 wherein said category specification further comprising: one or more advertising placement specification corresponding to one or more advertisements to be presented in connection with the respective category's usage.
24. A database comprising: a plurality of data structures of a first type each representing a node, said node having one or more keywords indicative of one or more informational topics contained in one or more data sources referenced by said node; a plurality of data structures of a second type each representing a keyword and containing a list of nodes that have the respective keyword; and a data structure of a third type containing a list of entries, each entry containing a keyword conesponding to a data structure ofthe second type.
25. The database of claim 24 wherein said entry in said data structure of the third type comprises a pointer to a conesponding data structure ofthe second type.
26. The database of claim 25 wherein said conesponding data structure ofthe second type contains a pointer to the conesponding entry in the data structure ofthe third type.
27. The database of claim 24 wherein said data structure ofthe second type comprises a pointer to a conesponding node having the respective keyword represented by said data structure ofthe second type.
28. The database of claim 27 wherein said conesponding node contains a pointer to said data structure ofthe second type.
29. The database of claim 24 wherein said data structures of first, second, and third types are used to obtain a list of nodes containing keywords that match one or more search terms specified by a user.
30. The database of claim 24 further comprising a list of entries each including: a first pointer pointing to a first node; a second pointer pointing to a second node; and one or more search terms, wherein said one or more search terms are used to include in a first category represented by the first node one or more links in a second category represented by the second node, said one or more links having keywords that match said one or more search terms.
31. A method of facilitating information creation, maintenance, and distribution over a computer network, the method comprising: maintaining a first category of information based upon a specification supplied by a first category owner; providing a first advertiser with an opportunity to advertise in connection with the first category; and providing the first category owner with an opportunity to be compensated based upon advertising activities in connection with the first category.
32. The method of claim 31 wherein the first category's specification comprises a category identifier.
33. The method of claim 31 wherein the first category' s specification comprises a category name.
34. The method of claim 31 wherein the first category's specification comprises a category description.
35. The method of claim 31 wherein the first category's specification includes an owner identifier ofthe first category owner.
36. The method of claim 31 wherein the first category's specification comprises at least one data link.
37. The method of claim 36 wherein the at least one data link comprises a link identifier.
38. The method of claim 36 wherein the at least one data link comprises a link name.
39. The method of claim 36 wherein the at least one data link comprises a link description.
40. The method of claim 36 wherein the at least one data link contains a pointer pointing to at least one data source.
41. The method of claim 36 wherein the at least one data source comprises text data, graphics data, video data, or audio data.
42. The method of claim 40 wherein the at least one data source comprises a combination of data being selected from the group consisting of text data, graphics data, video data, and audio data.
43. The method of claim 40 wherein the at least one data source is referenced by an address conesponding to a location in the computer network where the data source resides.
44. The method of claim 43 wherein the address conesponding to the location in the computer network where the data source resides is represented by a Uniform Resource Locator (URL).
45. The method of claim 43 wherein the computer network is selected from the group consisting of a local area network, a wide area network, and the Internet.
46. The method of claim 40 wherein the at least one data source represents another category of information.
47. The method of claim 40 wherein the at least one data link comprises at least one keyword being indicative of at least one informational topic included in the at least one data source.
48. The method of claim 31 wherein maintaining the first category of information comprises: creating the first category of information based upon the specification supplied by the first category owner; and updating the first category of information in response to a change request submitted by the first category owner. I
49. The method of claim 48 wherein creating the first category comprises: obtaining the first category's specification from the first category owner using a first user interface; storing the first category's specification in a first category data structure; and storing the first category data structure in a first database.
50. The method of claim 49 wherein the first interface comprises a graphical user interface (GUI).
51. The method of claim 49 wherein the first database is a relational database.
52. The method of claim 51 wherein the first category data structure comprises a table.
53. The method of claim 49 wherein obtaining the first category's specification comprises: displaying the first user interface in response to a selection made by the first category owner; and capturing specification data entered by the first category owner and mapping the specification data entered onto their conesponding fields in the first data structure.
54. The method of claim 49 further comprising: including as part ofthe first category a first structure specified by the first category owner, the first structure representing an active connection to another category as a set of data links obtained by perfoπning a search in said another category based upon one or more search terms supplied by the first category owner.
55. The method of claim 54 wherein performing a search in said another category comprises: traversing a search tree representing said another category; and identifying data links whose keywords match the one or more search terms supplied by the first category owner according to a keyword matching scheme.
56. The method of claim 49 further comprising: making the first category a public category based upon a request by the first category owner.
57. The method of claim 56 wherein the first category, after being made public, is accessible by all users.
58. The method of claim 56 wherein the first category, after being made public, is accessible by a specified subset of all users.
59. The method of claim 56 further comprising: including the first category as a data link in an alternate category hierarchy based upon a request by the first category owner.
60. The method of claim 59 wherein including the first category comprises: allowing the first category owner to browse an alternate category using a user interface; and connecting the first category as a data link to either the alternate category or a subcategory within the alternate category based upon the first category's request.
61. The method of claim 56 further comprising: making the first category a subcategory of another category in response to a request made by an owner of said another category.
62. The method of claim 31 wherein maintaining the first category comprises: maintaining an advertisement rate sheet associated with the first category based upon data supplied by the first category owner.
63. The method of claim 62 wherein the advertisement rate sheet comprises compensation criteria for advertising in connection with the first category.
64. The method of claim 63 wherein the compensation criteria for advertising in connection with the first category comprises information conesponding to at least one form of compensation that is acceptable to the first category owner.
65. The method of claim 64 wherein the at least one form of compensation is tangible.
66. The method of claim 64 wherein the at least one form of compensation is intangible.
67. The method of claim 63 wherein the compensation criteria comprise information conesponding to quantities of compensation that are acceptable to the first category owner.
68. The method of claim 63 wherein the compensation criteria comprise information indicating types of advertising activities in connection with the first category based upon which compensation is attributed to the first category owner.
69. The method of claim 68 wherein types of advertising activities include displaying ofthe first advertisement, selecting ofthe first advertisement, and transactions originated from advertising in connection with the first category.
70. The method of claim 62 wherein the advertisement rate sheet contains information relating to costs for advertising in connection with the first category.
71. The method of claim 70 wherein the advertisement rate sheet contains advertising costs associated with displaying of an advertisement in connection with the first category.
72. The method of claim 70 wherein the advertisement rate sheet contains advertising costs associated with selecting of an advertisement in connection with the first category.
73. The method of claim 70 wherein the advertisement rate sheet contains advertising costs associated with transacting originated from an advertisement in connection with the first category.
74. The method of claim 62 wherein the advertisement rate sheet is stored in a data structure associated with the first category.
75. The method of claim 31 wherein providing the first advertiser with the opportunity to advertise in connection with the first category comprises: allowing the first advertiser to view a first advertisement rate sheet associated with the first category, the first advertisement rate sheet containing information relating to costs for advertising in connection with the first category; facilitating an advertising transaction between the first advertiser and the first category owner for placement of a first advertisement for display in connection with the first category; linking the first advertisement to the first category for display in connection with the first category's usage based upon an agreement between the first advertiser and the first category owner.
76. The method of claim 75 wherein allowing the first advertiser to view the first advertisement rate sheet comprises: displaying the advertisement rate sheet associated with the first category in response to a request made by the first advertiser to advertise in connection with the first category.
77. The method of claim 75 wherein facilitating the advertising transaction between the first advertiser and the first category owner comprises: notifying the first category owner ofthe first advertiser's offer to place the first advertisement for advertising in connection with the first category; and if the first category owner accepts the offer, committing the ad placement and notifying the first advertiser ofthe first category owner's acceptance.
78. The method of claim 77 further comprising: if the first category owner rejects the offer, notifying the first advertiser ofthe first category owner's rejection; and if the first category owner makes a counter offer to the first advertiser, notifying the first advertiser ofthe first category owner's counter offer.
79. The method of claim 77 further comprising: determining whether the first advertiser is a registered ad buyer; and allowing the first advertiser to register as a registered ad buyer using a user interface.
80. The method of claim 77 further comprising: determining whether the first advertiser has an ad to select; and if the first advertiser does not have an ad to select, providing a user interface to allow the first advertise to create an ad.
81. The method of claim 77 wherein committing the ad placement comprises : creating an advertisement data structure and linking the advertisement data structure to the first category.
82. The method of claim 31 wherein providing the first advertiser with the opportunity to advertise in connection with the first category comprises: allowing the first advertiser to place one or more advertisements for display in connection with a category's usage; and allowing the first category owner to select from a list of available advertisements one or more specific advertisements to be displayed in connection with the first category's usage.
83. The method of claim 31 wherein providing the first category owner with the opportunity to be compensated based upon advertising activities in connection with the first category' usage comprises: compensating the first category owner based upon the quantity and types of advertising activities occurred in connection with the first category's usage.
84. The method of claim 83 wherein compensating the first category owner comprises: keeping track ofthe quantity and types of advertising activities occuπed in connection with the first category's usage.
85. The method of claim 84 wherein keeping track of advertising activities comprises: keeping track ofthe displaying ofthe first advertisement in connection with the first category's usage.
86. The method of claim 85 wherein keeping track ofthe displaying ofthe first advertisement comprises: in response to a selection ofthe first category, displaying the first advertisement and recording the displaying ofthe first advertisement.
87. The method of claim 86 wherein the selection ofthe first category is a user's selection.
88. The method of claim 86 wherein the selection ofthe first category is a system's selection.
89. The method of claim 88 wherein the selection ofthe first category is a system's selection based upon a selection scheme in response to a search requested by a user.
90. The method of claim 86 wherein displaying the first advertisement comprises: displaying a first image specified by the first advertiser as the image to be displayed for the first advertisement.
91. The method of claim 90 further comprising: linking the first image with a first URL specified by the first advertiser.
92. The method of claim 86 wherein recording the displaying of the first advertisement comprises: recording a display entry for the first advertisement in an event database.
93. The method of claim 92 wherein the display entry for the first advertisement comprises an ad identifier associated with the first advertisement.
94. The method of claim 92 wherein the display entry for the first advertisement further comprises a user ID associated with the user to whom the first advertisement is displayed.
95. The method of claim 92 wherein the display entry for the first advertisement further comprises a time identifier conesponding to the time at which the first advertisement is displayed to the first user.
96. The method of claim 84 wherein keeping track of advertising activities further comprising: keeping track ofthe selecting ofthe first advertisement in connection with the first category's usage.
97. The method of claim 96 wherein keeping track ofthe selecting ofthe first advertisement comprises: in response to the user's selection ofthe first advertisement being displayed, recording the selecting ofthe first advertisement.
98. The method of claim 97 wherein recording the selecting comprises: recording a selection entry for the first advertisement in the event database.
99. The method of claim 98 wherein the selection entry for the first advertisement comprises an ad ID associated with the first advertisement.
100. The method of claim 99 wherein the selection entry comprises an action ID indicating an occurrence ofthe selection ofthe first advertisement.
101. The method of claim 99 wherein the selection entry comprises the user J-D of the user who selects the first advertisement.
102. The method of claim 99 wherein the selection entry for the first advertisement further comprises a time identifier conesponding to the time at which the first advertisement is selected by the first user.
103. The method of claim 98 further comprising: connecting the first user to a location specified by the URL associated with the first advertisement.
104. The method of claim 1 wherein providing the first category owner with the opportunity to be compensated based upon advertising activities in connection with the first category' usage comprises: compensating the first category owner based upon a number of users that performs a first function with respect to the first advertisement in connection with the first category's usage.
105. The method of claim 104 wherein the first function comprises viewing the first advertisement in connection with the first category's usage.
106. The method of claim 104 wherein the first function comprises selecting the first advertisement in connection with the first category's usage.
107. The method of claim 104 wherein the first function comprises conducting a transaction based upon an exposure to the first advertisement in connection with the first category's usage.
108. A method of developing a directory of information containing a plurality of categories maintained by various information organizers, the directory being accessible by various users connected to a system via a computer network, the method comprising: allowing a first information organizer to maintain a first category of information in the directory; designating a first advertisement to be presented in connection with the first category's usage; and compensating the first information organizer based upon the quantities and types of activities involving the first advertisement.
109. The method of claim 108 wherein allowing the first information organizer to maintain the first category comprises: providing the first information organizer with one or more interfaces to maintain the first category of information.
110. The method of claim 108 wherein the first category of information comprises at least one data link pointing to at least one data source.
111. The method of claim 110 wherein the at least one data link includes at least one associated keyword being indicative of at least one informational topic in the at least one data source.
112. The method of claim 110 wherein the at least one data source is represented by an address corresponding to a location in the computer network where the data source resides.
113. The method of claim 110 wherein the at least one data source represents another category of information in the directory.
114. The method of claim 108 further comprising: allowing all or part ofthe first category to be included as part of another category in the directory.
115. The method of claim 108 further comprising: allowing all of part of another category in the directory to be included as part of the first category.
116. The method of claim 108 further comprising: allowing the first category to be changed dynamically.
117. The method of claim 116 wherein allowing the first category to changed dynamically comprises: updating data links ofthe first category dynamically based upon criteria specified by the first information organizer.
118. The method of claim 117 wherein the criteria include one or more search teπns and one or more categories in which to search.
119. The method of claim 118 wherein updating comprises: identifying data links in said one or more categories whose associated keywords match the one or more search teπns specified by the first information organizer; and including as part ofthe first category those data links in said one or more categories whose associated keywords match the one or more search terms specified.
120. The method of claim 108 wherein designating comprises: allowing the first information organizer to select the first advertisement from a list of advertisements submitted by one or more advertisers.
121. The method of claim 108 wherein designating comprises : allowing a first advertiser to place the first advertisement for display in connection with the first category.
122. The method of claim 108 wherein compensating comprises: in response to a selection ofthe first category, displaying the first advertisement; and keeping track ofthe number of times the first advertisement is displayed.
123. The method of claim 122 wherein the selection is a user's selection.
124. The method of claim 122 wherein the selection is a system's selection based upon a selection scheme.
125. The method of claim 122 further comprising: keeping track ofthe number of times the first advertisement is selected.
126. The method of claim 125 further comprising: keeping track of transactions originated from the first advertisement.
127. A system comprising: a first server to maintain a first category of infoπnation based upon category specification data provided by a first category owner; a first database to store the first category of information; and a second database to store information relating to activities originated from the first category's usage.
128. The system of claim 127 wherein the first server comprises: logic to create and update the first category in the first database based upon category specification data provided by the first category owner; logic to update the second database with information relating to activities originated from the first category's usage; and logic to compensate the first category owner based upon the activities originated from the first category's usage.
129. The system of claim 128 further comprising: logic to initiate an advertising activity in response to a selection ofthe first category; and logic to update the second database to reflect the occurrence ofthe advertising activity.
130. The system of claim 129 wherein the logic to initiate the advertising activity comprises: logic to present a first advertisement associated with the first category in response to the selection ofthe first category.
131. The system of claim 130 wherein the selection of the first category is made by a user.
132. The system of claim 130 wherein the selection ofthe first category is made by the system in response to a search's request submitted by a user.
133. The system of claim 130 further comprising: in response to a selection ofthe first advertisement, logic to update the second database to reflect the occunence ofthe selection ofthe first advertisement.
134. The system of claim 133 further comprising: in response to a transactional activity originated from the first advertisement, logic to update the second database to reflect the occurrence ofthe transactional activity.
135. The system of claim 128 wherein logic to compensate the first category owner comprises: logic to calculate an amount of compensation based upon the quantities and types of activities originated from the first category's usage.
136. A method of developing a directory of information accessible by users via a computer network, the directory comprising a plurality of categories, the method comprising: allowing a first category owner to create and maintain a first category in the directory, the first category comprising a first data link; and allowing the first category owner to include in the first category one or more data links from another category in the directory.
137. The method of claim 136 wherein the first data link points to a first data source.
138. The method of claim 137 wherein the first data link includes at least one keyword being indicative of at least one informational topic in the first data source.
139. The method of claim 137 wherein the first data source is represented by an address corresponding to a location where the first data source resides.
140. The method of claim 137 wherein the first data source represents another category of information in the directory.
141. The method of claim 136 further comprising: allowing the first category to be included as part of said another category in the directory.
142. The method of claim 136 further comprising: allowing the first data link to be included as part of said another category in the directory.
143. The method of claim 136 wherein allowing the first category owner to include comprises: including in the first category said one or more data links from said another category based upon a set of criteria specified by the first category owner.
144. The method of claim 143 wherein the set of criteria includes one or more search terms.
145. The method of claim 143 wherein including comprises : identifying data links in said another category whose keywords match said one or more search terms specified by the first category owner.
146. The method of claim 136 wherein allowing the first category owner to include comprises: allowing the first category owner to change the keywords associated with the one or more data links from said another category.
147. A method of allowing a user to specify multiple categories in which to search for information that match the user's search terms, each category comprising one or more data links, each data link pointing to a data source, said data source being either a category or an identifier of a document, the method comprising: in response to a first search category being selected, displaying a first list of data links ofthe first search category in a first display area, each data link in the first link pointing to a conesponding category; in response to a data link in the first list being selected, determining whether a data link of a second search category pointed to by the data link selected represents another category or an identifier of a document; if said data link of said second search category represents another category, displaying said data link in a second list of data links in a second display area, each data link in the second list pointing to a conesponding category; and if said data link of said second search category represents an identifier of a document, displaying said identifier in a third display area.
148. The method of claim 147 further comprising: in response to a data link in the second list being selected, determining whether a data link of a third search category pointed to by the data link selected represents another category or an identifier of a document; if said data link of said third search category represents said another category, displaying said data link in a third list of data links in a second display area, each data link in the third list pointing to a corresponding category; and if said data link of said third search category represents an identifier of a document, displaying said identifier in said third display area.
149. In a system containing a plurality of categories of information, each category comprising one or more data links pointing to at least one data source and having at least one keyword being indicative of at least one informational topic contained in said at least one data source, a method of processing a search request submitted by a user, said method comprising: receiving said search request from said user, said search request including at least one search term and at least one category; performing a search function to identify one or more data links contained in said at least one category, said one or more data links having at least one keyword that matches said search term in said search request; and displaying said one or more data links to said user.
150. The method of claim 149 further comprising: determining a score for each category that is used to identify said one or more data links; and selecting one category from a list of categories that are used to identify said one or more data links; and displaying one or more advertisements associated with said selected category to said user.
151. The method of claim 150 wherein the score for each category is determined based upon a score of each matching data link that belongs to the respective category.
152. The method of claim 151 wherein the score of each matching data link is determined based upon at least one factor selected from the group consisting of a first factor indicating how closely the matching data link's keywords conespond to an order in which the search terms are entered by said user, a second factor indicating a distance between the top of a search tree representing said at least one category and a location in said search tree where said matching data link is located, a third factor indicating a hierarchical closeness between the matching data link and other data links that are used to locate the matching data link, a fourth factor indicating how closely is a semantic match between the search terms entered and the keywords in the search tree that are used to locate the matching data link, and a fifth factor indicating a number of keywords contained in each data link that is used to locate the matching data link.
153. The method of claim 149 wherein searching comprises: locating an entry in a list of keywords, said entry containing a keyword matching the search term in the search request; using said entry in said list to identify a list of nodes that contain a keyword matching the search term in the search request, each node representing either a category or a data link in said system; and selecting from said list of nodes those nodes that belong to said at least one category specified in the search request.
154. The method of claim 149 wherein said search request includes a first search tem and a second search tenn, said second search term being ordered after said first search term, and wherein performing said search function comprises: locating an entry in a list of keywords, said entry containing a keyword matching said second search term; using said entry in said list of obtain a list of nodes that contain a keyword matching the second search term in the search request, each node representing either a category or a data link in said system; selecting from said list of nodes those nodes that belong to said at least one category specified in the search request; and for each node selected, adding the respective node to a match list if the respective node contains a keyword matching the first search term.
155. The method of claim 154 further comprising: determining whether any ancestor node ofthe respective node contains a keyword matching the first search term; and if any ancestor node ofthe respective node contains a keyword matching the first search term, adding the respective node to said match list.
156. The method of claim 150 wherein selecting comprises: giving each contributing category a chance of being selected conesponding to its respective score; and randomly selecting a contributing category.
157. A method of promoting information building and sharing by compensating information providers for usage of their work, said method comprising: performing a search to locate one or more sources of information in one or more categories that match search specification submitted by a first user; if a first category is used in locating said one or more sources of information, determining an amount of contributions made by said first category in locating said one or more sources of information; and providing an owner of said first category with an opportunity to be compensated based upon said amount of contributions made by said first category.
158. A method comprising: allowing a first category owner to maintain a first category of information; allowing a first advertisement to be advertised in connection with the first category's usage; allowing a first user to use the first category in locating one or more information sources; and providing said first category owner with an opportunity to be compensated based upon usage of said first category that results in advertising activities concerning said first advertisement.
159. The method of claim 158 wherein allowing said first user comprises: allowing said first user to select said first category.
160. The method of claim 158 wherein allowing said first user comprises: allowing said first user to perform a search in one or more categories; and determining whether said first category is included in the search performed.
PCT/US2001/011465 2000-04-04 2001-04-04 Method, apparatus, and system for creating and maintaining a shared hierarchical directory system WO2001075656A1 (en)

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 (en) 2001-10-11

Family

ID=24162839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/011465 WO2001075656A1 (en) 2000-04-04 2001-04-04 Method, apparatus, and system for creating and maintaining a shared hierarchical directory system

Country Status (2)

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

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
Rowley Product search in e‐shopping: a review and research propositions
US7822733B2 (en) Content/information search system
US8370362B2 (en) Database access system
US8751489B2 (en) Predictive selection of item attributes likely to be useful in refining a search
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
US6868525B1 (en) Computer graphic display visualization system and method
US6826572B2 (en) System and method allowing advertisers to manage search listings in a pay for placement search system using grouping
US6704727B1 (en) Method and system for generating a set of search terms
US7225182B2 (en) Recommending search terms using collaborative filtering and web spidering
US8260786B2 (en) Method and apparatus for categorizing and presenting documents of a distributed database
US20080222105A1 (en) Entity recommendation system using restricted information tagged to selected entities
US20110252015A1 (en) Qualitative Search Engine Based On Factors Of Consumer Trust Specification
US20040068460A1 (en) Method and system for achieving an ordinal position in a list of search results returned by a bid-for-position search engine
US20050065917A1 (en) Search engine for selecting targeted messages
US8260777B1 (en) Server system and methods for matching listings to web pages and users
WO2001044992A9 (en) Context matching system and method
GB2389682A (en) System for categorizing documents in a distributed database using a transactional score
JP2002539559A (en) Synergistic Internet bookmarks linking Internet search and hotlinks
US7412424B1 (en) Third party certification of content in electronic commerce transactions
Liu et al. Deployment of personalized e-catalogues: An agent-based framework integrated with XML metadata and user models
WO2001075681A9 (en) Method, apparatus, and system for creating and maintaining a shared hierarchical directory system
WO2001075656A1 (en) Method, apparatus, and system for creating and maintaining a shared hierarchical directory system

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