- From: Birte Glimm <birte.glimm@comlab.ox.ac.uk>
- Date: Wed, 3 Mar 2010 15:32:43 +0000
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: SPARQL Working Group <public-rdf-dawg@w3.org>
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 . 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. OWL reasoners usually work with a representation close to the functional-style syntax, i.e., they never even see the bnodes introduced to represent such statements. Bnodes might be there, if they occur in certain positions and these are called anonymous individuals in OWL. These we do treat as skolem constants and only these can bind to variables. This is to achieve finite answers as otherwise a bnode label in the answer can be replaced with an arbitrary bnode label and the entailment will still hold. Thus, just using variables will not do the trick for OWL. It is, however, also always possible to use square brackets in place of an explicit bnode label for all OWL constructs in case we want to only allow that, but that is not how the normative translation between OWL objects and triples is defined. For me this option is not the right choice. > 2/ Blank nodes in DELETE templates act as "wild cards"--effectively > variables pre-bound to all RDF terms--to let us write some shortcuts and > handle Sandro's case of deleting RDF lists. We prohibit the same blank node > label from being used in multiple scopes. This can delete lists and will work nicely also with OWL. The restriction to use the same bnode in different BGPs (BGP and template) is easy enough to explain and consistent with SPARQL Query requirements. I can also live with the different behavior of a variable and a bnode in the template. That's seems kind of natural to me. I am definitely for 2. Birte -- Dr. Birte Glimm, Room 306 Computing Laboratory Parks Road Oxford OX1 3QD United Kingdom +44 (0)1865 283529
Received on Wednesday, 3 March 2010 15:33:16 UTC