SERVICE ?var [was: Re: test case changes]

>> 2.
>>
>> I'd like to remove test service/manifest#service5 from the manifest
>> list as it tests the "SERVICE ?var" form that I believe we've
>> resolved not to specify. An alternative would be to mark this test
>> with an mf:requires and mint a new IRI to represent the
>> variable-endpoint extension.
>
> The proposal to make (service) a binary operator would address the key
> issue.

The algebra translation change would be: (draftily, not spec ready:)


     If E is of the form SERVICE [SILENT] IRI {P}
         Let G := Join(G, Service(IRI, Transform(P), SilentOp))
         End
===>
// Not a Join ... do within Service(...)

     If E is of the form SERVICE [SILENT] X {P}
       for X a variable or IRI:
           G := Service(X, P, G, SilentOp)
           End

and modify service evaluation:

eval   Service(X, P, G, SilentOp)

:=

    eval(G)
    then take the results to find the variable for service
    for each solution:
      make service call using the binding of the variable
        Invocation(IRI, P, SilentOp)
      (aside could mandate adding BINDINGS)

This is making it explicitly a loop of service calls based on teh 
syntactically earlier elements of the group graph pattern.

	Andy

Received on Friday, 14 October 2011 19:22:44 UTC