It’s just data

RSS Usability testing

Mark Pilgrim: Guess what this means.  I'm quite interested in hearing the results.  People are welcome to leave their feedback here.

As a human reading the feed, I thought it was pretty obvious what it meant, but I am not convinced this is significant. Programs that read feeds need to understand it and that would require a level of cooperation that seems to be missing from RSS.

Posted by Bruce Loebrich at

The point was that one of Dave's fundamental principles for RSS 2.0 is that you should be able to understand what an element is just by looking at it, i.e. that the meaning of elements should be self-evident.

FWIW, I agree with this principle, but different people may have very different views on what's self-evident. It's difficult for me to judge this sort of thing, since I've been mired in XML syntax for years. As have most of the people who are participating in this discussion.

We talk about the "average user". I want to hear from some.

Posted by Mark at

Well, I figured it out, but I've been watching the action as it unfolded, so I probably shouldn't be included in the sample.

The meaning doesn't exactly leap to the eye, I must admit.

Posted by Dorothea Salo at

That makes a lot of sense. I'm pretty sure I fall into the "average user" category. I can't imagine it is anything but self-evident as a first guess to anybody that has had even a brief introduction to RSS.

Posted by Bruce Loebrich at

Dorothea, with all due respect, you are a markup goddess. Your opinion is always most welcome, but you're not a representative sample of the population we're trying to test here.

Posted by Mark at

Seemed pretty straightforward to interpret from my perspective. I don't run screaming from the room when I see something that resembles code, but otherwise I would rate myself as an "average user" in this context (or "above average" if we're talking about Lake Woebegon).

Posted by Jim McGee at

I guessed correctly, having read Mark's example first and then clicked through to the other things he linked. I'm ok with XML and have been reading many of Mark's posts about RSS, so I don't know if I'm an "average" enough user or not. Are you looking for non-technical people, or just people who aren't "geeky" enough to have signed up for the RSS listserve?


PS: I love you geeks who have signed up for it, because you guys do all the hard work and I reap the rewards by just pasting the RSS templates that people like Mark write into my Movable Type templates panel and save them. Oh, and I'm a geek to, just not an RSS Geek.

Posted by J. Fournier at

Yes. Useful. Makes sense. I just threw my feed into the root of my site (and others do I'm sure). One day I will move it and.. yes yes.. especially useful for blogfolk who move to a TLD. Exactly.

Posted by why the lucky stiff at

I am familiar w/ XML and namespaces, and I have a rudimentary understanding of the purpose and constructs of RDF.

Given all those things, I thought the purpose was obvious.

Of course, a high percentage of RSS feeders (and certainly a higher percentage of the web-going populace) wouldn't have that previous knowledge to go on.

Posted by Jeremy at

I'm comfortable with HTML and CSS, but I've never touched RSS. I figured it out.

Posted by Stephanie at

I had to read it over twice, but did indeed figure out what it means within 45 seconds (and I haven't looked at a lot of RSS).

Interesting how our eyes process URLs -- I initially was convinced that both of the URLs were the same.

Posted by Michael Z. at

Michael: yeah, Bill had the same problem. I could have picked a better example (Sam's URLs for instance, which are quite different), but this is a real-life scenario. I really did have a weblog at before I moved to my own domain, and when I moved, people really did complain about having to update their subscriptions manually.

Posted by Mark at

I indeed made the mistake of misreading the two URLs.

The question of being able to look at an element and understand it's purpose seems tempting. On one level it's perhaps even compelling. But what happens when you later determine your overly simplistic naming of the element impairs it's growth? NewLocation? What's new about it? What's next, OldLocation?

It's just a location and it might have modifying attributes on it. Thus anything looking for locations (resources) can find all occurences of resources and THEN decide about understanding the modifiers.

The modifiers could be even more detailed than what I've suggested here. Attributes for checksum, signing, labelling and who knows what else could be associated with this resource URL. T

he delightful advantage to a framework is you don't have to jam it all into this particular element. You could, if you wanted, put additional modifiers in other Description element(s) and build from there.

If your application doesn't care about building more data on top of the resource URL then fine, just ignore it; that's the way XML works. But if it does, well, using a framework would help avoid painting yourself into various corners. The RDF folks have put a lot of thinking into their work. And from the mailing list archives it's apparent they've already wrestled with many of these issues and have gotten themselves both into and back out of a lot of 'painted corners' along the way.

As Jason points out, it's nice to be able to make use of the efforts from other standards.

Posted by Bill Kearney at

I agree with Bill here. This syntax is not the "simplest" syntax possible, in the sense that you *could* accomplish the same short-term goal with fewer bytes. But it does build on some good prior art. The RSS community has not totally standardized on this sort of syntax (there are some examples in older modules where a URL was not put into rdf:resource, but it appears that these were growing pains and/or simple mistakes, and are being corrected), but I think that's the direction the community is moving, and I think standardizing on these sorts of rules helps everybody. Future RSS module developers will appreciate it if we can hammer out this stuff now and write up a "So you want to write an RSS module" intro guide.

That said, this experiment was a kind of reality check. Standardizing on a syntax that is *too* complex helps no one. I wanted to see if this syntax was too complicated for non-RSS-geeks to grok.

Based on comments so far, it seems that this syntax is not too complex. Normal people seem to get it just by looking at it. That's a good thing.

Posted by Mark at

I've looked at RSS a little, but I've never spent much time with it. I figured it out.

Posted by Jeff at

Is this actually the usability test you need to do? I wouldn't think that human-parsing of a correctly written element would be nearly as important as sitting someone down with the documentation and a test situation ('your old feed is here, in this format, your new feed is here, in this format, you (can|can't) edit .htaccess on the old server, what do you put where?') and seeing what they produce. One hopes Bill's backward attributes in 7.3 and 7.4 won't turn out to be a common error.

Posted by Phil Ringnalda at

It seems pretty straightforward. I thought to myself: "Oh, it's a kind of a redirect so that the subscriber gets the RSS feed from instead of the weblogger address." And I know very little about RSS syntax.

Posted by Jonathon Delacour at

Phil, this is a reaction to

D has stated that RDF is too hard for users to understand, and has therefore come to the conclusion that we can not use any syntax that looks remotely like RDF.

I state it this way because this *is not RDF*. RDF is a complex integrated framework of semantic statements. This is the letters "r", "d", and "f" in an attribute of an element. The presence of those letters does not appear to cause normal users to flee the scene screaming.

The advantage of using the letters "r", "d", and "f" in this way is that developers who *do* care about RDF can use this *exact same syntax* in their documents. Then RDF-aware news aggregators (of which there are, um, none, at least not in the end user space, but there are some private parsers that people have built, and who knows, maybe there will be more in the future) -- anyway, RDF-aware parsers can do whatever it is they do. Meanwhile, non-RDF-aware aggregators (which would be, um, everyone) can parse this syntax just fine, and they won't have to support 2 different syntaxes (one for RSS 1.0, one for RSS 2.0) that really just accomplish the same thing.

The point of adding namespaces to RSS 2.0 was *so we take advantage of this work* that has already been done by others. It's good work. It's prior art. Respect it. That doesn't mean "you have to do it the RDF way" all the time, but if there's a good case for using syntax that RDF people could accept verbatim, and that syntax doesn't cause people to run screaming from the room, then we should use it.

Posted by Mark


Um, that was supposed to be "Dave", not "D". I assume we can figure that out.

Phil, to your other point: people will learn how to do this by (a) reading a HOWTO document that gives examples, or (b) looking at a feed that already does it. Most likely (b). This is why I phrased my example the way I did, because it mimics real-world learning conditions.

If, for instance, I had written my own RSS parser (which knows nothing of RSS redirection) and was subscribing to and one day the updates stopped coming, I would go to the feed manually and try to find out what happened. At that moment, the syntax must be instantly understandable and human-readable.

These requirements are important, and often ignored by developers. Dave keeps hammering on this point, and he's absolutely right. Syntax that isn't understandable by humans is worse than worthless, it's cruel. At that crucial moment when things go wrong, it taunts them with the knowledge that something important is being said, but they're too fucking stupid to figure out what it is.

Judging by the comments left here by others, I think we've established that this syntax satisfies these important requirements. Normal people looked at it and said "hey, I bet the feed moved over there". And they were right.

Posted by Mark at

> but you're not a representative sample
> of the population we're trying to test
> here.

I'm sure it's a representative sample of the population who is reading Mark's weblog *and* paying attention to posts about odd technical things like this. :-)

FWIW, I thought the example was very obvious.

- ask

Posted by Ask Bjoern Hansen at

I thought I had worked out correctly what it meant, and I was right, but I wouldn't necessarily say that it was obvious; the "admin:feedLink" bit confused me slightly. Still, I think that anyone who is going to actually be reading RDF files at all, as opposed to using them to subscribe to a feed but not knowing anything about them, will be able to work it out.

Posted by sil at

Mark, hopefully you'll forgive me if I don't promote the letters R, D and F, which I think stand for Reality, Distortion and Field.

Posted by Dave Winer at

I am comfortable with CSS and HTML and programming and Unix system administration, but have never seen an RSS feed. I figured it out easily enough. The point about closing the loop using both isReplacedBy and replaces is a good one -- I'd very happily delegate that decision to an aggregator, if the switchover were properly logged somewhere so I could go find out what happened if something breaks.

Posted by Peter Herndon at

I'm another "RSS output comes free with MT, so I may as well play with it" type. The syntax is obvious enough. Not being an RDF holy-warrior, however, I'll toss out a couple (perhaps obvious) questions/suggestions.

Is there some reason that one couldn't come up with human readable comments embedded in the XML instead of trying to make everything human-readable (commendable, but perhaps impossible).

While we're fixing inabilities of the average blogger to do server-based functions, how about some way to embed referer and logging in their feed? Most bloggers don't have access to "real" web logs and use a logging service like for their sites. Knowing who is pulling a RSS feed and how often shouldn't be any harder.

Posted by Jonathan Peterson at

How about usage tracking for RSS 2.0?

Mark Pilgrim's suggestion of an RSS redirect that allows folks who don't have the ability to do .htaccess sorts of... [more]

Trackback from Way.Nu


I'm no RSS holy-warrior, but the example seemed very straightforward. Is there a reason that embedding a human-readable comments element inside RSS is anathema?

While you're solving problems such as redirects that the average blogger can't fix without some server expertise, how about some mechanism for tracking RSS feed usage? I'm currently grepping my server logs to see how many people pull my RSS (too lazy to install a log tracking tool when a server-based tool like is so easy to use).

Posted by Jonathan Peterson at

Heh. Ask identifies the narrow population sample in this test :-)

Looks pretty straightforward though: "This thing here is replaced by that thing there."

<doSomething>withThatThing</doSomething> seems simple because we've become used to markup.

Posted by Will Cox at

Speaking of usability testing, Sam, after the 29th comment is submitted, there's an issue. Here's what I see: click submit; form submits; I'm returned to; comment does not appear in

Posted by Will Cox



Hello Mark, miss me yet?

I've been reading Mark's weblog, and I thought I'd throw my two cents in.

I have yet to even bother to dive into XML or RSS. Hell I barely even know what RSS is, other than its some kind method for news aggregators to read websites... what the hell is a news aggregator?

I'd like to think I'm pretty damn good with SQL but since I know nothing about XML, I think I qualify as an average user. Well, maybe even a novice.

Anyway. I looked at this code fragment Mark gave out. Okay, correct me if I'm wrong, but it looks like your are redirecting or replacing one RSS feed with another RSS feed right? Particularly one that is outdated because its not an updated resource.

Is this newbie right? Did I give you what you want? Hope I helped.

Posted by Adrian at

I thought it was rather obvious, also. To me, this means a number of possibilities are true:

1. Computers will never get it - not complicated enough.
2. Computers will get it - They're controlled by people, and people can get it.
3. People will never get it - too obvious.
4. People will get it - only geeks want to make things more complicated than they are.
5. I'm not part of the "average users" - I understand HTML, CSS, and can hack a Perl program that someone else gave me, so RSS shouldn't be a problem.
6. I am an average user - I know nothing about XML or RSS (questioning how to spell them on many occasions), use the web only for email and HTTP content, and enjoy reading more than creating.
7. I shouldn't have posted this comment.

Posted by David at

I figured it out, and I have barely scratched XML. I had to look twice to see the difference between URLs, but it was pretty straightforward once I saw it. I'm a knowledgeable computer user, but about as average as you can get for XML stuff, so there's one for the sample.

Posted by Dave M. at

Yes, the example is understandable (however, I've been following the topic over the last week, so I'm not very representative), but it is quite ugly. A tag citing 3 different namespaces? It reminds me of Microsoft Word 2000's HTML output. It makes a human programmer looking at it think he needs to learn 3 new schemas.
So, if the real meaning of "rdf:" here in the context of RSS2 is "the letters r, d and f", you're not making the implementer feel dumb: you're actually lying to him.

- Dotan

Posted by Dotan Dimet at

Seemed straightforward to me as an average user-who-happens-to-be-a programmer-but-is-not-involved-enough-in-this-particular-domain-to-comment-substantively. Just in case that's the demographic you were worried about. :-)

Posted by Larry O'Brien at

I do know HTML. I don't really know anything about RSS. That "isReplacedBy=" is a pretty obvious giveaway for anyone who can read English, though.

Posted by Adam Rice at

Add your comment