#| Content - Verbal domain - Passivisation - Branching - Fronting - Scrambling |# ;;;;;;;;;;;;;;;;;;; ;; 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 COMPS list to put in the SLASH (fronted element) ; - Scramble the remaining elements in the COMPS list ; ; This is achieved in the LR-PHASE feature, on SIGN level. lr-verb := lex-deriv-rule & structure-anc-inactive & [ ARGS < [ SYNSEM [ LOCAL.CAT cat-verbal, ANC #anc ] ] >, SYNSEM [ LOCAL.CAT cat-verbal, ANC #anc ] ]. lr-verb-del-part := lr-verb & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE #voice, VAL [ SUBJ #subj, XCOMP #xcomp, INCOH #incoh ] ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-pd ] >, SYNSEM [ LOCAL [ CAT [ HEAD #head, VOICE #voice, VAL [ SUBJ #subj, XCOMP #xcomp, INCOH #incoh ] ], CONT #cont ], NONLOCAL #nonlocal ], LR-PHASE lr-phase-verb-start ]. lr-verb-del-part-1 := lr-verb-del-part & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST synsem-part, REST #rest ] ] >, SYNSEM.LOCAL.CAT.VAL.COMPS #rest ]. lr-verb-del-part-2 := lr-verb-del-part & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST [ FIRST synsem-part, REST #rest ] ] ] >, SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST #rest ] ]. lr-verb-del-part-3 := lr-verb-del-part & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST [ FIRST #2, REST [ FIRST synsem-part, REST #rest ] ] ] ] >, SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST [ FIRST #2, REST #rest ] ] ]. lr-verb-del-part-4 := lr-verb-del-part & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST [ FIRST #2, REST [ FIRST #3, REST [ FIRST synsem-part, REST #rest ] ] ] ] ] >, SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #1, REST [ FIRST #2, REST [ FIRST #3, REST #rest ] ] ] ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Step 1 (optional): Passivisation ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; lr-verb-passive := lr-verb & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD #head & [ AUX-SEIN -, AGR [ FORM-VERB form-verb-psp, PERSON #person, NUMBER #number ], MOD synsem-no-match ], VOICE voice-active, VAL [ SUBJ < synsem-npnom-c >, COMPS [ FIRST synsem-npacc-c & [ LOCAL [ CAT [ VAL #val, LINEAR #linear-n ], CONT #mrs & [ HOOK.INDEX #synt-subj ], PLACE-V #place-v ], NONLOCAL #nonlocal ], REST #rest ], XCOMP #xcomp & < >, INCOH #incoh ], LINEAR-C #linear-c & linear-c-finish ], 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-c & [ LOCAL [ CAT [ HEAD [ AGR [ PERSON #person, NUMBER #number ] ], VAL #val, LINEAR #linear-n ], CONT #mrs, PLACE-V #place-v ], NONLOCAL #nonlocal ] >, COMPS #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. lr-verb-branch := lr-verb & [ ARGS < [ 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 daughter: XCOMP is empty and it should be an imperative or final verb. lr-verb-branch-left := lr-verb-branch & [ ARGS < [ SYNSEM.LOCAL.CAT [ HEAD [ AGR.FORM-VERB form-verb-12 ], VAL.XCOMP list ] ] >, SYNSEM [ LOCAL.CAT [ BRANCHING branching-left, V-POS v-pos-first, LINEAR 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 linear-v-rb-start ] ] ]. ;;;;;;;;;;;;;;;;;;;;;; ;; Step 3: Slashing ;; ;;;;;;;;;;;;;;;;;;;;;; ; Each lexical item that has been assigned a branching, is now considered to slash. lr-verb-slash := lr-verb & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ XCOMP #xcomp, SPR #spr, INCOH #incoh ], VOICE #voice, BRANCHING #branching, V-POS #v-pos, LINEAR #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL [ REL #rel, RSLASH #rslash ] ], 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 #linear-v, LINEAR-C #linear-c ], CONT #cont ], NONLOCAL [ REL #rel, RSLASH #rslash ] ], LR-PHASE lr-phase-verb-slashed ]. lr-verb-slash-none := lr-verb-slash & [ ARGS < [ 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 COMPS, leading to spurious chart items). lr-verb-slash-one := lr-verb-slash & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.XCOMP < > ] > ]. ; Do not unify ARGS < SYNSEM > and SLASH, because that leads to problems with VP coordinations with distinct subcat frames. ; Should not unify SYNSEM.LOCAL.CONT and SYNSEM.NONLOCAL.SLASH [ CAT.HEAD.MOD.LOCAL.CONT ], because that will require the RELS lists in a VP coordination to be the same. lr-verb-slash-adj := lr-verb-slash-one & [ ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS #comps ] ] ] >, SYNSEM [ LOCAL [ CAT.VAL [ SUBJ #subj, COMPS #comps ], CONT.HOOK.INDEX #xarg ], NONLOCAL.SLASH [ CAT.HEAD.MOD synsem-verb, CONT.HOOK.XARG #xarg ] ] ]. lr-verb-slash-subj := lr-verb-slash-one & [ ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SUBJ < [ LOCAL #local, NONLOCAL.SLASH local-no-match ] >, COMPS #comps ] ] ] >, SYNSEM [ LOCAL.CAT.VAL [ SUBJ < >, COMPS #comps ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-1 := lr-verb-slash-one & [ ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ] ] ] >, SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS #rest ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-2 := lr-verb-slash-one & [ ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST #1, REST [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ] ] ] ] >, SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST #1, REST #rest ] ], NONLOCAL.SLASH #local ] ]. lr-verb-slash-3 := lr-verb-slash-one & [ ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST #1, REST [ FIRST #2, REST [ FIRST [ LOCAL #local, NONLOCAL.SLASH local-no-match ], REST #rest ] ] ] ] ] ] >, SYNSEM [ LOCAL.CAT.VAL [ SUBJ #subj, COMPS [ FIRST #1, REST [ FIRST #2, REST #rest ] ] ], NONLOCAL.SLASH #local ] ]. ;;;;;;;;;;; ;; NOUNS ;; ;;;;;;;;;;; lr-noun := lex-deriv-rule & structure-anc-add-unary & [ ARGS < [ SYNSEM.LOCAL.CAT cat-nominal ] >, SYNSEM.LOCAL.CAT cat-nominal ]. lr-noun-comp-rslash := lr-noun & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD #head, LINEAR #linear-n, LINEAR-C #linear-c, VAL [ COMPS < [ LOCAL #comp, NONLOCAL no-nonlocal ] >, SUBJ #subj, SPR #spr, XCOMP #xcomp ] ], CONT #cont ], NONLOCAL no-nonlocal ] ] >, SYNSEM [ LOCAL [ CAT [ HEAD #head, LINEAR #linear-n, LINEAR-C #linear-c, VAL [ COMPS < >, SUBJ #subj, SPR #spr, XCOMP #xcomp ] ], CONT #cont ], NONLOCAL just-rslash & [ RSLASH #comp ] ] ].