sk()/sk-1() removed from update definitions as suggested by Andy (was: Re: SPARQL 1.1 Update Review (part 2))

> > "If DS is the dataset of a query, pattern solutions are therefore
> > understood to be not from the active graph of DS itself, but from an
> > RDF graph, called the scoping graph, which is graph-equivalent to the
> > active graph of DS but shares no blank nodes with DS or with BGP."
> >
> > this seems to disallow explicitly, that the blank nodes identifiers
> > remain the same. That's why I suggested - for update - to use
> > skolemisation and de-skolemisation, which should allow us to use the
> > definitions of pattern solutions from Query just 'as is'.
> 
> I've gone back to this text to check - in context, it's talking about
> the bNode labels in a results document so the quote you make is restricted.
> 
> The defn of scoping graph itself, does not preclude SG = active graph.
> Which si good as that is what systems do!

I used that now. On second thought, my "sk()/sk-1()" trick doesn't work anyways...
because actually, if you replace bnodes by (URI) constants in sk() then isBlank() filters won't work anymore
and you convinced me that it is more natural to go with  SG = active graph

see: 
  http://www.w3.org/2009/sparql/docs/update-1.1/Overview.xml#def_datasetPattern

best,
Axel

On 18 Apr 2011, at 15:37, Andy Seaborne wrote:

> 
> 
> On 16/03/11 22:30, Axel Polleres wrote:
> >
> > On 16 Mar 2011, at 21:57, Andy Seaborne wrote:
> >
> >>
> >>> ... the application of sk^-1() *after* the resulting dataset has
> >>> been generated guarantees that in the resulting dataset now the
> >>> same blank node labels are used as in GS and if this resulting
> >>> dataset is added to or removed from GS by an INSERT or DELETE,
> >>> then bnode correlations wrt. GS will be followed.
> >>>
> >>> Otherwise, something like
> >>>
> >>> DELETE { ?s ?p ?o } WHERE  { ?s ?p ?o FILTER Blank(?s)}
> >>>
> >>> wouldn't have any effect.
> >>
> >> Ok - I see - I was making the scoping graph the same as the graph
> >> queried/updated in which case this works (it was the way discussed
> >> in a telecon a while ago IIRC).
> >
> > I thought the same first, however, from what I read on the definition
> > of scoping graph in SPARQL Query, I am afraid we can't do that:
> >
> > "If DS is the dataset of a query, pattern solutions are therefore
> > understood to be not from the active graph of DS itself, but from an
> > RDF graph, called the scoping graph, which is graph-equivalent to the
> > active graph of DS but shares no blank nodes with DS or with BGP."
> >
> > this seems to disallow explicitly, that the blank nodes identifiers
> > remain the same. That's why I suggested - for update - to use
> > skolemisation and de-skolemisation, which should allow us to use the
> > definitions of pattern solutions from Query just 'as is'.
> 
> I've gone back to this text to check - in context, it's talking about
> the bNode labels in a results document so the quote you make is restricted.
> 
> The defn of scoping graph itself, does not preclude SG = active graph.
> Which si good as that is what systems do!

I 

> 
> """ SPARQL 1.0:
> 12.6 Extending SPARQL Basic Graph Matching
> Notes
> 
> (a) SG will often be graph equivalent to AG,
> """
> 
> and "graph equivalent" does not preclude the bNode mapping isn't the
> identity function.  For any G, G is graph equivalent to G.
> 
> http://www.w3.org/TR/rdf-sparql-query/#BasicGraphPattern does not
> consider anything other that scope graph = active graph.
> 
> It's entailment extensions that need the scoping stuff.
> 
> We should have been clearer last time round ... sigh.
> 
>         Andy
> 
> >
> > best, Axel
> >
> >>
> >> I avoided much of that trouble by duplicating-with-renaming on the
> >> template + (scooping graph = update graph).
> >>
> >> Don't mind which way - it does the same thing.
> >>
> >> Andy
> >>
> >
> 

Received on Friday, 29 April 2011 09:14:55 UTC