#| Content - Verbal domain - Passivisation - Branching - Fronting - Scrambling |# lr := structure-headed-unary & word & [ HD-DTR word & [ STEM #orth ], STEM #orth ]. ;;;;;;;;;;;;;;;;;;; ;; Verbal domain ;; ;;;;;;;;;;;;;;;;;;; ; First, there is the possibility for some types of verbs to undergo passivisation. ; Then, there are four steps that the rules will do to verbs: ; - Passivisation (optional) ; - Determine branching ; - Pick one or zero elements from the SUBCAT list to put in the SLASH (fronted element) ; - Scramble the remaining elements in the SUBCAT list ; ; This is achieved in the LR-PHASE feature, on SIGN level. lr-verb := lr & [ HD-DTR.SYNSEM.LOCAL.CAT cat-verbal, SYNSEM.LOCAL.CAT cat-verbal ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Step 1 (optional): Passivisation ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; lr-verb-passive := lr-verb & [ HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD #head & [ FORM-VERB form-verb-psp, AUX-SEIN -, AGR [ PN #pn ], MOD synsem-no-match ], VOICE voice-active, VAL [ SUBJ < synsem-npnom >, SUBCAT [ FIRST synsem-npacc & [ LOCAL [ CAT [ VAL #val, LINEAR-N #linear-n ], CONT #mrs & [ HOOK.INDEX #synt-subj ], PLACE-V #place-v ], NONLOCAL #nonlocal ], REST #rest ], XCOMP #xcomp & < >, INCOH #incoh ], LINEAR-C #linear-c & [ DONE + ] ], CONT [ HOOK [ LTOP #ltop, INDEX #index ], RELS #rels, HCONS #hcons ] ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-start ], SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE voice-passive, VAL [ SUBJ < synsem-npnom & [ LOCAL [ CAT [ HEAD [ AGR.PN #pn ], VAL #val, LINEAR-N #linear-n ], CONT #mrs, PLACE-V #place-v ], NONLOCAL #nonlocal ] >, SUBCAT #rest, XCOMP #xcomp, INCOH #incoh ], LINEAR-C #linear-c ], CONT [ HOOK [ LTOP #ltop, INDEX #index, XARG #synt-subj ], RELS #rels, HCONS #hcons ] ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-start ]. ;;;;;;;;;;;;;;;;;;;;;;; ;; Step 2: Branching ;; ;;;;;;;;;;;;;;;;;;;;;;; ; TODO: BRANCHING, V-POS, LINEAR-V. lr-verb-branch := lr-verb & [ HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE #voice, VAL #val, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-start ], SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE #voice, VAL #val, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-branched ]. ; Requirements on HD-DTR: XCOMP is empty and it should be an imperative or final verb. lr-verb-branch-left := lr-verb-branch & [ HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD [ FORM-VERB form-verb-12 ], VAL.XCOMP list ] ], SYNSEM [ LOCAL.CAT [ BRANCHING branching-left, V-POS v-pos-first, LINEAR-V linear-v-lb-start ] ] ]. ; No requirements on HD-DTR. lr-verb-branch-right := lr-verb-branch & [ SYNSEM [ LOCAL.CAT [ BRANCHING branching-right, V-POS v-pos-last, LINEAR-V linear-v-rb-start ] ] ]. ;;;;;;;;;;;;;;;;;;;;;; ;; Step 3: Slashing ;; ;;;;;;;;;;;;;;;;;;;;;; ; Each lexical item that has been assigned a branching, is now considered to slash. ; TODO: SUBCAT, SUBJ and NONLOCAL. lr-verb-slash := lr-verb & [ HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ XCOMP #xcomp, SPR #spr, INCOH #incoh ], VOICE #voice, BRANCHING #branching, V-POS #v-pos, LINEAR-V #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL [ REL #rel ] ], LR-PHASE lr-phase-verb-branched ], SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE #voice, VAL [ XCOMP #xcomp, SPR #spr, INCOH #incoh ], BRANCHING #branching, V-POS #v-pos, LINEAR-V #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL [ REL #rel ] ], LR-PHASE lr-phase-verb-slashed ]. lr-verb-slash-none := lr-verb-slash & [ HD-DTR.SYNSEM [ LOCAL.CAT.VAL #val, NONLOCAL.SLASH local-no-match ], SYNSEM [ LOCAL.CAT.VAL #val, NONLOCAL.SLASH local-no-match ] ]. ; This can only be applied to verbs that have no argument attraction ; (and thus an underspecified SUBCAT, leading to spurious chart items). lr-verb-slash-one := lr-verb-slash & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.XCOMP < > ]. lr-verb-slash-adj := lr-verb-slash-one & [ HD-DTR.SYNSEM #mod & [ LOCAL [ CAT [ VAL [ SUBJ #subj, SUBCAT #subcat ] ] ], NONLOCAL [ SLASH local-no-match ] ], SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ #subj, SUBCAT #subcat ] ] ], NONLOCAL [ SLASH [ CAT [ HEAD.MOD #mod ] ] ] ] ]. lr-verb-slash-subj := lr-verb-slash-one & [ HD-DTR.SYNSEM [ LOCAL.CAT.VAL [ SUBJ < [ LOCAL #local, NONLOCAL.SLASH local-no-match ] >, SUBCAT #subcat ], NONLOCAL.SLASH local-no-match ], SYNSEM [ LOCAL.CAT.VAL [ SUBJ < >, SUBCAT #subcat ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-1 := lr-verb-slash-one & [ HD-DTR.SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ], NONLOCAL.SLASH local-no-match ], SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT #rest ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-2 := lr-verb-slash-one & [ HD-DTR.SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST #1, REST [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ] ], NONLOCAL.SLASH local-no-match ], SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST #1, REST #rest ] ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-3 := lr-verb-slash-one & [ HD-DTR.SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST #1, REST [ FIRST #2, REST [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ] ] ], NONLOCAL.SLASH local-no-match ], SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, SUBCAT [ FIRST #1, REST [ FIRST #2, REST #rest ] ] ], NONLOCAL.SLASH #local ] ]. ;;;;;;;;;;;;;;;;;;;;;;;; ;; Step 4: Scrambling ;; ;;;;;;;;;;;;;;;;;;;;;;;; ; TODO: SUBCAT. lr-verb-scramble := lr-verb & [ HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ XCOMP #xcomp, SUBJ #subj, INCOH #incoh ], VOICE #voice, BRANCHING #branching, V-POS #v-pos, LINEAR-V #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-slashed ], SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ XCOMP #xcomp, SUBJ #subj, INCOH #incoh ], VOICE #voice, BRANCHING #branching, V-POS #v-pos, LINEAR-V #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-scrambled ]. lr-verb-scramble-none := lr-verb-scramble & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT #subcat, SYNSEM.LOCAL.CAT.VAL.SUBCAT #subcat ]. lr-verb-scramble-one := lr-verb-scramble & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.XCOMP < > ]. lr-verb-scramble-2-21 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #2, #1 > ]. lr-verb-scramble-3-132 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2, #3 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #3, #2 > ]. lr-verb-scramble-3-213 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2, #3 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #2, #1, #3 > ]. lr-verb-scramble-3-231 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2, #3 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #2, #3, #1 > ]. lr-verb-scramble-3-312 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2, #3 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #3, #1, #2 > ]. lr-verb-scramble-3-321 := lr-verb-scramble-one & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBCAT < #1, #2, #3 >, SYNSEM.LOCAL.CAT.VAL.SUBCAT < #3, #2, #1 > ].