Sketch of notation for diagramming sentences

Examples from here (more context here).

Note that this is an attempt to combine the diagramming graphics with the associated grammatical function information. An alternative approach -- maybe a better one -- would be to focus first on the graphical primitives alone -- branches, standards, etc -- and then worry later about how to translate grammatical information into those graphical forms.

Kinds of relations:

Name: subject of
Relation: binary -- [e1 e2], e1 is the subject of e2
Function: from subject + VP to sentence?
Graphics: main sequence (~ heads) of e1 e2 above a horizontal line, with a vertical line between them through the horizontal line.
Symbol: subj
Example: Glaciers melt = (subj "Glaciers" "melt")

Name: modifier(s) of
Relation: n-ary -- [e1 .. eN], e1 .. eN-1 are modifiers of eN
Function: from type of eN to type of eN
Graphics: main sequence of eN on a horizontal line, e1 .. eN-1 written on right-slanted lines beneath
Note: modifiers, indirect objects and prepositional phrases are graphically variants, but relations are at best implicit
Symbol: mods
Example: The glacier is melting slowly = (subj (mods "The" "glacier") (mods "slowly" "is melting"))

Name: direct object of
Relation: binary -- [e1 e2], e2 is the direct object of e1
Function: from verb+object to VP?
Graphics: main sequence of e1 e2 above a horizontal line, with a vertical line between them above the horizontal line.
Symbol: dobj
Example: The glacier is slowly destroying the forest =
(subj (mods "The" "glacier") (dobj (mods "the" "forest") (mods "slowly" "is destroying")))

Name: predicate (noun or adjective) of
Relation: binary -- [e1 e2], e2 is a predicate noun or adjective, e1 is a copula or similar verb
Function: from copula+predicative to VP?
Graphics: main sequence of e1 e2 above a horizontal line, with a left-slanted vertical line between them above the horizontal line
Symbol: pred
Example: The glacier is not really dangerous =
(subj (mods "The" "glacier") (pred (mods "not" "is") (mods "really" "dangerous")))
Example: Josiah Budnick is a brilliant professor =
(subj "Josiah Budnick" (pred "is" (mods "a" "brilliant" "professor")))

Name: coordination
Relation: 3-ary -- [e1 e2 e3], e2 and e3 are coordinated with operator e1
Function: from type of e2 and e3 to the same?
Note: not clear how these guys deal with varieties of multiple coordination ('A, B and C' v.s 'A and B and C')
Graphics: main sequences of e2 and e3 are on parallel horizontal lines ("branches"), joined with oblique lines to preceding and/or following sequences as appropriate; operator e1 is along vertical line connecting the two parallels, at the left or right side; joined end is preferred over open end, otherwise left end is preferred over right (??)
Symbol: coord
Example: The professor and her colleagues are studying glaciers and avalanches
(subj (coord "and" (mods "The" "professor") (mods "her" "colleagues")) (dobj "are studying" (coord "and" "glaciers" "avalanches")))
Example: The professor and her colleagues are studying and classifying glaciers
(subj (coord "and" (mods "The" "professor") (mods "her" "colleagues")) (dobj (coord "and" "are studying" "classifying") "glaciers"))

Name: indirect object
Type: binary -- [e1 e2], e2 is the indirect object of e1
Graphics: the main sequence of e2 is written on a horizontal line below the main sequence of e1, connected by a right-slanted oblique line.
Symbol: iobj
Example: Professor Higgins gave her students two projects.
(subj "Professor Higging" (dobj (iobj "gave" (mods "her" students")) (mods "two" "projects")))

Name: prepositional phrase(s)
Relation: each PP is basically 3-ary -- [e1 e2 e3], e2 is a preposition, e3 is its object, e1 is what it modifies (??)
Graphics: e3 is written on a horizontal line below the main sequence of e1, connected by a right-slanted oblique line, on which e2 is written.
Symbol: pmods, pp -- pmods is exactly like mods, pp is like mods but binary (see below for usage)
PROBLEM: multiple modifying PPs are treated like other multiple modifiers -- see p. 9 -- not clear how they should interact...
Options would be
1. to treat PPs as literal modifiers --
"studied in Antarctica during the 1950s" == (mods (pp "in" "Antarctica") (pp "during" (mods "the" "1950s")) "studied")
2. to add a special pmod operator to distinguish pp and other modifiers --
"studied in Antarctica during the 1950s" == (pmods (pp "in" "Antarctica") (pp "during" (mods "the" "1950s")) "studied")
3. to curry the PPs --
"studied in Antarctica during the 1950s" == (pp (pp "studied" "in" "Antarctica") "during" (mods "the" "1950s"))
My conclusion: (2) is the most coherent option, though I might change my mind.
Function: pmods is like mods, pp is from P+NP to Modifier?
Example: Professor Higgins studied glaciers in Antarctica during the 1950s.
(subj "Professor Higgins" (dobj (pmods (pp "in" "Antarctica")(pp "during" (mods "the" "1950s")) "studied") "glaciers")