- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Thu, 8 Jul 2004 20:04:10 +0100
- To: "'Jos De_Roo'" <jos.deroo@agfa.com>
- Cc: <public-rdf-dawg@w3.org>
Jos - thanks for the explanation. It make sense now.
Andy
-------- Original Message --------
> From: Jos De_Roo <mailto:jos.deroo@agfa.com>
> Date: 08 July 2004 18:32
>
> Andy wrote:
> > Thanks for the explanation - I'd missed the effect of
> merging the two
> > > select a queries together. Let me try and rephrase to make sure I
> > understand / for you to point out where I have missed the point:
> >
> > We have queries:
> >
> > # S1 - must we have the ?Y here?
> > [] q:select { (?X ?Y) } ;
> > q:where { :x :p ?X } .
> >
> > # S2
> > [] q:select { (?X ?Y) } ;
> > q:where { :x :p ?X ; :x :q ?Y } .
> ^.
> (I have some running code problem for the case of (?X ?Y)
> only graphs but thanks for suggesting that possibility...)
> for the case we discuss here, the ?Y in S1 is needed
>
> > data:
> > > x :p "v-p" .
> > > x :q "v-q" .
> >
> > then
> >
> > S1 gives graph ("v-p" ?Y)
> > S2 gives graph ("v-p" "v-q")
> >
> > merging gives:
> >
> > ("v-p", "v-q")
>
> indeed
>
> > because ?Y unifes with "v-q", so because there is at least match, the
> > original ("v-p" ?Y) can be removed. This is the merge rule for
> > universal variables.
>
> that's right
>
>
> > [Aside: in
> > [] q:select { q:result q:is (?X ?Y) } ;
> > q:where { :x :p ?X ; :x :q ?Y } .
> > why is the ?X in the q:select formula connected to the ?X in the
> > q:where formula. What are the scoping rules on ?-named variables? Is
> > it the document?]
>
> the meaning is the same as in
> http://www.w3.org/DesignIssues/N3QL#Design3
> i.e. in this case it is
> { :x :p ?X ; :x :q ?Y } => { q:result q:is (?X ?Y) }.
> and the scope of ?X is that formula as explained in
> http://www.w3.org/2003/Talks/0520-www-tf1-b3-rules/slide21-0.html
Received on Thursday, 8 July 2004 15:15:54 UTC