sparql-formal-semantics · git:20260612.13b231c · 2026-06-12 · sha256 7ceaaec34531353f

sparql-formal-semantics git:20260612.13b231cA

Immutable. This exact content is served forever at /api/v1/blob/7ceaaec34531353f.

---
name: sparql-formal-semantics
description: Cheat-sheet for the formal semantics of the SPARQL fragment used in the ZKP-SPARQL paper — Pérez–Arenas–Gutiérrez algebra, RDF graph model, blank-node canonicalisation choices, fragment-scoping conventions. Use when writing operator specs, scoping which SPARQL constructs the paper supports, drafting semantics sections, or reconciling differences between the W3C SPARQL 1.1 rec and the paper's formalisation.
---

# SPARQL formal semantics cheat-sheet

A working reference for the formal semantics layer Jesse's paper
sits on. Citations matter — every claim here should be traceable to
either the W3C SPARQL 1.1 rec or to the Pérez–Arenas–Gutiérrez (PAG)
paper.

## Algebra at a glance

PAG models a SPARQL graph pattern as expressions built from:

- **Triple patterns** `(s, p, o)` where each position is a term or
  variable.
- **Basic graph patterns (BGPs)** as sets of triple patterns.
- **AndP1, P2** — join (compatibility on shared variables).
- **OptP1, P2** — left outer join (`OPTIONAL`).
- **UnionP1, P2** — set union of solution mappings.
- **FilterP, R** — selection by a built-in expression.

Solutions are partial functions `μ : V → Term` (called solution
mappings). The semantics `eval(G, P)` of pattern `P` over graph `G`
is a multiset of solution mappings.

## Compatibility

Two solution mappings `μ1`, `μ2` are *compatible* iff they agree on
every variable in `dom(μ1) ∩ dom(μ2)`. The join `μ1 ⨝ μ2` is
defined when they're compatible and equals `μ1 ∪ μ2`.

This single notion unifies BGP joining, `AND`, and the inner part of
`OPTIONAL`.

## Standard equivalences

Useful when re-shaping queries before circuit compilation:

- `(P1 AND P2) AND P3 ≡ P1 AND (P2 AND P3)` (associativity).
- `P1 AND P2 ≡ P2 AND P1` (commutativity, multiset).
- `(P1 UNION P2) AND P3 ≡ (P1 AND P3) UNION (P2 AND P3)`
  (distributivity).
- `OPTIONAL` is **not** associative or commutative — be careful.

## RDF graph model

For the paper's purposes, an RDF graph is a finite multiset of
triples. Triples have:

- **IRIs**, **literals** (with optional language tag, optional
  datatype IRI), and **blank nodes**.
- Blank nodes are *existential* — they have local scope.

## Blank-node canonicalisation

Two living standards:

- **URDNA2015** — the original RDF Dataset Canonicalisation
  algorithm; widely deployed.
- **URDNA2024** — the W3C-track successor; addresses some hash
  collisions and edge cases.

For the paper, **pick one and document it**. The choice flows
through to circuit-side encoding, signature schemes that sign
canonical N-Quads, and the Lean model.

## Fragment scoping — start small

Suggested opening fragment for the paper:

| Construct | In scope (v1)? | Notes |
| --- | --- | --- |
| BGP | yes | Foundation. |
| AND | yes | Joins. |
| FILTER (built-in expressions over literals) | yes (subset) | Equality, numeric `<`, `>`; defer regex. |
| UNION | maybe v1.1 | Multiset union — cheap if hash-committed. |
| OPTIONAL | v2 | Left-outer-join is genuinely tricky in-circuit. |
| Property paths | out of scope | Recursion needs a different proof technique. |
| Aggregates (COUNT, SUM, ...) | v2 | Sort or multi-set hash gadget. |
| ORDER BY / LIMIT | v2 | Relevant only if the verifier needs ordered output. |

This is a starting point — `sparql-semantics` owns the live version
in the paper.

## Where the paper deviates from the standard

When the paper's algebra deviates from W3C, document each deviation
in a **single** comparison table in the paper. Acceptable reasons:

- Treating bag semantics where W3C is silent.
- Pinning a deterministic blank-node naming scheme that W3C leaves
  open.
- Restricting filter built-ins to a decidable subset.

Unacceptable reasons:

- Convenience for the proof.
- Convenience for the circuit.

## Primary sources

- W3C SPARQL 1.1 Query Language Recommendation.
- Pérez, Arenas, Gutiérrez. "Semantics and complexity of SPARQL"
  (TODS 2009).
- W3C RDF 1.2 Concepts.
- W3C RDF Dataset Canonicalisation (URDNA2015 / URDNA2024).