I realized my wh-determiner (for the GM library for wh-question) is not quite done yet because it isn’t doing about QUE. So, an NPs like which book looks just like a regular NP and the reason the whole thing gets a parse at the end is due to simple Head-Complement rule.
So, I am working on that, and seem to be stuck.
Here’s what I did:
wh-determiner-lex := determiner-lex & no-icons-lex-item &
[ SYNSEM.LOCAL.CAT.VAL.SPEC.FIRST [ LOCAL.CONT.HOOK.INDEX #arg0,
NON-LOCAL.QUE <! #arg0 !> ] ].
(I am not sure that’s the right thing to associate QUE with though, but that was my best guess).
The Head-Spec rule doesn’t seem to be copying up non-local features, so, I added this:
my-head-spec-phrase := head-spec-phrase &
[ SYNSEM.NON-LOCAL #nonloc,
HEAD-DTR.SYNSEM.NON-LOCAL #nonloc ].
But this does not seem to have the effect that I want. When I parse and examine the determiner, I see that it’s SPEC’s QUE is nonempty:
However it is empty on the parent NP:
Does anyone have suggestions/explanations?
matrix.tdl already has this:
> ; Head/nexus phrases pass up the REL and QUE values of the head daughter
> ; (which has amalgamated the REL and QUE values of its arguments as in
> ; Sag 1997) to the mother.
> head-nexus-rel-phrase := headed-phrase &
> [ SYNSEM.NON-LOCAL.REL #rel,
> HEAD-DTR.SYNSEM.NON-LOCAL.REL #rel ].
> head-nexus-que-phrase := headed-phrase &
> [ SYNSEM.NON-LOCAL.QUE #que,
> HEAD-DTR.SYNSEM.NON-LOCAL.QUE #que ].
Which should be inherited by head-spec so adding that constraint about non-local shouldn’t have an effect. I wonder if the noun isn’t inheriting from basic-one-arg?
I don’t think the head-spec rule does anything with SPEC’s NON-LOCAL, so any constraints you put there won’t have any effect.
But even if the head-spec rule unifies NON-LOCAL, I think that will cause problems because the constraint that adds something to the SPEC’s QUE will conflict with the noun’s QUE (which should be empty). I think you should be adding to the determiner’s own QUE, not its SPEC’s QUE – I just checked and the ERG uses the determiner’s QUE (in the type d_-_prt-unsp_le).
As Emily said, there are already types to do the bookkeeping for you: the noun should be inheriting from basic-one-arg, which will grab the SPR’s QUE list; and the phrase should be inheriting from head-nexus-que-phrase, which will pass up the noun’s QUE list (which has grabbed the SPR’s QUE list). So all you should need to do is add to the determiner’s QUE list, and make sure everything is of the right type.