federated query question

I'm reviewing the latest set of changes.

In the section on boundedness (2.4) there is this note:

Note that this condition does not capture passing bindings between 
SERVICE pattern, e.g. in
  { ?X :p :o SERVICE ?X { ?Y :p :o } SERVICE ?Y { ?Z :p :o } }, SERVICE 
?Y {...} is not service-safe, since ?Y is not strongly bounded here. In 
order to capture the previous case, either SERVICE semantics have to be 
order-dependent, or the engine has to determine an implicit order of 
SERVICE calls that guarantees passing binding in the right-order:
  { ?X :p :o SERVICE ?Y { ?Z :p :o } SERVICE ?X { ?Y :p :o } }

The above query can be "emulated" with a nested SERVICE call as follows:

  { ?X :p :o SERVICE ?X { ?Y :p :o SERVICE ?Y { ?Z :p :o } } }

This only works if the called services support (nested) SERVICE patterns.

If I understand correctly, the intent of our current effort at including 
the notion of strongly bound is to prohibit a query that uses SERVICE 
like this. Is this correct? If so, I will change the wording to reflect 
this and to suggest that implementations might extend SERVICE by 
detecting an execution order that guarantees variables used with SERVICE 
are strongly bound.


Received on Thursday, 12 May 2011 12:50:01 UTC