Documentation

Linglib.Theories.Syntax.ConstructionGrammar.Slot

Typed Slot-Filler Representation #

@cite{dunn-2025} @cite{kay-fillmore-1999} @cite{fillmore-kay-oconnor-1988} @cite{goldberg-1995}

Constructions are sequences of slots, where each slot is either fixed (a specific lexeme), open (any word of a given syntactic category), or headed (a phrase headed by a specific lexeme). @cite{dunn-2025}'s variationist CxG treats abstraction as continuous (the proportion of open slots). @cite{kay-fillmore-1999} add grammatical functions, coreference indices, and syntactic constraints to the slot representation.

Architecture #

Slot Lex combines six pieces of information into one type:

FieldTypeSource
fillerSlotFiller Lex@cite{dunn-2025} + @cite{kay-fillmore-1999} (fixed/open/headed)
roleOption String@cite{goldberg-1995} (semantic role)
isHeadBoolArgumentStructure.lean
gfOption GramFunction@cite{kay-fillmore-1999} (grammatical function)
refIdxOption RefIndex@cite{kay-fillmore-1999} (coreference index)
constraintsList SlotConstraint@cite{kay-fillmore-1999} (syntactic constraints)

TypedForm Lex := List (Slot Lex) is the typed form side of a construction.

The existing ConstructionSlot (which only represents open slots) embeds into Slot String via ConstructionSlot.toSlot (§3).

Key definitions #

Verification theorems live in Phenomena/Constructions/Bridge/SlotVerification.lean.

A slot's filler: the representation level of slot content.

@cite{dunn-2025} distinguishes three representation levels for slot content:

  • LEX (lexeme): a specific word form → fixed "must"
  • SYN (syntactic): any word of a given POS category → open_.VERB
  • SEM+ (semantic): any expression satisfying a semantic constraint → semantic "animate" (any animate NP)

@cite{kay-fillmore-1999} add headed phrases: headed "doing".VERB (a VP headed by doing). These are LEX-level (they fix the head lexeme).

Parameterized over Lex (the lexeme type) so the same representation works for strings, morphemes, or phonological forms.

  • fixed {Lex : Type} : LexSlotFiller Lex
  • open_ {Lex : Type} : UD.UPOSSlotFiller Lex
  • headed {Lex : Type} : LexUD.UPOSSlotFiller Lex

    A phrase headed by a specific lexeme. headed "doing".VERB means "a VP headed by doing" — the slot is phrasal, not the bare word. Contrast with fixed "doing".

  • semantic {Lex : Type} : StringSlotFiller Lex

    A semantically constrained slot (@cite{dunn-2025}, SEM+ level). semantic "animate" means any expression satisfying the semantic property "animate". More abstract than SYN (category-based): the filler is constrained by meaning, not by syntactic category.

Instances For
    def ConstructionGrammar.instDecidableEqSlotFiller.decEq {Lex✝ : Type} [DecidableEq Lex✝] (x✝ x✝¹ : SlotFiller Lex✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      @[implicit_reducible]
      instance ConstructionGrammar.instReprSlotFiller {Lex✝ : Type} [Repr Lex✝] :
      Repr (SlotFiller Lex✝)
      Equations
      def ConstructionGrammar.instReprSlotFiller.repr {Lex✝ : Type} [Repr Lex✝] :
      SlotFiller Lex✝Std.Format
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Is this slot open (not lexically fixed)?

        Both open_ (SYN) and semantic (SEM+) slots count as open for abstraction level computation. headed slots do not: they fix the head lexeme even though the phrase is open.

        Equations
        Instances For

          Grammatical function of a valence member (@cite{kay-fillmore-1999}, Figure 12). Distinct from semantic role: a subject (gf) can be an agent, theme, or experiencer (role).

          Instances For
            @[implicit_reducible]
            Equations
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[reducible, inline]

              Referential index for cross-slot coreference constraints. Slots sharing the same RefIndex must have their semantic values unified. @cite{kay-fillmore-1999} use #1, #2, etc. to express identity between a construction's semantic arguments and its valence members' semantic values.

              Equations
              Instances For

                Syntactic constraint on a slot (@cite{kay-fillmore-1999}, Figure 12).

                Instances For
                  @[implicit_reducible]
                  Equations
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    A slot in a construction: filler content + semantic role + headedness.

                    Subsumes ConstructionSlot (which only represents open slots) by adding the fixed/open distinction via SlotFiller. Fixed slots (like "let" in let alone) have role := none since they carry no independent semantic role.

                    • filler : SlotFiller Lex

                      What fills this slot: a specific lexeme, open category, or headed phrase

                    • role : Option String

                      Semantic role label (agent, theme, etc.), if any

                    • isHead : Bool

                      Whether this slot is the head of the construction

                    • gf : Option GramFunction

                      Grammatical function (subj, comp, obj, pred) — @cite{kay-fillmore-1999}

                    • 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
                      @[implicit_reducible]
                      instance ConstructionGrammar.instDecidableEqSlot {Lex✝ : Type} [DecidableEq Lex✝] :
                      DecidableEq (Slot Lex✝)
                      Equations
                      def ConstructionGrammar.instDecidableEqSlot.decEq {Lex✝ : Type} [DecidableEq Lex✝] (x✝ x✝¹ : Slot Lex✝) :
                      Decidable (x✝ = x✝¹)
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[implicit_reducible]
                        instance ConstructionGrammar.instReprSlot {Lex✝ : Type} [Repr Lex✝] :
                        Repr (Slot Lex✝)
                        Equations
                        def ConstructionGrammar.instReprSlot.repr {Lex✝ : Type} [Repr Lex✝] :
                        Slot Lex✝Std.Format
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]

                          A typed form: the form side of a construction as a sequence of slots.

                          This replaces Construction.form : String with a structured representation that supports computation (abstraction level, specificity derivation).

                          Equations
                          Instances For

                            Proportion of open slots: a continuous [0,1] measure of abstraction.

                            This computes the fraction of slots that are open (SYN or SEM+). @cite{dunn-2025} defines four discrete abstraction orders based on which representation levels appear (1st = all LEX, 2nd = mostly LEX, 3rd = mixed, 4th = all abstract). This function computes the continuous proportion underlying those orders; derivedSpecificity (below) 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.

                              ConditionResult
                              All slots open.fullyAbstract
                              No slots open.lexicallySpecified
                              Mix of fixed and open.partiallyOpen

                              This makes Specificity a derived property rather than a stipulated one: 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

                                Embed an all-open ConstructionSlot as a Slot String.

                                Every ConstructionSlot is an open slot (it only specifies cat : UPOS). The embedding preserves category, role, and headedness.

                                Equations
                                Instances For

                                  Convert an ArgStructureConstruction's slot list to a TypedForm.

                                  Equations
                                  Instances For

                                    All-open slots are always open (by construction).

                                    def ConstructionGrammar.hasConstraint {Lex : Type} (form : TypedForm Lex) (c : SlotConstraint) :
                                    Bool

                                    Does any slot in the form bear a given constraint?

                                    Equations
                                    Instances For
                                      def ConstructionGrammar.refGroupCount {Lex : Type} (form : TypedForm Lex) :

                                      Count of distinct coreference groups in a form.

                                      Equations
                                      Instances For