;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Ginzburgh and Sag (2002) Implementation ;;; Copyright (c) 2001-2002, John Beavers, Chris Callison Burch, and Ivan Sag ;;; see license.txt (distributed with LKB) for details ;;; ;;; Filename: grules.tdl ;;; Purpose: Grammar rules. Subtypes of constructions. This is a leaf file ;;; and not a type file. ;;; Last modified: 05/11/02 by John Beavers (JTB) ;;; Notes: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; This file lets the LKB know which constructions it should treat as ;;; grammar rules. root-cl-rule-0 := root-cl-0. root-cl-rule-1 := root-cl-1. ns-imp-root-cl-rule-0 := ns-imp-root-cl-0. ns-imp-root-cl-rule-1 := ns-imp-root-cl-1. factive-cl-rule-0 := factive-cl-0. ;;;JTB 07/18/01 - Why not a bare plurals rule? bare-pl-rule-0 := bare-pl-np. bare-adj-rule := bare-adj-ph. ;ns-imp-cl-rule := ns-imp-cl. pol-int-rule-0 := pol-int-cl-0. pol-int-rule-1 := pol-int-cl-1. pol-int-rule-2 := pol-int-cl-2. ;ncl-hd-comps-rule-0 := ncl-hd-comps-ph-0. ncl-hd-comps-rule-1 := ncl-hd-comps-ph-1. ncl-hd-comps-rule-2 := ncl-hd-comps-ph-2. ;ncl-vb-rule-0 := ncl-vb-ph-0. ncl-vb-rule-1 := ncl-vb-ph-1. ncl-vb-rule-2 := ncl-vb-ph-2. ncl-vb-rule-3 := ncl-vb-ph-3. ;;; JTB 07/29/01 - Removing elliptical stuff because we never talked ;;; about it and I don't want it interfering. ;;; JTB 02/02/02 - It got put back in in September. ellip-vp-rule-0 := ncl-ellip-vp-0. ellip-vp-rule-1 := ncl-ellip-vp-1. cp-cl-rule-1 := cp-cl-1. cp-cl-rule-2 := cp-cl-2. hd-spr-rule := hd-spr-ph. pred-ph-rule := pred-ph. ;;;decl-hs-rule := decl-hs-cl. ;;;JTB and IAS 04/15/02 - Split decl-hs-rule into two types: [IC +] ;;;things may not have anything on the store of the first DTR (the ;;;subject) and [IC -] things may. The point is to prevent "spurious" ;;;ambiguities of "Who left?" as both dir-is-int and reprise. decl-hs-rule-1 := decl-hs-cl & [ SS.LOC.CAT.HEAD.IC false ]. decl-hs-rule-2 := decl-hs-cl & [ SS.LOC.CAT.HEAD.IC true, DTRS < [ SS.LOC.P-STORE ], [] > ]. ;;;JTB 07/26/01 - The second one is for predicative comp taking is, ;;;which only has one comp and no verbal one. inv-decl-rule-1 := inv-decl-cl-1. inv-decl-rule-2 := inv-decl-cl-2. decl-ns-gap-rule := decl-ns-cl & [ SS.LOC.CAT.SUBJ < gap-ss > ]. decl-ns-pro-rule := decl-ns-cl & [ SS.LOC.CAT.SUBJ < pro-ss > ]. top-cl-rule := top-cl. inv-excl-rule-0 := inv-excl-cl-0. inv-excl-rule-1 := inv-excl-cl-1. wh-excl-rule-0 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. wh-excl-rule-1 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. wh-excl-rule-2 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. wh-excl-rule-5 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. wh-excl-rule-6 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. wh-excl-rule-7 := wh-excl-cl & [ SS.LOC [ P-STORE ], DTRS < [SS.WH ], [ SS.LOC.P-STORE ] > ]. post-hd-mod-rule := post-hd-mod-ph. ;;;Splitting pre head modification into two types, one for things with ;;;scope-objs and one for things with soas. ;pre-hd-mod-rule := pre-hd-mod-ph. pre-hd-adj-mod-rule := pre-hd-adj-mod-ph. pre-hd-adv-mod-rule := pre-hd-adv-mod-ph. ;coordination-rule := coordination-word. ;coordination-rule-2 := coordination-phrase. ;;;JTB 07/14/01 - added this for the base case where we trivially form ;;;a reprise but nothing was on P-STORE. Hope this sucker doesn't ;;;overgenerate. rep-int-cl-0 := rep-int-cl & [ SS.LOC [ P-STORE , CONT.PARAMS ], HD-DTR [ SS.LOC.P-STORE ] ]. rep-int-cl-1 := rep-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. rep-int-cl-2 := rep-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. rep-int-cl-3 := rep-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;;JTB 07/14/01 - Added this for the base case as above. Again, hope ;;;we don't overgenerate. dir-is-int-cl-0 := dir-is-int-cl & [ SS.LOC.P-STORE ]. dir-is-int-cl-1 := dir-is-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. dir-is-int-cl-2 := dir-is-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. dir-is-int-cl-3 := dir-is-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-1 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-2 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-3 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;; CCB - the second item from the P-STORE needs to be FOC in this case, ;;; Delete this case. ;su-wh-int-cl-4 := su-wh-int-cl & ;[ SS.LOC [ CONT.PARAMS , ; P-STORE ], ; HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-5 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-6 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-7 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. su-wh-int-cl-8 := su-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-1 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-2 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-3 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;;IAS (with observer JTB) 7/14/01 - Ivan says this will solve ;;;everything. And as it turns out he was right. I owe him two pints. ns-wh-int-cl-4 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;;JTB 07/14/01 Added this to account for "What did WHÓ see" where a ;;;constraint on wh-int-cl and a constraint on ns-wh-int-cl-2 were ;;;conflicting. This should exhaust all possibilities for two argument ;;;ns-wh-int-cl's. ns-wh-int-cl-5 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;;JTB 07/18/01 Added these to handle stuff like what did who give to ;;;whom where we (should) have three things on P-STORE. ;;;A note on permutations. The constraint on wh-int-cl that the first ;;;daughter of PARAMS be the first daughter on P-STORE means that we need ;;;to make sure each item on P-STORE (which were picked up from the COMPS ;;;lists) gets a crack at being first on PARAMS, but the order of the ;;;remaining two shouldn't make a difference. ns-wh-int-cl-6 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-7 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-8 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-9 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-10 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-11 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-12 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-13 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-14 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-15 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-16 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ns-wh-int-cl-17 := ns-wh-int-cl & [ SS.LOC [ CONT.PARAMS , P-STORE ], HD-DTR.SS.LOC.P-STORE ]. ;;; CCB - the second item from the P-STORE needs to be FOC in this case, ;ns-wh-int-cl-4 := ns-wh-int-cl & ;[ SS.LOC [ CONT.PARAMS , ; P-STORE ], ; HD-DTR.SS.LOC.P-STORE ].