What's so special about RDF?


Hierarchical vs. Relational Databases

Back when dinosaurs, err, IBM Mainframes ruled the land, everyone used hierarchical databases (if they used a database that is). IMS is the most well known. http://en.wikipedia.org/wiki/Information_Management_System
IBM designed IMS with Rockwell and Caterpillar starting in 1966 for the Apollo program. IMS's challenge was to inventory the very large Bill of Materials for the Saturn V moon rocket and Apollo space vehicle.
How many of you use hierarchical databases today? How many use XML and relational databases? Strange how few considering that XML maps directly to a hierarchical database and certainly doesn't map directly to a relational database. It is also interesting to note that relational databases take a lot more clever software and horsepower to get reasonable performance in doing all the joins and indexing and copying needed to provide a coherent view of the data from all the deconstructed n-tuples, err, rows, of data.

The reason relational databases, and SQL in particular, have succeeded in spite of the "complexity" (compared to storing the data in a way that conveniently matches the application's model) is because of what happens when applications change and when the need to reuse and repurpose the data arises. RDF schemas have that same relationship with XML schemas. RDF represents the data as n-tuples which are very much like rows in a relational database. That requires the same sort of normalization that is needed for relational database modeling, rather than encouraging the willy-nilly hierarchical models supported by XML Schema, and is thus responsible for the "complexity" that has garnered the scorn of so many XML hackers, err architects, who "just want to get the job done".

That mindset is what led to RDF being dropped in RSS 2.0 and Atom. RSS actually stands for RDF Site Summary (RSS 1.0), not Really Simple Syndication (RSS 2.0 & Atom).

But what happens when application designs change? And what about reusing and repurposing the data? These are things in great demand in the Web by users. And while Open Source Software development puts the developer's interests at the pinnacle, working and playing well with others can be just as valuable (or maybe even more so) as cranking out code.

Open World Model

But RDF is more than a relational database, as it is tailored to the needs of the World Wide Web. In particular it is based on an "Open World Model" rather than "Closed World Model", and also expects that data may arrive as a chaotic, multi-valued, arbitrary graph.

So rather than having to constantly revise applications and their data schemes as needs change, RDF Schema applications anticipate change (including the inevitable conflicts) and support aging gracefully.

Object-Relational Mapping without Tears

But if you like SQL, that is good news, because you can use SPARQL, which takes all that chaos and makes it as easy to use as a relational database. Actually easier because there is a natural fit for graphs and trees (like those in XML Schema and Java Persistence) which the tables of relational databases are not.

http://sqarql.org http://www.w3.org/2001/sw/DataAccess/