Was playing around with SPARQL's grammar courtesy of Eric Prud'Hommeaux and
we checked what needed to be done to facilitate more concise queries against
remote endpoints.

Eric changed:

[9]     DatasetClause     ::=       'FROM' ( DefaultGraphClause |
NamedGraphClause |   'CONSTRUCT' ConstructTemplate DatasetClause*
WhereClause )

to allow

SELECT ?a ?b
  FROM ( CONSTRUCT { ?d <b> ?b }
                          FROM <http://example.com/sparql?>
                        WHERE { ?b <b> ?d } )
 WHERE { ?a <b> ?b }

The idea is that currently one has to do something like

SELECT ?a ?b
WHERE
   {
        GRAPH <http://example.com/sparql?query=CONSTRUCT%20%7B%20%3Fd
%20%3Cb%3E%20%3Fb%20%7D%20FROM%20%3Casdf%3E%20WHERE%20%7B%20%3Fb%20%
3Cb%3E%20%3Fd%20%7D%20&format=text%2Frdf%2Bn3>
        { ?b <b> ?d.}
{ ?a <b> ?b }
   }

Which is somewhat less likely to be written.

-Alan

Reply via email to