Just a bit more on how SERVICE-specific HTTP action is managed: https://jena.apache.org/documentation/query/service.html#configuration-from-jena-version-311
The code is here: https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java#L613 It may or may not be a useful pattern for you, but if your desired customization can be packaged in an HTTP client, you _can_ inject HTTP clients on a per-service basis. --- A. Soroka The University of Virginia Library > On Jan 1, 2017, at 12:59 PM, Andy Seaborne <[email protected]> wrote: > > > > On 01/01/17 12:53, Martynas Jusevičius wrote: >> Hey, >> >> happy 2017 :) >> >> I am wondering if there is a way to "intercept" > > Any thing can be intercepted with a custom OpExecutor. > >> the HTTP request that >> is being generated by the SERVICE clause? > > See Service.configureQuery for the use of serviceContext > >> >> As you might know, some triplestores (RDF4J, Dydra) provide an >> extension of the SPARQL protocol that allows sending query bindings >> separately from the query string. (Too bad it's not standardized and >> I'm not even able to find a good reference right now, but that is >> another topic). > > What semantics do they have? Specifically, is it replace name-by-value > regardless? (so inside nested SELECT where it can be a "different" variable)? > What about aggregates? > >> >> We have implemented it with a custom SPARQL client, but how can we >> plug it into the federated query execution? > > You can have query string parameters in the SERVICE URL. > > Andy > >> >> Thanks. >> >> Martynas >>
