Hi, I have query that federates between 2 Fuseki instances (the "remote" one is fuseki-end-user):
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX acl: <http://www.w3.org/ns/auth/acl#> PREFIX lacl: <https://w3id.org/atomgraph/linkeddatahub/admin/acl/domain#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX sioc: <http://rdfs.org/sioc/ns#> DESCRIBE ?auth FROM <urn:x-arq:UnionGraph> WHERE { { ?auth acl:mode acl:Read { ?auth acl:accessTo <https://kg.opendatahub.bz.it/queries/select-ski-resorts/> } UNION { SERVICE <http://fuseki-end-user:3030/ds/> { { GRAPH ?g { <https://kg.opendatahub.bz.it/queries/select-ski-resorts/> a ?Type } } } { ?auth acl:accessToClass ?Type } UNION { ?auth acl:accessToClass ?Class . ?Type (rdfs:subClassOf)* ?Class } } { { ?auth acl:agent rdfs:Resource } UNION { ?auth acl:agentGroup ?Group . ?Group foaf:member rdfs:Resource } } } UNION { ?auth acl:mode acl:Read { ?auth acl:agentClass foaf:Agent } UNION { ?auth acl:agentClass rdfs:Resource } { ?auth acl:accessTo <https://kg.opendatahub.bz.it/queries/select-ski-resorts/> } UNION { SERVICE <http://fuseki-end-user:3030/ds/> { { GRAPH ?g { <https://kg.opendatahub.bz.it/queries/select-ski-resorts/> a ?Type } } } { ?auth acl:accessToClass ?Type } UNION { ?auth acl:accessToClass ?Class . ?Type (rdfs:subClassOf)* ?Class } } } } What I see in the fuseki-end-user log following this query is a bunch (200+ in this case) identical requests with this query: SELECT * WHERE { GRAPH ?g { <https://kg.opendatahub.bz.it/queries/select-ski-resorts/> a ?Type } } I understand this is due to federation and know that Fuseki does not cache the results, but this strikes me as terribly inefficient. Each SERVICE request to fuseki-end-user takes around 10 ms but 200+ of them add to over 2 seconds. Is there an opportunity for optimization here? Either of the query or of Jena :) Martynas atomgraph.com