Re: CONSTRUCT and abstract queries


Yes - the translation is for the graph pattern part only.  It would be 
good to define template substitution in this section and that could then 
be referenced by SPARQL Update from it's formal description.


On 27/01/11 14:51, Birte Glimm wrote:
> Hi all,
> I am currently writing about SPARQL and in particular about how a
> SPARQL query can be translated into an abstract query. Doing this, I
> was wondering about the CONSTRUCT query form. As far as I can see, the
> template part of such a query is not at all part of the abstract
> query, which would make it difficult to evaluate such an abstract
> query properly. From the current and the SPARQL 1.0 spec, I would
> translate the query:
> CONSTRUCT { ?x a foaf:Person } WHERE { ?x foaf:name ?name }
> (prefixes omitted) into the abstract query:
> (E, D, CONSTRUCT) with E=toList(BGP(?x foaf:name ?name)) and D the
> dataset of the SPARQL endpoint. This means, however, that  the
> template is lost and I am not able to evaluate the query just by
> working with the abstract query. Am I missing something?
> If not, wouldn't it make sense to extend the algebra construction with
> something like construct as a last step:
> E:= Construct(E, template) if the query form is CONSTRUCT, where
> template is the template of the construct query.
> The evaluation of construct then could be defined as currently
> outlined with an example, i.e., construct an RDF graph by
> instantiating the template with all solutions.
> In general, I think it wold be good to have at least a short paragraph
> about the query forms in the section about query evaluation just
> saying that you return the result of the evaluation for SELECT and
> CONSTRUCT (if properly defined) and for ASK you return whether the
> solution sequence obtained by the evaluation is empty or not. DESCRIBE
> is anyway not precisely defined.
> Best regards,
> Birte

Received on Tuesday, 1 February 2011 12:13:06 UTC