Over on PhilosophicalMarkup, Oli says :

Of course, if you're looking for typed linkages from one 'point' to another 'point' ... well, erm .... RDF would do that fantastically ;) ... (OK... RDF is my new hammer!) – OliSharpe


Seriously, if you were sitting down to design a language to express triplets of subject-relationship-object you wouldn't design RDF. You'd probably design something like Prolog (PrologAndRDF). Or a really simple DoubleComma format like

subject relation object

the way they always pretend RDF is, in the idiot's guides.

The reason RDF isn't like this, is because of a different "hammer", the XML-hammer.

JonUdell pretty much gves the game away here : http://www.infoworld.com/article/03/12/31/01OPstrategic_1.html

But XML is changing the nature of textual data. Now programs can absorb it using a single standard parser rather than the dozens of purpose-built ones that still clutter every Linux distribution.

Nobody learns how to write parsers any-more, and so everybody who needs a language thinks the right way to do it is to use an off-the-shelf XML parser. That's why we have XML based programming languages, query languages, data representation languages etc. Pretty much anything linguistic is squashed into an XML form, however impractical the final result.

(Aside - What we should have instead : A decent modernization of tools like LexAndYacc which can generate parsers in multiple output languages. Maybe languages which can ConstructSubLanguagesDynamically )

RDF is a model not a format

Unfortunately, Phil, I've been a little brief with my description of RDF. RDF is simply a model in which you have directed graphs represented by triples:

subject predicate object

You can then serialize these graphs however you want. There are (at least) two recognised approaches to serializing these graphs: RDF/XML and N-Triples. RDF/XML is, of course, an XML format in which the triples can be expressed. The N-Triple format is a very simple text format where each of subject, predicate and object is separated by either a space or tab, each triple lives on one line of the file and each line is terminated with a full stop:

subject1 predicate1 object1 .

subject1 predicate2 object2 .

etc ....

So, not far from your suggested format.


Yes, but if I tried to publish my RecentChanges in N-triple format, would any RSS 1.0 aggregator or other RDF app. give me the time of day? For practical purposes RDF/XML is the only RDF game in town. – PhilJones


I realize that my above complaint is misleading. I tend to blur the distinction between RDF and RDF/XML, but Oli is right, non-XML RDF is definitely part of the the core conception.

But the lack of non-XML implementations seems to confirm my XML-hammer point.


EdgeLabelledVsNodeLabelled and the other discussion of the problems in ProgrammingWithCirclesTrianglesAndRectangles is probably why I'm really so resistant to XML.

See also :

  • Guillaume would probably suggest TopicMaps instead of RDF