|
From: Ian D. <ian...@gm...> - 2017-10-24 14:28:50
|
Hello,
Does bigdata/blazegraph allow the use of a named graph in a SERVICE clause
that is on an arbitrary sparql endpoint. I have a blazegraph instance
running in triples mode but I want to run a query against both it and a
remote non-blazegraph sparql endpoint where the data is in a specific
graph. This results in the stack trace:
java.util.concurrent.ExecutionException:
java.util.concurrent.ExecutionException:
com.bigdata.rdf.sparql.ast.QuadsOperationInTriplesModeException: Use of
WITH and GRAPH constructs in query body is not supported in triples mode.
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.fillInIV(ASTDeferredIVResolution.java:1015)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.fillInIV(ASTDeferredIVResolution.java:878)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.fillInIV(ASTDeferredIVResolution.java:878)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.fillInIV(ASTDeferredIVResolution.java:1028)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.fillInIV(ASTDeferredIVResolution.java:878)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.prepare(ASTDeferredIVResolution.java:662)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.resolve(ASTDeferredIVResolution.java:447)
at
com.bigdata.rdf.sparql.ast.eval.ASTDeferredIVResolution.resolveQuery(ASTDeferredIVResolution.java:270)
at
com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper.optimizeQuery(ASTEvalHelper.java:408)
This query replicates the issue:
SELECT DISTINCT ?a ?b WHERE {
SERVICE <http://another-endpoint/sparql> {
GRAPH <http://a-graph> { ?a a ?b . }
}
}
It seems that bigdata parses the query, sees the graph clause and because
the source sparql endpoint is running in triples mode it doesn't like it.
However, another endpoint can be running in any mode it wants. It should be
up to the external endpoint to complain about the query it is receiving,
not the originator.
Now I understand that you can't have graphs in a blazegraph triples mode
store but you could in an external one which you want to federate your
query with.
It would be great if there was an easy way round this but I haven't managed
to find anything in the docs.
Cheers,
Ian
|