Chris's Rants

Thursday, February 05, 2004

Cool URIs dont' change?

Don Box writes about the W3C's recent decision to change the resource behind the http://www.w3.org/tr/soap URI. For the longest time, dereferencing that URI returned a representation of the SOAP1.1 W3C Note. Now that the SOAP1.2 specification has become a W3C REC, it was thought by the W3C that it would be appropriate to have the URI return the SOAP1.2 spec instead. As Don points out in his missive, this seems natural because the SOAP1.2 spec is the normative recommendation of the W3C.

However, he goes on to explain his difficulty in finding the SOAP1.1 specification, even citing the fact that the SOAP1.2 spec, in its informative references section references the SOAP1.1 specification, but using the aforementioned URI! Doh!

Many of us are familiar with timbls (or should that be Sir timbl now?) WWW axiom "Cool URIs don't change". Certainly, the SOAP specification resource warrants the distinction of a "cool URI". A Google "I'm feeling lucky" search of the term "SOAP" returns the representation returned from the URI http://www.w3.org/TR/SOAP/ which is strongly suggestive that the URI is widely referenced throughout the Web. In fact, a search of the term "tr/SOAP" returns 7,770 hits. How many of those references do you think were meant to reference the SOAP1.2 specification? Given the fact that the W3C only recently effected the change, probably not very many, IMHO. Indeed, many of the references are from some other Web services specification and one would reasonably expect that such a reference might be considered normative. (oops!)

In this case, the URI didn't in fact change. One could reasonably make the argument that the URI still points to "the SOAP specification". However, the distinction that those of us in the XML Protocols WG, who labored on the development of the SOAP1.2 specification, made between SOAP1.1 and SOAP1.2 was significant. The two protocols are actually quite different, despite the fact that they share the same element local names and many of the same attribute names.

SOAP1.2 is based upon the XML Infoset whereas SOAP1.1 was intended as an XML1.0 vocabulary. It may seem a fine distinction, but it is an imprtant distinction none the less.

But, I digress. My point is that it is the resource that is important, not the URI. IMO, given the widespread implementation of SOAP1.1, the SOAP1.1 resource is what is important (or cool). Its URI should not have been changed.

SOAP1.2's URI had been (and continues to be) "http://www.w3.org/TR/soap12-part1/". You can even use the URI "http://www.w3.org/TR/soap12" and the W3C web server will redirect your browser to http://www.w3.org/TR/soap12-part1/. Those of us who write specifications for a living come to depend upon the "Cool URIs don't change" axiom.

I believe that if the W3C wanted to give added visibility to the SOAP1.2 REC, that they should have put a resource behind the http://www.w3.org/TR/soap URI that gave the user a choice between the SOAP1.1 W3C Note and the SOAP1.2 REC specifications.

e.g.
Please select from the resources below:
<a href="http://www.w3.org/TR/soap12-part1/">SOAP1.2 W3C Recommendation<a>
<a href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/">SOAP1.1 W3C Note<a>

Certainly, they should have also taken the time to address the "bugs" introduced by the change such as republishing the SOAP1.2 specification with an updated URI reference to the SOAP1.1 specification URI.

0 Comments:

Post a Comment

<< Home