Re: Turtle local-name escapes

On 02/02/12 18:59, Alex Hall wrote:
> I have a couple of questions about character escapes in the local part
> of Turtle prefixed names
> (http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-turtle/index.html#sec-grammar):
>
> [57] <PN_LOCAL>   ::=   ( PN_CHARS_U | [0-9] | PLX ) (( (( PN_CHARS |
> "." | PLX ))* ( PN_CHARS | PLX ) ))?
> [58] <PLX>   ::=   PERCENT | PN_LOCAL_ESC
> [59] <PERCENT>   ::= "%" HEX HEX
> [60] <HEX>   ::=   [0-9] | [A-F] | [a-f]
> [61] <PN_LOCAL_ESC>   ::= "\\" ( "_" | "~" | "." | "-" | "!" | "quot; |
> "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "/" | "?" |
> "#" | "@" | "%" )
>
> 1. I'm a bit confused about the inclusion of %-encoded octets. It's not
> intended that the pname expansion also decode these octets, is it?

(/me speaking as SPARQL grammar creator)

No. xyz:ab%20de will put 3 characters %-2-0 into the IRI.  Never space. 
  And IRIs still have to be legal, so no <http://example/#a#b> even if 
it passes the token rule.

> e.g. given a prefix ':' for the namespace 'http://example.com/', the
> prefixed name ':foo%2Fbar' expands to the IRI
> 'http://example.com/foo%29bar' and not 'http://example.com/foo/bar',
> correct?

Correct (in SPARQL)

It's made complicated because

RFC 3986 sec 2.3 unreserved characters
"""
URIs that differ in the replacement of an unreserved character with
    its corresponding percent-encoded US-ASCII octet are equivalent: they
    identify the same resource.
"""

"""
For consistency, percent-encoded octets in the ranges of ALPHA
    (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E),
    underscore (%5F), or tilde (%7E) should not be created by URI
    producers and, when found in a URI, should be decoded to their
    corresponding unreserved characters by URI normalizers.
"""

so not Turtle but maybe somewhere else.


> 2. Is the use of "\\" at the start of a character escape sequence a
> formatting bug in the document? Character escapes use a single
> backslash, right?

Looks like copy-over from yacker. Eric!!!!!!

> On an unrelated note, section 5.1 starts off with the sentence "Parsing
> Turtle requires a state of four items:" but the ensuing list has five items.

Open world assumption? :-)

>
> -Alex
>

 Andy

Received on Thursday, 2 February 2012 22:27:41 UTC