;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; types.tdl ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; :begin :type. feat-struc :< *top*. synsem-struc := feat-struc & [ ORTH *diff-list*, SYN gram-cat, SEM sem-struc ]. ;;; changed 01/21 ;;; changed 06/19: poss agr-cat := ref-index & poss & [ GEND gend, MORPHGEND boolean ]. pos := feat-struc & [ FORM form, PRED boolean ]. gram-cat := feat-struc & [ HEAD pos, SPR list-of-synsem-structs, COMPS list-of-synsem-structs ]. ;;; added 06/19 for possessives poss := feat-struc & [ PER per, NUM num ]. ;;;from the textbook grammar ;;; changed 06/19 for DEF sem-struc := feat-struc & [ MODE mode, INDEX index, DEF boolean, RESTR list-of-predications ]. ;sem-struc := feat-struc & ;[ MODE mode, ; INDEX index, ; RESTR list-of-predications ]. ;;;changed 06/26 predication := feat-struc & [ RELN reln, ASPECT aspect, SIT sit-index ]. ;predication := feat-struc & ;[ RELN reln, ; SIT sit-index ]. ;;; instloc is needed solely for generation index := feat-struc & [ INSTLOC string ]. ref-index :< index. sit-index :< index. null-index :< index. ;;;added 06/26: aspect := *value*. completed :< aspect. not_completed :< aspect. ;;; <<<---- POS's ---->>> norv :< pos. verb := norv & [ AUX boolean, NEG boolean ] . nominal := pos & [ AGR agr-cat ]. noun := nominal & norv & [ CASE case-cat ]. det :< nominal. conj := pos. mod-type := *value* & [ MOD list-of-synsem-structs ]. adv := pos & mod-type. adj := pos & mod-type. prep := pos & mod-type & [ P-OBJ list-of-synsem-structs ]. ;;; <<<----- TYPES INHERITING FROM FORM ----->>> *value* :< *top*. form :< *value*. ;Nouns normal :< form. ;Verbs inf :< form. fin :< form. ger :< form. perf :< form. ;Prepositions f_para :< form. f_en :< form. f_con :< form. f_de :< form. f_a :< form. ;Adverbs f_no :< form. ;Conjuctions f_y :< form. ; f_mas :< form. ;;; <<<----- STRUCTURE FOR AGR-CAT ----->>> ;;;altered 12/07 for el/la pianista --> 3singmasc 3singfem added ;;;changed 04/24 for pal, dal, etc... ;;;changed 06/22` #| 3singmasc := agr-cat & [ PER 3rd, NUM sing, GEND masc ]. non3singmasc := agr-cat & [ GEND /l masc ]. 1sing := non3singmasc & [ PER 1st, NUM sing ]. 1plur := non3singmasc & [ PER 1st, NUM plur ]. 2sing := non3singmasc & [ PER 2nd, NUM sing ]. 2plur := non3singmasc & [ PER 2nd, NUM plur ]. 3sing := non3singmasc & [ PER 3rd, NUM sing ]. 3plur := non3singmasc & [ PER 3rd, NUM plur ]. 1plurmasc := 1plur & [ GEND masc ]. 1plurfem := 1plur & [ GEND fem ]. 2plurmasc := 2plur & [ GEND masc ]. 2plurfem := 2plur & [ GEND fem ]. ;3singmasc := 3sing & ; [ GEND masc ]. 3singfem := 3sing & [ GEND fem ]. 3plurmasc := 3plur & [ GEND masc ]. 3plurfem := 3plur & [ GEND fem ]. |# ;;;this is the "more conservative" agreement 3sing := agr-cat & [ PER 3rd, NUM sing ]. 3singmasc := 3sing & [ GEND /l masc ]. 3singfem := 3sing & [ GEND /l fem ]. 1sing := agr-cat & [ PER 1st, NUM sing ]. 2sing := agr-cat & [ PER 2nd, NUM sing ]. 1plur := agr-cat & [ PER 1st, NUM plur ]. ;;;this is necessary for nosotros, nosotras 1plurmasc := 1plur & [ GEND masc ]. 1plurfem := 1plur & [ GEND fem ]. 2plur := agr-cat & [ PER 2nd, NUM plur ]. 2plurmasc := 2plur & [ GEND masc ]. 2plurfem := 2plur & [ GEND fem ]. 3plur := agr-cat & [ PER 3rd, NUM plur ]. 3plurmasc := 3plur & [ GEND /l masc ]. 3plurfem := 3plur & [ GEND /l fem ]. ;;; changed 08/02 per :< *value*. 1st := per. 2nd :< per. 3rd :< per. num :< *value*. sing :< num. plur :< num. singandplur :< num. ;;; changed 01/20 for perro/a ;;; changed 01/21 --> morphgend not value, but feature gend :< *value*. masc :< gend. fem :< gend. #| ;;; added 01/21: ;morphgend :< *value*. ; true :< morphgend. ; false :< morphgend. ;gend :< *value*. ; masc :< gend. ; fem :< gend. ; neut :< gend. ; morphgend :< gend. ;;; changed 01/18 for perro/a ;gend :< *value*. ; morphgend :< gend. ; masc :< morphgend. ; fem :< morphgend. ; neut :< morphgend. ;gend :< *value*. ; fem :< gend. ; masc :< gend. ; neut :< gend. |# ;;;this will be necessary for the objective pronouns case-cat :< *value*. nom :< case-cat. acc :< case-cat. ;;; <<>> ----- CONST-LXM DEFINITIONS ----- prep-lxm := const-lxm & [ SYN [ HEAD prep ] ]. ;;; changed 02/11, added npdp and vpdp-lxm ;;; this is to avoid overgeneration, ;;; but it is not clear that this specification is desired. ;;; "real" modifiers pdp-lxm := prep-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD norv ] ] > ], SPR < [ ] > ], ARG-ST < [ SYN NP ], [ SYN NP ] > ]. npdp-lxm := pdp-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD noun ] ] > ] ] ]. vpdp-lxm := pdp-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD verb ] ] > ] ] ]. ;;;these are for the contracted prepositions nel, pal, al, etc... ;;;changed 04/24. ;;;changed 06/23. ;masc-pdp-lxm := prep-lxm & ; [ SYN [ HEAD [ MOD < [SYN [HEAD norv, ; SPR < [ ] > ] ] > ] ], ; ARG-ST < [ SYN NP ], ; [ SYN N & [ HEAD [ AGR 3singmasc ] ] ] > ]. ;masc-pdp-lxm := prep-lxm & ; [ SYN [ HEAD [ MOD < [SYN [HEAD norv, ; SPR < [ ] > ] ] > ], ; SPR < [ ] > ], ; ARG-ST < [ SYN NP ], ; [ SYN N & [ HEAD [ AGR 3singmasc ] ] ] > ]. masc-pdp-lxm := prep-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD norv ] ] > ], SPR < [ ] > ], ARG-ST < [ SYN NP ], [ SYN N & [ HEAD [ AGR 3singmasc ] ] ] > ]. masc-npdp-lxm := masc-pdp-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD noun ] ] > ] ] ]. masc-vpdp-lxm := masc-pdp-lxm & [ SYN [ HEAD [ MOD < [SYN [HEAD verb ] ] > ] ] ]. ;;; argument markers ;;;ARG-STR resttricted to NP's mkp-lxm := prep-lxm & [ SYN [ HEAD [ MOD < >, P-OBJ < #1 > ], SPR < > ], ARG-ST < #1 & [ SYN NP ] > ]. ;;;changed 06/26 masc-mkp-lxm := prep-lxm & [ SYN [ HEAD [ MOD < >, P-OBJ < #1 > ], SPR < > ], ARG-ST < #1 & [ SYN N & [ HEAD [ AGR 3singmasc ] ] ] > ]. adv-lxm := const-lxm & modifier-sem & [ SYN [ HEAD adv & [ FORM /l normal, MOD < [ SYN [ HEAD verb, COMPS < > ] ] > ] ], ARG-ST < > ]. ;;;changed 02/25. ARG-ST defined. ;;;changed 02/26. NP in the SPEC adj-lxm := const-lxm & modifier-sem & [ SYN [ HEAD adj & [ FORM normal, MOD < [ SYN [ HEAD noun, COMPS < > ] ] > ], SPR < [ ] > ], ARG-ST /l < [ SYN NP, SEM [INDEX ref-index] ] > ]. conj-lxm := const-lxm & [ SYN [ HEAD conj ], ARG-ST < > ]. ;;; changed 06/19: semantics det-lxm := const-lxm & det-sem & [ SYN [ HEAD det ], ARG-ST < > ]. ;;; added 06/19: ;;; default for possessives def_det-lxm := det-lxm & [ SEM [ DEF true, RESTR /l ] ]. indef_det-lxm := det-lxm & [ SEM [ DEF false, RESTR ] ]. poss_det-lxm := det-lxm & poss_det-sem. ;det-lxm := const-lxm & ; [ SYN [ HEAD det ], ; SEM null-sem, ; ARG-ST < > ]. ;;; <<>> ----- NOUN-LXM DEFINITIONS ----- ;;; changed 05/17 ;;; to avoid pn-lxm's inflecting in plural ;;; changed 05/22 (for plural lexical rule) ;;; changed 06/06 (semantics) ;;; rearranged 06/16 ;;; changed 06/19: DEF nominal-lxm := noun-sem & [ SYN [ HEAD noun & [FORM /l normal, AGR [ PER /l 3rd ] & #1] ], SEM [ INDEX #1, DEF /l true ], ARG-ST /l < > ]. ;nominal-lxm := noun-sem & ; [ SYN [ HEAD noun & [FORM /l normal, AGR [ PER /l 3rd ] & #1] ], ; SEM [ INDEX #1 ], ; ARG-ST /l < > ]. ;nominal-lxm := noun-sem & ; [ SYN [ HEAD noun & [FORM /l normal, AGR [ PER /l 3rd ] ] ], ; ARG-ST /l < > ]. ;nominal-lxm := noun-sem & ; [ SYN [ HEAD noun & [FORM /l normal, AGR [ PER /l 3rd, ; NUM /l sing ] ] ], ; ARG-ST /l < > ]. noun-lxm := nominal-lxm & infl-lxm. ;noun-lxm := infl-lxm & noun-sem & ; [ SYN [ HEAD noun & [FORM /l normal, AGR [ PER /l 3rd ] ] ], ; ARG-ST /l < > ]. ;;; changed 06/19: DEF pron-lxm := const-lxm & noun-sem & [ SYN [ HEAD noun & [FORM /l normal, AGR #agr ] ], SEM [ INDEX #agr, DEF true ], ARG-ST < > ]. ;pron-lxm := const-lxm & noun-sem & ; [ SYN [ HEAD noun & [FORM /l normal, ; AGR #agr ] ], ; SEM [ INDEX #agr ], ; ARG-ST < > ]. ;;; GEND is defined by nogender-masc/fem rule, ;;; if not defined in the lexical entry. ;;; changed on 12/07. ;;; changed 06/19: DEF cn-lxm := noun-lxm & [ SYN [ HEAD [ AGR #agr ], SPR /l < [ ] > ], SEM [ DEF #def ], ARG-ST /l < [ SYN [ HEAD det & [ AGR #agr ] ], SEM [ DEF #def ] ] > ]. ;cn-lxm := noun-lxm & ; [ SYN [ HEAD [ AGR #agr ], ; SPR /l < [ ] > ], ; ARG-ST /l < [ SYN [ HEAD det & [ AGR #agr ] ] ] > ]. ;;; changed 05/17 ;;; rearranged 06/16 ;;; changed 06/16. 3sing added. ;pn-lxm := nominal-lxm & const-lxm & pn-sem & ; [ HEAD [ AGR 3sing ], ; ARG-ST < > ]. pn-lxm := nominal-lxm & const-lxm & pn-sem & [ ARG-ST < > ]. ;pn-lxm := noun-lxm & pn-sem & ; [ ARG-ST < > ]. mn-lxm := noun-lxm & [ SYN [ SPR < > ] ]. masc-pn-lxm := pn-lxm & [ SYN [ HEAD [ AGR 3singmasc ] ] ]. fem-pn-lxm := pn-lxm & [ SYN [ HEAD [ AGR 3singfem ] ] ]. ;pn-lxm := noun-lxm & pn-sem & ; [ SYN [ HEAD [ AGR 3sing ] ], ; ARG-ST < > ]. ;;; <<>> ----- SHORTCUTS ----- NP := gram-cat & [ HEAD noun, SPR < >, COMPS < > ]. NP-acc := NP & [ HEAD noun & [CASE acc] ]. NP-nom := NP & [ HEAD [CASE nom] ]. ;NP-non3singmasc := NP & ; [ HEAD noun & [ AGR non3singmasc ] ]. N := gram-cat & [ HEAD noun, SPR < [ ] > ]. VP := gram-cat & [ HEAD verb, SPR < [ ] > ]. V := gram-cat & [ HEAD verb ]. S := gram-cat & [ HEAD verb, SPR < >, COMPS < > ]. PP := gram-cat & [ HEAD prep, SPR < >, COMPS < > ]. ;;; added 06/19 1sg := poss & [ PER 1st, NUM sing ]. 1pl := poss & [ PER 1st, NUM plur ]. 2sg := poss & [ PER 2nd, NUM sing ]. 2pl := poss & [ PER 2nd, NUM plur ]. 3sgorpl := poss & [ PER 3rd ]. ;;; <<>> ----- VERB LEXEME TYPES ----- ;;; changed for "hay", 03/29 ;;; changed 06/21 verbal-lxm := infl-lxm & verb-sem & [ SYN [ HEAD verb & [ NEG false, AUX /l false ] ] ]. ;verbal-lxm := infl-lxm & verb-sem & ; [ SYN [ HEAD verb & [ NEG false, AUX /l false ] ], ; ARG-ST < [ SYN /l NP ], ... > ]. verb-lxm := verbal-lxm & [ SYN [ SPR < [ ] > ], ARG-ST < [ SYN /l NP ], ... > ]. ;verb-lxm := verbal-lxm & ; [ SYN [ SPR < [ ] > ] ]. no-subj-verb-lxm := verbal-lxm & [ SYN [ SPR < > ] ]. iv-lxm := verb-lxm & iv-sem & [ ARG-ST < [ ] > ]. piv-lxm := verb-lxm & piv-sem & [ ARG-ST < [ ], [ SYN PP ] > ]. tv-lxm := verb-lxm & [ ARG-ST < [ ], [SYN /l NP-acc ], ... > ]. no-subj-stv-lxm := no-subj-verb-lxm & no-subj-stv-sem & [ ARG-ST < [ ] > ]. stv-lxm := tv-lxm & stv-sem & [ ARG-ST < [ ], [ ] > ]. ;;;changed 02/09 ;;;chabged 06/23 dtv-lxm := tv-lxm & dtv-sem & [ ARG-ST < [ ], [ ], [ SYN PP ] > ]. ;dtv-lxm := tv-lxm & dtv-sem & ; [ ARG-ST < [ ], [ ], [ SYN PP & [HEAD [P-OBJ <[SYN NP]> ] ] ] > ]. ;;;define here types for raising and control verbs ;;;changed 06/22: list in SPR ;;;(will not account for no-subj-verb) ;;;subject-raising verb srv-lxm := verb-lxm & srv-sem & [ ARG-ST < #1 , [SYN [ SPR < #1 > ] ] > ]. ;;;auxiliaries auxv-lxm := srv-lxm & [ SYN [ HEAD verb & [ AUX true ] ] ]. perf_auxv-lxm := auxv-lxm & [ SYN [ HEAD verb & [ AUX true ] ], ARG-ST < [ ], [ SYN [ HEAD verb & [FORM perf ] ] ] > ]. ger_auxv-lxm := auxv-lxm & [ SYN [ HEAD verb & [ AUX true ] ], ARG-ST < [ ], [ SYN [ HEAD verb & [FORM ger ] ] ] > ]. ;;; <<<---- TYPES INHERITING FROM SYNSEM-STRUC/LEXICAL RULE DEFINITIONS ---->>> ;;; types were taken from the textbook grammar and modified ;;; where necessary. args-type := *top* & [ ARGS *list* ]. phrase := synsem-struc & args-type. rule := synsem-struc & args-type & [ ARGS *list* ], status: root-node. ;;;from the textbook grammar ;; This is a slightly artificial type introduced for mechanical ;; purposes of preventing recursion in the mod_affix definition. argst-item := synsem-struc & args-type & [ ARG-ST *list* ]. lex-item := argst-item & [ AFFIX mod_affix ]. word :< lex-item. lexeme := lex-item & [ ORTH #orth, ARGS < [ ORTH #orth ] > ]. infl-lxm := lexeme & [ SYN [HEAD #head ], ARG-ST #argst, ARGS < [ AFFIX affix & [ SYN [ HEAD #head], ARG-ST #argst ] ] > ]. const-lxm := lexeme & [ ARGS < [ AFFIX no-affix ] >]. mod_affix := argst-item. affix := mod_affix. no-affix :< mod_affix. ;;; <<>> ----- TYPE HIERARCHY ----- ;;; hierarchy was based on the textbook grammar boolean :< *value*. true :< boolean. false :< boolean. *list* :< *top*. ne-list := *cons* & [ FIRST *top*, REST *list* ]. list-of-synsem-structs :< *list*. *null* :< list-of-synsem-structs. ne-list-of-synsem-structs := list-of-synsem-structs & ne-list & [ FIRST synsem-struc, REST list-of-synsem-structs ]. label := synsem-struc & [ LABEL-NAME symbol ], status: label. phrase-label := label & phrase. word-label := label & word.