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 good comment to my last post, and one that kind of pinpoints the same spot I got stuck at.  And I think all the semantic Web guys out there need to pay attention to this, because you REALLY don’t give this aspect enough love:

"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).

You’re speaking my language Rex.  This was my frustration for a long time too.  I saw these guys talking about marking up data, and the programmer part of me would push back saying “but hey, wait… you’re not making it any easier to CREATE and UPDATE data—to write an application around it—this needs to tie into a programming model of some kind to be useful”. 

The key is that the foundation of the semantic Web is that objects are identified by URI’s.  I will probably catch flack from the purists for talking about it this way, but if you really think about it as an object at the URI, and not just some data describing an object, you can start using it in application development .  The semantic Web crowd really only talks about reading data from those objects.  What I haven’t really heard anyone talking about much… well, at all that I can remember… is that you can also expose object services from those URI’s, which means you can build a service-oriented architecture around it.  My applications can not only look at data on your server, but I can also use the objects living in memory there because you can tell me where their services are.  All you have to do is add an annotation which says (“To renew your
driver’s license just use this service, located right here.  Here’s the
WSDL file so you can figure out how to use it”)  That’s all it really
needs to do, but that’s the big part I was missing.

Once your objects can point to services that can be used to manipulate them, you can do all the cool stuff that Rex was talking about.  Your friend can expose a service so that you can shoot him a message, and you can do the same.  I can send your blog post a message that “here, I want to post this comment.”  And your blog post can even know WHO is sending the comment, and decide whether or not it wants to let it post based on if they know you or not.  (Tim Berners-Lee is doing this today on his blog–thanks for the heads-up, Kingsley :)  

For some reason from all the things I’ve read about the semantic Web, it came off as sounding as some way to try to build a better Google.  That’s not it.  Well, it can be, but I don’t really care too much about that.  Google works just fine for what I use it for, I’ll probably use it forever to find out what the world thinks about a topic.  I like it.  But my *applications*, they could sure use a global database.  It kind of turns the entire Net into one giant distributed application platform—pretty cool stuff.

I am not sure why this capability is not talked about more, except for the fact that a killer application has not come out with yet to make people say “wow, how is it doing that?” and which makes you bother to look into it.

Share and Enjoy:
  • Print
  • Digg
  • Facebook
  • Google Bookmarks
  • HackerNews
  • Reddit
  • http://simon.bloody-byte.net/ Simon Reinhardt

    I think the key point here is to understand that the Semantic Web doesn't aim to *replace* the World Wide Web. It uses the WWW as a base to enable us to talk about data unambiuously and interlink data. So it rather *integrates* with the current Web.
    And I don't think you can say people are forgetting about actions and functions because that's not the goal of the Semantic Web – this is the goal of other technologies which can be used together with it: REST, SOAP, WSDL, AtomPub, OpenID, OAuth, other protocols and APIs.
    These are very exciting technologies as well and are part of the the whole idea which will eventually make the WWW itself a better thing. On their own they won't change much.
    But, as you point out, the Semantic Web is very important to let all these things integrate with one another. And linking objects to service descriptions which tell you how to influence them (if you can't figure out with a REST approach already) is just a matter of the vocabulary. :-) Also note that there are extensions to the query language SPARQL to insert and update data.

    >> I will probably catch flack from the purists for talking about it this way, but if you really think about it as an object at the URI, and not just some data describing an object, you can start using it in application development .

    This is exactly the way SW folks think about it. The URI of a resource shouldn't point to a document directly because then it would identify that document. But there are ways (redirect, hash-URIs) to get from the URI identifying a song for example to the URI of a document describing that song.

  • http://www.openlinksw.com/blog/~kidehen Kingsley Idehen

    Simon,

    REST, SOAP, WSDL, AtomPub, OpenID, OAuth, other protocols and APIs.

    All mesh well with URIs. If you look at the SIOC Ontology for instance you will see how this all comes together.

    Links:

    1. http://rdfs.org/sioc/spec/ – Spec
    2. http://rdfs.org/sioc/spec/#sec-modules – Types & Services Modules

    Note: SIOC is a generic glue ontology for Containers and Items that reside in one or more Data Spaces.

  • http://simon.bloody-byte.net/ Simon Reinhardt

    That's what I meant. :)
    It's not the core goal of the Semantic Web to be a new kind of Web which can do everything, including behaviour. Instead it works as a linking mechanism for the data of all those other services and can integrate them nicely.