;;; -*- Mode: tdl; Coding: utf-8; -*- ;;; ;;; Copyright (c) 1994-2018 ;;; Dan Flickinger, Rob Malouf, Emily M. Bender ;;; see LICENSE for conditions ;;; ;;; parsenodes.tdl ;;; ;;; Parse node definitions to support node labels in printed parse trees ;;; ;;; Created: Dan Flickinger 15-Aug-94 ;;; ;;; $Id: parse-nodes.tdl 28901 2020-07-25 23:47:43Z danf $ ;;; AAC - for the LKB, the order of definitions in the file is significant ;;; because the definitions are tried in order until one matches. ;;; This replaces the functionality of the variable *node-labels* ;;; in the PAGE machinery ; CSY 25-09-2020 - add in new S to allow adj headed sentences to be labelled 'S' ; CSY 9-10-2020 - PRD is a feature that marks for if something can follow a copula ; and not if something can head a clause ; 19-1-2021 MC bool for both MC and NMC s-singlish := label & """ CSY 25-09-2020 - added MC + to prevent adj from being labelled as S 5-10-2020 - add in PRD + so that "beautiful or beautiful" will not be labelled as 'S' in 'It beautiful or beautiful'. BUT it does not work because the daughters are PRD bool 9-10-2020 - changed to PRD - for the same reason He beautiful. """ [ SYNSEM.LOCAL [ CAT [ HEAD adj & [ PRD - ], VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ], MC bool ], CONJ cnil ], INFLECTD +, LNAME "Sⱼ" ]. ; 31-5-2021 - for particle headed sentences. to change label from XP s-particle := label & """ He is so beautiful sia. """ [ SYNSEM.LOCAL [ CAT [ HEAD basic_particle_or_sfa & [ PRD - ], VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ], MC + ], CONJ cnil ], INFLECTD +, LNAME "Sₚₐᵣₜ" ]. ; 31-5-2021 - for particles to change label from FRG particle := label & """ He is so beautiful (sia). """ [ SYNSEM.LOCAL [ CAT [ HEAD basic_particle & [ PRD - ], VAL [ COMPS < synsem_min2 > ]], CONJ cnil ], INFLECTD +, LNAME "SFP" ]. slash := meta & [ SYNSEM.NONLOC.SLASH.LIST < local_basic >, META-PREFIX "/", META-SUFFIX "" ]. frag-s := label & [ SYNSEM synsem & [ LOCAL [ CAT [ HEAD frag, VAL [ COMPS < >, SPR < >, SUBJ < > ] ] ] ], INFLECTD +, LNAME "XP" ]. conj-s := label & [ SYNSEM synsem & [ LOCAL [ CAT.VAL.COMPS *cons*, CONJ complex-conj ] ], INFLECTD +, LNAME "CONJ" ]. conj-s2 := label & [ SYNSEM synsem & [ LOCAL [ CAT.VAL.COMPS *cons*, ARG-S *cons*, CONJ atomic-conj ] ], INFLECTD +, LNAME "CONJ" ]. conj-s3 := label & [ SYNSEM synsem & [ LOCAL [ CAT [ HEAD conj-s, VAL.COMPS < > ], CONJ cnil ] ], INFLECTD +, LNAME "S" ]. nohead := label & [ SYNSEM.LOCAL.CAT.HEAD no_head, INFLECTD +, LNAME "XP" ]. pp-i := label & [ SYNSEM.LOCAL.CAT [ HEAD basic_prep & [ MOD < [ LOCAL intersective_mod ] > ], VAL.COMPS < > ], LNAME "PP" ]. p-n := label & [ SYNSEM.LOCAL.CAT [ HEAD basic_prep & [ MOD < > ], VAL.COMPS *cons* ], LNAME "P" ]. p-i := label & [ SYNSEM.LOCAL.CAT [ HEAD basic_prep & [ MOD < [ LOCAL intersective_mod ] > ], VAL.COMPS *cons* ], LNAME "P" ]. p-s := label & [ SYNSEM.LOCAL.CAT [ HEAD basic_prep & [ MOD < [ LOCAL scopal_mod ] > ], VAL.COMPS *cons* ], LNAME "P" ]. pp-n := label & [ SYNSEM.LOCAL.CAT [ HEAD prep & [ MOD < > ], VAL.COMPS < > ], LNAME "PP" ]. pp-s := label & [ SYNSEM.LOCAL.CAT [ HEAD basic_prep & [ MOD < [ LOCAL scopal_mod ] > ], VAL.COMPS < > ], LNAME "PP" ]. coord-v := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL.COMPS *cons* ], CONT.HOOK.INDEX conj_event ], LNAME "V" ]. comp := label & [ SYNSEM.LOCAL.CAT [ HEAD comp, VAL.COMPS *cons* ], LNAME "COMP" ]. prdp-i := label & [ SYNSEM.LOCAL.CAT [ HEAD a_or_p & [ PRD + ], VAL [ SPR < anti_synsem_min >, SUBJ < anti_synsem_min >, COMPS < > ] ], LNAME "PRDP" ]. ;; Right half of conjoined VP vp-conj := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ < synsem >, COMPS < > ] ], CONJ complex-conj ], INFLECTD +, LNAME "VP-C" ]. vp-conj2 := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ < synsem >, COMPS < > ] ], CONJ atomic-conj ], INFLECTD +, LNAME "VP-C" ]. ; Passive VPs vpp := label & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM pas ], VAL [ SUBJ < synsem >, COMPS < > ] ], INFLECTD +, LNAME "VP" ]. ; Pres-part VPs vp-prp := label & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM prp ], VAL [ SUBJ < synsem >, COMPS < > ] ], INFLECTD +, LNAME "VP" ]. vplex := label & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ AUX +], VAL [ SUBJ < synsem & [ OPT - ] >, COMPS < > ] ], CONJ cnil ], LEX + ], INFLECTD +, LNAME "VP" ]. vp := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ < synsem & [ OPT - ] >, COMPS < > ] ], CONJ cnil ], INFLECTD +, LNAME "VP" ]. vpinf := label & [ SYNSEM.LOCAL.CAT [ HEAD comp, VAL [ SUBJ < synsem >, COMPS < > ] ], LNAME "VP" ]. v := label & [ SYNSEM.LOCAL.CAT [ HEAD verb, VAL.COMPS *cons* ], INFLECTD +, LNAME "V" ]. tagaux := label & [ SYNSEM.LOCAL.CAT [ HEAD tagaux, VAL.COMPS *cons* ], INFLECTD +, LNAME "V" ]. s-r := label & [ SYNSEM.LOCAL [ CAT [ HEAD verbal, VAL [ SUBJ *anti_list*, COMPS < > ], MC + ] ], INFLECTD +, LNAME "S" ]. s-r-sub := label & [ SYNSEM.LOCAL [ CAT [ HEAD verbal, VAL [ SUBJ < >, COMPS < > ], MC na_or_- ] ], INFLECTD +, LNAME "S" ]. s-r1-sub := label & [ SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ VFORM fin_or_inf ], VAL [ SUBJ < anti_synsem >, COMPS < > ], MC na_or_- ] ] ], INFLECTD +, LNAME "S" ]. s-r1 := label & [ SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ VFORM fin_or_inf_or_imp ], VAL [ SUBJ < anti_synsem >, COMPS < > ] ] ] ], INFLECTD +, LNAME "S" ]. s1-sub := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ], MC na_or_- ] ], INFLECTD +, LNAME "S" ]. s1 := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ] ] ], INFLECTD +, LNAME "S" ]. s2-sub := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ VFORM fin_or_inf_or_imp ], VAL [ SUBJ < unexpressed >, SPR *olist*, COMPS < > ], MC na_or_- ] ], INFLECTD +, LNAME "S" ]. s2 := label & [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ VFORM fin_or_inf_or_imp ], VAL [ SUBJ < unexpressed >, SPR *olist*, COMPS < > ] ] ], INFLECTD +, LNAME "S" ]. s1-c := label & [ SYNSEM.LOCAL.CAT [ HEAD comp, VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ] ], INFLECTD +, LNAME "S" ]. s-r2-sub := label & [ SYNSEM.LOCAL [ CAT [ HEAD verbal & [ VFORM fin_or_inf_or_imp ], VAL [ SUBJ < >, COMPS < > ], MC na_or_- ] ], LNAME "S" ]. s-r2 := label & [ SYNSEM.LOCAL [ CAT [ HEAD verbal & [ VFORM fin_or_inf_or_imp ], VAL [ SUBJ < >, COMPS < > ] ] ], LNAME "S" ]. ; 28-7-2021 remove first ; 31-7-2021 label that takes into account the 3SGINFL value s-nosubj := label & [ SYNSEM.LOCAL [ CAT.HEAD frag & [ MINORS.ALTMIN role_rel, 3SGINFL 3sg_unk ], CONJ lex-conj ], LNAME "S" ]. s-frag := label & [ SYNSEM.LOCAL [ CAT.HEAD frag & [ MINORS.ALTMIN role_rel ], CONJ lex-conj ], LNAME "XP" ]. ; For title nouns like in "professor smith" ;nt := label & ; [ SYNSEM.LOCAL.CAT.HEAD adv & [ MOD < [ LOCAL.CAT.HEAD noun ] > ], ; INFLECTD +, ; LNAME "N" ]. adv-dg := label & [ SYNSEM.LOCAL [ CAT.HEAD adv & [ MOD < > ], CONJ cnil ], LNAME "ADV" ]. adv1a := label & [ SYNSEM.LOCAL [ CAT [ HEAD basic_adv, POSTHD + ], CONJ cnil ], INFLECTD +, LNAME "ADV" ]. adv1b := label & [ SYNSEM.LOCAL [ CAT [ HEAD basic_adv, POSTHD - ], CONJ cnil ], INFLECTD +, LNAME "ADV" ]. adv1c := label & [ SYNSEM.LOCAL [ CAT.HEAD basic_adv, CONJ cnil ], INFLECTD +, LNAME "ADV" ]. adv2 := label & [ SYNSEM.LOCAL [ CAT.HEAD root-marker, CONJ cnil ], INFLECTD +, LNAME "ADV" ]. adv3 := label & [ SYNSEM.LOCAL [ CAT.HEAD detspec, CONJ cnil ], INFLECTD +, LNAME "ADV" ]. adv4 := label & [ SYNSEM.LOCAL [ CAT.HEAD basic_adv, CONJ complex-conj ], INFLECTD +, LNAME "ADV-C" ]. adv4-2 := label & [ SYNSEM.LOCAL [ CAT.HEAD basic_adv, CONJ atomic-conj ], INFLECTD +, LNAME "ADV-C" ]. ; 11-8-2021 add in for sentence final adverbs like 'already' and possibly 'only' adv_sf := label & [ SYNSEM.LOCAL [ CAT [ HEAD basic_sfa ], CONJ cnil ], INFLECTD +, LNAME "ADV-F" ]. n := label & [ SYNSEM.LOCAL.CAT [ HEAD nominal, VAL [ SPR *cons* & [ FIRST synsem & [ OPT -, LOCAL.CAT.HEAD det ] ], COMPS < > ] ], INFLECTD na_or_+, LNAME "N" ]. nc := label & [ SYNSEM.LOCAL.CAT [ HEAD nominal, VAL [ SPR *cons* & [ FIRST synsem & [ OPT - ] ], COMPS *cons* ] ], INFLECTD +, LNAME "N" ]. ngl := label & [ SYNSEM.LOCAL.CAT [ HEAD gerund, VAL [ SUBJ *cons* & [ FIRST synsem ], SPR.FIRST synsem, COMPS < > ] ], INFLECTD +, LNAME "N" ]. nx := label & [ SYNSEM.LOCAL.CAT [ HEAD nominal, VAL [ SPR < synsem & [ OPT - ] >, COMPS < [ OPT - ], ... > ] ], INFLECTD +, LNAME "NX" ]. adj := label & [ SYNSEM.LOCAL.CAT [ HEAD adj, VAL.COMPS < synsem_min, ... > ], INFLECTD na_or_+, LNAME "ADJ" ]. adjp := label & [ SYNSEM.LOCAL.CAT [ HEAD adj, VAL.COMPS < > ], INFLECTD na_or_+, LNAME "AP" ]. numadj := label & [ SYNSEM.LOCAL.CAT.HEAD intadj, INFLECTD +, LNAME "ADJ" ]. supadj := label & [ SYNSEM.LOCAL.CAT.HEAD superl_adj, INFLECTD +, LNAME "ADJ" ]. compadj := label & [ SYNSEM.LOCAL.CAT.HEAD compar_adj, INFLECTD +, LNAME "ADJ" ]. np-conj := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal, VAL [ SPR *olist* ] ], CONT.HOOK.INDEX ref-ind, CONJ complex-conj ], NONLOC.QUE.LIST < > ], INFLECTD +, LNAME "NP-CJ" ]. np-conj-2 := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal, VAL [ SPR *olist* ] ], CONJ atomic-conj ], NONLOC.QUE.LIST < > ], INFLECTD +, LNAME "NP-CJ" ]. pp-np := label & [ SYNSEM [ LOCAL [ CAT [ HEAD modnp, VAL.COMPS < > ], CONJ cnil ] ], INFLECTD +, LNAME "PP" ]. pp-np-conj := label & [ SYNSEM [ LOCAL [ CAT [ HEAD modnp, VAL.COMPS < > ], CONJ complex-conj ] ], INFLECTD +, LNAME "PP-CJ" ]. n-title := label & [ SYNSEM [ LOCAL [ CAT.HEAD ttl, CONJ cnil ], NONLOC.QUE.LIST < > ], INFLECTD +, LNAME "N" ]. npc := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal, VAL [ SPR *olist*, COMPS < canonical_synsem > ] ], CONT.HOOK.INDEX ref-ind, CONJ cnil ], NONLOC.QUE.LIST < > ], INFLECTD +, LNAME "NP" ]. np-t := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal & [ MINORS.MIN temp_abstr_rel ], VAL [ SPR *olist* ] ], CONT.HOOK.INDEX ref-ind, CONJ cnil ], NONLOC.QUE.LIST < > ], INFLECTD +, LNAME "NP" ]. np := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal, VAL.SPR *olist* ], CONT.HOOK.INDEX non_expl, CONJ cnil ], NONLOC.QUE.LIST < > ], LNAME "NP" ]. ;; for partitives with do-be as in |all he does| npd := label & [ SYNSEM [ LOCAL [ CAT [ HEAD nominal, VAL [ SPR *anti_cons*, SUBJ *anti_list* ] ], CONT.HOOK.INDEX non_expl, CONJ cnil ], NONLOC.QUE.LIST < > ], LNAME "NP" ]. npx := label & [ SYNSEM.LOCAL [ CAT.HEAD nominal, CONT.HOOK.INDEX expl-ind, CONJ cnil ], INFLECTD +, LNAME "NP-X" ]. npp := label & [ SYNSEM.LOCAL [ CAT [ HEAD nominal, VAL.SPR *cons* & [ FIRST.LOCAL.CAT.HEAD adv ] ], CONT.HOOK.INDEX ref-ind ], INFLECTD +, LNAME "NP" ]. np-wh := label & [ SYNSEM [ LOCAL.CAT [ HEAD nominal, VAL [ SPR *olist* ] ], NONLOC.QUE.LIST < [ ] > ], INFLECTD +, LNAME "NP-WH" ]. np-rel := label & [ SYNSEM [ LOCAL.CAT [ HEAD nominal, VAL [ SPR *olist* ] ], NONLOC.REL.LIST < [ ] > ], INFLECTD +, LNAME "NP-R" ]. nedadj := label & [ SYNSEM.LOCAL.CAT.HEAD n-ed, LNAME "AP" ]. det := label & [ SYNSEM.LOCAL.CAT.HEAD det, LNAME "DET" ]. ladv := label & [ SYNSEM.LOCAL.CAT.HEAD basic_lexadv, LNAME "LADV" ]. ttl-label := label & [ SYNSEM [ LOCAL [ CAT.HEAD ttl, CONJ cnil ] ], INFLECTD +, LNAME "NP" ]. prdp := label & [ SYNSEM.LOCAL.CAT [ HEAD.PRD +, VAL.COMPS < > ], INFLECTD +, LNAME "XP" ]. punct := label & [ SYNSEM.LOCAL.CAT.HEAD punct_hd, LNAME "PT" ]. punct_pr := label & [ SYNSEM.LOCAL.CAT.HEAD punct_pair_hd, LNAME "PT" ]. quotedword := label & [ SYNSEM.LOCAL.CAT.HEAD fw, LNAME "QW" ]. frg := label & [ INFLECTD +, LNAME "FRG" ]. bridge_binary := label & [ INFLECTD -, SYNSEM.LOCAL.CAT.HEAD bridge_head, LNAME "BP" ]. bridge_unary := label & [ INFLECTD na, SYNSEM [ LOCAL.CAT.HEAD bridge_head, LEX - ], LNAME "BX" ]. bridge_lex := label & [ INFLECTD na, SYNSEM [ LOCAL.CAT.HEAD bridge_head, LEX + ], LNAME "BLX" ]. nstemlabel := label & [ INFLECTD na_or_-, SYNSEM.LOCAL.CAT.HEAD nominal, LNAME "N" ]. ttlstemlabel := label & [ INFLECTD -, SYNSEM.LOCAL.CAT.HEAD ttl, LNAME "N" ]. astemlabel := label & [ INFLECTD -, SYNSEM.LOCAL.CAT.HEAD adj, LNAME "ADJ" ]. vstemlabel := label & [ INFLECTD na_or_-, SYNSEM.LOCAL.CAT.HEAD verb, LNAME "V" ]. stemlabel := label & [ INFLECTD -, LNAME "STEM" ]. quotedlabel := label & [ INFLECTD na, SYNSEM.LOCAL.CAT.HEAD no_head, LNAME "QW" ].