Closed mhoangvslev closed 5 days ago
See https://www.w3.org/TR/sparql11-federated-query/#variableService
Variables in the SERVICE clause are "best effort". <https://query.wikidata.org/sparql>
makes sense but an unbound variable does indicate where to execute the SERVICE.
It has to be constrained somehow. What are you expecting? If you want it to ignore, then SERVICE SILENT
may do what you want - it will generate a warning but otherwise skip the execution of that step.
In my use-case, since the data in VALUES
are retrieved from external process, there is no warranty that the variables would be bound eventually, i.e, having UNDEF
as value. In this case yes, I expect the BGP under SERVICE
to simply be ignored. That said, SERVICE SILENT
is satisfactory enough, although its usage can cause important errors to get ignored, e.g. HTTP 300-500.
All SERVICE
execution goes through an extension point ServiceExec.exec
.
One collection of extensions, focued on federated query performance, are: https://jena.apache.org/documentation/query/service_enhancer.html
You can add your own policy via ServiceExec.exec
.
Alright, many thanks for your prompt assistance ☺️
Version
5.0.0
What happened?
Given the query below:
Executing this query cause error:
Service URI not bound: ?bgp1
According to the spec, using UNDEF should not raise an error:
Relevant output and stacktrace
No response
Are you interested in making a pull request?
None