# Inkhaven 1.3.19 — The ConLang Suite: syntax, interchange & creative text

_RFC LANG-1 was complete at 1.3.17; 1.3.18 deepened morphology. 1.3.19 makes a
constructed language **speak** — a real syntax engine that assembles whole
sentences and the constructions built on them — and lets it **travel**:
interchange with other conlang tools, a coverage gauge, and creative-text
generators. No new dependencies. Reference: [CONLANG.md](../CONLANG.md)._

## Speaking the language: the syntax engine

Until now Inkhaven inflected single words. 1.3.19 assembles them into clauses and
builds the constructions a grammar needs.

- **Sentences.** **`inkhaven language sentence`** takes a subject, verb, and
  object (each `root` or `root:gloss`, with optional adjective and number) and
  builds the clause: it *orders* the constituents by your `word_order`, *assigns
  case* by your `alignment` (nominative–accusative or ergative–absolutive),
  *inflects* each noun through the `noun` paradigm, and *runs agreement* (the
  adjective takes its noun's case, the verb agrees with its subject). The output
  is the surface clause, an interlinear gloss, and a literal. The **grammar book**
  now prints a worked example sentence drawn from your own lexicon.

- **Negation & polar questions.** `sentence --negate [--negator W]` and
  `--question [--q-particle W]` realize negation and yes/no questions per your
  `negation` and `question` typology features — a particle/auxiliary before the
  verb or an affix fused onto it; a question particle, verb inversion, or verb
  morphology. With no word supplied, only the gloss is marked — never an invented
  form.

- **Relative clauses.** **`inkhaven language relative`** builds a noun modified by
  a relative clause ("the bird that sees the stone"). The head plays a role
  inside the embedded clause — its subject or object, the *gap* — and the embedded
  clause runs through the same engine, so it case-marks and agrees correctly.
  Placement (prenominal vs postnominal) follows your `relative_clause` feature.

- **Coordination.** **`inkhaven language coordinate`** joins two or more noun
  phrases (`--np`) or whole clauses (`--clause`) with a conjunction — "bird and
  stone", "bird sees stone and river falls" — each clause assembled in full.

Every construction reads from the same typology answers and paradigms as a plain
sentence, so the richer sentences cost nothing once the grammar is in place.

## Letting the language travel: interchange

- **Broader exporters.** `language export --format` gains **`xliff`** (an XLIFF
  1.2 translation memory loadable in OmegaT / memoQ / Weblate), **`linguex`**
  (LaTeX for the `linguex` package — glossed headwords + numbered examples), and
  **`ipa-chart`** (a Markdown inventory), alongside the existing json / anki / csv.

- **Importers beyond own-CSV.** **`inkhaven language import --format`** reads
  **`toolbox`** (Toolbox / MDF Standard Format — the same SFM that SIL Toolbox,
  FieldWorks, and **Lexique Pro** use) and **`polyglot`** (a PolyGlot dictionary —
  the native `.pgd` archive is unzipped automatically, or a raw `.xml`). Import
  **previews by default** and writes nothing until `--yes`.

## Filling the gaps, and having fun

- **Semantic-gap finder.** **`inkhaven language gaps`** diffs your lexicon against
  a reference concept scope — the bundled **Swadesh-100** (translated into every
  working language) or your own HJSON topic list — and reports the missing
  concepts, frequency-ranked, shaped to hand straight to `generate-lexicon`.

- **Creative text.** **`inkhaven language compose --kind`** generates **`names`**
  (phonotactic), **`prose`** (real grammatical sentences through the syntax
  engine), and **`poem`** (metered verse that scans). The themed kinds
  **`blessing`** / **`curse`** / **`incantation`** are AI-composed but
  *constrained to your existing lexicon* — the model arranges real words, never
  invents them — and print a native text with gloss and translation. Everything
  is printed, never written into your books.

## A guide that keeps up

*Developing a Constructed Language with Inkhaven*
([`Book/CONLANG_DEVELOPMENT/`](../../Book/CONLANG_DEVELOPMENT/)) gains coverage of
all of the above: new sections on sentences, negation, questions, relative
clauses, and coordination (Grammar), the gap finder (A healthy lexicon), and
interchange + creative text (Producing the books), with new term boxes, command
reference entries, and glossary terms.

## Design notes

- **Deterministic core, advisory AI.** The syntax engine, exporters, importers,
  gap finder, and the names/prose/poem generators are all pure, unit-tested
  functions. The only AI surfaces (themed `compose` text) are lexicon-constrained
  and print-only.
- **Backward compatible.** Every new construction is opt-in; existing paradigms,
  the dictionary, and the books behave identically.
- **Zero new dependencies.** PolyGlot's zip + XML reuse the in-tree `zip` and
  `quick-xml`.

Tests 1490 → 1529. **Zero new dependencies.** Full reference:
[CONLANG.md](../CONLANG.md).
