Projectivity and its relaxations #
A dependency graph is projective when the positions each position dominates form a contiguous stretch of the sentence. Natural language is not always projective, so the literature weakens the constraint in several directions: planarity bans crossing arcs, well-nestedness bans interleaved subtrees, and gap degree counts the discontinuities a single position may show.
This file defines those constraints and proves the inclusions among them that hold on forests. The witnesses separating the constraints are the source papers' own figures, and live in their study files.
Main definitions #
Graph.IsProjective: every yield is an interval.Graph.IsArcProjectiveis its arc form, every arc spanning only positions its head dominates.Graph.IsPlanar: no two links cross.Graph.InterleaveandGraph.IsWellNested: subtrees that interleave, and the ban on interleaving subtrees neither of whose roots dominates the other.Graph.gapDegree: the greatest number of discontinuities in the projection of a position.Graph.crossings: the number of crossing pairs of links.
Main statements #
Graph.isProjective_iff_gapDegree_eq_zeroandGraph.isPlanar_iff_crossings_eq_zero: each binary constraint is the least value of a count.Graph.IsProjective.isPlanarandGraph.IsPlanar.isWellNested: on forests, projective graphs are planar and planar graphs are well-nested.Graph.IsPlanar.root_mem_gapandGraph.IsPlanar.isProjective_of_isBot: every gap of a planar tree contains the root, so a planar tree rooted at a sentence boundary is projective.
References #
The binary constraints: projectivity, planarity, well-nestedness #
A dependency graph is projective if the positions dominated by any one position are order-convex ([KN06], Definition 3).
Equations
- g.IsProjective = ∀ (v : Fin n), (g.yield v).OrdConnected
Instances For
Positions a b c d alternate if a < c < b < d, so that the pairs
{a, b} and {c, d} strictly interleave.
Equations
- DependencyGrammar.Alternate a b c d = (a < c ∧ c < b ∧ b < d)
Instances For
A dependency graph is planar if no two links alternate, so that its arcs can be drawn above the sentence without crossing ([KN06], Definition 4).
Equations
- g.IsPlanar = ∀ ⦃a b c d : Fin n⦄, g.Linked a b → g.Linked c d → ¬DependencyGrammar.Alternate a b c d
Instances For
The subtrees at v and w interleave if each contributes two positions
and the two pairs alternate.
Equations
- g.Interleave v w = ∃ a ∈ g.yield v, ∃ b ∈ g.yield v, ∃ c ∈ g.yield w, ∃ d ∈ g.yield w, DependencyGrammar.Alternate a b c d
Instances For
A dependency graph is well-nested if interleaved subtrees are never disjoint, one of the two roots always dominating the other ([KN06], Definition 8).
Equations
- g.IsWellNested = ∀ (v w : Fin n), g.Interleave v w → DependencyGrammar.Dominates g v w ∨ DependencyGrammar.Dominates g w v
Instances For
Projectivity, unfolded: nothing between two dominated positions escapes.
Equations
- One or more equations did not get rendered due to their size.
The arc form of projectivity ([dMN19] §2.4, after Lecerf, Hays, Gaifman and Marcus): every position between the endpoints of an arc is dominated by its head.
Equations
- g.IsArcProjective = ∀ ⦃h d : Fin n⦄, g.Adj h d → ∀ w ∈ Set.uIcc h d, DependencyGrammar.Dominates g h w
Instances For
Under the arc form, everything between a position and one it dominates is dominated by it.
The two formulations of projectivity agree: every yield is an interval iff every arc spans only positions dominated by its head.
Equations
- DependencyGrammar.instDecidableIsArcProjective g = decidable_of_iff g.IsProjective ⋯
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Gap degree #
The projection is strictly increasing.
The gap degree of a position counts the discontinuities in its projection, the adjacent members more than one position apart ([KN06], Definition 6).
Equations
- g.gapDegreeAt v = List.countP (fun (p : Fin n × Fin n) => decide (1 < ↑p.2 - ↑p.1)) ((g.projection v).zip (g.projection v).tail)
Instances For
The gap degree of a graph is the maximum over its positions.
Equations
- g.gapDegree = Finset.univ.sup g.gapDegreeAt
Instances For
Crossings #
The number of crossing link pairs, counted as quadruples a < c < b < d
carrying links {a, b} and {c, d}. Each crossing pair contributes once,
since of the two ways to order the pairs only one alternates.
Equations
- g.crossings = {x : Fin n × Fin n × Fin n × Fin n | g.Linked x.1 x.2.1 ∧ g.Linked x.2.2.1 x.2.2.2 ∧ DependencyGrammar.Alternate x.1 x.2.1 x.2.2.1 x.2.2.2}.card
Instances For
Projectivity as gap degree zero #
Planarity is having no crossings — the binary constraint as the least value of the count.
A position has gap degree zero exactly when what it dominates is order-convex.
Projectivity is gap degree zero: the parametric constraint at its least value is the binary one.
The hierarchy on forests #
In a projective graph the head of an arc dominates every position the arc spans, since the head dominates both endpoints and is order-convex.
Every projective forest is planar.
In a planar graph, a link with one endpoint strictly inside the span of another link has its other endpoint inside that span too.
Planarity forbids a link with one endpoint strictly inside another link's span and the other endpoint outside it.
Every planar forest is well-nested: interleaved subtrees would force a link below one of them to straddle a link below the other.
In a planar tree every gap contains the root: if v dominates i and j
but skips a position between them, the root lies strictly between i and
j. So a planar tree rooted at a sentence boundary is projective, which
is why planarity buys nothing once the root is given a boundary
position.
A planar tree whose root precedes every position is projective: a gap would have to contain the root, and nothing lies to its left.
Every projective forest is well-nested, via planarity.