;;; -*- Mode: tdl; Coding: utf-8; -*- ;;; ;;; Copyright (c) 1994-2018 ;;; Dan Flickinger, Rob Malouf, Emily M. Bender ;;; see LICENSE for conditions ;;; ;;; syntax.tdl ;;; ;;; The grammar rules for English ;;; Additions to the Singlish branch of the English Resource Grammar ;;; ;;; Created: Rob Malouf, 3-Nov-1994 ;;; ;;; $Id: syntax.tdl 7479 2010-02-21 23:11:30Z danf $ ;;; Chow Siew Yeng 2020, 2021 ; CSY - changed HEAD basic_verb_or_frag to v_or_a for adj to head sentence ; changing the HEAD type of different types of clauses and phrases ; so for adjectives to be also be able to head them basic_decl_phrase := basic_non_rel_clause & phrasal & [ SYNSEM.LOCAL.CAT [ HEAD v_or_a & [ INV - ], MC bool ], HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #hdtop, INDEX #hdind ], C-CONT [ HOOK [ LTOP #hdtop, INDEX #hdind ], RELS , HCONS , ICONS ] ]. ; CSY 17-12-2020 - comment out HEAD verbal #| basic_head_filler_phrase := binary_punct_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >, SPCMPS < > ], POSTHD + ], CONJ cnil ], NONLOC.SLASH.LIST < >, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL #slash & local & [ CAT.VAL [ COMPS *olist*, SUBJ *olist* ], CTXT.ACTIVATED + ], NONLOC.SLASH.LIST < > ] ], [ SYNSEM [ LOCAL [ CAT [; HEAD verbal, VAL.COMPS < > ], CONT.HOOK [ INDEX.--TPC + ] ], NONLOC [ SLASH.LIST < #slash >, REL.LIST < > ], PUNCT [ LPUNCT lparen_or_dq_or_comma_or_no_punct, PNCTPR #ppair ] ] ] > ]. |# basic_head_filler_phrase := binary_punct_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >, SPCMPS < > ], --SLASHED.BOOL - ], CONJ cnil ], NONLOC.SLASH.LIST < >, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL #slash & local & [ CAT [ VAL [ COMPS *olist*, SUBJ *olist* ], --SLASHED.BOOL - ], CTXT.ACTIVATED + ], NONLOC.SLASH.LIST < > ] ], [ SYNSEM [ LOCAL [ CAT [; HEAD verbal, VAL.COMPS < >, --SLASHED.BOOL + ], CONT.HOOK [ INDEX.--TPC + ] ], NONLOC [ SLASH.LIST < #slash >, REL.LIST < > ], PUNCT [ LPUNCT lparen_or_dq_or_comma_or_no_punct, PNCTPR #ppair ] ] ] > ]. ; 19-11-2020 took away *obllist* from SPR and in hd dtr removed SPR.REST ; so that the daughter can have an empty SPR ; allows for Singlish sentences like he very pretty ; 12-10-2021 added back SPR.REST as the previous change prevented 'and' ; from taking a subject head main clause due to the SPR restriction. ; he swims and he dances. ; the Singlish adj sentence is still permitted basic_head_subj_phrase := head_nexus_rel_phrase & head_final_infl & phrasal & head_compositional & [ SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >, SPR #spr,; & *obllist*, SUBJ *olist* & < anti_synsem_min >, SPEC #spec, SPCMPS < > ] ], CONJ cnil & [ LCHEAD #lch ] ], MODIFD.RPERIPH #rperiph, PUNCT.PNCTPR #ppair ], HD-DTR.SYNSEM [ LOCAL.CAT [ VAL [ COMPS < >, SPR.REST #spr, SPEC #spec ], MC na ], MODIFD.RPERIPH #rperiph, PUNCT [ LPUNCT lital_or_pair_or_comma_or_no_punct, PNCTPR #ppair ] ], NH-DTR.SYNSEM canonical_synsem & [ LOCAL [ CAT [ HEAD subst, VAL [ SUBJ *olist_or_prolist*, COMPS < >, SPR *olist* ] ], CONJ.LCHEAD #lch ], NONLOC.REL.LIST < >, PUNCT [ LPUNCT lital_or_pair_or_comma_or_no_punct, RPUNCT comma_or_rbc_or_pair_or_no_punct ] ] ]. ; CSY 14-1-2021 - added in MC - to prevent adj headed sentences from being ; parsed as n-adj compounds n_adj_intr_cmpnd_phr := basic_n_v-or-adj_cmpnd_phr & [ SYNSEM.LOCAL.CAT.MC -, ARGS < [ ], [ SYNSEM.LOCAL.CAT [ HEAD adj, VAL [ SPR *ocons*, COMPS < > ] ] ] >, C-CONT.RELS ]. ; CSY - changed verbal to v_or_a to allow adjectives to join with subjects for Singlish and ; commented out VFORM fin ; CSY 5-1-2020 - uncommented VFORM as adj now has it ; 6-1-2020 - changed VFORM from fin to fin_or_prp subjh_mc_rule := subjh_rule_decl & head_subj_phrase & clause & """ For sentences like The cat is pretty. The cat pretty. The cat sleeping. """ [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_a & [ VFORM fin_or_prp, TAM indic_tam, PRD -, CASE non_nom ], VAL.SPR *olist*, MC + ], CONT.HOOK [ INDEX.SF #pred ] ], NONLOC.SLASH.LIST < >, PUNCT.RPUNCT.PSF #pred ] ]. ; CSY 3-12-2020 - take away INV + to allow sentences like ; what you want? filler_head_rule_wh_super := binary_rule_left_to_right & head_filler_phrase_wh_fin & wh_interrog_fin & mc_fillhead_phrase & [ SYNSEM.LOCAL [ CAT [ ;HEAD.INV +, VAL.SUBJ *olist* & < anti_synsem_min > ], CONT.HOOK [ LTOP #hdtop, INDEX #index ] ], HD-DTR.SYNSEM.LOCAL [ CAT.MC luk, CONT.HOOK [ LTOP #hdtop, INDEX #index ] ], NH-DTR.SYNSEM [ PUNCT.RPUNCT comma_or_pair_or_no_punct ], C-CONT [ RELS , HCONS , ICONS ] ]. filler_head_rule_wh_root := filler_head_rule_wh_super & [ SYNSEM.LOCAL.CAT.HEAD.INV +, HD-DTR.SYNSEM.LOCAL.CAT.MC na ]. ; CSY 3-12-2020 filler_head_rule_wh_mc := filler_head_rule_wh_super & """ What you want? """ [ SYNSEM.LOCAL.CAT.HEAD.INV -, HD-DTR.SYNSEM.LOCAL.CAT.MC luk ]. ; just for adj headed COMPS ;basic_filler_head_fin_rel_adj_rule := filler_head_rel_super_rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MINORS [ ALTMIN #altmin, ; NORM #norm ], ; ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MINORS.NORM #norm ], ; [ SYNSEM.LOCAL.CAT [ HEAD adj & ; [ MINORS.ALTMIN #altmin ], ; VAL.SUBJ *olist* ] ] > ]. ; CSY 17-12-2020 - rule for adj headed COMPS ;filler_head_fin_np_arel_rule := basic_filler_head_fin_rel_adj_rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG #xarg, ; ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR *olist* ], ; [ SYNSEM.NONLOC.SLASH.LIST < [ CAT.HEAD noun_or_nomger, ; CONT.HOOK.XARG #xarg ] > ] > ]. ; CSY 19-10-2020 - a parallel of the verbal coord rule to use of predicative (nocop) adj for Singlish ; 31-10-2020 - removed intrans_nocop_pred_adj_synsem from the rconj ; 12-2-2021 - removed 'nocop_pred_adj_synsem' from LCONJ because this prevented the adj from ; going through necessary optcomp rule first basic_basic_adj_coord_phr := gen_coord_phr & [ SYNSEM phr_synsem & [ LEX -, LOCAL.CAT [ HEAD adj, VAL.SPCMPS < >, MC #mc ] ], LCONJ-DTR.SYNSEM ;nocop_pred_adj_synsem & [ LOCAL [ CAT [ HEAD adj, MC #mc ], CONT.HOOK.LTOP #ltop ], NONLOC.SLASH.LIST *arglist* ], RCONJ-DTR.SYNSEM [ LOCAL [ CAT [ HEAD adj, MC #mc ], CONT.HOOK.LTOP #ltop ], NONLOC.SLASH.LIST *arglist* ] ]. ; CSY 19-10-2020 - nocop adj version basic_adj_nocop_coord_phr := basic_basic_adj_coord_phr & [ SYNSEM.LOCAL.CAT [ HEAD.PRD #prd, VAL #val ], LCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRD #prd, VAL #val ], RCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRD #prd, VAL #val ] ]. ; CSY 19-10-2020 - nocop adj version ; she pretty and smart. nocop_adj_coord_phr := basic_adj_nocop_coord_phr & norm_coord_phr. ; CSY 19-10-2020 to allow for coordination of nocop adj (Singlish) ; modelled on basic_basic_v_coord_phr ; 9-2-2021 - change SUBJ of mother from synsem &... to inherit from left and right daughters basic_basic_a_nocop_coord_phr := basic_basic_adj_coord_phr & [ SYNSEM.LOCAL [ CAT [ HEAD [ MINORS #mins, --ADDIN #addin ], VAL [ SUBJ #subj, SPR #spr, SPEC #spec] ], CONT.HOOK [ ;LTOP #ltop, XARG #xarg ] ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ --ADDIN #addin & [ ADDPN #pn ] ], VAL [ SUBJ #subj, SPR #spr, SPEC #spec ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ MINORS #mins, --ADDIN.ADDPN #pn ], VAL [ ;SUBJ #subj, SPR #spr, SPEC #spec ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], C-CONT [ HCONS , ICONS ] ]. ; CSY 19-10-2020 - For nocop adj coordination basic_a_coord_phr := basic_basic_a_nocop_coord_phr & basic_adj_nocop_coord_phr. ; CSY 19-10-2020 - without the vform restrictions ; CSY 31-10-2020 - add in HEAD adj, not sure if necessary ; #totest whether the HEAD values are necessary a_nocop_coord_phr := basic_a_coord_phr & nocop_adj_coord_phr & [ SYNSEM.LOCAL.CAT.HEAD adj, LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD adj, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD adj ]. ; CSY 31-10-2020 nocop_coord that prevents overgeneration ; CSY 2-11-2020 add in COMPS <> ; 4-2-2021 take away COMPS < > and instead inherit COMPS from daughters a_nocop_coord_phr_fin := a_nocop_coord_phr & basic_top_coord_event_rule & [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.NORM norm_rel, VAL.COMPS #comps] ] ], LCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRD -, VAL.COMPS #comps ], RCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRD -, VAL.COMPS #comps ], C-CONT.RELS ]. ; CSY 19-11-2020 added in MC - to prevent a sentence from becoming a frag ; 5-1-2021 change to MC na to prevent an adj headed NMC from becoming a frag frag_adj_rule := unary_frag_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD adj & [ MINORS.MIN norm_rel], VAL.COMPS < >, MC na ], CONT.HOOK [ LTOP #lbl, XARG #ind ] ] ] >, C-CONT [ HOOK.LTOP #lbl, RELS.LIST.FIRST [ LBL #lbl, ARG #ind ], HCONS , ICONS ] ]. ; 11-2-2021 - added in MC na for same reasons as above frag_np_rule := frag_nom_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR *olist*, ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD [ CASE acc, MINORS.NORM quantity_or_norm_or_no_rel ] ], CONT.HOOK [ LTOP #ltop, INDEX non_expl ], CONJ cnil ] ] >, C-CONT [ RELS , HCONS , ICONS ] ]. ; CSY 19-1-2021 - add in HEAD verbal to prevent adj from undergoing this ; or to verb cos it's narrower subconj_prdp_pas_phr := subconj_prdp_final_phr & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb & [ VFORM pas ], OPT + ] ] > ]. ; CSY 19-1-2021 - add in HEAD verbal to prevent adj from undergoing this subconj_prdp_prp_phr := subconj_prdp_final_phr & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb & [ VFORM prp ], PUNCT.LPUNCT lparen_or_no_punct ] ] > ]. ;;; new version of adj nocop coord ;;; by modelling after adj_pred_coord instead of the verbal coord basic_adj_nocop_coord_phr2 := adj_coord_phr & basic_basic_adj_coord_phr. adj_nocop_coord_phr := norm_coord_phr & basic_top_coord_event_rule & basic_adj_nocop_coord_phr2 & [ SYNSEM [ LEX -, LOCAL.CAT.HEAD.PRD - ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.PRD -, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.PRD - ]. ; 16-3-2021 a supertype to make a daughter that does not have VFORM fin_or_inf ; 18-3-2021 take away PRD - from HD-DTR so that a prp VP can still undergo this ; and become an RC extracted_subj_phrase_super := extracted_arg_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD.TAM indic_tam, VAL.SPR < >, MC - ], CONT.HOOK.INDEX.SF prop-or-ques ], NONLOC.SLASH.LIST #slash, LEX -, PUNCT #punct ], HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD verbal, ;& [ VFORM fin_or_inf, ;PRD - ], VAL [ SUBJ < gap & [ LOCAL arg-local & [ CAT.HEAD.MINORS.MIN #min, CONT.HOOK [ INDEX #ind ] ], NONLOC.SLASH.LIST #slash, --MIN #min, --SIND #ind & non_expl ] >, COMPS < > ], MC na ], PUNCT #punct ] ]. ; 16-3-2021 same as original extracted_subj_phrase := extracted_subj_phrase_super & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.VFORM fin_or_inf ]. ; 16-3-2021 to allow prp VPs to undergo hd_xsb-fin_c ; 18-3-2021 instead of inheriting from decl_phrase, inherit from supertype to avoid ; inheriting PRD - extracted_subj_phrase_finorprp := extracted_subj_phrase_super & basic_decl_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD.TAM indic_tam, VAL.SUBJ *anti_null* ], CONT [ HOOK.INDEX.SF prop-or-ques ] ], HD-DTR.SYNSEM.LOCAL.CAT [ HEAD.VFORM fin_or_prp, VAL.SUBJ < expressed_non_canonical & [ LOCAL.CAT.HEAD.CASE nom ] > ] ]. extrasubj_finorprp_rule := rule & extracted_subj_phrase_finorprp. ; 16-3-2021 redefine rel_cl so that it takes prp as well rel_cl := basic_rel_cl & clause & phrasal & [ SYNSEM [ LOCAL.CAT.HEAD.VFORM fin_or_inf_or_prp, NONLOC [ QUE.LIST < >, REL.LIST < > ] ] ]. ; 8-3-2021 for rel pn 'one' ; changed POSTHD value from basic_head_filler_phrase ; 9-3-2021 changed back... ; order of arguments changed from basic_head_filler_phrase ; change HEAD value of head daughter from verbal ; 29-9-2021 aded in ORTH constraints to prevent this from unnecessarily going through ; xp_brckt-pr_c basic_head_filler_sg_phrase := binary_punct_phrase & phrasal & [ ORTH [ LB #lb, RB #rb ], SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >, SPCMPS < > ], POSTHD + ], CONJ cnil ], NONLOC.SLASH.LIST < >, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_a, VAL.COMPS < > ], CONT.HOOK [ INDEX.--TPC + ] ], NONLOC [ SLASH.LIST < #slash >, REL.LIST < > ], PUNCT [ LPUNCT lparen_or_dq_or_comma_or_no_punct, PNCTPR #ppair ] ], ORTH.LB #lb ], [ SYNSEM [ LOCAL #slash & local & [ CAT.VAL [ COMPS *olist*, SUBJ *olist* ], CTXT.ACTIVATED + ], NONLOC.SLASH.LIST < > ] ] >, ORTH.RB #rb ]. ; 8-3-2021 changed order of ARGS ; 9-3-2021 changed from binary_rule_left_to_right ; changed HEAD of first ARGS from verbal ; 16-3-2021 took away VFORM fin_or_inf head_filler_rel_rule := binary_rule_right_to_left & rel_cl & basic_head_filler_sg_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, PRD -, MOD < [ --SIND #ind ] >, --ADDIN #addin, MINORS.MIN #min ], VAL [ SUBJ < >, SPR < > ] ], AGR #agr ], MODIFD.RPERIPH na_or_+ ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD v_or_a & [ VFORM #vform,; & fin_or_inf, TAM #tam, AUX #aux, INV #inv, --ADDIN #addin, MINORS.MIN #min ], VAL.SUBJ *olist_or_prolist*, MC - ], CONT.HOOK [ LTOP #ltop, INDEX #event & [ SF prop-comm ] ], AGR #agr, CONJ cnil ], NONLOC [ QUE.LIST < >, REL.LIST < >, SLASH.LIST < [ CONT.HOOK.XARG #xarg ] > ] ] ], [ INFLECTD na_or_+, SYNSEM [ LOCAL [ CAT.VAL.COMPS < >, CONJ cnil ], NONLOC [ QUE.LIST < >, REL.LIST < [ INDEX #ind, XARG #xarg ] > ], PUNCT [ RPUNCT rparen_or_comma_or_no_punct, PNCTPR ppair ] ] ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #event ], RELS , HCONS , ICONS ] ]. ; 8-3-2021 for rel pronoun 'one' ; changed order of ARGS ; changed HEAD of first ARGS, added in MIN value for second ARGS ; 16-3-2021 changed VFORM from fin to allow sentences like "eating cake one is happy" basic_head_filler_fin_rel_rule := head_filler_rel_rule & [ SYNSEM.LOCAL.CAT.HEAD.MINORS [ ALTMIN #altmin, NORM #norm ], ARGS < [ SYNSEM.LOCAL.CAT [ HEAD v_or_a & [ VFORM fin_or_prp, MINORS.ALTMIN #altmin ], VAL.SUBJ *olist* ] ], [ SYNSEM.LOCAL.CAT.HEAD.MINORS [ NORM #norm, MIN pron_nonlocal_one_rel ] ] > ]. ; 8-3-2021 for rel pronoun 'one' ; changed order of ARGS head_filler_fin_np_rel_rule := basic_head_filler_fin_rel_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG #xarg, ARGS < [ SYNSEM.NONLOC.SLASH.LIST < [ CAT.HEAD noun_or_nomger, CONT.HOOK.XARG #xarg ] > ], [ SYNSEM.LOCAL.CAT.VAL.SPR *olist* ] > ]. ; CSY 17-12-2020 - superset to create two branches for the verb and adjective COMPS ; filler head rule without VFORM limitations in the second ARGS ; parallel to the filler_head_rel_rule ; 30-8-2021 changed #arg1 to the COMPS value to prevent non coindexing syntax error ; in lkb ; removed this as the filler_head_super_rel_rule was removed ;filler_head_rel_rule := filler_head_super_rel_rule & ; [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS < > ], [ SYNSEM.LOCAL.CAT.HEAD.VFORM fin_or_inf ] > ]. basic_filler_head_finprp_rel_rule := filler_head_rel_rule & [ SYNSEM.LOCAL.CAT.HEAD.MINORS [ ALTMIN #altmin, NORM #norm ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MINORS.NORM #norm ], [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM fin_or_prp, MINORS.ALTMIN #altmin ], VAL.SUBJ *olist* ] ] > ]. ; 9-3-2021 redefine this to only take a filler that is POSTHD- (did not reduce trees :() ; add in MIN pron_nonlocal_rel ; in order to prevent rel-pronoun 'one' from being part of this ; 25-3-2021 change rule to allow for prp also filler_head_finprp_np_rel_rule := basic_filler_head_finprp_rel_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG #xarg, ARGS < [ SYNSEM.LOCAL.CAT [ HEAD.MINORS.MIN pron_nonlocal_rel, VAL.SPR *olist*, POSTHD - ] ], [ SYNSEM.NONLOC.SLASH.LIST < [ CAT.HEAD noun_or_nomger, CONT.HOOK.XARG #xarg ] > ] > ]. ; 9-3-2021 - This is a pumping rule that takes an RC with 'one' as the relpro ; and turns it into an Nbar that can take spr 'the' ; based on the basic_generic_bare_np_phrase ; introduced empty MOD to prevent a sentence like 'eat cake one is happy' ; from becoming aj-hd_scp_c ; 16-3-2021 match the MOD of the ARGS to the generic entity that is introduced ; 19-3-2021 add in HEAD v_or_a instead of #arg1, to reduce overgeneration ; 21-3-2021 changed the second ARGS of ARGS to be --MIN instead of SYNSEM.LOCAL...MIN ; this helped stop filler head nwh fin phrases with no "one" from becoming the one NP phrase ;; #need to make sure it can take 'the' ; by making this require a SPR, and then another ilr above so it can be without the SPR ; just like mass nouns by taking away SPR HEAD adv and SPR --MIN just_only_deg_rel ; 24-3-2021 change SPR --MIN to be like regular count nouns ; get the daughter with the right relpro using the MOD value of the dtr ; 17-5-2021 add in PT onerelpro into INDEX of head daughter ; to prevent other phrases from becoming this hdn_onenp_c (but does not work) ; 20-5-2021 add in HS-LEX in ARGS so that S formed via hd-aj_scp_c cannot undergo this ; 25-11-2021 moved CONT information in ARGS into C-CONT ; the ARGS inside ARGS help constraint this. Without it, almost everything can undergo this rule ; PT alone is not enough to limit the ARGS because many phrases as PT as prontype basic_pron_np_one_phrase := basic_unary_phrase & [ INFLECTD #infl, SYNSEM nonlex_or_lex_phr_synsem & [ LOCAL [ CAT [ HEAD noun & [ MOD < > ], HC-LEX #hclex, VAL [ SUBJ < >, COMPS < >, SPR < synsem_min & [ --MIN abstract_q_rel, LOCAL [ CAT [ ;HEAD adv, VAL.SPR *unexplist* ] ], OPT + ] > ], MC na, NEGPOL - ], AGR ref-ind, CONJ #conj, CTXT #ctxt ], NONLOC [ SLASH.LIST #slash, REL.LIST #rel, QUE.LIST #que ], LEX #lex, MODIFD.RPERIPH +, PUNCT #punct ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD v_or_a & [ MOD.FIRST [ LOCAL.CONT.HOOK #hook, --SIND #nindex & [PT onerelpro] ] ], HC-LEX #hclex, HS-LEX +, VAL [ SUBJ < >, COMPS < >, SPR < > ] ], CONJ #conj & cnil, CONT [ HOOK [ LTOP #ltop ] ], CTXT #ctxt ], LEX #lex, NONLOC [ SLASH.LIST #slash, REL.LIST #rel, QUE.LIST #que ], PUNCT #punct & [ LPUNCT lital_or_pair_or_comma_or_no_punct ] ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD v_or_a ], [ SYNSEM.--MIN pron_nonlocal_one_rel ] > ] >, ;ORTH [ FROM #from, TO #to ], C-CONT [ HOOK #hook & [ INDEX #nindex & [ PT onerelpro ], LTOP #ltop ], RELS , ;HCONS , ICONS ] ]. ; 15-3-2021 make sure what the one RC mods is the generic_entity_rel that is introduced ; by making the --SIND same as the ARG0 of the generic entity ; 8-4-2021 added in synsem inside MOD to prevent flr-hd_wh-nmc-fin_c compounds from going ; through this. eg 'who is hungry' with who1 instead of who2. pron_np_one_phrase := basic_pron_np_one_phrase & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MOD < synsem & [ --SIND #mod ] > ] >, C-CONT.RELS ]. ; 9-3-2021 based on bare_np_phrase and reg_bare_np_phrase ; took away ARGS ; 15-3-2021 added in PN 3 to stop 'am' from agreeing with this NP ; add in MODIFD notmod to prevent it from underfoing npadv_mod_phrase ; 18-3-2021 add in MINORS.MIN to prevent it from undergong npadv_measnp_rule ; 23-3-2021 - change ALTMIN to _the_q_rel to allow it to take SPR 'the' one_np_phrase := pron_np_one_phrase & [ INFLECTED +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS [ MIN norm_nom_rel, ALTMIN _the_q_rel ], VAL.SPR < synsem > ], AGR [ DIV +, PNG.PN 3 ] ], MODIFD notmod ] ]. ; 9-3-2021 rule to convert 'one' RC into NP ; based on bare_np_rule one_np_rule := rule & one_np_phrase. ; 9-4-2021 further specify the PT so that it won't be compatible with what is wanted for the ; one_np_phrase filler_head_rule_wh_nr_fin := binary_rule_left_to_right & head_filler_phrase_wh_fin & wh_interrog_fin & [ SYNSEM.LOCAL [ CAT [ HEAD [ INV -, CASE nom_or_obliq ], VAL.SUBJ *anti_null*, MC - ], CONT.HOOK.INDEX.PT notpro_or_non_refl ], HD-DTR.SYNSEM.LOCAL [ CAT.MC -, CONT.HOOK.LTOP #hdtop ], NH-DTR.SYNSEM [ PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct ], C-CONT [ HOOK.LTOP #hdtop, RELS , HCONS , ICONS ] ]. ; 10-4-2021 change PT from notpro to a supertype head_spec_phrase := basic_head_spec_phrase & [ SYNSEM.LOCAL.CAT.VAL [ SPEC #spec, SUBJ *olist*, COMPS #spcmps, SPCMPS < > ], HD-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ VAL [ COMPS < >, SPEC #spec ] ], CONT.HOOK.INDEX overt_non_expl-ind & [ PT notpro_or_onerelpro ], AGR #agr ] ], NH-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ HEAD det & [ MOD < > ], VAL [ SPR *olist*, SPEC < synsem & [ LOCAL [ CAT.HEAD supnoun, AGR #agr ] ] >, SPCMPS #spcmps ], MC na ], CONT.HOOK #hook & [ INDEX individual_min ] ] ], C-CONT.HOOK #hook ]. ; 20-4-2021 just for the possessive 'one', change the NH-DTR from a det ; trying out with named NP rel for now. Should expand to certain possessive pn like "my" later head_spec_one_phrase := basic_head_spec_phrase & [ SYNSEM.LOCAL.CAT.VAL [ SPEC #spec, SUBJ *olist*, COMPS #spcmps, SPCMPS < > ], HD-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ HEAD.MINORS.MIN one_nom_rel, VAL [ COMPS < >, SPEC #spec ] ], CONT.HOOK.INDEX overt_non_expl-ind & [ PT notpro ], AGR #agr ] ], NH-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ HEAD noun & [ MOD < >, MINORS.MIN named_np_rel ], VAL [ SPR *olist*, SPEC < synsem & [ LOCAL [ CAT.HEAD supnoun, AGR #agr ] ] >, SPCMPS #spcmps ], MC na ], CONT.HOOK #hook & [ INDEX individual_min ] ] ], C-CONT.HOOK #hook ]. hspec_one_rule := binary_rule_right_to_left & head_spec_phrase. ; 23-4-2021 - for locative NPs that can act as complements of 'go' ; making a rule that is similar to npadv_mod but except I don't want it to become an adv/pp ; so that I get sentences like 'he go school' but not 'he is school' ;;;; not using anymore for now! basic_gonp_mod_phrase := basic_unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD [ MOD < [ LOCAL intersective_mod & [ CAT [ HEAD subst & [ AUX - ], VAL.COMPS < >, MC #mc ], CONT.HOOK.INDEX #ind, CONJ cnil ], --SIND #ind & non_expl & [ SORT basic-entity-or-event ] ] >, TAM #tam, MINORS.ALTMIN #altmin, PRD #prd ], POSTHD +, VAL [ SUBJ < >, COMPS #comps, SPCMPS < > ], MC #mc, NEGPOL #negpol ], CONT.HOOK [ INDEX [ SORT #sort ], XARG #ind ], CONJ cnil, CTXT #ctxt ], NONLOC [ SLASH.LIST #slash & < >, REL.LIST #rel & < >, QUE.LIST #que ], PUNCT #punct ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS.MIN #altmin, PRD #prd, --BARE - ], VAL [ SPR *olist*, SUBJ *anti_list*, COMPS #comps & < > ], NEGPOL #negpol ], CONT.HOOK.INDEX #index & [ SORT #sort ], CONJ cnil, CTXT #ctxt ], NONLOC [ SLASH.LIST #slash & < >, REL.LIST #rel & < >, QUE.LIST #que ], PUNCT #punct ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #khand, INDEX #arg0 ], RELS , HCONS , ICONS ], INFLECTD + ]. gonp_mod_phrase := basic_gonp_mod_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD [ MINORS.MIN loc_nonsp_rel, MOD < [ LOCAL.CAT.VAL.SPR < synsem_min, ... > ] > ], VAL.SPR < anti_synsem_min > ], MODIFD notmod_or_lmod & [ LPERIPH na ] ], ARGS < [ SYNSEM [ LOCAL.CAT.HEAD [ MINORS.MIN place_nom_rel, CASE real_case ], MODIFD hasmod & [ LPERIPH + ] ] ] > ]. ;; for the possessive one ; 19-4-2021 to add 'one' as a possible SPEC value ; cannot just add SPEC to basic_n_proper_lexent ; because of noun_nocomp_synsem which inherits from ref_synsem ; 23-11-2021 Try changing named_np_rel in MIN to norm_nom_rel to extend this rule to other nouns basic_n-spr_proper_phrase := nonrs-hm & basic_noun_word & [ SYNSEM [ LOCAL [ CAT [ HEAD det & [ MINORS [ MIN norm_nom_rel, ALTMIN abstract_q_rel ] ], VAL [ SPR < [ --MIN abstract_q_rel, NONLOC.QUE.LIST #que ] >, COMPS < >, SPEC < synsem & [ OPT +, --MIN one_nom_rel ] > ] ], CONT [ HOOK [ LTOP #ltop, INDEX #index & nonconj_ref-ind ], RELS , HCONS , ICONS ], CONJ cnil, AGR #index ], NONLOC.QUE.LIST #que, LKEYS [ KEYREL named_nom_relation & [ PRED named_np_rel, LBL #ltop ], ALTKEYREL.PRED implicit_q_rel ] ] ]. ; 29-4-2021 for the pumping rule that takes a proper name and then changes it ; into a det that only takes the poss one as a SPEC ; based on npadv_mod_phrase. need to put in the RELS later ; need to keep phrasal as the supertype even though this prevents it from going through the ; hspec_rule because otherwise it can keep undergoing this rule ; 30-4-2021 take away #altmin from daughter. Instead I want altmin to be poss_rel ; 4-5-2021 take away --MIN in SPEC for now, so that this can branch into two ; types of phrases, one with SPEC 'one' and the other SPEC a kinship term ; 5-5-2021 added in C-CONT and RELS values to get the right indexing and MRS ; 30-8-2021 removed #named_np_rel in MIN and #altmin ; 27-9-2021 removed most SPEC features, leaving the coindexing to pn-spr_phrase ; REMOVED c-cont h-cont basic_pn-spr_phrase := basic_unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD det, VAL [ COMPS < >, SPEC < synsem & [ OPT - ] > ] ], CONT.HOOK.INDEX #index & nonconj_ref-ind ], PUNCT #punct ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & [ ;MINORS.MIN #altmin, ;PRD #prd, --BARE - ], VAL [ SPR *olist*, SUBJ *anti_list*, COMPS < > ] ], ; HOOK.INDEX #arg2index, CONJ cnil ], PUNCT #punct ] ] >, C-CONT [ HOOK [ ;LTOP #ltop, INDEX #index & nonconj_ref-ind ], ICONS ] ]. ; 29-4-2021 add in LEX + for the daughter so that it cannot undergo this rule again ; take away MOD value of [ LOCAL.CAT.VAL.SPR < synsem_min, ... > ] ; add in SPCMPS that is empty because of how head_spec_phrase works ; to get rid of the sp-hd_n_c being the head of hd-cmp_u_c ; 24-9-2021 add in constraints from basic_det_poss_lexent ; such that the index of something like "Kim one" is indexed to the arg1 in the poss_rel ; 23-11-2021 Try changing named_np_rel in MIN of ARGS to norm_nom_rel to extend this rule to other nouns ; and changed PRED from proper_q_rel to quant_rel, change MIN or ARGS from proper_np_rel to reg_nom_rel ; to take norm_nom_rel also pn-spr_one_phrase := basic_pn-spr_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD [ POSS +, MINORS [ MIN _pnspr_q_rel, ALTMIN poss_rel ], MOD < > ], VAL [ SPR < anti_synsem_min >, SPCMPS < >, SPEC < [ --MIN one_poss_rel, LOCAL.CONT.HOOK [ INDEX #possarg1, LTOP #posslbl ] ] > ] ] ], MODIFD notmod_or_lmod & [ LPERIPH na ] ], C-CONT [ RELS , HOOK [ INDEX #possarg1, XARG #possarg2 ], HCONS ], ARGS < [ SYNSEM [ LOCAL [ CAT.HEAD [ MINORS.MIN reg_nom_rel ], CONT.RELS ], LEX luk ] ] > ]. ; 27-9-2021 probably will abandon this in favour of overgenerating and ; maybe allowing a proper noun to undergo this with all nouns ;pn-spr_kin_phrase := basic_pn-spr_phrase & ; [ SYNSEM [ LOCAL.CAT ; [ HEAD [ POSS +, ; MINORS [ MIN _pnspr_q_rel, ; ALTMIN poss_rel ], ; MOD < > ], ; VAL [ SPR < anti_synsem_min >, ; SPCMPS < >, ; SPEC < [ --MIN kinship_nom_rel ] > ] ], ; MODIFD notmod_or_lmod & [ LPERIPH na ] ], ; ARGS < [ SYNSEM [ LOCAL.CAT.HEAD [ MINORS.MIN named_np_rel ], ; LEX luk ] ] > ]. ; 23-5-2021 - comp_head for the opposite of hd-cmp_u_c but only for particles taking ; sentences as complements ; 31-5-2021 change to take MC value from non head daughter (the sentence) basic_comp_or_marker_head_phrase := basic_binary_phrase & [ SYNSEM canonical_synsem & [ LOCAL [ CAT [ MC #mc, VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcomps ], NEGPOL #negpol ] ], MODIFD #modifd, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL.CAT.MC #mc, PUNCT.PNCTPR #ppair ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD subst_or_func, VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcomps ], NEGPOL #negpol ] ], MODIFD #modifd ] ] > ]. ; 20-8-2021 try to use ZHONG's comp-marker-phrase basic_comp_marker_phrase := head_valence_phrase & head_compositional & basic_binary_headed_phrase & binary_punct_phrase & [ SYNSEM phr_synsem & [ PUNCT #punct, MODIFD #modifd, LOCAL [ CAT [ VAL [ SUBJ #subj, COMPS #comps, SPR #spr, SPEC #spec, SPCMPS #spcmps ], MC #mc, HS-LEX #hslex, POSTHD #ph, NEGPOL #negpol ], CTXT #ctxt ] ], HD-DTR.SYNSEM #synsem & [ LOCAL [ CAT [ VAL [ SUBJ #subj, COMPS #comps, SPR #spr, SPEC #spec, SPCMPS #spcmps ], POSTHD #ph, HS-LEX #hslex, MC #mc, NEGPOL #negpol ], CTXT #ctxt ], MODIFD #modifd ], NH-DTR.SYNSEM [ PUNCT #punct, LOCAL.CAT [ VAL.COMPS < #synsem . #comps> ] ], C-CONT [ RELS , HCONS , ICONS ] ]. ; ZHONG's inherits from marker-final-phrase as well ; 23-8-2021 added HC and NH lex comp_marker_phrase := basic_comp_marker_phrase & head_initial & [ HD-DTR.SYNSEM.LOCAL.CAT [ HEAD v_or_a, HC-LEX #lex ], NH-DTR [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD basic_sfa & [ MINORS.MIN abstr_adv_dim_rel ], POSTHD +, NH-LEX #lex ] ] ]. comp_or_marker_head_phrase := basic_comp_or_marker_head_phrase & [ SYNSEM.LOCAL [ CAT.VAL.COMPS #comps, CTXT #ctxt ], ARGS < [ SYNSEM #synsem ], [ SYNSEM.LOCAL [ CAT.VAL.COMPS < #synsem . #comps >, CTXT #ctxt ] ] > ]. ; 23-5-2021 almost the same as basic_head_comp_phrase but reversed ; and MC value of mother coindexed with that of NH-DTR basic_comp_head_phrase := basic_comp_or_marker_head_phrase & head_final & binary_punct_phrase & head_valence_phrase & head_compositional & [ SYNSEM nonlex_synsem & [ LOCAL [ CAT [ POSTHD #ph, HS-LEX #hslex, MC #mc ], CONJ cnil ], MODIFD #modifd, LEX #lex ], INFLECTD #infl, HD-DTR [ INFLECTD na_or_+ & #infl, SYNSEM [ LOCAL [ CAT [ POSTHD #ph, HC-LEX #lex, HS-LEX #hslex ] ], MODIFD #modifd, PUNCT [ LPUNCT comma_or_hyphen_or_pair_or_no_punct, RPUNCT comma_or_clause, PNCTPR ppair ] ] ], NH-DTR [ INFLECTD +, SYNSEM.LOCAL.CAT [ MC #mc, NH-LEX #lex ] ], C-CONT [ RELS , HCONS , ICONS ] ]. ;limit the hd-dtr to only be particles ; ##maybe take out v_or_a and let it be a constraint for the particle ; so that we can have the 'NP leh?' utterance ; 11-8-2021 add in sentence final adverbs. try changing MIN from particle_rel ; to mother abstr_adv_dim_rel ; 12-8-2021 change HEAD and NH-DTR MIN value of sfp2 to include sfa ; and add in new phrase for sfp3 to join to sfa comp_head_phrase := basic_comp_head_phrase & comp_or_marker_head_phrase & [ HD-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle_or_sfa & [ MINORS.MIN abstr_adv_dim_rel ] ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD v_or_a ]. ; 29-5-2021 - for the new cmp-hd that is only for particles taking other particle headed stuff comp_head_sfpi_phrase := basic_comp_head_phrase & comp_or_marker_head_phrase & [ HD-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle & [ MINORS.MIN particle1_rel ] ], NH-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle_or_sfa & [ MINORS.MIN particle2_super_rel ]] ]. comp_head_sfp2b_phrase := basic_comp_head_phrase & comp_or_marker_head_phrase & [ HD-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle & [ MINORS.MIN particle2b_rel ] ], NH-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle_or_sfa & [ MINORS.MIN particle3_sfadv_rel ]] ]. comp_head_sfp2a_phrase := basic_comp_head_phrase & comp_or_marker_head_phrase & [ HD-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle & [ MINORS.MIN particle2_rel ] ], NH-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle_or_sfa & [ MINORS.MIN particle3_sfadv_rel ]] ]. comp_head_sfp3_phrase := basic_comp_head_phrase & comp_or_marker_head_phrase & [ HD-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle & [ MINORS.MIN particle3_rel ] ], NH-DTR [ SYNSEM.LOCAL.CAT.HEAD basic_particle_or_sfa & [ MINORS.MIN sfadverb_rel ]] ]. ; 8-6-2021 include adj in the HEAD value of the LCONJ-DTR ;; DPF 2023-02-21 - Changed LCONJ-DTR..HEAD from verb_or_adj_or_frag to ;; basic_verb_or_adj_or_frag since frag is only a subtype of the latter. ;; basic_run_on_coord_rule := basic_run_on_rule & basic_coord_phr & [ SYNSEM [ LOCAL.CAT [ HEAD conj-s, VAL.SUBJ #subj & *anti_list*, MC + ], NONLOC [ REL.LIST #rel, QUE.LIST #que ], PUNCT [ RCLSTR #rclstr, PNCTPR #ppair ] ], LCONJ-DTR #lconj & [ SYNSEM [ LOCAL [ CAT [ HEAD basic_verb_or_adj_or_frag & [ TAM.MOOD ind_or_modal_subj, MOD *anti_list*, MINORS [ MIN norm_rel ] ], VAL.SUBJ #subj, MC + ], CONT.HOOK [ LTOP #ltop, INDEX #lindex & [ E indic_tam ] ] ], NONLOC [ REL.LIST #rel, QUE.LIST #que ] ] ], RCONJ-DTR #rconj & [ SYNSEM [ LOCAL [ CAT [ HEAD verb_or_conj_or_frag & [ MINORS.MIN norm_rel, MOD *anti_list*, TAM.TENSE real_tense ], VAL [ SUBJ *anti_list* ], MC + ], CONT [ HOOK [ LTOP #ltop, INDEX #rindex & [ SF #sf ] ] ] ], PUNCT [ RPUNCT clause_or_semi_or_pair_or_no_punct & [ PSF #sf ], PNCTPR #ppair, RCLSTR #rclstr ] ] ], C-CONT [ HOOK.LTOP #ltop, RELS , HCONS , ICONS ], ARGS < #lconj, #rconj > ]. run_on_coord_comma_rule := basic_run_on_coord_rule & [ LCONJ-DTR.SYNSEM phr_synsem & [ LOCAL.CAT.HEAD v_or_a, PUNCT.RPUNCT comma_punct ], RCONJ-DTR.SYNSEM [ LOCAL [ CAT.HEAD verb_or_conj-s, CONJ cnil ], PUNCT.LPUNCT lparen_or_dq_or_comma_or_no_punct ], GENRE nonformal ]. ; 21-10-2021 changed udef_q_rel to def_udef_a_q_rel so that when generating ; from singlish.dat to english.dat, cat sleeps can generate "a/the cat sleeps" ; 17-11-2021 added in args INDEX, SPR.FIRST and synsem SPEC reg_bare_np_phrase-sg := norm_bare_np_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN implicit_q_rel, VAL.SPR < synsem > ], AGR #agr & [ DIV #div ] ], MODIFD #modif ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ AGR #agr & [ DIV #div ], CAT.VAL.SPR.FIRST synsem & [ --MIN abstr_def_or_udef_q_rel ], CONT.HOOK.INDEX nonconj_ref-ind ], MODIFD #modif ] ] >, C-CONT.RELS ]. ; 20-10-2021 add in new barenp just for bare nouns that are underspecified for number ; he ate apple. ; for number to remain underspecified ; 17-11-2021 #toadd in SYNSEM value of daughter (count_noun_synsem) to prevent sentences like ; sleep is important to undergo both this and hdn_bnp_c bare_np_underspec_phrase := reg_bare_np_phrase-sg & [ SYNSEM.LOCAL.AGR #agr & [ DIV + ], ARGS < [ SYNSEM count_noun_synsem & [ LOCAL [ CAT [ HEAD noun_or_nomger, VAL.SPR [ FIRST [ OPT -, LOCAL.AGR.DIV - ], REST *olist* ] ], AGR #agr ], --MIN non_proper_rel ] ] > ]. ;;; start changes made (but not used) for prodrop ;;;; ; 10-6-2021 exclude VFORM fin for radical pro drop ;basic_prodrop_phrase := basic_unary_phrase & ; [ INFLECTD #infl, ; SYNSEM.LOCAL [ CAT [ HEAD.VFORM bse, ; VAL [ COMPS #comps, ; SPR #spr, ; SPEC #spec, ; SUBJ < > ], ; MC #mc, ; HS-LEX #hs-lex ], ; CONT.HOOK.INDEX event, ; CONJ cnil, ; LEX #lex ], ; HD-DTR #head & ; [ INFLECTD #infl, ; SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ #subj, ; SPR #spr, ; SPEC #spec, ; COMPS #comps ], ; MC #mc, ; POSTHD #ph, ; HS-LEX #hslex ], ; AGR #agr ], ; LEX #lex,; ; OPT #opt, ; MODIFD #mod, ; PUNCT #punct & ; [ LPUNCT lital_or_pair_or_comma_or_no_punct ] ] ], ; C-CONT [ RELS , ; HCONS , ; ICONS ], ; ARGS < #head > ]. ; ; 30-7-2021 add in the passing up of 3SGINFL value in fragment rules frag_vp_fin_rule := frag_vp_rule & [ SYNSEM.LOCAL.CAT.HEAD.3SGINFL #3sginfl, ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM fin, TAM.TENSE real_tense, MINORS.ALTMIN basic_event_dim_rel, 3SGINFL #3sginfl ], VAL.SUBJ.FIRST unexpressed_min ], CONT.HOOK #hook ], MODIFD notmod_or_rmod ] ] >, C-CONT [ HOOK #hook & [ XARG.SORT entity ], RELS ] ]. ;;;; end changes for prodrop ;;;; comph_rule := binary_rule_left_to_right & comp_head_phrase. comph_sfpi_rule := binary_rule_left_to_right & comp_head_sfpi_phrase. comph_sfp2b_rule := binary_rule_left_to_right & comp_head_sfp2b_phrase. comph_sfp2a_rule := binary_rule_left_to_right & comp_head_sfp2a_phrase. comph_sfp3_rule := binary_rule_left_to_right & comp_head_sfp3_phrase. compm_rule := binary_rule_left_to_right & comp_marker_phrase. ; 20-4-2021 - rule for converting pn into stuff that can take SPEC ; 29-4-2021 - remove "norm_lex_rule" from supertype cos it will become a det ; in this pumping rule. pn_spec_one_rule := rule & pn-spr_one_phrase. ; pn_spec_kin_rule := rule & pn-spr_kin_phrase. gomod_rule := rule & gonp_mod_phrase. bare_np_unspec_rule := rule & bare_np_underspec_phrase. frag_r_mod_np_adj_rule := never_unify_rule.