Re: DELETE and blank nodes

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