It seems to me that the thing holding back widespread RDF adoption isn't RDF itself, but rather RDF/XML.

Personally I think RDF/XML fails as a human oriented syntax - it's just too complicated for the layman to bother with.

What's more, promoting RDF/XML as the default serialisation of RDF positions RDF as a direct competitor to vanilla XML for data interchange. History is showing that this is a competition rdf/xml cannot win, and generates lots of heat and bad publicity.

Before I go on, I ought to clarify that I don't necessarily think that RDF/XML is a bad implementation of an human-oriented XML profile of RDF, but rather that (in retrospect) the idea itself is bad. Any attempt to do this is doomed to failure.

The problem is that there is a fundamental mismatch between the RDF model (graphs/triples), and the XML model (ordered tree of elements with attributes). This mismatch makes RDF/XML painfully hard to write by hand, requiring an indepth understanding of both the rdf model and of the complicated serialization syntax nuances required to make graphs fit into a tree model.

Vanilla XML on the other hand looks like the model it represents, and that makes it simpler for people to write by hand.

So, What to do?

I'm sort of proposing the following: (but could probably be easily persuaded otherwise by good arguments)

  • Deprecate RDF/XML as the default serialisation of RDF. Make it clear that it is tricky to write by hand (i.e. by putting this note in the W3C literature), and that if people want human-oriented xml interchange, they should use xml.
  • Develop tools to make it easy to specify a mapping between an xml dialect and RDF triples. For important web xml protocols (atom, rss2) specify some default xml to rdf triple mappings.
  • Promote turtle/n3 as the default human-oriented syntax
  • Reposition RDF as an information integration and knowledge management technology. It really excels at this, more so than any competing technologies (IMHO).
  • Promote one of the other triple-based xml serialisations for embedding rdf directly in XML documents. (e.g. trix or rxr)

N.B. I don't expect RDF/XML to disappear anytime soon, and that's good since it is the most widely implemented serialization of RDF in libraries, making it ideal for RDF interchange between applications. It's just that I think promoting it to humans is a lost cause, and my concern is that RDF/XML could bring the whole RDF stack down with it.

Does anybody agree?