- From: Andy Seaborne <andy.seaborne@talis.com>
- Date: Wed, 03 Mar 2010 15:40:30 +0000
- 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 UTC