Skip to content

De-jargon-ify - #22

Merged
imnasnainaec merged 10 commits into
mainfrom
docs/terminology-alignment
Aug 12, 2026
Merged

De-jargon-ify#22
imnasnainaec merged 10 commits into
mainfrom
docs/terminology-alignment

Conversation

@imnasnainaec

@imnasnainaec imnasnainaec commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Audit file used for most of these changes is added for reference in the PR's first commit (2fb8f53) and immediately removed to stay out of the final squash-merge.


Devin review: https://app.devin.ai/review/sillsdev/python-sil-lift/pull/22


This change is Reviewable

imnasnainaec and others added 7 commits August 7, 2026 09:56
Inventories every technical, sophisticated, or jargony word and phrase in
the Python comments and docstrings and in the Markdown outside `.claude/`,
with per-file occurrence counts, an external reference for each term, and a
keep-or-change verdict.

Each term is also counted in FieldWorks, libpalaso, and this project's
design repo, because precedent in the C# LIFT tooling is the deciding
factor: `residue`, `POS`, `sanity`, `spurious`, `surface`, `bail out`,
`pump`, `plumbing`, `safety net`, and `MDF` all turn out to be the
ecosystem's own vocabulary, while `slot`, `anchor`, `matrix`, and `twin`
already mean something else there.

The file is for review only and is removed again in the next commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
It is a working document, not a deliverable: the repo ships no prose about
its own prose. The findings it records are applied to the comments,
docstrings, and documentation in the commits that follow, which is where
they belong.

Keeping the file in its own pair of commits leaves it readable in review
while ensuring a squashed merge adds nothing to the tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
FieldWorks stores content that does not map onto its model in a
`<lift-residue>` blob held in a `LiftResidue` field, and libpalaso's LIFT
builder describes the same mechanism as putting content "in the xml residue
for round-tripping". This package already used the word; it now uses the
ecosystem's qualified form on first mention in each file, and `_extras`
cites `LiftResidue` so a FieldWorks developer can connect the two.

The qualifier is load-bearing rather than decorative. Bare "residue" in
FieldWorks means the `import-residue` field — a user-visible LIFT field
recording what a standard format import could not place — and FieldWorks has
code that moves content from one to the other precisely because they differ.
That field appears in this repo's own AllFLExFields fixture, asserted in
`test_reader`, where a comment now marks the distinction.

Also drops two metaphors from the same sentences: the `Extras` container is
no longer a "bucket", and streaming "has no byte-passthrough layer" becomes
"reuses no source bytes".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`_scan` located each root child's "byte span", which collided with LIFT's
own `<span>` element for inline markup. Both meanings were live in one
file: `_writer` had `_span_el(span: Span)` a few hundred lines above
`for span in source.children`, and `_reader` built `range_spans` in one
function and `span = Span()` in another. `ChildSpan` is now `ChildRegion`
and every local follows, so `span` means the LIFT element and nothing else.

The bytes between those regions were called the "matrix", a coined sense
with no external meaning — in FieldWorks the word is only ever a comparison
table. They are now described as what they are: the bytes between and
around the top-level regions, copied verbatim. `_slot_bytes` becomes
`_fit_between_regions`, which says what it does rather than naming a slot in
a matrix that no longer exists.

Two neighboring metaphors go with them: chunks are no longer "topped up" but
have a missing newline appended, and without it they "run into" rather than
"glue" their neighbor. The "passthrough layer" and "passthrough assembly"
become plain byte reuse; "passthrough" on its own is kept where it reads
well, since bytes really do pass through untouched.

No behavior change: identical bytes in, identical bytes out.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A pass over wording that named a thing after a metaphor rather than after
itself. None of these terms appear in FieldWorks or libpalaso in the sense
used here, so a reader coming from the C# LIFT tooling had nothing to look
up:

- `O(one entry) memory` is not well-formed big-O — the notation takes an
  input-size variable, not a quantity. It becomes "one entry in memory at a
  time", which the streaming guide already said.
- `the extensible bundle` / `the extensibility outlier` become extensible
  fields and the extensibility exception. "Extensible" itself stays: it is
  the LIFT grammar's own pattern name, used 269 times in libpalaso.
- `scope pillar` becomes "every major capability", and `LiftTools-style`
  becomes "in the spirit of LiftTools" — a suffix compound assumed the reader
  knew the product.
- `LiftSorter-informed` becomes "based on LiftSorter's rules", and the two
  "strengthenings" and one "narrowing" become stricter and looser.
- `dangling-by-design` becomes "ones FLEx writes knowing they will not
  resolve". Bare "dangling" stays; it is standard.
- `vouch for` and `judged` become confirm and checked: ranges and hrefs do
  not hold opinions.
- `hoisted` becomes "moved" — in programming, hoisting is what a compiler
  does to declarations.
- `sort . sort = sort` becomes "sorting twice changes nothing"; the word for
  that, idempotent, is used elsewhere in the same suite.
- `fixpoint` becomes stability, `fork` becomes "split in two", `colocated`
  becomes "in the same folder", and a re-emit `anchor` becomes the recorded
  position it always was.

`_read_prologue` becomes `_read_header`. It read up to the header, while
`_scan` uses "prolog" for the XML spec's meaning — everything before the root
element. Two near-identical words for two different things, one codebase.

The C# `oracle` keeps its name, which is a real testing term, but now says
once what it means.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Several abbreviations were never spelled out anywhere in the file that used
them, and two of them are ambiguous outside this project:

- `RNG` reads as "random number generator" to most programmers, and does not
  appear in FieldWorks at all. Prose now says RELAX NG on first use in each
  file; the abbreviation stays for the compound adjectives and for the `.rng`
  filenames themselves.
- `PI` and `BOM` become processing instruction and byte-order mark where they
  first appear, then keep the short form.
- `MDF` becomes Multi-Dictionary Formatter. It is normal SIL vocabulary — 19
  uses in FieldWorks — but appears exactly once here, so the expansion costs
  nothing.
- A FLEx export in the corpus notes is now a FieldWorks Language Explorer
  (FLEx) export, matching what the documentation pages already did.

Three terms borrowed from elsewhere now say what they mean where a reader
first meets them: a `possibility list` is FLEx's name for a controlled
vocabulary, which LIFT calls a range; a `tombstone` is a deleted entry;
`vendored` is a byte-identical copy committed into the package.

`Sense.gloss` said its result was "form-shaped", which is this project's
coinage, in a docstring that reaches the generated API reference. It now
states the fact instead: each `<gloss>` has its own lang.

`byte-exact` becomes `byte-identical`, the term the other two dozen uses
already prefer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The guides and the fidelity contract carried a handful of phrasings that
either read as ornament or asked the reader to decode a metaphor:

- "the cardinal rule" becomes "the first rule"; a contract page does not need
  the flourish.
- "the scanner is deliberately distrustful" becomes "deliberately
  conservative: on any doubt it captures no source bytes at all" — the fact
  the sentence was gesturing at.
- comments are "moved next to the run", not "hoisted": in programming,
  hoisting is what a compiler does to declarations.
- "no capability-reduced twin model" becomes "no second, cut-down model to
  learn", and "Chorus-grade byte chunking" becomes "the same per-entry byte
  chunking Chorus uses" — the suffix implied a quality tier that was not
  meant.
- an "entry/line-addressed `Problem` stream" now says each problem carries
  the file, entry, and line it concerns.
- "a clean bill of health", "colocated", "carve-outs", and "left for the
  caller to judge" give way to what they each mean.

Adds a note to the fidelity page: "canonical" there is this project's own
documented shape, not W3C Canonical XML, which normalizes whitespace inside
text nodes and would break the guarantee the page makes — and not libpalaso's
`CanonicalXmlSettings` either. Three meanings share one word across this
ecosystem, and the one that matters here is the narrowest.

The `.lift-ranges` companions get a pointer to "sidecar file", the general
term, so a reader who knows that word can find the concept.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@imnasnainaec imnasnainaec added the documentation Improvements or additions to documentation label Aug 7, 2026
@imnasnainaec imnasnainaec self-assigned this Aug 7, 2026
imnasnainaec and others added 2 commits August 11, 2026 15:09
@imnasnainaec
imnasnainaec force-pushed the docs/terminology-alignment branch from 88e4a5d to f6c2b23 Compare August 11, 2026 21:07
@imnasnainaec
imnasnainaec force-pushed the docs/terminology-alignment branch from f6c2b23 to f9ef165 Compare August 11, 2026 21:35
@imnasnainaec
imnasnainaec marked this pull request as ready for review August 11, 2026 21:35

@jasonleenaylor jasonleenaylor left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

@jasonleenaylor reviewed 33 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on imnasnainaec).

@imnasnainaec
imnasnainaec merged commit eadba05 into main Aug 12, 2026
12 of 13 checks passed
@imnasnainaec
imnasnainaec deleted the docs/terminology-alignment branch August 12, 2026 18:23
@imnasnainaec imnasnainaec added the 🟨Medium Medium-priority PR label Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation 🟨Medium Medium-priority PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants