synsem-sat := synsem-match & [ LOCAL.CAT.VAL val-saturated ]. synsem-v-n := synsem-match & [ LOCAL.CAT.HEAD n-v ]. synsem-verb := synsem-v-n & [ LOCAL.CAT.HEAD head-super-verb ]. synsem-sent := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD.FORM-VERB form-verb-fin, V-POS v-pos-not-last ], NONLOCAL no-slash-rel ]. synsem-vlast := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD.FORM-VERB form-verb-fin, V-POS v-pos-last ], NONLOCAL no-nonlocal ]. ; As selected for by adpositions as 'ohne' synsem-izu := synsem-verb & [ LOCAL.CAT [ HEAD.FORM-VERB form-verb-izu, V-POS v-pos-last, VAL [ SUBJ < synsem >, SUBCAT < >, XCOMP < > ] ], NONLOCAL no-nonlocal ]. ; As selected for by auxiliary verbs like 'versuchen'. It allows to have a SLASH, for instance. synsem-aux-izu := synsem-verb & [ LOCAL.CAT [ HEAD.FORM-VERB form-verb-izu, V-POS v-pos-last, VAL [ XCOMP < > ] ], NONLOCAL no-rel-que ]. synsem-wh := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD.FORM-VERB form-verb-fin, V-POS v-pos-last ], NONLOCAL no-slash-rel & [ QUE agr-wh ] ]. ; Caveat here: nbar comes from synsem-v-n, which does not require saturated complements, because this is also used for modification. ; However, 'im' requires its complements to be satisfied, hence the extra val-saturated constraint here. synsem-nbar := synsem-v-n & [ LOCAL.CAT [ HEAD head-super-noun, LINEAR-N linear-n-can-det, VAL val-saturated ] ]. synsem-np := synsem-sat & [ LOCAL.CAT [ HEAD head-super-noun, LINEAR-N linear-n-finish ] ]. synsem-npnom := synsem-np & [ LOCAL.CAT.HEAD.AGR.CASE case-nom ]. synsem-npgen := synsem-np & [ LOCAL.CAT.HEAD [ AGR.CASE case-gen, MOD synsem-no-match ] ]. synsem-npdat := synsem-np & [ LOCAL.CAT.HEAD.AGR.CASE case-dat ]. synsem-npacc := synsem-np & [ LOCAL.CAT.HEAD.AGR.CASE case-acc ]. synsem-prednp := synsem-np & [ LOCAL.CAT.HEAD.AGR.CASE case-nom ]. synsem-predap := synsem-sat & [ LOCAL.CAT.HEAD head-super-adjective & [ PRD + ] ]. synsem-adj := synsem-match & [ LOCAL.CAT.HEAD head-super-adjective ]. synsem-adv := synsem-match & [ LOCAL.CAT.HEAD head-adv ]. synsem-refl := synsem-sat & [ LOCAL.CAT [ HEAD head-refl, LINEAR-N linear-n-finish ] ]. synsem-part := synsem-sat & [ LOCAL.CAT.HEAD head-part ]. synsem-es := synsem-sat & [ LOCAL.CAT.HEAD head-expl ]. synsem-cp := synsem-sat & [ LOCAL.CAT.HEAD head-compl ]. synsem-det := synsem-match & [ LOCAL.CAT [ HEAD head-super-determiner, VAL val-just-one-spr ] ]. synsem-adp := synsem-sat & [ LOCAL.CAT.HEAD head-super-adposition ]. synsem-adp_an := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "an" > ]. synsem-adp_auf := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "auf" > ]. synsem-adp_als := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "als" > ]. synsem-adp_aus := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "aus" > ]. synsem-adp_bei := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "bei" > ]. synsem-adp_bis := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "bis" > ]. synsem-adp_durch := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "durch" > ]. synsem-adp_für := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "für" > ]. synsem-adp_gegen := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "gegen" > ]. synsem-adp_in := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "in" > ]. synsem-adp_mit := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "mit" > ]. synsem-adp_nach := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "nach" > ]. synsem-adp_ohne := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "ohne" > ]. synsem-adp_trotz := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "trotz" > ]. synsem-adp_um := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "um" > ]. synsem-adp_über := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "über" > ]. synsem-adp_unter := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "unter" > ]. synsem-adp_vor := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "vor" > ]. synsem-adp_von := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "von" > ]. synsem-adp_zu := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "zu" > ]. synsem-adp_andie := synsem-adp & [ LOCAL.CAT.HEAD.FORM-ADP < "andie" > ]. lt-mod-none := lt & [ SYNSEM.LOCAL.CAT.HEAD.MOD synsem-no-match ]. lt-mod-verb-nbar := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-v-n, PLACE-N place-n-post ] ]. lt-mod-verb := lt & [ SYNSEM.LOCAL.CAT.HEAD.MOD synsem-verb ]. lt-mod-nbar_post := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-nbar, PLACE-N place-n-post ] ]. lt-mod-nbar_mid := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-nbar, PLACE-N place-n-mid ] ]. lt-mod-np_left := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-np, PLACE-O place-o-left ] ]. lt-mod-np_right := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-np, PLACE-O place-o-right ] ]. lt-mod-adj_left := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adj, PLACE-O place-o-left ] ]. lt-mod-adj_right := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adj, PLACE-O place-o-right ] ]. lt-mod-adv_left := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adv, PLACE-O place-o-left ] ]. lt-mod-adv_right := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adv, PLACE-O place-o-right ] ]. lt-mod-adp_left := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adp, PLACE-O place-o-left ] ]. lt-mod-adp_right := lt & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adp, PLACE-O place-o-right ] ]. lt-app := lt & [ SYNSEM.LOCAL.CAT.HEAD.APP + ]. lt-noapp := lt & [ SYNSEM.LOCAL.CAT.HEAD.APP - ]. ;;;;;;;;;;; ;; Verbs ;; ;;;;;;;;;;; lt-verb := lt & [ SYNSEM [ LOCAL [ CAT [ HEAD head-verb, VAL [ SPR < > ], VOICE voice-active, LINEAR-V linear-v, LINEAR-C linear-coord-start ], CONT psoa ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-verb-start ]. ; The linear-v will be divided to left-branching or right-branching in the lexical rules. lt-verb-aux-haben := lt & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN - ]. lt-verb-aux-sein := lt & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN + ]. lt-verb-aux-na := lt & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN na ]. ;;; NON-AUXILIARIES ;;; lt-verb-subj := lt-verb & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < [ LOCAL.CONT.HOOK.INDEX #subj ] >, XCOMP < > ] ], CONT [ HOOK.XARG #subj ] ] ]. lt-verb-subj-npnom := lt-verb-subj & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR.PN #pn ], VAL [ SUBJ < synsem-npnom & [ LOCAL [ CAT.HEAD.AGR.PN #pn ] ] > ] ] ] ]. lt-verb-subj-es := lt-verb-subj & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < synsem-es > ] ] ] ]. lt-verb-subj-es-refl := lt-verb-subj-es & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT [ FIRST [ LOCAL.CAT.HEAD.AGR.PN pn-3sg ] ] ]. lt-verb-subj-cp := lt-verb-subj & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < synsem-cp > ] ] ] ]. lt-verb-subj-cp-refl := lt-verb-subj-cp & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT [ FIRST [ LOCAL.CAT.HEAD.AGR.PN pn-3sg ] ] ]. ; Enforces agreement between subject and reflexive. lt-verb-subj-npnom-refl := lt-verb-subj-npnom & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < [ LOCAL.CAT.HEAD.AGR [ GENDER #gender, PN #pn ] ] >, SUBCAT [ FIRST [ LOCAL.CAT.HEAD.AGR [ GENDER #gender, PN #pn ] ] ] ] ]. ;;; AUXILIARIES ;;; lt-args-attract := lt & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT #subcat, XCOMP [ FIRST.LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT #subcat ] ] ] ]. lt-verb-auxiliary := lt-verb & lt-args-attract & lt-sem-aa & [ SYNSEM.LOCAL.CAT [ VAL [ XCOMP < synsem > ] ] ]. ; For example, object control. lt-args-attract-1 := lt & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST synsem-match, REST #subcat ], XCOMP [ FIRST.LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT #subcat ] ] ] ]. lt-verb-auxiliary-1 := lt-verb & lt-args-attract-1 & lt-sem-aa & [ SYNSEM.LOCAL.CAT [ VAL [ XCOMP < synsem > ] ] ]. ; will (...) trinken lt-verb-aux-inf := lt-verb-auxiliary & lt-verb-aux-haben & [ SYNSEM.LOCAL.CAT [ HEAD [ BRANCH-CLUSTER branching-left, MODAL + ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-inf ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; versucht zu trinken lt-verb-aux-izu := lt-verb-auxiliary & lt-verb-aux-haben & [ SYNSEM.LOCAL [ CAT [ HEAD [ BRANCH-CLUSTER branching-left, MODAL - ], VAL [ XCOMP < synsem-aux-izu >, INCOH + ] ], CONT [ RELS ] ] ]. lt-verb-aux-izu-refl := lt-verb-auxiliary-1 & lt-verb-aux-haben & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR.PN #pn, BRANCH-CLUSTER branching-left, MODAL - ], VAL [ SUBCAT [ FIRST synsem-refl & [ LOCAL.CAT.HEAD.AGR.PN #pn ] ], XCOMP < synsem-aux-izu & [ LOCAL.CONT.HOOK.XARG #subj ] >, INCOH + ] ], CONT [ RELS ] ] ]. ; wies ihn an, das zu trinken ;lt-verb-aux-izu-npacc-part ; hat getrunken lt-verb-aux-perfect-psp-haben := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ MODAL -, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-psp, AUX-SEIN -, MODAL - ], VOICE voice-active ] ] > ] ] ]. ; hat (...) trinken wollen lt-verb-aux-perfect-inf-haben := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ MODAL -, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-inf, AUX-SEIN -, MODAL + ], VOICE voice-active ] ] > ] ] ]. ; ist gegangen, ist getrunken worden lt-verb-aux-perfect-psp-sein := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ MODAL -, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-psp, AUX-SEIN +, MODAL bool ], VOICE voice-active ] ] > ] ] ]. ; wird getrunken lt-verb-aux-passive := lt-verb & lt-args-attract & lt-verb-aux-sein & lt-sem-common & [ SYNSEM.LOCAL [ CAT [ HEAD [ MODAL -, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL [ CAT [ HEAD [ FORM-VERB form-verb-psp, AUX-SEIN -, MODAL bool ], VOICE voice-passive ], CONT [ HOOK [ INDEX #arg2, XARG #synt-subj ] ] ] ] > ] ], CONT [ RELS ] ] ]. ; er wird trinken lt-verb-aux-future := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ MODAL +, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-inf ], VOICE voice-active ] ] > ] ] ]. ; zu trinken ; This one is not connected to lt-sem-aa, because the arguments should not taken to the zu-relation. lt-verb-zu-inf := lt-verb & lt-args-attract & lt-verb-aux-na & [ SYNSEM.LOCAL [ CAT [ HEAD [ MODAL -, BRANCH-CLUSTER branching-right ], VAL [ XCOMP < [ LOCAL [ CAT [ HEAD [ FORM-VERB form-verb-inf ], VOICE voice-active ], CONT [ HOOK [ INDEX #inf, XARG #subj ] ] ] ] >, INCOH - ] ], CONT [ HOOK [ INDEX #arg0, XARG #subj ], RELS , HCONS ] ] ]. ;;;;;;;;;;;;;; ;; Nominals ;; ;;;;;;;;;;;;;; lt-nominal := lt & [ SYNSEM [ LOCAL [ CAT [ HEAD head-nominal, VAL [ XCOMP < >, SPR < >, SUBJ < > ] ], CONT nom-obj & [ RELS , HCONS ] ] ], LR-PHASE lr-phase-finish ]. lt-non-pronominal := lt-nominal & lt-sem-spec & [ SYNSEM [ LOCAL [ CAT [ HEAD head-non-pronominal & [ AGR.PN.PERSON person-3 ], LINEAR-N linear-n-start ] ], NONLOCAL no-nonlocal ] ]. lt-noun := lt-non-pronominal & [ SYNSEM.LOCAL.CAT.HEAD head-noun ]. ;[ SYNSEM.LOCAL [ CAT [ HEAD head-noun & [ MOD synsem-no-match ] ] ] ]. lt-name := lt-non-pronominal & [ SYNSEM.LOCAL [ CAT [ HEAD head-name, VAL [ SUBCAT < > ] ] ] ]. lt-pronominal := lt-nominal & lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-pronominal & [ APP - ], VAL val-saturated ] ], NONLOCAL no-slash ] ]. lt-pronominal-no-nonlocal := lt-pronominal & [ SYNSEM.NONLOCAL no-nonlocal ]. lt-pronominal-no-mod := lt-pronominal & [ SYNSEM.LOCAL.CAT.HEAD.MOD synsem-no-match ]. lt-pronominal-linear := lt-pronominal & [ SYNSEM.LOCAL.CAT.LINEAR-N linear-n-can-det ]. lt-pronominal-common := lt-pronominal-no-nonlocal & lt-pronominal-no-mod & lt-pronominal-linear. ; Constrain to Mittelfeld? lt-refl := lt-pronominal-common & [ SYNSEM [ LOCAL [ CAT.HEAD head-refl & [ AGR.CASE case-acc ] ] ] ]. lt-pper := lt-pronominal-common & [ SYNSEM [ LOCAL [ CAT.HEAD head-pper ] ] ]. lt-pds := lt-pronominal-common & [ SYNSEM [ LOCAL [ CAT.HEAD head-pds & [ AGR.PN.PERSON person-3 ] ] ] ]. lt-pis := lt-pronominal-common & [ SYNSEM [ LOCAL [ CAT.HEAD head-pis & [ AGR.PN.PERSON person-3 ] ] ] ]. lt-rel := lt-pronominal & [ SYNSEM [ LOCAL [ CAT [ HEAD head-rel & [ AGR [ GENDER #gender, PN [ NUMBER #number ] ] ], LINEAR-N linear-n-can-not ] ], NONLOCAL no-slash & [ REL local-match & [ CAT.HEAD.AGR [ GENDER #gender, PN [ NUMBER #number ] ] ] ] ] ]. lt-pws := lt-pronominal-no-mod & lt-pronominal-linear & [ SYNSEM [ LOCAL [ CAT.HEAD head-pws & [ AGR #agr ] ], NONLOCAL [ QUE #agr & agr-wh-nom ] ] ]. ; 'morgen', as in 'bis morgen' lt-advn := lt-nominal & lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-advn, VAL val-saturated, LINEAR-N linear-n-can-not ] ], NONLOCAL no-nonlocal ] ]. ;;;;;;;;;;;;;;;;; ;; Determiners ;; ;;;;;;;;;;;;;;;;; lt-determiner := lt-sem-common & [ SYNSEM.LOCAL [ CAT [ HEAD.AGR [ PN.NUMBER #number, CASE #case, GENDER #gender ], VAL val-just-one-spr & [ SPR < [ LOCAL [ CAT [ HEAD head-non-pronominal & [ AGR [ PN.NUMBER #number, CASE #case, GENDER #gender ] ] ], CONT [ HOOK.XARG #det ] ] ] > ] ], CONT nom-obj & [ HOOK [ INDEX #det ], RELS , HCONS ] ], LR-PHASE lr-phase-finish ]. lt-det-no-nonlocal := lt-determiner & [ SYNSEM.NONLOCAL no-nonlocal ]. lt-det-art-def := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-article & [ AGR.INFL infl-weak ] ]. lt-det-art-indef := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-article & [ AGR.INFL infl-mix ] ]. lt-pposat := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-pposat & [ AGR.INFL infl-mix ] ]. lt-pdat := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-pdat & [ AGR.INFL infl-mix ] ]. lt-det-rel-gen := lt-determiner & [ SYNSEM [ LOCAL.CAT.HEAD head-det-rel-gen & [ AGR.INFL infl-weak ], NONLOCAL no-slash-que & [ REL local-match ] ] ]. lt-det-rel-gen-mn-s := lt-det-rel-gen & [ SYNSEM.NONLOCAL.REL [ CAT.HEAD.AGR [ PN.NUMBER number-sg, GENDER gender-masc-neut ] ] ]. lt-det-rel-gen-f-s := lt-det-rel-gen & [ SYNSEM.NONLOCAL.REL [ CAT.HEAD.AGR [ PN.NUMBER number-sg, GENDER gender-fem ] ] ]. lt-det-rel-gen-g-p := lt-det-rel-gen & [ SYNSEM.NONLOCAL.REL [ CAT.HEAD.AGR [ PN.NUMBER number-pl, GENDER gender ] ] ]. lt-det-pwat := lt-determiner & [ SYNSEM [ LOCAL.CAT.HEAD head-pwat & [ AGR #agr ], NONLOCAL.QUE #agr ] ]. ;;;;;;;;;;;;;;;;;; ;; Attributives ;; ;;;;;;;;;;;;;;;;;; lt-attributive := lt-sem-mod & [ SYNSEM [ LOCAL [ CAT cat & [ HEAD head-super-adjective & [ AGR [ PN.NUMBER #number, GENDER #gender, CASE #case, INFL #infl ], MOD [ LOCAL.CAT.HEAD head-non-pronominal & [ AGR [ PN.NUMBER #number, GENDER #gender, CASE #case, INFL #infl ] ] ] ], VAL [ XCOMP < >, SPR < >, SUBJ < > ] ], PLACE-N place-n-mid, CONT psoa & [ HOOK.XARG #xarg, RELS ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. lt-adjective := lt-attributive & [ SYNSEM.LOCAL.CAT.HEAD head-adj ]. lt-number := lt-attributive & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.HEAD head-number ]. ;;;;;;;;;;;;; ;; Adverbs ;; ;;;;;;;;;;;;; lt-adv-super := lt & [ SYNSEM [ LOCAL [ CAT [ HEAD head-super-adverb, VAL [ XCOMP < >, SPR < > ] ], CONT psoa ] ], LR-PHASE lr-phase-finish ]. lt-adv-no-nonlocal := lt-adv-super & [ SYNSEM.NONLOCAL no-nonlocal ]. lt-adv := lt-adv-no-nonlocal & lt-sem-mod. lt-adv-verb := lt-adv & lt-mod-verb & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-np_left := lt-adv & lt-mod-np_left & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-np_right := lt-adv & lt-mod-np_right & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adp_left := lt-adv & lt-mod-adp_left & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adp_right := lt-adv & lt-mod-adp_right & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adj_left := lt-adv & lt-mod-adj_left & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adj_right := lt-adv & lt-mod-adj_right & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adv_left := lt-adv & lt-mod-adv_left & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-adv_right := lt-adv & lt-mod-adv_right & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL val-saturated ]. lt-adv-wh := lt-adv-super & lt-mod-verb & lt-sem-mod-0-arg & [ SYNSEM [ LOCAL [ CAT.VAL val-saturated ], NONLOCAL [ SLASH local-no-match, REL local-no-match, QUE agr-wh-no-nom ] ] ]. ;;;;;;;;;;;;;;;;;; ;; Adpositions ;; ;;;;;;;;;;;;;;;;;; lt-adposition := lt-sem-mod & [ SYNSEM [ LOCAL [ CAT [ HEAD head-adposition, VAL [ SPR < >, SUBJ < >, XCOMP < > ] ], CONT psoa & [ RELS ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. lt-adp-npnom := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-nom ] ]. lt-adp-npgen := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST synsem-npgen ]. lt-adp-npdat := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-dat ] ]. lt-adp-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-acc ] ]. lt-adp-npnom-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-nom-acc ] ]. lt-adp-npdat-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-dat-acc ] ]. lt-adp-npnom-npdat-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR.CASE case-nom-dat-acc ] ]. lt-adp-d-f := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR [ CASE case-dat, GENDER gender-fem ] ] ]. lt-adp-d-mn := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR [ CASE case-dat, GENDER gender-masc-neut ] ] ]. lt-adp-a-mn := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT.FIRST [ LOCAL.CAT.HEAD.AGR [ CASE case-acc, GENDER gender-masc-neut ] ] ]. lt-adp-reg := lt-adposition & lt-sem-mod-1-arg & lt-mod-verb-nbar & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < synsem-np > ] ] ], STEM #form-adp ]. lt-adp-reg-prep := lt-adp-reg & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT < [ LOCAL.PLACE-O place-o-right ] > ]. lt-adp-reg-post := lt-adp-reg & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT < [ LOCAL.PLACE-O place-o-left ] > ]. lt-adp-reg-prep-npnom := lt-adp-reg-prep & lt-adp-npnom. lt-adp-reg-prep-npgen := lt-adp-reg-prep & lt-adp-npgen. lt-adp-reg-prep-npdat := lt-adp-reg-prep & lt-adp-npdat. lt-adp-reg-prep-npacc := lt-adp-reg-prep & lt-adp-npacc. lt-adp-reg-prep-npnom-npacc := lt-adp-reg-prep & lt-adp-npnom-npacc. lt-adp-reg-prep-npdat-npacc := lt-adp-reg-prep & lt-adp-npdat-npacc. lt-adp-reg-prep-npnom-npdat-npacc := lt-adp-reg-prep & lt-adp-npnom-npdat-npacc. lt-adp-reg-post-npgen := lt-adp-reg-post & lt-adp-npgen. lt-adp-reg-post-npdat := lt-adp-reg-post & lt-adp-npdat. lt-adp-reg-post-npacc := lt-adp-reg-post & lt-adp-npacc. lt-adp-circum := lt-adposition & lt-sem-mod-2-arg & lt-mod-verb-nbar & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < synsem-np & [ LOCAL.PLACE-O place-o-right ], synsem-part & [ LOCAL [ CAT.HEAD.FORM-PART #form-part, PLACE-O place-o-right ] ] > ] ] ], STEM #form-adp, LKEYS.KEY-PART #form-part ]. lt-adp-circum-npnom := lt-adp-circum & lt-adp-npnom. lt-adp-circum-npgen := lt-adp-circum & lt-adp-npgen. lt-adp-circum-npdat := lt-adp-circum & lt-adp-npdat. lt-adp-circum-npacc := lt-adp-circum & lt-adp-npacc. lt-adp-circum-npdat-npacc := lt-adp-circum & lt-adp-npdat-npacc. lt-adp-apprart := lt-adposition & lt-sem-mod-1-arg & lt-mod-verb-nbar & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < synsem-nbar & [ LOCAL.PLACE-O place-o-right ] > ] ] ], LKEYS.KEY-ADP #form-adp ]. lt-adp-apprart-d-f := lt-adp-apprart & lt-adp-d-f. lt-adp-apprart-d-mn := lt-adp-apprart & lt-adp-d-mn. lt-adp-apprart-a-mn := lt-adp-apprart & lt-adp-a-mn. lt-adp-circum-apprart := lt-adposition & lt-sem-mod-2-arg & lt-mod-verb-nbar & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < synsem-nbar & [ LOCAL.PLACE-O place-o-right ], synsem-part & [ LOCAL [ CAT.HEAD.FORM-PART #form-part, PLACE-O place-o-right ] ] > ] ] ], LKEYS.KEY-ADP #form-adp, LKEYS.KEY-PART #form-part ]. lt-adp-circum-apprart-d-f := lt-adp-circum-apprart & lt-adp-d-f. lt-adp-circum-apprart-d-mn := lt-adp-circum-apprart & lt-adp-d-mn. lt-adp-circum-apprart-a-mn := lt-adp-circum-apprart & lt-adp-a-mn. lt-adp-proav := lt-adposition & lt-sem-mod-0-arg & lt-mod-verb-nbar & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < > ] ] ], LKEYS.KEY-ADP #form-adp ]. lt-adp-verb := lt-adposition & lt-sem-mod-1-arg & lt-mod-verb & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp ], VAL [ SUBCAT < synsem-verb & [ LOCAL.PLACE-O place-o-right ] > ] ] ], STEM #form-adp ]. lt-adp-verb-vlast := lt-adp-verb & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT < synsem-vlast > ]. lt-adp-verb-izu := lt-adp-verb & [ SYNSEM.LOCAL.CAT.VAL.SUBCAT < synsem-izu > ]. ;;;;;;;;;;;;;;;;;;;;; ;; Complementizers ;; ;;;;;;;;;;;;;;;;;;;;; lt-compl := lt-sem-1-arg & [ SYNSEM [ LOCAL.CAT [ HEAD head-compl, VAL val-just-one-subcat & [ SUBCAT < synsem-vlast & [ LOCAL.PLACE-O place-o-right ] > ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. ;;;;;;;;;;;;;;;;;;;; ;; Verb particles ;; ;;;;;;;;;;;;;;;;;;;; lt-part := lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-part & [ FORM-PART #form ], VAL val-saturated ], CONT [ RELS ] ], NONLOCAL no-nonlocal ], STEM #form, LR-PHASE lr-phase-finish ]. ;;;;;;;;;;;; ;; Others ;; ;;;;;;;;;;;; lt-coord := lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-coord, VAL val-saturated ], CONT [ HOOK hook-conj & [ L-ARG #left, R-ARG #right ], RELS ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. lt-expl := lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-expl, VAL val-saturated ], CONT nom-obj ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. lt-year := lt-sem-mod-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-year, VAL val-saturated ], CONT psoa ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish ]. ;;;;;;;;;;;;;;;;;;; ;; Generic types ;; ;;;;;;;;;;;;;;;;;;; gen-verb := lt-verb-subj-npnom & lt-sem-su-1-arg & [ SYNSEM.LOCAL [ CAT [ HEAD.AGR [ PN.PERSON person-3 ], VAL.SUBCAT < synsem-npacc > ], CONT [ RELS ] ] ]. gen-vvfin := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.FORM-VERB form-verb-fin ]. gen-vvinf := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.FORM-VERB form-verb-inf ]. gen-vvizu := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.FORM-VERB form-verb-izu ]. gen-vvpp := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.FORM-VERB form-verb-psp ]. gen-adja := lt-adjective & [ SYNSEM.LOCAL [ CAT [ VAL val-saturated ], CONT [ RELS ] ] ]. gen-number := lt-number & [ SYNSEM.LOCAL [ CONT [ RELS ] ] ]. gen-adv := lt-adv & lt-mod-verb & [ SYNSEM.LOCAL [ CAT [ VAL val-saturated ], CONT [ RELS ] ] ]. gen-noun := lt-noun & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ CASE case-nom-dat-acc ], APP - ], VAL val-saturated ], CONT [ RELS ] ] ]. gen-name := lt-name & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ CASE case-nom-dat-acc ], APP + ], VAL val-saturated ], CONT [ RELS ] ] ].