Dutch
Status: Current Last updated: 2026-05-21 08:42 EDT
Scope
Dutch is a Germanic language with a relatively simple MWT profile:
- Possessive
'ssuffixes 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:
| Pattern | Example | Stanza output |
|---|---|---|
Possessive 's on proper name | Claus's, Maria's, Jan's | 1 UD word, no MWT expansion |
Pseudo-contraction het's / er's | het's koud | 1 UD word per whitespace-separated token |
Leading 's time idiom | 's-avonds, 's-morgens | 1 UD word (hyphen-joined form preserved) |
| Short contraction | 't is koud, 'n huis | 1 UD word per token |
| Plain noun | huis | 1 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
| Rule | What it did | Audit finding |
|---|---|---|
EndsWith("'s") → SuppressMwt | For any Dutch token ending in 's, flip the MWT hint to False to prevent expansion | Dormant. 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: typedProbeCasefixtures covering possessives, contractions, time idioms, and control nouns (grep -c ProbeCaseagainst the file is the live count). - Matrix harness:
batchalign/tests/investigations/test_stanza_mwt_probe_matrix.pyruns every case through paired pipelines. Invoke withuv 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).