@mailwoman/geographic-model 10.0.0 → 10.2.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 +32 -32
- package/data/geographic-model.json +5 -5
- package/data/model/concepts.json +5 -5
- package/lib/artifact.ts +37 -65
- package/lib/compile.ts +55 -70
- package/lib/index.ts +22 -35
- package/lib/load.ts +60 -72
- package/lib/lookup.ts +12 -28
- package/lib/packaged.ts +50 -0
- package/lib/schema.ts +104 -97
- package/lib/validate.ts +32 -56
- package/lib/validation/issues.ts +32 -36
- package/lib/validation/references.ts +24 -27
- package/out/artifact.d.ts +28 -45
- package/out/artifact.d.ts.map +1 -1
- package/out/artifact.js +25 -52
- package/out/artifact.js.map +1 -1
- package/out/compile.d.ts +27 -41
- package/out/compile.d.ts.map +1 -1
- package/out/compile.js +42 -64
- package/out/compile.js.map +1 -1
- package/out/index.d.ts +22 -35
- package/out/index.d.ts.map +1 -1
- package/out/index.js +22 -35
- package/out/index.js.map +1 -1
- package/out/load.d.ts +30 -39
- package/out/load.d.ts.map +1 -1
- package/out/load.js +42 -56
- package/out/load.js.map +1 -1
- package/out/lookup.d.ts +12 -28
- package/out/lookup.d.ts.map +1 -1
- package/out/lookup.js +4 -16
- package/out/lookup.js.map +1 -1
- package/out/packaged.d.ts +24 -0
- package/out/packaged.d.ts.map +1 -0
- package/out/packaged.js +42 -0
- package/out/packaged.js.map +1 -0
- package/out/schema.d.ts +104 -97
- package/out/schema.d.ts.map +1 -1
- package/out/schema.js +37 -52
- package/out/schema.js.map +1 -1
- package/out/tools/build-artifact.d.ts +27 -0
- package/out/tools/build-artifact.d.ts.map +1 -0
- package/out/tools/build-artifact.js +44 -0
- package/out/tools/build-artifact.js.map +1 -0
- package/out/validate.d.ts +29 -50
- package/out/validate.d.ts.map +1 -1
- package/out/validate.js +12 -35
- package/out/validate.js.map +1 -1
- package/out/validation/issues.d.ts +17 -20
- package/out/validation/issues.d.ts.map +1 -1
- package/out/validation/issues.js +25 -29
- package/out/validation/issues.js.map +1 -1
- package/out/validation/references.d.ts.map +1 -1
- package/out/validation/references.js +20 -23
- package/out/validation/references.js.map +1 -1
- package/package.json +35 -76
- package/tools/build-artifact.ts +56 -0
- package/out/scripts/build-artifact.d.ts +0 -51
- package/out/scripts/build-artifact.d.ts.map +0 -1
- package/out/scripts/build-artifact.js +0 -85
- package/out/scripts/build-artifact.js.map +0 -1
package/out/compile.d.ts
CHANGED
|
@@ -3,82 +3,68 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Compiles a validated {@link GeographicModelDocument} into the runtime artifact deterministically.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* is computed. There is no second validator here, and no partial artifact on failure — a compile
|
|
11
|
-
* either produces the whole artifact or produces nothing.
|
|
8
|
+
* `parseGeographicModelDocument` performs all document validation and throws before compilation
|
|
9
|
+
* starts. A compile either returns the whole artifact or throws.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Only `isA` defines inheritance. The compiler materializes the transitive `isA` closure for each
|
|
12
|
+
* concept. It copies each ancestor's assertions onto descendants as {@link DerivedFactRecord}
|
|
13
|
+
* entries. The compiler does not close over relations marked `transitive` or `inverse`.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* 2. Every assertion an ancestor carries is materialized onto its descendants as a
|
|
19
|
-
* {@link DerivedFactRecord}, naming {@link DERIVATION_ISA_INHERITANCE} and every record the
|
|
20
|
-
* derivation read. Without this a consumer would still be traversing — the closure alone tells it
|
|
21
|
-
* which concepts to go and read, which is the traversal it was supposed to be spared.
|
|
22
|
-
*
|
|
23
|
-
* A relation declaring `transitive` or `inverse` is NOT closed over. Those fields are vocabulary
|
|
24
|
-
* describing what the relation means; materializing them is a reasoning step no executable need has
|
|
25
|
-
* asked for, and the boundary record excludes general reasoning from this package. The day one is
|
|
26
|
-
* needed it arrives as its own named derivation beside this one.
|
|
27
|
-
*
|
|
28
|
-
* Cycles never reach the derivations: `parseGeographicModelDocument` refuses a direct or indirect
|
|
29
|
-
* `isA` cycle and names the trail it followed, so a cyclic document fails as a validation error
|
|
30
|
-
* rather than as a hang. The walk below is breadth-first over a visited set regardless, which makes
|
|
31
|
-
* it total for any graph rather than for the graphs the validator happens to admit.
|
|
15
|
+
* The validator rejects `isA` cycles, but the ancestor walk also tracks visited concepts, so it
|
|
16
|
+
* terminates on any graph.
|
|
32
17
|
*/
|
|
33
18
|
import { type CompiledGeographicModel } from "#artifact";
|
|
34
19
|
/**
|
|
35
|
-
* The
|
|
36
|
-
* than on where the record sits.
|
|
20
|
+
* The `derivation` value of a fact derived by `isA` inheritance.
|
|
37
21
|
*/
|
|
38
22
|
export declare const DERIVATION_ISA_INHERITANCE = "isa-assertion-inheritance";
|
|
39
23
|
/**
|
|
40
|
-
*
|
|
24
|
+
* Reasons that compilation rejects a document that passed validation.
|
|
41
25
|
*
|
|
42
|
-
* Both
|
|
43
|
-
*
|
|
26
|
+
* Both problems concern the derived records.
|
|
27
|
+
* The validator never sees those records.
|
|
44
28
|
*/
|
|
45
29
|
export declare const CompileIssueCode: {
|
|
46
30
|
/**
|
|
47
|
-
* An inherited assertion would
|
|
48
|
-
* Emitting it would put a record in the artifact that the document validator would reject if it were authored.
|
|
31
|
+
* An inherited assertion would apply to a concept whose kind the relation's `domainKinds` excludes.
|
|
49
32
|
*/
|
|
50
33
|
readonly InheritedDomainKindMismatch: "inherited_domain_kind_mismatch";
|
|
51
34
|
/**
|
|
52
|
-
* Two derived facts
|
|
53
|
-
*
|
|
35
|
+
* Two derived facts share one identifier.
|
|
36
|
+
*
|
|
37
|
+
* This happens when an authored derived fact uses an identifier that a derivation also
|
|
38
|
+
* produces, or when authored identifiers contain the separators of the derived form.
|
|
54
39
|
*/
|
|
55
40
|
readonly DuplicateDerivedFactID: "duplicate_derived_fact_id";
|
|
56
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* A {@link CompileIssueCode} value.
|
|
44
|
+
*/
|
|
57
45
|
export type CompileIssueCode = (typeof CompileIssueCode)[keyof typeof CompileIssueCode];
|
|
58
46
|
/**
|
|
59
|
-
* One reason a document
|
|
47
|
+
* One reason that a valid document does not compile.
|
|
60
48
|
*/
|
|
61
49
|
export interface CompileIssue {
|
|
62
50
|
code: CompileIssueCode;
|
|
63
51
|
message: string;
|
|
64
52
|
}
|
|
65
53
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
54
|
+
* The error that {@link compileGeographicModel} throws.
|
|
55
|
+
* Its message lists every issue.
|
|
68
56
|
*/
|
|
69
57
|
export declare class GeographicModelCompileError extends Error {
|
|
70
58
|
readonly issues: readonly CompileIssue[];
|
|
71
59
|
constructor(issues: readonly CompileIssue[]);
|
|
72
60
|
}
|
|
73
61
|
/**
|
|
74
|
-
*
|
|
62
|
+
* Compiles an authored geographic-model document into its runtime artifact.
|
|
75
63
|
*
|
|
76
|
-
*
|
|
77
|
-
* {@link GeographicModelCompileError} with every reason if it validates but its derivations cannot be written. Nothing
|
|
78
|
-
* partial is ever returned.
|
|
64
|
+
* The artifact's tables are new sorted arrays that hold the authored records unchanged.
|
|
79
65
|
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
66
|
+
* @throws {GeographicModelValidationError} When the input is not a valid document.
|
|
67
|
+
* @throws {GeographicModelCompileError} When the document is valid but its derived facts are invalid.
|
|
82
68
|
*/
|
|
83
69
|
export declare function compileGeographicModel(input: unknown): CompiledGeographicModel;
|
|
84
70
|
//# sourceMappingURL=compile.d.ts.map
|
package/out/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../lib/compile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../lib/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAA2B,KAAK,uBAAuB,EAAgC,MAAM,WAAW,CAAA;AAc/G;;GAEG;AACH,eAAO,MAAM,0BAA0B,8BAA8B,CAAA;AAErE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;IAC5B;;OAEG;aACH,2BAA2B,EAAE,gCAAgC;IAC7D;;;;;OAKG;aACH,sBAAsB,EAAE,2BAA2B;CAC1C,CAAA;AAEV;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAEvF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IAExC,YAAY,MAAM,EAAE,SAAS,YAAY,EAAE,EAO1C;CACD;AA6MD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CA6B9E"}
|
package/out/compile.js
CHANGED
|
@@ -3,63 +3,48 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Compiles a validated {@link GeographicModelDocument} into the runtime artifact deterministically.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* is computed. There is no second validator here, and no partial artifact on failure — a compile
|
|
11
|
-
* either produces the whole artifact or produces nothing.
|
|
8
|
+
* `parseGeographicModelDocument` performs all document validation and throws before compilation
|
|
9
|
+
* starts. A compile either returns the whole artifact or throws.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Only `isA` defines inheritance. The compiler materializes the transitive `isA` closure for each
|
|
12
|
+
* concept. It copies each ancestor's assertions onto descendants as {@link DerivedFactRecord}
|
|
13
|
+
* entries. The compiler does not close over relations marked `transitive` or `inverse`.
|
|
15
14
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* 2. Every assertion an ancestor carries is materialized onto its descendants as a
|
|
19
|
-
* {@link DerivedFactRecord}, naming {@link DERIVATION_ISA_INHERITANCE} and every record the
|
|
20
|
-
* derivation read. Without this a consumer would still be traversing — the closure alone tells it
|
|
21
|
-
* which concepts to go and read, which is the traversal it was supposed to be spared.
|
|
22
|
-
*
|
|
23
|
-
* A relation declaring `transitive` or `inverse` is NOT closed over. Those fields are vocabulary
|
|
24
|
-
* describing what the relation means; materializing them is a reasoning step no executable need has
|
|
25
|
-
* asked for, and the boundary record excludes general reasoning from this package. The day one is
|
|
26
|
-
* needed it arrives as its own named derivation beside this one.
|
|
27
|
-
*
|
|
28
|
-
* Cycles never reach the derivations: `parseGeographicModelDocument` refuses a direct or indirect
|
|
29
|
-
* `isA` cycle and names the trail it followed, so a cyclic document fails as a validation error
|
|
30
|
-
* rather than as a hang. The walk below is breadth-first over a visited set regardless, which makes
|
|
31
|
-
* it total for any graph rather than for the graphs the validator happens to admit.
|
|
15
|
+
* The validator rejects `isA` cycles, but the ancestor walk also tracks visited concepts, so it
|
|
16
|
+
* terminates on any graph.
|
|
32
17
|
*/
|
|
33
18
|
import { compareByCodePoint as compareIdentifiers } from "@mailwoman/core/strings/compare";
|
|
34
19
|
import { ARTIFACT_SCHEMA_VERSION } from "#artifact";
|
|
35
20
|
import { DerivationInputKind, toConceptID, toDerivedFactID, } from "#schema";
|
|
36
21
|
import { parseGeographicModelDocument } from "#validate";
|
|
37
22
|
/**
|
|
38
|
-
* The
|
|
39
|
-
* than on where the record sits.
|
|
23
|
+
* The `derivation` value of a fact derived by `isA` inheritance.
|
|
40
24
|
*/
|
|
41
25
|
export const DERIVATION_ISA_INHERITANCE = "isa-assertion-inheritance";
|
|
42
26
|
/**
|
|
43
|
-
*
|
|
27
|
+
* Reasons that compilation rejects a document that passed validation.
|
|
44
28
|
*
|
|
45
|
-
* Both
|
|
46
|
-
*
|
|
29
|
+
* Both problems concern the derived records.
|
|
30
|
+
* The validator never sees those records.
|
|
47
31
|
*/
|
|
48
32
|
export const CompileIssueCode = {
|
|
49
33
|
/**
|
|
50
|
-
* An inherited assertion would
|
|
51
|
-
* Emitting it would put a record in the artifact that the document validator would reject if it were authored.
|
|
34
|
+
* An inherited assertion would apply to a concept whose kind the relation's `domainKinds` excludes.
|
|
52
35
|
*/
|
|
53
36
|
InheritedDomainKindMismatch: "inherited_domain_kind_mismatch",
|
|
54
37
|
/**
|
|
55
|
-
* Two derived facts
|
|
56
|
-
*
|
|
38
|
+
* Two derived facts share one identifier.
|
|
39
|
+
*
|
|
40
|
+
* This happens when an authored derived fact uses an identifier that a derivation also
|
|
41
|
+
* produces, or when authored identifiers contain the separators of the derived form.
|
|
57
42
|
*/
|
|
58
43
|
DuplicateDerivedFactID: "duplicate_derived_fact_id",
|
|
59
44
|
};
|
|
60
45
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
46
|
+
* The error that {@link compileGeographicModel} throws.
|
|
47
|
+
* Its message lists every issue.
|
|
63
48
|
*/
|
|
64
49
|
export class GeographicModelCompileError extends Error {
|
|
65
50
|
issues;
|
|
@@ -71,8 +56,8 @@ export class GeographicModelCompileError extends Error {
|
|
|
71
56
|
}
|
|
72
57
|
}
|
|
73
58
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
59
|
+
* Sort order of derivation inputs by kind.
|
|
60
|
+
* Identifiers break ties within a kind.
|
|
76
61
|
*/
|
|
77
62
|
const DERIVATION_INPUT_ORDER = [
|
|
78
63
|
DerivationInputKind.Concept,
|
|
@@ -83,30 +68,27 @@ const DERIVATION_INPUT_ORDER = [
|
|
|
83
68
|
DerivationInputKind.DerivedFact,
|
|
84
69
|
];
|
|
85
70
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
71
|
+
* Separator for internal grouping keys.
|
|
72
|
+
*
|
|
73
|
+
* Identifiers never contain `U+0000`, so distinct key tuples cannot produce the same string.
|
|
89
74
|
*/
|
|
90
75
|
const KEY_SEPARATOR = "\u0000";
|
|
91
76
|
/**
|
|
92
|
-
*
|
|
77
|
+
* Separator between country codes in a derived identifier.
|
|
93
78
|
*/
|
|
94
79
|
const COUNTRY_SEPARATOR = "+";
|
|
95
80
|
function compareByID(left, right) {
|
|
96
81
|
return compareIdentifiers(left.id, right.id);
|
|
97
82
|
}
|
|
98
83
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* Breadth-first over a visited set: each concept is expanded once, so the walk terminates on any graph and the answer
|
|
102
|
-
* does not depend on how the parents were authored. The concept itself is never in its own list — it could only get
|
|
103
|
-
* there around a cycle, and the validator refuses those before the compiler runs.
|
|
84
|
+
* Returns every concept reachable from `conceptID` through `isA`, sorted by code point.
|
|
85
|
+
* The result excludes the concept itself.
|
|
104
86
|
*/
|
|
105
87
|
function ancestorsOfConcept(conceptID, parents) {
|
|
106
88
|
const visited = new Set();
|
|
107
89
|
const frontier = [...(parents.get(conceptID) ?? [])];
|
|
108
|
-
//
|
|
109
|
-
//
|
|
90
|
+
// The array iterator also visits entries pushed during the loop.
|
|
91
|
+
// This makes the walk breadth-first.
|
|
110
92
|
for (const next of frontier) {
|
|
111
93
|
if (next === conceptID || visited.has(next))
|
|
112
94
|
continue;
|
|
@@ -127,8 +109,9 @@ function draftInputs(draft) {
|
|
|
127
109
|
});
|
|
128
110
|
}
|
|
129
111
|
/**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
112
|
+
* Builds a readable derived-fact identifier from the fact's proposition.
|
|
113
|
+
*
|
|
114
|
+
* The identifier stays stable when unrelated parts of the document change.
|
|
132
115
|
*/
|
|
133
116
|
function derivedFactID(draft) {
|
|
134
117
|
const scope = draft.countries?.length ? `:${draft.countries.join(COUNTRY_SEPARATOR)}` : "";
|
|
@@ -136,7 +119,7 @@ function derivedFactID(draft) {
|
|
|
136
119
|
return `${DERIVATION_ISA_INHERITANCE}:${draft.subject}:${relation}:${target}:${modality}${scope}`;
|
|
137
120
|
}
|
|
138
121
|
/**
|
|
139
|
-
*
|
|
122
|
+
* Returns a key for an assertion's relation and target.
|
|
140
123
|
*/
|
|
141
124
|
function edgeKey(assertion) {
|
|
142
125
|
return `${assertion.relation}${KEY_SEPARATOR}${assertion.target}`;
|
|
@@ -146,11 +129,9 @@ function draftKey(subject, assertion, countries) {
|
|
|
146
129
|
return `${subject}${KEY_SEPARATOR}${edgeKey(assertion)}${KEY_SEPARATOR}${assertion.modality}${KEY_SEPARATOR}${scope}`;
|
|
147
130
|
}
|
|
148
131
|
/**
|
|
149
|
-
*
|
|
132
|
+
* Copies each ancestor's assertions onto its descendants as derived facts.
|
|
150
133
|
*
|
|
151
|
-
* A concept
|
|
152
|
-
* authored record is the more specific one, which is what `isA` means, and re-stating the pair would put two modalities
|
|
153
|
-
* for one proposition into the artifact with no rule saying which of them holds.
|
|
134
|
+
* A concept's own assertion for a relation and target overrides every inherited assertion for that pair.
|
|
154
135
|
*/
|
|
155
136
|
function deriveInheritedFacts(concepts, closure, relations, issues) {
|
|
156
137
|
const conceptByID = new Map(concepts.map((concept) => [String(concept.id), concept]));
|
|
@@ -163,9 +144,8 @@ function deriveInheritedFacts(concepts, closure, relations, issues) {
|
|
|
163
144
|
const authored = new Set(concept.assertions.map(edgeKey));
|
|
164
145
|
for (const ancestorID of entry.ancestors) {
|
|
165
146
|
const ancestor = conceptByID.get(String(ancestorID));
|
|
166
|
-
// Validation
|
|
167
|
-
//
|
|
168
|
-
// describe a state the artifact can hold.
|
|
147
|
+
// Validation guarantees that every referenced concept and relation exists.
|
|
148
|
+
// These guards only satisfy the type checker.
|
|
169
149
|
if (!ancestor)
|
|
170
150
|
continue;
|
|
171
151
|
for (const assertion of ancestor.assertions) {
|
|
@@ -182,7 +162,7 @@ function deriveInheritedFacts(concepts, closure, relations, issues) {
|
|
|
182
162
|
});
|
|
183
163
|
continue;
|
|
184
164
|
}
|
|
185
|
-
const countries = assertion.countries?.length ? assertion.countries.toSorted(compareIdentifiers) :
|
|
165
|
+
const countries = assertion.countries?.length ? assertion.countries.toSorted(compareIdentifiers) : null;
|
|
186
166
|
const key = draftKey(concept.id, assertion, countries);
|
|
187
167
|
const existing = drafts.get(key);
|
|
188
168
|
const draft = existing ?? { subject: concept.id, assertion, countries, inputs: new Map() };
|
|
@@ -222,14 +202,12 @@ function checkDerivedIdentifiers(facts, issues) {
|
|
|
222
202
|
}
|
|
223
203
|
}
|
|
224
204
|
/**
|
|
225
|
-
*
|
|
205
|
+
* Compiles an authored geographic-model document into its runtime artifact.
|
|
226
206
|
*
|
|
227
|
-
*
|
|
228
|
-
* {@link GeographicModelCompileError} with every reason if it validates but its derivations cannot be written. Nothing
|
|
229
|
-
* partial is ever returned.
|
|
207
|
+
* The artifact's tables are new sorted arrays that hold the authored records unchanged.
|
|
230
208
|
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
209
|
+
* @throws {GeographicModelValidationError} When the input is not a valid document.
|
|
210
|
+
* @throws {GeographicModelCompileError} When the document is valid but its derived facts are invalid.
|
|
233
211
|
*/
|
|
234
212
|
export function compileGeographicModel(input) {
|
|
235
213
|
const document = parseGeographicModelDocument(input);
|
package/out/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../lib/compile.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../lib/compile.ts"],"names":[],"mappings":"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"}
|
package/out/index.d.ts
CHANGED
|
@@ -3,49 +3,36 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* and mappings from external vocabularies into world concepts.
|
|
6
|
+
* `@mailwoman/geographic-model` — the world-semantic layer: stable concepts beyond the POI
|
|
7
|
+
* vocabulary, relation definitions, activities, affordances, rule modality, source observations,
|
|
8
|
+
* derived facts, derivation provenance, deterministic compilation, plus validation.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* runtime consumer reads it through (`./lookup.ts`). All five are re-exported here and all five are
|
|
15
|
-
* reachable as curated subpaths.
|
|
10
|
+
* The authoring loader (`./load.ts`, the `./load` subpath) is deliberately not re-exported here: it is
|
|
11
|
+
* the only module in the package that touches a filesystem and belongs to the build step rather than
|
|
12
|
+
* to the consumers that read an artifact.
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
* is the only module in the package that touches a filesystem, and it belongs to the build step that
|
|
19
|
-
* produces an artifact rather than to the consumers that read one. The first authored document
|
|
20
|
-
* arrives with #1927; this entry point carries no data.
|
|
14
|
+
* Four things this package must never hold, each owned elsewhere:
|
|
21
15
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
16
|
+
* 1. The resolver owns ranking policy. It defines weights, boosts, penalties and candidate order.
|
|
17
|
+
* The resolver package also owns rank order. The neural package and `@mailwoman/core/decoder` own
|
|
18
|
+
* the decode objective. This package creates observations and leaves candidate order to the resolver.
|
|
19
|
+
* 2. A second POI vocabulary — external and curated POI categories, their containment hierarchy, the
|
|
20
|
+
* Overture-leaf translation, the query-phrase lexicon and the brand table belong to
|
|
21
|
+
* `@mailwoman/poi-taxonomy`; this package maps into those identifiers.
|
|
22
|
+
* 3. A second coverage register — dataset identity and coverage epistemics belong to
|
|
23
|
+
* `@mailwoman/core/layers`, and an expected-but-absent observation becomes negative evidence only
|
|
24
|
+
* where `supportsExclusion` permits it there.
|
|
25
|
+
* 4. Empirical affordance statistics — this package owns the stable activity and affordance identifiers.
|
|
26
|
+
* It does not own numeric values fitted against those identifiers.
|
|
24
27
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* observations; it never overrides learned interpretation.
|
|
29
|
-
* 2. **A second POI vocabulary.** External and curated POI categories, their containment
|
|
30
|
-
* hierarchy, the Overture-leaf translation, the query-phrase lexicon and the brand table all
|
|
31
|
-
* belong to `@mailwoman/poi-taxonomy`. This package maps INTO those identifiers.
|
|
32
|
-
* 3. **A second coverage register.** Dataset identity and coverage epistemics belong to
|
|
33
|
-
* `@mailwoman/core/layers`. An expected-but-absent observation becomes negative evidence only
|
|
34
|
-
* where `supportsExclusion` permits it there.
|
|
35
|
-
* 4. **Empirical affordance statistics.** #1683 fits those. This package owns the stable
|
|
36
|
-
* activity and affordance identifiers they are fitted against, and nothing numeric about them.
|
|
37
|
-
*
|
|
38
|
-
* `@mailwoman/core` must not depend on this package. Core ships the pipeline contract and roughly
|
|
39
|
-
* 9 MB of reference data to every consumer, so a world-semantics dependency there is one every
|
|
40
|
-
* drop-in API inherits without asking for it. Reversing that direction is an explicit amendment to
|
|
41
|
-
* the boundary record, not a convenience during implementation.
|
|
42
|
-
*
|
|
43
|
-
* Boundary record: `docs/superpowers/specs/2026-08-26-geographic-model-boundaries.md` (#1917).
|
|
44
|
-
* Program parent: #1916.
|
|
28
|
+
* `@mailwoman/core` must not depend on this package: core ships the pipeline interface and roughly
|
|
29
|
+
* 9 MB of reference data to every consumer, so a world-semantics dependency there is one every
|
|
30
|
+
* drop-in API inherits without asking.
|
|
45
31
|
*/
|
|
46
32
|
export * from "#artifact";
|
|
47
33
|
export * from "#compile";
|
|
48
34
|
export * from "#lookup";
|
|
49
35
|
export * from "#schema";
|
|
50
36
|
export * from "#validate";
|
|
37
|
+
export { type ValidationIssue, ValidationIssueCode } from "#validation/issues";
|
|
51
38
|
//# sourceMappingURL=index.d.ts.map
|
package/out/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,KAAK,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA"}
|
package/out/index.js
CHANGED
|
@@ -3,49 +3,36 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* and mappings from external vocabularies into world concepts.
|
|
6
|
+
* `@mailwoman/geographic-model` — the world-semantic layer: stable concepts beyond the POI
|
|
7
|
+
* vocabulary, relation definitions, activities, affordances, rule modality, source observations,
|
|
8
|
+
* derived facts, derivation provenance, deterministic compilation, plus validation.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* runtime consumer reads it through (`./lookup.ts`). All five are re-exported here and all five are
|
|
15
|
-
* reachable as curated subpaths.
|
|
10
|
+
* The authoring loader (`./load.ts`, the `./load` subpath) is deliberately not re-exported here: it is
|
|
11
|
+
* the only module in the package that touches a filesystem and belongs to the build step rather than
|
|
12
|
+
* to the consumers that read an artifact.
|
|
16
13
|
*
|
|
17
|
-
*
|
|
18
|
-
* is the only module in the package that touches a filesystem, and it belongs to the build step that
|
|
19
|
-
* produces an artifact rather than to the consumers that read one. The first authored document
|
|
20
|
-
* arrives with #1927; this entry point carries no data.
|
|
14
|
+
* Four things this package must never hold, each owned elsewhere:
|
|
21
15
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
16
|
+
* 1. The resolver owns ranking policy. It defines weights, boosts, penalties and candidate order.
|
|
17
|
+
* The resolver package also owns rank order. The neural package and `@mailwoman/core/decoder` own
|
|
18
|
+
* the decode objective. This package creates observations and leaves candidate order to the resolver.
|
|
19
|
+
* 2. A second POI vocabulary — external and curated POI categories, their containment hierarchy, the
|
|
20
|
+
* Overture-leaf translation, the query-phrase lexicon and the brand table belong to
|
|
21
|
+
* `@mailwoman/poi-taxonomy`; this package maps into those identifiers.
|
|
22
|
+
* 3. A second coverage register — dataset identity and coverage epistemics belong to
|
|
23
|
+
* `@mailwoman/core/layers`, and an expected-but-absent observation becomes negative evidence only
|
|
24
|
+
* where `supportsExclusion` permits it there.
|
|
25
|
+
* 4. Empirical affordance statistics — this package owns the stable activity and affordance identifiers.
|
|
26
|
+
* It does not own numeric values fitted against those identifiers.
|
|
24
27
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* observations; it never overrides learned interpretation.
|
|
29
|
-
* 2. **A second POI vocabulary.** External and curated POI categories, their containment
|
|
30
|
-
* hierarchy, the Overture-leaf translation, the query-phrase lexicon and the brand table all
|
|
31
|
-
* belong to `@mailwoman/poi-taxonomy`. This package maps INTO those identifiers.
|
|
32
|
-
* 3. **A second coverage register.** Dataset identity and coverage epistemics belong to
|
|
33
|
-
* `@mailwoman/core/layers`. An expected-but-absent observation becomes negative evidence only
|
|
34
|
-
* where `supportsExclusion` permits it there.
|
|
35
|
-
* 4. **Empirical affordance statistics.** #1683 fits those. This package owns the stable
|
|
36
|
-
* activity and affordance identifiers they are fitted against, and nothing numeric about them.
|
|
37
|
-
*
|
|
38
|
-
* `@mailwoman/core` must not depend on this package. Core ships the pipeline contract and roughly
|
|
39
|
-
* 9 MB of reference data to every consumer, so a world-semantics dependency there is one every
|
|
40
|
-
* drop-in API inherits without asking for it. Reversing that direction is an explicit amendment to
|
|
41
|
-
* the boundary record, not a convenience during implementation.
|
|
42
|
-
*
|
|
43
|
-
* Boundary record: `docs/superpowers/specs/2026-08-26-geographic-model-boundaries.md` (#1917).
|
|
44
|
-
* Program parent: #1916.
|
|
28
|
+
* `@mailwoman/core` must not depend on this package: core ships the pipeline interface and roughly
|
|
29
|
+
* 9 MB of reference data to every consumer, so a world-semantics dependency there is one every
|
|
30
|
+
* drop-in API inherits without asking.
|
|
45
31
|
*/
|
|
46
32
|
export * from "#artifact";
|
|
47
33
|
export * from "#compile";
|
|
48
34
|
export * from "#lookup";
|
|
49
35
|
export * from "#schema";
|
|
50
36
|
export * from "#validate";
|
|
37
|
+
export { ValidationIssueCode } from "#validation/issues";
|
|
51
38
|
//# sourceMappingURL=index.js.map
|
package/out/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAwB,mBAAmB,EAAE,MAAM,oBAAoB,CAAA"}
|