September 21st, 2004



A few days ago, I felt like writing something of length in Dvorak as an effort to learn to type. I wrote it on Everything2, because I wasn't really sure what I wanted, and the entry was something that was a bit off (and I had no idea how far I was going to get before my hands crapped out.) As it happens, it turned into a nice piece (although very geeky) on RDF, so I'm going to repost it here.

So, this is a copy of my node on RDF on Everything2. I'm not sure how accurate it all is - and I welcome corrections in comments - but it is what I've picked up over time. There's a pretty significant lack of anything related to RDF on E2, so most of the links in this entry are as yet incomplete - they don't actually link anywhere with information - although I hope to flesh at least a few of them out. Since E2 doesn't allow external links, there's no quoting of sources. Sorry for those of you who think that this is a bad thing.

This entry is geeky. It is filed under the "Technical->FOAF" category in my blog. This is the technology that powers the bot described in an earlier post.

RDF is a TLA for Resource Description Framework. It is designed to allow description of resources, specifically, those available on the world wide web. The technical specifications for RDF are controlled by the w3c, a standards body which is using RDF to further the goal of creating a semantic web, by which computer agents can understand the meaning of the content stored in webpages, rather than just being able to display the content for human consumption.

RDF is, first and foremost, a data model. RDF is a way to describe information in a way that computers can understand the data. All data in RDF is in the basic form of triples: statements contain an object which is related to a subject by a predicate.

  • Subject: item being described.
  • Predicate: URL relating object and subject
  • Object: item describing subject

A combination of these statements creates a graph of data, which can be interconnected or not. this method of modeling makes creating descriptios simple.

RDF data can be seriallized in a number of ways. The most common serialization is XML. However, several others are in use: Turtle, Notation3, and ntriples. The serialization does not influence the content, only the manner of display.

RDF uses namespaces to allow expansion of the facts which can be described in RDF. Anyone can, using terms from OWL, create their own RDF namespace to describe a new topic. These namespaces can then be used as to form classes and properties. In addition, OWL allows information about these properties to be included, such as whether the property is an InverseFunctionalProperty.

RDF can be manipulated by a number of tools. There are RDF Query Languages, RDF Toolkits, and more, developed both by the W3C and external organizations. There are tools availble for manipulating and storing RDF data, as well as tools available for parsing RDF data and storing the content. One such toolkit is Dave Beckett's Redland. These tools are designed to make it simple to work with RDF.

Due to the nature of RDF's data model, the graph, merging datasets is simple. Simply combine the two sets of data, remove duplicates, and then work at creating consistency with the remaining data. For example, if I have a data set that says "Jim has a gender of male" and Joe had a data set that said "Jim is cool guy", there is no way to determine those Jims are the same people. If they both list an email address for Jim that matches, however, it becomes obvious that the two Jims are the same, and the statements describing each jim can be combined to describe a new jim.

RDF is a powerful technology which in many cases is not complete and unusable for public use. It can be serialized in a variety of ways, and manipulated with a variety of tools. Unlike other data modeling solutions, RDF can describe a number of things without relying on the tree format for information. This helps to merge distinct data sets, as well as a number of other ways.



I've really settled into life here in Manchester. I feel more at home here than I have anywhere in years. Even at school, I didn't have some of the basic amenities that are so normal to me now - places to put things, transportation to get places, a place to prepare my own food. I've fallen into regular patterns - ones that I actually enjoy, rather than the patterns I had before where I just dealt with what I had.

I've got a fun job. Wedu is proving to be an interesting work environment. I'm doing a bit more HTML monkeying and a bit less backend work than I'd like, but you can't have everything, and I'm learning a lot of important things about the way things work in the process. I'm learning various qmail commands, everything from setting up a domain to adding email addresses. (I'll probably be moving emails there, so I'll actually have a stable mail server - if people want accounts, drop me a comment or email or something.)

Most importantly, I've got family here. They're far closer to me than I have been to my own family for quite some time. I get and give snuggles to all the people here, and it's the most comforting thing in the world to be able to know that I can make people happy, and that they can make me happy.

We had a tragedy recently. One of our cats, Honey, was hit by our car, as I pulled into the driveway. We had been coming back from church and I didn't see her as I pulled in. Her habit of playing chicken with car tires caught up with her, may she rest in peace.

However, throughout the grieving process for this pet, who was very near and dear to all our hearts, I have constantly been reminded that although this happened, it was an accident and not something that could have been changed. I will forever miss Honey - all the more so because it's hard not to tell myself that it was my fault and that if only I'd been more careful, it could have been prevented - but with the good comes the bad. I'm quite sure that if there is such a thing, Honey is in Kitty Heaven now.

As I said, with the bad comes the good - we now have two adorable tiny little kittens running around the house. Only 6 weeks old, Jess picked them up yesterday from a friend of Jason's. As yet unnamed, they are already learning many tricks - from how to steal the Powerbook away from me to how to hide quite effectively from our own two little bundles of joy. Of course, photos are available. Warning, dangerous levels of cute. ( is a temporary domain name for when my domain is in flux - I'm having lots of problems keeping an IP lately for some reason.)

Tomorrow is Jessica's birthday. I'm hoping to be able to do something special for her, but probably won't be able to. Lack of transportation has made working up any kind of surprise for her really difficult.

I like things here. I miss friends and so on at home, but I'm really starting to settle in. It's so nice to live in someplace with geographic variation. With hills and mountains and so on that you never see in Illinois - just corn, corn and more corn. To have hills is such a nice change of pace that I don't think I could ever go back to living in the Midwest again.