December 27, 2003
RDF intro, part 3
Now that you’ve seen some actual RDF, we can take a step back to put things in context. RDF is essentially a data model — a way of describing data, or in this case, metadata. There’s plenty of data models out there. The ones we’re most familiar with are connected to programming languages and their functional flavors. Algol, Pascal, and C have their records and procedures. Prolog has statements and rules. Smalltalk, C++, and Java have objects and methods. SQL has tables and statements.
At their core, each of these systems describe data in the same way: atomic data nuggets are grouped into bundles. Whatever the terminology, we store data as clumps of stuff. Records contain fields. Tables contain cells.
Central to the task is how we name things. As programmers, we give meaningful names to both the bundles and the nuggets. “That’s the ’employee’ record,” we say, “which contains the ‘city’ field.” The computer doesn’t really care if we call it the “dreznibble” record and the “doodat” field. All the machine needs is for every piece in the puzzle to have a unique name. Meaningful names merely make the job easier for humans. The semantics is a secondary by-product.
RDF has the same goal as these other systems, only now the nuggets are called “triples.” You might think the bundles in this situation are “resources”, but they’re not. Resources are a step removed. RDF triples are about resources. The resources can be entirely independent of RDF.
So what are the bundles in RDF? Well, if you’re being formal, I guess you could call them “graphs”, but that’d be missing the point. You see, in RDF, there are no bundles, at least not in the well-defined sense we’ve come to expect from records and objects and tables. In RDF, triples can come and go as they please; they don’t have to stick with the tour group.
The RDF spec says, “To facilitate operation at Internet scale, RDF is an open-world framework that allows anyone to make statements about any resource. In general, it is not assumed that complete information about any resource is available.”
In other words, there is no bundle. At most we’re talking pick-up-sticks, which for non-Prolog folks is a pretty loose twist. Even better, this “free love” approach manages to stay consistent and efficient.
That’s what makes RDF different.