Re: empty prefix value

  Err....  obviously you are thinking about this from the RDFa API 
perspective, which is good.  I just had never considered that angle.  I 
think the answer has to be that we don't mean xs:anyURI.  The URI has to 
be a real, absolute URI.  You cannot do a mapping to a relative URI.  I 
mean... you could, but the core spec says this is a bad idea.  And in my 
opinion the behavior is unspecified.  So... a prefix mapping MUST be to 
an absolute URI.

Other opinions?

On 9/28/2010 2:56 PM, Nathan wrote:
> Shane McCarron wrote:
>>  Actually, I think the BNF that is in there now constrains this.  
>> They are evaluated LTR and the BNF says:
>>
>> NCName <http://www.w3.org/2010/02/rdfa/sources/rdfa-core/#P_prefix>  
>> ':' ' '+ xs:anyURI
>>
>> So it has to be a pattern that matches an NCName, a literal colon, 
>> zero or more literal spaces, and then an xs:anyURI.
>
> just to make sure, I'm saying the problem is that an empty string is a 
> valid xs:anyURI, so given two valid prefix mappings:
>
>   ("foo" = "") and ("bar" => "@")
>
> and given that @prefix contains a white space separated list of 
> prefix-name URI pairs of the form you mention, then this must be 
> serialized as:
>
> <div prefix="foo:  bar: @">
>
> are you agreeing and saying that's fine, or that "" can't be used as 
> an xs:anyURI with @prefix, or something else?
>
> Cheers,
>
> Nathan
>
>> BNF expressions are greedy, so ' '+ will consume all consecutive 
>> spaces.  We can make this more explicit - no
>> problem.  But what is in there now is correct.  But if smart people 
>> miss that, then we need to make it more
>> obvious!
>>
>>
>>
>> On 9/28/2010 2:38 PM, Nathan wrote:
>>> http://www.w3.org/Bugs/Public/show_bug.cgi?id=3264#c15
>>> "The ˇvalue spaceˇ of anyURI is the set of finite-length sequences 
>>> of zero or more characters.."
>>>
>>> If this (a 0 length uri-reference as you find in href="") isn't 
>>> valid for @prefix then do we need to define that in rdfa core with a 
>>> note / constraint / bnf?
>>>
>>> Best,
>>>
>>> Nathan
>>>
>>> Shane McCarron wrote:
>>>>  Actually, I think I disagree.  The first example would not match 
>>>> the pattern for @prefix values. The second wouldn't either, but in 
>>>> some implementations might map 'foo' to 'bar:' then not do anything 
>>>> with the rest of the value.
>>>>
>>>> On 9/28/2010 12:32 PM, Nathan wrote:
>>>>> Hi All,
>>>>>
>>>>> Just been working on CURIE (and prefix) resolution and realised 
>>>>> that given that @prefix contains a whitespace separated list of 
>>>>> NCName to xs:anyURI's then a zero length value is possible, as in:
>>>>> <div prefix="foo: ">
>>>>> and:
>>>>> <div prefix="foo:  bar: http://example.org/o#">
>>>>>
>>>>> Unsure if this is an issue or not but thought it best to mention.
>>>>>
>>>>> Best,
>>>>>
>>>>> Nathan
>>>>>
>>>>> expanded info:
>>>>>
>>>>>  - @prefix = NCName ':' ' ' + xs:anyURI
>>>>>  - xs:anyURI can be a URI or a URI Reference
>>>>>  - URI-reference = URI / relative-ref
>>>>>
>>>>> relative-ref can be (amongst other things) path-empty (0-length) 
>>>>> or path-noscheme, which given the (trimmed) BNF:
>>>>>
>>>>>   path-noscheme = segment-nz-nc *( "/" segment )
>>>>>   segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
>>>>>   unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
>>>>>   sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
>>>>>                  / "*" / "+" / "," / ";" / "="
>>>>>
>>>>> means that afaict, the following is currently valid
>>>>>
>>>>> <div prefix="foo:  bar: @ baz: $!+~"> ...
>>>>>
>>>>> resulting in:
>>>>>   "foo" => ""
>>>>>   "bar" => "@"
>>>>>   "baz" => "$!+~"
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>

-- 
Shane P. McCarron                          Phone: +1 763 786-8160 x120
Managing Director                            Fax: +1 763 786-8180
ApTest Minnesota                            Inet: shane@aptest.com

Received on Tuesday, 28 September 2010 22:55:09 UTC