Semantic Web always sounds like some magic power stuff that a group of people keep yelling about. Chances are, if one is into web development, he/she would have heard of it somehow or other. However, despite the supposedly wide awareness about it, are we using it? Or rather, am I publishing enough data to Semantic Web? OK, I don’t, but why?
Let’s start with a really brief definition of Semantic Data that I may have repeated myself here. In short, Semantic Web is a Web of Data that allow structured content to be published and exchanged (linked) so that they can be used by machines (programs) for whatever purposes. Well, I lied, it was a pretty long statement.
Basically, it sounds very similar to the current World Wide Web where everything is published and linked together via the ever-so-mighty hyperlinks. However, documents published to World Wide Web are mostly for layperson like us. I wouldn’t say it would be impossible, but it is a lot of work involved if a program wishes to use the content published to World Wide Web directly. Surely, with the popularity of social web applications where API is often made available for developers to use in their programs, this somehow made the whole process a bit more bearable but not all does that.
So with all the available API for most major Web 2.0 applications, why would we still need Semantic Web? While it is true that one can export more data from these social web applications via API, but there’re all publishing data in all different formats and schemes and makes aggregation of data from various sources a big headache. Imagine application A use ‘username’ to describe a user’s handle, and application B uses ‘nickname’ instead, not forgetting application C doesn’t have the concept of ‘username’ at all and uses ’email’ to uniquely differentiate users. Yes, it is possible to write custom connectors or whatever to link the data up, but it is not scalable when one wishes to aggregate a lot of them.
So, how do we do it properly? I am not saying this is the best solution because it does involve a lot of work too – publish it in RDF format, or even the stricter OWL if one is adventurous enough. Yes, it does involve a lot of work but it is a one time work mostly (yes, I am being ridiculously optimistic here). Another problem is that the most popular interchange format for RDF is XML where most web developers these day don’t really like. There’s a JSON-RDF interchange format that was causing some debate a couple of months ago and I don’t really follow the progress here but I suppose some agreement is made.
Let’s revisit the main topic of this post, what can I do with Semantic Web. How many profiles do you have online? I for instance have one on Facebook, and one on Google+, one on Twitter to name a few. How can I aggregate everything together in a place so that I do not have to tell my friends over and over again on how to find me on any given social network? OK, sure, I can use services like about.me or may be diaspora? But there’s another way of doing this, publish them via RDF.
However, it really need a simpler way to achieve this and I am indeed drafting an idea and would start working on it soon. I am not aiming it to be as fancy as the existing solutions, the main goal is to make this work.
So assume I have my personal profiles all published, so what’s next? There doesn’t seem to be a practical reason of doing so, some may ask. I don’t want to sound overly optimistic or ambitious here, so would just concentrate on the project and start publishing first then only start finding ways to use the published data. Surely there are people who knows more in this field and would have better ideas worth spreading (OK, I should stop watching TED talks and get working).