October 09, 2003
Viewing Comments in Blog Readers
Many people are using blog readers to read entries (such as NetNewsWire or FeedDemon), which is a really efficient way to follow a large number of blogs and another example of how Internet applications are moving beyond the browser. These readers work by reading an XML feed that contains a list of recent entries.
Unfortunately, these feeds don't contain any of the comments that people make on the entries. So, you need to jump out of the blog reader and into a web browser to see if there even are any comments.
Many people are using blog readers to read entries (such as NetNewsWire or FeedDemon), which is a really efficient way to follow a large number of blogs and another example of how Internet applications are moving beyond the browser. These readers work by reading an XML feed that contains a list of recent entries.
Unfortunately, these feeds don't contain any of the comments that people make on the entries. So, you need to jump out of the blog reader and into a web browser to see if there even are any comments.
These XML blog feeds come in several different formats today (RSS 0.91, 0.92, 1.0, 2.0) which don't appear to have provisions for embedded comments. Atom is another emerging format for these feeds, and is currently under development by a number of blog software creators. This is an opportunity for us to agree on how both entries and comments can appear in our blog readers. Here are some thoughts on this, building on the ideas on the Atom site.
Approach 1
We could simply include comments in the entry list along with a
<?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://purl.org/echo/" version="1.0" xml:lang="en-us"> <title>Example Blog</title> <author> <name>Mr. Blog</name> <url>http://example.org</url> <email>mrblog@example.org</email> </author> <!-- simple entry --> <entry> <title>Some simple entry</title> <content>Here's a simple entry!</content> <id>http://example.org/e45</id> </entry> <!-- comment on simple entry --> <entry> <id>http://example.org/e48</id> <related>http://example.org/e45</related> <author> <name>Anne Says</name> <url>http://anne.com/blog</url> <email>nobody@anne.com</email> </author> <title>Simple?</title> <content>That simple entry was really not simple enough.</content> </entry> </feed>
Approach 2
It's tempting to instead embed the comments as a subtag of each entry, like this:
<!-- simple entry --> <entry> <title>Some simple entry</title> <content>Here's a simple entry!</content> <id>http://example.org/e45</id> <!-- comment on simple entry --> <comment> <id>http://example.org/e48</id> <author> <name>Anne Says</name> <url>http://anne.com/blog</url> <email>nobody@anne.com</email> </author> <title>Simple?</title> <content>That simple entry was really not simple enough.</content> </comment> </entry>
However, this becomes problematic as comments may appear long after the main entry is included in the blog feed. This can be fairly common as some entries take on a life of their own with ongoing comments. So, the second design would require re-including the main entry as well when any new comment appears, while the first design does not.
Approach 3
A third approach would be to not include comments in the blog feed at all, and instead provide a separate feed for comments in addition to the one for entries. The blog reader would then need to load both and combine them for display. The end user would need to enter two different URLs for blogs in that case, which doesn't seem great.
What do you think? Are there better ways to represent comments in blog feeds?
Comments
Geoff Bowers says:
Roger Benningfield says:
Kevin: In the grand scheme, approach 3 is probably the best. There are certainly scenarios where embedded comments can be handy, but in most cases, it's just more bandwidth-friendly to leave out the extra stuff until the user actually requests it.
And the "need to enter two URLs" thing doesn't need to be a problem. For example, all JournURL-powered blogs generate RSS feeds for comments. To find the URL of a given feed, an aggregator simply has to follow the URL in a feed's [comments] element, and then look for RSS autodiscovery markup on the resulting page.
Yeah, it would be even better if there was a syndication attribute on the RSS [comments] element, but even as-is, it can be pretty seamless if the aggregator developers want it to be.
Danny says:
Both Approaches 1 + 3 appear to be taking the RDF or XLink-style approach to the problem, i.e. give the comment a URI and refer to it through a property/role, except here it seems to degenerate somewhat into tag soupishness. Given that the consensus seems to be against RDF/XML and XLink, might it be possible to use the ExtensibilityFramework?
Re. Approach 2 : an old question - what if a comment is in reply to two previous entries/comments? Ok, this maybe not what happens in current blogging software, but if we want Atom to be versatile we shouldn't hobble it by forcing artificial semantics based on XML structure.
Hmm - if the comments are in the same doc as the entries (Approach 1), couldn't XML IDs be used?
Danny says:
PS. http://www.intertwingly.net/wiki/pie/ExtensibilityFramework
Sean Voisen says:
I have to agree with Geoff in that it's fuzzy as to whether or not all comments should be included in a feed in the first place. File size notwithstanding, do I really want to provide everything in my feed? While I subscribe to the idea that syndicated content should be as useful and robust as possible, providing comments is just an additional reason for people not to visit my site, keeping them nice and cozy in their reader. Suddenly I become a provider of just another news feed, nothing more. The option to include comments should be available, though, and as such I'm for method 3.
Luke Hutteman says:
Approach 3 in RSS: http://www.sellsbrothers.com/spout/#exposingRssComments
RSS Aggregators that support this can retrieve the comments to an entry on demand, without the user needing to manually enter the comment URL.
The main advantage of this approach over the embedded comment approaches 1 and 2 is bandwidth savings. Not only do #1 and #2 force you to retrieve all comments (whether you're interested in that entry or not), they also make the aggregator re-read the entire feed for every new comment added, whereas otherwise the server could have simply returned a not-modified code to the aggregator.
Adam Rice says:
There was a lot of discussion in the Atom wiki about how comments should be handled. IIRC, approach 2 above was rejected; approach 1 seemed to be the consensus. I don't recall approach 3 really being discussed.
Ultimately, it comes down to what the feed publisher wants to do with the feed. I think it is helpful for the comments to be there, but not everyone will agree, and they can tweak their feeds as they wish. As I understand it, Atom will have enough flexibility that any of these three approaches could be valid.
sasha says:
Interesting.
Looking at the wfw:commentRss thingie, it appears that it's only one-way. That is, a comment item doesn't have a link to the post on which it's commenting.
Kevin Lynch says:
Makes sense to leave this up the user about whether they would like to see comments in the blog feed. So, perhaps this should indeed be done with two feeds, and the client can combine them. We could do autodiscovery as Roger says -- perhaps the comment feed URL could be optionally included in the blog feed to help with this.
Dare Obasanjo says:
Sasha,
It is two way because the reader knows that every comment in the comments feed is in response to a particular post. The only problem is if you somehow want to create comments that have multiple parents which is a weird request but something I've seen asked on the Atom mailing list.
PS: As mentioned in my blog post at http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=d85353ee-f4ca-45f3-9c5d-3287fed43a8e all the functionality mentioned in the above post is already supported by at least one aggregator today.
Adam Rice says:
There's also a namespace that's got RSS2's official imprimatur for including comments in a feed:
http://jevon.blogtrack.com/index.php?itemid=376
I've created a test feed with it here:
http://www.crossroads.net/a/test.xml
My own feedreader, NetNewsWire Lite, does not show the comments.
Greg Burch says:
Approach 1:
Seems to make sense at first but very few blog readers/aggregators are going to care about "recent comments" which is all that really is. There is a good chance that at least half of the comments won't even have an entry left in the feed rendering them pretty much worthless.
Approach 2:
The reason I first suggested this is because it provides a couple advantages. For one you could still just show 5 most recent comments for each entry in the feed. It also allows you to do some quick parsing to find out how many entries there are and for every entry how many comments there are, where as the other way you have to parse the whole thing to know anything about it. Also this approach allows for comments to drop off with entries, as I think they should. If ATOM just wants to provide recent comments go with approach 3 because it will be very specialized data (like a blog that shows "Here are my 5 most recent comments"
One other small down fall of approach 1 is that comments will show up before entries, because comments will always be made after the entry. So you get to parse comments before you even know if you are going to keep the entry. Maybe you have a filter, or have categories based on dc:subject (ATOM probably provides a category mechanism but I don't know it off the top of my head)
I will stick to my debate of Approach 1 offers nothing.
Approach 2 - We know how I feel about this
I can simplify this by saying:
if(!Approach2) { Approach3 } else { !Approach1 }
Dave Winer says:
I haven't read all the comments here, but Kevin, why not just define a namespace and include the comments in the RSS 2.0 feed. Of course it's not really RSS anymore if you do that, because the file would get HUGE and would contain flames and comment spam. There is a certain sense to not distributing comments.
Giasen says:
hello. i live nextdoor on geourl.
Patrick says:
I would like to see the ability to have the comment count, as well as a link to the comments interface. However, actually having comments in the feed could really bog everything down if the topic causes a lot of commenting. It probably won't be a problem for smaller sites, but you want it to be flexible enough for sites with a lot of traffic too.
Comments on this entry are now closed
You can of course make comments in your own blog, and Trackback continues to be available to reference your post here.
RSS 2.0 already has an extensible namespace. There is no reason why comments could not be incorporated under that specification -- we just need a broadly accepted format. To be honest I'd settle for a simple entry indicating the number of comments and/or trackbacks to a post. Do you really want to get to a point where feed sizes are overcome by the weight of often non-informative comment logs?
Funnily enough I use FeedDemon despite being the owner of the most popular MM aggregator (http://www.fullasagoog.com/) -- but I make sure to use the aggregated feed and OPML exports that Fullasagoog provides :) The reblended Goog feed is becoming an increasingly popular way of accessing the sites content.