The Semantic Web is simply a modern synonym for "AI". It promises essentially the same things, functions in essentially the same ways and uses most of the same principles, theories and technologies. Except now it's relying on super-large internet scale versions of all this. But really it's nothing different than predecessors like Cyc. It'll be a failure for exactly the same reasons.

What semantic research regularly ignores is that describing the system with a semantic representation, is roughly equivalent to the effort and scale to make the original. Until a semantic graph describes the universe it is expected to reason about (which is akin to being the universe), its utility is extremely limited. Even domain specific applications might contain billions of entities and relationships. Who builds this giant hairball? The argument is that the crowd should, but I'm too busy building my application to build what essentially amounts to a bunch of virtual synapses in a virtual brain that I'll derive no benefit from in the lifetime of my web app.

On top of that, we know almost nothing about building the reasoning systems on top of this kind of enormous graph. We have little toy models of a few billion relationships, but what we want from the semantic web is a virtual agent with super-human intelligence capable of reasoning about the world like we do, just using a brain with the capacity of the internet. Basically, we want Kurzweil's singularity. But we have no real idea beyond very simple cases where the reasoning systems on these toy model do anything generally useful. The reason our brains work is that we are designed to work on limited sets of data, and infer information that we don't know about. We popularly call this imagination. For an idea like the semantic web to be useful before the graph is complete, the reasoning systems have to essentially be able to imagine. Data completeness and logical inferencing on that graph are simply not enough.

Even experiments like Cyc, where many man decades have been spent building essentially a similar thing, have yielded no real applications...even on very constrained and extremely limited domains like the Terror Knowledge Base. You know why? Because reasoning about the motivations of a terror group quickly start to involve secondary and tertiary considerations (and higher) to be useful. Two bad guys working in coordination might not make any sense unless I know that they went to middle school together. No I have to teach the system what a school is, what classes are, why that makes a difference, how that might impact future predictions....and now I'm quickly down in the weeds. And the system is not likely to be able to imagine different kinds of schools and then different kinds of social gatherings etc. that might predict similar kinds of coordination in the future.

The problem is not a chicken and egg problem exactly (nobody will participate in constructing the semantic web until the semantic web is up and running). The problem is even if all of us started tomorrow to build the semantic web. It would be generations before we had a real graph to work off of. Who knows how long before we had enough reasoning systems on the graph to do anything really useful. And for all that effort? Perhaps a few percentage points difference over the capabilities we already have with far less effort. Until we can take something like the Cyc project, and turn it into a useful system right now, larger scale systems like the Semantic Web are essentially useless.

The real problem though is that semantic we researchers simply aren't learning from these prior efforts. Their idea is to just "do it bigger". Which is not helpful. The semantic web is supposed to be a model on the world. But our small models of this proposed model don't actually do anything. Even a toy car can still roll. The real answer is, let's figure out how those efforts failed beyond just not being "big enough". Basically we failed in the past, and the idea is to just try harder -- this is essentially the definition of insanity.