Transfer rules feeding each other

I’m working on this year’s MMT set up and I have some rules that I expect to feed each other which don’t — only the first one applies and then the second one is MIA (even though it works in other contexts). This is using ace as the transfer engine. Does anyone have any guesses as to what might be blocking this?

For reference, here is an example of a pair of rules. Each is functioning fine individually, but the first does not feed the second:

makehungry-hungry-mtr := monotonic_omtr &                                                         
[ INPUT [ RELS < [ PRED "_makehungry_v_rel",                                                      
                    LBL #lbl,                                                                     
                    ARG0 #arg0,                                                                   
                    ARG1 x,                                                                       
                    ARG2 #arg1] >,                                                                
           HCONS < > ],
 OUTPUT [ RELS < [ PRED "_hungry_a_rel",                                                         
                   LBL #lbl,                                                                      
                   ARG0 #arg0,                                                                    
                   ARG1 #arg1 ] >,                                                                
          HCONS < > ]].    

hungry-mtr := monotonic_omtr &                                                                     
[ INPUT [ RELS < [ PRED "_hungry_a_rel",                                                          
                    LBL #lbl,                                                                     
                    ARG0 #arg0,                                                                   
                    ARG1 #arg1  ] > ],                                                            
  OUTPUT [ RELS < [ PRED "_hungry_v_rel",                                                         
                   LBL #lbl,                                                                      
                   ARG0 #arg0,                                                                    
                   ARG1 #arg1 ] > ] ].                                                            

I tried fiddling around with making them optional or not, but that doesn’t seem to impact this issue.

In jaen, we wanted to make sure rules did not confuse English and Japanese predicates, so Ja-Ja rules, Ja-En rules and En-En rules were treated slightly differently.’

In particular during ja-en processing all Japanese predicates were prefixed with ja:

(mt:read-transfer-rules
(list
(lkb-pathname (parent-directory) “jacy.mtr”))
“SL accomodation phase”
:filter nil :in :in :before “preprocess”)

:before “preprocess” adds the ‘ja:’. (in lkb/script)
input-relation-prefix := “ja:”. in ace/config.tdl

This was to stop ‘rain_n_1’ “rain (en)” and ‘rain_n_1’ "ライン ‘rain’ (ja) being confused :-).

If you are doing something similar, this would stop the output of a rule feeding into the input, but I would then expect to actually see the prefix on the rule, …

It is possible you are marking in/out for transfer rules in some other way, …

Thanks for suggesting this, but I don’t think this is the issue. I’ve got both rules applying for different inputs in the language, it’s just that the second won’t apply to the output of the first.