Skip to content
docs
Arxo ↗

Languages: labels, forms, and editions

For LLMs6 sections

Law is written in words, and the corpus speaks many languages. This page covers how declarations carry human-readable text — labels with mandatory status, grammatical forms, translation overlays, and multilingual source editions — without letting prose leak into semantics.

No commands are needed to follow this page. Each claim carries a status in words with a letter mark; the full legend is on the topic index.

Any declaration with a body can carry multilingual labels — available in the public release (S). Each label names a language tag, a mandatory status, and the text. The status is one of three values:

  • official — the wording of the source itself.
  • unofficial — project wording with no source authority.
  • translation — a rendering of an official label into another language.

For example, a parcel entity with its English source wording and a Kazakh translation:

Arxo Law
entity Parcel {
label en official "parcel";
label kk translation "жер телімі";
}

Labels stay outside the semantic and artifact hashes, so rewording prose never changes what the rules mean; they stay inside the node content hash, so label edits are still tracked (S). Parameter labels and case entity labels follow the same pattern, each indexed under its own stable identity (S).

Some languages need more than a bare string to render fluent sentences. Declarations may attach a closed per-family dictionary of grammatical forms: five cases in two numbers for Russian-family tags, six cases plus possessive forms for Kazakh-family tags, plural and possessive for English-family tags, and an empty dictionary for all other tags (S). An unknown slot is a warning, and a missing form degrades to the plain label text — the renderer never invents morphology.

Per-language JSON files may sit beside a package manifest to supply labels without touching the package sources. Reading overlays is available in the public release (S); authoring them requires a source checkout (I). Overlays are never compiled into the package; readers pick them up by repeatable flags and resource references, and the full-profile checks verify that overlays match the package they annotate (G). Observed in the corpus: up to seven overlay languages beside a single constitutional text package.

One pack per language turns labels, forms, and templates into sentences; fourteen languages ship today (S). Language is a review axis rather than a property: reaching the top review rung needs full coverage in one language, not partial coverage in many (S).

Coverage of labels and verbalization totality is held by dedicated checks — a full-profile CI check (G). The label check compares each package with a recorded minimum and refuses any drop below it; the minimum is kept in corpus/ratchets/label-ratchet.json. Authoring tooling itself stays English-only; canon data is never translated by the pipeline (T).

One revision of a source in two languages is two editions, linked by a declared align block rather than by assumed meaning identity (S). Four separate questions about that link have four separate answers, kept in sync with the alignment notes and with the bridges page:

  • Grammar: the declaration is supported and compiles in real packages (S).
  • Queries: no structural query reads align rows back yet, so tooling cannot list them (S).
  • Corpus use: broad — over two thousand blocks across dozens of source files (S).
  • Semantic effect: none — the block stays document metadata and never becomes rule content (S).

Each edition carries its own article-level fragments with pinned text and status. Observed in the corpus: a constitution package with parallel Russian and Kazakh editions and per-article fragments in both languages, and historic code packages with classical Arabic fragments (S).

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.