- 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