Repository navigation
Commit 16dd1e8
+ BNodeResolver: told-bnode emulation over the SPARQL protocol
SPARQL 1.0 rejected "told bnodes" (mentioning a blank node received in an
earlier response). Emulate them: for each SELECT, associate every response
bnode with a minimal, uniqueness-verified fragment of in/out arcs found by
instrumenting the query with interrogation round trips, recursing through
neighbor bnodes when ground arcs do not discriminate. Fragments intern to
stable proxy terms; mentioning a proxy in a later query expands to a fresh
variable constrained by its fragment. Ambiguous pins (N indistinguishable
candidates) resolve all candidates and assign response labels bijectively.
RemoteGraphProvider materializes triple-pattern fetches into a local BGP
with subsumption, so interrogation results answer later neighborhood
queries. Wired into ShEx validation (Validator::NeighborhoodSource) and
Algae 3 remote execution (Engine::remote fault-in at bgpmatch, attach via
Engine::attachClientFactory). RelabelingLocalClient test double relabels
response bnodes per response so label-luck code fails.
Deferred: bnodes emerging from grouped aggregates (the flagship query
never joins bnodes across an aggregation).
tests: proxy stability across relabeled responses; mention() rejoining
the right membership; cache subsumption; ShEx remote==local parity;
evidence-dnf remote==local golden.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 105030e commit 16dd1e8
8 files changed
Lines changed: 798 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| 171 | + | |
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| 30 | + | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| |||
89 | 92 | | |
90 | 93 | | |
91 | 94 | | |
92 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
93 | 104 | | |
94 | 105 | | |
95 | 106 | | |
| |||
222 | 233 | | |
223 | 234 | | |
224 | 235 | | |
| 236 | + | |
| 237 | + | |
225 | 238 | | |
226 | 239 | | |
227 | 240 | | |
| |||
652 | 665 | | |
653 | 666 | | |
654 | 667 | | |
655 | | - | |
656 | | - | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
657 | 678 | | |
658 | 679 | | |
659 | 680 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
336 | 337 | | |
337 | 338 | | |
338 | 339 | | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
339 | 351 | | |
340 | 352 | | |
341 | 353 | | |
| |||
0 commit comments