This morning, I decided to do a little reading to better understand what RDF is all about. A quick skimming of the RDF Primer told me what I felt the need to know, in particular, what is meant by "triples". Triples are a way of writing down RDF statements as a subject, predicate and object. For example, in the statement "My name is Joe", the triple (not in proper RDF syntax) is "Me" "name" "Joe" (what am I describing, what property of it am I talking about, what is that property's value). It was interesting reading, and made me wonder again why I dislike RSS 1.0 as much as I do. So I took another look at the RSS 1.0 spec, and I remembered.

The first reason, which the RDF spec had reminded me of before I got to the RSS 1.0 spec but became more obvious after, is ironically also the strength of RSS 1.0: it's verbose. RDF is designed to help computers make sense of documents. It is intended to make documents of one type (for example RSS) comprehensible, categorizable, searchable, etc., by applications which understand RDF, whether they understand the specific application (RSS) or not. The value of doing that is clear. Unfortunately, making that happen requires more information to appear in a document than is needed if one's goals aren't so broad. Other versions of RSS operate on the assumption that the programs that consume them will have built-in understanding of RSS itself, not just RDF, so they don't have to include quite so much information. While I respect the position of people who want to make huge amounts of data in a variety of formats easily accessible through RDF-based systems, I personally am satisfied with the level of accessibility offered by non-RDF digest formats. Given the choice of the power of RDF and the relative simplicity and lighter weight of non-RDF, I choose simplicity and lighter weight.

As I write, a thought occurs to me. RDF is great for making all kinds of data accessible to all kinds of applications. Non-RDF formats are great for human readability and light weight, and are more accessible to programmers considering developing applications to work with them--one look at an RSS 1.0 feed could be enough to discourage a programmer from bothering to get involved in working with digest formats at all. The good news is that we don't have to choose one or the other--if we publish in non-RDF formats, we don't automatically lock out all applications that don't speak our format but do speak RDF. All that is needed is to have translator programs to convert from formats like RSS 2.0 or Atom to an RDF format. Any RDF application that knows how to talk to a translator program would then have access to any format for which a translator had been written.

Getting back to why I don't like RSS 1.0--as I got looking at the spec and some examples, I was reminded of one thing that I really don't like: duplication of data. To add an entry to an RSS 1.0 feed, you have to put a reference to it in the channel section, and then put the item itself outside of the channel. The point of that is to specify, in an RDF-based way, that the order of the items is significant. Again, I see the point, but I just don't care enough about it. I'm happy enough knowing that RSS readers know that in RSS, the most recent item generally appears first. I think the duplication may be the single aspect of RSS 1.0 that I dislike the most.

A final thought. I wonder whether it would work to define both an RDF-based and a non-RDF-based version of Atom. As long as the duplication is avoided, I think I might like the idea.