@cavelang/query 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/src/compile.d.ts +14 -2
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +33 -8
- package/dist/src/compile.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +5 -5
- package/src/compile.ts +45 -8
- package/src/index.ts +1 -0
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ query(store, 'terrier EXTENDS+ animal') // transitive
|
|
|
19
19
|
|
|
20
20
|
query(store, '?x USES postgres', { aliases: true }) // + rows about aliased names (§13.6)
|
|
21
21
|
query(store, 'server IS compromised', { asOf: '2026-01-15' }) // belief state at a past moment (§12.3)
|
|
22
|
+
query(store, 'service HAS owner: ?who', { resolve: true }) // §26 winners only — one row per contested fact
|
|
22
23
|
```
|
|
23
24
|
|
|
24
25
|
## Pattern language (§12.1)
|
|
@@ -83,6 +84,15 @@ covers one second.
|
|
|
83
84
|
transaction id (that append included). The alias closure and transitive
|
|
84
85
|
hops reconstruct at the same instant; `{ all: true }` composes as
|
|
85
86
|
full-history-up-to-the-boundary.
|
|
87
|
+
- **`{ resolve: true }` matches resolved winners only** (§26): coexisting
|
|
88
|
+
series about one fact — §9.5 actor stamps, content sources, opposite
|
|
89
|
+
polarity — collapse to the row the resolution policy picks (precedence
|
|
90
|
+
class, reliability-weighted confidence, tx), so a positive pattern
|
|
91
|
+
whose fact resolved to a negated winner matches nothing and transitive
|
|
92
|
+
hops walk only winning edges. Composes with `aliases` (groups widen
|
|
93
|
+
through the closure) and `asOf` (candidates and the in-band policy
|
|
94
|
+
declarations reconstruct at the boundary); incompatible with
|
|
95
|
+
`{ all: true }`, which asks for the unresolved history.
|
|
86
96
|
|
|
87
97
|
## Tests
|
|
88
98
|
|
|
@@ -94,6 +104,8 @@ Every §12.1 example pattern and every §12.2 filter runs against a live
|
|
|
94
104
|
in-memory store, including inverse and transitive-inverse cases,
|
|
95
105
|
current-vs-history semantics, negated patterns, the §13.6 alias
|
|
96
106
|
closure (term widening, transitive hops across aliases, unmerge by
|
|
97
|
-
retraction, value/attribute exemption)
|
|
107
|
+
retraction, value/attribute exemption), §12.3 as-of resolution
|
|
98
108
|
(tx/date/timestamp boundaries, later retraction, as-of alias closure
|
|
99
|
-
and transitive edges)
|
|
109
|
+
and transitive edges) and §26 winners-only matching (ingest re-runs vs
|
|
110
|
+
human corrections, polarity suppression, reliability steering,
|
|
111
|
+
resolved transitive paths, composition with aliases and as-of).
|
package/dist/src/compile.d.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* CAVE-Q → SQL compilation (spec §12).
|
|
3
3
|
*
|
|
4
4
|
* Patterns run over *current beliefs* by default — the latest transaction
|
|
5
|
-
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
-
* `asOf` to resolve the belief state at a past moment (spec §12.3)
|
|
5
|
+
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
+
* `asOf` to resolve the belief state at a past moment (spec §12.3), or
|
|
7
|
+
* `resolve` to match only the winners the §26 contradiction-resolution
|
|
8
|
+
* policy picks among contested facts.
|
|
7
9
|
* Inverse verbs compile to the same physical query as their primary
|
|
8
10
|
* (spec §12.1): `?x PART-OF monorepo` and `monorepo CONTAINS ?x` produce
|
|
9
11
|
* identical SQL against canonical rows, with the pattern's subject binding
|
|
@@ -39,6 +41,16 @@ export type Options = {
|
|
|
39
41
|
* matches the full history up to the boundary.
|
|
40
42
|
*/
|
|
41
43
|
readonly asOf?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Match resolved winners only (spec §26): when several series assert
|
|
46
|
+
* one fact — actor stamps, content sources, polarity — the resolution
|
|
47
|
+
* policy (precedence class, reliability-weighted confidence, tx)
|
|
48
|
+
* picks one and the rest are invisible. A positive pattern whose fact
|
|
49
|
+
* resolved to a negated winner matches nothing. Composes with
|
|
50
|
+
* `aliases` (groups widen through the closure) and `asOf` (candidates
|
|
51
|
+
* and policy reconstruct at the boundary); incompatible with `all`.
|
|
52
|
+
*/
|
|
53
|
+
readonly resolve?: boolean;
|
|
42
54
|
};
|
|
43
55
|
/**
|
|
44
56
|
* Runs a CAVE-Q query against a store.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,+FAA+F;AAC/F,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,yDAAyD;IACzD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAiWD;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,OAAO,MAAM,EAAE,UAAS,OAAY,KAAG,KAAK,EACnC,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE,UAAS,OAAY,KAAG,KAAK,EA6BpF,CAAA"}
|
package/dist/src/compile.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* CAVE-Q → SQL compilation (spec §12).
|
|
3
3
|
*
|
|
4
4
|
* Patterns run over *current beliefs* by default — the latest transaction
|
|
5
|
-
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
-
* `asOf` to resolve the belief state at a past moment (spec §12.3)
|
|
5
|
+
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
+
* `asOf` to resolve the belief state at a past moment (spec §12.3), or
|
|
7
|
+
* `resolve` to match only the winners the §26 contradiction-resolution
|
|
8
|
+
* policy picks among contested facts.
|
|
7
9
|
* Inverse verbs compile to the same physical query as their primary
|
|
8
10
|
* (spec §12.1): `?x PART-OF monorepo` and `monorepo CONTAINS ?x` produce
|
|
9
11
|
* identical SQL against canonical rows, with the pattern's subject binding
|
|
@@ -14,6 +16,7 @@
|
|
|
14
16
|
*/
|
|
15
17
|
import { Uuidv7, Value } from '@cavelang/core';
|
|
16
18
|
import { Registry } from '@cavelang/canonical';
|
|
19
|
+
import { Resolve } from '@cavelang/store';
|
|
17
20
|
import * as Pattern from "./pattern.js";
|
|
18
21
|
/**
|
|
19
22
|
* UUIDv7 interval `[lo, hi)` for a tx filter value: a bare date covers the
|
|
@@ -53,6 +56,23 @@ JOIN (
|
|
|
53
56
|
FROM ${claimsSql(asOf)} GROUP BY claim_key
|
|
54
57
|
) latest ON c.claim_key = latest.claim_key AND c.tx = latest.max_tx
|
|
55
58
|
`;
|
|
59
|
+
/**
|
|
60
|
+
* Row universe a pattern matches over: the full history under `all`,
|
|
61
|
+
* current beliefs by default, or the §26 resolved winners among them
|
|
62
|
+
* under `resolve` — each reconstructed at the `asOf` boundary when one
|
|
63
|
+
* is set. With `resolve` + `aliases` the winners' group keys widen
|
|
64
|
+
* through the closure, so the compiled statement must have the
|
|
65
|
+
* `alias_pair` CTE in scope — which the alias plumbing already provides.
|
|
66
|
+
*/
|
|
67
|
+
const baseSql = (options, policy) => {
|
|
68
|
+
if (options.resolve === true) {
|
|
69
|
+
if (options.all === true) {
|
|
70
|
+
throw new Error('CAVE-Q: resolve picks winners among current beliefs — incompatible with all (spec §26.4)');
|
|
71
|
+
}
|
|
72
|
+
return Resolve.resolvedSql(policy ?? Resolve.builtins, currentSql(options.asOf), { aliases: options.aliases === true });
|
|
73
|
+
}
|
|
74
|
+
return options.all === true ? `SELECT * FROM ${claimsSql(options.asOf)}` : currentSql(options.asOf);
|
|
75
|
+
};
|
|
56
76
|
/**
|
|
57
77
|
* Alias closure CTEs (spec §13.6): `alias_edge` is the current positive
|
|
58
78
|
* `ALIAS` claims symmetrized (each written direction is its own claim key —
|
|
@@ -77,7 +97,7 @@ const aliasPairSql = (asOf) => `alias_edge(a, b) AS (
|
|
|
77
97
|
)`;
|
|
78
98
|
/** SQL for "these two expressions name the same entity" under the closure. */
|
|
79
99
|
const aliasSame = (left, right) => `(${left} = ${right} OR EXISTS (SELECT 1 FROM alias_pair p WHERE p.a = ${left} AND p.b = ${right}))`;
|
|
80
|
-
const compile = (pattern, registry, options) => {
|
|
100
|
+
const compile = (pattern, registry, options, policy) => {
|
|
81
101
|
// Inverse resolution (spec §12.1): swap the pattern's endpoint slots and
|
|
82
102
|
// query the primary verb.
|
|
83
103
|
let verb = pattern.verb;
|
|
@@ -96,7 +116,7 @@ const compile = (pattern, registry, options) => {
|
|
|
96
116
|
}
|
|
97
117
|
}
|
|
98
118
|
if (verb.kind === 'verb' && verb.transitive) {
|
|
99
|
-
return compileTransitive(pattern, verb.name, subjectSlot, objectSlot, options);
|
|
119
|
+
return compileTransitive(pattern, verb.name, subjectSlot, objectSlot, options, policy);
|
|
100
120
|
}
|
|
101
121
|
const aliases = options.aliases === true;
|
|
102
122
|
// Alias closure applies to entity columns only: values and attribute
|
|
@@ -249,7 +269,7 @@ const compile = (pattern, registry, options) => {
|
|
|
249
269
|
if (options.all !== true && !pattern.filters.some(filter => filter.field === 'conf')) {
|
|
250
270
|
conditions.push('c.conf > 0');
|
|
251
271
|
}
|
|
252
|
-
const base =
|
|
272
|
+
const base = baseSql(options, policy);
|
|
253
273
|
const withClause = aliases ? `WITH RECURSIVE ${aliasPairSql(options.asOf)} ` : '';
|
|
254
274
|
const sql = `${withClause}SELECT c.* FROM (${base}) c WHERE ${conditions.join(' AND ')} ORDER BY c.tx`;
|
|
255
275
|
const bind = (row) => {
|
|
@@ -261,13 +281,13 @@ const compile = (pattern, registry, options) => {
|
|
|
261
281
|
};
|
|
262
282
|
return { sql, params, bind, transitive: false };
|
|
263
283
|
};
|
|
264
|
-
const compileTransitive = (pattern, verb, subjectSlot, objectSlot, options) => {
|
|
284
|
+
const compileTransitive = (pattern, verb, subjectSlot, objectSlot, options, policy) => {
|
|
265
285
|
if (pattern.negated || pattern.filters.length > 0 || pattern.contexts.length > 0 || pattern.tags.length > 0 ||
|
|
266
286
|
pattern.payload.kind === 'attribute') {
|
|
267
287
|
throw new Error('CAVE-Q: transitive patterns support subject/object slots only (spec §12.1)');
|
|
268
288
|
}
|
|
269
289
|
const aliases = options.aliases === true;
|
|
270
|
-
const base =
|
|
290
|
+
const base = baseSql(options, policy);
|
|
271
291
|
/** Endpoint equality: exact, or alias-equal under the closure (spec §13.6). */
|
|
272
292
|
const same = (left, right) => aliases ? aliasSame(left, right) : `${left} = ${right}`;
|
|
273
293
|
const conditions = [];
|
|
@@ -336,7 +356,12 @@ export const query = (store, input, options = {}) => match(store, Pattern.parse(
|
|
|
336
356
|
* between joins) rather than as text.
|
|
337
357
|
*/
|
|
338
358
|
export const match = (store, pattern, options = {}) => {
|
|
339
|
-
|
|
359
|
+
// The effective policy is read per query so an as-of query reads the
|
|
360
|
+
// in-band declarations as of its boundary (spec §26.3, §12.3).
|
|
361
|
+
const policy = options.resolve === true ?
|
|
362
|
+
Resolve.readPolicy(store.db, currentSql(options.asOf)) :
|
|
363
|
+
undefined;
|
|
364
|
+
const compiled = compile(pattern, store.registry(), options, policy);
|
|
340
365
|
const rows = store.db.prepare(compiled.sql).all(...compiled.params);
|
|
341
366
|
if (compiled.transitive && options.aliases === true) {
|
|
342
367
|
// Distinct (src, dst) pairs can repeat a binding set when an endpoint
|
package/dist/src/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* query(store, '?x PART-OF monorepo') // inverse verbs compile to canonical rows
|
|
10
10
|
* query(store, 'terrier EXTENDS+ animal') // transitive
|
|
11
11
|
* query(store, '?x IS live', { asOf: '2026-01-15' }) // belief state at a past moment (§12.3)
|
|
12
|
+
* query(store, '?x HAS owner: ?o', { resolve: true }) // §26 winners only — one row per contested fact
|
|
12
13
|
* ```
|
|
13
14
|
*/
|
|
14
15
|
export * as Pattern from './pattern.ts';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAC3C,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* query(store, '?x PART-OF monorepo') // inverse verbs compile to canonical rows
|
|
10
10
|
* query(store, 'terrier EXTENDS+ animal') // transitive
|
|
11
11
|
* query(store, '?x IS live', { asOf: '2026-01-15' }) // belief state at a past moment (§12.3)
|
|
12
|
+
* query(store, '?x HAS owner: ?o', { resolve: true }) // §26 winners only — one row per contested fact
|
|
12
13
|
* ```
|
|
13
14
|
*/
|
|
14
15
|
export * as Pattern from "./pattern.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cavelang/query",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CAVE-Q — graph-pattern queries (?x vars, wildcards, inverse verbs, transitive hops, WHERE filters) compiled to SQL.",
|
|
6
6
|
"license": "CC0-1.0",
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@cavelang/canonical": "0.
|
|
36
|
-
"@cavelang/core": "0.
|
|
37
|
-
"@cavelang/parser": "0.
|
|
38
|
-
"@cavelang/store": "0.
|
|
35
|
+
"@cavelang/canonical": "0.17.0",
|
|
36
|
+
"@cavelang/core": "0.17.0",
|
|
37
|
+
"@cavelang/parser": "0.17.0",
|
|
38
|
+
"@cavelang/store": "0.17.0"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsc -b",
|
package/src/compile.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* CAVE-Q → SQL compilation (spec §12).
|
|
3
3
|
*
|
|
4
4
|
* Patterns run over *current beliefs* by default — the latest transaction
|
|
5
|
-
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
-
* `asOf` to resolve the belief state at a past moment (spec §12.3)
|
|
5
|
+
* per claim key (spec §9.1) — pass `all` to match the full history,
|
|
6
|
+
* `asOf` to resolve the belief state at a past moment (spec §12.3), or
|
|
7
|
+
* `resolve` to match only the winners the §26 contradiction-resolution
|
|
8
|
+
* policy picks among contested facts.
|
|
7
9
|
* Inverse verbs compile to the same physical query as their primary
|
|
8
10
|
* (spec §12.1): `?x PART-OF monorepo` and `monorepo CONTAINS ?x` produce
|
|
9
11
|
* identical SQL against canonical rows, with the pattern's subject binding
|
|
@@ -15,6 +17,7 @@
|
|
|
15
17
|
|
|
16
18
|
import { Uuidv7, Value } from '@cavelang/core'
|
|
17
19
|
import { Registry } from '@cavelang/canonical'
|
|
20
|
+
import { Resolve } from '@cavelang/store'
|
|
18
21
|
import type { Row, Store } from '@cavelang/store'
|
|
19
22
|
import * as Pattern from './pattern.ts'
|
|
20
23
|
|
|
@@ -44,6 +47,16 @@ export type Options = {
|
|
|
44
47
|
* matches the full history up to the boundary.
|
|
45
48
|
*/
|
|
46
49
|
readonly asOf?: string
|
|
50
|
+
/**
|
|
51
|
+
* Match resolved winners only (spec §26): when several series assert
|
|
52
|
+
* one fact — actor stamps, content sources, polarity — the resolution
|
|
53
|
+
* policy (precedence class, reliability-weighted confidence, tx)
|
|
54
|
+
* picks one and the rest are invisible. A positive pattern whose fact
|
|
55
|
+
* resolved to a negated winner matches nothing. Composes with
|
|
56
|
+
* `aliases` (groups widen through the closure) and `asOf` (candidates
|
|
57
|
+
* and policy reconstruct at the boundary); incompatible with `all`.
|
|
58
|
+
*/
|
|
59
|
+
readonly resolve?: boolean
|
|
47
60
|
}
|
|
48
61
|
|
|
49
62
|
/**
|
|
@@ -89,6 +102,24 @@ JOIN (
|
|
|
89
102
|
) latest ON c.claim_key = latest.claim_key AND c.tx = latest.max_tx
|
|
90
103
|
`
|
|
91
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Row universe a pattern matches over: the full history under `all`,
|
|
107
|
+
* current beliefs by default, or the §26 resolved winners among them
|
|
108
|
+
* under `resolve` — each reconstructed at the `asOf` boundary when one
|
|
109
|
+
* is set. With `resolve` + `aliases` the winners' group keys widen
|
|
110
|
+
* through the closure, so the compiled statement must have the
|
|
111
|
+
* `alias_pair` CTE in scope — which the alias plumbing already provides.
|
|
112
|
+
*/
|
|
113
|
+
const baseSql = (options: Options, policy: undefined | readonly Resolve.Entry[]): string => {
|
|
114
|
+
if (options.resolve === true) {
|
|
115
|
+
if (options.all === true) {
|
|
116
|
+
throw new Error('CAVE-Q: resolve picks winners among current beliefs — incompatible with all (spec §26.4)')
|
|
117
|
+
}
|
|
118
|
+
return Resolve.resolvedSql(policy ?? Resolve.builtins, currentSql(options.asOf), { aliases: options.aliases === true })
|
|
119
|
+
}
|
|
120
|
+
return options.all === true ? `SELECT * FROM ${claimsSql(options.asOf)}` : currentSql(options.asOf)
|
|
121
|
+
}
|
|
122
|
+
|
|
92
123
|
/**
|
|
93
124
|
* Alias closure CTEs (spec §13.6): `alias_edge` is the current positive
|
|
94
125
|
* `ALIAS` claims symmetrized (each written direction is its own claim key —
|
|
@@ -123,7 +154,7 @@ type Compiled = {
|
|
|
123
154
|
readonly transitive: boolean
|
|
124
155
|
}
|
|
125
156
|
|
|
126
|
-
const compile = (pattern: Pattern.t, registry: Registry.t, options: Options): Compiled => {
|
|
157
|
+
const compile = (pattern: Pattern.t, registry: Registry.t, options: Options, policy?: readonly Resolve.Entry[]): Compiled => {
|
|
127
158
|
// Inverse resolution (spec §12.1): swap the pattern's endpoint slots and
|
|
128
159
|
// query the primary verb.
|
|
129
160
|
let verb = pattern.verb
|
|
@@ -144,7 +175,7 @@ const compile = (pattern: Pattern.t, registry: Registry.t, options: Options): Co
|
|
|
144
175
|
}
|
|
145
176
|
|
|
146
177
|
if (verb.kind === 'verb' && verb.transitive) {
|
|
147
|
-
return compileTransitive(pattern, verb.name, subjectSlot, objectSlot, options)
|
|
178
|
+
return compileTransitive(pattern, verb.name, subjectSlot, objectSlot, options, policy)
|
|
148
179
|
}
|
|
149
180
|
|
|
150
181
|
const aliases = options.aliases === true
|
|
@@ -300,7 +331,7 @@ const compile = (pattern: Pattern.t, registry: Registry.t, options: Options): Co
|
|
|
300
331
|
conditions.push('c.conf > 0')
|
|
301
332
|
}
|
|
302
333
|
|
|
303
|
-
const base =
|
|
334
|
+
const base = baseSql(options, policy)
|
|
304
335
|
const withClause = aliases ? `WITH RECURSIVE ${aliasPairSql(options.asOf)} ` : ''
|
|
305
336
|
const sql = `${withClause}SELECT c.* FROM (${base}) c WHERE ${conditions.join(' AND ')} ORDER BY c.tx`
|
|
306
337
|
const bind = (row: Record<string, unknown>): Record<string, string> => {
|
|
@@ -318,14 +349,15 @@ const compileTransitive = (
|
|
|
318
349
|
verb: string,
|
|
319
350
|
subjectSlot: Pattern.Slot,
|
|
320
351
|
objectSlot: undefined | Pattern.Slot,
|
|
321
|
-
options: Options
|
|
352
|
+
options: Options,
|
|
353
|
+
policy?: readonly Resolve.Entry[]
|
|
322
354
|
): Compiled => {
|
|
323
355
|
if (pattern.negated || pattern.filters.length > 0 || pattern.contexts.length > 0 || pattern.tags.length > 0 ||
|
|
324
356
|
pattern.payload.kind === 'attribute') {
|
|
325
357
|
throw new Error('CAVE-Q: transitive patterns support subject/object slots only (spec §12.1)')
|
|
326
358
|
}
|
|
327
359
|
const aliases = options.aliases === true
|
|
328
|
-
const base =
|
|
360
|
+
const base = baseSql(options, policy)
|
|
329
361
|
/** Endpoint equality: exact, or alias-equal under the closure (spec §13.6). */
|
|
330
362
|
const same = (left: string, right: string): string =>
|
|
331
363
|
aliases ? aliasSame(left, right) : `${left} = ${right}`
|
|
@@ -398,7 +430,12 @@ export const query = (store: Store, input: string, options: Options = {}): Match
|
|
|
398
430
|
* between joins) rather than as text.
|
|
399
431
|
*/
|
|
400
432
|
export const match = (store: Store, pattern: Pattern.t, options: Options = {}): Match[] => {
|
|
401
|
-
|
|
433
|
+
// The effective policy is read per query so an as-of query reads the
|
|
434
|
+
// in-band declarations as of its boundary (spec §26.3, §12.3).
|
|
435
|
+
const policy = options.resolve === true ?
|
|
436
|
+
Resolve.readPolicy(store.db, currentSql(options.asOf)) :
|
|
437
|
+
undefined
|
|
438
|
+
const compiled = compile(pattern, store.registry(), options, policy)
|
|
402
439
|
const rows = store.db.prepare(compiled.sql).all(...compiled.params) as Record<string, unknown>[]
|
|
403
440
|
if (compiled.transitive && options.aliases === true) {
|
|
404
441
|
// Distinct (src, dst) pairs can repeat a binding set when an endpoint
|
package/src/index.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* query(store, '?x PART-OF monorepo') // inverse verbs compile to canonical rows
|
|
10
10
|
* query(store, 'terrier EXTENDS+ animal') // transitive
|
|
11
11
|
* query(store, '?x IS live', { asOf: '2026-01-15' }) // belief state at a past moment (§12.3)
|
|
12
|
+
* query(store, '?x HAS owner: ?o', { resolve: true }) // §26 winners only — one row per contested fact
|
|
12
13
|
* ```
|
|
13
14
|
*/
|
|
14
15
|
|