Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Dutch

Status: Current Last updated: 2026-05-21 08:42 EDT

Scope

Dutch is a Germanic language with a relatively simple MWT profile:

  • Possessive 's suffixes on proper names: Claus's, Maria's, Jan's
  • Idiomatic time expressions with leading 's: 's-avonds (“in the evening”), 's-morgens (“in the morning”), 's-nachts
  • Short apostrophe contractions: 't (= het), 'n (= een)
  • Occasional reduced-vowel contractions such as het's (dialectal)

Dutch carries no per-language BA3 MWT-override rules as of 2026-04-21. The single BA2-ported rule was audited and removed, see History.

What Stanza handles natively

Paired probes with Stanza 1.11.1 (free-tokenize vs our postprocessor) on 13 's-bearing Dutch constructions produce identical output on both paths:

PatternExampleStanza output
Possessive 's on proper nameClaus's, Maria's, Jan's1 UD word, no MWT expansion
Pseudo-contraction het's / er'shet's koud1 UD word per whitespace-separated token
Leading 's time idiom's-avonds, 's-morgens1 UD word (hyphen-joined form preserved)
Short contraction't is koud, 'n huis1 UD word per token
Plain nounhuis1 UD word (control case)

Probes in batchalign/tests/investigations/_cases/dutch.py (typed ProbeCase fixtures consumed by the matrix harness at test_stanza_mwt_probe_matrix.py).

Known Stanza limitations

No Dutch-specific Stanza defects are tracked.

History

Rule that existed and was removed

RuleWhat it didAudit finding
EndsWith("'s") → SuppressMwtFor any Dutch token ending in 's, flip the MWT hint to False to prevent expansionDormant. Modern Stanza Dutch does not emit 's-suffix tokens with MWT hints today, the 13-case probe showed identical output with and without the rule active. The rule was also worryingly broad: it would fire on any 's-suffix form (possessives, contractions, idioms), with no per-pattern scoping.

Removed in the audit. Dutch now runs through the default tokenizer-postprocessor path with no per-language overrides.

Why the DP alignment is the load-bearing piece

As with the Romance languages, the character-level Hirschberg realignment in align_tokens is the unconditional rescue when Stanza’s Dutch tokenizer occasionally over-splits. Dutch inherits this behavior for free.

Tests

  • Probe matrix cases: batchalign/tests/investigations/_cases/dutch.py: typed ProbeCase fixtures covering possessives, contractions, time idioms, and control nouns (grep -c ProbeCase against the file is the live count).
  • Matrix harness: batchalign/tests/investigations/test_stanza_mwt_probe_matrix.py runs every case through paired pipelines. Invoke with uv run pytest batchalign/tests/investigations/ -m golden.

References


This page last changed: 2026-06-19 (commit c82a6d03). The whole book last changed: 2026-09-16 (commit 34d249d8).