Skip to content

[Query] Support BIND, VALUES and inline data in core.next.query #562

Description

@remiceres

Summary

Implement SPARQL 1.1 inline data evaluation (VALUES / Table) and variable assignment (BIND / Extend) in core.next.query.


Objectives and Technical Scope

1. VALUES Clause (Inline Data / Table)

  • Support inline data forms: single-variable (VALUES ?x { :a :b }) and multi-variable (VALUES (?x ?y) { (:a 1) (:b UNDEF) }).
  • Handle the UNDEF keyword correctly to represent unbound variable states in solution multisets.
  • Support VALUES both inside graph pattern blocks (GroupGraphPattern) and at the query root level.

2. BIND Clause (Extend Expression)

  • Implement Extend(mu, var, expr) evaluation to assign computed expression values to new variables.
  • Enforce SPARQL 1.1 variable scoping rules: prevent BIND from overwriting variables already bound in the current scope.
  • Correctly propagate type errors resulting from expression evaluation as unbound variables.

3. Validation and Conformance

  • Validate against official W3C SPARQL 1.1 test suites (bindings, bind) in corese-w3c.
  • Ensure 0 SonarLint issues and 0 compiler warnings.

Dependencies

• Blocked by:
#568
#578
• Blocks:
#564

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requeststandard featureIssue related to an implementation based on W3C standards

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions