US20130091116A1 - Selecting and presenting search results based on distinct taxonomies - Google Patents
Selecting and presenting search results based on distinct taxonomies Download PDFInfo
- Publication number
- US20130091116A1 US20130091116A1 US13/649,087 US201213649087A US2013091116A1 US 20130091116 A1 US20130091116 A1 US 20130091116A1 US 201213649087 A US201213649087 A US 201213649087A US 2013091116 A1 US2013091116 A1 US 2013091116A1
- Authority
- US
- United States
- Prior art keywords
- taxonomy
- search
- search query
- search results
- generating
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G06F17/30864—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
Definitions
- the present invention relates to computer systems, and more particularly to generating search engine results pages that are based, at least in part, on a taxonomy associated with an environment from which a search query originated.
- a search engine returns search results that match a search query submitted by a user.
- the search engine orders the search results.
- the order usually takes the form of a “ranking”, where the document with the highest ranking is the document considered most likely to satisfy the interest reflected in the search criteria specified by the user.
- the search engine sends to the user that issued the search a “search engine results page” that presents information about the matching documents in the display order.
- the number of documents that match a search is so large that the user is presented with a search engine results page that only displays information about the top N ranking documents, where N may be significantly smaller than the total number of matching documents.
- the search engine results page typically includes a control that allows the user to retrieve information about the “next N” matching documents, in case the first N matching documents do not entirely satisfy the user's interest.
- search results are typically generic in that the same search results are sent to all users.
- the search results that have the highest ranking may not correlate well with the search results in which a particular user is interested.
- a user might have to wade through many pages of search results to locate results of interest.
- the search results in which a particular user is interested might have such a low ranking that the user does not find them at all.
- taxonomy-based searching An alternative to this technique is “taxonomy-based” searching. Briefly, a taxonomy describes categories and relationships between categories. Typically, each document (e.g., search result) is placed into a taxonomy category, which can improve the search result quality.
- Taxonomy based searching is based on documents from a local database. Taxonomies based on local databases are sometimes specific to particular subject matter. For example, in a medical taxonomy the categories and relationships between categories reflect medical subject matter. As a particular example, a pharmaceutical company might develop a taxonomy for documents in its own databases. However, because the taxonomy only categorizes documents from the local databases, more general search results from the World Wide Web are not included.
- Another technique might allow for categorizing search results from the World Wide Web into a taxonomy.
- this technique typically imposes a single general taxonomy upon all users.
- a search engine might organize search results into a single general taxonomy that applies to all search queries.
- user's specific needs such as medical related searches or stock market related searches do not benefit from the general taxonomy.
- FIG. 1 is an example search engine results page based on an environment taxonomy, in accordance with an embodiment of the present invention.
- FIG. 2 illustrates a system for environment taxonomies, in accordance with an embodiment of the present invention.
- FIG. 3 is a flowchart of generating a search engine results page using environment taxonomies, in accordance with an embodiment of the present invention.
- FIG. 4 is a flowchart of generating a search engine results page using environment taxonomies, in accordance with another embodiment of the present invention.
- FIG. 5 is a block diagram that illustrates a computer system upon which embodiments of the invention may be implemented.
- SERP search engine results page
- a search engine stores different taxonomies that each specifies categories and relationships between the categories. For example, a medical-based taxonomy might have categories related to medical subject matter, whereas a financial-based taxonomy might have categories related to financial subject matter.
- the taxonomies might be specific to a particular environment. As an example, an environment might be an enterprise such as a corporation, but that is not required.
- the different taxonomies may be provided to the search engine by administrators for various environments. An environment may have multiple taxonomies associated therewith. As an example, an administrator for a particular corporation might provide the search engine with a medical taxonomy and a financial taxonomy that were each developed for the particular corporation.
- the search engine determines which taxonomy, if any, it should use to generate a SERP.
- the search engine bases this determination upon information provided to it in the request, in one embodiment.
- the request could specify the environment or other information, such as a role of the user.
- a medical researcher and a financial analyst for a particular corporation could receive SERPs that were generated with appropriate taxonomies for each of them.
- the search engine includes at least a portion of the taxonomy in the SERP.
- the SERP includes organized presentation of categories that match the search results.
- the client that originated the search query displays a SERP with an arrangement of categories from taxonomy listed. If the user at the client selects one of the categories, the search engine responds by retuning search results that match that category.
- a proxy is interposed between the client and the search engine, such that the client sends the search query to the proxy, which the proxy forwards to the search engine. Rather than the search engine selecting the taxonomy, the search engine returns search results matching the search query to the proxy.
- the proxy determines an appropriate taxonomy to apply, based on information such as the search query and the user who submitted the search query.
- the proxy then generates a SERP based, at least in part, on the selected taxonomy. Then, the proxy provides the SERP to the client.
- FIG. 1 is a portion of an example SERP 100 based on an environment taxonomy, in accordance with an embodiment of the present invention.
- the example SERP 100 contains at least a portion of environment taxonomy 110 , which contains categories and sub categories. Anytime the term category or taxonomy category is used herein, the term “category” will be understood to encompass “sub category” or the like.
- the portion of the environment taxonomy 110 that is rendered in the SERP 100 may be based on what search results 104 match the search query.
- the search engine 109 determines which categories of the taxonomy 110 have at least one matching search result and only returns those categories in the taxonomy 110 .
- the taxonomy 110 allows the user to “drill down” to desired search results.
- the user has selected sub category A 1 .
- search results 104 pertaining to category Al are presented in the SERP 100 .
- the term “environment” means any set of one or more electronic devices under common administration.
- the electronic devices may or may not be use the same hardware or run the same software.
- Examples of electronic devices include, but are not limited to, a web-enabled cellular telephone, a web-enabled personal digital assistant, a server running a particular operating system (e.g., Linux®, Solaris®), a personal computer running the Windows® operating system, etc.
- the environment may have a device that controls access to the environment.
- the environment has a proxy with a firewall to perform the access control.
- An administrator for the environment may control what software is loaded on the electronic devices.
- An example of an environment is a home, where the administrator may be any resident thereof, and the end users are the family members.
- Another example of an environment is a corporation, where the administrator is the information technology (IT) manager, and the end users are employees of the company.
- Still another example of an environment is a business, such as an Internet café, where the administrator may be the proprietor, and the end users are customers.
- a taxonomy contains categories and relationships between the categories. Many different techniques may be used to relate categories to each other.
- An environment taxonomy is a taxonomy that is developed for a particular environment. The following examples of how a taxonomy might be organized are provided, but relationships between categories are not limited to these examples. The relationship may be hierarchical.
- the taxonomy could be a tree structure with each leaf representing a category. However, the structure is not required to be a tree.
- a child category could be required to have only one parent category, whereas in another taxonomy, a child category could be permitted to have multiple parent categories.
- the child category “cellular telephone” might have parent categories “electronic device” and “communication device”.
- the categories of a taxonomy might be organized into groups, without an explicit relationship between the groups.
- the taxonomy, or portions thereof, might be an ordered list of categories.
- each category may have a rule used to determine what documents match that category.
- a rule might be that documents pertaining to “flu vaccination” belong in that category.
- a category can contain a set of documents without a unique rule for assigning documents to the category. If desired, additional documents can be assigned to categories by matching new documents to documents that are already categorized. For example, a comparison of keywords can be performed. Thus, a particular category does not need to have its own unique rule to have further documents assigned to it.
- the document corpus for a taxonomy can be the entire World Wide Web, any domain of the World Wide Web, or a corpus other than the World Wide Web. If the document has a Uniform Resource Locators (URLs) then that URL can be associated with the category. However, the document corpus does not have to be the World Wide Web.
- URLs Uniform Resource Locators
- FIG. 2 illustrates a system 200 for providing SERPs 100 based on environment taxonomies, in accordance with an embodiment of the present invention.
- Each environment 201 has one or more clients 202 communicatively coupled to the server 208 via network 204 .
- An environment 201 may have a proxy 206 , which acts as an intermediary between the client 202 and server 208 .
- Network 204 may be the Internet, although this is not required.
- the server 208 has search engine 209 that is able to perform a search of the World Wide Web, in one embodiment.
- the server 208 determines what taxonomy should be used to generate a SERP 100 .
- the server 208 makes the determination based on information such as the environment 201 from which the request originated, the user who submitted the search query, the search query itself, or other information.
- the proxy 206 may pass information to the server 208 to assist the server 208 in this determination.
- the server 208 uses either the environment taxonomy table 210 or the environment taxonomy rules 230 ( 1 )- 230 (n) to generate a SERP 100 that is based on the selected taxonomy.
- the environment taxonomy table 210 contains, for a number of distinct taxonomies, associations between documents (e.g., web pages) and taxonomy categories.
- the organization of the environment taxonomy table 210 is as follows, in one embodiment.
- the table 210 has a column having a document identifier (e.g., a unique URL) in each row entry.
- Each distinct environment taxonomy has its own column.
- the row entries for each specific environment taxonomy identify to which taxonomy category the URL in that row belongs. For a given environment taxonomy, not all URLs will be assigned a category. Therefore, some row entries for a given environment taxonomy will contain a null entry.
- the server 208 receives a mapping of URLs to categories, in one embodiment. For example, an administrator of an environment 201 provides this mapping to the server 208 .
- a given set of taxonomy rules (e.g., 130 ( 1 )) comprises rules to associate documents with categories.
- the server 208 uses a particular set of environment taxonomy rules (e.g., 230 ( 1 )) to associate documents (e.g., search result items) with categories for a particular environment taxonomy, in one embodiment.
- the server 208 may apply the rules 130 to search results “on-the-fly”. Associations between documents and categories that are learned “on-the-fly” may be stored in an appropriate column of the environment taxonomy table 210 for later reference. However, the server 208 may apply the rules 130 to documents other than when search results are being processed.
- the server 208 may still return these “un-categorized” search result items in a SERP 100 .
- a proxy 206 may have access to environment specific taxonomies 224 , although this is not required.
- proxy 206 ( 1 ) has access to environment specific taxonomies 224 .
- proxy 206 ( 1 ) is able to generate a SERP 100 .
- proxy 206 ( 1 ) receives a SERP 100 from search engine 209 and adds a list of taxonomy categories to the SERP 100 .
- an environment 201 does not need to share its environment specific taxonomy 224 with the server 208 .
- FIG. 3 is a flowchart illustrating a process 300 of server-side environment taxonomies, in accordance with an embodiment of the present invention.
- FIG. 3 will be described with reference to the system 200 of FIG. 2 and the example web page 100 of FIG. 1 .
- the process 300 of FIG. 3 is neither limited to system 200 , nor to example web page 100 .
- the server 208 stores distinct taxonomies.
- the server 208 receives taxonomies from the different proxies 206 , in one embodiment.
- the server 208 receives and stores a set of taxonomy rules 230 that can be used to associate search result items into taxonomy categories.
- the server 208 receives and stores document identifiers (e.g., a URL) that are associated with taxonomy categories.
- the server 208 receives a request containing a search query that originated from a user associated with a particular environment 201 .
- the request may be forwarded to the server 208 from a proxy 206 in the particular environment 201 .
- the proxy 206 may provide information that can be used to select a taxonomy to apply to a SERP 100 .
- the proxy 206 may provide an environment identifier to select the taxonomy.
- the proxy 206 provides a user role (e.g., engineer, manager, financial analyst, etc.).
- step 305 the server 208 passes the search query to the search engine 209 , which determines matching search results for the search query.
- the server 208 selects a taxonomy based, at least in part, on one or more of: the particular environment 201 , the user who submitted the search query, and the search query itself.
- the server 208 might select a different taxonomy for a user whose role is “engineer” than a user whose role is “finance”.
- the server 208 might select a medical taxonomy that was specifically developed to meet the needs of a pharmaceutical company in response to determining that a medical researcher for that pharmaceutical company submitted the search query.
- the server 208 may use other factors to select the taxonomy, such as terms in the search query.
- the server 208 generates a SERP 100 based, at least in part, on the selected taxonomy.
- the server 208 includes at least a portion of the selected taxonomy in the SERP 100 , in one embodiment. For example, if there is a least one search result item that matches a particular category, then that category is a candidate for inclusion in the SERP 100 . However, due to the large number of categories this may cover, only a portion of these candidate categories need be included in the SERP 100 . Because only a fraction of the search results are returned in a single SERP, many of the categories will not have a corresponding search result item in the SERP 100 .
- the SERP 100 are provided to the proxy 206 , which passes them on to the client 202 . It is possible, though not required, for the proxy 206 to modify the SERP 100 prior to forwarding to the client 202 . An embodiment in which the proxy 206 performs such a modification is described below.
- a user at the client 202 may select one of the categories in the taxonomy displayed in the SERP 100 , and submit this to the server 208 .
- step 310 server 208 receives the category selection.
- step 312 the search engine 209 generates a SERP 100 based, at least in part, on the selected category. For example, the search engine 209 determines a set of search result items that match the selected category, wherein those search result items are provided to the client 202 , in step 309 .
- Process 300 may continue by repeating steps 309 - 312 , as long as the user selects new categories.
- FIG. 4 is a flowchart illustrating a process 400 of proxy-side environment taxonomies, in accordance with an embodiment of the present invention.
- FIG. 4 will be described with reference to the system 200 of FIG. 2 and the example web page 100 of FIG. 2 .
- the process of FIG. 4 is neither limited to system 200 , nor to example web page 100 .
- the proxy 206 receives a request containing a search query from a client 202 and forwards the request to the server 208 .
- the proxy 206 need not provide any information to assist the server 208 in selecting a taxonomy, as the server 208 does not select a taxonomy, in this embodiment. However, the proxy 206 may request that the server 208 return more search results at a time that can fit into a single web page.
- step 404 the server 208 passes the search query to the search engine 209 , which determines matching search results for the search query.
- step 405 the server 208 returns search results to the proxy 206 .
- a server 208 might provide the proxy 206 with enough search result items to fill many web pages 100 .
- the proxy 206 selects a taxonomy based, at least in part, on the user who submitted the search query and/or the search query itself.
- the proxy 206 In step 408 , the proxy 206 generates a SERP 100 based, at least in part, on the selected taxonomy and the search result items.
- the proxy 206 includes at least a portion of the selected taxonomy in the SERP 100 , in one embodiment.
- step 409 the SERP 100 are provided to the client 202 .
- a user at the client 202 may select one of the categories in the taxonomy displayed in the SERP 100 , and submit this to the server 208 .
- proxy 206 receives the category selection.
- the proxy 206 generates a SERP 100 based, at least in part, on the selected category.
- the proxy 206 determines a set of search result items that match the selected category from the search result items that were previously provided by the server 208 .
- the proxy 206 then provides the SERP 100 to the client 202 , in step 409 .
- Process 400 may continue by repeating steps 409 - 412 , as long as the user selects new categories.
- FIG. 5 is a block diagram that illustrates a computer system 500 upon which an embodiment of the invention may be implemented.
- Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a processor 504 coupled with bus 502 for processing information.
- Computer system 500 also includes a main memory 506 , such as a random access memory (RAM) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504 .
- Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504 .
- Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504 .
- ROM read only memory
- a storage device 510 such as a magnetic disk or optical disk, is provided and coupled to bus 502 for storing information and instructions.
- Computer system 500 may be coupled via bus 502 to a display 512 , such as a cathode ray tube (CRT), for displaying information to a computer user.
- a display 512 such as a cathode ray tube (CRT)
- An input device 514 is coupled to bus 502 for communicating information and command selections to processor 504 .
- cursor control 516 is Another type of user input device
- cursor control 516 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512 .
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- the invention is related to the use of computer system 500 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506 . Such instructions may be read into main memory 506 from another machine-readable medium, such as storage device 510 . Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
- machine-readable medium refers to any medium that participates in providing data that causes a machine to operation in a specific fashion.
- various machine-readable media are involved, for example, in providing instructions to processor 504 for execution.
- Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media.
- Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510 .
- Volatile media includes dynamic memory, such as main memory 506 .
- Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502 .
- Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
- Machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
- Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution.
- the instructions may initially be carried on a magnetic disk of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
- a modem local to computer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
- An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 502 .
- Bus 502 carries the data to main memory 506 , from which processor 504 retrieves and executes the instructions.
- the instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504 .
- Computer system 500 also includes a communication interface 518 coupled to bus 502 .
- Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522 .
- communication interface 518 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN integrated services digital network
- communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Wireless links may also be implemented.
- communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 520 typically provides data communication through one or more networks to other data devices.
- network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526 .
- ISP 526 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 528 .
- Internet 528 uses electrical, electromagnetic or optical signals that carry digital data streams.
- the signals through the various networks and the signals on network link 520 and through communication interface 518 which carry the digital data to and from computer system 500 , are exemplary forms of carrier waves transporting the information.
- Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518 .
- a server 530 might transmit a requested code for an application program through Internet 528 , ISP 526 , local network 522 and communication interface 518 .
- the received code may be executed by processor 504 as it is received, and/or stored in storage device 510 , or other non-volatile storage for later execution. In this manner, computer system 500 may obtain application code in the form of a carrier wave.
- Example embodiments X1-X20 include:
- a method comprising:
- generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- storing taxonomies comprises storing, for said each taxonomy, a set of rules that define how documents are to be associated with categories in said each taxonomy.
- storing taxonomies comprises storing, for said each taxonomy, associations between documents and categories in said each taxonomy.
- X6 The method of X1, wherein selecting a particular taxonomy of the one or more distinct taxonomies is based, at least in part, on a particular user role, wherein said information about the user requesting the search query includes information about the particular user role.
- X7 The method of X1, wherein selecting the taxonomy is based, at least in part, on the search query.
- X8 The method of X1, wherein generating the search engine results page includes:
- a machine-readable volatile or non-volatile medium storing one or more sequences of instructions, which when executed by one or more processors causes the one or more processors to perform:
- generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- the machine-readable volatile or non-volatile medium of X10 further comprising instructions, which when executed, cause the one or more processor to perform:
- storing taxonomies comprises storing, for said each taxonomy, a set of rules that define how documents are to be associated with categories in said each taxonomy.
- storing taxonomies comprises storing, for said each taxonomy, associations between documents and categories in said each taxonomy.
- X15 The machine-readable volatile or non-volatile medium of X10, wherein selecting a particular taxonomy of the one or more distinct taxonomies is based, at least in part, on a particular user role, wherein said information about the user requesting the search query includes information about the particular user role.
- X16 The machine-readable volatile or non-volatile medium of X10, wherein selecting the taxonomy is based, at least in part, on the search query.
- the machine-readable volatile or non-volatile medium of X10, wherein generating the search engine results page includes:
- An apparatus comprising:
- X20 The apparatus of X18, wherein generating the search engine results page includes:
- Example embodiments Y1-Y23 include:
- a method comprising:
- Y2 The method of Y1, wherein the step of generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- Y4 The method of Y1, wherein the step of storing a plurality of distinct taxonomies comprises storing, for a particular taxonomy, a set of rules that define how documents are to be associated with categories in the particular taxonomy.
- Y5 The method of Y1, wherein the step of storing a plurality of distinct taxonomies comprises storing, for a particular taxonomy, associations between documents and categories in the particular taxonomy.
- Y6 The method of Y1, wherein the step of generating the search engine results page comprises applying a set of rules that are associated with the selected taxonomy in order to associate search result items with categories in the selected taxonomy.
- Y7 The method of Y1, wherein the step of generating the search engine results page comprises accessing a table that stores associations between documents and categories in the selected taxonomy.
- Y8 The method of Y1, wherein selecting the taxonomy is based, at least in part, on the particular environment.
- Y10 The method of Y1, wherein selecting the taxonomy is based, at least in part, on the search query.
- a method comprising:
- Y11 further comprising selecting the taxonomy based, at least in part, on one or more of:
- Y13 The method of Y11, wherein the step of generating the search engine results page comprises including a description of at least a portion of the taxonomy in the search engine results page.
- Y14 The method of Y11, further comprising determining into which category of the taxonomy to place a search result item that matches the search query based, at least in part, on the taxonomy.
- Y16 The method of Y15, further comprising determining search result items that match the search query and are members of the selected category.
- Y17 The method of Y11, further comprising forwarding to the search engine, along with the search query, a request for the search engine to return sufficient search result items to fill multiple search engine results pages.
- a computer-readable medium carrying one or more sequences of instructions, which when executed by one or more processors causes the one or more processors to perform the steps of:
- Y20 The computer-readable medium of Y18, wherein the one or more sequences of instructions, which when executed by the one or more processors causes the one or more processors to perform the step of generating the search engine results page comprise one or more sequences of instructions, which when executed by the one or more processors causes the one or more processors to perform the step of accessing a table that stores associations between search result items and categories in the selected taxonomy.
- An apparatus comprising:
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A search engine stores different taxonomies that each specifies categories and relationships between the categories. When the search engine receives a request having a search query, the search engine determines which taxonomy, if any, it should use to generate a search results page. The search engine bases this determination upon information provided to it in the request, in one embodiment. For example, the search engine might select a taxonomy based on the particular environment from which the search query originated. However, the search engine can select the taxonomy based on other information, such as a role of the user. Thus, a medical researcher and a financial analyst for a particular corporation could receive search results pages that were generated with appropriate taxonomies for each of them.
Description
- The present application is a continuation of U.S. application Ser. No. 12/903,345, entitled Selecting And Presenting User Search Results Based On User Information, filed on Oct. 13, 2010, by Amit Kumar, the contents of which of incorporated herein by reference, application Ser. No. 12/903,345 claimed priority as a continuation of U.S. application Ser. No. 11/638,057, entitled Selecting And Presenting User Search Results Based On An Environment Taxonomy, filed on Dec. 12, 2006 by Amit Kumar, the contents of which of incorporated herein by reference.
- The present invention relates to computer systems, and more particularly to generating search engine results pages that are based, at least in part, on a taxonomy associated with an environment from which a search query originated.
- A search engine returns search results that match a search query submitted by a user. Typically, the search engine orders the search results. The order usually takes the form of a “ranking”, where the document with the highest ranking is the document considered most likely to satisfy the interest reflected in the search criteria specified by the user. Once the matching documents have been determined, and the display order of those documents has been determined, the search engine sends to the user that issued the search a “search engine results page” that presents information about the matching documents in the display order. Typically, the number of documents that match a search is so large that the user is presented with a search engine results page that only displays information about the top N ranking documents, where N may be significantly smaller than the total number of matching documents. The search engine results page typically includes a control that allows the user to retrieve information about the “next N” matching documents, in case the first N matching documents do not entirely satisfy the user's interest.
- Thus, search results are typically generic in that the same search results are sent to all users. Unfortunately, the search results that have the highest ranking may not correlate well with the search results in which a particular user is interested. Thus, a user might have to wade through many pages of search results to locate results of interest. Worse yet, the search results in which a particular user is interested might have such a low ranking that the user does not find them at all.
- An alternative to this technique is “taxonomy-based” searching. Briefly, a taxonomy describes categories and relationships between categories. Typically, each document (e.g., search result) is placed into a taxonomy category, which can improve the search result quality.
- One type of taxonomy based searching is based on documents from a local database. Taxonomies based on local databases are sometimes specific to particular subject matter. For example, in a medical taxonomy the categories and relationships between categories reflect medical subject matter. As a particular example, a pharmaceutical company might develop a taxonomy for documents in its own databases. However, because the taxonomy only categorizes documents from the local databases, more general search results from the World Wide Web are not included.
- Another technique might allow for categorizing search results from the World Wide Web into a taxonomy. However, this technique typically imposes a single general taxonomy upon all users. For example, a search engine might organize search results into a single general taxonomy that applies to all search queries. As a consequence, user's specific needs, such as medical related searches or stock market related searches do not benefit from the general taxonomy.
- In view of the foregoing, improved techniques are needed for organizing search results are presenting search engine result pages to a user.
- The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
- The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
-
FIG. 1 is an example search engine results page based on an environment taxonomy, in accordance with an embodiment of the present invention. -
FIG. 2 illustrates a system for environment taxonomies, in accordance with an embodiment of the present invention. -
FIG. 3 is a flowchart of generating a search engine results page using environment taxonomies, in accordance with an embodiment of the present invention. -
FIG. 4 is a flowchart of generating a search engine results page using environment taxonomies, in accordance with another embodiment of the present invention. -
FIG. 5 is a block diagram that illustrates a computer system upon which embodiments of the invention may be implemented. - In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
- Techniques are disclosed herein for generating a search engine results page (“SERP”) that is based, at least in part, on a taxonomy that is specific to one or more of: an environment from which a search query originated, a user that submitted the search query, or the search query itself.
- In one embodiment, a search engine stores different taxonomies that each specifies categories and relationships between the categories. For example, a medical-based taxonomy might have categories related to medical subject matter, whereas a financial-based taxonomy might have categories related to financial subject matter. The taxonomies might be specific to a particular environment. As an example, an environment might be an enterprise such as a corporation, but that is not required. The different taxonomies may be provided to the search engine by administrators for various environments. An environment may have multiple taxonomies associated therewith. As an example, an administrator for a particular corporation might provide the search engine with a medical taxonomy and a financial taxonomy that were each developed for the particular corporation.
- When the search engine receives a request having a search query, the search engine determines which taxonomy, if any, it should use to generate a SERP. The search engine bases this determination upon information provided to it in the request, in one embodiment. For example, the request could specify the environment or other information, such as a role of the user. Thus, a medical researcher and a financial analyst for a particular corporation could receive SERPs that were generated with appropriate taxonomies for each of them.
- In one embodiment, the search engine includes at least a portion of the taxonomy in the SERP. For example, the SERP includes organized presentation of categories that match the search results. Thus, the client that originated the search query displays a SERP with an arrangement of categories from taxonomy listed. If the user at the client selects one of the categories, the search engine responds by retuning search results that match that category.
- In one embodiment, a proxy is interposed between the client and the search engine, such that the client sends the search query to the proxy, which the proxy forwards to the search engine. Rather than the search engine selecting the taxonomy, the search engine returns search results matching the search query to the proxy. The proxy determines an appropriate taxonomy to apply, based on information such as the search query and the user who submitted the search query. The proxy then generates a SERP based, at least in part, on the selected taxonomy. Then, the proxy provides the SERP to the client.
-
FIG. 1 is a portion of anexample SERP 100 based on an environment taxonomy, in accordance with an embodiment of the present invention. Theexample SERP 100 contains at least a portion ofenvironment taxonomy 110, which contains categories and sub categories. Anytime the term category or taxonomy category is used herein, the term “category” will be understood to encompass “sub category” or the like. The portion of theenvironment taxonomy 110 that is rendered in theSERP 100 may be based on what search results 104 match the search query. For example, the search engine 109 determines which categories of thetaxonomy 110 have at least one matching search result and only returns those categories in thetaxonomy 110. However, it is not required that all categories for which matching search results exist be displayed. For example, due to practical limitations as to how many categories can be displayed in theSERP 100, only a portion of the categories with matching search results might be displayed. - The
taxonomy 110 allows the user to “drill down” to desired search results. In this example, the user has selected sub category A1. In response thereto, search results 104 pertaining to category Al are presented in theSERP 100. - As used herein, the term “environment” means any set of one or more electronic devices under common administration. The electronic devices may or may not be use the same hardware or run the same software. Examples of electronic devices include, but are not limited to, a web-enabled cellular telephone, a web-enabled personal digital assistant, a server running a particular operating system (e.g., Linux®, Solaris®), a personal computer running the Windows® operating system, etc.
- The environment may have a device that controls access to the environment. In one embodiment, the environment has a proxy with a firewall to perform the access control. An administrator for the environment may control what software is loaded on the electronic devices. An example of an environment is a home, where the administrator may be any resident thereof, and the end users are the family members. Another example of an environment is a corporation, where the administrator is the information technology (IT) manager, and the end users are employees of the company. Still another example of an environment is a business, such as an Internet café, where the administrator may be the proprietor, and the end users are customers.
- A taxonomy contains categories and relationships between the categories. Many different techniques may be used to relate categories to each other. An environment taxonomy is a taxonomy that is developed for a particular environment. The following examples of how a taxonomy might be organized are provided, but relationships between categories are not limited to these examples. The relationship may be hierarchical. For example, the taxonomy could be a tree structure with each leaf representing a category. However, the structure is not required to be a tree. Thus, in one taxonomy, a child category could be required to have only one parent category, whereas in another taxonomy, a child category could be permitted to have multiple parent categories. As an example, the child category “cellular telephone” might have parent categories “electronic device” and “communication device”. The categories of a taxonomy might be organized into groups, without an explicit relationship between the groups. The taxonomy, or portions thereof, might be an ordered list of categories.
- In addition to the categories and relationships between the categories, each category may have a rule used to determine what documents match that category. For example, a rule might be that documents pertaining to “flu vaccination” belong in that category.
- However, it is not required to have an explicit rule associated with a category. For example, a category can contain a set of documents without a unique rule for assigning documents to the category. If desired, additional documents can be assigned to categories by matching new documents to documents that are already categorized. For example, a comparison of keywords can be performed. Thus, a particular category does not need to have its own unique rule to have further documents assigned to it.
- The document corpus for a taxonomy can be the entire World Wide Web, any domain of the World Wide Web, or a corpus other than the World Wide Web. If the document has a Uniform Resource Locators (URLs) then that URL can be associated with the category. However, the document corpus does not have to be the World Wide Web.
-
FIG. 2 illustrates asystem 200 for providingSERPs 100 based on environment taxonomies, in accordance with an embodiment of the present invention. Eachenvironment 201 has one ormore clients 202 communicatively coupled to theserver 208 vianetwork 204. Anenvironment 201 may have aproxy 206, which acts as an intermediary between theclient 202 andserver 208.Network 204 may be the Internet, although this is not required. Theserver 208 hassearch engine 209 that is able to perform a search of the World Wide Web, in one embodiment. - When a
client 202 sends a request (via the proxy 206) to theserver 208, theserver 208 determines what taxonomy should be used to generate aSERP 100. Theserver 208 makes the determination based on information such as theenvironment 201 from which the request originated, the user who submitted the search query, the search query itself, or other information. Theproxy 206 may pass information to theserver 208 to assist theserver 208 in this determination. After theserver 208 selects a particular taxonomy, theserver 208 uses either the environment taxonomy table 210 or the environment taxonomy rules 230(1)-230(n) to generate aSERP 100 that is based on the selected taxonomy. - The environment taxonomy table 210 contains, for a number of distinct taxonomies, associations between documents (e.g., web pages) and taxonomy categories. The organization of the environment taxonomy table 210 is as follows, in one embodiment. The table 210 has a column having a document identifier (e.g., a unique URL) in each row entry. Each distinct environment taxonomy has its own column. The row entries for each specific environment taxonomy identify to which taxonomy category the URL in that row belongs. For a given environment taxonomy, not all URLs will be assigned a category. Therefore, some row entries for a given environment taxonomy will contain a null entry. To construct the table 210, the
server 208 receives a mapping of URLs to categories, in one embodiment. For example, an administrator of anenvironment 201 provides this mapping to theserver 208. - A given set of taxonomy rules (e.g., 130(1)) comprises rules to associate documents with categories. The
server 208 uses a particular set of environment taxonomy rules (e.g., 230(1)) to associate documents (e.g., search result items) with categories for a particular environment taxonomy, in one embodiment. Theserver 208 may apply the rules 130 to search results “on-the-fly”. Associations between documents and categories that are learned “on-the-fly” may be stored in an appropriate column of the environment taxonomy table 210 for later reference. However, theserver 208 may apply the rules 130 to documents other than when search results are being processed. - Note that regardless of whether the search engine uses the table 210 or the
rules 230 not all search result items will match a category in the selected taxonomy. In this case, theserver 208 may still return these “un-categorized” search result items in aSERP 100. - A
proxy 206 may have access to environmentspecific taxonomies 224, although this is not required. For example, proxy 206(1) has access to environmentspecific taxonomies 224. Using one of the environmentspecific taxonomies 224, proxy 206(1) is able to generate aSERP 100. As an example, proxy 206(1) receives aSERP 100 fromsearch engine 209 and adds a list of taxonomy categories to theSERP 100. Thus, anenvironment 201 does not need to share its environmentspecific taxonomy 224 with theserver 208. -
FIG. 3 is a flowchart illustrating aprocess 300 of server-side environment taxonomies, in accordance with an embodiment of the present invention.FIG. 3 will be described with reference to thesystem 200 ofFIG. 2 and theexample web page 100 ofFIG. 1 . However, theprocess 300 ofFIG. 3 is neither limited tosystem 200, nor toexample web page 100. - In
step 302, theserver 208 stores distinct taxonomies. Theserver 208 receives taxonomies from thedifferent proxies 206, in one embodiment. In one embodiment, for a particular environment taxonomy, theserver 208 receives and stores a set oftaxonomy rules 230 that can be used to associate search result items into taxonomy categories. In another embodiment, for a particular environment taxonomy, theserver 208 receives and stores document identifiers (e.g., a URL) that are associated with taxonomy categories. - In
step 304, theserver 208 receives a request containing a search query that originated from a user associated with aparticular environment 201. The request may be forwarded to theserver 208 from aproxy 206 in theparticular environment 201. Theproxy 206 may provide information that can be used to select a taxonomy to apply to aSERP 100. For example, theproxy 206 may provide an environment identifier to select the taxonomy. As another example, theproxy 206 provides a user role (e.g., engineer, manager, financial analyst, etc.). - In
step 305, theserver 208 passes the search query to thesearch engine 209, which determines matching search results for the search query. - In step 306, the
server 208 selects a taxonomy based, at least in part, on one or more of: theparticular environment 201, the user who submitted the search query, and the search query itself. As an example, theserver 208 might select a different taxonomy for a user whose role is “engineer” than a user whose role is “finance”. For example, theserver 208 might select a medical taxonomy that was specifically developed to meet the needs of a pharmaceutical company in response to determining that a medical researcher for that pharmaceutical company submitted the search query. Theserver 208 may use other factors to select the taxonomy, such as terms in the search query. - In
step 308, theserver 208 generates aSERP 100 based, at least in part, on the selected taxonomy. Theserver 208 includes at least a portion of the selected taxonomy in theSERP 100, in one embodiment. For example, if there is a least one search result item that matches a particular category, then that category is a candidate for inclusion in theSERP 100. However, due to the large number of categories this may cover, only a portion of these candidate categories need be included in theSERP 100. Because only a fraction of the search results are returned in a single SERP, many of the categories will not have a corresponding search result item in theSERP 100. - In
step 309, theSERP 100 are provided to theproxy 206, which passes them on to theclient 202. It is possible, though not required, for theproxy 206 to modify theSERP 100 prior to forwarding to theclient 202. An embodiment in which theproxy 206 performs such a modification is described below. A user at theclient 202 may select one of the categories in the taxonomy displayed in theSERP 100, and submit this to theserver 208. - In
step 310,server 208 receives the category selection. Instep 312, thesearch engine 209 generates aSERP 100 based, at least in part, on the selected category. For example, thesearch engine 209 determines a set of search result items that match the selected category, wherein those search result items are provided to theclient 202, instep 309.Process 300 may continue by repeating steps 309-312, as long as the user selects new categories. -
FIG. 4 is a flowchart illustrating aprocess 400 of proxy-side environment taxonomies, in accordance with an embodiment of the present invention.FIG. 4 will be described with reference to thesystem 200 ofFIG. 2 and theexample web page 100 ofFIG. 2 . However, the process ofFIG. 4 is neither limited tosystem 200, nor toexample web page 100. - In
step 402, theproxy 206 receives a request containing a search query from aclient 202 and forwards the request to theserver 208. Theproxy 206 need not provide any information to assist theserver 208 in selecting a taxonomy, as theserver 208 does not select a taxonomy, in this embodiment. However, theproxy 206 may request that theserver 208 return more search results at a time that can fit into a single web page. - In
step 404, theserver 208 passes the search query to thesearch engine 209, which determines matching search results for the search query. Instep 405, theserver 208 returns search results to theproxy 206. As previously discussed, aserver 208 might provide theproxy 206 with enough search result items to fillmany web pages 100. - In step 406, the
proxy 206 selects a taxonomy based, at least in part, on the user who submitted the search query and/or the search query itself. - In
step 408, theproxy 206 generates aSERP 100 based, at least in part, on the selected taxonomy and the search result items. Theproxy 206 includes at least a portion of the selected taxonomy in theSERP 100, in one embodiment. - In
step 409, theSERP 100 are provided to theclient 202. A user at theclient 202 may select one of the categories in the taxonomy displayed in theSERP 100, and submit this to theserver 208. - In
step 410,proxy 206 receives the category selection. Instep 412, theproxy 206 generates aSERP 100 based, at least in part, on the selected category. In one embodiment, theproxy 206 determines a set of search result items that match the selected category from the search result items that were previously provided by theserver 208. Theproxy 206 then provides theSERP 100 to theclient 202, instep 409.Process 400 may continue by repeating steps 409-412, as long as the user selects new categories. -
FIG. 5 is a block diagram that illustrates acomputer system 500 upon which an embodiment of the invention may be implemented.Computer system 500 includes abus 502 or other communication mechanism for communicating information, and aprocessor 504 coupled withbus 502 for processing information.Computer system 500 also includes amain memory 506, such as a random access memory (RAM) or other dynamic storage device, coupled tobus 502 for storing information and instructions to be executed byprocessor 504.Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed byprocessor 504.Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled tobus 502 for storing static information and instructions forprocessor 504. Astorage device 510, such as a magnetic disk or optical disk, is provided and coupled tobus 502 for storing information and instructions. -
Computer system 500 may be coupled viabus 502 to adisplay 512, such as a cathode ray tube (CRT), for displaying information to a computer user. Aninput device 514, including alphanumeric and other keys, is coupled tobus 502 for communicating information and command selections toprocessor 504. Another type of user input device iscursor control 516, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections toprocessor 504 and for controlling cursor movement ondisplay 512. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. - The invention is related to the use of
computer system 500 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed bycomputer system 500 in response toprocessor 504 executing one or more sequences of one or more instructions contained inmain memory 506. Such instructions may be read intomain memory 506 from another machine-readable medium, such asstorage device 510. Execution of the sequences of instructions contained inmain memory 506 causesprocessor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software. - The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using
computer system 500, various machine-readable media are involved, for example, in providing instructions toprocessor 504 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such asstorage device 510. Volatile media includes dynamic memory, such asmain memory 506. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprisebus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine. - Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
- Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to
processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local tocomputer system 500 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data onbus 502.Bus 502 carries the data tomain memory 506, from whichprocessor 504 retrieves and executes the instructions. The instructions received bymain memory 506 may optionally be stored onstorage device 510 either before or after execution byprocessor 504. -
Computer system 500 also includes acommunication interface 518 coupled tobus 502.Communication interface 518 provides a two-way data communication coupling to anetwork link 520 that is connected to alocal network 522. For example,communication interface 518 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example,communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation,communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. - Network link 520 typically provides data communication through one or more networks to other data devices. For example,
network link 520 may provide a connection throughlocal network 522 to ahost computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526.ISP 526 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 528.Local network 522 andInternet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals onnetwork link 520 and throughcommunication interface 518, which carry the digital data to and fromcomputer system 500, are exemplary forms of carrier waves transporting the information. -
Computer system 500 can send messages and receive data, including program code, through the network(s),network link 520 andcommunication interface 518. In the Internet example, aserver 530 might transmit a requested code for an application program throughInternet 528,ISP 526,local network 522 andcommunication interface 518. - The received code may be executed by
processor 504 as it is received, and/or stored instorage device 510, or other non-volatile storage for later execution. In this manner,computer system 500 may obtain application code in the form of a carrier wave. - Example embodiments X1-X20 include:
- X1. A method comprising:
- a search engine or proxy receiving one or more distinct taxonomies;
- storing said one or more distinct taxonomies in association with a plurality of users;
- wherein each taxonomy of said one or more distinct taxonomies specifies categories and relationships between the categories;
- receiving a search query that includes one or more keywords to search and information about a user of the plurality of users requesting the search query;
- based at least in part on the information about the user requesting the search query, selecting a taxonomy of the one or more distinct taxonomies stored in association with the plurality of users;
- generating a search engine results page, at least in part, by applying to a search engine result item a set of rules that are associated with the selected taxonomy;
- wherein applying the set of rules to the search engine result item identifies a set of categories in the selected taxonomy to display on the search engine results page in association with the search engine result item;
- wherein the method is performed by one or more computing devices.
- X2. The method of X1, wherein generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- X3. The method of X1, further comprising:
- providing the search engine results page to the user requesting the search query;
- receiving, from the user, a selection of a category in the selected taxonomy; and
- generating an additional search engine results page based, at least in part, on the selected category.
- X4. The method of X1, wherein storing taxonomies comprises storing, for said each taxonomy, a set of rules that define how documents are to be associated with categories in said each taxonomy.
- X5. The method of X1, wherein storing taxonomies comprises storing, for said each taxonomy, associations between documents and categories in said each taxonomy.
- X6. The method of X1, wherein selecting a particular taxonomy of the one or more distinct taxonomies is based, at least in part, on a particular user role, wherein said information about the user requesting the search query includes information about the particular user role.
- X7. The method of X1, wherein selecting the taxonomy is based, at least in part, on the search query.
- X8. The method of X1, wherein generating the search engine results page includes:
-
- (a) identifying search results independent of the taxonomy; and
- (b) providing to the user the search engine results based on the taxonomy.
- X9. The method of X1, further comprising:
- creating a set of search result items by matching the search query against a set of documents indexed by a web search engine;
- wherein matching performed is independent of a taxonomy.
- X10. A machine-readable volatile or non-volatile medium storing one or more sequences of instructions, which when executed by one or more processors causes the one or more processors to perform:
- a search engine or proxy receiving one or more distinct taxonomies;
- storing said one or more distinct taxonomies in association with a plurality of users;
- wherein each taxonomy of said one or more distinct taxonomies specifies categories and relationships between the categories;
- receiving a search query that includes one or more keywords to search and information about a user of the plurality of users requesting the search query;
- based at least in part on the information about the user requesting the search query, selecting a taxonomy of the one or more distinct taxonomies stored in association with the plurality of users;
- generating a search engine results page, at least in part, by applying to a search engine result item a set of rules that are associated with the selected taxonomy;
- wherein applying the set of rules to the search engine result item identifies a set of categories in the selected taxonomy to display on the search engine results page in association with the search engine result item.
- X11. The machine-readable volatile or non-volatile medium of X10, wherein generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- X12. The machine-readable volatile or non-volatile medium of X10, further comprising instructions, which when executed, cause the one or more processor to perform:
- providing the search engine results page to the user requesting the search query;
- receiving, from the user, a selection of a category in the selected taxonomy; and
- generating an additional search engine results page based, at least in part, on the selected category.
- X13. The machine-readable volatile or non-volatile medium of X10, wherein storing taxonomies comprises storing, for said each taxonomy, a set of rules that define how documents are to be associated with categories in said each taxonomy.
- X14. The machine-readable volatile or non-volatile medium of X10, wherein storing taxonomies comprises storing, for said each taxonomy, associations between documents and categories in said each taxonomy.
- X15. The machine-readable volatile or non-volatile medium of X10, wherein selecting a particular taxonomy of the one or more distinct taxonomies is based, at least in part, on a particular user role, wherein said information about the user requesting the search query includes information about the particular user role.
- X16. The machine-readable volatile or non-volatile medium of X10, wherein selecting the taxonomy is based, at least in part, on the search query.
- X17. The machine-readable volatile or non-volatile medium of X10, wherein generating the search engine results page includes:
-
- (a) identifying search results independent of the taxonomy; and
- (b) providing to a client the search engine results based on the taxonomy.
- X18. An apparatus comprising:
- a processor; and
- a storage device coupled to the processor, wherein the storage device stores one or more sequences of instructions, which when executed by the processor causes the processor to perform:
- a search engine or proxy receiving one or more distinct taxonomies;
- storing said one or more distinct taxonomies in association with a plurality of users;
- wherein each taxonomy of said one or more distinct taxonomies specifies categories and relationships between the categories;
- receiving a search query that includes one or more keywords to search and information about a user of the plurality of users requesting the search query;
- based at least in part on the information about the user requesting the search query, selecting a taxonomy of the one or more distinct taxonomies stored in association with the plurality of users;
- generating a search engine results page, at least in part, by applying to a search engine result item a set of rules that are associated with the selected taxonomy;
- wherein applying the set of rules to the search engine result item identifies a set of categories in the selected taxonomy to display on the search engine results page in association with the search engine result item.
- X19. The apparatus of X18, wherein the one or more sequences of instructions, which when executed by the processor causes the processor to perform:
- accessing a table that stores associations between search result items and categories in the selected taxonomy.
- X20. The apparatus of X18, wherein generating the search engine results page includes:
-
- (a) identifying search results independent of the taxonomy; and
- (b) providing to the user the search engine results based on the taxonomy.
- Example embodiments Y1-Y23 include:
- Y1. A method comprising:
- storing a plurality of distinct taxonomies, wherein each taxonomy specifies categories and relationships between the categories;
- receiving a search query associated with a particular environment and associated with a particular user;
- selecting a taxonomy based, at least in part, on one or more of:
- the particular environment;
- the particular user; and
- the search query; and
- generating a search engine results page based, at least in part, on the selected taxonomy.
- Y2. The method of Y1, wherein the step of generating the search engine results page comprises including a description of at least a portion of the selected taxonomy in the search engine results page.
- Y3. The method of Y1, further comprising:
- providing the search engine results page to a client in the particular environment;
- receiving, from the client, a selection of a category in the selected taxonomy; and
- generating an additional search engine results page based, at least in part, on the selected category.
- Y4. The method of Y1, wherein the step of storing a plurality of distinct taxonomies comprises storing, for a particular taxonomy, a set of rules that define how documents are to be associated with categories in the particular taxonomy.
- Y5. The method of Y1, wherein the step of storing a plurality of distinct taxonomies comprises storing, for a particular taxonomy, associations between documents and categories in the particular taxonomy.
- Y6. The method of Y1, wherein the step of generating the search engine results page comprises applying a set of rules that are associated with the selected taxonomy in order to associate search result items with categories in the selected taxonomy.
- Y7. The method of Y1, wherein the step of generating the search engine results page comprises accessing a table that stores associations between documents and categories in the selected taxonomy.
- Y8. The method of Y1, wherein selecting the taxonomy is based, at least in part, on the particular environment.
- Y9. The method of Y1, wherein selecting the taxonomy is based, at least in part, on the particular user.
- Y10. The method of Y1, wherein selecting the taxonomy is based, at least in part, on the search query.
- Y11. A method comprising:
- receiving a search query from a client;
- forwarding the search query to a search engine;
- receiving, from the search engine, search result items that match the search query;
- generating, for the client, a search engine results page that is based, at least in part, on the search result items and a taxonomy that is specific to an environment associated with the client, wherein the taxonomy specifies categories and relationships between the categories; and
- providing, to the client, said search engine results page.
- Y12. The method of Y11, further comprising selecting the taxonomy based, at least in part, on one or more of:
- a particular user that submitted the search query; and
- the search query.
- Y13. The method of Y11, wherein the step of generating the search engine results page comprises including a description of at least a portion of the taxonomy in the search engine results page.
- Y14. The method of Y11, further comprising determining into which category of the taxonomy to place a search result item that matches the search query based, at least in part, on the taxonomy.
- Y15. The method of Y11, further comprising:
- receiving, from the client, a selection of a category in the taxonomy; and
- providing, to the client, a new search engine results page based, at least in part, on the selected category.
- Y16. The method of Y15, further comprising determining search result items that match the search query and are members of the selected category.
- Y17. The method of Y11, further comprising forwarding to the search engine, along with the search query, a request for the search engine to return sufficient search result items to fill multiple search engine results pages.
- Y18. A computer-readable medium carrying one or more sequences of instructions, which when executed by one or more processors causes the one or more processors to perform the steps of:
- storing a plurality of distinct taxonomies, wherein each taxonomy specifies categories and relationships between the categories;
- receiving a search query associated with a particular environment and associated with a particular user;
- selecting a taxonomy based, at least in part, on one or more of:
- the particular environment;
- the particular user; and
- the search query; and
- generating a search engine results page based, at least in part, on the selected taxonomy.
- Y19. The computer-readable medium of Y18, wherein the one or more sequences of instructions, which when executed by the one or more processors cause the one or more processors to perform the step of generating the search engine results page comprise one or more sequences of instructions, which when executed by one or more processors causes the one or more processors to perform the step of applying a set of rules that are associated with the selected taxonomy in order to associate search result items with categories in the selected taxonomy.
- Y20. The computer-readable medium of Y18, wherein the one or more sequences of instructions, which when executed by the one or more processors causes the one or more processors to perform the step of generating the search engine results page comprise one or more sequences of instructions, which when executed by the one or more processors causes the one or more processors to perform the step of accessing a table that stores associations between search result items and categories in the selected taxonomy.
- Y21. An apparatus comprising:
- a processor; and
- a computer-readable medium coupled to the processor, wherein the computer readable medium carries one or more sequences of instructions, which when executed by the processor causes the processor to perform the steps of:
- storing a plurality of distinct taxonomies, wherein each taxonomy specifies categories and relationships between the categories;
- receiving a search query associated with a particular environment and associated with a particular user;
- selecting a taxonomy based, at least in part, on one or more of:
- the particular environment;
- the particular user; and
- the search query; and
- generating a search engine results page based, at least in part, on the selected taxonomy.
- Y22. The apparatus of Y21, wherein the one or more sequences of instructions, which when executed by the processor causes processor to perform the step of generating the search engine results page comprise one or more sequences of instructions, which when executed by the processor causes the processor to perform the step of applying a set of rules that are associated with the selected taxonomy in order to associate search result items with categories in the selected taxonomy.
- Y23. The computer-readable medium of Y21, wherein the one or more sequences of instructions, which when executed by the processor causes the processor to perform the step of generating the search engine results page comprise one or more sequences of instructions, which when executed by the processor causes the one or more processors to perform the step of accessing a table that stores associations between search result items and categories in the selected taxonomy.
- In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (22)
1. A method comprising:
receiving a first search query that includes one or more first keywords and first information about a first origin of the first search query;
based at least in part on the first information about the first origin of the first search query, selecting a first taxonomy of two or more distinct taxonomies, wherein each taxonomy of the two or more distinct taxonomies specifies categories and relationships between the categories;
in response to receiving the first search query, generating a first set of search results specific to the selected first taxonomy;
receiving a second search query that includes one or more second keywords and second information about a second origin of the second search query;
based at least in part on the second information about the second origin of the second search query, selecting a second taxonomy of two or more distinct taxonomies;
in response to receiving the second search query, generating a second set of search results specific to the selected second taxonomy;
wherein the second origin is different than the first origin and the second taxonomy is different than the first taxonomy;
wherein the method is performed by one or more computing devices.
2. The method of claim 1 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first user that originated the first search query;
selecting the first taxonomy is based at least in part on an identity of the first user;
the second information about the second origin of the second search query comprises information that identifies a second user that originated the second search query; and
wherein selecting the second taxonomy is based at least in part on an identity of the second user.
3. The method of claim 1 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first set of one or more devices that originated the first search query;
selecting the first taxonomy is based at least in part on an identity of the first set of one or more devices;
the second information about the second origin of the second search query comprises information that identifies a second set of one or more devices that originated the second search query; and
selecting the second taxonomy is based at least in part on an identity of the second set of one or more devices.
4. The method of claim 1 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first role of a first user that originated the first search query;
selecting the first taxonomy is based at least in part on the first role;
the second information about the second origin of the second search query comprises information that identifies a second role of a second user that originated the second search query; and
selecting the second taxonomy is based at least in part on the second role.
5. The method of claim 1 , wherein generating the first set of search results specific to the first taxonomy includes:
identifying a first generic set of search results for the first search query, wherein the first generic set of search results is independent of the first taxonomy; and
generating the first set of search results based on the first generic set of search results and the first taxonomy;
wherein generating the second set of search results specific to the second taxonomy includes:
identifying a second generic set of search results for the second search query, wherein the second generic set of search results is independent of the second taxonomy; and
generating the second set of search results based on the second generic set of search results and the second taxonomy.
6. The method of claim 1 , wherein generating the first set of search results specific to the first taxonomy includes:
requesting, from a search engine, a first generic set of search results for the first search query, wherein the first generic set of search results is independent of the first taxonomy; and
generating the first set of search results based on the first generic set of search results and the first taxonomy;
wherein generating the second set of search results specific to the second taxonomy includes:
requesting, from a search engine, a second generic set of search results for the second search query, wherein the second generic set of search results is independent of the second taxonomy; and
generating the second set of search results based on the second generic set of search results and the second taxonomy.
7. The method of claim 1 , wherein:
generating the first set of search results specific to the first taxonomy includes applying a first set of rules that are associated with the first taxonomy; and
generating the second set of search results specific to the second taxonomy includes applying a second set of rules that are associated with the second taxonomy.
8. The method of claim 1 , wherein generating the first set of search results specific to the first taxonomy includes:
identifying a first set of documents that are associated with the first taxonomy; and
generating the first set of search results based on the first search query and the first set of documents;
wherein generating the second set of search results specific to the second taxonomy includes:
identifying a second set of documents that are associated with the second taxonomy; and
generating the second set of search results based on the second search query and the second set of documents.
9. The method of claim 1 , wherein:
the first taxonomy categorizes documents that are stored in a local database for a company, and
the second taxonomy categorizes documents from one or more World Wide Web domains.
10. The method of claim 1 , wherein:
the first taxonomy categorizes documents for a first category of related subject matter, and
the second taxonomy categorizes documents for a second category of related subject matter.
11. The method of claim 1 , further comprising:
causing display of the first set of results on a first user device by sending the first set of results toward the first user device, and
causing display of the second set of results on a second user device by sending the second set of results toward the second user device.
12. One or more volatile or non-volatile machine-readable media storing instructions, which, when executed by one or more processors, cause the one or more processors to perform:
receiving a first search query that includes one or more first keywords and first information about a first origin of the first search query;
based at least in part on the first information about the first origin of the first search query, selecting a first taxonomy of two or more distinct taxonomies, wherein each taxonomy of the two or more distinct taxonomies specifies categories and relationships between the categories;
in response to receiving the first search query, generating a first set of search results specific to the selected first taxonomy;
receiving a second search query that includes one or more second keywords and second information about a second origin of the second search query;
based at least in part on the second information about the second origin of the second search query, selecting a second taxonomy of two or more distinct taxonomies;
in response to receiving the second search query, generating a second set of search results specific to the selected second taxonomy;
wherein the second origin is different than the first origin and the second taxonomy is different than the first taxonomy;
wherein the method is performed by one or more computing devices.
13. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first user that originated the first search query;
selecting the first taxonomy is based at least in part on an identity of the first user;
the second information about the second origin of the second search query comprises information that identifies a second user that originated the second search query; and
wherein selecting the second taxonomy is based at least in part on an identity of the second user.
14. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first set of one or more devices that originated the first search query;
selecting the first taxonomy is based at least in part on an identity of the first set of one or more devices;
the second information about the second origin of the second search query comprises information that identifies a second set of one or more devices that originated the second search query; and
selecting the second taxonomy is based at least in part on an identity of the second set of one or more devices.
15. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
the first information about the first origin of the first search query comprises information that identifies a first role of a first user that originated the first search query;
selecting the first taxonomy is based at least in part on the first role;
the second information about the second origin of the second search query comprises information that identifies a second role of a second user that originated the second search query; and
selecting the second taxonomy is based at least in part on the second role.
16. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein generating the first set of search results specific to the first taxonomy includes:
identifying a first generic set of search results for the first search query, wherein the first generic set of search results is independent of the first taxonomy; and
generating the first set of search results based on the first generic set of search results and the first taxonomy;
wherein generating the second set of search results specific to the second taxonomy includes:
identifying a second generic set of search results for the second search query, wherein the second generic set of search results is independent of the second taxonomy; and
generating the second set of search results based on the second generic set of search results and the second taxonomy.
17. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein generating the first set of search results specific to the first taxonomy includes:
requesting, from a search engine, a first generic set of search results for the first search query, wherein the first generic set of search results is independent of the first taxonomy; and
generating the first set of search results based on the first generic set of search results and the first taxonomy;
wherein generating the second set of search results specific to the second taxonomy includes:
requesting, from a search engine, a second generic set of search results for the second search query, wherein the second generic set of search results is independent of the second taxonomy; and
generating the second set of search results based on the second generic set of search results and the second taxonomy.
18. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
generating the first set of search results specific to the first taxonomy includes applying a first set of rules that are associated with the first taxonomy; and
generating the second set of search results specific to the second taxonomy includes applying a second set of rules that are associated with the second taxonomy.
19. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein generating the first set of search results specific to the first taxonomy includes:
identifying a first set of documents that are associated with the first taxonomy; and
generating the first set of search results based on the first search query and the first set of documents;
wherein generating the second set of search results specific to the second taxonomy includes:
identifying a second set of documents that are associated with the second taxonomy; and
generating the second set of search results based on the second search query and the second set of documents.
20. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
the first taxonomy categorizes documents that are stored in a local database for a company, and
the second taxonomy categorizes documents from one or more World Wide Web domains.
21. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein:
the first taxonomy categorizes documents for a first category of related subject matter, and
the second taxonomy categorizes documents for a second category of related subject matter.
22. The one or more volatile or non-volatile machine-readable media of claim 12 , wherein the instructions, when executed, further cause:
display of the first set of results on a first user device by sending the first set of results toward the first user device, and
display of the second set of results on a second user device by sending the second set of results toward the second user device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/649,087 US20130091116A1 (en) | 2006-12-12 | 2012-10-10 | Selecting and presenting search results based on distinct taxonomies |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/638,057 US7822734B2 (en) | 2006-12-12 | 2006-12-12 | Selecting and presenting user search results based on an environment taxonomy |
US12/903,345 US8341144B2 (en) | 2006-12-12 | 2010-10-13 | Selecting and presenting user search results based on user information |
US13/649,087 US20130091116A1 (en) | 2006-12-12 | 2012-10-10 | Selecting and presenting search results based on distinct taxonomies |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/903,345 Continuation US8341144B2 (en) | 2006-12-12 | 2010-10-13 | Selecting and presenting user search results based on user information |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130091116A1 true US20130091116A1 (en) | 2013-04-11 |
Family
ID=39499478
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/638,057 Expired - Fee Related US7822734B2 (en) | 2006-12-12 | 2006-12-12 | Selecting and presenting user search results based on an environment taxonomy |
US12/903,345 Expired - Fee Related US8341144B2 (en) | 2006-12-12 | 2010-10-13 | Selecting and presenting user search results based on user information |
US13/649,087 Abandoned US20130091116A1 (en) | 2006-12-12 | 2012-10-10 | Selecting and presenting search results based on distinct taxonomies |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/638,057 Expired - Fee Related US7822734B2 (en) | 2006-12-12 | 2006-12-12 | Selecting and presenting user search results based on an environment taxonomy |
US12/903,345 Expired - Fee Related US8341144B2 (en) | 2006-12-12 | 2010-10-13 | Selecting and presenting user search results based on user information |
Country Status (1)
Country | Link |
---|---|
US (3) | US7822734B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424321B1 (en) * | 2015-04-27 | 2016-08-23 | Altep, Inc. | Conceptual document analysis and characterization |
WO2017001944A1 (en) * | 2015-06-30 | 2017-01-05 | Yandex Europe Ag | Method, system and computer readable memory for generating ranked search results incorporating suggests |
US20170140057A1 (en) * | 2012-06-11 | 2017-05-18 | International Business Machines Corporation | System and method for automatically detecting and interactively displaying information about entities, activities, and events from multiple-modality natural language sources |
CN108038172A (en) * | 2017-12-07 | 2018-05-15 | 北京百度网讯科技有限公司 | Searching method and device based on artificial intelligence |
US20180203845A1 (en) * | 2015-07-13 | 2018-07-19 | Teijin Limited | Information processing apparatus, information processing method and computer program |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059459A1 (en) * | 2006-09-06 | 2008-03-06 | Byron Robert V | System and method for providing focused search term results |
US8745028B1 (en) * | 2007-12-27 | 2014-06-03 | Google Inc. | Interpreting adjacent search terms based on a hierarchical relationship |
US20090281994A1 (en) * | 2008-05-09 | 2009-11-12 | Byron Robert V | Interactive Search Result System, and Method Therefor |
US8260800B2 (en) * | 2008-11-06 | 2012-09-04 | Nexplore Technolgies, Inc. | System and method for image generation, delivery, and management |
US8635528B2 (en) * | 2008-11-06 | 2014-01-21 | Nexplore Technologies, Inc. | System and method for dynamic search result formatting |
US8440937B2 (en) * | 2008-12-11 | 2013-05-14 | GM Global Technology Operations LLC | Self-cleaning welding nozzle |
US9159075B2 (en) | 2009-04-24 | 2015-10-13 | Reza Jalili | System and method for distribution and redistribution of electronic content |
US20110004588A1 (en) * | 2009-05-11 | 2011-01-06 | iMedix Inc. | Method for enhancing the performance of a medical search engine based on semantic analysis and user feedback |
US20110270843A1 (en) * | 2009-11-06 | 2011-11-03 | Mayo Foundation For Medical Education And Research | Specialized search engines |
US20110125581A1 (en) * | 2009-11-23 | 2011-05-26 | Reza Jalili | System and method for improving e-commerce with on-demand advertising |
US20130212089A1 (en) * | 2012-02-10 | 2013-08-15 | Google Inc. | Search Result Categorization |
US9858609B2 (en) * | 2012-06-27 | 2018-01-02 | Rakuten, Inc. | Information processing apparatus, information processing method, and information processing program |
US10255363B2 (en) | 2013-08-12 | 2019-04-09 | Td Ameritrade Ip Company, Inc. | Refining search query results |
CN104572774B (en) * | 2013-10-28 | 2019-03-15 | 腾讯科技(深圳)有限公司 | Searching method and device |
US11625444B2 (en) | 2022-01-18 | 2023-04-11 | Jeffrey David Minter | Curated result finder |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634051A (en) * | 1993-10-28 | 1997-05-27 | Teltech Resource Network Corporation | Information management system |
US20030046114A1 (en) * | 2001-08-28 | 2003-03-06 | Davies Richard J. | System, method, and apparatus for storing, retrieving, and integrating clinical, diagnostic, genomic, and therapeutic data |
US20030115191A1 (en) * | 2001-12-17 | 2003-06-19 | Max Copperman | Efficient and cost-effective content provider for customer relationship management (CRM) or other applications |
US20030212673A1 (en) * | 2002-03-01 | 2003-11-13 | Sundar Kadayam | System and method for retrieving and organizing information from disparate computer network information sources |
US20040093326A1 (en) * | 2002-11-12 | 2004-05-13 | Carollyn Carson | Taxonomy for mobile e-services |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442544B1 (en) * | 1998-12-08 | 2002-08-27 | Infospace, Inc. | System and method for organizing search categories for use in an on-line search query engine based on geographic descriptions |
US6360227B1 (en) * | 1999-01-29 | 2002-03-19 | International Business Machines Corporation | System and method for generating taxonomies with applications to content-based recommendations |
US20010049674A1 (en) * | 2000-03-30 | 2001-12-06 | Iqbal Talib | Methods and systems for enabling efficient employment recruiting |
US6704729B1 (en) * | 2000-05-19 | 2004-03-09 | Microsoft Corporation | Retrieval of relevant information categories |
US20020078045A1 (en) * | 2000-12-14 | 2002-06-20 | Rabindranath Dutta | System, method, and program for ranking search results using user category weighting |
US7225183B2 (en) * | 2002-01-28 | 2007-05-29 | Ipxl, Inc. | Ontology-based information management system and method |
US7149983B1 (en) * | 2002-05-08 | 2006-12-12 | Microsoft Corporation | User interface and method to facilitate hierarchical specification of queries using an information taxonomy |
US20030220913A1 (en) * | 2002-05-24 | 2003-11-27 | International Business Machines Corporation | Techniques for personalized and adaptive search services |
US7353533B2 (en) * | 2002-12-18 | 2008-04-01 | Novell, Inc. | Administration of protection of data accessible by a mobile device |
US20040122693A1 (en) * | 2002-12-23 | 2004-06-24 | Michael Hatscher | Community builder |
US7797203B2 (en) * | 2003-03-31 | 2010-09-14 | Sap Ag | Collaborative product taxonomy instantiation |
CN100485603C (en) * | 2003-04-04 | 2009-05-06 | 雅虎公司 | Systems and methods for generating concept units from search queries |
US7051023B2 (en) * | 2003-04-04 | 2006-05-23 | Yahoo! Inc. | Systems and methods for generating concept units from search queries |
US7406459B2 (en) * | 2003-05-01 | 2008-07-29 | Microsoft Corporation | Concept network |
US7447677B2 (en) * | 2003-06-27 | 2008-11-04 | Microsoft Corporation | System and method for enabling client applications to interactively obtain and present taxonomy information |
US7346629B2 (en) * | 2003-10-09 | 2008-03-18 | Yahoo! Inc. | Systems and methods for search processing using superunits |
US7165119B2 (en) * | 2003-10-14 | 2007-01-16 | America Online, Inc. | Search enhancement system and method having rankings, explicitly specified by the user, based upon applicability and validity of search parameters in regard to a subject matter |
US7240049B2 (en) * | 2003-11-12 | 2007-07-03 | Yahoo! Inc. | Systems and methods for search query processing using trend analysis |
CA2556023A1 (en) * | 2004-02-20 | 2005-09-09 | Dow Jones Reuters Business Interactive, Llc | Intelligent search and retrieval system and method |
US7428530B2 (en) * | 2004-07-01 | 2008-09-23 | Microsoft Corporation | Dispersing search engine results by using page category information |
US7428533B2 (en) * | 2004-12-06 | 2008-09-23 | Yahoo! Inc. | Automatic generation of taxonomies for categorizing queries and search query processing using taxonomies |
US7620628B2 (en) * | 2004-12-06 | 2009-11-17 | Yahoo! Inc. | Search processing with automatic categorization of queries |
DE102005012269B4 (en) * | 2005-03-17 | 2013-05-16 | Robert Bosch Gmbh | Method and arrangement for guiding a vehicle and a corresponding computer program and a corresponding computer-readable storage medium |
US8214360B2 (en) * | 2006-04-06 | 2012-07-03 | International Business Machines Corporation | Browser context based search disambiguation using existing category taxonomy |
US20080010250A1 (en) * | 2006-07-07 | 2008-01-10 | Yahoo! Inc. | System and method for generalization search in hierarchies |
US7991769B2 (en) * | 2006-07-07 | 2011-08-02 | Yahoo! Inc. | System and method for budgeted generalization search in hierarchies |
-
2006
- 2006-12-12 US US11/638,057 patent/US7822734B2/en not_active Expired - Fee Related
-
2010
- 2010-10-13 US US12/903,345 patent/US8341144B2/en not_active Expired - Fee Related
-
2012
- 2012-10-10 US US13/649,087 patent/US20130091116A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634051A (en) * | 1993-10-28 | 1997-05-27 | Teltech Resource Network Corporation | Information management system |
US20030046114A1 (en) * | 2001-08-28 | 2003-03-06 | Davies Richard J. | System, method, and apparatus for storing, retrieving, and integrating clinical, diagnostic, genomic, and therapeutic data |
US20030115191A1 (en) * | 2001-12-17 | 2003-06-19 | Max Copperman | Efficient and cost-effective content provider for customer relationship management (CRM) or other applications |
US20030212673A1 (en) * | 2002-03-01 | 2003-11-13 | Sundar Kadayam | System and method for retrieving and organizing information from disparate computer network information sources |
US20040093326A1 (en) * | 2002-11-12 | 2004-05-13 | Carollyn Carson | Taxonomy for mobile e-services |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170140057A1 (en) * | 2012-06-11 | 2017-05-18 | International Business Machines Corporation | System and method for automatically detecting and interactively displaying information about entities, activities, and events from multiple-modality natural language sources |
US10698964B2 (en) * | 2012-06-11 | 2020-06-30 | International Business Machines Corporation | System and method for automatically detecting and interactively displaying information about entities, activities, and events from multiple-modality natural language sources |
US9424321B1 (en) * | 2015-04-27 | 2016-08-23 | Altep, Inc. | Conceptual document analysis and characterization |
US9886488B2 (en) | 2015-04-27 | 2018-02-06 | Altep, Inc. | Conceptual document analysis and characterization |
WO2017001944A1 (en) * | 2015-06-30 | 2017-01-05 | Yandex Europe Ag | Method, system and computer readable memory for generating ranked search results incorporating suggests |
US20180203845A1 (en) * | 2015-07-13 | 2018-07-19 | Teijin Limited | Information processing apparatus, information processing method and computer program |
US10831996B2 (en) * | 2015-07-13 | 2020-11-10 | Teijin Limited | Information processing apparatus, information processing method and computer program |
CN108038172A (en) * | 2017-12-07 | 2018-05-15 | 北京百度网讯科技有限公司 | Searching method and device based on artificial intelligence |
Also Published As
Publication number | Publication date |
---|---|
US20080140637A1 (en) | 2008-06-12 |
US8341144B2 (en) | 2012-12-25 |
US7822734B2 (en) | 2010-10-26 |
US20110071999A1 (en) | 2011-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130091116A1 (en) | Selecting and presenting search results based on distinct taxonomies | |
US7895175B2 (en) | Client-side federated search | |
US8903853B2 (en) | Federated search | |
US7953775B2 (en) | Sharing tagged data on the internet | |
US7756903B2 (en) | Configuring a search engine results page with environment-specific information | |
US9665649B2 (en) | Contextual help article provider | |
US20080104024A1 (en) | Highlighting results in the results page based on levels of trust | |
US20160154846A1 (en) | System and Method of Addressing and Accessing Information Using a Keyword Identifier | |
US8560519B2 (en) | Indexing and searching employing virtual documents | |
US8117194B2 (en) | Method and system for performing multilingual document searches | |
US20110314014A1 (en) | Method, system and computer program product for federating tags across multiple systems | |
US20070214128A1 (en) | Discovering alternative spellings through co-occurrence | |
US20070005606A1 (en) | Approach for requesting web pages from a web server using web-page specific cookie data | |
US7698329B2 (en) | Method for improving quality of search results by avoiding indexing sections of pages | |
US20090083266A1 (en) | Techniques for tokenizing urls | |
US20110246500A1 (en) | Storing and querying of user feedback in a personal repository accessible to a personal computing device | |
US11556316B2 (en) | Distributed extensible dynamic graph | |
US8694614B2 (en) | Shortcut sets for controlled environments | |
AU2022203732B2 (en) | System and method for reference validation of spreadsheets | |
CN116049238A (en) | Node information query method, device, equipment, medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: YAHOO HOLDINGS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:042963/0211 Effective date: 20170613 |
|
AS | Assignment |
Owner name: OATH INC., NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO HOLDINGS, INC.;REEL/FRAME:045240/0310 Effective date: 20171231 |