colregs 0.2.4 → 0.3.1
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/PROVENANCE.md +3 -3
- package/README.md +19 -10
- package/data/applicability.json +219 -244
- package/data/corpora.json +41 -0
- package/data/editions.json +27 -0
- package/data/facts.json +4 -4
- package/data/geometry.json +8 -8
- package/data/i18n/en.json +27 -0
- package/data/i18n/fi.json +25 -0
- package/data/images.json +32 -32
- package/data/operations.json +79 -0
- package/data/rules.json +176 -599
- package/data/text/intl/2016/en-US.uscg.json +877 -0
- package/data/text/intl/2016/es.boe.json +23 -0
- package/data/text/intl/2016/fi.finlex.json +22 -0
- package/data/text/us/inland/2014/en-US.ecfr.json +22 -0
- package/data/version.json +1 -1
- package/docs/adr/0001-name-and-jurisdiction-model.md +42 -2
- package/docs/adr/0003-language-as-a-dimension.md +8 -7
- package/docs/adr/0006-json-schema-and-identifier-diff.md +2 -0
- package/docs/adr/0011-api-shape.md +1 -1
- package/docs/adr/0012-trace-and-rule2-departure-api.md +3 -4
- package/docs/adr/0013-corpus-files-with-editions.md +70 -0
- package/docs/adr/0014-engine-interface-owned-by-colregs.md +103 -0
- package/docs/adr/0015-rule-ids-are-paragraph-keys.md +191 -0
- package/docs/budgets.json +17 -17
- package/docs/gates.json +3 -3
- package/docs/identifiers.md +49 -51
- package/docs/maritime-sources.md +58 -0
- package/docs/normative-language.md +103 -0
- package/docs/part-b-invariants.md +31 -29
- package/docs/requirements.md +118 -97
- package/docs/timeline.md +102 -0
- package/docs/verification/2026-09-09-text-slug-straw-man.md +3 -2
- package/fixtures/applicability-fixtures.json +190 -190
- package/fixtures/situation-fixtures.json +287 -287
- package/package.json +1 -1
- package/schema/applicability-fixtures.schema.json +4 -13
- package/schema/applicability.schema.json +27 -27
- package/schema/conduct-evaluation.schema.json +135 -0
- package/schema/corpora.schema.json +68 -0
- package/schema/corpus.schema.json +329 -0
- package/schema/display-evaluation.schema.json +146 -0
- package/schema/editions.schema.json +47 -0
- package/schema/encounter-evaluation.schema.json +109 -0
- package/schema/evaluation.schema.json +149 -0
- package/schema/fact-record.schema.json +30 -0
- package/schema/i18n-catalog.schema.json +47 -0
- package/schema/operations.schema.json +124 -0
- package/schema/rule2-departure-finding.schema.json +72 -0
- package/schema/rule2-departure-model.schema.json +159 -0
- package/schema/rules.schema.json +20 -90
- package/schema/situation-fixtures.schema.json +10 -146
- package/schema/situation.schema.json +72 -0
- package/schema/trace.schema.json +33 -0
- package/data/deprecated-identifiers.json +0 -7
- package/schema/deprecated-identifiers.schema.json +0 -29
package/PROVENANCE.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Everything in this package is transcribed or copied from US Government
|
|
4
4
|
publications. Nothing here is authoritative: consult the published rules.
|
|
5
5
|
|
|
6
|
-
## Rule text — `data/
|
|
6
|
+
## Rule text — `data/text/intl/2016/en-US.uscg.json`
|
|
7
7
|
|
|
8
8
|
- **Source:** USCG Navigation Center, *Navigation Rules, International —
|
|
9
9
|
Inland* (amalgamated), <https://www.navcen.uscg.gov/navigation-rules-amalgamated>
|
|
@@ -16,8 +16,8 @@ publications. Nothing here is authoritative: consult the published rules.
|
|
|
16
16
|
- **Rights:** a work of the US Government, not subject to copyright in the
|
|
17
17
|
United States (17 U.S.C. 105).
|
|
18
18
|
- **Known hole:** Rule 24(g)(i) is absent from the source page. Rather than
|
|
19
|
-
reconstruct it from memory,
|
|
20
|
-
|
|
19
|
+
reconstruct it from memory, the corpus records it under `gaps` and carries
|
|
20
|
+
no text for it; the skeleton still has the path. 24(g) covers inconspicuous, partly submerged tows and
|
|
21
21
|
is outside the applicability table in this release.
|
|
22
22
|
- **Withheld text is not a gap.** A `gaps` entry is a paragraph we could not
|
|
23
23
|
obtain. A paragraph with `text_status: withheld` is one we hold but may not
|
package/README.md
CHANGED
|
@@ -26,13 +26,15 @@ See a [live demo](https://mark-brannan.github.io/searoom/) of searoom and the co
|
|
|
26
26
|
> by the published rules.
|
|
27
27
|
|
|
28
28
|
```text
|
|
29
|
-
data/rules.json
|
|
29
|
+
data/rules.json the skeleton: paragraph paths, rule numbers, jurisdictions -- no text
|
|
30
|
+
data/editions.json which edition of which instrument each jurisdiction is on
|
|
31
|
+
data/text/ rule text, one corpus per edition x language x source
|
|
32
|
+
data/corpora.json index of those corpora and how much each covers
|
|
30
33
|
data/lights.json the six Rule 21 lights: colour, arc, Rule 22 range
|
|
31
34
|
data/facts.json the fact record, and how to decode SignalK navigation.state
|
|
32
35
|
data/applicability.json predicate -> lights, each entry also carrying modality, citation, jurisdiction
|
|
33
36
|
data/geometry.json Annex I: heights, spacings, colour, intensity
|
|
34
37
|
data/images.json every image, its source, and what it illustrates
|
|
35
|
-
data/deprecated-identifiers.json retired identifiers: what they denoted, when, and their replacement
|
|
36
38
|
images/ 38 USCG diagrams + 5 arc GIFs
|
|
37
39
|
fixtures/ fact records and the entries that apply to them
|
|
38
40
|
```
|
|
@@ -59,7 +61,10 @@ mooring buoy, lives only under `us/inland`
|
|
|
59
61
|
## The layers
|
|
60
62
|
|
|
61
63
|
**Rule text.** Verbatim, keyed by *paragraph path*, like `27(a)(i)`, because
|
|
62
|
-
the paragraph is the unit you actually cite.
|
|
64
|
+
the paragraph is the unit you actually cite. The paths live in a
|
|
65
|
+
language-neutral skeleton; the words live in corpora, one per edition,
|
|
66
|
+
language and source, each with its own provenance and legal tier. A mixed
|
|
67
|
+
rendering across corpora is never a single authoritative edition. Where a licence bars republishing
|
|
63
68
|
a jurisdiction's words, the paragraph is still modelled and its text withheld
|
|
64
69
|
rather than paraphrased — evaluation never reads the text.
|
|
65
70
|
|
|
@@ -76,21 +81,22 @@ loses.
|
|
|
76
81
|
|
|
77
82
|
**Applicability entries.** Each is a predicate over facts, a set of lights or
|
|
78
83
|
references to other entries, a modality, a citation, and a jurisdiction. Every
|
|
79
|
-
entry has an id (`25b`, `
|
|
84
|
+
entry has an id (`rule:25b`, `rule:27a_iii`) a consumer can point at.
|
|
80
85
|
|
|
81
|
-
**Identifiers.**
|
|
82
|
-
|
|
86
|
+
**Identifiers.** Paragraph paths carry no prefix, because the path *is* the
|
|
87
|
+
citation. Every other id names its namespace: `rule:30a`,
|
|
83
88
|
`light:masthead`, `fact:activity`, `activity:nuc`, `rel:in_lieu_of`. Every
|
|
84
|
-
identifier is immutable
|
|
85
|
-
|
|
89
|
+
identifier is immutable from 1.0.0; before then it may be renamed or
|
|
90
|
+
discarded outright, and the deprecation registry is absent. See
|
|
86
91
|
[`docs/identifiers.md`](docs/identifiers.md).
|
|
87
92
|
|
|
88
93
|
## Design
|
|
89
94
|
|
|
90
95
|
Requirements-first: sessions work against the numbered requirements in
|
|
91
96
|
[`docs/requirements.md`](docs/requirements.md) and decisions live in
|
|
92
|
-
[`docs/adr/`](docs/adr/) rather than being argued again
|
|
93
|
-
|
|
97
|
+
[`docs/adr/`](docs/adr/) rather than being argued again; the amendment and
|
|
98
|
+
national-adoption history is in [`docs/timeline.md`](docs/timeline.md). Four
|
|
99
|
+
ideas carry most of it.
|
|
94
100
|
|
|
95
101
|
**The paragraph is the unit.** Rule text, citations and composition all key
|
|
96
102
|
on the paragraph path. Citation unit and composition unit turn out to be the
|
|
@@ -171,6 +177,9 @@ both vessels give-way.
|
|
|
171
177
|
`fixtures/applicability-fixtures.json` and `fixtures/situation-fixtures.json`
|
|
172
178
|
are the cross-implementation contract: an implementation in any language
|
|
173
179
|
should reproduce those exactly.
|
|
180
|
+
[`data/operations.json`](data/operations.json) names the verbs an engine
|
|
181
|
+
implements and binds each to its input schema, its result schema and the
|
|
182
|
+
fixture file that exercises it ([ADR 0014](docs/adr/0014-engine-interface-owned-by-colregs.md)).
|
|
174
183
|
|
|
175
184
|
## Provenance and licence
|
|
176
185
|
|