You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not sure whether this case should result in an execution error (perhaps mitigable with SERVICE SILENT) or not.
If it should execute without error, then a basic fix for this issue and #2995 might be to add a Transform as a validation step after the service substitution and before OpAsQuery.
The Transform implementation could validate all OpBGP / OpGraph nodes for whether they contain an illegal RDF term (literal) or an injected blank node (a blank node that is mentioned in the input binding). If so, the illegal RDF term could be replaced with a e.g. a legal dummy IRI and the Op could be wrapped with an OpFilter(NodeValue.FALSE, originalOp).
Jena's optimizer could try to simplify the query further and possibly detect queries that cannot produce results - but perhaps this corner-case workload is still better left to be handled by the remote endpoint.
Version
5.3.0
What happened?
During my experiments, I observed that Jena incorrectly evaluates the following federated query, which uses a blank node:
This query should not return any solutions because blank nodes are only locally scoped within RDF stores. However, it returns the following result:
The problem arises because Jena inappropriately substitutes
?BN
with_:b0
when it evaluates the service pattern:Relevant output and stacktrace
Are you interested in making a pull request?
None
The text was updated successfully, but these errors were encountered: