What the Semantic Web IS

I got an interesting comment from Edwin Stauthamer on my last post about my little epiphany about the semantic Web

When I saw the title of your post I thought I finally found a post that could explain what the semantic web is.  Instead of that I read a post about how you found out the fact that the semantic web consists of some technologies and insights you already used and know about for years.

I think this comment is interesting for a few reasons:  It’s pretty obvious that Edwin has heard of the semantic Web, but has very little practical idea about what it is, and also that he’s not aware of what it DOES.  Does is the most interesting part to me, because the “is” is just a means to an end.  I also think that Edwin’s view is typical of a lot of people’s, definitely very similar to mine up until recently.

So I’m going to take a crack at this.  I know that my definition probably won’t match what you’ll see if you look it up in Wikipedia, but I’ll give you my impression of the core ideas—in probably an unusually object-oriented way, because that’s how my brain works.  Going from simplest to most complex, here’s how I view the functionality of the Semantic Web:

  • Identifying data objects using URI’s.  This is one of the core tenets of the semantic Web, if not THE core tenant.  It enables everything else.
  • Showing objects as they need to be shown.  This means that when you request an object’s data, you get its data.  When you request a visual representation, you get a visual representation.  Same object, usable for different purposes.  (Technical enabler:  content accept HTTP headers)
  • The ability to either use property types defined by other people for your objects, or to make up your own brand-new ones if you prefer.  The properties that you use from other places are capable of interoperating with other data on the Web even if the rest of your object doesn’t match.  (Technical enabler:  RDF)
  • The ability to define some pretty complex classes with some pretty specific structures. (Technical enabler:  OWL)
  • The ability to expose object methods.  This one gets lost in the shuffle, but essentially what it means is that you can set the property of an object so that it points to a Web service endpoint of some type which is functionally equivalent to a method for the object method in a traditional object oriented programming language.  (Techinical enabler:  RDF, RDFS, OWL, SAWSDL and SA-REST)
  • The ability to create associations between objects, even to the point that something (probably software) reading the data can see that data associated with one URI is really the same as data associated with another URI (for example, the entity which is referred to by <http://dbpedia.org/resource/Tim_Berners-Lee> is the same as <http://www.w3.org/People/Berners-Lee/card#i>).  It also means that an object property can derive its value from data associated with another URI.  (Technical enabler:  HTTP)
  • The ability to crawl through the node structure (data graph) to find data, discern information, and infer facts to understand what it all means (Technical enabler:  all of the above, plus query language and inference engines)

This is a gross oversimplification of things, and I probably butchered the terminology, but it’s what would have made me say “aha” when I saw it a month back.  This really doesn’t touch on how any of this is actually used (use cases), because there are just so many different ways that it would make your head spin.  The way to actually use all of these components could easily fill a book (and they have!)  I tend to think of it as distributed object-oriented programming on steroids, with a distributed database and a cherry on top.

Hope that answers your question a little better Edwin.

Share and Enjoy:
  • Print
  • Digg
  • Facebook
  • Google Bookmarks
  • HackerNews
  • Reddit
  • http://profile.typekey.com/[email protected]/ david in nz

    I'm in a similar boat to Edwin. So thanks for trying to explain.

    While you say "The way to actually use all of these components could easily fill a book…", I still think it would be helpful to have an example or two. (Think of them as supermarket taste samples.)

    PS. You probably mean "core tenet" where you wrote "core tenant".

  • http://dannyayers.com Danny

    Oh, more quotables!

  • http://www.jasonkolb.com Jason Kolb

    LOL @david – thanks for the catch. One of the things I never realized when I started blogging is what a great language tutor the blogosphere is ;)

    I also think a use case post is in order–you're right, the things I wrote about are not all that clear immediately as to how they might be used.

  • Rex Marzke

    IMHO, it's important to note that the World Wide Web can never be "replaced" by the "Semantic Web", because the Web is more than just "data, information, and knowledge" (Tim Berners-Lee vision). The Web is also about functions: no amount of semanticism (?) will accomplish the use cases of "renew my driver's license", "comment on this blog"; or "chat with friends" (however, I feel the similar use cases of "retrieve the expiration date of my direver's license from the Department of Motor Vehicles"; "get the latest blog entries from Jason Kolb"; and "show my chat history with Jason Kolb" are achieveable with Semantic Web)

  • http://www.jasonkolb.com/weblog/2008/01/the-strange-sec.html JasonKolb.com

    The Strange Secret of the Semantic Web

    It’s fascinating to me to follow the comments on my recent posts about the semantic Web, because I can kind of watch people retracing the same mental steps I took before I really understood it. Rex Marzke left a really