Wednesday, October 16, 2002

WS DevCon: Christopher Dix: .NET, XSLT and Web Services


In my view, Chris has presented a truly original way to use XSLT and to build Web Services.


The idea is simple. Fundamentally, a Web Service is nothing more than a processor that takes XML input and generates XML output. XSLT is a language to define transformations of one XML document in to another. If one thinks about WS and XSML in these terms, they are indeed pretty close. As Don put it ?SOAP is XSLT with a longer wire?.


So what Chris did was to create a Web Service almost entirely in XSLT. I say ?almost? because you still need to write basic plumbing (HTTP listener, trigger XSLT) in ?regular? code.


The question is: how is it useful?

After his talk I?ve bounced an application idea with Chris and others. I started thinking about how to expose inference engines and/or expert systems as Web Services. This problem is coming from the product I?m working on. Any application that is based on inference engine (such as CLIPS) is defined in terms of ?facts? and ?rules? about those facts. If one can find a mapping between CLIPS rules and XSLT templates; as well as mapping between CLIPS facts and SOAP messages ? then you might have a generic WS interface to any inference engine application. That would be pretty cool. Now, I don?t pretend to know how to build such mapping. But I promised Chris I?ll spend some time thinking about it :)