sort := *top*. list := sort. ne-list := list & [ FIRST *top*, REST list ]. null := list. diff-list := sort & [ LIST list, LAST list ]. 0-diff-list := diff-list & [ LIST #list, LAST #list ]. ne-diff-list := diff-list. 1-diff-list := ne-diff-list & [ LIST ne-list & [ REST #last ], LAST #last ]. 2-diff-list := ne-diff-list & [ LIST ne-list & [ REST ne-list & [ REST #last ] ], LAST #last ]. orth := sort & [ FROM string, TO string ]. bool := sort. bool-no-+ := bool. bool-no-- := bool. bool-no-na := bool. + := bool-no-- & bool-no-na. - := bool-no-+ & bool-no-na. na := bool-no-+ & bool-no--. person := sort. person-undef := person. person-12 := person. person-13 := person. person-23 := person. person-1 := person-12 & person-13. person-2 := person-12 & person-23. person-3 := person-13 & person-23. number := sort. number-undef := number. number-pl := number. number-sg := number. pn := sort & [ PERSON person, NUMBER number ]. pn-1sg := pn & [ PERSON person-1, NUMBER number-sg ]. pn-2sg := pn & [ PERSON person-2, NUMBER number-sg ]. pn-3sg := pn & [ PERSON person-3, NUMBER number-sg ]. pn-1pl := pn & [ PERSON person-1, NUMBER number-pl ]. pn-2pl := pn & [ PERSON person-2, NUMBER number-pl ]. pn-3pl := pn & [ PERSON person-3, NUMBER number-pl ]. gender := sort. gender-undef := gender. gender-masc-fem := gender. gender-fem-neut := gender. gender-masc-neut := gender. gender-masc := gender-masc-fem & gender-masc-neut. gender-fem := gender-masc-fem & gender-fem-neut. gender-neut := gender-masc-neut & gender-fem-neut. case := sort. case-undef := case. case-gen-dat-acc := case. case-nom-dat-acc := case. case-nom-gen-acc := case. case-nom-gen-dat := case. case-nom-gen := case-nom-gen-dat & case-nom-gen-acc. case-nom-dat := case-nom-dat-acc & case-nom-gen-dat. case-nom-acc := case-nom-gen-acc & case-nom-dat-acc. case-gen-dat := case-nom-gen-dat & case-gen-dat-acc. case-gen-acc := case-nom-gen-acc & case-gen-dat-acc. case-dat-acc := case-nom-dat-acc & case-gen-dat-acc. case-nom := case-nom-gen & case-nom-dat & case-nom-acc. case-gen := case-nom-gen & case-gen-dat & case-gen-acc. case-dat := case-nom-dat & case-gen-dat & case-dat-acc. case-acc := case-nom-acc & case-gen-acc & case-dat-acc. tense := sort. tense-ind := tense. tense-pres := tense-ind. tense-past := tense-ind. tense-kon := tense. tense-kon1 := tense-kon. tense-kon2 := tense-kon. voice := sort. voice-active := voice. voice-passive := voice. infl := sort. infl-strong-mix := infl. infl-strong := infl-strong-mix. infl-mix := infl-strong-mix. infl-weak := infl. branching := sort. branching-right := branching. branching-left := branching. v-pos := sort. v-pos-not-last := v-pos. v-pos-not-second := v-pos. v-pos-not-first := v-pos. v-pos-last := v-pos-not-second & v-pos-not-first. v-pos-second := v-pos-not-first & v-pos-not-last. v-pos-first := v-pos-not-last & v-pos-not-second. ;;;;;;;;;;;;; ;; Linears ;; ;;;;;;;;;;;;; linear := sort. linear-non-coord := linear. linear-v := linear-non-coord. linear-v-lb := linear-v. linear-v-rb := linear-v. linear-v-can-not := linear-v. linear-v-can-vf := linear-v. linear-v-can-lb := linear-v. linear-v-can-mf := linear-v. linear-v-can-rb := linear-v. linear-v-can-nf := linear-v. linear-v-can-rb-vf := linear-v-rb & linear-v-can-vf. linear-v-can-rb-lb := linear-v-rb & linear-v-can-lb. linear-v-can-rb-mf := linear-v-rb & linear-v-can-mf. linear-v-can-rb-rb := linear-v-rb & linear-v-can-rb. linear-v-can-rb-nf := linear-v-rb & linear-v-can-nf. linear-v-can-lb-vf := linear-v-lb & linear-v-can-vf. linear-v-can-lb-mf := linear-v-lb & linear-v-can-mf. linear-v-can-lb-nf := linear-v-lb & linear-v-can-nf. linear-v-rb-start := linear-v-can-rb-rb & linear-v-can-rb-nf & linear-v-can-rb-mf & linear-v-can-rb-lb. linear-v-did-rb-rb := linear-v-can-rb-rb & linear-v-can-rb-nf & linear-v-can-rb-mf & linear-v-can-rb-lb. linear-v-did-rb-nf := linear-v-can-rb-nf & linear-v-can-rb-mf & linear-v-can-rb-lb. linear-v-did-rb-mf := linear-v-can-rb-mf & linear-v-can-rb-lb. linear-v-did-rb-lb := linear-v-can-vf. linear-v-lb-start := linear-v-can-lb-mf & linear-v-can-lb-nf & linear-v-can-vf. linear-v-did-lb-mf := linear-v-can-lb-mf & linear-v-can-lb-nf & linear-v-can-vf. linear-v-did-vf := linear-v-can-not. place-v := linear-v. place-v-vf := place-v. place-v-lb := place-v. place-v-mf := place-v. place-v-rb := place-v. place-v-nf := place-v. ; Glossary: lb:left-branching, rb:right-branching, vf:Vorfeld, lb:left bracket, mf:Mittelfeld, rb:right bracket, nf:Nachfeld. linear-n := linear-non-coord. linear-n-finish := linear-n. linear-n-can-not := linear-n-finish. ; Used for relative pronouns. linear-n-can-pre := linear-n-finish. linear-n-can-det := linear-n. linear-n-can-mid := linear-n. linear-n-can-post := linear-n. linear-n-start := linear-n-can-det & linear-n-can-mid & linear-n-can-post. linear-n-did-post := linear-n-can-det & linear-n-can-mid & linear-n-can-post. linear-n-did-mid := linear-n-can-det & linear-n-can-mid. linear-n-did-det := linear-n-can-pre. linear-n-did-pre := linear-n-can-pre. place-n := linear-n. place-n-pre := place-n. place-n-det := place-n. place-n-mid := place-n. place-n-post := place-n. linear-o := linear-non-coord. linear-o-can-right := linear-o. linear-o-can-left := linear-o. linear-o-start := linear-o-can-right & linear-o-can-left. linear-o-did-right := linear-o-can-right & linear-o-can-left. linear-o-did-left := linear-o-can-left. place-o := linear-o. place-o-left := place-o. place-o-right := place-o. field := sort. field-empty := field. field-non-empty := field. field-dummy := field-non-empty. field-filled := field-non-empty. linear-coord := linear & [ LEFT field, RIGHT field, DONE bool, CRD bool, CRD-ASYND bool ]. linear-coord-start := linear-coord & [ LEFT field-empty, RIGHT field-empty, DONE +, CRD -, CRD-ASYND - ]. linear-coord-had-right := linear-coord & [ LEFT field-empty, RIGHT field-filled, DONE -, CRD + ]. linear-coord-finish := linear-coord & [ LEFT field-filled, RIGHT field-filled, DONE +, CRD + ].