;; Delimiters (weak brackets) ;; These constraints enable the propagation and discharge of (weak) delimiters ;; of the kind introduced in token mapping for hyphens as in ;; |Santa Clara-based|. ;; Add features in ORTH for left and right delimiters (weak brackets), with ;; diff-list values. orthog :+ [ LD bracket_list, RD bracket_list ]. ;; Propagate delimiters from tokens to ORTH (now pulling from +LB, +RB - FIX) basic_word :+ [ ORTH [ LD #ld, RD #rd ], TOKENS [ +LIST.FIRST.+TRAIT.+LB #ld, +LAST.+TRAIT.+RB #rd ] ]. ;; Lexical rules: identify delimiter constraints on dtr and mother lex_rule_supermost :+ [ ORTH [ LD #ld, RD #rd ], ARGS.FIRST.ORTH [ LD #ld, RD #rd ] ]. ;; Unary phrases: identify delimiter constraints on dtr and mother. norm_unary_phrase :+ [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD #rd ] ] > ]. n-adj_phrase :+ [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD #rd ] ] > ]. basic_npadv_mod_phrase :+ [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD #rd ] ] > ]. ;; Normal headed binary phrases: block crossing of delimiter brackets, and ;; propagate from dtrs to mother. no_inner_delim_phrase := phrase & [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD #rd ] ] > ]. basic_head_initial :+ no_inner_delim_phrase. binary_headed_phrase :+ no_inner_delim_phrase. basic_head_filler_phrase :+ no_inner_delim_phrase. basic_head_comp_or_marker_phrase :+ no_inner_delim_phrase. basic_head_spec_phrase :+ no_inner_delim_phrase. subjh_rule_basic :+ no_inner_delim_phrase. basic_head_mod_phrase_simple :+ no_inner_delim_phrase. n_n_cmpnd_phr :+ no_inner_delim_phrase. noun_title_cmpnd_phr :+ no_inner_delim_phrase. fw_sequence_left_phrase :+ no_inner_delim_phrase. fw_sequence_right_phrase :+ no_inner_delim_phrase. basic_run_on_rule :+ no_inner_delim_phrase. min_coord_phr :+ no_inner_delim_phrase. np_pred_phr :+ no_inner_delim_phrase. binary_frag_rule :+ no_inner_delim_phrase. basic_conj_red_c_c_rule :+ no_inner_delim_phrase. ;; Same for non-binary phrases: prevent crossing and propagate. basic_ternary_phrase :+ [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD #rd ] ] > ]. basic_quad_phrase :+ [ ORTH [ LD #ld, RD #rd ], ARGS < [ ORTH [ LD #ld, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD bracket_null ] ], [ ORTH [ LD bracket_null, RD #rd ] ] > ]. ;; Special head_final binary phrases: Pull delimiters on dtrs outward to ;; left and right perimeters of mother, by appending values of dtrs. perimeter_delims_phrase := phrase & [ ORTH [ LD [ LIST #ldlist, LAST #ldlast ], RD [ LIST #rdlist, LAST #rdlast ] ], ARGS < [ ORTH [ LD [ LIST #ldlist, LAST #ldmid ], RD [ LIST #rdlist, LAST #rdmid ] ] ], [ ORTH [ LD [ LIST #ldmid, LAST #ldlast ], RD [ LIST #rdmid, LAST #rdlast ] ] ] > ]. basic_np_name_cmpnd_phr :+ perimeter_delims_phrase. basic_n_v-or-adj_cmpnd_phr :+ perimeter_delims_phrase. binary_measure_np_phrase :+ perimeter_delims_phrase. num_noun_sequence_phrase :+ perimeter_delims_phrase. ;; Note: Also added constraints in roots.tdl, which cannot be included here.