Nanosyntax: phrasal spellout over feature trees #
In nanosyntax a lexical entry pairs an exponent with a stored tree of features, one feature per
node. Caha, after Starke, lets an entry spell out a syntactic tree when the stored tree has a
subtree identical to it, the Superset Principle, which is RoseTree.IsSubtree.
When several entries match, the Elsewhere Condition prefers the one that matches in fewer
environments, and since a matching stored tree exceeds the syntactic tree by exactly its
superfluous material, that is the matching entry with the smallest tree. The Foot Condition asks
the lowest feature of a stored tree to occur in what it spells out. Taraldsen's matching relation
instead pairs a node of the stored tree with the root of the syntactic tree and requires their
daughters to match each other both ways; it agrees with containment on right-branching chains,
where tree spellout is also the spellout of the containment engine.
Main definitions #
LexicalEntry: a stored feature tree paired with an exponent.LexicalEntry.Matches,treeSelect,treeSpellout: the Superset Principle and the Elsewhere Condition.foot,FootConditionMet: the Foot Condition.Matching: Taraldsen's matching relation.chainTree,phrase,LexicalEntry.ofSupersetRule: right-branching chains, and the containment engine's entries read as chain entries.
Main results #
LexicalEntry.le_iff: specificity is reverse containment of the stored trees.treeSelect_isElsewhereWinner: smallest-tree selection picks an Elsewhere winner.footConditionMet_of_matches_chainTree: an entry storing a chain meets the Foot Condition wherever it matches, so the condition constrains only entries with branching trees.matching_chainTree_iff,exists_matching_not_isSubtree: Taraldsen's matching is containment on chains but ignores the order of daughters in general.treeSpellout_ofSupersetRule: on chains, tree spellout is the containment engine's spellout.
Implementation notes #
- Trees are over any type of labels. The lexicalization algorithm
(
Nanosyntax/Lexicalization.lean) takes labels inOption F: a node labelled by a feature is that feature's phrase over its complement, and an unlabelled node joins an evacuated constituent to the remnant it left. A bare head merged as a complement is not told apart from a phrase of one feature, so a stored tree does not record whether its foot is unary or binary, the difference Starke draws between suffixes and prefixes. - Matching is the rigid Superset Principle of Caha's (6), identity of a subtree. The algorithm follows the later formulation in which evacuation leaves no trace, so it needs no matching that ignores traces.
References #
Lexical entries and matching #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
An entry matches a syntactic tree when its stored tree has a subtree identical to it, the Superset Principle of [Cah09] (6).
Instances For
Equations
- Morphology.Nanosyntax.instDecidableMatchesOfDecidableEq e t = { decide := decide (t ∈ e.tree.subtrees), reflects_decide := ⋯ }
A lexical entry is a rule of the exponence core, applicable where it matches.
Equations
- One or more equations did not get rendered due to their size.
One entry is at least as specific as another exactly when the other's stored tree contains its stored tree.
Spellout #
Equations
- Morphology.Nanosyntax.instDecidableRelLexicalEntryRoseTreeApplies e t = { decide := decide (t ∈ e.tree.subtrees), reflects_decide := ⋯ }
treeSelect entries t is the matching entry with the smallest stored tree, the first listed
on ties.
Equations
- Morphology.Nanosyntax.treeSelect entries t = entries.selectBy (fun (e : Morphology.Nanosyntax.LexicalEntry F α) => OrderDual.toDual e.tree.numNodes) t
Instances For
treeSpellout entries t is the exponent of the entry treeSelect picks.
Equations
- Morphology.Nanosyntax.treeSpellout entries t = Option.map (fun (x : Morphology.Nanosyntax.LexicalEntry F α) => x.exponent) (Morphology.Nanosyntax.treeSelect entries t)
Instances For
Smallest-tree selection picks an Elsewhere winner.
The spelled-out exponent is the exponent of an Elsewhere winner.
A tree is spelled out exactly when some entry matches it.
Spellout gaps propagate to containing trees, since an entry matching a tree matches its subtrees.
The Foot Condition #
The foot of a tree is its lowest feature on the complement line, its last leaf.
Equations
- Morphology.Nanosyntax.foot t = t.leafList.getLast ⋯
Instances For
The Foot Condition ([TTML18] (39)) requires a syntactic tree an entry spells out to contain the foot of the entry's stored tree.
Equations
Instances For
Equations
- Morphology.Nanosyntax.instDecidableFootConditionMetOfDecidableEq e t = { decide := decide (List.elem (Morphology.Nanosyntax.foot e.tree) t.leafList = true), reflects_decide := ⋯ }
The Foot Condition holds of every syntactic tree that shares its foot with the stored tree.
Chains #
chainTree feat n is the right-branching chain [feat n [… [feat 0]]].
Equations
- Morphology.Nanosyntax.chainTree feat 0 = RoseTree.leaf (feat 0)
- Morphology.Nanosyntax.chainTree feat n.succ = RoseTree.node (feat (n + 1)) [Morphology.Nanosyntax.chainTree feat n]
Instances For
The right-branching phrase a feature sequence builds on its first feature, each feature taking what is below it as its complement.
Equations
- Morphology.Nanosyntax.phrase f₀ fs = List.foldl (fun (t : RoseTree F) (f : F) => RoseTree.node f [t]) (RoseTree.leaf f₀) fs
Instances For
An entry storing a chain meets the Foot Condition wherever it matches.
Taraldsen's matching relation #
MatchesRoot s u holds when the roots of s and u carry the same feature and every
daughter of each root-matches some daughter of the other, the two clauses of [Tar18]
(3) and [TTML18] (35).
Equations
- One or more equations did not get rendered due to their size.
Instances For
A syntactic tree s matches a stored tree t when the root of s root-matches some node of
t.
Equations
- Morphology.Nanosyntax.Matching s t = ∃ (u : RoseTree F), u.IsSubtree t ∧ Morphology.Nanosyntax.MatchesRoot s u
Instances For
On chains, root-matching is equality of depths.
Spellout over containment hierarchies #
An entry of the containment engine read as an entry storing the chain up to its span.
Equations
- Morphology.Nanosyntax.LexicalEntry.ofSupersetRule feat e = { tree := Morphology.Nanosyntax.chainTree feat ↑e.spans, exponent := e.exponent }
Instances For
On chains, tree spellout is the spellout of the containment engine, since containment of chains is comparison of their ranks.