- From: Shane McCarron <shane@aptest.com>
- Date: Tue, 28 Sep 2010 17:54:00 -0500
- To: nathan@webr3.org
- CC: RDFA Working Group <public-rdfa-wg@w3.org>
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