I've been working on a spec that defines potential improvements to the http://forums.microsoft.com/MSDN RSS experience.  Here is a draft of that specification for feedback.  I've also created a sample feed (static) based on the specification for you to test if out in your aggregators.  I'd LOVE any feedback on what we could do to make the RSS experience better for the forums. 

Read the spec, check out the sample feed, and leave me some feedback!

Some things I'd like feedback on include:

  • The representation of the attribution: Answer, Comment, Question, etc.
  • The types of feeds you'd like to see generated by the forums application.
  • Any comments on the suggested implementation here.

1.1 Summary

This specification defines the Web Forums RSS support. RSS 2.0 (Really Simple Syndication) is an XML file format used for web syndication that enables end users to leverage an ever growing set of "News Aggregators" to read content from a web site. News aggregators offer end users several benefits over the simple web view of content by allowing users to quickly scan posts, read content offline, and be notified when new unread items arrive.

While enabling web services in the 1.2 release will service customers who both read and reply to content including richer RSS support has the added benefit of being easier for users who simply want to subscribe to specific forums, searches, topics, etc from the forum site. To see one example of how RSS could work in the forum scenario check out the RSS support on http://channel9.msdn.com by subscribing to the RSS of their coffeehouse forum in a news aggregator like RSS Bandit.

1.1 RSS Scenarios for Web Forums

Subscribing to a Filtered RSS View of a Forum to get new Answers

Duncan is a VB developer who is interested in learning more about Visual Basic. He consumes RSS feeds in his favorite RSS news aggregator from various locations that he believes contain information that he can learn from because it’s faster for him that visiting 10 different VB web sites. He discovers the new forums for Visual Basic 2005 and would like to see any new Q and A pairs that come across the Visual Basic IDE forum.

Duncan sets the forum filter in the web UI to only show "Answered Questions". The page re-loads with the answered questions view and the XML (RSS Tag) link has been updated to a URL that will return the same view of data in RSS format. He right clicks on the XML tag and chooses "Subscribe in Default Aggregator". After the feed is added to his default aggregator he no longer has a need to visit the web page because he receives a rich view of the forum data in his aggregator and is able to clearly identify the answer by expanding a question topic to view the replies that have been made to date.

Subscribing to Active Topics from a Forum Group

Andi is a user of the Visual Studio Team System suite of products and likes to stay on top of active discussions and topics from all of the VSTS forums. While viewing the VSTS Forum Group she sees a link to the web view of "Active" topics (scoped to the VSTS forum group) and the orange XML Tag next to the "Active" link that indicates to him he could use his online news aggregator to subscribe to this view. She then adds this view to her online aggregator using the RSS link provided.

Subscribing to Search Results that Contain Code

Oliver is a device developer that is working on a Smartphone application that supports Bluetooth. He would like to know whenever there are new bluethooth related code snippets. Because several forums may contain code snippets applicable to using Bluetooth in a .Net application he opens the forum search, enters "Bluetooth" in the search field, and chooses to filter his returns to posts that are attributed as containing code. After clicking search he sees the orange XML image next to the summary of results. Oliver adds this feed to his favorite news reader and is now alerted when new posts are made that contain code snippets about Bluetooth.

1.1 Additional Justification for richer RSS support in Web Forums

In addition to the end users scenarios described above there several other benefits to be gained by offering easier and richer RSS support in the forums.

Filling the Speedy Reading Void: As it stands our currently limited RSS capabilities have been enough to convince some detractors from feeling the need for NNTP support simply because they enable the main NNTP scenario of offline viewing. If the RSS capabilities were beefed up to include replies and additional data such as the post authors the gap between reading the forums via NNTP and RSS will have been further reduced creating less need for NNTP because users can have their pick of offline RSS readers.

Reduced Duplicate Questions: RSS is essentially a technology that enables easy consumption of information through aggregation. The more ways we can push existing FAQ out towards end users the less people will need to come to the site to ask questions. Popular FAQ will get also be linked from the blogs of subscribers more frequently further helping to reduce the introduction of duplicate questions.

2. Requirements

2.1 Requirements Summary

The simplest way to state the requirements is to say: If there is a view (filtered or not) of read-only forum data available on the web site then it should be discoverable and consumable via RSS. The rest of this document gets into describing the specific requests starting from the most basic requirements of the data from a post that should be made available to the RSS to the specific RSS feeds that need to be made available.

NOTE: Bad PM art ahead... The XML text could be the orange XML button or simply link text. Don't assume this anywhere close to a final design.

2.2 Three levels of Basic Forum RSS

Today the forum system only exposes one level of RSS. That level is the forum level RSS. In the 1.2 timeframe the forums should expose RSS at three levels: Thread, Forums, and Site/Forum Group levels

2.2.1 Thread Level RSS: Every thread should have its own RSS feed associated with it. This enables the forum RSS feed items to leverage this feed as the comment feed to each individual post. This feed should be visibly exposed on the view of the post. Ideally it would appear in context as an option next to the "alert me" button since this provides an alternate alerting mechanism in addition to supplying the comment feed for the forum level RSS.

2.2.2 Forum Level RSS: Every forum should expose itself as an RSS feed containing thread header posts as items with the thread level RSS feeds as comments to those items. The forum level RSS feed should be exposed in three places:

Fig 1: Top of the forum view as a "Subscribe Via XML" button

Fig 2:  Inline with the forum filtering mechanism to imply that any filtering applied will create a new RSS Feed that accounts for that filter. Note: We need to make filtering more discoverable… perhaps create some default "View Buttons" ala "Recent Unanswered" and the "Recent Popular FAQs".

Fig 3: In the views of multiple forums at the site level

2.2.3 Site/Group Level RSS

This RSS feed contains views that may cover multiple forums such as "Unanswered Questions" in a forum group or for the whole site. We should minimally expose the following for the site or group of forums…

· Unanswered

· Recent Answers with quoted questions

· Recent popular answers

· Active questions (active topics with only questions)

· All Threads for site or group of forums

Additional this category would include…

2.2.3.1 Search Results Feeds

Any search should be exposed as an rss feed with results organized by date. This way I can be alerted when new results for that search become available. See the scenarios for a full description of this.

2.2.3.2 Author Feeds

This feed would contain all posts made by a specific author. To be used by MS to track good contributors and by forum users to track domain experts. This could be exposed on the advanced search page.

3. Specific Forums RSS Specification

This section gets into the nitty gritty details of defining what a forums emmitted RSS feed should look like.

3.1 The XML of an Individual Post (Item Element in Forum RSS Channel)

And RSS feed (called a channel in the RSS spec) contains one or more posts. Posts are the equivalent of items in the RSS specification. This section describes the information that needs to be made available in the RSS channel for each post/item within that feed. Ideally every bit of this information is mapped to standard components of the RSS 2.0 specification.

RSS Elements of <item> Tag

Forum Mapping

Description / Example(s)

title

Post title with appended attribution

Item 1 Title: "How do I get the current date in C#? (Question)"

Item 2 Title: "re: How do I get the current date in C#? (Answer)"

link

Link to post in the thread

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1613#1613

description

· Full post body text

· + Reply Link

· + Attribution

Ex: "You get the current date in C# by using the DateTime.Now() function.

Attribution: Answer | Contains Code

Click to Reply"

author

Forum User Name

Ex: "Josh Ledgard"

slash:comments

# of replies to post

3

comments

Link to full thread

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1613

wfw:commentRss

Link to Thread RSS feed

http://forums.microsoft.com/msdn/rss.aspx?threadID=1613

wfw:comment

Link to full thread

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1613

guid isPermaLink="true"

Link to post in the thread

Ex:http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1613#1613

pubDate

Date post created

Ex: Thu, 21 Apr 2005 15:56:17 GMT

category

Forum Title

NOTE: Multiple category fields are allowed in RSS… and we should use them. This is why there are extra category entries

This category entry is helpful in the case where posts are coming from multiple forums so users can distinguish between those posts.

category

Attribution 1

Valid options include "Comment", "Question", "Answered Question", "Answer"

category

Attribution 3

Valid Options include "With Code" and "No Code"

3.2 The XML of a forum RSS Feed that contains post Items

A forum RSS Channel contains 0 or more question items, but should minimally include the following elements:

Elements of <channel>

Forum Mapping

Description/Example

title

Site Name: Forum Name: Attribution Filter (if applied)

"MSDN Forums: Visual Basic IDE: Answered Questions"

Note: This convention is to be used at RSS feeds at the forum and thread level NOT at the group or site level.

Site Name: Group Name: Group Filter

"MSDN Forums: Visual Basic: Active Topics"

Note: This convention is for RSS Feeds scoped to a forum group like "Visual Basic"

Site Name: Feed Name

"MSDN Forums: Unanswered Questions"

Site Name: Search For: Keyword1, keyword2, ….

"MSDN Forum: Search For: Bluethooth, Sample"

Link

The web URL that creates the same view the feed came from

http://forums.microsoft.com/msdn/UnansweredTopics.aspx

description

View Description

This is the forum description in the case of a forum or thread level feed. It is the description of the custom feed if otherwise.

"Unanswered questions from the Visual Basic forum group"

language

Proper Language Code

http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes

ttl

Caching period

How many minutes does it take for the cache to recylce

image

Site Image

The MSDN Logo in our case. Ideally one no larger than the sign in button.

copyright

MS Copyright Notice

"© 2005 Microsoft Corporation. All rights reserved."

lastBuildDate

Last time the content was generated for the channel

"Sat, 07 Sep 2002 00:00:01 GMT"

Item(s)

The posts items defined above contained in the channel

(see section 3.1)