W3C home > Mailing lists > Public > uri@w3.org > March 2010

Re: I-D Action:draft-gregorio-uritemplate-04.txt

From: Mike Burrows <asplake@googlemail.com>
Date: Wed, 10 Mar 2010 16:38:41 +0100
Message-ID: <7a2269961003100738r631bbd85s9fdf0c89d7a19fd9@mail.gmail.com>
To: "Roy T. Fielding" <fielding@day.com>
Cc: URI <uri@w3.org>
Sorry ignore that first one, my mistake.  I'm still confused by the apparent
conflicts though.


On 10 March 2010 16:18, Mike Burrows <asplake@googlemail.com> wrote:

>
> Couple of issues with defaults.
>
> This doesn't seem right:
>     x{empty=_}y           xy
>
> These
>     x{;name=none}         x;name=Fred,Wilma,Pebbles
>     x{?favs=none}         x?favs=color,red,volume,high
> seem in conflict with
>     {;list}               ;val1,val2,val3
>     {;keys}               ;key1,val1,key2,val2
>
> I suspect same too about
>     x{;empty_list=none}   x;empty_list=none
>     x{;empty_keys=none}   x;empty_keys=none
>
> In both cases I may be missing something, but I wouldn't expect the
> presence of a default to change behaviour in this way.  Or is it the earlier
> part of the spec that is incorrect?
>
>
> Regards,
> Mike
> mjb@asplake.co.uk
> http://positiveincline.com
> http://twitter.com/asplake
>
>
> On 10 March 2010 15:18, Mike Burrows <asplake@googlemail.com> wrote:
>
>> Thanks, looks good.
>>
>> I have a processor (in Python) that checks out ok for all the examples in
>> section 1.2.  The only genuine special case in my code was the different
>> treatment of empty values by the ; and ? operators.  I assume it's
>> deliberate but I mention it just in case.
>>
>> One trivial typo: a missing semicolon after path  := "/foo/bar" just
>> before that same table in section 1.2.
>>
>> Default values are there but untested; so far I parse but otherwise ignore
>> prefix and suffix values.  I'll report back my progress on those later as a
>> sanity check on the as-yet untested examples.
>>
>> Re point 1 on error handling , it would be reasonable and indeed
>> preferable in many languages for an implementation to raise an exception in
>> the presence of errors, in which case the result string is undefined and any
>> information about the error (or perhaps errors plural) would be returned
>> back to the caller in the exception object.  That sort of behaviour is
>> compatible with the spec as it stands but not with the kind of wording used
>> below.  I would choose to leave the spec as it is.
>>
>> FWIW, I'm with you Roy on point 4c.  My URI Templates are embedded in
>> metadata that can annotate variables with as much flexibility as I'll ever
>> need, and I imagine that this will be a fairly typical use case.  As for the
>> other changes proposed in point 4 I'm not that fussed except that the
>> novelty of tracking the standard across two language implementations is
>> wearing a bit thin.  But if there's anything I can do to help...
>>
>> Regards,
>> Mike
>> mjb@asplake.co.uk
>> http://positiveincline.com
>> http://twitter.com/asplake
>>
>>
>>
>> On 10 March 2010 01:20, Roy T. Fielding <fielding@day.com> wrote:
>>
>>> [second attempt to send this]
>>>
>>> I managed to submit a new draft, just before the deadline,
>>> with the obsolete sections removed and the sections that
>>> still need writing marked as TBD.
>>>
>>> The current issues (that I am aware of) include:
>>>
>>> 1) error handling -- as Joe noted, we can improve consistency
>>> by making every error in the template result in a semi-expanded
>>> result string and error indicator, rather than nulling
>>> the result string and returning immediately.  My preference is
>>> to copy bad expressions to the result, continue processing, and
>>> indicate an error occurred to the caller.  This allows the
>>> calling application to use the result string to point out
>>> where the processing failed.
>>>
>>> 2) reserved substitution -- this is currently allowed only
>>> by the "+" operator.  A suggestion by Mike Burrows is that the
>>> "+" operator be changed into a variable name prefix so that
>>> it can be selectively applied to any variable in any expression.
>>> In addition to the added power, I found that a prefix would
>>> simplify the value expansion description (and algorithm).
>>> However, I have not made that change yet in 04.  Would such
>>> a change be compatible with XRD and other applications?
>>>
>>> 3) I introduced explode modifiers, with the named variable
>>> version indicated by a trailing "+" on the name.  Perhaps that
>>> would be better as a trailing "@" if we do (2) above.
>>>
>>> 4) James Manger suggested several changes to the syntax:
>>>
>>>  a) remove the variable lists and instead have the processor
>>>     maintain a memory of where it is in the URI generic syntax
>>>     to know when to add the default ";" or "?" delimiters.
>>>     Add a comma operator to support CSV expansions.
>>>
>>>  b) change the default syntax to {var|default} instead of
>>>     {var=default}, in order to allow ...
>>>
>>>  c) define variable bindings within the template itself so
>>>     that large schemas like OpenSearch can directly annotate
>>>     every variable inside the template as opposed to annotating
>>>     them by reference outside the template.  e.g.,
>>>
>>>        find{?q=searchTerms}{?lang=language}
>>>
>>>    I personally find (a) significantly uglier than the
>>>    existing syntax;  (b) okay if people haven't implemented
>>>    defaults yet; and, (c) a very slippery slope that, IMO, will
>>>    result in the equivalent of WADL being embedded inside the
>>>    template instead of remaining outside (where it can be safely
>>>    ignored by RESTful applications).  YMMV.
>>>
>>> I will be at the Anaheim IETF if anyone wants to discuss these
>>> issues in person, but please send email to the list if you want
>>> the discussion to result in changes to the next draft.
>>>
>>> Cheers,
>>>
>>> Roy T. Fielding                            <http://roy.gbiv.com/>
>>> Chief Scientist, Day Software              <http://www.day.com/>
>>>
>>> Begin forwarded message:
>>>
>>> > From: Internet-Drafts@ietf.org
>>> > Date: March 8, 2010 5:00:01 PM PST
>>> > To: i-d-announce@ietf.org
>>> > Subject: I-D Action:draft-gregorio-uritemplate-04.txt
>>> > Reply-To: internet-drafts@ietf.org
>>> >
>>> > A New Internet-Draft is available from the on-line Internet-Drafts
>>> directories.
>>> >
>>> >       Title           : URI Template
>>> >       Author(s)       : J. Gregorio, et al.
>>> >       Filename        : draft-gregorio-uritemplate-04.txt
>>> >       Pages           : 25
>>> >       Date            : 2010-03-08
>>> >
>>> > A URI Template is a compact sequence of characters for describing a
>>> > range of Uniform Resource Identifiers through variable expansion.
>>> > This specification defines the URI Template syntax and the process
>>> > for expanding a URI Template into a URI, along with guidelines for
>>> > the use of URI Templates on the Internet.
>>> >
>>> > A URL for this Internet-Draft is:
>>> > http://www.ietf.org/internet-drafts/draft-gregorio-uritemplate-04.txt
>>>
>>>
>>>
>>>
>>
>
Received on Wednesday, 10 March 2010 15:39:15 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:25:14 UTC