Implement ExternallySpecifiedValues operation for external values spe… #2452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…cification
This commit implements a new operation type
ExternallySpecifiedValuesthat allows specifying values externally via the SERVICE ql:external-values-#id# syntax. The implementation includes:ExternallySpecifiedValues operation: Extends Values class with an identifier field. Always returns knownEmptyResult() as false and is uncachable to ensure values can be modified externally.
ExternalValuesQuery parser: New MagicServiceQuery subclass that extracts the identifier from the service IRI and parses variable specifications from the SERVICE body.
Parser integration: Updated SparqlQleverVisitor to recognize and parse SERVICE ql:external-values-#identifier# patterns into ExternalValuesQuery operations.
Query planner support: Added visitExternalValues to handle ExternalValuesQuery in the query planning phase, creating ExternallySpecifiedValues operations with initially empty values.
Operation.cloneAndGetExternalValues(): New method that clones an operation tree and collects all ExternallySpecifiedValues operations, enabling external modification of values.
The implementation follows the existing patterns for magic service queries (PathQuery, SpatialQuery, TextSearchQuery) and integrates cleanly with the existing infrastructure.
🤖 Generated with Claude Code