;;; TYPES png :+ [PER person, NUM number, GEND gender]. person := avm. first := person. second := person. third := person. number := avm. sg := number. non-sg := number. du := non-sg. pl := non-sg. gender := avm. anim := gender. human := anim. neut := gender. masc := human. fem := human. ;# For the case, I am defining a superset of nom and acc. ;# The direct object of verbs can be either nom or acc: ;# acc if the noun is HUM +, or HUM - and ANIM + ;# nom in other cases. noun :+ [CASE case]. case := avm. nom+acc := case. nom := nom+acc. acc := nom+acc. dat := case. head :+ [ AUX bool, FORM form ] . form := avm . fin+inf := form. fin := fin+inf . inf := fin+inf . imp := form . ; imp-pol := form . demonstrative_a_rel := predsort. proximal+dem_a_rel := demonstrative_a_rel. distal+dem_a_rel := demonstrative_a_rel. remote+dem_a_rel := distal+dem_a_rel. hearer+dem_a_rel := distal+dem_a_rel. ; For VERB inflection past := tense. present := tense. future := tense. ;;; ;;; Instances of rules from the matrix we are using ;;; comp-head-phrase := basic-head-1st-comp-phrase & head-final . subj-head-phrase := decl-head-subj-phrase & head-final & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-ques ]. imp-head-phrase := subj-head-phrase & [ SYNSEM.LOCAL.CAT.HEAD.FORM imp ]. ;imp-pol-head-phrase := subj-head-phrase & ; [ SYNSEM.LOCAL.CAT.HEAD.FORM imp-pol ]. ; Rules for bulding NPs. Note that the Matrix uses SPR for ; the specifier of nouns and SUBJ for the subject (specifier) of verbs. head-spec-phrase := basic-head-spec-phrase & head-final . head-opt-comp-phrase := basic-head-opt-comp-phrase & [ HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ cons ]. ;;; ;;; LEXICAL RULES ;;; ;;; NOUNS: Nouns are modified first for number, then for case. ; The input is a common-noun lexical item. noun-number-lex-rule := add-only-no-ccont-rule & [ DTR common-noun-lex, INFLECTED - ]. ; For single nouns, we add the information that it's sg. ; There is no change to the lexical item. sg-noun-lex-rule := noun-number-lex-rule & const-ltol-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.NUM sg ]. ; For plural nouns, add the information that it is plural, ; Then add the appropriate inflection. pl-noun-lex-rule := noun-number-lex-rule & infl-ltol-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.NUM non-sg ]. noun-case-lex-rule := lexeme-to-word-rule & [ DTR noun-number-lex-rule ]. ; ANIM - nouns: These are always nominative forms, which is just the base noun form. They don't change to accusative, but in order for them to fit in subject position for the verb (which is marked as accusative) they are given a case form of nom+acc in this rule. neut-noun-lex-rule := noun-case-lex-rule & constant-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [CASE nom+acc], DTR [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.GEND neut ] ]. ; ANIM + nouns: These are nominative forms when they are the subject of the sentence, and accusative form when they are the object. anim-nom-noun-lex-rule := noun-case-lex-rule & constant-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [CASE nom], DTR [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.GEND anim ] ]. anim-acc-noun-lex-rule := noun-case-lex-rule & inflecting-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [CASE acc], DTR [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.GEND anim ] ]. ; DAT nouns: we add the information that it's dat. ; Dative case is used as the subject of some verbs ; There is also a lexical change to add the suffix -kkx or -nx or -x dat-noun-lex-rule := noun-case-lex-rule & inflecting-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [CASE dat] ]. ;;; ADJECTIVE adj-agr-lex-rule := lexeme-to-word-rule & [ DTR adjective-lex ]. ; For masculine singular, inflect adj-masc-sg-lex-rule := adj-agr-lex-rule & inflecting-lex-rule . ; For feminine singular, inflect adj-fem-sg-lex-rule := adj-agr-lex-rule & inflecting-lex-rule . ; For human plural, inflect adj-hum-pl-lex-rule := adj-agr-lex-rule & inflecting-lex-rule . ; For neuter, inflect adj-neut-sg-lex-rule := adj-agr-lex-rule & inflecting-lex-rule . ;;; VERBS: Verbs are modified for tense by adding various suffixes. ; The input is a verb lexical item. ; lexeme-to-word requires DTR be INFLECTED -, and output is INFLECTED + ;;; ERB 2007-05-12 Changed FORM here to fin, so that it contrasts with inf. verb-tense-lex-rule := lexeme-to-word-rule & [ SYNSEM.LOCAL.CAT.HEAD.FORM fin, DTR verb-lex ]. past-verb-rule := verb-tense-lex-rule & infl-ltow-rule . pres-verb-rule := verb-tense-lex-rule & infl-ltow-rule . futr-verb-rule := verb-tense-lex-rule & infl-ltow-rule . ; Inflection for question marker -oo or -ee suffix ; ERB 2007-05-12 Don't know why [FORM inf] was here. Removed. quest-verb-rule := infl-add-only-ltol-rule & [DTR verb-lex, INFLECTED +] & [SYNSEM.LOCAL [ CONT.HOOK.INDEX.SF ques, CAT [ MC - ] ] ] . ; Inflection for NOML marker, to indicate an embedded clause ; These must already be inflected. ; They also need to be MC na since they're going to be embedded. ; ERB 2007-05-12 These ones are legitimately FORM inf, I think. ; ERB 2007-05-12 But: They attach to the outside of the tense rules, ; so they have to change the form value, rather than copy it up. ; Changing type from infl-add-only-ltol-rule to infl-head-change-only-ltol-rule.; While I'm at it, collapsing these three into one rule. ; nomnl1-verb-rule := infl-add-only-ltol-rule & ; [SYNSEM.LOCAL.CAT [ MC na, HEAD.FORM inf ] ] & ; [DTR past-verb-rule, INFLECTED + ] . ; nomnl2-verb-rule := infl-add-only-ltol-rule & ; [SYNSEM.LOCAL.CAT [ MC na, HEAD.FORM inf ] ] & ; [DTR pres-verb-rule, INFELCTED + ] . ; nomnl3-verb-rule := infl-add-only-ltol-rule & ; [SYNSEM.LOCAL.CAT [ MC na, HEAD.FORM inf ] ] & ; [DTR futr-verb-rule, INFLECTED + ] . nomnl-verb-rule := infl-head-change-only-ltol-rule & [ SYNSEM.LOCAL.CAT.HEAD verb & [ FORM inf, MOD #mod ], DTR verb-tense-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD #mod ], INFLECTED + ]. ; Lexical rule to mark the verb as an imperative form ; The first is the infinitive form of the verb, so input is the uninflected ; form. The output is marked as FORM imp. The polite form is the infinitive ; form + -ka. To prevent overgeneration, I'm commenting it out for now. imp-verb-rule := infl-ltol-rule & [ SYNSEM.LOCAL.CAT.HEAD.FORM imp ] & [ DTR verb-lex, INFLECTED - ]. ;imp-verb2-rule := const-ltow-rule & ; [ DTR [ SYNSEM.LOCAL.CAT.HEAD.FORM imp ] ]. ; This lexical rule adds the neg_r_rel to the verb's ; RELS list. It is instantiated by a spelling-changing ; rule as specified in irules.tdl. ; ERB 2007-05-12 Don't know why [FORM inf] was here. Removed. neg-infl-lex-rule := cont-change-only-lex-rule & inflecting-lex-rule & [ C-CONT [ HOOK [ XARG #xarg, LTOP #ltop, INDEX #ind ], RELS , HCONS ], SYNSEM [ LKEYS #lkeys ], DTR lex-item & [ SYNSEM [ LKEYS #lkeys, LOCAL [ CONT.HOOK [ INDEX #ind, XARG #xarg, LTOP #larg ], CAT.HEAD verb ] ] ] ] . ; Auxiliary Verb ; ERB 2007-05-12 Don't know why [FORM inf] was here. Removed. ; Likewise for [MC -]. infl-add-ccont-ltow-rule := inflecting-lex-rule & same-non-local-lex-rule & same-cat-lex-rule & same-ctxt-lex-rule & same-agr-lex-rule & [ INFLECTED +, C-CONT [ HOOK [ XARG #xarg, LTOP #ltop, INDEX #ind ], RELS , HCONS ], DTR [ SYNSEM.LOCAL [CONT.HOOK [XARG #xarg, LTOP #larg ], CAT [ HEAD verb, MC luk ] ], INFLECTED - ] ]. ; We treat question particles as complementizers. ; Here is the lexical type for complementizers. complementizer-lex-item := raise-sem-lex-item & basic-one-arg & [ SYNSEM.LOCAL.CAT [ HEAD comp & [ MOD < > ], VAL [ SPR < >, SUBJ < >, COMPS < #comp > ] ], ARG-ST < #comp & [ LOCAL.CAT [ HEAD verb, VAL [ SUBJ < >, COMPS < > ] ] ] > ] . ;;; ;;; LEXICAL TYPES ;;; ;;; NOUNS bare-np-phrase := basic-bare-np-phrase & [ C-CONT.RELS ] . noun-lex := basic-noun-lex & basic-one-arg & no-hcons-lex-item & [ SYNSEM.LOCAL.CAT [ HEAD.MOD <>, VAL [ COMPS < >, SUBJ < >, SPEC < > ] ] ]. common-noun-lex := noun-lex & [ SYNSEM.LOCAL [CAT.VAL.SPR < #spr & [ LOCAL.CAT.HEAD det ] >, CONT.HOOK.INDEX.PNG [ PER third ] ], ARG-ST < #spr > ] . pronoun-lex := noun-lex & [ SYNSEM [ LOCAL.CAT.VAL.SPR < [ OPT + ] >, LKEYS.KEYREL.PRED "_pronoun_n_rel" ] ]. ;;; VERBS verb-lex := basic-verb-lex & [ SYNSEM.LOCAL [ CAT [ HEAD.MOD < >, VAL [ SPR < >, SPEC < >, SUBJ < #subj > ] ], CONT.HOOK [ XARG #xarg ]], ARG-ST < #subj & [ LOCAL [ CAT.VAL [ SPR < >, COMPS < > ], CONT.HOOK.INDEX #xarg ] ], ... > ] . ;;; The intrasitive verbs take either a nominative or a dative subject. ;;; They may drop their subjects. intransitive-verb-lex := verb-lex & intransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, ARG-ST < [ LOCAL.CAT.HEAD noun ] > ] . ;;; Most transitive verbs take a nominative subject. Their object is accusative if it's ANIM +, and nominative for ANIM -. (See the noun inflection rules above for more details) transitive-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE nom] ], #comps & [ LOCAL [ CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [CASE acc] ] ] ] > ] . ;;; Some transitive verbs take a dative subject. ('want' is an example) ;;; They may drop their object. ; This one requires an object transitive-subjdat-objyes-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE dat] ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < [OPT -] > ], HEAD noun & [CASE acc] ] ] > ] . ; This one has an optional object ; If the object is gender anim, then the case needs to be accusative. transitive-subjdat-objopt-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE dat] ], #comps & [ LOCAL [ CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [CASE acc] ] ] ] > ] . ditransitive-verb-lex := verb-lex & ditransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps1, #comps2 >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE nom] ], #comps1 & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [CASE dat] ] ], #comps2 & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [CASE nom] ] ] > ] . ;;; Clause embedding verbs ; ERB 2007-05-12 Removed [MC na] on complement. clause-embed-verb-lex := verb-lex & clausal-second-arg-trans-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE nom] ], #comps & [ LOCAL [ CAT [ VAL [ SPR < >, COMPS < > ], HEAD verb], CONT.HOOK.INDEX.SF prop-or-ques ] ] > ] . ques-embed-verb-lex := clause-embed-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps & [ LOCAL.CONT.HOOK.INDEX.SF ques ] >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE nom] ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD verb] ] > ] . ; ERB 2007-05-12 To get the -atx forms here, require [FORM inf] on ; the complement. prop-embed-verb-lex := clause-embed-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps & [ LOCAL.CONT.HOOK.INDEX.SF prop ] >, ARG-ST < [ LOCAL.CAT.HEAD noun & [CASE nom] ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD verb & [ FORM inf ] ] ] > ] . ;;; ADJECTIVES adjective-lex := basic-adjective-lex & intersective-mod-lex & [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD noun, VAL.SPR cons ]]>, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ], POSTHEAD + ]]]]. ;;; ADVERBS adverb-lex := basic-adverb-lex & intersective-mod-lex & [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD < [ LOCAL.CAT.HEAD verb ]>, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ]]]]]. ;;; Case-marking adpositions ;;; Case marking adpositions are constrained not to ;;; be modifiers. case-marker-p-lex := basic-one-arg & raise-sem-lex-item & [ SYNSEM.LOCAL.CAT [ HEAD adp & [ MOD < > ], VAL [ SPR < >, SUBJ < >, COMPS < #comps >, SPEC < > ] ], ARG-ST < #comps & [ LOCAL.CAT [ HEAD noun, VAL.SPR < > ] ] > ] . ; FORM value for object marking adpositions. p-acc := form . ;;; DETERMINER ;;; SPEC is non-empty, and already specified by basic-determiner-lex. determiner-lex := basic-determiner-lex & basic-zero-arg & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < >, VAL [ SPR < >, COMPS < >, SUBJ < > ] ] ] . ;;; COORDINATION ;;; N Coordination Strategy 1 n1-top-coord-rule := basic-n-top-coord-rule & omni-top-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ] . n1-mid-coord-rule := basic-n-mid-coord-rule & omni-mid-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ] . n1-bottom-coord-rule := infl-bottom-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1", SYNSEM.LOCAL.COORD-REL.PRED "_and_coord_rel", DTR.SYNSEM.LOCAL.CAT.HEAD noun ] . n1-left-coord-rule := infl-left-coord-rule & n-bottom-coord-phrase & [ SYNSEM.LOCAL.COORD-REL.PRED "_and_coord_rel" ] . ;;; VP Coordination Strategy 2 vp1-top-coord-rule := basic-vp-top-coord-rule & apoly-top-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "2", LCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD.FORM inf ] . vp1-bottom-coord-rule := unary-bottom-coord-rule & vp-bottom-coord-phrase & [ SYNSEM.LOCAL [ COORD-STRAT "2", COORD-REL.PRED "_and_coord_rel" ] ] . ;;; S Coordination Strategy 2 s1-top-coord-rule := basic-s-top-coord-rule & apoly-top-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "2", LCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD.FORM inf ] . s1-bottom-coord-rule := unary-bottom-coord-rule & s-bottom-coord-phrase & [ SYNSEM.LOCAL [ COORD-STRAT "2", COORD-REL.PRED "_and_coord_rel" ] ] .