When people read documents on the Internet, they often jump from topic to topic. A person might read about a person, a place, a scientific theory, a political development, etc., and might want to find more information about what he or she has read. Typically, the person copies the text of interest from the document that he or she is reading and pastes the text into the search box of a search engine. But when a person uses a search engine to find another document, it is likely that the person will be led away from the site that he or she was reading. The amount of revenue that a commercial web site can generate is often based on how much time users spend on that web site. So, when a user is reading site A and a search engine directs the user to site B, this action often represents lost revenue for the operator of site A. Even for web sites that do not generate revenue, there may be reasons to try to keep the user within the site. For example, a manufacturer might provide a web site that contains manual pages for a product. When a user is seeking help for the product through the manufacturer's site, the manufacturer might want to keep the user on that site for all questions about the product, since the manufacturer may believe that its own web site provides the most accurate information about its product. Even if the site owner does not want to direct the user to other pages in the site, the site owner might want to have some influence over what pages the user accesses when navigating away from the site owner's page.
Web pages often provide hyperlinks to other pages, and pages within the same site often link to each other. If a user is interested in a topic that has a link on the page that he or she is reading, the user will often follow the link rather than initiating a search through a search engine. However, many topics that a user might want to research are not associated with a hyperlink. The provider of the page could attach hyperlinks to all of the words and phrases in the page. However, an excessive number of hyperlinks can become distracting. Moreover, when a page is covered with links, a user may sense that the links were inserted haphazardly, and thus may assume that the links are of little value. Thus, a given web page typically has large amounts of text that are not associated with links. When some of this non-linked text catches the user's interest, the provider of the page is subject to the risk that a search engine will direct the user away from that provider's site.
Links may be provided on a web page in an unobtrusive manner. A web page may contains two types of links: links that are visible in the normal manner (e.g., through underlining, the use of different colors, etc.), and links that are only made apparent in response to some behavior by a user. In one example, the second type of links (“non-apparent links”) are made apparent when a user hovers over a word or phrase. When a user holds the mouse, for some number of seconds, over a word or phrase that has a non-apparent link, the link may be activated so as to make the link apparent to the user. The user then may click on the link and may be taken to the page that is referenced by the link.
In one example, the links that are activated by user behavior point to other pages on the same site, thereby reducing the chance that a user will navigate away from the site that contains the page that the user is currently viewing. In this sense, the techniques described herein may be used to deter a loss of site traffic. However, links could direct a user to any site, or could be used to execute a query on a search engine, or could perform any other action.
One way to implement the non-apparent links is through a script (e.g., a Java script) embedded in the page. The script may detect the hovering behavior, and may activate the appropriate link when the hovering behavior is detected. However, the activation of links may be implemented in any appropriate manner. Moreover, hovering is merely one type of behavior that could activate links. Other types of user behavior could also be used to activate the links.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
When users read documents on the web, they often read about areas that they would like to research further. While reading an article, a user might read about a person, a place, a scientific theory, a political development, etc., and might want to find additional information about what he or she has read. In some cases, the text relating to the topic that the person wants to research is highlighted by a hyperlink that the reader can follow. However, in many cases the user copies and pastes the text of interest into the search box of a search engine in order to find additional documents. Using a search engine in this way tends to direct the user away from the web site that he or she is already using.
The provider of a web site may have various reasons to keep the user on that provider's web site. Some of these reasons may be commercial—e.g., traffic on the provider's web site may generate revenue for the provider. However, there may be other reasons. For example, a product manufacturer might offer support through a web site. The manufacturer might not derive revenue directly from the use of its support site, but might want to encourage users to get support about the product through the manufacturer's web site rather than through other sites. Even if the web site provider does not seek to keep a user on its web site, it may want to influence the user's content experience in some way—e.g., by directing the user to specific third-party web sites. In general, if the user uses a search engine to find the next page to visit, then web site that the user is currently using has no control over what page the user views next. Including hyperlinks in a document encourages users to follow the links for further research rather than using a search engine. But including an excessive number of links in a document may be distracting, and may make the document less visually appealing. Also, including an excessive number of explicit hyperlinks on a page may create the perception, in the user's mind, that the links were not chosen carefully and thus are of little value.
The subject matter described herein provides techniques that give web site providers some influence over what web sites a user visits when the user navigates away from the page that the user is currently viewing. A web page may contain two types of links. One type of link is a normal hyperlink. Such hyperlinks typically appear in Hypertext Markup Language (HTML) web pages as underlined text that is in a different color from the rest of the text. In addition to this type of link, a web page may be infused with links whose existence is not readily apparent, but where the links can be activated, and thus made apparent, in response to user behavior. For example, certain words and phrases in a document might be associated with links. If a user hovers over one of these words or phrases for some defined amount of time (e.g., a particular number of seconds), the link is activated and appears to the user. The user can then click the link in order to go to the page referenced by the link. One way to implement these links is to include, in a page, a Java script (or other type of script) that detects the user's hovering behavior (or some other behavior), and that activates the links when the behavior is detected.
The links may be chosen in any manner. For example, prior to publication of a web page, the page may be analyzed to detect words and phrases in the page, and then a particular corpus of documents (e.g., the documents that make up a particular web site) may be examined to determine which pages within that site would be relevant to the detected words or phrases. The links may then be made to point to those pages. In one example, links are created for those words and phrases for which a relevant page exists in the same site as the referring page, thereby allowing a web site provider to encourage users to stay within that site. However, the links could point anywhere—e.g., the link could point to a third-party page, the link could invoke a search query on a search engine, etc.
Turning now to the drawings,
In addition to explicitly linked text 102, web page 100 also contains several non-explicit links. The non-explicit links may not be apparent to the user, since they might not be highlighted during normal viewing of web page 100. That is, when web page 100 is first loaded and rendered, the text associated with non-explicit links may appear in normal writing (e.g., without underlining, or without being colored differently from the rest of the text). However, in response to some form of behavior in which the user has engaged, the non-explicit links may become activated, thereby allowing the user to follow the links as if they were explicit links. In
Data to represent the non-explicit links may be stored in page 100. For example, data 114 contains the Uniform Resource Locators (“URLs”) that are associated with sections of text 104, 106, and 108. Code may be included in page 100 (e.g., browser-executable script 116, which could be Java script, HTLM 5 script, or any other type of script) that detects the user behavior that triggers activation of a link, and that retrieves the appropriate URL from data 114. Thus, if a user hovers over text 104 for a sufficient period of time, script 116 would detect that the link associated with text 104 has been activated. That code would then use data 114 to identify the link associated with text 104 (“http://cs.example.com/quicksort), and would then activate the link by making text 104 appears like an ordinary hyperlink. The user could then click on the link in box 110. (It is noted that the link might be made to appear as an ordinary hyperlink, but might not be implemented in the same way. For example, explicit hyperlinks might be implemented with <a> tags that can be processed directly by a browser's HTML engine, while non-explicit hyperlinks might not be implemented using <a> tags. Thus, the code that implements the non-explicit links—e.g., script 116—may also intercept clicks on the activated links in order to perform the appropriate action in response to clicks on those links.)
At 202, the article is examined in order to associate various words and phrases in an article with other documents. For example, if the phrase “Shell sort” appears in the document to be published, it may be determined that the article located at http://cs.example.com/shellsort is particularly relevant to that phrase. This determination may be made by a human editor, through algorithmic search techniques, or through any other appropriate mechanism.
At 204, a link is created between the phrase and the document. As described above in connection with
As noted above, one aspect of choosing links to words or phrases in a document is that the links can be chosen in a manner that tends to keep users on a single multi-page web site. For example, if page 100 on the history of sorting (shown in
At 206, code may be embedded in the page, where the code detects the user behavior that activates the links. For example, a Java script may be added to the page, where the Java script may detect whether the user has hovered over a particular word or phrase for a sufficient amount of time, and causes a non-explicit link to be displayed if hovering has occurred for that amount of time.
At 208, the page—including its embedded code and non-existent links—may be published for consumption. In one example, the page is published so as to be accessible to the public on the Internet, although the page could be published in any manner.
After a page has been published, it may be accessed by a user, and the user may interact with the page.
As the user interacts with the page, the code that is used to implement the non-explicit links determines whether to activate the links. This determination typically involves determining whether a particular user behavior has occurred with respect to the page or with respect to the links. However, one example way of determining whether to activate the links is described below. At 308, it is determined whether the cursor (e.g., the arrow cursor controlled by the mouse or other pointing device) is in an autolink area. (The areas that are enclosed by dotted lines in
If it had been determined at 308 that the cursor is in the autolink area, then it may be determined (at 314) whether the cursor remains in that area for some defined amount of time such as N seconds, where N is a number such as two. If the cursor does remain in the autolink area for N seconds, then, based on that determination, the autolink may be displayed in some manner (at 316). For example, the autolink may be displayed as if it were a hyperlink—e.g., by underlining the text associated with the autolink and/or making the color of that text different from the color of other text in the document. Or, a separate user interface such as a box containing the link may be displayed to the user. If the user clicks in the autolink area (as determined at 318), then the user may be taken to the page referenced by the link—e.g., by loading that page into the current browser window and/or tab, or into a new window and/or tab (at 320).
Script generator 408 adds a script to content 402 that implements the non-explicit links. For example, script generator 408 may add a Java script that detects the user behavior that activates a link. Additionally, script generator 408 may add, to the page, the code and/or data that associates a given text segment with a particular non-explicit link. For example, a Java script to be included in a web page may include one or more data fields that identify the locations of the various autolink areas, and that also identify the URLs that are pointed to by the autolink areas. For example, data 114 (shown in
After publisher component 404 evaluates content 402 and adds the appropriate script (e.g., by using content analyzer 406 and script generator 408 in the manner described above), publisher component 404 generates document 410, which comprises content 402 plus an autolink script 412, where autolink script 412 contains the non-explicit links, and also detects the behavior that activates the non-explicit links. Document 410 may be stored in document repository 414. It is noted that the non-explicit links in a document may be changed after document 410 is added to document repository. For example, the links in document 410 may be updated regularly in order to ensure that the links are fresh. As another example, another way to keep the links fresh is to add a level of indirection to the links. For example, if the link is to point to an article on Shell sort, it could point to http://contentserver.example.com/shellsort. The actual article might be stored somewhere else (e.g., at http://cs.example.com/shellsort, as in the earlier example), but contentserver.example.com may know what the current article on Shell sort is, and can redirect to that article. That way, if the location of the article changes, contentserver.example.com can redirect a request to the new location, so that if a user follows an autolink the link will direct the user to a place that has current, relevant content.
At some point, client 416 requests document 410. For example, client 416 may be a browser on a user's computer, and client 416 may request document 410 as a result of the user's having entered the URL of document 410 into the browser's navigation bar. Thus, client 416 issues request 418 for document 410 to web server 420. Web server 420 then retrieves (422) document 410 from document repository 414. Document repository 414 then provides document 410 to web server 420, which serves document 410 to client 416.
Once the document is on client 416, it may be displayed to the user, and the process of
Computer 500 includes one or more processors 502 and one or more data remembrance components 504. Processor(s) 502 are typically microprocessors, such as those found in a personal desktop or laptop computer, a server, a handheld computer, or another kind of computing device. Data remembrance component(s) 504 are components that are capable of storing data for either the short or long term. Examples of data remembrance component(s) 504 include hard disks, removable disks (including optical and magnetic disks), volatile and non-volatile random-access memory (RAM), read-only memory (ROM), flash memory, magnetic tape, etc. Data remembrance component(s) are examples of computer-readable storage media. Computer 500 may comprise, or be associated with, display 512, which may be a cathode ray tube (CRT) monitor, a liquid crystal display (LCD) monitor, or any other type of monitor.
Software may be stored in the data remembrance component(s) 504, and may execute on the one or more processor(s) 502. An example of such software is autolink software 506, which may implement some or all of the functionality described above in connection with
The subject matter described herein can be implemented as software that is stored in one or more of the data remembrance component(s) 504 and that executes on one or more of the processor(s) 502. As another example, the subject matter can be implemented as instructions that are stored on one or more computer-readable storage media. Tangible media, such as an optical disks or magnetic disks, are examples of storage media. The instructions may exist on non-transitory media. Such instructions, when executed by a computer or other machine, may cause the computer or other machine to perform one or more acts of a method. The instructions to perform the acts could be stored on one medium, or could be spread out across plural media, so that the instructions might appear collectively on the one or more computer-readable storage media, regardless of whether all of the instructions happen to be on the same medium.
Additionally, any acts described herein (whether or not shown in a diagram) may be performed by a processor (e.g., one or more of processors 502) as part of a method. Thus, if the acts A, B, and C are described herein, then a method may be performed that comprises the acts of A, B, and C. Moreover, if the acts of A, B, and C are described herein, then a method may be performed that comprises using a processor to perform the acts of A, B, and C.
In one example environment, computer 500 may be communicatively connected to one or more other devices through network 508. Computer 510, which may be similar in structure to computer 500, is an example of a device that can be connected to computer 500, although other types of devices may also be so connected.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.