- 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