Chris Schmidt (crschmidt) wrote,
Chris Schmidt

RDF Toys and why I like them

Toys are good fun. Over the past two weeks, I've been working on an rdfpython project: Building tools based on Redland and Python, including a simple web page and a rather complex IRC bot. Both of these tools are available via SVN.

RDF is one of a million TLAs that nobody ever understands or remembers, so this post is going to be dedicated to a short example of what RDF is and what it can do for me (although not necessarily for you).

RDF stands for Resource Description Framework and is a core component in the creation of the Semantic Web. That's the part that nobody cares about yet, but maybe after you read this post, you will.

There's a lot of information on the Internet. Most of it is trapped away inside documents that are hard for computers to understand and deal. Typically, computers are able to read the information, however, they don't understand the content: the content is merely redisplayed for the use of someone smarter: a person. As my Computer Science teacher once said, way back at St. Charles High School (before there was an East and a North): "Computers are fast, accurate morons. Humans are slow, inaccurate geniuses." [1] Computers can not read a text file and understand it: they just redisplay it for interpretation. As such, computers can not make any more advanced conclusions based on the information available. The Semantic Web is an effort to change that.

LiveJournal enhances the information available at a main journal page by using information in the header to direct tools to more information about the page. For example, in the header of my journal, the following content is included:

<link rel="alternate" type="application/rss+xml" title="RSS" href="" />
<link rel="alternate" type="application/atom+xml" title="Atom" href="" />
<link rel="meta" type="application/rdf+xml" title="FOAF" href="" />
<meta name="foaf:maker" content="foaf:mbox_sha1sum 'bbff51a6d70630daafe242c186a6e27fda3e99c7'" />

This says: "Here is some other information about the page. Namely a FOAF file, an RSS file, and an Atom file are attached to this page, which are of the type metadata, alternate data, and alternate data, respectively." A browser which understands this information might be able to offer you extra options on this page. For example, a window might pop up alongside your browser providing details about the person: Their name, their AIM IDs, their interests, and more. (There is a tool to do this for Firefox users: FOAFer, which creates a transparent display of FOAF information attached to a page. However, it has lots of problems, and I wouldn't recommend it unless you like playing with such things.)

Although this is useful, it is kind of pointless: Usually if you're reading a weblog, you can find out who created it easily enough. However, the FOAF file I previously mentioned contains quite a bit of information which can be useful in the context of more than just a sidebar: it serves as a set of contact information that a computer can understand. Previously, I mentioned an Redland based bot that I'm working on. The main use of this bot is to aggregate information about people that the computer can understand, and allow them to ask it questions based on it.

In addition to my LiveJournal FOAF file, I have an additional file that describes me at (There is a human-readable version of this page.) In this file, I describe my location as a set of GPS coordinates. Once I have done this, I can ask my favorite bot where I live:

20:56:39 < crschmidt> ^icbm crschmidt
20:56:45 <+julie> 42.9813 -71.4369

Simply open a mapping utility, and you can find all kinds of things near me, from Geocaches to maps on how to get there.

Ever wanted to find a bar, but couldn't remember the address? Just describe it in a language that a computer can understand, and you can ask the bot:

21:00:59 < crschmidt> ^pub-address Cuths Bar
21:01:00 <+julie> Durham United Kingdom 12 South Bailey DH1 3EE ,

A lot of the semantic web seems like hype - sure, this is great, but what can it do for me now? By creating this tool, I feel that I have created something that people can actually use in small doses as a source of information. Need the AIM name for someone, but only have their nickname? How about an email address?

21:04:41 < crschmidt> ^mbox crschmidt
21:04:46 <+julie> []

This information is easy to describe -- and the larger the dataset gets, the more understanding computers can have of the information on the world wide web. It's not artificial intelligence - nor do I claim it is. It's merely making it more simple for computers to understand how to answer the questions you ask. And to me, that's pretty darn cool.

[1] This quote is from Mr. Reber, and was told to me approximately 4 years ago. Googling to ensure that the quote is actually original returned only one result: a paper by another student of the same teacher. Apparently the quote is actually original, something I was never quite convinced of in the past.

  • candy

    At our old house, we always ran out of candy, so I live in perpetual fear of it. At this house, we were totally ghost town one year, and we ran out…

  • Projects

    Overall, I have a handful of projects I'm working on. - Livestream Alerts: Website for generating alerts during Livestreams. Most recent work:…

  • sigh, humans

    For the last 36 hours, I have been unreasonably upset by the simplest, stupidest things that people do. Why can't people just be more smart and less…

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded