URI Templates Draft

Joe Gregorio has posted the first public draft of a generalized URL templating specification. I've been tagging along with the work of Joe, Marc Hadley, Mark Nottingham, David Orchard, and James Snell for the past few months on this. The formal URI Template Internet Draft has been submitted to the IETF standards track for public review.

My gut tells me that this is headed in the right direction. It is flexible enough to handle a wide range of what is expressible in simple URL-based templating, but provides enough of a common ground that it could help simplify the number of parsing scenarios that one encounters.

Interestingly, each of us approached the problem with different use cases in mind, but we seemed to be able to arrive at the same place. (It helped that everyone putting this together had a bias for simplicity and extensibility over exhaustive completeness). As for me, I was looking for a foundation for future OpenSearch URL templates. This proposed specification would help take a big chunk out of what needs to be written specifically for OpenSearch. Mark goes into more detail about other use cases, such as Link-Templates in HTTP headers. And James is already beginning to think about layering on full IRI productions, which fits well into the overall design of the URI specification.

There are tons of things that we can learn from a broader audience at this point, so it will be good to hear new ideas and incorporate feedback. I will update this post as I know more about where the discussions are taking place.

Update: I missed that the there is actually a link right in the spec to the W3C URI mailing list. Please join the conversation there if you have an interest in simple URI templating.

Update 2: Joe writes about the URI Template specification. And James posts on something we've talked about before regarding extensible parameter values in URI templates. The approach James describes here is evolving into the consensus, and will likely be the proposal for future versions of simple search URL templating. (Basically, it would replace the QName technique with something a little more robust, but almost as compact.)