Basic-filler-phrase and second DTR's QUE

The current version of the Head Filler Rule, which is a natural choice for a wh-question phrase, inherits from basic-filler-rule which restricts its second daughter to be QUE-empty:

basic-filler-phrase := binary-phrase & phrasal &
  [ SYNSEM [ LOCAL.CAT.VAL [ COMPS < >,
                             SPR < > ],
	     NON-LOCAL.SLASH 0-dlist ],
    ARGS < [ SYNSEM [ LOCAL #slash & local &
			    [ CAT.VAL [ SUBJ olist,
					COMPS olist,
					SPR olist ],
			      CTXT.ACTIVATED + ],
		      NON-LOCAL.SLASH 0-dlist ] ],
	   [ SYNSEM [ LOCAL.CAT [ VAL.COMPS olist ],
		      NON-LOCAL [ SLASH 1-dlist &
					[ LIST [ FIRST #slash,
						 REST < > & #last ],
					  LAST #last ],
				  QUE 0-dlist,
				  REL 0-dlist ] ] ] > ].

The same constraint comes from yet another side, from the interrogative clause which in turn inherits from this:

basic-non-rel-clause := clause & head-compositional &
  [ SYNSEM.NON-LOCAL.REL 0-dlist,
    HEAD-DTR.SYNSEM [ LOCAL.CONT.HOOK [ INDEX #index,
					ICONS-KEY.IARG1 #index,
					CLAUSE-KEY #index ],
		      NON-LOCAL [ QUE 0-dlist,
				  REL 0-dlist ] ],
    C-CONT [ RELS <! !>,
	     HCONS <! !> ] ].

However it seems like this precludes sentences of the Who did what type.

Should I remove the constraint on the matrix.tdl level or create new types?

I’d be interested to see what the ERG does here, since I’m fairly sure these types haven’t been modified too much since importing from the ERG, and ERG 1214 at least (so well post Matrix import of the ERG types) is just fine with Who do you think typed what?

Here’s HFR from the version of the ERG that I have (it may not be the latest one but it parses Who did what:

basic_head_filler_phrase := binary_punct_phrase & phrasal &
  [ SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >,
				 SPCMPS < > ],
			   POSTHD + ],
		     CONJ cnil ],
	     NONLOC.SLASH 0-dlist,
             PUNCT.PNCTPR #ppair ],
    ARGS < [ SYNSEM [ LOCAL #slash & local &
			    [ CAT.VAL [ COMPS *olist*,
					SUBJ *olist* ],
			      CTXT.ACTIVATED + ],
		      NONLOC.SLASH 0-dlist ] ],
           [ SYNSEM [ LOCAL [ CAT [ HEAD verbal,
                                    VAL.COMPS < > ],
                              CONT.HOOK [ INDEX.--TPC + ] ],
		      NONLOC [ SLASH 1-dlist &
					[ LIST [ FIRST #slash,
						 REST < > & #last ],
					  LAST #last ],
                               REL 0-dlist ],
                      PUNCT [ LPUNCT lparen_or_dq_or_no_punct,
                              PNCTPR #ppair ] ] ] > ].

So it doesn’t have that constraint on QUE? That’s a good indication that your proposal is right!