- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Mon, 21 Aug 2006 18:03:04 +0100
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
I have at least updated the (unapproved - see the README.txt) SyntaxDev tests to includes tests with IRIs like <?b> and negative tests for ?a<?b&&?c>?d Andy Seaborne, Andy wrote: > To do these tests, we need negative syntax tests: > > http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JulSep/0246 > > For reference: Eric's alternative (which I think is unnecessary because it > changes existing test manifests): > http://lists.w3.org/Archives/Public/public-rdf-dawg/2005OctDec/0052.html > > Andy > > -------- Original Message -------- > Subject: Re: Determining whether '<' is a beginning of IRI or 'less than' > operator [OK?] > Date: Fri, 18 Aug 2006 20:27:37 +0100 > From: Dan Connolly <connolly@w3.org> > Organization: W3C (http://www.w3.org/) > To: Seaborne, Andy <andy.seaborne@hp.com> > CC: Jiri Dokulil <dokulil@gmail.com>, <public-rdf-dawg-comments@w3.org> > References: <6a8224ab0608180833r31f8c81flb4d0c3037286aab3@mail.gmail.com> > <44E60817.10308@hp.com> > > On Fri, 2006-08-18 at 19:33 +0100, Seaborne, Andy wrote: >> >> Jiri Dokulil wrote: >>> I am not sure how should scanner for SPARQL determine whether '<' >>> character it encountered is beginning of an IRI or a comparison >>> operator. >>> >>> Consider these queries: >>> >>> SELECT * WHERE { ?a ?b ?c, ?d . FILTER(?a<?b && ?c>?d) } >>> SELECT * WHERE { ?a ?b ?c, ?d . FILTER(?a<?b&&?c>?d) } >>> >>> Yacker validator results look troubling to me: >>> http://www.w3.org/2005/01/yacker/uploads/SPARQL?markup=html〈=perl&text=SELECT+*+WHERE+%7B+%3Fa+%3Fb+%3Fc%2C+%3Fd+.+FILTER%28%3Fa%3C%3Fb+%26%26+%3Fc%3E%3Fd%29+%7D&action=validate+text >>> >>> http://www.w3.org/2005/01/yacker/uploads/SPARQL?markup=html〈=perl&text=SELECT+*+WHERE+%7B+%3Fa+%3Fb+%3Fc%2C+%3Fd+.+FILTER%28%3Fa%3C%3Fb%26%26%3Fc%3E%3Fd%29+%7D%0D%0A&action=validate+text >>> >>> >>> The first query validates, the other does not. > > I believe that's by design, as Andy explained below. > > Andy, let's get this case in the test suite and ask > the WG to confirm. Is that convenient for you to do? > > Thanks, Jiri, for the careful review. > >> The rule "longest token wins" resolves the tokenizing problem (and is common >> practice in lexers because it also means 123 is a single number, not 3 >> individual one digit numbers) although it moves the problem to the grammar. >> >> It could be disambiguated but it needs more than changes to the lexer. It >> needs a context sensitive lexer (< and an IRI can't occur in the same place in >> a valid expression, after ?a seeing < must be a comparison in a legal >> expression). The WG has chosen to cover the wider range of parser toolkits, >> rather than chose the more complicated context sensitive approach. >> >> I'll look at adding an editorial note that highlights this better. It does >> already say: >> >> http://www.w3.org/TR/rdf-sparql-query/#whitespace >> """ >> White space (production WS) is used to separate two terminals which would >> otherwise be (mis-)recognized as one terminal. >> """ >> which already covers this case. >> >> I hope that this message addresses you comment. If it does, please let us know >> - if you put [CLOSED] in the subject line, it will help scripts that help >> manage this list. >> >> Andy
Received on Monday, 21 August 2006 17:03:41 UTC