Re: Editorial changes in Section 2.5

Pat Hayes wrote:
> 
>> On 31 Jan 2006, at 18:31, Pat Hayes wrote:
> 
> Do you understand the point about bnodes vs. bnode identifiers in
> documents? And do you see how this makes it unnecessary to introduce
> BGP', since the simpler definition is already fully general? And do you
> see that allowing BGP (not BGP') and G' to share bnodes can introduce
> unintended scope errors when one tries to form a CONSTRUCT graph by
> applying the answer binding (introducing bnodes from G') to copies of BGP?

Pat, I understand that the current formulation doesn't forbid
explicitely that a bnode in a query BGP appears in the answer set. But
this is harmfull, because bnodes inside a WHERE don't have any scope
other than the BGP in which they appear (to me, this is consist with the
RDF(S) view of the universe).

My feeling is that you confuse the BGPs in the WHERE body with the
template in the CONSTRUCT. It's true that a template looks like a BGP,
but is not used as a BGP at all. In particular, bnodes in templates are
*always* renamed:

"""
Definition: CONSTRUCT

Let Q = (GP, DS, SM, CONSTRUCT T) where

    * GP is a graph pattern
    * DS is an RDF Dataset
    * SM is a set of solution modifiers
    * T is a set of triple patterns

then, if QS is the set of solutions formed by matching dataset DS with
graph pattern GP, then write SM(QS) = { Si | i = 1,2 ... n }.

Let Ti be a sequence of sets of triple patterns, such that each Ti is
basic graph pattern equivalent to T and no Ti have a blank node in common.

Let Ri be the RDF graph formed from SC(Si, Ti).

The CONSTRUCT result is the RDF graph formed by the union of Ri.
"""

Do you agree, or am I missing something?


BTW Andy: T_i shouldn't have any bnode in common with bnodes used in
SM(QS) too; otherwise, unwanted co-references might appear in the
resulting graph (this, regadless the BGP/BGP' business).

--sergio

Received on Wednesday, 1 February 2006 11:24:36 UTC