Document the named person and address picks, revise the address decision, and close item 3
This commit is contained in:
@@ -94,7 +94,7 @@ In [docs/decisions.md](docs/decisions.md):
|
||||
- A country's postal codes and streets are siblings under its locality
|
||||
- A locale's `address` reads its country's `geo` tree, so a locale folder is no data set on its own
|
||||
- The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more
|
||||
- A locale's `address` restates its country record's format
|
||||
- A locale's `address` binds its country's record once and prints it whole
|
||||
- A postort's kommun comes from its name, its tätort or its codes, never from distance
|
||||
- A highway designation is not a street, and a US postal code belongs to the place holding most of its land inside places
|
||||
- `--list` stays a plain list of paths
|
||||
@@ -119,4 +119,4 @@ In [docs/decisions.md](docs/decisions.md):
|
||||
- `List` advertises direct descents only
|
||||
- A path draws through its compiled steps
|
||||
- A name lives in the category binding it, or in the repeat binding it, and is drawn on its first read
|
||||
- comprehension floor: every dimension and the overall at 7.0 or above; items 71, 3, 4 and 90 ship with no scoring run, and item 5 scores them
|
||||
- comprehension floor: every dimension and the overall at 7.0 or above; items 71, 4 and 90 ship with no scoring run, and item 5 scores them
|
||||
|
||||
+10
-9
@@ -69,9 +69,10 @@ replacement, and each removed path, column or flag.
|
||||
- `geo.SE` and `geo.US`: five linked tables per country, `region`, `municipality`,
|
||||
`locality`, `postal-code` and `street`, weighted by population and address counts
|
||||
and built from SCB, GeoNames, Trafikverket NVDB and the US Census Bureau, and an
|
||||
`address` record over one consistent draw of them. `sv_SE.address` and
|
||||
`en_US.address` read those records, so `en_US.address.street` no longer carries
|
||||
`name` and `suffix`, and a locale folder loads only beside `geo`.
|
||||
`address` record binding one street and reading its locality, postal code and region
|
||||
through it. `sv_SE.address` and `en_US.address` bind those records once, so
|
||||
`en_US.address.street` no longer carries `name` and `suffix`, and a locale folder
|
||||
loads only beside `geo`.
|
||||
- `{date(from,to,'layout')}` and `{time('layout')}`: a second between two days, or
|
||||
within one, in a single-quoted Go layout, drawn in UTC; `from` may equal `to`.
|
||||
`sv_SE.date`, `en_US.date`, `sv_SE.time` and `en_US.time` render through them, so
|
||||
@@ -80,12 +81,12 @@ replacement, and each removed path, column or flag.
|
||||
`{date(…,'2006')}`. `misc.datetime` is an RFC 3339 instant.
|
||||
- `sex`, `first-name` and `last-name` tables in `sv_SE` and `en_US`, weighted by
|
||||
bearers from SCB, the SSA and the Census Bureau; `first-name` links to `sex`, and a
|
||||
name both sexes carry is a row under each. `person` reads them, so its columns are
|
||||
`first`, `last`, `prefix` and `sex`; `person.femalefirst` and `person.malefirst` are
|
||||
no longer paths — draw `sex[f].first-name` and `sex[m].first-name` instead.
|
||||
`en_US.title` links to `sex` as well, so `en_US.person.prefix` draws `Mr` or `Ms`
|
||||
without contradicting the record's `sex`; `sv_SE.title` is an unsexed table of the
|
||||
same shape.
|
||||
name both sexes carry is a row under each. `person` binds one first name and reads
|
||||
its sex through it, and its columns are `first`, `last`, `prefix` and `sex`;
|
||||
`person.femalefirst` and `person.malefirst` are no longer paths — draw
|
||||
`sex[f].first-name` and `sex[m].first-name` instead. `en_US.title` links to `sex` as
|
||||
well, so `en_US.person.prefix` draws `Mr` or `Ms` without contradicting the record's
|
||||
`sex`; `sv_SE.title` is an unsexed table of the same shape.
|
||||
- `sv_SE.personnummer` and `sv_SE.samordningsnummer`, Skatteverket's test series
|
||||
from a `sv_SE.birth-number` table under `sex`, in place of `sv_SE.ssn`, whose
|
||||
`ssn.mmdd`, `ssn.mmdd.m` and `ssn.mmdd.d` go with it. `en_US.ssn` now draws the
|
||||
|
||||
@@ -231,15 +231,15 @@ code for a sovereign one, or for one the register names no state for.
|
||||
SSA and the Census Bureau. `first-name` links to `sex`, so `sv_SE.sex[f].first-name`
|
||||
draws a woman's name, and a name both sexes carry is a row under each, so
|
||||
`en_US.sex[m].first-name[Taylor]` names the one a `first-name[Taylor]` alone cannot.
|
||||
`person` reads one draw of the three, so its `first` and `sex` columns agree, and so
|
||||
does a `personnummer` in the same render: its birth number, `sv_SE.birth-number`
|
||||
under `sex`, is Skatteverket's test series, 238 for a woman and 239 for a man, which no
|
||||
real person is ever given. `en_US.title` links to `sex` too, so a person's prefix
|
||||
never contradicts it.
|
||||
`person` binds one first name and reads its sex through it, `{.first-name as n}` and
|
||||
`{n..sex.name}`, so its `first` and `sex` columns agree. `en_US.title` links to `sex`
|
||||
too, so a person's prefix never contradicts it. A `personnummer`'s birth number,
|
||||
`sv_SE.birth-number` under `sex`, is Skatteverket's test series, 238 for a woman and 239
|
||||
for a man, which no real person is ever given.
|
||||
|
||||
A person of a chosen sex is assembled from the tables — `sex[f].first-name` beside
|
||||
`last-name` — while a shipped `personnummer` agrees with the sex its own render
|
||||
*drew*, not with one a path selects. That test series is also small: a personnummer
|
||||
`last-name` — while a shipped `personnummer` draws its own sex, apart from any `person`
|
||||
beside it. That test series is also small: a personnummer
|
||||
is one of about 70,000 values, a day in 1930–2025 against the two birth numbers, so a
|
||||
fixture past a few hundred rows repeats one and a `UNIQUE` column needs a category of
|
||||
your own. `sv_SE.date` and `en_US.date` are uniform over 1970-01-01 to 2029-12-31,
|
||||
@@ -249,8 +249,9 @@ your own. `sv_SE.date` and `en_US.date` are uniform over 1970-01-01 to 2029-12-3
|
||||
inside a sex.
|
||||
|
||||
A `geo` folder holds one tree per country under its alpha-2 code: five
|
||||
[linked tables](#linked-tables) named alike, and an `address` record over one
|
||||
consistent draw of them, which the locale's `address` reads.
|
||||
[linked tables](#linked-tables) named alike, and an `address` record binding one street and
|
||||
reading its locality, postal code and region through it, which the locale's `address`
|
||||
binds once and prints whole.
|
||||
|
||||
| Table | `geo.SE` | `geo.US` | Weight |
|
||||
|-------|----------|----------|--------|
|
||||
@@ -743,8 +744,8 @@ anywhere: if `n`'s category has the format `{w}-{w}`, it draws `w` twice, and `{
|
||||
|
||||
A name is a pick of its own: `{t.name}` and `{/misc.territory.name}` beside it are two draws. A
|
||||
reference path the picked category reads is still held for the render as usual, so two names
|
||||
bound to `sv_SE.person`, whose fields read `{.first-name.name}` and `{.last-name.name}`, print
|
||||
the same first and last name unless their reads sit in two [draw groups](#draw-group).
|
||||
bound to `sv_SE.person`, whose `last` reads `{.last-name.name}`, print the same last name unless
|
||||
their reads sit in two [draw groups](#draw-group).
|
||||
|
||||
A name is drawn on its first read, and lives in the category binding it: any field of the
|
||||
category may read it, and a record's columns read one pick. Each render of the category picks
|
||||
|
||||
+9
-10
@@ -657,17 +657,16 @@ trees.
|
||||
|
||||
Withdrawn by the maintainer on 2026-10-03; `todo.md` item 78 replaces it.
|
||||
|
||||
## A locale's `address` restates its country record's format
|
||||
## A locale's `address` binds its country's record once and prints it whole
|
||||
|
||||
2026-09-18, Lilleman auf Larv.
|
||||
2026-09-18, Lilleman auf Larv; revised 2026-10-05. Goal 4.1.
|
||||
|
||||
A record cannot read another whole and keep its columns, so `sv_SE.address` names the
|
||||
same four columns as `geo.SE.address`, each a reference into it, and the format appears
|
||||
twice; a column is spelled the same in both, `street-number`, so the two never disagree
|
||||
on a name.
|
||||
|
||||
`todo.md` item 3 revises this decision: the locale `address` prints `{a}` whole, so the
|
||||
format appears once.
|
||||
same four columns as `geo.SE.address`. Each reads one name, `{/geo.SE.address as a}`,
|
||||
which the format prints whole as `{a}`, so the country's format is written once and
|
||||
every column describes the address printed. A column is spelled the same in both,
|
||||
`street-number`, so the two never disagree on a name. Valid while a record cannot read
|
||||
another whole and keep its columns.
|
||||
|
||||
## A postort's kommun comes from its name, its tätort or its codes, never from distance
|
||||
|
||||
@@ -927,6 +926,6 @@ the render.
|
||||
|
||||
Valid while names are read only inside the category binding them.
|
||||
|
||||
## comprehension floor: every dimension and the overall at 7.0 or above; items 71, 3, 4 and 90 ship with no scoring run, and item 5 scores them
|
||||
## comprehension floor: every dimension and the overall at 7.0 or above; items 71, 4 and 90 ship with no scoring run, and item 5 scores them
|
||||
|
||||
2026-10-04, Lilleman auf Larv. Serves goal 3. The nine-seat panels in `todo.md`'s git history, 2026-09-22 to 2026-09-30, held the score between 5.2 and 6.1, with Locality lowest at every seat, and the hardest units are the draw fences item 4 deletes. Items 4 and 90 delete or move what the earlier items touch, so a scoring run before item 90 merges would score code about to go. Items 71, 3, 4 and 90 are the round `AGENTS.md`'s comprehension rule lets merge below the floor, a restructure the maintainer approved. No scoring run or panel runs until item 5, which runs the nine-seat panel and larv-review's scoring run. The scoring run writes this entry's first scores. Valid until item 5 runs.
|
||||
2026-10-04, Lilleman auf Larv. Serves goal 3. The nine-seat panels in `todo.md`'s git history, 2026-09-22 to 2026-09-30, held the score between 5.2 and 6.1, with Locality lowest at every seat, and the hardest units are the draw fences item 4 deletes. Items 4 and 90 delete or move what the earlier items touch, so a scoring run before item 90 merges would score code about to go. Items 71, 4 and 90 finish the round `AGENTS.md`'s comprehension rule lets merge below the floor, a restructure the maintainer approved. No scoring run or panel runs until item 5, which runs the nine-seat panel and larv-review's scoring run. The scoring run writes this entry's first scores. Valid until item 5 runs.
|
||||
|
||||
@@ -70,7 +70,6 @@
|
||||
| 61 | 0.1.0 | | **Add a locale, with its `geo/` tree, for each of the ten most-spoken languages and each Nordic country.** | 4 | 9 | 9 | 10 | 2.1 | 30.8 |
|
||||
| 16 | 0.1.0 | | **Add the remaining locale categories: company, phone, finance, vehicle, words.** | 3 | 8 | 8 | 9 | 2.2, 15 | 28.1 |
|
||||
| 15 | 0.1.0 | | **Add the remaining `misc` tables and templates, one row of its detail's table per chunk.** | 3 | 9 | 8 | 8 | 2, 15, 14 | 25.9 |
|
||||
| 3 | 0.1.0 | decision | **Rewrite the shipped categories so facts that belong together come from one named pick.** | 5 | 5 | 8 | 9 | 4.1 | 25.0 |
|
||||
| 4 | 0.1.0 | decision | **Draw every `{…}` afresh, keep a pick only by name, and delete `drawGroup` with the fences that held picks implicitly.** | 7 | 8 | 8 | 10 | 5.2, 4.1 | 24.0 |
|
||||
| 57 | 0.1.0 | | **Rewrite `CHANGELOG.md`'s `[Unreleased]` as what v0.1.0 holds.** | 1 | 2 | 6 | 6 | 1.1 | 22.5 |
|
||||
| 34 | 0.1.0 | | **Add `{isin()}`, `{cusip()}`, `{aba()}` and `{vin()}`.** | 2 | 4 | 6 | 7 | 4 | 20.9 |
|
||||
@@ -225,16 +224,9 @@ Shape: T = table, t = template, c = choice.
|
||||
| `lorem`, `hacker`, `hipster`, `catchphrase`, `buzzword`, `quote` | T/c | lorem ipsum, LLM-written | — |
|
||||
| `direction`, `continent`, `ulid` | c/t | — | — |
|
||||
|
||||
### 3. Rewrite the shipped categories so facts that belong together come from one named pick.
|
||||
|
||||
- `sv_SE.person` and `en_US.person` bind the first name and read sex and title through it: `"first": "{.first-name as n}{n.name}"`, `"sex": "{n..sex.name}"`, a title from `{n..sex.title.name}`.
|
||||
- `geo.SE.address` and `geo.US.address` bind the street and read locality, postal code and region through it; the locale `address` categories bind `/geo.XX.address` once. They print it whole as `{a}`, so the country record's format appears once; revise the decision "A locale's `address` restates its country record's format".
|
||||
- Every shipped value must still pass its consumer's check before and after item 4.
|
||||
- Re-pin seeded output in its own commit.
|
||||
|
||||
### 4. Draw every `{…}` afresh, keep a pick only by name, and delete `drawGroup` with the fences that held picks implicitly.
|
||||
|
||||
- Needs items 3 and 71. After it, `{/person} ({/person.first})` renders two people, as does `{/sv_SE.person as a}{/sv_SE.person as b}{a} & {b}`. `{w} {uppercase(w)}` renders `b G` where `w` is a choice of letters, and `{/city.name}, {/country[SE].name}` and `{/country[SE].name} / {/country[NO].name}` both load.
|
||||
- Needs item 71. After it, `{/person} ({/person.first})` renders two people, as does `{/sv_SE.person as a}{/sv_SE.person as b}{a} & {b}`. `{w} {uppercase(w)}` renders `b G` where `w` is a choice of letters, and `{/city.name}, {/country[SE].name}` and `{/country[SE].name} / {/country[NO].name}` both load.
|
||||
- Deletes the token-order rules (`drawsApart`, `readFold`, `branches`, the pairwise replay), the expansion hold fence, `drawGroup`, the own-family fence and the cell-reference fences, and revises the decisions that point here. The remaining draw checks are names, paths through names, cycles and the repeat cap.
|
||||
- Fixes on the way: `{/sel}|{/sel}` panics out of `Fake` today where two draws land on rows whose cells select different rows of another table; it must render.
|
||||
- Rewrites the README's References, Draw group, Correlated fields, Linked tables, Names and "One draw, one spelling" sections; the Linked tables section says which pick's weights govern a family, since the bound row decides.
|
||||
@@ -251,7 +243,7 @@ Nothing has shipped, so "no longer paths", "where it used to fail" and "where it
|
||||
|
||||
### 5. Run the nine-seat comprehension panel after the draw restructure, and file what it names.
|
||||
|
||||
Needs items 71, 3, 4 and 90. The decision "comprehension floor: every dimension and the overall at 7.0 or above; items 71, 3, 4 and 90 ship with no scoring run, and item 5 scores them" suspends every scoring run and panel until then.
|
||||
Needs items 71, 4 and 90. The decision "comprehension floor: every dimension and the overall at 7.0 or above; items 71, 4 and 90 ship with no scoring run, and item 5 scores them" suspends every scoring run and panel until then.
|
||||
|
||||
### 71. Accept a name as a `calc` operand, so `{calc(n * 2)}` computes from the pick `{n}` prints.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user