Clay Shirkey wrote an article recently that everyone else has commented on - so I suppose I ought to drop my 2 cents. It's a good read, and makes some interesting points:
Despite their appealing simplicity, syllogisms don't work well in the real world, because most of the data we use is not amenable to such effortless recombination. As a result, the Semantic Web will not be very useful either.
The people working on the Semantic Web greatly overestimate the value of deductive reasoning (a persistent theme in Artificial Intelligence projects generally.) The great popularizer of this error was Arthur Conan Doyle, whose Sherlock Holmes stories have done more damage to people's understanding of human intelligence than anyone other than Rene Descartes. Doyle has convinced generations of readers that what seriously smart people do when they think is to arrive at inevitable conclusions by linking antecedent facts. As Holmes famously put it "when you have eliminated the impossible, whatever remains, however improbable, must be the truth."
This sentiment is attractive precisely because it describes a world simpler than our own. In the real world, we are usually operating with partial, inconclusive or context-sensitive information. When we have to make a decision based on this information, we guess, extrapolate, intuit, we do what we did last time, we do what we think our friends would do or what Jesus or Joan Jett would have done, we do all of those things and more, but we almost never use actual deductive logic.
Consider that for a minute - just how often are you confronted with a set of simple truths, from which you can derive useful results? In my experience, not that often. What we get instead are a set of partial facts, many of which are actually (or seemingly) contradictory. You aren't left with a set of statements from which an obvious truth drops out; rather, you are left with a mass of data that you have to make sense out of - and deductive reasoning isn't going to help you that much. Heck, marketing and sales departments would have much higher hit rates if it was as easy as the semantic web folks make it out to be. Here's a useful example he gives:
Consider the following statements:
- The creator of shirky.com lives in Brooklyn
- People who live in Brooklyn speak with a Brooklyn accent
You could conclude from this pair of assertions that the creator of shirky.com pronounces it "shoiky.com." This, unlike assertions about my physical location, is false. It would be easy to shrug this error off as Garbage In, Garbage Out, but it isn't so simple. The creator of shirky.com does live in Brooklyn, and some people who live in Brooklyn do speak with a Brooklyn accent, just not all of them (us).
Each of those statements is true, in other words, but each is true in a different way. It is tempting to note that the second statement is a generalization that can only be understood in context, but that way madness lies. Any requirement that a given statement be cross-checked against a library of context-giving statements, which would have still further context, would doom the system to death by scale.
Context is what kills this. Statements nearly always have a context - we simply don't live in a context free world. Thus, any statement requires knowledge of context before it can really be evaluated. Without that context, what you get is GIGO. The most entertaining part of the article is Clay's devastating takedown on proposed uses of the Sematic web - taken directly from the W3C site:
Consider the following, from the W3C's own site:
Q: How do you buy a book over the Semantic Web?
A: You browse/query until you find a suitable offer to sell the book you want. You add information to the Semantic Web saying that you accept the offer and giving details (your name, shipping address, credit card information, etc). Of course you add it (1) with access control so only you and seller can see it, and (2) you store it in a place where the seller can easily get it, perhaps the seller's own server, (3) you notify the seller about it. You wait or query for confirmation that the seller has received your acceptance, and perhaps (later) for shipping information, etc.
One doubts Jeff Bezos is losing sleep.
This example sets the pattern for descriptions of the Semantic Web. First, take some well-known problem. Next, misconstrue it so that the hard part is made to seem trivial and the trivial part hard. Finally, congratulate yourself for solving the trivial part.
All the actual complexities of matching readers with books are waved away in the first sentence: "You browse/query until you find a suitable offer to sell the book you want." Who knew it was so simple? Meanwhile, the trivial operation of paying for it gets a lavish description designed to obscure the fact that once you've found a book for sale, using a credit card is a pretty obvious next move.
This describes the free floating "huh" I've had whenever RDF gets discussed. The advocates throw it around as if it were a magic wand, ready to deliver perfect meaning to all of us - without ever stopping to consider the issue of context. Field names mean nothing without context, and throwing them around as if they had freestanding meaning simply confuses the issue. Just because I have a tuple with names attached doesn't mean a lot - if it did, there wouldn't be so much data migration work in the real world. Clay goes into this problem as well, and it's worth reading in full
You can look at RSS, and the various attempts to create meaning from it as an example. RSS works because all the tags have an agreed upon meaning. If I stumble across <title> as a part of the <item>, I know what it means. Why? Because enough people started using it that way. Does that mean that I know what <title> means in some other XML document of a different format? Nope. I don't care if the RDF folks shout all day long about how the tuples describe it; unless there's been an explicit or implicit agreement, the tag could mean anything. If I try to make assumptions, I'll likely present utter nonsense to people. This is why standards exist; you have to have agreement on terms before you can get anywhere. Loose rules based on supposed semantic equivalency simply aren't going to be trusted.
This summary puts it all very well:
After 50 years of work, the performance of machines designed to think about the world the way humans do has remained, to put it politely, sub-optimal. The Semantic Web sets out to address this by reversing the problem. Since it's hard to make machines think about the world, the new goal is to describe the world in ways that are easy for machines to think about.
Descriptions of the Semantic Web exhibit an inversion of trivial and hard issues because the core goal does as well. The Semantic Web takes for granted that many important aspects of the world can be specified in an unambiguous and universally agreed-on fashion, then spends a great deal of time talking about the ideal XML formats for those descriptions. This puts the stress on the wrong part of the problem -- if the world were easy to describe, you could do it in Sanskrit.
Context, or as Clay puts it, world view, are critical. His examples make this clear:
Many networked projects, including things like business-to-business markets and Web Services, have started with the unobjectionable hypothesis that communication would be easier if everyone described things the same way. From there, it is a short but fatal leap to conclude that a particular brand of unifying description will therefore be broadly and swiftly adopted (the "this will work because it would be good if it did" fallacy.)
Any attempt at a global ontology is doomed to fail, because meta-data describes a worldview. The designers of the Soviet library's cataloging system were making an assertion about the world when they made the first category of books "Works of the classical authors of Marxism-Leninism." Charles Dewey was making an assertion about the world when he lumped all books about non-Christian religions into a single category, listed last among books about religion. It is not possible to neatly map these two systems onto one another, or onto other classification schemes -- they describe different kinds of worlds.
This is exactly why you can come up with industry area standards on formats using meta-data to describe things - the context, or world view, is similar enough that you can get agreement on terms. Now try to come up with a cross industry, universal context - and you'll start to understand why so many large ERP projects run aground. The ERP vendor put together workflow (etc) within a given context - and that context works less well the further away from it you get. The same thing happens with attempts to come up with a universal descriptive language for the semantic web - there are too many competing contexts.
I'd suggest you go and read his entire piece - it's a truly devastating takedown of much of what the semantic web folks think they are trying to accomplish. By shining the bright light of reason on it, Clay has given all of us a lot to talk about