- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Wed, 30 Nov 2011 13:49:19 +0000
- To: public-rdf-dawg@w3.org
>> PS I have prototyped [1] in SPARQL and nothing broke nor were any >> tests affected. > > OK, good to know. Does it do anything the the class of parser > required to tackle SPARQL? I don't know how lexers etc. tackle > escapes. No change to the features required. It's just a tokenizer change and it's just like escapes in strings, which we already have so the token rules already do it in a different situation. Full details: The changes I made were to change the rule for PN_LOCAL PN_LOCAL ::= ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)? ==> PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ((PN_CHARS|'.'| PLX)* PN_CHARS | PLX)? where PLX ::= PERCENT | PLNE PERCENT is for adding real, unescaped and hex-checked %-encodings (variant 2a in the RDF-WG message) PERCENT ::= "%" HEX HEX HEX ::= [0-9] | [A-F] | [a-f] and PLNE is the \-escapes: a \ followed by one of the characters: '\' ('~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | ':' | '/' | '?' | '#' | '@' | '%' ) Tedious to write out but that's all. Better token names if done for real. > > I imagine that adding a load of characters to what you're allowed to > put right of the : in a qname in SPARQL will break things? Putting them in without a \ will break SPARQL 1.0, unless we assume whitespace around prefix names, and SPARQL 1.1 property paths. e.g. SPARQL 1.0 it's extreme but a:b:c:d. which isn't a good idea but is legal - it's a:b :c :d . If triggered by having \ before the character there's no problem because e.g. \: isn't legal anywhere at all (again, like "strings \" with quotes"). The code needs to de-escape the string if your toolkit doesn't (JavaCC doesn't but the escape code is the same as strings so already existed for me). Andy > > - Steve
Received on Wednesday, 30 November 2011 13:49:52 UTC