Re: Constructive mapping semantics for SPARQL

Seaborne, Andy wrote:

>
>
> Fred Zemke wrote:
>
>> For your consideration,
>> the attached paper presents a formal semantics for SPARQL
>> that is based on mapping rather than entailment.
>> Fred
>
>
> I was a bit confused by the 'bindable' terminology - am I right in 
> reading you your document as saying that blank nodes, in queries, are 
> not be bound to a graph term, as their existential.

Yes and no.  I was trying to flesh out the semantics in [SPARQL CR]  2.5.2
"SPARQL basic graph pattern matching" which says (last para) that "...it is
possible to proceed by finding a mapping from blank nodes and variables...
a pattern solution is then a mapping restricted to just the variables."
In this model, there are (at least) two stages: first, one in which 
blank node
identifiers are mapped; second, one in which the mappings are restricted to
just variables.

So to flesh this out, I thought it would be useful to have two sets of 
terminology,
one for the first stage and one for the second stage.  In the first 
stage, both
variables and blank node identifiers are bindable, hence the terms
"bindable" for the things that are bindable and "mapping" for the functions.
In the second stage, we already have "variable" for the things that are 
bindable,
and w need "variable mapping" for the functions.

>
> Test case:
>
> Data:
>
> :x :p 1 .
> :y :p 1 .
>
> Query:
> SELECT ?x { [] :p ?x }
>
> has one solution ?x/1 doesn't it

Following the outline of my paper, this query could be solved as follows:

Replace [] by an implementation-dependent unique blank node identifier _:a
(not mentioned explicitly in my paper; my previous papers have all said
that we begin by removing all abbreviations.)

Tree: there is a single TRIPLE node with three children, _:a :p ?x

Path: there is a single path, the entire tree.

Construction: the default graph at each node of the tree must be the
default graph of the query, so CD is clear.

Mapping construction: there are two, as follows:

_:a -> :x, ?x -> 1
_:a -> :y, ?x -> 1

Restricted construction: the default graph construction is never changed
at this step. 

The restricted mapping construction is formed by restricting the preceding
two mapping constructions.  They restrict to the same thing, ?x -> 1.

 Thus there is only one restricted construction.

Solution: the restricted construction at the root node of the tree is ?x 
-> 1

Solution sequence: the only possible sequence of one element.

And that's all I have time to respond to in this message at this time.
I will come back to the rest of Andy's message.

Fred

Received on Monday, 21 August 2006 17:34:27 UTC