The Semantic Web works on a principle of least power: the less rules, the better. This means that the Semantic Web is essentially very unconstraining in what it lets one say, and hence it follows that anyone can say anything about anything. When you look at what the Semantic Web is trying to do, it becomes very obvious why this level of power is necessary… if we started constraining people, they wouldn’t be able to build a full range of applications, and the Semantic Web would therefore become useless to some people.
This is where it gets a bit tricky… There are a number of “formats” suitable for the Semantic Web, the most popular of which is RDF/XML. It doesn’t really matter that there are other formats also in use; nearly all of them are based on the same ‘data model’ (RDF), so they can be easily combined and made interoperable.
The main power of Semantic Web languages is that any one can create one, simply by publishing some RDF that describes a set of URIs, what they do, and how they should be used. We have already seen that RDF Schema and DAML are very powerful langauges for creating languages. Because we use URIs for each of the terms in our languages, we can publish the languages easily without fear that they might get misinterpreted or stolen, and with the knowledge that anyone in the world that has a generic RDF processor can use them.
The principle of “inference” is quite a simple one: being able to derive new data from data that you already know. In a mathematical sense, querying is a form of inference (being able to infer some search results from a mass of data, for example). Inference is one of the driving principles of the Semantic Web, because it will allow us to create SW applications quite easily.
A URI is simply a Web identifier: like the strings starting with “http:” or “ftp:” that you often find on the World Wide Web. Anyone can create a URI, and the ownership of them is clearly delegated, so they form an ideal base technology with which to build a global Web on top of. In fact, the World Wide Web is such a thing: anything that has a URI is considered to be “on the Web”.
The Semantic Web is a vision, that hopes to join together dispersed bits of data on the internet, very much like web pages are currently joined (linked) together. As with the current web of pages, anyone can create data on the Semantic Web, and anyone can “join” one bit of data to another.
Almost all developers have personal web projects they like to plug away at in their spare time. This is another question that can help differentiate the passionate developers from the clock-punchers. It’s also a good question to end an interview with, as it’s usually easy (and fun) for them to answer.
There is a right answer to this question: all of them. A competent developer should be familiar with testing cross-browser compatibility by using all the major web browsers. Obviously they’ll have a primary browser they use for surfing, but their answer to this question might be a good way for you to segue to asking how extensively they test cross-browser issues. Also, if it’s some kind of css/html position seeing what toolbars they have installed can be a good metric of their skillset (I personally find the web developer toolbar for firefox to be invaluable)
Some might argue that knowing what acronyms actually stand for is trivial, but there are certain acronyms that a developer should have hard-wired into their head ( HTML or CSS, for example). This is the kind of question that might be better reserved for the phone interview to weed out those who are very unqualified.