-
Notifications
You must be signed in to change notification settings - Fork 177
GH-5604 New Query Renderer implementation #5601
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@kenwenzel here is the TupleExpr to SPARQL renderer that I was talking about. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new query renderer implementation for RDF4J's SPARQL query rendering system. The implementation replaces the previous renderer with an intermediate representation (IR) based approach that provides better handling of property paths, nested structures, and SPARQL syntax transformations.
Key changes:
- New IR-based query rendering architecture with transform pipeline
- Property path fusion and normalization transforms
- Support for SPARQL collections, negated property sets, and complex path expressions
Reviewed changes
Copilot reviewed 144 out of 207 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| ShrinkOnFailure.java | Test utility wrapper for minimizing failing queries via shrinking |
| SPARQLQueryRenderTest.java | Refactored test class removing static fields and lifecycle methods |
| PathTextUtilsTest.java | Unit tests for path text parsing and manipulation utilities |
| BracesEffectTest.java | Tests exploring how braces affect TupleExpr and IR representation |
| AlgebraExplorationTest.java | Ad-hoc tests for inspecting TupleExpr algebra structures |
| VarUtils.java | Utility class for RDF4J Var comparison and path variable recognition |
| TextEscapes.java | Utility for escaping SPARQL string literals |
| TermRenderer.java | Rendering helpers for IRIs and RDF4J Values |
| SparqlNameUtils.java | SPARQL name validation helpers (prefixed names, PN_LOCAL checks) |
| ExprTextUtils.java | Helpers for adding/removing parentheses around expression text |
| Transform classes | Multiple transform classes implementing IR rewriting and optimization |
| package-info.java files | Package documentation marking IR packages as experimental |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
GitHub issue resolved: #5604
Briefly describe the changes proposed in this PR:
PR Author Checklist (see the contributor guidelines for more details):
mvn process-resourcesto format from the command line)