;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; HAG (Hausa Grammar) ;;; Author: Berthold Crysmann ;;; 2009-2011 hook := avm & [ LTOP handle, INDEX individual, XARG semarg ]. subord-relation := arg12-relation. basic-subord-conjunction-lex := basic-one-arg & [ ARG-ST < [ LOCAL.CONT.HOOK [LTOP #l2, INDEX #e] ] >, SYNSEM [ LOCAL [ CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.LTOP #l1 ] >, CONT [ HCONS , RELS , HOOK [ INDEX #e, LTOP #ltop ] ] ], LKEYS.KEYREL subord-relation & [ LBL #ltop, ARG0 #e, ARG1 #h1, ARG2 #h2 ] ] ]. infl := avm & [OM luk, VAL-RED luk, PRAF luk]. infl+ := infl & [OM na-or-+, PRAF na-or-+]. infl- := infl & [OM na-or--, PRAF -]. syn-label := label & [INFLECTED +]. lex-label := label & [INFLECTED na-or--]. word-label := syn-label & word-or-lexrule. sign := basic-sign & [ STEM orthog, ROBUST luk, LEX-TOP luk, SYNSEM synsem, ARGS list, INFLECTED luk ]. orthog := cons & [ FORM string, FROM string, TO string ]. relation :+ [CFROM string, CTO string]. head :+ [CASE case, VFORM vform, MOD 0-1-list]. verbal := +vo & +vm & +vd & +vc & +vp & +vr & +vj & +nv & [VFORM vform]. nominal := +no & +nm & +nd & +nc & +np & +nr & +nj & +nv & [VFORM non-fin]. adp :+ [VFORM non-fin]. noun := nominal. verb := verbal. gerund := nominal & verbal & [VFORM non-fin]. free-det := det. bound-det := det & [CASE str]. mod-local := avm. ; sfd 08/02/2005: Added COORD and COORD-REL for coordination. COORD ; is a bool that's used to enforce the syntax of coordination. ; COORD-REL is the coordination relation. local-min0 := mod-local & [CONT mrs-min]. hook-mrs := mrs-min & [HOOK hook]. mrs := hook-mrs & [ HOOK hook, RELS diff-list, HCONS diff-list ]. light-local := local-min0. local-min := local-min0 & [ CAT cat-min, CONT mrs-min, AGR individual, COORD bool, COORD-REL coordination-relation, COORD-STRAT string ]. local := local-min & [ CTXT ctxt-min ]. ; Types for distinguishing scopal v. intersective modifiers. ; (These types are used in the MOD value of modifiers, and ; referenced by the scopal/intersective head-adjunct rules.) scopal-mod := local. intersective-mod := local. non-local := non-local-min & [ RESUMP 0-1-dlist, SLASH 0-1-dlist, QUE 0-1-dlist, REL 0-1-dlist ]. synsem-min :+ [LIGHT luk, BOUND luk]. synsem :+ [MODIFIABLE luk]. pro-synsem := synsem & [LOCAL.CAT.HEAD.KEYS.KEY "pron_rel"]. npro-synsem := synsem. expressed-pro-synsem := expressed-synsem & pro-synsem. expressed-npro-synsem := expressed-synsem & npro-synsem. non-canonical-pro := non-canonical & pro-synsem. non-canonical-npro := non-canonical & npro-synsem. unexpressed-pro := non-canonical-pro & unexpressed-reg. unexpressed-npro := non-canonical-npro & unexpressed-reg. expressed-non-canon-pro := expressed-non-canonical & non-canonical-pro & expressed-pro-synsem. expressed-non-canon-npro := expressed-non-canonical & non-canonical-npro & expressed-npro-synsem. gap-pro := expressed-non-canon-pro & gap. gap-npro := expressed-non-canon-npro & gap. canon-pro := canonical-synsem & expressed-pro-synsem. canon-npro := canonical-synsem & expressed-npro-synsem. canon-lex-or-phrase-synsem := canonical-synsem & lex-or-phrase-synsem. canon-lex-or-phrase-pro := canon-lex-or-phrase-synsem & canon-pro. canon-lex-or-phrase-npro := canon-lex-or-phrase-synsem & canon-npro. canon-phr-npro := canon-lex-or-phrase-npro & phr-synsem. canon-lex-npro := canon-lex-or-phrase-npro & lex-synsem. lex-synsem := canon-lex-or-phrase-synsem & [ LOCAL local-min, LKEYS lexkeys ]. lex-pro-synsem := lex-synsem & canon-lex-or-phrase-pro. lex-npro-synsem := lex-synsem & canon-lex-or-phrase-npro. ; ERB (2005-08-10) We want to make sure that head-comp phrases ; don't have the feature LKEYS, even if they are LIGHT +. phr-synsem-min := canon-lex-or-phrase-synsem & [ LOCAL local-min ]. phr-synsem-min-pro := phr-synsem-min & canon-lex-or-phrase-pro. phr-synsem-min-npro := phr-synsem-min & canon-lex-or-phrase-npro. phr-synsem := phr-synsem-min & [ LIGHT -, BOUND -]. phr-synsem-pro := phr-synsem-min-pro & phr-synsem. expr := sort. free-expr := expr. bound-expr := expr. individual :+ [--BND bool, --GAP bool]. ref-ind := index & event-or-ref-index & [ --BND +, PNG p-n-g ]. unbound-ind := individual & [--BND -]. index :+ [PNG p-n-g_min, --BND bool]. event :+ [_REL bool, --XTR bool]. ;;; VFORM sorts ;;; ;;; Lexical V and VPs are non-fin, ;;; Full TAM are indep, split off second part is dep vform := avm. non-fin := vform. fin := vform. indep := fin. dep := fin. gender := avm. non-anon := gender. m := non-anon. f := non-anon. anon := gender. ;;; TAM values tam := avm. real_tam := tam. non-compl-tam := tam. no_tam := non-compl-tam. continuative := non-compl-tam & non-sbj-tam & real_tam. non-cont-tam := real_tam. perfective := non-cont-tam & non-sbj-tam. completive := perfective. preterite := perfective. non-sbj-tam := tam. sbj := non-compl-tam & non-cont-tam . fut := non-compl-tam & non-cont-tam & non-sbj-tam. pot := non-compl-tam & non-cont-tam & non-sbj-tam. hab := non-compl-tam & non-cont-tam & non-sbj-tam. ;;; Quantifier relations quant_or_wh_rel := predsort. quant_rel := quant_or_wh_rel. wh_q_rel := quant_or_wh_rel. def-or-indef_q_rel := quant_rel. def_q_rel := def-or-indef_q_rel. indef_q_rel := def-or-indef_q_rel. dem_q_rel := def_q_rel. dem_q_proximate_rel := dem_q_rel. dem_q_remote_rel := dem_q_rel. dem_q_nan_rel := dem_q_rel. dem_q_can_rel := dem_q_rel. _dem_q_speaker_rel := dem_q_proximate_rel & dem_q_nan_rel. _dem_q_hearer_rel := dem_q_remote_rel & dem_q_nan_rel. _dem_q_there_rel := dem_q_proximate_rel & dem_q_can_rel. _dem_q_distant_rel := dem_q_remote_rel & dem_q_can_rel. proper_q_rel := def_q_rel. _some_q_rel := indef_q_rel. ;;; Case types case := sort. nocase := case. str := case. non-str := case. ;;; Valency list types val-list := list. val-cons := val-list & cons & [REST val-list]. val-null := onull & frame-a-val-list & frame-b-c-val-list & frame-d-val-list. frame-non-b-c-val-list := val-list. ; frame-non-B-C-val-null := ; val-null & frame-non-B-C-val-list. frame-non-b-c-val-cons := frame-non-b-c-val-list & val-cons. frame-a-val-list := frame-non-b-c-val-list. ; frame-a-val-null := ; val-null & frame-a-val-list. frame-a-val-cons := frame-a-val-list & frame-non-b-c-val-cons & [REST frame-a-val-list]. frame-d-val-list := frame-non-b-c-val-list. frame-d-val-cons := frame-d-val-list & frame-non-b-c-val-cons & [REST frame-b-c-val-list]. frame-b-c-val-list := val-list. ; frame-b-c-val-null := ; frame-b-c-val-list & ; val-null. frame-b-c-val-cons := frame-b-c-val-list & val-cons & [REST frame-non-b-c-val-list]. ; frame-B-C-val-null := ; frame-B-C-val-list & ; val-null. frame-b-val-cons := frame-b-c-val-cons & [FIRST pro-synsem & [BOUND +, LOCAL [CAT.HEAD noun, CONT.HOOK.INDEX.--GAP -]]]. frame-c-val-cons := frame-b-c-val-cons & [FIRST npro-synsem & [BOUND -, LIGHT -]]. unify-list := list & [--UNIF avm]. unify-cons := unify-list & cons & [--UNIF #unif, FIRST #unif, REST unify-list & [--UNIF #unif]]. unify-null := unify-list & null. label := sign & [ LNAME string ].