Enhanced Dependencies #
@cite{de-marneffe-nivre-2019}
Basic dependency trees enforce a unique-heads constraint: every word (except root) has exactly one head. This means certain predicate-argument relations that hold semantically cannot be represented as edges in the tree:
- Shared dependents in coordination: "John sees and hears Mary" — Mary is obj of both verbs, but the tree can only attach her to one
- Controlled subjects: "Students forgot to come" — "students" is the semantic subject of "come" but has no edge to it
- Relative clause gaps: "the book that John read" — "book" is the semantic object of "read" but has no edge to it
Enhanced dependencies solve this by relaxing the tree to a directed graph where words can have multiple heads, making implicit predicate-argument relations explicit.
Key Result #
For each phenomenon (coordination, control, relative clauses), we prove:
- The basic tree has an unrepresented argument (
basic_tree_loses_*) - The enhanced graph recovers it (
enhanced_recovers_*) - The enhanced graph is a strict superset of the basic tree (
enhancement_preserves_basic) - The enhanced graph violates unique-heads — confirming it's a graph, not a tree
Bridges #
- →
Coordination.lean:enhanceSharedDepsconverts implicit shared deps to graph edges - →
LongDistance.lean:fillGapconverts gap → explicit argument edge - →
DependencyLength.lean: enhanced graphs have ≥ total dep length (more edges) - →
NonProjective.lean: enhanced graphs can be non-projective
Enhancement type: what kind of implicit relation is being made explicit. Each variant corresponds to a phenomenon where DepTree loses information.
- controlSubject : EnhancementType
- relClauseGap : EnhancementType
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extract the basic tree edges from a graph: for each word, keep only the first incoming edge (deterministic selection preserving unique-heads).
Equations
- g.basicDeps = List.filterMap (fun (i : ℕ) => List.find? (fun (x : DepGrammar.Dependency) => x.depIdx == i) g.deps) (List.range g.words.length)
Instances For
The enhanced edges: those in the graph but not in the basic tree. These are the edges that the unique-heads constraint forces us to drop.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A word has an "unrepresented argument" in a basic tree if it's semantically an argument of some head (per the enhanced graph) but has no edge to that head in the basic tree. This is the core problem enhanced deps solve.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Enhanced graph well-formedness: acyclic, but NO unique-heads check. This is the relaxation that distinguishes DepGraph from DepTree.
Equations
- g.isWellFormed = DepGrammar.isAcyclic { words := g.words, deps := g.deps, rootIdx := g.rootIdx }
Instances For
Basic tree for "Students forgot to come". Students (0) attaches as nsubj of forgot (1) only.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Enhanced graph: adds students as nsubj of come.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coordination: Mary (idx 4) has an unrepresented argument in the basic tree. She is semantically obj of hears (3), but the tree only attaches her to sees (1).
Control: Students (idx 0) has an unrepresented argument in the basic tree. They are semantically nsubj of come (3), but the tree only attaches them to forgot (1).
Relative clause: Book (idx 1) has an unrepresented argument in the basic tree. It is semantically obj of read (4), but the tree only has acl from read.
The enhanced graph for coordination has strictly more edges than the basic tree.
The enhanced graph for control has strictly more edges than the basic tree.
The enhanced graph for relative clauses has strictly more edges than the basic tree.
Enhancement preserves basic edges: every edge in the basic tree for coordination is also in the enhanced graph. The enhanced graph is a superset.
Enhancement preserves basic edges for control.
Enhancement preserves basic edges for relative clauses.
The coordination enhanced graph violates unique-heads — it's genuinely a graph. Mary (idx 4) has two incoming edges (obj from both sees and hears).
The control enhanced graph violates unique-heads. Students (idx 0) has two incoming edges (nsubj from both forgot and come).
The relative clause enhanced graph violates unique-heads. Book (idx 1) has two incoming edges (det from the, obj from read).
The basic trees DO satisfy unique-heads (they are trees).
Enhanced graphs are well-formed (acyclic).
Total dep length on an enhanced graph (computed over all edges including enhanced ones). Since the graph has strictly more edges than the basic tree, the total dep length is ≥.
Equations
- DepGrammar.EnhancedDependencies.enhancedTotalDepLength g = List.foldl (fun (acc : ℕ) (d : DepGrammar.Dependency) => acc + DepGrammar.DependencyLength.depLength d) 0 g.deps
Instances For
Enhanced dep length ≥ basic dep length for coordination example. More edges → more total length.
Enhanced dep length ≥ basic dep length for relative clause example.
The basic relative clause tree IS projective.
The coordination enhanced graph has strictly more edges than the basic tree (enhanced obj edge from hears to Mary).
Classify an enhanced edge by what type of enhancement it represents.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The enhanced edge in the coordination example is classified as coordSharedDep.
The enhanced edge in the control example is classified as controlSubject.