

Part I : Advice from Nova Spivack, CEO of Radar Networks at SemTech 2008. Radar Networks is the creator of Twine, a promising semantic-social-networking collaboration app.
SR: Nova, I'm looking for some advice. The semantic web field is exciting, it's promising. Suppose I'm a fairly competent programmer looking in from the outside. How do I break in and find work in the semantic web field?
Spivack: First you need an understanding of RDF, an understanding of how URIs are used in RDF. A basic understanding of OWL - what is is, just simple owl lite. These are all learned from the W3C's website. Look at some basic ontologies that are very popular. One is FOAF, friend of a friend. That's a good example to learn on. Another one that is becoming popular is SIOC , semantically interconnected online communities for starting message boards. There's GeoNames for geographic places, also DBpedia.
They should also be familiar with some of the leading sites. Powerset, Freebase, Twine. They should be familiar with these apps. If they have time they could try AdaptiveBlue, which is a pretty cool organizer actually. Trippet, a travel site. So they should take a look at these, get an idea what people are doing.
Once they have a basic understanding of this sector they should download Protege and make their own ontology. Go thru the tutorial, look at one of the examples. Protege is one, there is another that is a little bit more advanced, which is TopBraid composer, which they can get for free on trial basis.
I would advise anyone who is starting to work with semantic web to just avoid reasoning, anything involved with OWL Full. Just learn OWL Lite, and learn how to make an OWL Lite ontology. So forget about reasoning and everything involved in that, it's complicated and nobody is using that for anything real yet. But do make an ontology, they have a simple newspaper example in Protege and I don't know what they have in TopBraid composer. And then, you can write your own little app. You might use Ruby on Rails with ActiveRDF as a plugin, for example, or you could, if you really want to dive in, you could use Jena, which takes much more of a learning curve but has a full semantic stack. A more sophisticated environment.
So make a simple little app, that uses an ontology that you created to do something. Doesn't have to be much, this is just for learning. Once you've done that, you're well on your way to being a semantic web coder. Then what you need to do is become familiar with some of the other standards, like SPARQL and GRDDL. So learn about SPARQL, which is a query language, and GRDDL which is for doing on the fly transformations of non-RDF data to RDF. Learn about those. And, try making an app that uses some of the existing ontologies and data on the web. So, as an interesting project, make an ontology about something. And then, include the Dublin Core and start to consume some data from other sites. Make an app that does something with DBpedia data, for example. That's a really great example. Do an app that could organize or search or make sense of that data. So, actually all the raw materials are available using Jena, Ruby on Rails with ActiveRDF, TopBraid Composer or Protege, you could actually build a very sophisticated semantic app pretty easily.
That's a good start. If you actually make anything cool just put it on the Net and people will start using it. But at the very least, if you show up at an interview, asking for a job, you can show them something you've actually built using these technologies and that will put you in the front of the line compared to everybody else. Its no substitute for being a good programmer, you still should be a good programmer, have experience, have worked at some companies, have worked at real projects...but all things being equal, this is what you can do to put yourself in front of the line, that you've built, can actually show them some semantic apps. So they actually understand what you can do.
That said, it's hard to get a job in the semantic web space, because there aren't that many companies using it yet. But it's increasing, it's growing over time so you could try the main compaines, but also lots of banks, health care, defense, systems integrators are also starting to think about this. Everybody wants to have someone with expertise around so there may be opportunities with those kinds of companies.
SR: Suppose you were, instead of an individual programmer, maybe a small technology company who has gone thru some or all of those steps you've just described. And as a small technology company, you want to get a contract job or create a software product. How do you get work in the field as a technology company? It seems to me that there is an advantage to being the first to create an ontology in a specific vertical market...?
Spivack: I think there are different types of opportunities. One would be to actually make a nice ontology for some domain that you think is going to be useful, and put it up on the web and provide some tools for navigating it, adding to it, maybe some apps that use it. You might want to make a travel ontology, or say fashion, something where there is a lot of data around. This could be consumer or B-to-B. So that's one approach, you could try to become the provider of the ontology, connect some data to that. So you start to steward that.
Another approach is more towards developer tools. I mean, there is some big needs for developer tools. There is only one commercial grade ontology design tool, which is Top Braid. There's probably room for more than one. And there is still lots of room for other kids of development tools. Full development platforms, modules. There is something for Eclipse, but what about other frameworks? Also, reusable libraries, if that's the kind of business you're in, there's lots of libraries you could develop so you could plug in support for different of ontologies to your apps.
SR: Do you think, though, its necessary to work with clients in the field to make sure what you're doing is making sense?
Spivack: Yeah, of course, that helps. If you don't know for sure that would be the right way to go. In terms of any consulting or solution related work, it does exist. Its often with the bigger systems integrators, they're the ones getting the contracts. So you need to talk to the semantic teams at BBN, Booz Allen, tell them what your capabilities are, and maybe they'll fit you into their projects, subcontract you. There's a bunch of them actually, CSC, and also SIAC. These different systems integrators do a lot of govt work, SRI even, and they from time to time need people with semantic skills to help them. So if you meet the right people in those organizations. Big commercial enterprises are in the research and learning stage. But banks are certainly looking at these technologies and maybe could use some. Certainly intelligence agencies are using it. There are places..but mainstream America - not yet.
SR: That was my sense when I first started looking at it. But it seems to be accelerating..?
Spivack: It's accelerating, yes, but its still a few years out. The tools aren't quite there, the use cases aren't quite there yet, the proof isn't there to get them to want to do it - the payoff, that's kind of missing. There's also I think a need to make browser plugins for Firefox, Safari, to help you see the data. There's a lot out there with semantic search, that's starting to be pretty full I think, but advertising could be an area. So I think there's a lot of opportunity, but it takes time to find what the right options are.
SR: Thanks, I think that's really good advice. Makes sense.