To first answer Woodley’s most recent question, the phrase “the Gulf of Mexico basin” fails to parse because of a still incomplete account in the ERG of complex proper names. In general, English does not like post-modified nominals to be pre-noun modifiers ("*the friend of Bill mother", “*your chair near me leg”). But some nouns such as “university” can combine with a following PP and have the resulting nominal serve as a pre-noun modifier, as in “the University of Nevada campus”. The ERG 2018 only has about ten nouns that belong to this lexical class, including “bank”, “board”, and “state”, but clearly there are quite a few more. I don’t yet know how to predict which nouns belong to this class, nor do I know of a resource that would give them to me, so help on either front would be welcome. Clearly, “gulf” should be in this class.
The failure to parse the original sentence that started this thread is also for a second reason. The sentence uses the noun “tectonics”, but unfortunately ERG 2018 only has the adjective “tectonic”, which means that the lemma is not unknown, so we don’t use the POS-tag-based machinery to propose a lexical entry for the plural noun “tectonics”. You can perhaps see why we’re reluctant to always propose POS-tag-based entries for every word in every sentence, but this means we have to count on the manually produced lexicon to be exhaustive about the full range of lexical entries that have the same lemma. Thus it is simply a bug in ERG 2018 that it is lacking the noun entry, presumably always a plural, for “tectonics”.
Now to the more general question about how to debug when there is no parse for a sentence, or no correct parse. In addition to the good advice others have offered, to gradually simplify the sentence until you can isolate which phrase the grammar rejects, you can also use the interactive unifier, both in the LKB and ACE. I’ll illustrate for ACE, since the LKB already has some usable documentation in Ann’s book on how to do this. For ACE, view the parse chart for the failed parse, and if there is an edge in the topmost cell that looks promising to you, find out why the grammar rejects it as a good parse by seeing why it does not unify with one of the root symbols, usually `root_informal’. Do this by bringing up the feature structure for the root as follows, in the same terminal window where you asked to view the parse chart:
:i root_informal
Then right-click on the edge in the chart that you think should be a good spanning analysis for the sentence, and drag it onto the outermost node in the root feature structure. ACE will then show you which feature value(s) fail to unify (for example the SLASH value for an edge whose parse tree shows the top node as S/PP).
One additional useful tool in ACE for isolating sources of grammar errors is the menu item “Filter others” that you’ll see when you right-click on an edge in the parse chart. If you select that menu choice, ACE will hide all of the edges that don’t use this edge. So if you’re sure that the right parse should make use of a lexical edge that you see, use the filter mechanism to hide everything that is irrelevant, and if you do this a few times, you can often quickly see in the reduced chart where the parser has failed to propose an edge for some span of the sentence.
If you’re ambitious, when the problem seems to be a lexical gap (as it was twice for the original sentence), you might try adding the missing entries to the `lexicon.tdl’ file, recompile (ACE) or reload (LKB) the grammar, and try parsing the sentence again. For our sentence, the missing two entries look like this (I know they look a bit obscure, but they are just variants of existing entries of the same classes, so you can mostly copy and edit):
tectonics_n1 := n_-_c-pl_le &
[ ORTH < “tectonics” >,
SYNSEM [ LKEYS.KEYREL.PRED “_tectonics_n_1_rel”,
LOCAL.AGR.PNG png-irreg,
PHON.ONSET con ] ].
gulf_n1 := n_pp_c-of-lhc_le &
[ ORTH < “gulf” >,
SYNSEM [ LKEYS.KEYREL.PRED “_gulf_n_of_rel”,
PHON.ONSET con ] ].
With these two entries added, the top-ranked parse for the original sentence now looks okay, confirming our hypotheses about what was wrong with the grammar this time.
Dan