RDF braindump


I don't understand this confrontation between RSS and RDF. They're both forms of XML, designed for different purposes, aren't they? If you're requesting information from a web service you need to receive information that's marked up so you understand what each piece of data means. Bog-standard XML (Google, Amazon, PubMed) makes up its own tags as it goes along and references a central DTD (document describing the tags used), while RSS (weblog updates) and RDF use namespaces to allow tags to be defined using DTDs in lots of different places. For me, the point of RDF is that you can embed it in HTML, so it describes the resource to which it is attached (hence the name), and I don't think you can embed RSS in this way. I can't explain why MusicBrainz uses RDF rather than standard XML to respond to queries, it just makes it too complicated (for my tiny mind). Danny Ayers probably answered this best:

You can't judge the benefits of RDF by judging individual applications in isolation, any more than you could judge the web by looking at a single host. Each application probably could be simpler if it used vanilla XML instead of RDF. But by using RDF they have a level of interoperability that goes far beyond what would be available otherwise. FOAF MusicBrainz data can be inserted directly into RSS 1.0 feeds and their meaning remains globally well-defined - the creator of a resource has the same meaning whether that resource is a document, blog item or piece of music. It means that the same tools, with little or no modification, can be used across all domains. The wheel doesn't have to be reinvented for every purpose.

It's the difference between web services and proper interoperability. I wouldn't want the Amazon web service to return the information about a book in RDF though, would I? I can reformat it to RDF for embedding in a web page (see blam!), or turn it into RSS for publishing a feed of newly released books, or turn it into TouchGraph XML for visualising links. Searching Google for "what is RDF for?" found a few links, most of which - like this one - are complete gibberish. This essay was the clearest answer, and the key points may be "Describes everything by nodes and arcs" and "XML serialization of directed graphs". Can you see why this is so hard for mortals to understand?

Update: It's becoming clearer. The nodes and arcs that RDF uses are equivalent to the nodes and edges of a TouchGraph graph. The bonus of RDF seems to be the use of URIs to indicate references (arcs) to remote resources (nodes), so the one piece of RDF can talk about many separate objects and an aggregator will know what these are. Each node can be described in many different places, but as long as they all use the same format these can be collected together by an aggregator that will understand which node they're all describing.