The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, explain the invention. In the drawings,
The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
Consistent with aspects of the invention, documents selected or browsed by a user may be “bookmarked,” using the user's browser, such that the user can easily return to the bookmarked documents. The bookmarked documents may then be selectively used in ranking search results that result from a search query issued by the user. For each of a user's bookmarks, the user may specify how and if each document bookmark should be used when ranking the user's search results. Thus, in some implementations, documents corresponding to a user's bookmarks may be ranked higher within a set of search results than un-bookmarked documents in the set of search results.
A “document,” as the term is used herein, is to be broadly interpreted to include any machine-readable and machine-storable work product. A document may include, for example, an e-mail, a website, a business listing, a file, a combination of files, one or more files with embedded links to other files, a news group posting, a blog, a web advertisement, a digital map, etc. In the context of the Internet, a common document is a web page. Documents often include textual information and may include embedded information (such as meta information, images, hyperlinks, etc.) and/or embedded instructions (such as Javascript, etc.). A “link” as the term is used herein, is to be broadly interpreted to include any reference to/from a document from/to another document or another part of the same document.
The user may subsequently send a search query to the server to execute a search of a corpus of documents (e.g., web pages, images, products and/or services, music, videos). The server may execute the search, using existing document searching techniques, to return a set of search results. The set of search results may include documents that are relevant to the search query sent by the user. Using existing ranking techniques, the server may rank the search results to, for example, put them in order from “most” relevant to “least” relevant, thus, producing ranked search results 115. The server may then access the user's stored bookmarks and, possibly, the user indications of how and if each document bookmark 110 should be used when ranking search results. The server may use bookmarks 110, and the user indications of how and if each document bookmark 110 should be used, in re-ranking the search results to produce re-ranked search results 120. The user's bookmarks 110, thus, may be selectively used in promoting corresponding documents in ranked search results 115.
Clients 205 may include client entities. An entity may be defined as a device, such as a personal computer, a wireless telephone, a personal digital assistant (PDA), a lap top, or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executable by one of these devices. Clients 205 may implement a browser for browsing documents stored at servers 210 or 230, the browser including a toolbar 105 that includes bookmark functionality, as further described in detail below. Servers 210 and 230 may include server entities that access, fetch, aggregate, process, search, and/or maintain documents in a manner consistent with the principles of the invention Clients 205 and servers 210 and 230 may connect to network 220 via wired, wireless, and/or optical connections.
In an implementation consistent with the principles of the invention, server 230 may include a search engine 235 usable by users at clients 205. Server 230 may implement a data aggregation service by crawling a corpus of documents (e.g., web pages) hosted on data server(s) 210, indexing the documents, and storing information associated with these documents in a repository of crawled documents. The aggregation service may be implemented in other ways, such as by agreement with the operator(s) of data server(s) 210 to distribute their documents via the data aggregation service. Search engine 235 may execute a search using a query, received from a user at a client 205, on the corpus of documents stored in the repository of crawled documents. Server 230 may provide, to a user issuing a query, a ranked list of documents related to the issued query. Server 230 may also store bookmarks, received from respective users at clients 205, in bookmarks records 240. The stored bookmarks may subsequently be retrieved by server 230 for use in ranking search results for respective users.
Data server(s) 210 may store or maintain documents that may be crawled by server 230. Such documents may include data related to published news stories, products and/or services, images, user groups, geographic areas, music, videos, or any other type of data. For example, server(s) 210 may store or maintain news stories from any type of news source, such as, for example, the Washington Post, the New York Times, Time magazine, or Newsweek. As another example, server(s) 210 may store or maintain data related to specific products, such as product data provided by one or more product manufacturers. As yet another example, server(s) 210 may store or maintain data related to other types of web documents, such as pages of web sites.
While servers 210 and 230 are shown as separate entities, it may be possible for one of servers 210 or 230 to perform one or more of the functions of the other one of servers 210 or 230. For example, it may be possible that servers 210 and 230 are implemented as a single server. It may also be possible for a single one of servers 210 and 230 to be implemented as two or more separate (and possibly distributed) devices.
Network 220 may include one or more networks of any type, including a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN) or a Public Land Mobile Network (PLMN), an intranet, the Internet, a memory device, or a combination of networks. The PLMN(s) may further include a packet-switched sub-network, such as, for example, General Packet Radio Service (GPRS), Cellular Digital Packet Data (CDPD), or Mobile IP sub-network.
Processor 320 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Main memory 330 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 320. ROM 340 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 320. Storage device 350 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device 360 may include a mechanism that permits an operator to input information to the client/server entity, such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. Output device 370 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 380 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 380 may include mechanisms for communicating with another device or system via a network, such as network 240.
The client/server entity, consistent with the principles of the invention, may perform certain operations or processes, as will be described in detail below. The client/server entity may perform these operations in response to processor 320 executing software instructions contained in a computer-readable medium, such as memory 330. A computer-readable medium may be defined as a physical or logical memory device and/or carrier wave.
The software instructions may be read into memory 330 from another computer-readable medium, such as data storage device 350, or from another device via communication interface 380. The software instructions contained in memory 330 may cause processor 320 to perform operations or processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the principles of the invention. Thus, implementations consistent with the principles of the invention are not limited to any specific combination of hardware circuitry and software.
The user's specification of how and if a user's bookmarks may be used in ranking search results, as depicted above in
Each record entry 910 may further include data (not shown in
The exemplary process may begin with the receipt of a search query (block 1000)(
The search results may be ranked in ranked order (block 1020). Server 230 may use existing ranking techniques for placing the documents of the search results in ranked order. For example, server 230 may order the search results based on a determination of the relevance of each of the search results to the search query. Those results that are more relevant to the search query may, thus, be ranked higher than less relevant results.
User bookmark(s) may be obtained (block 1030). Bookmarks associated with the user that sent the search query to server 230 may have been previously stored in bookmark records 240. Server 230 may retrieve the user's bookmarks from bookmark records 240. Server 230 may additionally retrieve, for each of the bookmarks, the corresponding indications received from the user that specify how and if a user's bookmarks should be used in ranking search results. As shown in
The search results may be re-ranked based on the obtained user bookmark(s) (block 1040). In one implementation, if documents corresponding to the user bookmark(s) are contained in the search results, then those documents may be promoted higher in the ranked search results relative to other of the search results. In other implementations, the user's specification, for each bookmark, may be used to determine how and if the user's bookmarks should be used in re-ranking the search results. For example, if the user had selected the “Move to top of search results for all queries” option for a given bookmark in window 500 of toolbar 105, then server 230 may promote the given bookmark upwards within the set of ranked search results. In further implementations, if documents corresponding to the category(ies) (determined in block 1030 above) associated with the user bookmark(s) are contained in the search results, then those documents may be promoted higher in the ranked search results relative to other of the search results. A document may correspond to a category(ies) associated with the user bookmark if it is determined to relate to the category(ies).
As another example, if the user had selected the option “Move to top of search results for selected queries” 600 for a given bookmark from window 500 of toolbar 105, then server 230 may promote the given bookmark upwards within a set of ranked search results that result from execution of a search using a search query that matches the queries that the user had entered in window 610. As yet another example, if the user had selected the “Move to top of search results all URLs from a same site” option 700 for a given bookmark from window 500 of toolbar 105, then server 230 may promote the given bookmark, and all other search results from a same site as the bookmark, upwards within the set of ranked search results. As a further example, if the user had selected the “Do not use for re-ranking search results” option 800 for a given bookmark from window 500 of toolbar 105, server 230 may not promote the given bookmark upwards within the set of ranked search results. In the illustrative example of
The re-ranked search results may be provided to the user (block 1050). For example, the ranked search results may be placed in rank order in a document and sent to the user at client 205 via network 220.
The foregoing description of implementations consistent with principles of the invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings, or may be acquired from practice of the invention. For example, while a series of acts have been described with regard to
It will be apparent to one of ordinary skill in the art that aspects of the invention, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects consistent with the principles of the invention is not limiting of the invention. Thus, the operation and behavior of the aspects have been described without reference to the specific software code, it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
The present application is a continuation-in-part of U.S. application Ser. No. 11/327,644 (Attorney Docket No. 0026-0194), entitled “Server Bookmarks” and filed Jan. 9, 2006, the disclosure of which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 11327644 | Jan 2006 | US |
Child | 11536923 | US |