Abstract:
A web browser program automatically reconfigures chrome of an interface to provide access to groups of related information. The web browser program includes a content display program module, a chrome display program module, a current site communication program module, a chrome configuration processing program module, and a related information servers indication receiving program module.

Description:
TECHNICAL FIELD 
     The present invention relates to providing “related information” to users as they browse the world wide web and, in particular, to giving such users “related information” from a variety of different sources, where a designation of the particular sources is dynamically reconfigurable. 
     BACKGROUND 
     The internet (also known as the “world wide web”, or simply “the web”) is a vast global computer network that has lately become exceedingly popular. A typical user of the internet access “web pages” via a browser program executing on that user&#39;s computer—a “client computer”—by typing the address of the web page into a location area of the browser&#39;s user interface. Web page addresses are in the form of universal resource locators, or URL&#39;s. For example, the web page of Netscape Communications Corporation may be accessed by the user typing in the URL “for the Netscape web site” into the location area of the browser&#39;s user interface. A major drawback of the internet is that untrustworthy information is sometimes (and very easily) published via the internet, and users have no quick and reliable way to distinguish trustworthy information from untrustworthy information. 
     One way to determine the reliability of information on one site of the internet is to view other “related” sites to see what these other sites say about the same subject matter. Alexa Internet of San Francisco, Calif., provides a software product that integrates with a browser to present such related information to the user. The Alexa software product determines which sites to list as related information by performing link and text analysis of a large number of web pages to determine similarities between a page being viewed and other pages; by studying patterns of web use; and from user suggestions. A significant disadvantage of the Alexa approach is that, once a browser is initially configured to interact with the Alexa service, the user only enjoys one point of view, that determined by Alexa Internet, as to what is related information. 
     What is desired is a browser that allows a user to easily enjoy multiple competing points of view as to what is “related information”. Furthermore, it is desired that whether the browser presents one or multiple points of view, that the user can easily choose which point(s) of view are presented. 
     SUMMARY 
     A web browser program is executed on a client computer that is connectable to a plurality of server computers via a computer network. In general, the web browser program automatically reconfigures chrome of a user interface to the web browser program to provide a user access to any one of a plurality of groups of related information. 
     A content display program receives content data from a current server computer that is one of the plurality of server computers. The content display program displays, on a content portion of the display of the client computer, that corresponds to the content data. 
     A chrome display program displays, on a chrome portion of the client computer display, chrome that corresponds to chrome specifiers in a chrome configuration database. 
     A current site communication program provides an indication of the current server computer to a plurality of “related information” servers indicated by a “related information” servers indication. This indication may be, for example, a “universal resource locator” or keywords used by the browser program to index to a site to display. 
     A chrome configuration processing program is configured to receive, from the plurality of “related information” servers, “related information designators. These “related information” designators are provided to the client computer based on the indication of the current server computer. The chrome configuration processing program provides the “related information” designators as ones of the chrome specifiers in the chrome configuration database. As a result, the chrome display program displays the “related site” designators as part of the chrome. 
     A “related information” servers indication receiving program receives the “related information” servers indication from at least one of the plurality of server computers such that the “related information” servers indication is dynamically reconfigurable. 
     By providing “related information” from multiple sites, multiple competing points of view can be provided to the user. Furthermore, by making the definition of the sites that provide the “related information” dynamically reconfigurable, the reliability of the “related information” provided is further enhanced. 
    
    
     
       BRIEF DESCRIPTION OF FIGURES 
         FIG. 1  illustrates, in a very basic form, the topology of a computer network, such as the internet. 
         FIG. 2  illustrates a browser display, including a content portion and a chrome portion. 
         FIG. 3  illustrates, in block form, a browser program configured to cause the display of the content portion and the chrome portion, and for handling a user interface to the chrome portion.  FIG. 3  further illustrates how the browser is configured to display, as part of the chrome portion of the display, “related information” that is related to content currently being displayed in the content portion of the display, and how an indication of the servers providing the “related information” is dynamically configurable. 
     
    
    
     DETAILED DESCRIPTION 
     In accordance with an embodiment of the present invention, a browser program is configured to execute on a client computer. Referring to  FIG. 1 , the client computer  104  is connected to a network  102  (e.g., the internet) and is configured to receive data from a server computer  106  that is also connected to the network  102 . Reference is now made to  FIGS. 2 and 3  in addition to  FIG. 1 . In operation, the browser program  300  includes a content display program  302  that operates on HTML (hypertext markup language) data received from the server computer  106  via the network  102  to cause content to be displayed on a content portion  202  of a browser window  200  on the display of the client computer  104 . 
     In addition, the browser program  300  also includes a chrome display and action program  304  that causes chrome to be displayed on a chrome portion  204  of the display of the client computer  104 . The chrome display and action program  304  also processes actions based on user input to the chrome portion  204  of the display of the client computer  104 . Both the chrome display and chrome action processing is responsive to the contents of a chrome configuration database  306 . 
     Specifically, the chrome configuration database  306  includes chrome specification records (designated in  FIG. 3  by the reference numeral  308 ) containing chrome specifiers that specify both the appearance of each portion of the chrome and the behavior associated with activation of that portion of the chrome. Activation may occur in one of a number of ways, such as “clicking” on the portion, pulling down a menu from the portion (where the appearance and behavior of the menu pulled down is also in the chrome specification records), or even moving a cursor across the portion. In one embodiment, the behavior is specified as a JavaScript file that, when executed, performs the behavior. 
     The chrome specification information may originate either from the server computer  106 , or may be based on user actions. In one embodiment, chrome specification information that originates from the server computer  106  is in the form of Resource Description Framework (RDF) language. RDF is a schema being considered, but not yet adopted, by the World Wide Web Consortium (W3C) to model web resources and their interrelationships. At the time of filing this patent applications, RDF is only defined in “working draft” form. A copy of the latest working draft, dated Aug. 14, 1998, is available via the world wide web at w3.org/TR1998/WD-rdf-schema.19980814, and is hereby incorporated by reference in its entirety. The newest version is always available at w3.org/TR/WD-rdf-schema.19980814. If the chrome specification information originates from the server computer  106 , then it is processed by a chrome configuration process  310  and the records  308  of the chrome configuration database  306  are modified accordingly. By contrast, if the chrome specification information originates from user actions, then it is processed by a user-defined chrome process  312 . Using user actions to specify chrome, at least in some limited fashion, is known in the art. For example, the Communicator 4.0 browser of Netscape Communications Corporation allows for manipulating a tree structure of bookmarks, by, for example, dragging a link into a personal toolbar folder to cause the browser to display the links on a personal toolbar portion of the browser&#39;s chrome. See  Official Netscape Communication  4  Professional Edition Book , by Phil James and tar Calishain (Ventana Communications Group 1997). In contrast to Netscape Communicator 4.0, however, in the described embodiment, user actions would manipulate a representation of the chrome specification records  308  in the chrome configuration database. Either or both of the processes  310 ,  312  may be employed to modify the records  308  of the chrome configuration database  306 . 
     The operation of the browser program  300  is now discussed in greater detail relative to the chrome configuration. In one embodiment, the browser program  300  is configured such that, upon installation, connection is automatically made to a default “chrome provider” server computer that is one of the server computers  106 . For example, if the browser program  300  is one provided by Netscape Communications Corporation, then connection would be automatically made to a “chrome provider” web server controlled by Netscape Communications Corporation. In one embodiment, the “chrome provider” web site (or server—these terms are used interchangeably) obtains knowledge of the user&#39;s demographics (e.g., by asking or from identification information available to it either from registration or on the client computer  104 ) and provides a particular chrome specification that corresponds to those demographics. For example, a particular chrome specification may be provided that corresponds to a language that the user understands. As another example, the demographic may be determined from information stored on the server computer  106  corresponding to the user, such as a record of buying behavior of a user at an online shopping site. 
     In addition, other content providers may take advantage of the chrome configuration feature of the browser program  300  such that, when a client computer  104  executing the browser program  300  connects to the server computer  106  providing that content, the server  106  provides a chrome specification that corresponds to that content. For example, a stock information web site may be configured such that its server  106  provides a particular chrome specification to a client computer  104  corresponding to stock information. As one specific illustrative example, the server computer  106  may provide chrome specification that, when processed and loaded into a record  308  of the chrome configuration database  306 , results in a “$”-shaped button being generated in the chrome portion  204  of the browser display window  200 . As discussed above, the chrome specification for the “$”-shaped button received from the server  106  may also have associated with it particular behavior that would result when a user activates the “$”-shaped button. 
     In a further embodiment, the chrome provider is a “related information” provider. In accordance with this further embodiment, a “related information” server indication database  307  is provided (either at the client computer  104  as shown in  FIG. 3  or at one of the server computers  106 ). For content displayed on the content portion  202  of the browser window  200 , the browser (see block  309  in  FIG. 3 ) provides an indication of that content to the “related information” servers indicated in the “related information” database  307 . In response to the content indication provided by the browser program  300 , software executing on the “related information” servers provides “related information” back to the browser  300  for the chrome configuration process  310  to store into the chrome configuration database  306  as chrome specifiers. As a result of the chrome configuration database  306  including the “related information” as chrome specifiers, the chrome display and action program  304  causes the “related information” to be displayed as a part of the chrome portion  204 . 
     One example of the “content indication” includes the URL of the site for which content is being displayed in the content portion  202 . Another example of the “content indication” includes keywords entered by a user to a “smart keywords” feature of the browser  300 , where the “smart keywords” feature is utilized by the browser to obtain a URL. Examples of the “related information” include, but are not limited to, reviews of the web site, other web sites (i.e., links thereto) that have content on related topics, reviews of the web site, or other types of information as provided, for example, by the Alexa Internet product discussed above. Significantly, by providing “related information” from multiple sites, multiple competing points of view can be provided to the user. 
     The send module  309  may also provide an indication to the “related information” servers of a demographic of the user. This demographic indication may be determined, for example, from a cookie file on the client computer  104  or from identity preference information defined by the user and stored on the client computer, e.g., during installation and setup of the browser program  100  on the client computer  104 . The “related information” server computer  106  may then use the demographic information to provide “related information” that is focused to that particular user. In some cases, the demographic information sent by the send module  309  may consist only of identity information, and the “related information” server includes functionality to match the identity information to demographic information accessible by the server computer  106 . For example, the server computer  106  may be a web retail site from which the user has previously made purchases of which the web retail site has a record. In fact, the web retail site (or other sites) may provide to the client computer  104  (specifically, the “related information” server database  307 ) an indication of itself as a “related information” server in a manner similar to that discussed above with respect to chrome configuration specifiers. 
     Furthermore, in preferred embodiments, the “related information” server indication database is dynamically reconfigurable in order to further enhance the reliability of the points of view provided. (This is so whether “related information” is being received from just one, or from more than one, “related information” server.) That is, in a manner similar to the manner in which the chrome is dynamically reconfigured, the “related information” server indications are also dynamically reconfigurable. For example, as discussed above relative to chrome specifiers, the “related information” server indications may be provided to the “related information” server indication database by downloading an RDF file from a server computer (which may or may not be one of the “related information” servers)  106 , wherein the chrome configuration program module  310  (or another program module provided expressly for this purpose) processes the downloaded RDF file to populate the “related information” server indication database  307 . 
     It is intended that the following claims define the scope of the invention and that methods and apparatus within the scope of these claims and their equivalents be covered thereby. 
     Attached hereto as Appendix A is an engineering specification entitled “Configurable Chrome (Cthulhu)” which is to be considered an integral part of this specification. 
     Attached hereto as Appendix B is portions (sixty one modules) of browser source code to implement modifiable chrome. 
     Attached hereto as Appendix C is source code to implement the related information provider feature.