synsem-sat := synsem-match & [ LOCAL.CAT.VAL val-saturated ]. synsem-n-v-j := synsem-match & [ LOCAL.CAT.HEAD n-v-j ]. synsem-v-n := synsem-n-v-j & [ LOCAL.CAT.HEAD n-v ]. synsem-als-complement := synsem-sat. ; Maybe constrain the head, just like synsem-v-n? synsem-verb := synsem-v-n & [ LOCAL.CAT.HEAD head-super-verb ]. synsem-sent := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-fin ], V-POS v-pos-not-last ], NONLOCAL no-slash-rslash-rel ]. ; As selected for by adpositions as 'ohne' and verbs as 'versuchen'. synsem-npnom is put here to prevent spurious ambiguity. synsem-izu := synsem-verb & [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-izu ], V-POS v-pos-last, VAL [ SUBJ < synsem-npnom-c >, COMPS < >, XCOMP < > ] ], NONLOCAL no-nonlocal ]. synsem-inf := synsem-verb & [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-inf ], V-POS v-pos-last, VAL [ SUBJ < synsem-npnom-c >, COMPS < >, XCOMP < > ] ], NONLOCAL no-nonlocal ]. synsem-wh := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-fin ], V-POS v-pos-last ], NONLOCAL just-que ]. synsem-vlast := synsem-verb & synsem-sat & [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-fin ], V-POS v-pos-last ], NONLOCAL no-nonlocal ]. ; 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 linear-n-can-det, VAL val-just-one-spec ] ]. synsem-np := synsem-sat & [ LOCAL.CAT [ HEAD head-super-noun, LINEAR linear-n-finish ] ]. synsem-np-c := synsem-np & [ LOCAL.CAT.HEAD.MOD synsem-no-match ]. synsem-npnom := synsem-np & synsem-als-complement & [ 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 & synsem-als-complement & [ LOCAL.CAT.HEAD.AGR.CASE case-dat ]. synsem-npacc := synsem-np & synsem-als-complement & [ LOCAL.CAT.HEAD.AGR.CASE case-acc ]. synsem-npnom-c := synsem-npnom & synsem-np-c. synsem-npgen-c := synsem-npgen & synsem-np-c. synsem-npdat-c := synsem-npdat & synsem-np-c. synsem-npacc-c := synsem-npacc & synsem-np-c. synsem-prednp := synsem-np-c & [ LOCAL.CAT.HEAD.AGR.CASE case-nom ]. synsem-det := synsem-match & [ LOCAL.CAT [ HEAD head-super-determiner, VAL val-just-one-spr ] ]. synsem-adj := synsem-n-v-j & [ LOCAL [ CAT.HEAD head-super-adjective, CONT.HOOK.INDEX event-degree-def ] ]. synsem-predap := synsem-adj & [ LOCAL.CAT [ HEAD head-super-adj-pred, VAL val-saturated ] ]. synsem-number := synsem-n-v-j & [ LOCAL [ CAT.HEAD head-number ] ]. synsem-adv := synsem-als-complement & [ LOCAL.CAT.HEAD head-adv ]. synsem-refl := synsem-sat & [ LOCAL.CAT [ HEAD head-refl, LINEAR 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-adp := synsem-als-complement & [ LOCAL.CAT.HEAD head-super-adposition ]. lt-mod-sem-undef := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.MOD [ LOCAL.CONT.HOOK.INDEX.SEM-AGR agr-no-match ] ]. lt-mod-none := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-no-match ] ]. lt-mod-verb-nbar := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-n-v-j, PLACE-N place-n-post ] ]. lt-mod-verb := lt-mod-sem-undef & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-verb ] ]. lt-mod-nbar_post := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-nbar, PLACE-N place-n-post ] ]. lt-mod-nbar_mid := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-nbar, PLACE-N place-n-mid ] ]. lt-mod-np_left := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-np, PLACE-O place-o-left ] ]. lt-mod-np_right := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-np, PLACE-O place-o-right ] ]. lt-mod-adj_left := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adj, PLACE-O place-o-left ] ]. lt-mod-adj_right := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adj, PLACE-O place-o-right ] ]. lt-mod-adv_left := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adv, PLACE-O place-o-left ] ]. lt-mod-adv_right := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adv, PLACE-O place-o-right ] ]. lt-mod-adp_left := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adp, PLACE-O place-o-left ] ]. lt-mod-adp_right := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adp, PLACE-O place-o-right ] ]. lt-mod-adj_comp := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD synsem-adj & [ LOCAL.CAT.HEAD.DEGREE degree-comp ] ] ]. lt-app := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.APP + ]. lt-noapp := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.APP - ]. lt-anc-none := lex-item & [ SYNSEM [ ANC [ ANC-ACTIVE [ LIST #empty & < >, LAST #empty ], ANC-ALL ] ] ]. lt-anc-self := lex-item & [ SYNSEM [ LOCAL [ CONT.HOOK.INDEX #index ], ANC [ ANC-ACTIVE [ LIST #empty & < >, LAST #empty ], ANC-ALL ] ] ]. bind-key-degree := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.DEGREE #degree, LKEYS.KEY-DEGREE #degree ]. bind-key-agr := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.AGR #agr, LKEYS.KEY-AGR #agr ]. bind-key-adp-1 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST [ LOCAL.CAT.HEAD.FORM-ADP #key ], LKEYS.KEY-ADP #key ]. bind-key-adp-2 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.REST.FIRST [ LOCAL.CAT.HEAD.FORM-ADP #key ], LKEYS.KEY-ADP #key ]. bind-key-adp-3 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.REST.REST.FIRST [ LOCAL.CAT.HEAD.FORM-ADP #key ], LKEYS.KEY-ADP #key ]. bind-key-part-1 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST [ LOCAL.CAT.HEAD.FORM-PART #key ], LKEYS.KEY-PART #key ]. bind-key-part-2 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.REST.FIRST [ LOCAL.CAT.HEAD.FORM-PART #key ], LKEYS.KEY-PART #key ]. bind-key-part-3 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.REST.REST.FIRST [ LOCAL.CAT.HEAD.FORM-PART #key ], LKEYS.KEY-PART #key ]. bind-key-part-4 := lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS.REST.REST.REST.FIRST [ LOCAL.CAT.HEAD.FORM-PART #key ], LKEYS.KEY-PART #key ]. ;;;;;;;;;;; ;; Verbs ;; ;;;;;;;;;;; lt-verb := lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-verb, VAL [ SPR < >, SPEC < > ], VOICE voice-active, LINEAR-C linear-c-start ], CONT psoa & [ HOOK.INDEX event-no-degree ] ], NONLOCAL no-nonlocal ], LKEYS lkeys-verb ]. lt-verb-aux-haben := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN - ]. lt-verb-aux-sein := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN + ]. lt-verb-aux-na := lex-item & [ SYNSEM.LOCAL.CAT.HEAD.AUX-SEIN na ]. ;;; AUXILIARIES ;;; lt-args-attract := lt-verb & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ #subj, COMPS #comps , XCOMP [ FIRST.LOCAL.CAT.VAL [ SUBJ #subj, COMPS #comps ] ] ], INFL - ]. lt-verb-auxiliary := lt-args-attract & lt-sem-aa & [ SYNSEM.LOCAL.CAT [ VAL [ XCOMP < synsem > ] ] ]. lt-args-attract-1 := lex-item & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST synsem-match, REST #comps ], XCOMP [ FIRST.LOCAL.CAT.VAL [ SUBJ #subj, COMPS #comps ] ] ] ]. 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, VTYPE vtype-modal ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-inf ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; hat getrunken lt-verb-aux-perfect-psp-haben := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ VTYPE vtype-aux, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-psp, AUX-SEIN -, VTYPE vtype-aux-voll ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; hat (...) trinken wollen lt-verb-aux-perfect-inf-haben := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ VTYPE vtype-aux, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-inf, AUX-SEIN -, VTYPE vtype-modal ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; ist gegangen, ist getrunken worden lt-verb-aux-perfect-psp-sein := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ VTYPE vtype-aux, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-psp, AUX-SEIN + ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; wird getrunken lt-verb-aux-passive := lt-args-attract & lt-verb-aux-sein & lt-sem-common & [ SYNSEM.LOCAL [ CAT [ HEAD [ VTYPE vtype-aux, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL [ CAT [ HEAD [ AGR.FORM-VERB form-verb-psp, AUX-SEIN - ], VOICE voice-passive ], CONT [ HOOK [ INDEX #arg2, XARG #synt-subj ] ] ] ] >, INCOH - ] ], CONT [ HOOK hook & [ XARG #synt-subj ], RELS ] ] ]. ; er wird trinken lt-verb-aux-future := lt-verb-auxiliary & lt-verb-aux-na & [ SYNSEM.LOCAL.CAT [ HEAD [ VTYPE vtype-modal, BRANCH-CLUSTER branching-left ], VAL [ XCOMP < [ LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-inf ], VOICE voice-active ] ] >, INCOH - ] ] ]. ; zu trinken ; This one is not connected to lt-sem-aa, because the arguments should not be taken to the zu-relation. lt-verb-zu-inf := lt-args-attract & lt-verb-aux-na & [ SYNSEM.LOCAL [ CAT [ HEAD [ VTYPE vtype-voll, BRANCH-CLUSTER branching-right, AGR.FORM-VERB form-verb-izu ], VAL [ XCOMP < [ LOCAL [ CAT [ HEAD [ AGR.FORM-VERB form-verb-inf ], VOICE voice-active ], CONT [ HOOK [ INDEX #inf, XARG #subj ] ] ] ] >, INCOH - ] ], CONT [ HOOK [ INDEX #arg0, XARG #subj ], RELS , HCONS ] ] ]. ;;; NON-AUXILIARIES ;;; lt-verb-subj := lt-verb & [ SYNSEM.LOCAL [ CAT [ HEAD.VTYPE vtype-voll, VAL [ SUBJ < [ LOCAL.CONT.HOOK.INDEX #subj ] >, XCOMP < > ] ], CONT [ HOOK.XARG #subj ] ] ]. lt-verb-subj-non-generic := lt-verb-subj & [ INFL - ]. lt-verb-subj-npnom := lt-verb-subj-non-generic & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ PERSON #person, NUMBER #number ] ], VAL [ SUBJ < synsem-npnom-c & [ LOCAL [ CAT.HEAD.AGR [ PERSON #person, NUMBER #number ] ] ] > ] ] ] ]. ; 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, PERSON #person, NUMBER #number ] ] >, COMPS [ FIRST [ LOCAL.CAT.HEAD.AGR [ GENDER #gender, PERSON #person, NUMBER #number ] ] ] ] ]. lt-verb-subj-es := lt-verb-subj-non-generic & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < synsem-es > ] ] ] ]. lt-verb-subj-es-refl := lt-verb-subj-es & [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST [ LOCAL.CAT.HEAD.AGR [ PERSON person-3, NUMBER number-sg ] ] ] ]. lt-verb-subj-cp := lt-verb-subj-non-generic & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < synsem-cp > ] ] ] ]. lt-verb-subj-cp-refl := lt-verb-subj-cp & [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST [ LOCAL.CAT.HEAD.AGR [ PERSON person-3, NUMBER number-sg ] ] ] ]. lt-verb-reg-obj-control := lt-verb-subj-npnom & lt-sem-su-2-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-npacc, synsem-inf > ]. ;;;;;;;;;;;;;; ;; Nominals ;; ;;;;;;;;;;;;;; lt-nominal := lt-anc-self & lt-sem-bind-agr & [ SYNSEM [ LOCAL 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-common & [ SYNSEM [ LOCAL [ CAT [ HEAD head-non-pronominal & [ AGR.PERSON person-3 ], VAL [ SPEC < synsem > ], LINEAR linear-n-start ] ], NONLOCAL no-nonlocal ] ]. lt-name := lt-non-pronominal & bind-key-agr & [ SYNSEM.LOCAL [ CAT [ HEAD head-name, VAL [ COMPS < > ] ] ], INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "NE" ] ]. lt-noun := lt-non-pronominal & [ SYNSEM.LOCAL.CAT.HEAD head-noun, INFL bool, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "NN" ] ]. ; Assuming that all nouns that can modify verbs never have complements, and never have appositions. lt-noun-mod := lt-noun & lt-mod-verb & lt-noapp & lt-sem-mod-0-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, INFL + ]. lt-noun-nomod := lt-noun & lt-mod-none & [ INFL - ]. ; Subcat frames lt-noun-none := lt-noun-nomod & lt-sem-0-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < > ]. lt-noun-cp := lt-noun-nomod & lt-sem-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-cp > ]. lt-noun-izu := lt-noun-nomod & lt-sem-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-izu > ]. lt-noun-sent := lt-noun-nomod & lt-sem-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-sent > ]. lt-noun-wh := lt-noun-nomod & lt-sem-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-wh > ]. lt-noun-adp := lt-noun-nomod & lt-sem-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-adp > ] & bind-key-adp-1. ; Cross-product of subcat frames and app/noapp. lt-noun-nomod-noapp := lt-noun-none & lt-noapp. lt-noun-nomod-noapp-cp := lt-noun-cp & lt-noapp. lt-noun-nomod-noapp-izu := lt-noun-izu & lt-noapp. lt-noun-nomod-noapp-sent := lt-noun-sent & lt-noapp. lt-noun-nomod-noapp-wh := lt-noun-wh & lt-noapp. lt-noun-nomod-noapp-adp := lt-noun-adp & lt-noapp. lt-noun-nomod-app := lt-noun-none & lt-app. lt-noun-nomod-app-cp := lt-noun-cp & lt-app. lt-noun-nomod-app-izu := lt-noun-izu & lt-app. lt-noun-nomod-app-sent := lt-noun-sent & lt-app. lt-noun-nomod-app-wh := lt-noun-wh & lt-app. lt-noun-nomod-app-adp := lt-noun-adp & lt-app. ; 'morgen', as in 'bis morgen' lt-advn := lt-nominal & lt-sem-0-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD head-advn, VAL val-saturated, LINEAR linear-n-can-not ] ], NONLOCAL no-nonlocal ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADV" ] ]. ;;;;;;;;;;;;;;;;; ;; Pronominals ;; ;;;;;;;;;;;;;;;;; lt-pronominal := lt-nominal & lt-sem-0-arg & bind-key-agr & [ SYNSEM [ LOCAL [ CAT [ HEAD head-pronominal & [ APP - ] ] ], NONLOCAL no-slash-rslash ], INFL +, LKEYS lkeys-agr, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "PRON" ] ]. 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 [ VAL val-just-one-spec, LINEAR 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.PERSON person-3 ] ] ] ]. lt-pis := lt-pronominal-common & [ SYNSEM [ LOCAL [ CAT.HEAD head-pis & [ AGR.PERSON person-3 ] ] ] ]. lt-rel := lt-pronominal & [ SYNSEM [ LOCAL [ CAT [ HEAD head-rel & [ AGR [ GENDER #gender, NUMBER #number ] ] , LINEAR linear-n-can-not, VAL val-saturated ] ], NONLOCAL [ REL local-match & [ CAT.HEAD.AGR [ GENDER #gender, NUMBER #number ] ] ] ] ]. lt-pws := lt-pronominal-no-mod & lt-pronominal-linear & [ SYNSEM [ LOCAL [ CAT.HEAD head-pws ], NONLOCAL just-que ] ]. ;;;;;;;;;;;;;;;;; ;; Determiners ;; ;;;;;;;;;;;;;;;;; lt-determiner-super := lt-sem-spr & bind-key-agr & lt-sem-bind-agr & lt-anc-none & [ SYNSEM.LOCAL [ CAT [ HEAD head-super-determiner & [ AGR.N-INFL #n-infl ], VAL val-just-one-spr & [ SPR < [ LOCAL [ CAT [ HEAD head-non-pronominal & [ AGR.N-INFL #n-infl ] ] ] ] > ] ], CONT nom-obj & [ RELS , HCONS ] ], LR-PHASE lr-phase-finish, LKEYS lkeys-agr ]. lt-determiner := lt-determiner-super & [ SYNSEM [ LOCAL [ CAT [ HEAD.AGR [ NUMBER #number, CASE #case, GENDER #gender ], VAL.SPR < [ LOCAL.CAT.HEAD head-non-pronominal & [ AGR [ NUMBER #number, CASE #case, GENDER #gender ] ] ] > ] ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "DET" ] ]. 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.N-INFL n-infl-weak ] ]. lt-det-art-indef := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-article & [ AGR.N-INFL n-infl-mix ] ]. lt-pposat := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-pposat & [ AGR.N-INFL n-infl-mix ] ]. lt-pdat := lt-det-no-nonlocal & [ SYNSEM.LOCAL.CAT.HEAD head-pdat & [ AGR.N-INFL n-infl-mix ] ]. lt-det-pwat := lt-determiner & [ SYNSEM [ LOCAL.CAT.HEAD head-pwat, NONLOCAL just-que ] ]. ; This type of determiner is funny, because there is no need for the determiner and the noun to match. KEY-AGR is used to indicate what the det-rel-gen can modify. lt-det-rel-gen := lt-determiner-super & [ SYNSEM [ LOCAL [ CAT [ HEAD head-det-rel-gen & [ AGR [ N-INFL n-infl-weak ] ], VAL [ SPR < [ LOCAL.CAT.HEAD.AGR [ CASE case-nom-dat-acc ] ] > ] ] ], NONLOCAL just-rel & [ REL.CAT.HEAD.AGR [ NUMBER #rel-number, GENDER #rel-gender ] ] ], LKEYS [ KEY-AGR [ NUMBER #rel-number, GENDER #rel-gender ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "PRELAT" ] ]. ; Same here, no agreement between determiner and noun. KEY-AGR is used for number and gender, but not for case. ; Dessen vagen Äußerungen lt-det-dessen := lt-determiner-super & [ SYNSEM [ LOCAL [ CAT [ HEAD head-det-rel-gen & [ AGR [ N-INFL n-infl-weak ] ], VAL [ SPR < [ LOCAL.CAT.HEAD.AGR [ CASE case-nom-dat-acc ] ] > ] ] ], NONLOCAL no-nonlocal ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "PRON" ] ]. ;;;;;;;;;;;;;;;;;; ;; Attributives ;; ;;;;;;;;;;;;;;;;;; lt-sem-bind-agr := lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.AGR #agr, CONT.HOOK.INDEX.SEM-AGR #agr ] ]. lt-attributive := lt-sem-mod & bind-key-degree & lt-anc-self & lt-sem-bind-agr & [ SYNSEM [ LOCAL [ CAT [ HEAD head-super-adjective & [ AGR [ NUMBER #number, GENDER #gender, CASE #case, N-INFL #infl ], MOD [ LOCAL.CAT.HEAD head-non-pronominal & [ AGR [ NUMBER #number, GENDER #gender, CASE #case, N-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, LKEYS lkeys-adj ]. lt-adjective := lt-attributive & [ SYNSEM.LOCAL [ CAT.HEAD head-adj & [ DEGREE #degree ], CONT.HOOK.INDEX event-degree-def & [ SEM-DEGREE #degree ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADJ" ] ]. lt-adjective-non-generic := lt-adjective & [ INFL - ]. lt-adj := lt-adjective-non-generic & lt-sem-mod-0-arg. lt-adj-adp := lt-adjective-non-generic & lt-sem-mod-1-arg & bind-key-adp-1 & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-adp > ]. lt-adj-npacc := lt-adjective-non-generic & lt-sem-mod-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-npacc-c & [ LOCAL.PLACE-O place-o-left ] > ]. lt-adj-npdat := lt-adjective-non-generic & lt-sem-mod-1-arg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-npdat-c & [ LOCAL.PLACE-O place-o-left ] > ]. lt-number := lt-attributive & lt-sem-mod-0-arg & [ SYNSEM.LOCAL [ CAT.HEAD head-number, CONT.HOOK.INDEX event-degree-def-pos ], INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "CARD" ] ]. lt-piat := lt-sem-mod-0-arg & lt-anc-self & lt-sem-bind-agr & bind-key-agr & [ SYNSEM [ LOCAL [ CAT [ HEAD head-piat & [ AGR [ NUMBER #number, GENDER #gender, CASE #case, N-INFL #infl & n-infl-strong ], MOD [ LOCAL.CAT.HEAD head-non-pronominal & [ AGR [ NUMBER #number, GENDER #gender, CASE #case, N-INFL #infl ] ] ] ], VAL val-saturated ], CONT psoa & [ HOOK [ INDEX event-degree-undef-comp, XARG #xarg ], RELS , HCONS ], PLACE-N place-n-mid ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL + ]. ;;;;;;;;;;;;; ;; Adverbs ;; ;;;;;;;;;;;;; lt-adv-super := lex-item & [ SYNSEM [ LOCAL [ CAT [ HEAD head-super-adverb & [ EXTRA - ], VAL [ XCOMP < >, SPR < > ] ], CONT psoa ] ], LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADV" ] ]. lt-adv-no-nonlocal := lt-adv-super & lt-anc-self & [ SYNSEM [ LOCAL.CONT.HOOK.INDEX event-degree & #event, NONLOCAL no-nonlocal ], LKEYS lkeys-event & [ KEY-EVENT #event ] ]. 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-nbar_post := lt-adv & lt-mod-nbar_post & 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 & lt-anc-none & [ SYNSEM [ LOCAL [ CAT.VAL val-saturated, CONT.HOOK.INDEX event-no-degree ], NONLOCAL just-que ] ]. lt-adv-am := lt-adv-super & lt-sem-mod-0-arg & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD [ LOCAL [ CAT [ HEAD j-r & [ DEGREE degree-super ], VAL val-saturated ] ], NONLOCAL no-nonlocal ], VAL val-saturated ], CONT [ HOOK.INDEX event-no-degree ], PLACE-O place-o-left ], NONLOCAL no-nonlocal ] ]. ; Hopefully the non-val-saturated is not too harmful. It is needed, because it needs to modify verbs as well. lt-adv-so := lt-adv-super & lt-sem-mod-0-arg & lt-anc-self & [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD [ LOCAL [ CAT.HEAD n-v-j-r-p ] ], VAL val-saturated ], CONT [ HOOK.INDEX event-degree-undef-so ], PLACE-O place-o-left, PLACE-N place-n-pre ], NONLOCAL no-nonlocal ] ]. ;;;;;;;;;;;;;;;;;; ;; Adpositions ;; ;;;;;;;;;;;;;;;;;; lt-adposition := lt-sem-mod & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-adposition, VAL [ SPR < >, SUBJ < >, XCOMP < > ] ], CONT psoa & [ HOOK.INDEX event-no-degree, RELS ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADP" ] ]. lt-adp-npnom := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-npnom-c ]. lt-adp-npgen := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-npgen-c ]. lt-adp-npdat := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-npdat-c ]. lt-adp-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-npacc-c ]. lt-adp-npnom-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-np-c & [ LOCAL.CAT.HEAD.AGR.CASE case-nom-acc ] ]. lt-adp-npdat-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-np-c & [ LOCAL.CAT.HEAD.AGR.CASE case-dat-acc ] ]. lt-adp-npnom-npdat-npacc := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-np-c & [ LOCAL.CAT.HEAD.AGR.CASE case-nom-dat-acc ] ]. lt-adp-number := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST synsem-number ]. lt-adp-d-f := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST [ LOCAL.CAT.HEAD.AGR [ CASE case-dat, GENDER gender-fem ] ] ]. lt-adp-d-mn := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST [ LOCAL.CAT.HEAD.AGR [ CASE case-dat, GENDER gender-masc-neut ] ] ]. lt-adp-a-mn := lt-adposition & [ SYNSEM.LOCAL.CAT.VAL.COMPS.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, EXTRA - ], VAL [ COMPS < synsem > ] ] ], STEM #form-adp ]. lt-adp-reg-prep := lt-adp-reg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.PLACE-O place-o-right ] > ]. lt-adp-reg-post := lt-adp-reg & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ 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-prep-number := lt-adp-reg-prep & lt-adp-number. 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, EXTRA - ], VAL [ COMPS < synsem-np-c & [ LOCAL.PLACE-O place-o-right ], synsem-part & [ LOCAL [ CAT.HEAD.FORM-PART #form-part, PLACE-O place-o-right ] ] > ] ] ], STEM #form-adp, LKEYS lkeys-part & [ 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, EXTRA - ], VAL [ COMPS < synsem-nbar & [ LOCAL.PLACE-O place-o-right ] > ] ] ], LKEYS lkeys-adp & [ 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, EXTRA - ], VAL [ COMPS < synsem-nbar & [ LOCAL.PLACE-O place-o-right ], synsem-part & [ LOCAL [ CAT.HEAD.FORM-PART #form-part, PLACE-O place-o-right ] ] > ] ] ], LKEYS lkeys-verb & [ KEY-ADP #form-adp, 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-verb := lt-adposition & lt-sem-mod-1-arg & lt-mod-verb & [ SYNSEM.LOCAL [ CAT [ HEAD [ FORM-ADP #form-adp, EXTRA - ], VAL [ COMPS < synsem-verb & [ LOCAL.PLACE-O place-o-right ] > ] ] ], STEM #form-adp ]. lt-adp-verb-vlast := lt-adp-verb & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-vlast > ]. lt-adp-verb-izu := lt-adp-verb & [ SYNSEM.LOCAL.CAT.VAL.COMPS < synsem-izu > ]. ;; Comparatives ; Separate types needed for 'wie': if it modifies a verb, it gets dependency MO, if it modifies nbar, it gets CC. lt-adp-wie := lt-adposition & lt-sem-mod-1-arg & [ SYNSEM.LOCAL [ CAT [ HEAD [ EXTRA - ], VAL.COMPS < synsem-als-complement & [ LOCAL.PLACE-O place-o-right ] > ] ] ]. lt-adp-wie-n := lt-adp-wie & lt-mod-nbar_post. lt-adp-wie-v := lt-adp-wie & lt-mod-verb. ; This one may be extraposed. lt-adp-als-comp := lt-adposition & lt-sem-mod-1-arg & [ SYNSEM.LOCAL.CAT [ HEAD.MOD [ LOCAL.CONT.HOOK.INDEX event-comparative ], VAL.COMPS < synsem-als-complement & [ LOCAL.PLACE-O place-o-right ] > ] ]. ;;;;;;;;;;; ;; PROAV ;; ;;;;;;;;;;; lt-adp-proav := lt-sem-mod-0-arg & lt-mod-verb-nbar & lt-anc-self & [ SYNSEM [ LOCAL [ CAT [ HEAD head-adposition & [ FORM-ADP #form-adp, EXTRA - ], VAL val-saturated ], CONT psoa & [ HOOK.INDEX event-degree-undef-proav, RELS ] ], NONLOCAL no-nonlocal ], LKEYS lkeys-adp & [ KEY-ADP #form-adp ], LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADP" ] ]. ;; PWAV: A mix of lt-proav and lt-adv-wh. ;;;;;;;;;;;;;;;;;;;;; ;; Complementizers ;; ;;;;;;;;;;;;;;;;;;;;; lt-compl := lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-compl, VAL val-just-one-comp & [ COMPS < synsem-vlast & [ LOCAL.PLACE-O place-o-right ] > ] ], CONT psoa & [ HOOK.INDEX event-no-degree ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADP" ] ]. lt-compl-dass := lt-compl & lt-sem-mod-1-arg & [ SYNSEM.LOCAL.CAT.HEAD [ MOD [ LOCAL.CONT.HOOK.INDEX event-degree-undef-so-or-proav ] ] ]. lt-compl-ob := lt-compl & lt-sem-mod-1-arg & [ SYNSEM.LOCAL.CAT.HEAD [ MOD [ LOCAL.CONT.HOOK.INDEX event-degree-undef-so-or-proav ] ] ]. ;;;;;;;;;;;;;;;;;;;; ;; Verb particles ;; ;;;;;;;;;;;;;;;;;;;; lt-part := lt-sem-0-arg & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-part & [ FORM-PART #form ], VAL val-saturated ], CONT psoa & [ HOOK.INDEX event-no-degree, RELS ] ], NONLOCAL no-nonlocal ], STEM #form, LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "PART" ] ]. ;;;;;;;;;;;; ;; Others ;; ;;;;;;;;;;;; lt-coord := lt-sem-0-arg & lt-anc-none & [ 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, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "KON" ] ]. lt-expl := lt-sem-0-arg & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-expl, VAL val-saturated ], CONT nom-obj ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL + ]. lt-year := lt-sem-mod-0-arg & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-year, VAL val-saturated ], CONT psoa & [ HOOK.INDEX event-no-degree ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL + ]. ; XARG can be either the MOD from the adjective, or the SPEC from the noun. lt-trunc := lt-sem-common & lt-anc-none & [ SYNSEM [ LOCAL [ CAT [ HEAD head-trunc, VAL val-saturated ], CONT psoa & [ HOOK [ INDEX event-no-degree, XARG #xarg ], RELS ] ], NONLOCAL no-nonlocal ], LR-PHASE lr-phase-finish, INFL +, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "TRUNC" ] ]. ;;;;;;;;;;;;;;;;;;; ;; Generic types ;; ;;;;;;;;;;;;;;;;;;; gen-verb := lt-verb-subj & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ PERSON #person & person-3, NUMBER #number ] ], VAL [ SUBJ < synsem-npnom-c & [ LOCAL.CAT.HEAD.AGR [ PERSON #person, NUMBER #number ] ] > ] ] ], LR-PHASE lr-phase-verb-start, INFL + ]. gen-verb-1 := gen-verb & lt-sem-su-0-arg & [ SYNSEM.LOCAL [ CAT.VAL.COMPS < >, CONT.RELS ] ]. gen-verb-2 := gen-verb & lt-sem-su-1-arg & [ SYNSEM.LOCAL [ CAT.VAL.COMPS < synsem-npacc-c >, CONT.RELS ] ]. gen-vvfin := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.AGR.FORM-VERB form-verb-fin, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "VFIN" ] ]. gen-vvinf := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.AGR.FORM-VERB form-verb-inf, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "VINF" ] ]. gen-vvimp := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.AGR.FORM-VERB form-verb-imp, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "VIMP" ] ]. gen-vvizu := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.AGR.FORM-VERB form-verb-izu, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "VIZU" ] ]. gen-vvpp := gen-verb & [ SYNSEM.LOCAL.CAT.HEAD.AGR.FORM-VERB form-verb-psp, TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "VPP" ] ]. gen-vvfin-1 := gen-vvfin & gen-verb-1. gen-vvinf-1 := gen-vvinf & gen-verb-1. gen-vvimp-1 := gen-vvimp & gen-verb-1. gen-vvizu-1 := gen-vvizu & gen-verb-1. gen-vvpp-1 := gen-vvpp & gen-verb-1. gen-vvfin-2 := gen-vvfin & gen-verb-2. gen-vvinf-2 := gen-vvinf & gen-verb-2. gen-vvimp-2 := gen-vvimp & gen-verb-2. gen-vvizu-2 := gen-vvizu & gen-verb-2. gen-vvpp-2 := gen-vvpp & gen-verb-2. gen-noun := lt-noun & lt-mod-none & lt-sem-0-arg & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ CASE case ], APP + ], VAL val-just-one-spec ], CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "NN" ], INFL + ]. gen-name := lt-name & [ SYNSEM.LOCAL [ CAT [ HEAD [ AGR [ CASE case-nom-dat-acc ], APP + ], VAL val-just-one-spec ], CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "NE" ] ]. gen-pron := lt-pronominal-common & [ SYNSEM.LOCAL [ CAT.HEAD.AGR [ PERSON person-3, CASE case-nom-dat-acc ], CONT [ RELS ] ] ]. gen-det := lt-det-no-nonlocal & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "DET" ] ]. gen-adj := lt-adjective & [ SYNSEM.LOCAL [ CAT [ VAL val-saturated ], CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADJ" ], INFL + ]. gen-number := lt-number & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "CARD" ] ]. gen-adv := lt-adv & lt-mod-verb & [ SYNSEM.LOCAL [ CAT [ VAL val-saturated ], CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADV" ] ]. gen-adp := lt-adp-reg-prep-npdat-npacc & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "ADP" ] ]. gen-part := lt-part & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "PART" ] ]. gen-coord := lt-coord & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "KON" ] ]. gen-trunc := lt-trunc & [ SYNSEM.LOCAL [ CONT [ RELS ] ], TOKENS [ +LIST.FIRST.+TNT.+TAGS.FIRST "TRUNC" ] ].