December 25, 2003
RDF intro, part 1
My last week of postings have been mostly sauce with no meat, which means it’s high time I quit with conjecture and start talking turkey. For those new to the Semantic Web, I’m sure you’re saying, “How do I use this stuff?” I know how you feel. When I’m learning a new technology, I’m usually relieved when the writer stops talking around things and finally addresses the topic directly.
So for my first “tangle yarn,” I’ll tackle RDF, the Resource Description Framework, since it’s the technological foundation for the whole magilla. There’s a lot written about RDF and friends. I’m hardly an expert, but I do have one thing going for me: I can still remember my initial confusion. Even after scanning a half-dozen articles and reading the first few chapters of Practical RDF, I still didn’t understand what all the fuss was about. I knew there was this thing called RDF, but I didn’t know what it was good for. In particular, I didn’t know why we need RDF when we already had XML, UML, and LMNOP. So here’s my own quick intro for the confused.
As its name implies, RDF is a standard way to describe resources. Well, what’s a resource, exactly? Just about anything. Certainly the website Merriam-Webster is a resource, as is Zombo.com. Besides websites, resources are pretty much anything you can point a finger at: articles, images, news feeds, emails, DVDs, dehydrators, doorknobs, etc. If you can give it a name, it’s a resource. Then why call it resource? Why not record, or item, or object, or thingy? That part I don’t know, but we’re calling them resources anyway, no matter how cool Thingy Description Framework would have been.
To name a resource, RDF uses the URI, which stands for Uniform Resource Identifier. Aside from sounding vaguely Jamaican in origin, URI seems suspiciously like URL, a geek term even journalists had to learn in the mid-nineties. URIs and URLs are nearly the same thing. They both Uniformly do something with Resources. URIs identify them. URLs locate them. Just to keep things fun, there’s also the URN, which names them.
URI? URL? URN? You are joking! Nope, these puppies are the new noun. Here’s how to keep it straight: URLs tell computers how to get to something “out there”, like http://zombo.com/index.html. They tell the “how” (http), “where” (zombo.com), and “what” (index.html). Contrast this with URNs, which are merely names (urn:example.org:truth:1). URNs don’t correspond to real things on the Internet. They’re just names. Now here’s the key: URIs are both; they’re a generalization of both URLs and URNs. URLs are the subset of URIs that have location. URNs are the subset of URIs that don’t have location. Whether it’s by naming it or locating it, a URI uniformly identifies something.
So now we know what resources are, and how to name them. Next comes the “describing” part, which I’ll describe tomorrow.