;; -*- Package: LKB; -*- ;;; GG grammar specific globals file ;;; parameters only - grammar specific functions ;;; should go in user-fns.lsp ;;; patches in lkb-code-patches.lsp (in-package :lkb) (setf *maximum-list-pane-items* 500) (defparameter *active-parsing-p* t) (defparameter *hierarchy-only-p* nil) ;;; increase dag pool size ;;; #+acl (progn (defparameter *dag-pool-size* 200000) (defparameter *dag-pool* (if (and (pool-p *dag-pool*) (not (= (pool-size *dag-pool*) *dag-pool-size*))) (create-pool *dag-pool-size* #'(lambda () (make-safe-dag-x nil nil))) *dag-pool*)) ) ;;; Strings (defparameter *toptype* '*top*) (defparameter *string-type* 'string "a special type name - any lisp strings are subtypes of it") ;;; Lexical files (defparameter *orth-path* '(morph list first stem)) (defparameter *list-tail* '(rest)) (defparameter *list-head* '(first)) (defparameter *empty-list-type* '*null*) (defparameter *list-type* '*list*) (defparameter *diff-list-type* '*diff-list*) (defparameter *diff-list-list* 'list) (defparameter *diff-list-last* 'last) (defparameter *lex-rule-suffix* "_INFL_RULE" "creates the inflectional rule name from the information in irregs.tab - for PAGE compatability") (defparameter *irregular-forms-only-p* t) (defparameter *most-specific-only-p* t) (defparameter *feature-ordering* '(SYNSEM C-CONT MORPH ARGS HEAD-DTR NON-HEAD-DTR CAT CONT UNIAGR HOOK --KEY KEY MODCONT MESSAGE HCONS RELS)) ;;; (defparameter *display-type-hierarchy-on-load* nil) ;;; Parsing (defparameter *chart-limit* 100) (defparameter *maximum-number-of-edges* 12000) (defparameter *mother-feature* NIL "The feature giving the mother in a grammar rule") #-:MAL (defparameter *start-symbol* '(utterance-v-scnd utterance-non-v utterance-turn-seq utterance-coord utterance-int-clause) "specifing valid parses") #+:MAL (defparameter *start-symbol* '(utterance-v-scnd utterance-v-fst utterance-non-v utterance-turn-seq utterance-coord utterance-int-clause MAL-utterance-v-scnd MAL-utterance-v-fst MAL-utterance-non-v MAL-utterance-turn-seq MAL-utterance-coord MAL-utterance-int-clause) "specifing valid parses") ;(defparameter *start-symbol* '(utterance-v-scnd utterance-v-fst-conj utterance-v-fst-ind utterance-non-v utterance-turn-seq utterance-coord) ; "specifing valid parses") ;; Use the following for parsing fragments as well as full clauses: (defparameter *maximal-lex-rule-applications* 9 "The number of lexical rule applications which may be made before it is assumed that some rules are applying circularly") (defparameter *maximal-morphological-rule-depth* 8) (defparameter *deleted-daughter-features* '(ARGS HEAD-DTR NON-HEAD-DTR MALRULE) "features pointing to daughters deleted on building a constituent") ;;; Parse tree node labels ;;; the path where the name string is stored (defparameter *label-path* '(LABEL-NAME)) ;;; the path for the meta prefix symbol (defparameter *prefix-path* '(META-PREFIX)) ;;; the path for the meta suffix symbol (defparameter *suffix-path* '(META-SUFFIX)) ;;; the path for the recursive category (defparameter *recursive-path* '(SYNSEM NONLOC _SLASH LIST FIRST)) ;;; the path inside the node to be unified with the recursive node (defparameter *local-path* '(SYNSEM LOC)) ;;; the path inside the node to be unified with the label node (defparameter *label-fs-path* '()) (defparameter *label-template-type* 'label-sign) ;;; for the compare function (defparameter *discriminant-path* '(synsem loc cont key pred)) ;;; Hide lexical rule nodes in parse tree ;;; (setf *dont-show-lex-rules* t) ;;; this belongs in the user-prefs file, not here (defparameter *chart-dependencies* '((SYNSEM LOC CAT HEAD SP-FORM) (SYNSEM LOC CAT VCOMP FIRST LOC CAT HEAD SP-FORM) (SYNSEM LOC CAT SUBCAT LIST FIRST LOC CAT HEAD PFORM) (SYNSEM LOC CAT HEAD PFORM) (SYNSEM LOC CAT SUBCAT LIST REST FIRST LOC CAT HEAD PFORM) (SYNSEM LOC CAT HEAD PFORM) (SYNSEM LOC CAT HEAD __VC) (SYNSEM LOC CAT VCOMP FIRST LOC CAT HEAD __VC) (SYNSEM LOC COORD _DEPCOORDFORM) (SYNSEM LOC COORD _MYCOORDFORM) ; (SYNSEM LOC CAT VCOMP FIRST LOC CAT HEAD _VFORM) (SYNSEM LOC CAT HEAD _VFORM) (SYNSEM LOC CAT HEAD _VFORM) (SYNSEM LOC CAT VCOMP FIRST LOC CAT HEAD _VFORM) ) ) (setf *semantics-index-path* '(SYNSEM LOC CONT HOOK INDEX)) (defparameter *chart-packing-p* nil) ;(setf *parse-record* (selectively-unpack-edges *parse-record* 10)) ;;;(setf *gen-ignore-rules* ;;; '(nx-d-e_infl_rule ;;;; incoh-to-coh-lrule-0 ;;;; particle-verb-incoh-to-coh-lrule-0 ;;; old2new_sign_infl_rule ;;; old2new_pre_infl_rule ;;; old2new_post_infl_rule ;;; old2new_pre_prefix_infl_rule ;;; rp-pron-full-short-colloq_infl_rule ;;; rp-pron-full-long-colloq_infl_rule ;;; recurs_punct_qmark_orule ;;; recurs_punct_excl_orule ;;; init_punct_excl_orule ;;; punct_lparen_orule ;;; punct_rparen_orule ;;; relax-right-comma ;;; punct_semicol_orule ;;; MAL-det-die_infl_rule ;;; MAL-det-der_infl_rule ;;; MAL-det-des_infl_rule ;;; MAL-det-das_infl_rule ;;; MAL-det-den_infl_rule ;;; MAL-det-dem_infl_rule ;;; MAL-det-einer_infl_rule ;;; MAL-det-eines_infl_rule ;;; MAL-det-einen_infl_rule ;;; MAL-det-einem_infl_rule ;;; MAL-det-eine_infl_rule ;;; MAL-det-ein-null_infl_rule ;;; MAL-adj-en_infl_rule ;;; MAL-adj-e_infl_rule ;;; MAL-adj-er_infl_rule ;;; MAL-adj-es_infl_rule ;;; MAL-adj-em_infl_rule ;;; MAL-adj-comp-umlaut-_infl_rule ;;; MAL-adj-comp-umlaut+_infl_rule ;;; MAL-local-doublet ;;; MAL-v1-doublet ;;; MAL-vend-doublet ;;; MAL-v1-vc-doublet ;;; MAL-part-v-doublet ;;; MAL-dass_infl_rule ;;; MAL-dasz_infl_rule ;;; MAL-das_infl_rule ;;; MAL-part-vend-perf-blend ;;; MAL-vend-perf-blend ;;; MAL-vend-imperf-blend ;;; MAL-verb-en_infl_rule ;;; MAL-verb-e_infl_rule ;;; MAL-verb-st_infl_rule ;;; MAL-verb-t_infl_rule ;;; MAL-verb-et_infl_rule ;;; MAL+punct_comma_orule ;;; )) ;; ;; Read in settings for globals including *gen-ignore-rules* and the ever-young ;; temporary expedient *duplicate-lex-ids*. ;; (defun load-erg-settings-file (file) (with-open-file (stream file :direction :input) (loop for item = (read-line stream nil nil) while item unless (or (zerop (length item)) (eq (elt item 0) #\;)) collect (read-from-string item)))) (setf *duplicate-lex-ids* (load-erg-settings-file (merge-pathnames "lkb/nogen-lex.set" (lkb::parent-directory)))) (setf *gen-ignore-rules* (load-erg-settings-file (merge-pathnames "lkb/nogen-rules.set" (lkb::parent-directory)))) ;;;(defparameter *duplicate-lex-ids* ;;; '(PAS-SEI-IMP GRUESS-DUMMY AUX-SEI-IMP AUX-GEWESEN GEHABT DREIVIERTEL-DUMMY HAB PAS-WERDE-IMP GENERIC_COUNT_NOUN GENERIC_MASS_NOUN GENERIC_ADJA GENERIC_ADJD GENERIC_ADVERB GENERIC_EMAIL GENERIC_MONEY GENERIC_NAME GENERIC_NUMBER GENERIC_TIME GENERIC_ORDINAL GENERIC_TITLE_NOUN DAS-RELP-NEU-SG-NA_MAL DASS-COMP_MAL COLON2-VAR ;;; generic_unflex_adja ;;; generic_itr_fin_verb ;;; generic_tr_fin_verb ;;; generic_scomp_fin_verb ;;; generic_itr_part_fin_verb ;;; generic_tr_part_fin_verb ;;; generic_scomp_part_fin_verb ;;; generic_itr_inf_verb ;;; generic_tr_inf_verb ;;; generic_scomp_inf_verb ;;; generic_itr_part_inf_verb ;;; generic_tr_part_inf_verb ;;; generic_scomp_part_inf_verb ;;; generic_itr_pp_verb ;;; generic_tr_pp_verb ;;; generic_scomp_pp_verb ;;; generic_itr_part_pp_verb ;;; generic_tr_part_pp_verb ;;; generic_scomp_part_pp_verb ;;; generic_itr_part_izu_verb ;;; generic_tr_part_izu_verb ;;; generic_scomp_part_izu_verb ;;; )) (setf mrs::*null-semantics-hack-p* nil) ;;; Packing restrictor for generation ;;;(defparameter *packing-restrictor* ;;; '(RELS HCONS KEY ALTKEY _SLASH I _CAS LEE _V1-HD PUNCT SIGNPUNCT STEM) ;;;; '(RELS HCONS KEY ALTKEY I PUNCT SIGNPUNCT) ;;; "restrictor used when generating with ambiguity packing") (defparameter *packing-restrictor* '(RELS HCONS KEY ALTKEY _SLASH I _CAS LEE _V1-HD)) (setf *intersective-rule-names* nil) (setf *gen-packing-p* t) (setf *gen-filtering-p* t) (setf *gen-equate-qeqs-p* t) (setf *gen-filtering-debug* nil) (setf *lex-rule-show-one-step* t) (defparameter *generic-lexical-entries* '((named_gle :generate) (card_gle :generate) (ord_gle :generate) (yofc_gle :generate) (generic_count_gle :generate) (decade_gle :generate) (clocktime_gle :generate))) (setf *bypass-equality-check* t) #+:logon (setf *bypass-equality-check* :filter) #-:logon (setf *bypass-equality-check* t) (lkb::grammar-encoding 'UTF-8) (setf *translate-grid* '(:de . (:de :en))) (setf lkb::*characterize-p* t) (setf *last-parses* (remove "the dog barks" *last-parses* :test #'string=)) (unless *last-parses* (setf *last-parses* '("Am Anfang war das Wort.")))