- From: Graham Klyne <GK@ninebynine.org>
- Date: Mon, 12 Sep 2005 15:48:45 +0100
- To: andy.seaborne@hp.com
- CC: public-rdf-dawg-comments@w3.org
Seaborne, Andy wrote:
>>
>> Section 2.1, "Query term syntax", para 4
>>
>> I feel that allowing a prefix to be redefined as described could
>> create some small unnecessary complication for implementations that
>> don't process the query sequentially, and creates scope for
>> implementation errors. I would suggest not allowing prefixes to be
>> redefined. Is there a compelling case for allowing such redefinition?
>
>
> Could you say more? I'm having trouble understanding a SPARQL
> implementation that does not process the SPARQL grammar which is itself
> sequential. Iguess the parser could be leaving qnames unexpanded in
> parsing for later resolution but that second pass over the query can be
> with the correct prefixes. Because prefixes come before any qnames, it
> isn't the case there can be
> PREFIX ... qname ... PREFIX Prefixes must take an quoted IRI reference.
Well, this is a small point, maybe vanishingly so. I had in mind an
implementation that operates in multiple phases, something like:
(a) build parse tree
(b) scan parse tree and build a directory of prefix URIs
:
and later:
(.) process qnames from parse tree, using the directory to
re-interpret them as URIs.
> (I believe the rational to allow redefinind prefxies was based on the
> observation that other systems do it and we saw no reason to be
> different (e.g. N3, XML namespace declarations)).
Interesting:
- in the case of XML, I believe xmlns prefix redefinition is only
allowed within nested scopes, and a prefix cannot be redefined at the
same level.
- I wasn't aware that N3 allowed prefoixes to be redefined. My own
implementations have not, but instead raise an error on encountering
such. I guess that's why I was surpised by this design choice.
>>
>> ...
>>
>> Section 2.1, "Query term syntax", para 5
>>
>> I'm a bit hazy on the details, but the discussion of combining
>> characters goes against my recollection that RDF specifies that
>> URI-references muct be in normal form C, which I think was intended to
>> avoid some of these issues. I think that SPARQL should follow RDF in
>> the forms of URI/IRI that it allows.
>
>
> SPARQL follows the IRI spec - my reading of that is that as a processor
> that is not responsible for creating the IRIs, it should not apply
> normalization (presumably because it needs to allow access to
> unnormalized data).
>
> RFC 3987 (IRI) says: 5.3.2.2:
>
> """
> Equivalence of IRIs MUST rely on the assumption that IRIs are
> appropriately pre-character-normalized rather than apply character
> normalization when comparing two IRIs. The exceptions are conversion
> from a non-digital form, and conversion from a non-UCS-based
> character encoding to a UCS-based character encoding. In these cases,
> NFC or a normalizing transcoder using NFC MUST be used for
> interoperability.
> """
>
> Does that agree with your understanding?
Roughly, yes. My recollection is that RDF takes this on board by
requiring NFC be applied prior to constructing a representation of the
RDF abstract syntax. I don't know enough to pursue this point indetail;
I raised it in case it had been overlooked.
#g
--
Graham Klyne
For email:
http://www.ninebynine.org/#Contact
Received on Tuesday, 13 September 2005 07:42:42 UTC