WG Network Integration #
Connects Core.Inheritance (Hudson's isA/prop network model) to the
dependency grammar module so that word classes and their argument structures
live in a single WG network. @cite{hudson-2010}
Argument structures are inherited via default inheritance: a transitive verb inherits from verb, but a passive can override locally (the most specific value wins — what @cite{hudson-2010} calls the "Best Fit Principle").
Subject-auxiliary inversion is modeled as subtype inheritance: the inverted auxiliary (Hudson uses both "inverted" and "interrogative" for the same word-class subtype, viewed from form vs. semantic side — see §11.6.1, p. 308) is a subtype of auxiliary that locally overrides the subject's direction from left to right, following @cite{hudson-2010}'s treatment of inversion as a word-class subtype rather than a movement rule.
Nodes in a WG network: word classes, dependency relations, or directions.
- wordClass (name : String) : WGNode
- depRel (rel : UD.DepRel) : WGNode
- dir (d : DepGrammar.Dir) : WGNode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- WordGrammar.instReprWGNode = { reprPrec := WordGrammar.instReprWGNode.repr }
Equations
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.wordClass a) (WordGrammar.WGNode.wordClass b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.wordClass name) (WordGrammar.WGNode.depRel rel) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.wordClass name) (WordGrammar.WGNode.dir d) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.depRel rel) (WordGrammar.WGNode.wordClass name) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.depRel a) (WordGrammar.WGNode.depRel b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.depRel rel) (WordGrammar.WGNode.dir d) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.dir d) (WordGrammar.WGNode.wordClass name) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.dir d) (WordGrammar.WGNode.depRel rel) = isFalse ⋯
- WordGrammar.instDecidableEqWGNode.decEq (WordGrammar.WGNode.dir a) (WordGrammar.WGNode.dir b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Relation labels for property links in a WG network. In @cite{hudson-2010}'s terms, these are the named relations that connect word-class nodes to their syntactic properties.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- WordGrammar.instReprWGRel = { reprPrec := WordGrammar.instReprWGRel.repr }
Equations
- WordGrammar.instDecidableEqWGRel.decEq (WordGrammar.WGRel.argSlot a) (WordGrammar.WGRel.argSlot b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- WordGrammar.instDecidableEqWGRel.decEq (WordGrammar.WGRel.argSlot idx) (WordGrammar.WGRel.slotDir idx_1) = isFalse ⋯
- WordGrammar.instDecidableEqWGRel.decEq (WordGrammar.WGRel.slotDir idx) (WordGrammar.WGRel.argSlot idx_1) = isFalse ⋯
- WordGrammar.instDecidableEqWGRel.decEq (WordGrammar.WGRel.slotDir a) (WordGrammar.WGRel.slotDir b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Abbreviation for a WG inheritance network.
Instances For
Create an isA link between word classes.
Equations
- WordGrammar.isALink child parent = { kind := Core.Inheritance.LinkKind.isA, source := WordGrammar.WGNode.wordClass child, target := WordGrammar.WGNode.wordClass parent }
Instances For
Create a property link for an argument slot's dependency relation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Create a property link for an argument slot's direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Look up one argument slot from the network for a word class, using
default inheritance. Returns none if the slot is not defined.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Resolve the full argument structure for a word class by collecting slots 0, 1, 2, ... until one is not found. Uses default inheritance, so locally specified slots override inherited ones.
Equations
- WordGrammar.resolveArgStr net wc maxSlots = { slots := WordGrammar.resolveArgStr.go net wc 0 maxSlots [] }
Instances For
Equations
- One or more equations did not get rendered due to their size.
- WordGrammar.resolveArgStr.go net wc idx 0 acc = acc.reverse
Instances For
A WG network encoding the English auxiliary word-class hierarchy, following @cite{hudson-2010}:
verbhas slot 0 = nsubj/left (subject precedes verb by default)transitiveisAverb, adds slot 1 = obj/rightpassiveisAtransitive, overrides slot 1 to obl/right (by-phrase)auxiliaryisAverb, adds slot 1 = aux/right (main verb)inverted_auxiliaryisAauxiliary, overrides slot 0 direction to right — the subject follows the auxiliary in questions
The last point is the key to subject-auxiliary inversion: the inverted
auxiliary is a subtype of auxiliary that locally overrides the subject's
position. Default inheritance does the rest — the inverted auxiliary
inherits nsubj from verb (via auxiliary) but gets direction = right
from its own local specification.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A transitive verb inherits nsubj/left from verb and adds obj/right
locally — the network-derived argStr matches the manual argStr_VN
(modulo optional fields that default).
A passive verb's locally specified slot 1 (obl/right) overrides the inherited transitive slot 1 (obj/right) — default inheritance in action.
The non-inverted auxiliary inherits nsubj/left from verb for slot 0.
The network-derived arg structure for a transitive verb has the same
slots as the manually defined argStr_VN.
The interrogative/inverted auxiliary inherits nsubj from verb (via auxiliary)
but its locally specified direction (right) overrides the inherited
direction (left). This is Hudson's subtype analysis of inversion
(@cite{hudson-2010} §11.6.1, Fig 11.13): the inverted auxiliary is not
a separate lexical rule — it's a word-class subtype.
The inverted auxiliary inherits its main-verb slot (aux/right)
from auxiliary without overriding it — only the subject direction
changes.
The full argument structure for the non-inverted auxiliary: nsubj/left (inherited from verb) + aux/right (local).
The full argument structure for the inverted auxiliary: nsubj/right (local override) + aux/right (inherited from auxiliary).
Map clause type to the word class that licenses the auxiliary in that context. Matrix questions require an interrogative auxiliary (subject follows); all other clause types use the default auxiliary (subject precedes).
Equations
- WordGrammar.wordClassForClauseType Features.ClauseForm.matrixQuestion = "inverted_auxiliary"
- WordGrammar.wordClassForClauseType x✝ = "auxiliary"
Instances For
License a dependency tree via the WG network: look up the word class
for the clause type, resolve its argument structure from the network, and
check the tree satisfies it. This is the end-to-end chain:
ClauseForm → wordClass → network → argStr → satisfiesArgStr.
Equations
- WordGrammar.wgLicenses net t auxIdx ct = DepGrammar.satisfiesArgStr t auxIdx (WordGrammar.resolveArgStr net (WordGrammar.wordClassForClauseType ct))