;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? ;;; ;;; first shot of minimal type hierarchy for transfer rules in LOGON; derived ;;; from LinGO Grammar Matrix, but greatly stripped down. (7-oct-03; oe) ;;; mrs := top & [ TOP h, INDEX u, RELS list, HCONS list ]. qeq := top & [ HARG h, LARG h ]. ;;; ;;; minimal hierarchy of variable types, using the new (R)MRS naming scheme. ;;; ;;; ;;; introduce two transfer-only `scratch' slots in variables: one that will be ;;; purged after each successful rule application, one that will stick until we ;;; leave transfer. additionally, provide DITCH property to mark variables we ;;; want to loose in the final output (e.g. to ditch the ARG0 from conjunctions ;;; while the ERG used to have C-ARG instead). ;;; u := top & [ SCRATCH scratch, MARK scratch, DITCH bool ]. i := u. p := u. h := p. e := i & [ SF sforce, TENSE tense, MOOD mood, PERF luk, PROG luk ]. x := i & p & [ PERS person, NUM number, GEND gender, IND bool, DIV bool, PT prontype ]. ;;; ;;; to check for `arity' in MTRs, maybe we need an `anti-'variable type ;;; a := u. tense := top. tensed := tense. past_or_pres := tensed. pres_or_fut := tensed. past_or_fut := tensed. past := past_or_pres & past_or_fut. pres := past_or_pres & pres_or_fut. fut := past_or_fut & pres_or_fut . untensed := tense. mood := top. indicative := mood. subjunctive := mood. no_mood := mood. luk := top. bool := luk. na := luk. + := bool. - := bool. sforce := top. prop-or-ques := sforce. prop := prop-or-ques. ques := prop-or-ques. comm := sforce. person := top. 1-or-2 := person. 1-or-3 := person. 2-or-3 := person. 1 := 1-or-2 & 1-or-3. 2 := 1-or-2 & 2-or-3. 3 := 1-or-3 & 2-or-3. no_person := person. number := top. sg := number. pl := number. no_number := number. gender := top. m-or-f := gender. m-or-n := gender. f-or-n := gender. m := m-or-f & m-or-n. f := m-or-f & f-or-n. n := m-or-n & f-or-n. not-m := f-or-n. not-f := m-or-n. not-n := m-or-f. no_gender := gender. ;;; ;;; _fix_me_ ;;; the following are simply imported from the ERG, thus not sanctioned by the ;;; LOGON MRS Design Committee. (19-nov-04; oe) ;;; prontype := top. real := prontype. std := real. refl := real. demon := real. zero := prontype. ;;; ;;; relations are classified according to the types of arguments they take. ;;; all relations have a handle. in addition, quantifier relations have a ;;; bound variable and a restriction, nominal relations have an instance, and ;;; event relations have an event. furthermore, nominal relations and event ;;; relations can have additional roles, depending on their arity. ;;; relation := top & [ LBL h, PRED predsort ]. arg0_relation := relation & [ ARG0 u ]. arg1_relation := relation & [ ARG1 u ]. arg01_relation := arg0_relation & arg1_relation. arg2_relation := relation & [ ARG2 u ]. arg012_relation := arg01_relation & arg2_relation. arg3_relation := relation & [ ARG3 u ]. arg0123_relation := arg012_relation & arg3_relation. arg4_relation := relation & [ ARG4 u ]. arg01234_relation := arg0123_relation & arg4_relation. carg_relation := arg0_relation & [ CARG string ]. arg1_carg_relation := arg1_relation & carg_relation. arg01_carg_relation := arg01_relation & carg_relation. arg2_carg_relation := arg2_relation & carg_relation. arg012_carg_relation := arg012_relation & carg_relation. arg3_carg_relation := arg3_relation & carg_relation. arg0123_carg_relation := arg0123_relation & carg_relation. arg4_carg_relation := arg4_relation & carg_relation. arg01234_carg_relation := arg01234_relation & carg_relation. conjunction_relation := arg0_relation & [ L-INDEX u, L-HNDL u, R-INDEX u, R-HNDL U ]. quantifier_relation := arg0_relation & [ ARG0 x, RSTR h, BODY h ]. unknown_relation := arg0_relation & [ ARG u ]. mark_relation := arg0_relation & [ PRED mark, ARG0 a, ARGM u ]. ;;; ;;; some basic types ;;; list := top. cons := list & [ FIRST top, REST list ]. null := list. anti := string. ;;; ;;; the top-level entry point for (grammar-specific) predicate hierarchies ;;; predsort := top. string := predsort.