Constructions #
A construction is a learned pairing of a form and a meaning, for Goldberg the basic unit of
grammatical knowledge. The form side is a TypedForm, a sequence of Slots, each fixing a
lexeme, opening a category, or admitting any phrase, and a construction's Specificity is derived
from its slot structure rather than stipulated.
Main definitions #
SlotFiller,Slot,TypedForm: the typed form sideRepresentationLevel,SlotFiller.level: the level of a slot's contentderivedSpecificity,HasConstraint,refGroupCount: measures derived from formsConstruction,Construction.specificity,Construction.map: typed form–meaning pairingsConstruction.IsFullyCompositional,Construction.IsFormalIdiom: analyzability by the universal combination schemata, and lexical openness
References #
The specificity of a construction is how fully its form side is specified, along [Gol03]'s degree-of-abstraction continuum as [GS25]'s Table 8 discretizes it.
- lexicallySpecified : Specificity
Every slot is lexically filled, as in veggie-wrap and must-read.
- partiallyOpen : Specificity
Fixed and open slots are mixed, as in N-wrap and a simple ⟨PAL⟩.
- fullyAbstract : Specificity
Every slot is open, as in [N⁰ N⁰ N⁰] and [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 ⋯
Typed slots #
Slot content follows [Dun25]'s three representation levels, a fixed lexeme (LEX), a word of a category (SYN) and a semantic constraint (SEM), with the categories the parts of speech of Universal Dependencies where Dunn's are learned, plus [KF99]'s headed phrases, grammatical functions, coreference indices and slot constraints.
A slot's filler gives the slot's content at one of the representation levels. It is
parameterized over the lexeme type Lex, so the same representation works for strings,
morphemes, or phonological forms.
- fixed {Lex : Type u_1} : Lex → SlotFiller Lex
- open_ {Lex : Type u_1} : UD.UPOS → SlotFiller Lex
- 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
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
A filler is open when no lexeme anchors it. The open_, semantic and phrasal fillers
are open, while fixed and headed are not, the latter fixing its head lexeme even though the
phrase is open.
Equations
- (ConstructionGrammar.SlotFiller.fixed a).IsOpen = False
- (ConstructionGrammar.SlotFiller.headed a a_1).IsOpen = False
- (ConstructionGrammar.SlotFiller.open_ a).IsOpen = True
- (ConstructionGrammar.SlotFiller.semantic a).IsOpen = True
- ConstructionGrammar.SlotFiller.phrasal.IsOpen = True
Instances For
Equations
- ConstructionGrammar.instDecidablePredSlotFillerIsOpen (ConstructionGrammar.SlotFiller.fixed a) = isFalse ⋯
- ConstructionGrammar.instDecidablePredSlotFillerIsOpen (ConstructionGrammar.SlotFiller.headed a a_1) = isFalse ⋯
- ConstructionGrammar.instDecidablePredSlotFillerIsOpen (ConstructionGrammar.SlotFiller.open_ a) = isTrue trivial
- ConstructionGrammar.instDecidablePredSlotFillerIsOpen (ConstructionGrammar.SlotFiller.semantic a) = isTrue trivial
- ConstructionGrammar.instDecidablePredSlotFillerIsOpen ConstructionGrammar.SlotFiller.phrasal = isTrue trivial
A representation level is one of [Dun25]'s three ontologies of slot-constraints.
- lex : RepresentationLevel
A lexical constraint, LEX, fixes a lexeme.
- syn : RepresentationLevel
A syntactic constraint, SYN, admits the words of a category.
- sem : RepresentationLevel
A semantic constraint, SEM, admits the expressions that meet it.
Instances For
Equations
- ConstructionGrammar.instDecidableEqRepresentationLevel 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
- One or more equations did not get rendered due to their size.
f.level is lexical for fixed lexemes and headed phrases, syntactic for categories and
phrases, and semantic for semantic constraints.
Equations
- (ConstructionGrammar.SlotFiller.fixed a).level = ConstructionGrammar.RepresentationLevel.lex
- (ConstructionGrammar.SlotFiller.headed a a_1).level = ConstructionGrammar.RepresentationLevel.lex
- (ConstructionGrammar.SlotFiller.open_ a).level = ConstructionGrammar.RepresentationLevel.syn
- ConstructionGrammar.SlotFiller.phrasal.level = ConstructionGrammar.RepresentationLevel.syn
- (ConstructionGrammar.SlotFiller.semantic a).level = ConstructionGrammar.RepresentationLevel.sem
Instances For
A filler is open exactly when it is not lexical.
The grammatical function of a valence member ([KF99], Figure 12) is distinct from its semantic role, since a subject can be an agent, a theme, or an experiencer.
- subj : GrammaticalFunction
subjis the subject. - comp : GrammaticalFunction
compis a clausal or verbal complement. - obj : GrammaticalFunction
objis the direct object.
Instances For
Equations
- ConstructionGrammar.instDecidableEqGrammaticalFunction 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
A reference index marks unification across slots, [KF99]'s #1 and #2; values bearing one index are unified.
Equations
Instances For
A slot constraint is a syntactic constraint on a slot ([KF99], Figure 12).
- locMinus : SlotConstraint
[loc -]requires the slot to occur left-isolated, not VP-internal. - negMinus : SlotConstraint
[neg -]forbids negating the slot. - refEmpty : SlotConstraint
[ref ∅]marks the slot as no operator, "in the sense of binding the reference of something else".
Instances For
Equations
- ConstructionGrammar.instDecidableEqSlotConstraint 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
A slot in a construction's form has a filler, a headedness flag, and Kay and Fillmore's
lexicality of the position, where lex := none leaves it unspecified; their maximality is not
stored, since a head is nonmaximal and every other daughter maximal. A slot's semantics bears
its refIdx, and a predicate phrase that does not realize its own subject bears the index of that
subject requirement as its subjIdx. Coinstantiation, which covers raising and control, unifies a
predicator's subject with the subject requirement of its complement ([KF99],
Figure 13).
- filler : SlotFiller Lex
filleris what fills the slot. - isHead : Bool
isHeadrecords whether the slot is the head of the construction. - lex : Option Bool
lexsays whether the position is a word,some truefor a word-level slot. - gf : Option GrammaticalFunction
- refIdx : Option RefIndex
refIdxis the index of the slot's semantics. - subjIdx : Option RefIndex
subjIdxis the index of the slot's unrealized subject requirement. - constraints : List SlotConstraint
constraintslists the slot's syntactic constraints.
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 is the form side of a construction, a sequence of slots.
Equations
- ConstructionGrammar.TypedForm Lex = List (ConstructionGrammar.Slot Lex)
Instances For
A slot holds a phrase in a word-level position when its filler is phrasal and its position a word, 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.lex = some true)
Instances For
Equations
- ConstructionGrammar.instDecidableIsPhraseInWordSlotOfDecidableEq s = { decide := decide (s.filler = ConstructionGrammar.SlotFiller.phrasal) && decide (s.lex = some true), reflects_decide := ⋯ }
Derived specificity #
The derived specificity of a form is 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
The number of distinct unification indices in a form, on slots and on their subject requirements.
Equations
- ConstructionGrammar.refGroupCount form = (List.flatMap (fun (s : ConstructionGrammar.Slot Lex) => s.refIdx.toList ++ s.subjIdx.toList) 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 is a learned pairing of form and meaning. The meaning pole is typed by the
domain that owns the construction, such as a composition rule or a presupposition, with Unit
for a purely formal record or a defective, form-only construction.
- form : TypedForm String
formis the form pole. - meaning : Sem
meaningis the meaning pole. - pragmaticPoint : Bool
pragmaticPointrecords 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
Equations
- One or more equations did not get rendered due to their size.
Instances For
A construction's specificity is derived from its slot structure.
Equations
Instances For
c.map f reinterprets the meaning pole of c along f, keeping the form.
Equations
- ConstructionGrammar.Construction.map f c = { form := c.form, meaning := f c.meaning, pragmaticPoint := c.pragmaticPoint }
Instances For
A construction is fully compositional when the universal combination schemata alone analyze it, when its form is fully abstract and it carries no pragmatic point. This is a proxy for [Mul13]'s structural criterion, approximating what [KM19] survey as a continuum.
Equations
- c.IsFullyCompositional = (c.specificity = ConstructionGrammar.Specificity.fullyAbstract ∧ c.pragmaticPoint = false)
Instances For
Equations
- One or more equations did not get rendered due to their size.
A construction is a formal idiom in the sense of [FKOC88] §1.1.3, a
lexically open idiom, when it is a syntactic pattern rather than a lexically filled expression.
The distinction is a cline (fn. 3), which Specificity discretizes.
Equations
Instances For
Equations
- ConstructionGrammar.instDecidableIsFormalIdiom c = { decide := !decide (c.specificity = ConstructionGrammar.Specificity.lexicallySpecified), reflects_decide := ⋯ }