Word-order typology: per-language profile substrate #
@cite{dryer-2013-wals} @cite{greenberg-1963} @cite{dryer-1992}
Framework-agnostic substrate for storing per-language word-order data
(WALS Chs 81–83). Lives in Typology/ so that both Fragments/
(per-language profiles) and Phenomena/WordOrder/ (cross-linguistic
generalisations) can import it without violating the layered
dependency hierarchy.
The key record is WordOrderProfile, a flat bundle of three
orthogonal WALS classifications. WordOrderProfile.ofWALS provides
the canonical "derive from WALS by ISO lookup" convenience.
Epistemic distinction: noDominant vs notInWALS #
The three enums each carry both .noDominant (WALS-attested
nondominance, e.g., German Ch 81 — itself a finding about the
language) and .notInWALS (the language is not coded in this WALS
chapter). A consumer that filtered on ≠ .noDominant would otherwise
silently include unencoded languages as "genuinely nondominant".
Independence assumption and IsConsistent #
The three fields are bundled independently even though they are
not logically independent: SOV basicOrder entails sv + ov projections,
etc. WALS codes them independently for empirical-coverage reasons (a
language can be Ch 81 nondominant but Ch 82 dominant — German is
exactly this), so the substrate mirrors WALS rather than collapsing
fields. The WordOrderProfile.IsConsistent predicate rules out
internally contradictory combinations.
Greenbergian vs Dryerian primacy #
The substrate is neutral on which classification is theoretically
primary. @cite{greenberg-1963} treated BasicOrder as primary;
@cite{dryer-1992} explicitly demoted SOV/SVO/VSO in favour of OV/VO
(Branching Direction Theory). Consumers downstream choose which
fields to read.
Scope #
Covers WALS Chs 81–83 (clausal word-order features). Sibling
substrates carry adjacent typology: Typology/Adposition.lean for
Ch 85; nominal-internal and correlation-pair profiles can be added
when consumers demand them. Cross-tabulation primitives for
correlation tables (Gibson 2025-style 2×2 head-direction tables) live
in their consuming Studies file (Phenomena/WordOrder/Studies/ Gibson2025.lean) until a second framework consumer materialises.
WALS Ch 81: six-way classification of basic constituent order.
noDominant is WALS's "lacking a dominant word order" code (a
substantive finding about the language); notInWALS is absence
from the chapter. The two are epistemically different and must
not be conflated.
- sov : BasicOrder
- svo : BasicOrder
- vso : BasicOrder
- vos : BasicOrder
- ovs : BasicOrder
- osv : BasicOrder
- noDominant : BasicOrder
WALS-attested "lacking a dominant word order" (Ch 81).
- notInWALS : BasicOrder
Language not coded in WALS Ch 81.
Instances For
Equations
- Typology.WordOrder.instDecidableEqBasicOrder x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Typology.WordOrder.instDecidableEqSVOrder x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.WordOrder.instReprSVOrder = { reprPrec := Typology.WordOrder.instReprSVOrder.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.WordOrder.instDecidableEqOVOrder x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.WordOrder.instReprOVOrder = { reprPrec := Typology.WordOrder.instReprOVOrder.repr }
A bundle of WALS-style word-order classifications for a single
language. The three fields are bundled independently because
WALS codes them independently; the IsConsistent predicate
captures the logical entailments between them.
- basicOrder : BasicOrder
- svOrder : SVOrder
- ovOrder : OVOrder
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert WALS F81A's BasicWordOrder value to a BasicOrder.
Equations
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.sov = Typology.WordOrder.BasicOrder.sov
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.svo = Typology.WordOrder.BasicOrder.svo
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.vso = Typology.WordOrder.BasicOrder.vso
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.vos = Typology.WordOrder.BasicOrder.vos
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.ovs = Typology.WordOrder.BasicOrder.ovs
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.osv = Typology.WordOrder.BasicOrder.osv
- Typology.WordOrder.BasicOrder.ofWALS81A Data.WALS.F81A.BasicWordOrder.noDominantOrder = Typology.WordOrder.BasicOrder.noDominant
Instances For
Look up Ch 81 basic order for an ISO 639-3 code. Returns
.notInWALS when the language is absent from the chapter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert WALS F82A's SubjectVerbOrder to an SVOrder.
Equations
- Typology.WordOrder.SVOrder.ofWALS82A Data.WALS.F82A.SubjectVerbOrder.sv = Typology.WordOrder.SVOrder.sv
- Typology.WordOrder.SVOrder.ofWALS82A Data.WALS.F82A.SubjectVerbOrder.vs = Typology.WordOrder.SVOrder.vs
- Typology.WordOrder.SVOrder.ofWALS82A Data.WALS.F82A.SubjectVerbOrder.noDominantOrder = Typology.WordOrder.SVOrder.noDominant
Instances For
Look up Ch 82 subject–verb order for an ISO 639-3 code. Returns
.notInWALS when the language is absent from the chapter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Convert WALS F83A's ObjectVerbOrder to an OVOrder.
Equations
- Typology.WordOrder.OVOrder.ofWALS83A Data.WALS.F83A.ObjectVerbOrder.ov = Typology.WordOrder.OVOrder.ov
- Typology.WordOrder.OVOrder.ofWALS83A Data.WALS.F83A.ObjectVerbOrder.vo = Typology.WordOrder.OVOrder.vo
- Typology.WordOrder.OVOrder.ofWALS83A Data.WALS.F83A.ObjectVerbOrder.noDominantOrder = Typology.WordOrder.OVOrder.noDominant
Instances For
Look up Ch 83 object–verb order for an ISO 639-3 code. Returns
.notInWALS when the language is absent from the chapter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a WordOrderProfile for a language by ISO 639-3 lookup
against WALS chapters 81/82/83. Each field independently falls
back to .notInWALS if its WALS chapter has no entry. Use this as
the default backend in Fragment files; override per-field when
grammar-grounded sources disagree with WALS or fill its gaps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The SVOrder a basic order entails (none if basic order is
itself uninformative). Subject precedes verb in SOV, SVO, OSV
(V is final or last in those orders); verb precedes subject in
VSO, VOS, OVS.
Equations
- Typology.WordOrder.BasicOrder.sov.entailedSV = some Typology.WordOrder.SVOrder.sv
- Typology.WordOrder.BasicOrder.svo.entailedSV = some Typology.WordOrder.SVOrder.sv
- Typology.WordOrder.BasicOrder.osv.entailedSV = some Typology.WordOrder.SVOrder.sv
- Typology.WordOrder.BasicOrder.vso.entailedSV = some Typology.WordOrder.SVOrder.vs
- Typology.WordOrder.BasicOrder.vos.entailedSV = some Typology.WordOrder.SVOrder.vs
- Typology.WordOrder.BasicOrder.ovs.entailedSV = some Typology.WordOrder.SVOrder.vs
- Typology.WordOrder.BasicOrder.noDominant.entailedSV = none
- Typology.WordOrder.BasicOrder.notInWALS.entailedSV = none
Instances For
The OVOrder a basic order entails.
Equations
- Typology.WordOrder.BasicOrder.sov.entailedOV = some Typology.WordOrder.OVOrder.ov
- Typology.WordOrder.BasicOrder.ovs.entailedOV = some Typology.WordOrder.OVOrder.ov
- Typology.WordOrder.BasicOrder.osv.entailedOV = some Typology.WordOrder.OVOrder.ov
- Typology.WordOrder.BasicOrder.svo.entailedOV = some Typology.WordOrder.OVOrder.vo
- Typology.WordOrder.BasicOrder.vso.entailedOV = some Typology.WordOrder.OVOrder.vo
- Typology.WordOrder.BasicOrder.vos.entailedOV = some Typology.WordOrder.OVOrder.vo
- Typology.WordOrder.BasicOrder.noDominant.entailedOV = none
- Typology.WordOrder.BasicOrder.notInWALS.entailedOV = none
Instances For
A profile is consistent if its svOrder and ovOrder either
match what basicOrder entails, or are themselves uninformative
(.noDominant / .notInWALS). The latter accommodates languages
coded in some WALS chapters but not others (e.g., German has
nondominant Ch 81 but dominant Ch 82). When basicOrder itself
is uninformative, no constraint is imposed on the projections.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
b is SOV.
Equations
- b.IsSOV = (b = Typology.WordOrder.BasicOrder.sov)
Instances For
b is SVO.
Equations
- b.IsSVO = (b = Typology.WordOrder.BasicOrder.svo)
Instances For
b is VSO.
Equations
- b.IsVSO = (b = Typology.WordOrder.BasicOrder.vso)
Instances For
b has Subject before Object: SOV, SVO, or VSO.
@cite{greenberg-1963} Universal 1's antecedent.
Equations
Instances For
b has Object before Subject: VOS, OVS, or OSV.
@cite{greenberg-1963} Universal 1's negative class.
Equations
Instances For
o is OV (object precedes verb). @cite{dryer-1992}'s primary
typological classification under Branching Direction Theory.
Equations
- o.IsOV = (o = Typology.WordOrder.OVOrder.ov)
Instances For
o is VO (verb precedes object).
Equations
- o.IsVO = (o = Typology.WordOrder.OVOrder.vo)
Instances For
Verb position in the clause as derived from object–verb order. Theory-neutral: VO ⇒ post-verbal object (verb precedes complement), OV ⇒ pre-verbal object (verb follows complement).
- postverbal : VerbPosition
Verb precedes complement (head-initial VP).
- preverbal : VerbPosition
Verb follows complement (head-final VP).
Instances For
Equations
- Typology.WordOrder.instDecidableEqVerbPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Project an OVOrder to a VerbPosition. Returns none for
uninformative orders (.noDominant, .notInWALS).