Abstract:
A browsing application includes instructions for identifying and subscribing to a syndication feed delivered over a network. The instructions include code for analyzing a page of data that has been retrieved over the network by a browsing application to determine the availability of the syndication feed, code for causing a user interface element to be displayed on the browsing application, the user interface element indicating the availability of the syndication feed, and code for responding to a user&#39;s selection of the user interface element by causing the browsing application to display a page which permits the user to subscribe to the syndication feed.

Description:
This application claims the benefit of U.S. Provisional Application Ser. No. 60/681,458 filed May 17, 2005 entitled Systems and Methods for Providing Features and User Interface in Network Browsing Applications, the disclosure of which is incorporated herein by reference in its entirety. 
    
    
     This application includes material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever. 
     FIELD OF THE INVENTION 
     The present invention relates in general to the field of network browsing-enabled applications, and in particular to systems and methods that provide for improved access to really simple syndication feeds in such applications. 
     BACKGROUND OF THE INVENTION 
     Network browsing applications allow a computer user to view the contents of a network. Some network browsing applications, like Windows Explorer distributed by the Microsoft Corporation of Redmond, Wash., focus on specific types of networks and/or files. For example, Windows Explorer is primarily oriented toward browsing files in a local area network. Other network browsing applications, such as Netscape Navigator, distributed by Netscape Corporation of Mountain View, Calif., or Internet Explorer, distributed by the Microsoft Corporation, allow users to install “plug-in” applications that allow the network browsing application to work with additional file types. Additional examples of network browsing applications, also referred to herein as “browsing applications” for simplicity, include, without limitation, internet browsers, mail programs with browsing capabilities, file-sharing applications, and any application which provides the capability to browse resources either on an external network (e.g., the internet) or an internal network. Such applications may be separate from or integrated into an operating system. 
     Some web sites that can be accessed by network browsing application include content that changes over time. Examples of such web sites include news sites, such as CNN.com or FoxNews.com, as well as blogs, weather sites, discussion forums, project status sites, and the like. Some network users are members of projects or forums related to a particular topic, or may merely be interested in tracking changes to a particular site (e.g., breaking news stories). For at lest the last decade, the only way to monitor changes to a particular site was to visit all site&#39;s pages on a regular basis. However, a relatively new technology, referred to as “syndication”, allows a network user to easily view, and even receive, content changes made since the network user last visited the site. A high-level description of one syndication technology, known as Really Simple Syndication or RSS, is provided at http://rss.softwaregarden.com/aboutrss.html, which is incorporated herein by reference in its entirety. The specification for RSS 2.0 can be found at http://blogs.law.harvard.edu/tech/rss, and is incorporated herein by reference in its entirety. An alternative syndication technology, known as Atom, is described in a series of Internet Drafts submitted to the Internet Engineering Task Force (IETF) which can be reviewed at http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-11.txt, http://www.ietf.org/internet-drafts/draft-ietf-atompub-protocol-05.txt, and http://www.ietf.org/internet-drafts/draft-ietf-atompub-autodiscovery-01.txt, the contents of which are incorporated by reference herein in their entirety. 
     To view the changes to a site as published using a syndication technology, the network user must utilize a network browsing application compatible with the syndication technology implemented by the site. As the number of syndication technologies increases, and as the technologies mature, network users are likely to become frustrated with individual network browsing applications unless the network users constantly upgrade their software. 
     What is needed is a means through which network users can more readily subscribe to and browse a syndication feed. 
     SUMMARY OF THE INVENTION 
     Accordingly, the present invention is directed to systems and methods for improving access to syndication feeds that substantially obviate one or more of the problems due to limitations and disadvantages of the related art. 
     In one embodiment, a computer-readable storage medium containing a set of instructions for a general purpose computer is provided for identifying and subscribing to a syndication feed delivered over a network. The instructions include code for analyzing a page of data that has been retrieved over the network by a browsing application to determine availability of the syndication feed, and code for causing a user interface element to be displayed on the browsing application, the user interface element indicating the availability of the syndication feed. Code may further be provided for responding to a user&#39;s selection or activation of the user interface element by causing the browsing application to display a page which permits the user to subscribe to the syndication feed. Alternatively, selection or activation of the user interface element causes subscription to the syndication feed. The code may be provided in the form of a plugin to a browsing application, source code integrated into the browsing application at the source code level, or a combination thereof. 
     Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a screen capture of an exemplary embodiment of the invention illustrating the integration of a syndication subscription button into a browsing application. 
         FIG. 2  is a block diagram illustrating an exemplary network architecture supporting the present invention. 
         FIG. 3  is a block diagram illustrating an exemplary method for implementing the present invention. 
         FIG. 4  is a screen capture of an exemplary embodiment of the invention illustrating a sample syndication feed subscription user interface. 
         FIG. 5  is a block diagram illustrating an exemplary 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. 
     Services such as my.yahoo.com allow users to select web pages, portions of web pages, syndication feeds, search boxes, and other content from anywhere on the internet for inclusion in the customized home page. Thereafter, when the user visits his or her customized home page, any syndication feed selected for inclusion appears on that page along with any other content such as news pages, search fields, or the like, selected for inclusion in the home page by the user. The user can set the default home page of his browser to such a customized web page so that the customized web page loads when the browser is opened. 
     The embodiments of the invention disclosed herein relate to improved functionality and user interface features for network browsing-enabled applications. Such applications, referred to herein as “browsing applications,” include, e.g., internet browsers, mail programs with browsing capabilities, file-sharing applications, and any application which provides the capability to browse resources either on an external network (e.g., the internet) or an internal network. Such applications may be separate from or integrated into an operating system. 
     The functionality of the embodiments described herein is provided in the form of add-ons or plug-ins to an existing browsing application such as a web browser, but can alternatively be provided in the form of features written into a browsing application at the application&#39;s source code level. In certain embodiments, one or more of the features or functionality described below are provided as a compiled dynamic link library (“.dll.”) file or series of compiled .dll files which are loaded at startup or runtime in connection with an existing browsing application so as to provide an improved user interface and/or additional functionality to the browsing application. As is set forth in further detail below, one or more of the features or functionality described below can be provided or customized by a feed such as an XML feed which is delivered to the browser upon the occurrence of a triggering event. Such triggering events can include, without limitation, the loading of the browser into the operating system, a change in user-specific parameters, a time of day, or the like. For load-balancing or other purposes, feed downloads can be limited to occurring only a certain number of times per day, hour, minute, or the like. Triggering events can occur on the client or on a server, and the feed can be requested by the client or pushed to the client from a server. In this respect, “client” as used herein can be either a client browsing application such as a web browser or a client machine in general. An example of a download feed is provided in Appendix A and discussed in further detail below. 
       FIG. 1  illustrates embodiments wherein browsing application  1  is configured to display a syndication subscription button  35  or other such user interface element when such subscriptions are supported by the site being visited. Such a button may be displayed, for example, in the lower right-hand corner of the application&#39;s window. In one embodiment, when a page is loaded into browsing application  1 , browsing application  1  analyzes the page to determine whether a syndication feed is available via the page. By way of example, without intending to limit the present invention, one embodiment can search the source of the page for &lt;link&gt; tags with types “application/rss+xml”, “application/atom+xml”, or “application/x.atom+xml”. In this embodiment, if a web page having a header similar to the header set forth in Table 1 were analyzed, the page would be identified as having at least one syndication feed available therein. 
     
       
         
               
             
           
               
                 TABLE 1 
               
               
                   
               
             
             
               
                 &lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”&gt; 
               
               
                 &lt;html&gt; 
               
               
                 &lt;head&gt; 
               
               
                 &lt;title&gt;Top Stories News on Yahoo! News&lt;/title&gt; 
               
               
                 &lt;META HTTP-EQUIV=“refresh” CONTENT=“300&gt; 
               
               
                 &lt;meta http-equiv=“content-type” content=“text/html; charset=UTF-8” /&gt; 
               
               
                 &lt;meta name=“description” content=“Top Stories News on Yahoo! News”&gt; 
               
               
                 &lt;meta name=“keywords” content=“”&gt; 
               
               
                 &lt;link rel=“stylesheet” type=“text/css” 
               
               
                 href=“http://us.i1.yimg.com/us.yimg.com/lib/common/lsmfonts20040826.css” /&gt; 
               
               
                 &lt;!-- &lt;link rel=“stylesheet” type=“text/css” 
               
               
                 href=“/v10/us/news/css/ynews_ns.css” /&gt; --&gt; 
               
               
                 &lt;style type=“text/css”&gt;&lt;!--@import 
               
               
                 url(“http://us.i1.yimg.com/news.yahoo.com/v10/us/news/css/ynews.css?v=111627 9561”);--&gt;&lt;/style&gt; 
               
               
                 &lt;link rel=“alternate” type=“application/rss+xml” title=“Yahoo! News - Top Stories” 
               
               
                 href=“http://rss.news.yahoo.com/rss/topstories” /&gt; 
               
               
                 &lt;link rel=“alternate” type=“application/atom+xml” title=“Yahoo! Sports - Top News” 
               
               
                 href=“http://sports.yahoo.com/top/rss.xml”/&gt; 
               
               
                 &lt;link rel=“alternate” type=“application/x.atom+xml” title=“Yahoo! Sports - Top News” 
               
               
                 href=“http://sports.yahoo.com/top/rss.xml”/&gt; 
               
               
                 &lt;/head&gt; 
               
               
                   
               
             
          
         
       
     
     Referring to  FIG. 2 , if browser application  1  identifies the site being viewed as supporting syndication, browsing application  1  can display user interface element  35 . Upon selection or other activation of user interface element  35 , browsing application  1  directs itself or a child window to a page on the network, such as, without limitation, a page on central server  12 , which allows the network user to add the syndication feed to a customized home page. An exemplary embodiment of such a page is illustrated in  FIG. 4 , and includes a list of recently syndicated topics  50 . The page preferably also allows the network user to cancel the subscription by clicking remove button  55  or another such user interface element. 
     Referring again to the embodiment illustrated in  FIG. 2 , the network user&#39;s settings are preferably stored in server-based configuration storage  14 . Examples of a customized home page such as that supported by the present invention include, without limitation, the well-known my.yahoo.com, and the Outlook Today page displayed by Microsoft Outlook, published by Microsoft Corporation of Redmond, Wash.  FIG. 5  shows an example of a customized home page which includes a search box  401 , a summary of the user&#39;s e-mail inbox  403 , first and second RSS feeds  405 ,  407 , local weather  409 , maps  411 , and news photos  413 . As shown, RSS feeds  405  and  407  have been subscribed to and appear on the user&#39;s customized home page. 
     In an alternative embodiment, activating user interface element  35  can cause browsing application  1  to transmit to central server  12  a URL containing information authenticating the network user and the syndication feed to which the network user wishes to be subscribed. The server can then add the syndication feed to the list of syndication feeds for the network user stored in server-based configuration storage  14 . 
     In still another embodiment, browsing application  1  can retrieve configuration settings  20  from server-based configuration settings  14  when the network user logs into or is otherwise authenticated by central server  12 . Such configuration settings may include, but are not limited to, the syndications feeds to which the network user has subscribed. Browsing application  1  can display the list of subscribed syndication feeds, thereby permitting the network user to unsubscribe to a syndication feed without having to access central server  12 . Changes to configuration settings  20  can then be replicated to server-based configuration settings  14  in the background, or upon the occurrence of an event. Such events include, but are not limited to, when the network user closes browsing application  1 . 
       FIG. 3  is a block diagram illustrating an exemplary method for implementing the present invention. In Block  300  of  FIG. 3 , the browsing application receives a page of data retrieved from the network. If the received page does not permit syndication (Block  310 ), the page is simply displayed for the user (Block  320 ). If the page does permit syndication (Block  330 ), the page is displayed along with a user interface element that facilitates subscribing to the syndication. If the user activates the user interface element (Block  340 ), the user is either automatically subscribed to the syndication feed or the browsing application is redirected to a page on the network that allows the user to subscribe to the syndication feed (Block  350 ). 
     While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.