Re: draft-gregorio-uritemplate-02.txt

Joe Gregorio wrote:
> [snip]
> 
>> 2. Did you decide against introducing cardinality indicators?
>>    e.g., {-list|&|foo+,bar}.
> 
> I haven't decided against them, just waiting for more feedback,
> particularly weighing cardinality  vs. required/optional
> vs can-be-a-list indicators.
> 

Ok. I'm not convinced they're absolutely necessary within the template
syntax, especially since we've left it up to external context to define
everything else about the template variable.

>> 3. For -join, you need to specify what happens if the value is a list.
>>    e.g., foo = ['a','b'] would expand to foo=a&foo=b
> 
> Yeah, I'd like to hear more opinions about using
> lists in operators outside '-listjoin'.
> 

In join, lists are fine, we just need to indicate that the name=value
pair will be repeated for each member of the list.

In prefix and append, see #4 below.  Allowing values to be lists does
not add significant complexity to the implementation but it does cause
some overlap with listjoin.

>> 4. There are interesting things that could be done if we allow prefix
>>    and append to use list values.  The prefix or postfix would be
>>    applied to each item  in the list. e.g., when foo = ['a','b'],
>>    {-prefix|/|foo} would expand to "/a/b" and {-append|/|foo} would
>>    expand to "a/b/".
>>
>>    http://example.org{-opt|/-|categories}{-prefix|/|categories}
>>
>>    http://example.org/-/a/b/c
>>
>>    http://example.org{-opt|/-/|categories}{-append|/|categories}
>>
>>    http://example.org/-/a/b/c/
> 
> I worry about introducing that level of complexity into the
> specification/implementation.
> 
> 
>> 5. We need to decide whether or not "extension operations" are going to
>>    be allowed, and if so, how are they to be handled.  Should an
>>    template processor signal an error if an unknown operation is used?
>>    Should the processor replace the unknown token with an empty string?
> 
> I am leaning towards a 'must ignore' stance with respect to
> unknown operators, i.e. replace the expansion with the empty string.
> 

The challenge with must-ignore in this context is that it can lead to
undesirable results.

e.g., http://example.org{-opt|/|user}{-sub|0-1|user}{-opt|/|user}{user}

since sub is now undefined, with must-ignore, this would expand to:

  http://example.org//joe

I'm not certain must-ignore buys us anything.

>> 6. We should include a section on IRI Templates. I'll volunteer to write
>>    it up if you'd like.  An IRI template is generally identical to the
>>    URI Template with the exception of the characters allowed in varname,
>>    arg and the replacements.  The following is taken from my expanded
>>    ABNF:
> 
> So in the IRI case any characters outside ( iunreserved / pct-encoded )
> in a variable value need to be percent-encoded, and we skip the UTF-8
> encoding?
> 

Yes to the first part. I still think UTF-8 encoding SHOULD be used.

- James

>    -joe
> 

Received on Monday, 26 November 2007 19:35:09 UTC