Having been involved with the Web and Web services for quite some time as well as a bit of a background in Artificial Intelligence, I've always been interested in the Semantic Web. At a high-level, describing resources and providing languages for deriving new assertions and information from the descriptions is quite appealling. However, there are a few things that have always troubled me. The first, is that I bought into the "AI" arguments when I went to university. I took a bunch of lisp and prolog and neural net and robotics courses. But my dream of getting the cool AI or "create Robocop" job didn't really pan out. In fact, AI hasn't exactly taken the world by storm. It seems that "intelligence" is really difficult to program. So I'm now somewhat dubious about any similar claims.
But I think there's an even bigger problem that I see. In various forums that I've been involved in, I've regularly had a conversation that I now believe to be stereotypical:
I say "I'd like to be able to do X using Y technology". X could be describing security credentials or marking operations as safe or identifying abstract components or whatever.
generic SW response "Y technology should use SW and then Y gets X + a whole lot more".
I say "I thought X was a fairly simple problem. Can I get a subset of SW that solves just this problem?"
response "Not really, Y needs the whole thing".
Which really says it all to me. Y technology is asked to buy into a rather large and potentially unworkable technology for what appears to be a small benefit. There's two stories I'll relate on this.
The first happened a couple years ago at a Tech Plenary. Eric Miller, a leader in Semantic Web actives, myself and a few others sat down at the yearly W3C technical plenary. We had a long conversation about Web services, Semantic Web, etc. At the time, none of the latest batch of Web services specs - WS-Security, WS-Policy, etc. - had seen the light of day. I said that I thought the "killer-app" for Semantic Web in the Web services space was regard to security in Web services. Assertions and derivations seems naturally suited for Security. If Semantic Web could "solve" the problem of making assertions about things - like who signed what, who's allowed to use what, what kinds of credentials are required to do what - then I figured that the Web services folks would quite kindly at some technology that really solved a pressing problem. And given that a lot of funding for Semantic Web at W3C comes from DARPA and other external sources, I figured that wouldn't be too hard a sell for the Semantic Web folks either.
Well, I never saw this kind of stuff. The solution of a real Web services problem using Semantic Web technology just didn't hit my inbox. So now the Web services folks are doing solutions that meet the perceived needs of Web services, and not really utilizing much of the SW. And I think it's kind of too bad, but that's the way things go I guess.
The second story is one that I related to Tim Berners-Lee in a W3C TAG f2f last year. We had just had a TAG discussion about Web services describing abstract components. The WSD Working Group decided to provide URIs for their abstract components - like services, interfaces, messages - and TimBL had suggested that using Semantic Web technology would get the WSD WG this functionality. So I explained that adding all of Semantic Web into WSDL seemed like a bit of a stretch for solving just the problem of how to identify resources. So, (to be somewhat GEB-like with recursion) I gave him a real-world comparison of what was being asked.
Imagine a father and a teenage son talking about the son getting some gas money. The dad says "Son, you gotta get a job to get gas money". The son says "ok, I don't really have any skills so I'll just apply at 7-11 and I'll skip college". The dad says, "Son, getting a job at 7-11 isn't the solution. Sure it solves your short-term problem but that doesn't get you any long term benefits like more rewarding work and a bigger salary. You should go to college". To which the son says, "sure Dad, that all sounds good and I'll think about the college thing. But I just want to get some gas money so I can take my girlfriend out on a date".
You see the problem? There's a short-term solution and a potential long-term solution. To solve a pressing need now, the advice is buy into a whole big framework of college. And the son also has heard lots of stories of people who went to university, got a degree, and then still didn't get jobs. So they stayed on at university and got a Masters degree. And still didn't get a job. There's no guarantee that college will get the long-term results.
The way that I figure it, is the dad needs to play his cards a bit better. Now I'm not a father so I'm just guessing as to whether a parent can actually directly motivated their teenage kids (!), but here's my best shot at it. It probably ought to be something like "Sure son, why don't you get a part-time job at 7-11. But don't do the full-time job. If you go to college, you might meet lots of interesting people there, get a better job, all that good stuff. Now I know you really want some gas money, but I don't give it for free. So I'll tell you what, if you do go to college, I'll match your income from 7-11 so that you don't have to work all the time for gas money. And if you get in the top 10%, I'll double the 7-11 income."
So the dad shows a solution to the pressing problem of gas money, some concrete advantages of going to college, and helps in the transition.
Whereas, when the relationship between Semantic Web and Web services has come up in my experience, most of the time it's been "Just use the stuff". And in the same way the father might be right about college, the SW folks might be right about using SW. But being asked to buy into any kind of framework without showing really solid solutions to the pressing problem, and a dubious history of technologies like the framework, is simply too much to ask of our fictional son or many of the Web services folks.
I think that if SW folks want to convinced WS folks to use their "stuff", they really need to do a better job of showing short-term benefits. And that means really understanding the "customer", ie Web services. Integration of technologies and liaison work always has to happen at the very low level of the details, and that means showing value at a very concrete level to individual developers. Now maybe SW folks don't think they need to work real hard to convince WS folks. People often have a fair amount of pride as well as limited time available. And maybe it's too late already and the window of opportunity has closed. I hope it hasn't, but these things do seem to have windows of opportunity.
In retrospect, I really think that there has been a real missed opportunity. I imagine that lots of the learning of each side will be learned the hard way by the other side.
“I imagine that lots of the learning of each side will be learned the hard way by the other side.”
Big +1 — It’s amazing how much disdain you see on both sides, when there could be so much synergy. Both are far from perfect.
Oh God, not the AI argument. It's the equivalent-to-Godwin's-Law for Semantic Web discussions, I'm sure.
RDF/XML is merely XML with better (self-descriptive) extensibility; if you set out to add "touchless extensibility" to XML, you'd end up with RDF or something like it. It's not some futuristic 10-year-out thing, it's out there here and now, solving extensibility and integration problems for many people, including myself. I'm not sure TimBL's Semantic Web vision will ever happen, but I know that if I use RDF/XML today, that it takes care of enabling future apps to deal with old data, and old apps to deal with future data. That's it, that's what it buys you.
I'm sure it would give everybody the warm and fuzzies to believe that there's things to be learned from both sides going forward. But there really isn't, at least not in the way you're probably have in mind (e.g. having WS reliability and choreography solutions integrated into the SemWeb). What I mean is that while Web services are a big waste of time, a lot of the people working on them have unique perspectives on distributed systems that the Web/Sem-Web would do well to absorb in some form; these people are just currently missing a minimally workable architectural style to project their experiences upon. I'm **really** looking forward to the day, for example, when I can talk transactions with Eric Newcomer in the context of Internet scale systems.
Mark, how do you expect Web service proponents to listen to you when you tell them their work is a waste of time? It's like the father from Dave's example telling his kid to stop being stupid.
I know what I would have done had my father spoken to me like that ;-)
Another big +1 from me for both Dave and MNot's posts.
Now you mention it, Stefan, I suppose Web services aren't really a waste of time. They're just a very expensive lesson.
My first paid IT job was writing 'expert systems' in prolog and my abiding memory of that work is after spending a lot of time supplying rules, people never seemed to like the generated results. So they iteratively introduced weightings and short-cuts just to get the expected outcomes. In the end it would have been a lot simpler to write some straight logic in C. I guess these failures were due to of a lack of trust and understanding than problems with the technologies themselves.
For the SW to take off, there have to be good, usable tools, understandable by mortals and not just 'recommendations' for the nuts and bolts understood by the few.
I like the college-gas money analogy very much though i do get the feeling that with AI and the SW we're, like Alice, being offered jam tomorrow but never jam today.
OTOH one immediate practical application for SW could be to express the proponents and relationships of all the WS-* specifications and infer some kind of IT strategy for Web services :-)
Paul