RDF is seductive. I can’t get away from it. Something about the ability to represent anything and everything in one consistent model just tugs at my engineer’s heartstrings.
The problem with RDF, as I’ve discovered through painful experience, is that the ability to represent everything sacrifices the ability to represent anything efficiently. Certainly that is partly the fault of existing toolkits, but it’s still a fault.
But maybe I’m simply missing the point of RDF. Its stated design goals do not include “efficient storage and retrieval.” The W3C’s RDF recommendations make no mention of performance. Tim Berners-Lee doesn’t mention it in his Semantic Web talks, except in airy references to future general purpose RDF engines.
RDF, it seems, is intended not as so much as a data storage model but as a communication model. In short, it’s a protocol. One of the goals Berners-Lee does talk about is exposing the information currently trapped inside relational databases. So maybe I shouldn’t think about storing RDF and think instead about presenting it as a view of my own domain-specific data structures.
There are still some benefits to be had from storing and analyzing data in a graph-like structure. But RDF is not necessarily the be-all and end-all of graphical models either.