Construction Grammar: Core Types #
[Gol95] [Gol03] [Gol06] [KF99] [Dun25]
Constructions — learned pairings of form and function — are the basic
units of grammatical knowledge in CxG. The form side is typed: a
TypedForm is a sequence of Slots, each fixing a lexeme, opening a
category, or admitting any phrase ([Dun25]'s LEX/SYN/SEM+
representation levels, plus [KF99]'s grammatical functions,
coreference indices, and slot constraints). Abstraction measures and
Specificity are derived from the slot structure
(Construction.specificity), not stipulated.
A slot also records the bar level of its position; a phrasal filler in
a zero-level position (Slot.IsPhraseInWordSlot) is the
phrase-in-word-slot configuration of phrasal compounds and the PAL
construction.
Main declarations #
SlotFiller,Slot,TypedForm: the typed form sideabstractionLevel,derivedSpecificity: abstraction measures on formsConstruction,Construction.specificity: form–function pairingsInheritanceLink,Constructicon: the network
How specified a construction's form side is ([Gol03]:220, Table 8).
| Specificity | Example |
|---|---|
| lexicallySpecified | "veggie-wrap", "must-read" |
| partiallyOpen | "N-wrap", "a simple ⟨PAL⟩" |
| fullyAbstract | [N⁰ N⁰ N⁰], [N′ PAL⁰ N] |
- lexicallySpecified : Specificity
- partiallyOpen : Specificity
- fullyAbstract : Specificity
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConstructionGrammar.instDecidableEqSpecificity x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Mode of information transfer in an inheritance link ([Gol95] §3.3.1, p. 73–74).
[Gol95] distinguishes two modes, orthogonal to link type:
- Normal: child inherits defaults from parent but may override them. Allows subregularities and exceptions. The only mode used in [Gol95]'s system.
- Complete: all information from dominating nodes is inherited strictly; no conflicts allowed. The mode "normally assumed in unification-based grammars" (p. 74, citing Kay 1984 and Fillmore & Kay 1993); the normal/complete distinction follows Flickinger, Pollard & Wasow (1985). Not exploited in [Gol95]'s constructional analysis.
Computational semantics for both modes: ConstructionGrammar.Inheritance.
- normal : InheritanceMode
- complete : InheritanceMode
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConstructionGrammar.instDecidableEqInheritanceMode x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Type of semantic relation in an inheritance link ([Gol95] §3.3.2, p. 75).
[Gol95] distinguishes four major link types:
- I_P (Polysemy): relates the central sense of a construction to its extensions. Each extension inherits syntax but differs in meaning (e.g., the six senses of the ditransitive, pp. 75–77).
- I_M (Metaphorical extension): source and target related by systematic metaphor (e.g., caused-motion → resultative via the motion→change metaphor, p. 81).
- I_S (Subpart): one construction is a proper subpart of another (e.g., intransitive motion is a subpart of caused-motion, p. 78).
- I_I (Instance): one construction is a more fully specified version of another (e.g., drive-crazy is an instance of the resultative, p. 79).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- ConstructionGrammar.instDecidableEqLinkType x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- ConstructionGrammar.instDecidableEqBarLevel 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
Typed slots #
[Dun25] distinguishes three representation levels for slot content —
LEX (a fixed lexeme), SYN (any word of a category), SEM+ (any expression
meeting a semantic constraint) — and [KF99] add headed
phrases, grammatical functions, coreference indices, and syntactic
constraints. The phrasal filler (any phrase, no fixed head) is the
filler type of phrasal compounds and PAL constructions.
A slot's filler: the representation level of slot content.
Parameterized over Lex (the lexeme type) so the same representation
works for strings, morphemes, or phonological forms.
- fixed
{Lex : Type u_1}
: Lex → SlotFiller Lex
A specific word form (LEX level):
fixed "must" - open_
{Lex : Type u_1}
: UD.UPOS → SlotFiller Lex
Any word of a given POS category (SYN level):
open_ .VERB - headed {Lex : Type u_1} : Lex → UD.UPOS → SlotFiller Lex
- semantic {Lex : Type u_1} : String → SlotFiller Lex
- phrasal
{Lex : Type u_1}
: SlotFiller Lex
Any phrase, with no fixed head and no category restriction on its internal structure — the filler of a phrasal-compound or PAL slot (the ⟨phrase⟩ node of [GS25]'s Figure 5).
Instances For
Equations
- One or more equations did not get rendered due to their size.
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.fixed a) (ConstructionGrammar.SlotFiller.fixed b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.fixed a) (ConstructionGrammar.SlotFiller.open_ a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.fixed a) (ConstructionGrammar.SlotFiller.headed a_1 a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.fixed a) (ConstructionGrammar.SlotFiller.semantic a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.fixed a) ConstructionGrammar.SlotFiller.phrasal = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.open_ a) (ConstructionGrammar.SlotFiller.fixed a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.open_ a) (ConstructionGrammar.SlotFiller.open_ b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.open_ a) (ConstructionGrammar.SlotFiller.headed a_1 a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.open_ a) (ConstructionGrammar.SlotFiller.semantic a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.open_ a) ConstructionGrammar.SlotFiller.phrasal = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.headed a a_1) (ConstructionGrammar.SlotFiller.fixed a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.headed a a_1) (ConstructionGrammar.SlotFiller.open_ a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.headed a a_1) (ConstructionGrammar.SlotFiller.semantic a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.headed a a_1) ConstructionGrammar.SlotFiller.phrasal = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.semantic a) (ConstructionGrammar.SlotFiller.fixed a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.semantic a) (ConstructionGrammar.SlotFiller.open_ a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.semantic a) (ConstructionGrammar.SlotFiller.headed a_1 a_2) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.semantic a) (ConstructionGrammar.SlotFiller.semantic b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq (ConstructionGrammar.SlotFiller.semantic a) ConstructionGrammar.SlotFiller.phrasal = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq ConstructionGrammar.SlotFiller.phrasal (ConstructionGrammar.SlotFiller.fixed a) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq ConstructionGrammar.SlotFiller.phrasal (ConstructionGrammar.SlotFiller.open_ a) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq ConstructionGrammar.SlotFiller.phrasal (ConstructionGrammar.SlotFiller.headed a a_1) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq ConstructionGrammar.SlotFiller.phrasal (ConstructionGrammar.SlotFiller.semantic a) = isFalse ⋯
- ConstructionGrammar.instDecidableEqSlotFiller.decEq ConstructionGrammar.SlotFiller.phrasal ConstructionGrammar.SlotFiller.phrasal = isTrue ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Is this slot open (not lexically anchored)?
open_ (SYN), semantic (SEM+), and phrasal slots count as open for
abstraction-level computation. headed slots do not: they fix the head
lexeme even though the phrase is open.
Equations
- (ConstructionGrammar.SlotFiller.fixed a).isOpen = false
- (ConstructionGrammar.SlotFiller.open_ a).isOpen = true
- (ConstructionGrammar.SlotFiller.headed a a_1).isOpen = false
- (ConstructionGrammar.SlotFiller.semantic a).isOpen = true
- ConstructionGrammar.SlotFiller.phrasal.isOpen = true
Instances For
Grammatical function of a valence member ([KF99], Figure 12). Distinct from semantic role: a subject (gf) can be an agent, theme, or experiencer (role).
- subj : GramFunction
- comp : GramFunction
- obj : GramFunction
- pred : GramFunction
Instances For
Equations
- ConstructionGrammar.instDecidableEqGramFunction 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
Syntactic constraint on a slot ([KF99], Figure 12).
- locMinus : SlotConstraint
- negMinus : SlotConstraint
- refEmpty : SlotConstraint
Instances For
Equations
- ConstructionGrammar.instDecidableEqSlotConstraint 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
A slot in a construction's form: filler content, semantic role,
headedness, and the bar level of the position itself. Fixed slots (like
"let" in let alone) have role := none since they carry no independent
semantic role. level := none leaves the position's bar level
unspecified.
- filler : SlotFiller Lex
What fills this slot
- role : Option String
Semantic role label (agent, theme, etc.), if any
- isHead : Bool
Whether this slot is the head of the construction
- level : Option BarLevel
Bar level of the position (
some .zero= a word-level slot) - gf : Option GramFunction
Grammatical function (subj, comp, obj, pred) — [KF99]
- refIdx : Option RefIndex
Coreference index: slots sharing an index have unified semantics
- constraints : List SlotConstraint
Syntactic constraints on this slot ([loc -], [neg -], [ref ∅])
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConstructionGrammar.instReprSlot = { reprPrec := ConstructionGrammar.instReprSlot.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
A typed form: the form side of a construction as a sequence of slots.
Equations
- ConstructionGrammar.TypedForm Lex = List (ConstructionGrammar.Slot Lex)
Instances For
A phrase in a word-level slot: phrasal filler, zero-level position. The defining configuration of phrasal compounds and the PAL construction ([GS25]) — and the cell lexical-integrity hypotheses rule out.
Equations
- s.IsPhraseInWordSlot = (s.filler = ConstructionGrammar.SlotFiller.phrasal ∧ s.level = some ConstructionGrammar.BarLevel.zero)
Instances For
Abstraction level and derived specificity #
Proportion of open slots: a continuous [0,1] measure of abstraction.
[Dun25] defines four discrete abstraction orders based on which
representation levels appear; this computes the continuous proportion
underlying those orders, and derivedSpecificity maps to the three-way
Specificity enum.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Derive Specificity from the slot structure.
| Condition | Result |
|---|---|
| All slots open | .fullyAbstract |
| No slots open | .lexicallySpecified |
| Mix of fixed and open | .partiallyOpen |
Changing a slot from open to fixed automatically changes the specificity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Does any slot in the form bear a given constraint?
Equations
- ConstructionGrammar.hasConstraint form c = List.any form fun (x : ConstructionGrammar.Slot Lex) => x.constraints.any fun (x : ConstructionGrammar.SlotConstraint) => x == c
Instances For
Count of distinct coreference groups in a form.
Equations
- ConstructionGrammar.refGroupCount form = (List.filterMap (fun (x : ConstructionGrammar.Slot Lex) => x.refIdx) form).dedup.length
Instances For
Characterization lemmas #
A form is fully abstract exactly when every slot is open (vacuously so for the empty form).
A form is lexically specified exactly when it is nonempty and no slot is open.
Constructions and the network #
A construction: a learned pairing of form and function. The form is a
TypedForm; name is a display label; specificity is derived from the
form (Construction.specificity), not stipulated.
- name : String
- form : TypedForm String
- meaning : String
- pragmaticFunction : Option String
Instances For
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
Equations
A construction's specificity, derived from its slot structure.
Equations
Instances For
An inheritance link between two constructions in the network.
Each link specifies both how information flows (mode, §3.3.1) and
what semantic relation holds (linkType, §3.3.2). Links without a
specific semantic relation (e.g., general taxonomic inheritance of
shared morphophonological properties) use linkType := none.
- parent : String
- child : String
- mode : InheritanceMode
- linkType : Option LinkType
- overriddenProperties : List String
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
A constructicon: a network of constructions connected by inheritance links.
- constructions : List Construction
- links : List InheritanceLink
Instances For
Equations
- One or more equations did not get rendered due to their size.