;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; HAG (Hausa Grammar) ;;; Author: Berthold Crysmann ;;; 2009 subj-extra := extracted-subj-phrase. head-comp := head-comp-phrase & [HEAD-DTR [KEY-ARG +, SYNSEM.LOCAL.CAT.VAL.COMPS <[BOUND -],...>]]. head-cluster-0 := head-cluster-phrase & [SYNSEM [LOCAL.CAT.VAL.COMPS #comps], HEAD-DTR word-or-lexrule & [KEY-ARG +, SYNSEM.LOCAL.CAT [HEAD +nvp, VAL.COMPS < #synsem . #comps >]], NON-HEAD-DTR word-or-lexrule & [SYNSEM #synsem & [BOUND + , LOCAL.CAT [VAL.COMPS <>] ]]]. ;& [VFORM non-fin] ;HEAD +nv, head-cluster-1 := head-cluster-phrase & [SYNSEM [LOCAL.CAT.VAL.COMPS <#inh . #comps>], HEAD-DTR word-or-lexrule & [KEY-ARG +, SYNSEM.LOCAL.CAT [HEAD verb & [VFORM non-fin], VAL.COMPS < #synsem & [BOUND +, LOCAL.CAT [VAL.COMPS <#inh & npro-synsem & [LIGHT -, BOUND -] >]] . #comps >]], NON-HEAD-DTR word-or-lexrule & [SYNSEM #synsem]]. subj-head := subj-head-phrase & [SYNSEM [MODIFIABLE na-or--, LOCAL [CAT.HEAD.VFORM indep]], HEAD-DTR.KEY-ARG +, NON-HEAD-DTR.SYNSEM.NON-LOCAL.QUE 0-dlist]. head-adj_i := head-adj-phrase & [C-CONT.HCONS , SYNSEM.LOCAL.CONT.HOOK [LTOP #t, INDEX #i], HEAD-DTR [KEY-ARG -, SYNSEM [MODIFIABLE +, LOCAL.CONT.HOOK [INDEX #i, LTOP #t]]], NON-HEAD-DTR [KEY-ARG +, SYNSEM [LOCAL.CONT.HOOK [XARG #i, LTOP #t] ]]]. head-adj_s := head-adj-phrase & [C-CONT.HCONS , SYNSEM.LOCAL.CONT.HOOK [LTOP #t, INDEX #i], HEAD-DTR [KEY-ARG -, SYNSEM [MODIFIABLE +, LOCAL.CONT.HOOK [LTOP #l, INDEX #i]]], NON-HEAD-DTR [KEY-ARG +, SYNSEM [LOCAL.CONT.HOOK [XARG #l, LTOP #t] ]]]. n-rel := head-rel-phrase. spr-head := spec-head-phrase & [NON-HEAD-DTR.KEY-ARG +]. bare-np := bare-np-phrase & [SYNSEM [MODIFIABLE -, LOCAL [CAT [HEAD noun]]], HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR ]. ;;; Need to add relation for subject null-subj := basic-head-opt-subj-phrase & [SYNSEM [MODIFIABLE na-or--, LOCAL [CAT.HEAD.VFORM indep] ]]. expl-subj := basic-expl-subj-phrase & [SYNSEM [MODIFIABLE na-or--, LOCAL [CAT.HEAD.VFORM indep] ]]. ;;; Need to differentiate between semantically potent ;;; and semantically inert relative tam filler-head := filler-head-phrase & head-compositional & [SYNSEM [MODIFIABLE -, LOCAL.CAT.VAL [SUBJ <>, SPEC <>]], NON-HEAD-DTR.KEY-ARG -, HEAD-DTR [KEY-ARG +, SYNSEM.LOCAL [CAT [HEAD [VFORM fin], VAL [SUBJ <>, COMPS <>, SPR <>, SPEC <>]], CONT.HOOK.INDEX [_REL na-or-+]]]]. relfill-head := rel-filler-head-phrase & head-compositional & [SYNSEM.LOCAL.CAT.VAL [SUBJ <>, SPEC <>], NON-HEAD-DTR.KEY-ARG -, HEAD-DTR [KEY-ARG +, SYNSEM.LOCAL [CAT [HEAD [VFORM fin], VAL [SUBJ <>, COMPS <>, SPR <>, SPEC <>]], CONT.HOOK.INDEX [_REL na-or-+]]]]. adj-extra := extracted-adj-phrase & [SYNSEM.LOCAL [CAT [HEAD [MOD <>], VAL [COMPS <>]], CONT.HOOK.INDEX event & [E tam]], C-CONT.RELS ]. ;;; Multi-word units (total reduplication) n-pl-reduplication := total-reduplication-phrase & [MORPH.COMPLETE +, C-CONT [RELS , HCONS , HOOK #hook], ARGS < [MORPH [MCLASS n-pl-12, COMPLETE na], SYNSEM.LOCAL [CAT.HEAD noun, AGR [PNG.PN pl], CONT.HOOK.INDEX.INSTLOC "undef"]], [MORPH [COMPLETE -, MCLASS n-pl-12], SYNSEM.LOCAL [CAT.HEAD noun, CONT.HOOK #hook, AGR [PNG.PN pl]]] >].