Keeping the faith



Filed under: June 20, 2009, 1:29 pmFiled under: Uncategorized

Today I have two days worth of research to sum up that covers two different areas. One is general semantic web stuff, the other is practical stuff for publishing data in .Net. I’ll start with the higher level stuff. I found this interesting page from 2003 written up by Tim Bray who was involved with coming up with the specification RDF. It’s made me realise that this stuff is not a recent occurrence, RDF has been around for 10 years at least (which makes it positively ancient in our little web world). In fact it’s been around long enough, that my research has dug up several sites that have been dedicated to the semantic web/linked data/rdf that were maintained for years, but now have been abandoned as the authors obviously didn’t see enough of this stuff actually happening.

I might just be flushed with the enthusiasm of a someone who’s new to this, but I think that I’ve picked the right time to get on board with this stuff. I feel like the word is getting out and people are listening. Semantic technologies are getting more main stream press like the PwC technology forecast to TBL being bought in to help show the UK government how to do open data. This is in turn getting more developers interested. This will hopefully lead to more data sets being available (this is the area I’m hoping to contribute to) and once there’s enough useful data someone will build that killer app that will drag everyone in. The killer app isn’t here yet so it’s still a “build it and they will come” mentality. I’m happy with that for now.

One of the better wikis on this stuff that I’ve found so far is from semanticweb.org, it has sections on tools and ontologies which looks promising even if there entry on the resume ontology is a remarkably sparse for some reason.

If you’re looking for something on the semantic web sindice.com seems like a good place to start. In order to get your site spidered you can just ping them and they’ll do the rest. As they’re still building up their index they’re more than happy for you to ping them as much as you want. A project for a future date would be to compare this with Yahoo’s Search Monkey.

After digging up all of this really interesting information, I thought my brain would explode, so I’d take a break and think about how I could actually do some of this stuff. I thought I’d start with looking what others have done in the .Net space. It was pretty sparse pickings. The two things that I did find was a C# library for dealing with RDF triples which may or may not be useful to me as I won’t have a RDF data store and I’m expecting the writting out of RDF to be fairly trivial. This library is one of the projects that has fallen by the way side thanks to lack of take up after 4 years of work. An interesting project that has been built on top of this library is this LINQ to RDF that allows you to eaisily create SPARQL queries (if you like using LINQ, I’m an old school SQL guy, so it’s not really my thing).

Still on the practical trip, I started to discuss with one of my colleagues how we can implement some of the recomended features of linked data like cool URIs and content negotiation given that ASP.Net webform apps don’t really lend themselves to this sort of architecture. For cool URIs we have the choice between using the new feature URL rewriting feature in IIS7, the other was to use the (also reasonably new) .Net MVC framework. I know neither of these ideas are particularly novel to those of you used to the LAMP stack, but it can take a while to convince MS that something is a good idea if it’s not their own. In our case we’ll probably go with MVC for two reasons.

We’re developers, if we use MVC then all of the rewriting is more within our control rather than the person who’s maintaining IIS. I haven’t had a reason to do anything with MVC and I’m always looking for something new to learn

So once I’ve gotten past “Hello World” my plan is to:

Publish some dummy data in RDF format Publish some dummy data in RDFa format Work on some content negotiation routing so I can display the above data based on the appropriate request Publish some real data

I’d like to pretend that I won’t go trawling the net for even more articles to read while I’m doing this, but I know that won’t happen. I’ll keep you all up to date with my progress on both.