;; Needed to get LKB working. label-sign := *top*. label-rule := *top*. meta := *top*. ;;;;;;;;;;;;;;;;;;;;; ;; Top-level TFS's ;; ;;;;;;;;;;;;;;;;;;;;; ;; SIGNS sign := *top* & [ SYNSEM synsem, ARGS list, LR-PHASE lr-phase, ORTH orth ]. sign-match := sign & [ SYNSEM synsem-match ]. structure := sign-match & [ SYNSEM [ LOCAL.CONT.HOOK #hook ], ARGS ne-list, C-CONT mrs & [ HOOK #hook ] ]. word := sign-match & [ STEM list ]. lt := word & [ SYNSEM.LOCAL [ CAT.LINEAR-C linear-coord-start, CONT.RELS ], LKEYS lkeys, TOKENS tokens & [ +LIST.FIRST.+FROM #from, +LAST.+TO #to ], ORTH [ FROM #from, TO #to ] ]. lkeys := *top* & [ KEY-PART list, KEY-ADP list ]. ;; SYNSEM synsem := *top*. synsem-no-match := synsem. synsem-match := synsem & [ LOCAL local, NONLOCAL nonlocal ]. ;; LOCAL local := *top*. local-no-match := local. local-match := local & [ CAT cat, CONT mrs, PLACE-V linear-v, PLACE-N linear-n, PLACE-O linear-o ]. ;; CAT cat := *top* & [ HEAD head, VAL val, LINEAR-C linear-coord ]. cat-verbal := cat & [ HEAD head-super-verb, VAL val-no-spr, VOICE voice, BRANCHING branching, V-POS v-pos, LINEAR-V linear-v ]. cat-nominal := cat & [ HEAD head-super-noun, VAL val-no-xcomp & val-no-spr & val-no-subj, LINEAR-N linear-n ]. cat-other := cat & [ HEAD j-r-p-x-q, VAL val-no-xcomp, LINEAR-O linear-o ]. ;; VAL val := *top* & [ SUBCAT list, XCOMP list, SUBJ list, SPR list, INCOH bool ]. val-no-subcat := val & [ SUBCAT < > ]. val-no-xcomp := val & [ XCOMP < > ]. val-no-subj := val & [ SUBJ < > ]. val-no-spr := val & [ SPR < > ]. val-saturated := val-no-subcat & val-no-xcomp & val-no-subj & val-no-spr. val-just-one-subj := val-no-subcat & val-no-xcomp & val-no-spr & [ SUBJ < synsem > ]. val-just-one-subcat := val-no-subj & val-no-xcomp & val-no-spr & [ SUBCAT < synsem > ]. val-just-one-spr := val-no-subcat & val-no-xcomp & val-no-subj & [ SPR < synsem > ]. head := *top* & [ MOD synsem, MODABLE bool, APP bool ]. ; See types-head.tdl for intermediate types. head-super-verb := v-r & v-q & n-v & v-p & v-j & v-x. head-super-noun := n-v & n-x & n-j & n-r & n-q & n-p. head-super-determiner := j-q & x-q & v-q & r-q & p-q & n-q & [ MOD synsem-no-match ]. head-super-adjective := j-q & j-p & v-j & n-j & j-x & j-r & [ PRD bool ]. head-super-adposition := j-p & v-p & r-p & p-x & p-q & n-p. head-super-adverb := v-r & r-q & r-p & r-x & n-r & j-r. head-super-other := x-q & n-x & r-x & p-x & j-x & v-x. ;; Verbs ;; head-verb := head-super-verb & [ MOD synsem-no-match, FORM-VERB form-verb, AUX-SEIN bool, MODAL bool, BRANCH-CLUSTER branching ]. ;; Nouns ;; head-nominal := head-super-noun. head-non-pronominal := head-nominal. head-noun := head-non-pronominal. head-name := head-non-pronominal & [ MOD synsem-no-match, APP + ]. head-advn := head-non-pronominal & [ MOD synsem-no-match, APP -, AGR.CASE case-nom-dat-acc ]. head-pronominal := head-nominal & [ MOD synsem-no-match ]. head-rel := head-pronominal & [ MODABLE - ]. head-refl := head-pronominal & [ MODABLE - ]. head-pper := head-pronominal. head-pds := head-pronominal. head-pis := head-pronominal. head-pws := head-pronominal. ; Fear: this means that all verbs that select for an NP can select for all these pronouns. Is that correct? Pron-rel? ; Possible solution: disjunctive types for all pronomina? For now: verbs demand subjects and complements to have no REL. ;; Determiners ;; head-article := head-super-determiner. head-pposat := head-super-determiner. head-pdat := head-super-determiner. head-det-rel-gen := head-super-determiner. head-pwat := head-super-determiner. ;; Adjectives head-adj := head-super-adjective. head-number := head-super-adjective. ;; Adverbs head-adv := head-super-adverb. ;; Adpositions head-adposition := head-super-adposition & [ FORM-ADP *top* ]. ; Other head-part := head-super-other & [ MOD synsem-no-match, FORM-PART *top* ]. head-coord := head-super-other & [ MOD synsem-no-match ]. head-expl := head-super-other & [ MOD synsem-no-match ]. head-compl := head-super-other & [ MOD synsem-no-match ]. head-ds := head-super-other & [ MOD synsem-no-match ]. head-year := head-super-other & [ MOD synsem-verb ]. ;;;;;;;;;;; ;; Forms ;; ;;;;;;;;;;; form := *top*. form-verb := form. form-verb-12 := form-verb. form-verb-fin := form-verb-12. form-verb-imp := form-verb-12. form-verb-last := form-verb. form-verb-psp := form-verb-last. form-verb-izu := form-verb-last. form-verb-inf := form-verb-last. agr := *top*. agr-no-match := agr. agr-match := agr & [ TENSE tense, PN pn, CASE case, GENDER gender ]. agr-nominal := agr-match & [ INFL infl ]. agr-wh := agr-match. ; Welche, wer. agr-wh-nom := agr-wh & agr-nominal. ; Warum, wo (extra type is needed to prevent unification with agr-wh-nom) agr-wh-no-nom := agr-wh. ;; NON-LOCAL nonlocal := *top* & [ SLASH local, REL local, QUE agr ]. no-slash := nonlocal & [ SLASH local-no-match ]. no-rel := nonlocal & [ REL local-no-match ]. no-que := nonlocal & [ QUE agr-no-match ]. no-slash-rel := no-slash & no-rel. no-slash-que := no-slash & no-que. no-rel-que := no-rel & no-que. no-nonlocal := no-slash-rel & no-slash-que & no-rel-que. ;;;;;;;;;;;;;;; ;; Lex rules ;; ;;;;;;;;;;;;;;; lr-phase := *top*. lr-phase-finish := lr-phase. lr-phase-verb := lr-phase. lr-phase-verb-start := lr-phase-verb. lr-phase-verb-branched := lr-phase-verb. lr-phase-verb-slashed := lr-phase-verb. lr-phase-verb-scrambled := lr-phase-verb & lr-phase-finish. lr-phase-phrase := lr-phase-finish.