- From: Jim Ancona <jim@anconafamily.com>
- Date: Wed, 31 Oct 2007 22:04:33 -0400
- To: uri@w3.org
Hi, I've been lurking here for a bit and have read the threads on Joe's latest proposal. Like Marc Hadley, I see the ability to match templates to URIs and extract values of variables as valuable because it allows the same template to be used to both generate and parse, so there is no possibility of the spec for the client to be out of sync with the behavior of the server. While Joe and John Cowan are correct that the current proposal is not generally invertible, it seems to me that the only interesting templates are those that are invertible--otherwise how would the server infer what the client meant? I've written a template parser (in Java) that can go in either direction (template+variables->URI or URI+template->template). It resolves ambiguities by matching greedily. Here are John's and Joe's examples of ambiguous matches, with my program's resolution of them. Template: /{foo}{bar}/ URI: /whatever/ Variables: foo => 'whatever', bar => '' Template: http://example.org{?/|a}{?/|b} URI: http://example.org/ Variables: a => 'true', b => null It might be difficult to specify a non-ambiguous language. It might be worthwhile to warn users of the pitfalls of non-reversible templates. Once I can get my employer's OK, I'll pass my code along to Joe in case he wants to put it up on the uri-templates Google Code site. Jim Ancona
Received on Friday, 2 November 2007 22:17:30 UTC