Re: syntax tests update

Jeen Broekstra wrote:
...
>>>> Also: a fair number of the errors Sesame's parser throws have to do
>>>> with the queries in the syntax-sparql2 set, which use relative URIs in
>>>> queries (e.g. <a>, <b>, <p1>, etc.). A relative URI has to be resolved
>>>> against a base URI - which is normally provided using a BASE clause.
>>>> However, the queries in this test set do not have such a clause. Andy
>>>> has pointed out to me that according to RFC3986 (URI) in such cases
>>>> the base URI should be provided by the 'embedding entity', i.e. the
>>>> location of the file that contains the query. Sesame's query parser
>>>> has no feature for this however: it only accepts a query string as an
>>>> argument, a base URI for resolving any relative referencing inside
>>>> that query can not be provided seperately. I guess that this is a
>>>> shortcoming in our current parser that we should deal with in Sesame.
>>>>
>>>> However, correct resolution in this fashion is a feature of file
>>>> processing, not query parsing, IMHO, and the test set is designed to
>>>> test query parsing, not file processing. So I would suggest that we
>>>> modify these test cases to have a base URI inside the query. This
>>>> avoids having implementations fail tests on this problem. Thoughts?
>> Relative URIs are in the grammar via the production
>>
>> [66]     Q_IRI_REF  ::=     '<' ([^<>'{}|^`]-[#x00-#x20])* '>'
>>
>> and
>> http://www.w3.org/2001/sw/DataAccess/rq23/rq25.html#iriRefs
>>
>> That does not mean that the parser is required to resolve them at that
>> point but it seems reasonable to me that a test expect the parser to
>> accept any legal URI as a syntax test.
> 
> Yes but my point is  that they are not in and of themselves legal URIs.
> It requires additional information in the form of a base URI (which is
> not part of the query itself) to make them into legal URIs.

I must have missed something - in what way are they illegal URIs?

> 
>> The text in rq25 mentions base URIs and how to treat them:
>>
>> http://www.w3.org/2001/sw/DataAccess/rq23/rq25.html#QSynIRI
>>
>> and it was the result of discussion and debate in the working group, not
>> just text some editor put in the doc.
>>
>> The more useful use of relative URIs is in the FROM clause:
>>
>> FROM <data.ttl>
>>
>> meaning maybe read from the same directory.  Ditto GRAPH <data.ttl>. 
>> This is used in some tests so that the location of the data file is
>> adjacent to the query but otherwise independent of location (i.e. the
>> tests work whereever you unpack them).
> 
> Yes, but all of this assumes that the query is delivered to the parser
> through a file. 

The query could also be read from a HTTP URL.  That would matter for query 
indirection for the SPARQL protocol, for example.

> "The same directory" only has meaning in that context.
> But that is not the only way to deliver a query to the parser, in fact
> in practice I suspect this will not be a very prevalent way of
> communicating queries at all. So this is not about query parsing itself
> but about processing a file which contains a query. In my opinion, those
> are separate issues.
> 
> But anyway, it's a minor point and of course you are right that the
> parser _should_ be able to handle it at the end of the day. I can leave
> these tests as they are for now.

Cool - but I'd like to fully understand why their illegal because we use them 
elsewhere as well so this will come up again.

	Andy

> 
> Jeen

Received on Friday, 19 January 2007 15:47:57 UTC