Constructions and the constructicon #
A construction is a learned pairing of a form and a meaning
([Gol06]), the basic unit of grammatical knowledge in CxG. The
form side is a TypedForm: a sequence of Slots, each fixing a lexeme,
opening a category, or admitting any phrase, with a construction's
Specificity derived from its slot structure rather than stipulated.
Main definitions #
SlotFiller,Slot,TypedForm: the typed form sidederivedSpecificity,HasConstraint,refGroupCount: measures derived from formsConstruction,Construction.specificity,Construction.map: typed form–meaning pairingsInheritanceLink,Constructicon: the network
How specified a construction's form side is: [Gol03]'s degree-of-abstraction continuum, discretized as in [GS25]'s Table 8.
- lexicallySpecified : Specificity
Every slot lexically filled: veggie-wrap, must-read.
- partiallyOpen : Specificity
Fixed and open slots mixed: N-wrap, a simple ⟨PAL⟩.
- fullyAbstract : Specificity
Every slot open: [N⁰ N⁰ N⁰], [N′ PAL⁰ N].
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, orthogonal to the link's semantic relation ([Gol95] §3.3.1, p. 73–74).
- normal : InheritanceMode
The child inherits defaults from its parents but may override them — the only mode [Gol95] uses.
- complete : InheritanceMode
All information is inherited strictly, with no conflicts allowed — the mode "normally assumed in unification-based grammars" (p. 74).
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 ⋯
The semantic relation an inheritance link records: [Gol95]'s four major link types (§3.3.2, p. 75).
- polysemy : LinkType
I_P: relates a construction's central sense to an extension, which inherits the syntax but differs in meaning (the six senses of the ditransitive, pp. 75–77).
- metaphorical : LinkType
I_M: source and target related by a systematic metaphor (caused-motion → resultative via motion→change, p. 81).
- subpart : LinkType
I_S: the child is a proper subpart of the parent (intransitive motion inside caused-motion, p. 78).
- instance : LinkType
I_I: the child is a more fully specified version of the parent (drive-crazy as 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
Equations
- One or more equations did not get rendered due to their size.
Instances For
Typed slots #
Slot content comes at [Dun25]'s three representation levels — LEX (a fixed lexeme), SYN (any word of a category), SEM (a semantic constraint) — plus [KF99]'s headed phrases, grammatical functions, coreference indices, and slot constraints.
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
- One or more equations did not get rendered due to their size.
Instances For
Equations
Whether a slot is open — not lexically anchored: open_, semantic,
and phrasal fillers count as open; fixed and headed do not, the
latter fixing its 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 can be an agent, a theme, or an experiencer.
- subj : GramFunction
Subject.
- comp : GramFunction
Clausal or verbal complement.
- obj : GramFunction
Direct object.
- pred : GramFunction
Predicative complement or secondary predicate.
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
[loc -]: must occur left-isolated, not VP-internal.
- negMinus : SlotConstraint
[neg -]: cannot be negated.
- refEmpty : SlotConstraint
[ref ∅]: nonreferential — no variable-binding function.
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, headedness, and the
bar level of the position itself. level := none leaves the position's
bar level unspecified; slots sharing a refIdx are co-indexed, the hook
by which a typed meaning pole refers to slots.
- filler : SlotFiller Lex
What fills this slot
- 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
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConstructionGrammar.instReprSlot = { reprPrec := ConstructionGrammar.instReprSlot.repr }
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 that lexical-integrity hypotheses rule out.
Equations
- s.IsPhraseInWordSlot = (s.filler = ConstructionGrammar.SlotFiller.phrasal ∧ s.level = some ConstructionGrammar.BarLevel.zero)
Instances For
Derived specificity #
The specificity of a form: fullyAbstract when every slot is open
(vacuously so for the empty form), lexicallySpecified when none is,
and partiallyOpen otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Some slot in the form bears the constraint c.
Equations
- ConstructionGrammar.HasConstraint form c = ∃ s ∈ form, c ∈ s.constraints
Instances For
Equations
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 meaning. The meaning
pole is typed by the domain that owns the construction — a composition
rule, a MeaningComponents contribution, a presupposition — with Unit
for a purely formal record or a defective, form-only construction.
- name : String
- form : TypedForm String
- meaning : Sem
The meaning pole.
- pragmaticPoint : Bool
Whether the construction carries a conventional pragmatic point ([FKOC88] §1.1.4).
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
Reinterpret the meaning pole along f, keeping the form.
Equations
- ConstructionGrammar.Construction.map f c = { name := c.name, form := c.form, meaning := f c.meaning, pragmaticPoint := c.pragmaticPoint }
Instances For
An inheritance link between two constructions in the network,
recording how information flows and what semantic relation holds; purely
taxonomic links use linkType := none.
- parent : String
Name of the parent construction.
- child : String
Name of the child construction.
- mode : InheritanceMode
How information flows along the link.
- linkType : Option LinkType
The semantic relation the link records, if any.
- overriddenProperties : List String
Inherited properties the child overrides.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
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 Sem)
The inventory of constructions.
- links : List InheritanceLink
The inheritance links, keyed by construction name.
Instances For
Equations
- One or more equations did not get rendered due to their size.