W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2010

Re: DELETE and blank nodes

From: Andy Seaborne <andy.seaborne@talis.com>
Date: Wed, 03 Mar 2010 15:40:30 +0000
Message-ID: <4B8E82EE.2030102@talis.com>
To: Birte Glimm <birte.glimm@comlab.ox.ac.uk>
CC: Lee Feigenbaum <lee@thefigtrees.net>, SPARQL Working Group <public-rdf-dawg@w3.org>


On 03/03/2010 3:32 PM, Birte Glimm wrote:
> Thanks a lot Lee for the great summary!
>
> On 3 March 2010 06:16, Lee Feigenbaum<lee@thefigtrees.net>  wrote:
>
> [snip]
>
>> >  == The Proposals ==
>> >
>> >  I see only two realistic proposals emerging from this.
>> >
>> >  1/ We prohibit blank nodes in the DELETE template completely.
> This might work nicely for simple entailment, but will not work for
> OWL (maybe RIF too). E.g., if I have a statement that Peter has some
> parent who's a Lawyer, I can say that in OWL functional-style syntax
> with:
> ClassAssertion(ObjectSomeValuesFrom(ex:hasParent ex:Lawyer) ex:Peter)
> For this, the (normative) mapping to triples gives:
> ex:Peter a _:x.
> _:x a owl:restriction .
> _:x owl:onProperty ex:hasParent .
> _:x owl:someValuesFrom ex:Person .

ex:Lawyer?

> for a fresh bnode _:x. There is no way to represent this OWL statement
> without bnodes, but it is always possible to use a square bracker
> form.

I think Lee is referring to syntactic use of bnodes in a delete 
template, not bnodes that might be found by a query pattern and bound to 
a variable. So _:x is a new bnode not the bnode with that label in the data.

It would be deleted by:

DELETE WHERE
{
   ex:Peter a ?var.
   ?var a owl:restriction .
   ?var owl:onProperty ex:hasParent .
   ?var owl:someValuesFrom ex:Lawyer .	
}

using variables with ?var binding to exactly the bnode that was 
syntactical _:x in the data.

	Andy
Received on Wednesday, 3 March 2010 15:40:57 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:41 GMT