Sunday, July 9, 2006, 11:18:05 AM, Elliotte Harold wrote:
> Now if you could show me an example of how to *use* this N3/RDF stuff to > do things I can't equally or more easily accomplish with raw XML, then > I'd pay attention. But every time I go looking for real, practical RDF I > find a huge amount of talk and philosophical arguments but no > significant, practical applications. Some thoughts... Where RDF works: RDF works well when you want a standardised extensible application model that you can serialise in a standardised way if you really have to. RDFS, the vocabulary description language is good. Having a vocabulary description at the same level as your data is useful. I have mixed data and RDFS, and with an XSLT-based process, automatically created technical documentation for a complex RDF-based configuration file. SPARQL is fun. I’ve put together a SPARQL JSP taglib and it is like writing a PHP+MySQL app only with an added air of superiority. The OO/RDF divide is less severe than the OO/XML one. Working with RDF in Java is simple. Not having to worry about cross-cutting stuff like xmlns, xml:base, and xml:lang is nice. Where RDF sucks: If you want to define an interoperable process, you need to describe the pre-conditions and post-conditions for the data. XML schema languages do this. RDF doesn’t. I want an ‘RDF Process Input/Output Guarantee Description Language’ – and another for JSON whilst we’re at it. Higher-level sem-web technologies such as OWL and rules languages seem to make the ‘process contract’ problem harder. No thanks. The cost of easy merging of graphs in RDF is the added complexity in separating data and handling groups of entities and properties with varying lifecycles. (I have an idea about how to handle this in a limited way for Atom/RDF...) RDF/XML is impossible to parse without dragging in megabytes of dependencies (Am I right in thinking that you need something more low-level than SAX to handle the use of ‘exclusive canonicalization with comments’?) Only recently are people starting to give up on XML where it isn’t a benefit. The up-front semantic wrangling required to design an RDF vocabulary is a cost that you might never need to pay if you go the XML route. -- Dave
