Skip to content

VALUES operation#24

Merged
namedgraph merged 2 commits into
mainfrom
feat-values-op
Jun 30, 2026
Merged

VALUES operation#24
namedgraph merged 2 commits into
mainfrom
feat-values-op

Conversation

@namedgraph

Copy link
Copy Markdown
Member

No description provided.

namedgraph and others added 2 commits June 30, 2026 13:35
Values is the set-valued counterpart of Substitute. Where Substitute injects
one term for one variable, Values injects a whole result set (rows of
bindings) into a query as a trailing SPARQL VALUES block, so one query can be
constrained or batched by the results of another (e.g. SELECT -> Values ->
DESCRIBE) in a single request instead of iterating with ForEach.

- src/web_algebra/operations/sparql/values.py: execute(query, data, vars?)
  takes the query Literal plus an rdflib Result (carries the ordered .vars the
  block header needs), renders short form for one column and long form for
  many, emits UNDEF for unbound cells, and serializes every term via term.n3()
  for correct escaping. Blank nodes are rejected (illegal in a VALUES block).
  Auto-registers via the operations package walk.
- Placement is the trailing ValuesClause only (joins the outermost group) —
  the only VALUES position reachable without deconstructing the query into its
  algebra. Interior/scoped placement is intentionally out of scope.
- tests/unit/test_values.py: short/long form, UNDEF, empty result, vars
  subset/reorder, bnode rejection, literal escaping, type errors.
- Document in prompts/system.md, formal-semantics.md, README op index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@namedgraph namedgraph merged commit 128e184 into main Jun 30, 2026
6 checks passed
@namedgraph namedgraph deleted the feat-values-op branch June 30, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant