summaryrefslogtreecommitdiff
path: root/old-examples/CLE
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
commite9e80fc389365e24d4300d7d5390c7d833a96c50 (patch)
treef0b58473adaa670bd8fc52ada419d8cad470ee03 /old-examples/CLE
parentb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff)
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'old-examples/CLE')
-rw-r--r--old-examples/CLE/CF2GF.hs20
-rw-r--r--old-examples/CLE/English.cf194
-rw-r--r--old-examples/CLE/QLF.gf269
-rw-r--r--old-examples/CLE/QLFEng.gf268
4 files changed, 751 insertions, 0 deletions
diff --git a/old-examples/CLE/CF2GF.hs b/old-examples/CLE/CF2GF.hs
new file mode 100644
index 000000000..1bb1d6611
--- /dev/null
+++ b/old-examples/CLE/CF2GF.hs
@@ -0,0 +1,20 @@
+import Data.List (intersperse)
+import Data.Char (isAlpha)
+
+-- to massage cf rules to funs, in order, preserving comments
+-- to get cats, use pg -printer=gf
+
+cf2gf :: FilePath -> IO ()
+cf2gf file = do
+ ss <- readFile file >>= return . lines
+ mapM_ (putStrLn . mkOne) ss
+
+mkOne line = case words line of
+ fun : cat : "::=" : cats ->
+ let
+ (cats0,cats2) = span (/=";") cats
+ cats1 = filter (isAlpha . head) cats0 ++ [cat]
+ in
+ unwords $ [init fun, ":"] ++ intersperse "->" cats1 ++ cats2
+ _ -> line
+ \ No newline at end of file
diff --git a/old-examples/CLE/English.cf b/old-examples/CLE/English.cf
new file mode 100644
index 000000000..a267736e1
--- /dev/null
+++ b/old-examples/CLE/English.cf
@@ -0,0 +1,194 @@
+-- SLT book, chapter 9
+
+-- p. 164
+
+utterance_phrase. UTTERANCE ::= PHRASE ;
+utterance_conj_phrase. UTTERANCE ::= CONJ PHRASE ;
+utterance_whatabout. UTTERANCE ::= "what" "about" PHRASE ;
+utterance_howabout. UTTERANCE ::= "how" "about" PHRASE ;
+
+phrase_pp. PHRASE ::= PP ;
+phrase_advp. PHRASE ::= ADVP ;
+phrase_np. PHRASE ::= NP ;
+
+utterance_s_imp. UTTERANCE ::= S_imp ;
+utterance_s_moved. UTTERANCE ::= S_moved ;
+utterance_s_q. UTTERANCE ::= S_q ;
+utterance_s_norm_inv. UTTERANCE ::= S_norm_inv ;
+utterance_s_norm. UTTERANCE ::= S_norm ;
+
+-- p. 162
+
+s_norm_NP_VP. S_norm ::= NP_norm VP ; -- these 3 are 1 in CLE
+s_q_NP_VP. S_q ::= NP_q VP ;
+s_r_NP_VP. S_r ::= NP_r VP ;
+
+s_imp_NP_VP. S_imp ::= NP_imp VP ;
+
+s_advp_s. S ::= ADVP_sent S ;
+s_s_advp. S ::= S ADVP_sent ;
+s_conj_s. S ::= S CONJ S ;
+
+-- p. 163: 6 wh-move-rules
+
+-- p. 160
+
+vp_vp_pp. VP ::= VP PP ;
+vp_vp_advp. VP ::= VP ADVP ;
+vp_advp_vp. VP ::= ADVP VP ;
+advp_vp_ing. ADVP ::= VP_ing ;
+advp_vp_to. ADVP ::= VP_to ;
+vp_conj_vp. VP ::= VP CONJ VP ;
+vp_not_vp. VP ::= "not" VP ;
+
+np_gaps. NP_gaps ::= ;
+pp_gaps. PP_gaps ::= ;
+adjp_gaps. ADJP_gaps ::= ;
+advp_gaps. ADVP_gaps ::= ;
+
+-- p. 157
+
+vp_be_comp. VP ::= V_be COMP ; -- 1 rule VP ::= V COMPS
+vp_tr. VP ::= V_tr NP ;
+vp_ditr. VP ::= V_ditr NP NP ;
+vp_intr. VP ::= V_intr ;
+vp_mod. VP ::= V_mod VP ; -- would, could, can, may, will
+vp_do. VP ::= V_do VP ;
+vp_be_pass. VP ::= V_be VP_pass ;
+vp_be_ing. VP ::= V_be VP_ing ;
+vp_part. VP ::= V_part ; -- particle verb
+vp_s. VP ::= V_s S ;
+vp_vp_to. VP ::= V_vp VP_to ; -- "how much does it cost to fly..."
+vp_ditrq. VP ::= V_ditrq NP S_q ;
+vp_ditrpp. VP ::= V_ditrpp NP PP ;
+vp_trq. VP ::= V_trq S_q ;
+
+-- p. 159
+
+comp_np. COMP ::= NP ;
+comp_adjp. COMP ::= ADJP ;
+comp_pp. COMP ::= PP ;
+
+-- p. 156
+
+pp_pp. PP ::= PP PP ; -- big PP --- unnecessary ambiguity?
+
+pp_p_np. PP ::= P NP ;
+pp_np_temporal. PP ::= NP_temporal ;
+pp_name_p_name. PP ::= NP_name P NP_name ; -- Baltimore to Philadelpia
+pp_conj_pp. PP ::= PP CONJ PP ;
+
+-- p. 157; the numeral rules are not shown
+
+number_digit. NUMBER ::= DIGIT ; --- and more
+ordinal_first. ORDINAL ::= "first" ; --- and more
+code_digit. CODE ::= DIGIT ;
+code_digit_code. CODE ::= DIGIT CODE ;
+
+digit_1. DIGIT ::= "one" ;
+digit_2. DIGIT ::= "two" ;
+digit_3. DIGIT ::= "three" ;
+digit_4. DIGIT ::= "four" ;
+digit_5. DIGIT ::= "five" ;
+digit_6. DIGIT ::= "six" ;
+digit_7. DIGIT ::= "seven" ;
+digit_8. DIGIT ::= "eight" ;
+digit_9. DIGIT ::= "nine" ;
+digit_0. DIGIT ::= "zero" ;
+
+-- p. 154 "recursive NPs"
+
+np_np_pp. NP ::= NP PP ;
+np_np_rel. NP ::= NP REL ;
+
+np_np_vp_ing. NP ::= NP VP_ing ; -- these 2 are 1 with \/
+np_np_vp_pass. NP ::= NP VP_pass ;
+
+np_np_adjp. NP ::= NP ADJP_post ; --- restr. acc to text
+
+rel_s_rel. REL ::= S_r ;
+rel_s_norm. REL ::= S_normal_gap ; --- type normal=norm ??
+--- they cannot be showing their real code here
+
+adjp_nocomp. ADJP ::= ADJ_nocomp ; -- ADJP ::= ADJ COMPS
+adjp_pp. ADJP ::= ADJ_pp PP ; -- only "available" in corpus
+
+np_conj_np. NP ::= NP CONJ NP ; --- curious analysis of conj lists...
+np_np_np. NP ::= NP NP ; -- Boston Atlanta and Denver
+
+s_vp_inf. S_norm ::= VP_inf ; -- "to get from X to Y (is...)"
+np_s_q. NP ::= S_q ; -- "what city they stop in (is...)"
+np_s_norm. NP ::= S_norm ;
+np_compl_s. NP ::= COMPLEMENTISER S_norm ; --- they don't tell what CO... is
+
+np_np_code. NP ::= NP CODE ; --- unnec. source of ambiguity
+
+
+-- p. 150
+
+np_det_nbar. NP ::= DET NBAR ;
+np_nbar. NP ::= NBAR ; -- "information", "travel arrangements"
+
+nbar_adjp_nbar. NBAR ::= ADJP NBAR ;
+nbar_nbar_nbar. NBAR ::= NBAR NBAR ; --- unnec. ambiguity
+nbar_name_nbar. NBAR ::= NP_name NBAR ; -- "Delta flights"
+nbar_conj_nbar. NBAR ::= NBAR CONJ NBAR ;
+
+adjp_most_adj. ADJP ::= "most" ADJ ;
+adjp_least_adj. ADJP ::= "least" ADJ ;
+ordinal_adjp_superl. ORDINAL ::= ADJP_superlative ;
+
+det_the_ordinal. DET ::= "the" ORDINAL ;
+det_ordinal. DET ::= ORDINAL ; -- common in spoken language
+det_predet_det. DET ::= PREDET DET ;
+det_numer. DET ::= NUMBER ; --- NUMBER in book
+det_less_than. DET ::= "less" "than" NUMBER ; --- NUMBER
+det_more_than. DET ::= "more" "than" NUMBER ; --- NUMBER
+det_possessive. DET ::= POSSESSIVE ;
+
+
+-- p. 152 time and date NPs not given
+
+np_code. NP ::= CODE ;
+np_nbar_code. NP ::= NBAR CODE ;
+
+--- CODE ::= NUMBER already covered above
+-- letter codes added from corpus
+
+np_det. NP ::= DET_bare ; -- any, which, one, both, the same, the latest,...
+
+nbar_comp. NBAR ::= NBAR_of "of" NBAR ; -- only ex of NBAR COMP; (kind | type) of plane
+
+
+-- lexicon; picked from examples and explanations
+
+possessive_my. POSSESSIVE ::= "my" ;
+
+predet_all. PREDET ::= "all" ;
+predet_only. PREDET ::= "only" ;
+predet_just. PREDET ::= "just" ;
+
+nbar_flight. NBAR ::= "flight" ;
+nbar_aircraft. NBAR ::= "aircraft" ;
+
+name_Delta. NP_name ::= "Delta" ;
+name_Dallas. NP_name ::= "Dallas" ;
+name_Boston. NP_name ::= "Boston" ;
+
+conj_and. CONJ ::= "and" ;
+
+det_any. DET_bare ::= "any" ;
+
+v_is. V_be ::= "is" ;
+v_leave. V_intr ::= "leaves" ;
+v_have. V_tr ::= "has" ;
+
+nbar_of_type. NBAR_of ::= "type" ;
+
+adj_cheap. ADJ ::= "cheap" ;
+
+
+--- ad hoc coercions to make cf grammar work
+
+det_bare. DET ::= DET_bare ;
+
diff --git a/old-examples/CLE/QLF.gf b/old-examples/CLE/QLF.gf
new file mode 100644
index 000000000..3ebca9e06
--- /dev/null
+++ b/old-examples/CLE/QLF.gf
@@ -0,0 +1,269 @@
+abstract QLF = {
+
+-- by CF2GF
+
+fun
+-- SLT book, chapter 9
+
+-- p. 164
+
+utterance_phrase : PHRASE -> UTTERANCE ;
+utterance_conj_phrase : CONJ -> PHRASE -> UTTERANCE ;
+utterance_whatabout : PHRASE -> UTTERANCE ;
+utterance_howabout : PHRASE -> UTTERANCE ;
+
+phrase_pp : PP -> PHRASE ;
+phrase_advp : ADVP -> PHRASE ;
+phrase_np : NP -> PHRASE ;
+
+utterance_s_imp : S_imp -> UTTERANCE ;
+utterance_s_moved : S_moved -> UTTERANCE ;
+utterance_s_q : S_q -> UTTERANCE ;
+utterance_s_norm_inv : S_norm_inv -> UTTERANCE ;
+utterance_s_norm : S_norm -> UTTERANCE ;
+
+-- p. 162
+
+s_norm_NP_VP : NP_norm -> VP -> S_norm ; -- these 3 are 1 in CLE
+s_q_NP_VP : NP_q -> VP -> S_q ;
+s_r_NP_VP : NP_r -> VP -> S_r ;
+
+s_imp_NP_VP : NP_imp -> VP -> S_imp ;
+
+s_advp_s : ADVP_sent -> S -> S ;
+s_s_advp : S -> ADVP_sent -> S ;
+s_conj_s : S -> CONJ -> S -> S ;
+
+-- p. 163: 6 wh-move-rules
+
+-- p. 160
+
+vp_vp_pp : VP -> PP -> VP ;
+vp_vp_advp : VP -> ADVP -> VP ;
+vp_advp_vp : ADVP -> VP -> VP ;
+advp_vp_ing : VP_ing -> ADVP ;
+advp_vp_to : VP_to -> ADVP ;
+vp_conj_vp : VP -> CONJ -> VP -> VP ;
+vp_not_vp : VP -> VP ;
+
+np_gaps : NP_gaps ;
+pp_gaps : PP_gaps ;
+adjp_gaps : ADJP_gaps ;
+advp_gaps : ADVP_gaps ;
+
+-- p. 157
+
+vp_be_comp : V_be -> COMP -> VP ; -- 1 rule VP ::= V COMPS
+vp_tr : V_tr -> NP -> VP ;
+vp_ditr : V_ditr -> NP -> NP -> VP ;
+vp_intr : V_intr -> VP ;
+vp_mod : V_mod -> VP -> VP ; -- would, could, can, may, will
+vp_do : V_do -> VP -> VP ;
+vp_be_pass : V_be -> VP_pass -> VP ;
+vp_be_ing : V_be -> VP_ing -> VP ;
+vp_part : V_part -> VP ; -- particle verb
+vp_s : V_s -> S -> VP ;
+vp_vp_to : V_vp -> VP_to -> VP ; -- "how much does it cost to fly..."
+vp_ditrq : V_ditrq -> NP -> S_q -> VP ;
+vp_ditrpp : V_ditrpp -> NP -> PP -> VP ;
+vp_trq : V_trq -> S_q -> VP ;
+
+-- p. 159
+
+comp_np : NP -> COMP ;
+comp_adjp : ADJP -> COMP ;
+comp_pp : PP -> COMP ;
+
+-- p. 156
+
+pp_pp : PP -> PP -> PP ; -- big PP --- unnecessary ambiguity?
+
+pp_p_np : P -> NP -> PP ;
+pp_np_temporal : NP_temporal -> PP ;
+pp_name_p_name : NP_name -> P -> NP_name -> PP ; -- Baltimore to Philadelpia
+pp_conj_pp : PP -> CONJ -> PP -> PP ;
+
+-- p. 157; the numeral rules are not shown
+
+number_digit : DIGIT -> NUMBER ; --- and more
+ordinal_first : ORDINAL ; --- and more
+code_digit : DIGIT -> CODE ;
+code_digit_code : DIGIT -> CODE -> CODE ;
+
+digit_1 : DIGIT ;
+digit_2 : DIGIT ;
+digit_3 : DIGIT ;
+digit_4 : DIGIT ;
+digit_5 : DIGIT ;
+digit_6 : DIGIT ;
+digit_7 : DIGIT ;
+digit_8 : DIGIT ;
+digit_9 : DIGIT ;
+digit_0 : DIGIT ;
+
+-- p. 154 "recursive NPs"
+
+np_np_pp : NP -> PP -> NP ;
+np_np_rel : NP -> REL -> NP ;
+
+np_np_vp_ing : NP -> VP_ing -> NP ; -- these 2 are 1 with \/
+np_np_vp_pass : NP -> VP_pass -> NP ;
+
+np_np_adjp : NP -> ADJP_post -> NP ; --- restr. acc to text
+
+rel_s_rel : S_rel -> REL ;
+rel_s_norm : S_normal_gap -> REL ; --- type normal=norm ??
+--- they cannot be showing their real code here
+
+adjp_nocomp : ADJ_nocomp -> ADJP ; -- ADJP ::= ADJ COMPS
+adjp_np : ADJ_pp -> NP -> ADJP ; -- only "available" in corpus
+-- adjp_pp : ADJ_pp -> PP -> ADJP ; -- only "available" in corpus
+
+np_conj_np : NP -> CONJ -> NP -> NP ; --- curious analysis of conj lists...
+np_np_np : NP -> NP -> NP ; -- Boston Atlanta and Denver
+
+s_vp_inf : VP_inf -> S_norm ; -- "to get from X to Y (is...)"
+np_s_q : S_q -> NP ; -- "what city they stop in (is...)"
+np_s_norm : S_norm -> NP ;
+np_compl_s : COMPLEMENTISER -> S_norm -> NP ; --- they don't tell what CO... is
+
+np_np_code : NP -> CODE -> NP ; --- unnec. source of ambiguity
+
+
+-- p. 150
+
+np_det_nbar : DET -> NBAR -> NP ;
+np_nbar : NBAR -> NP ; -- "information", "travel arrangements"
+
+nbar_adjp_nbar : ADJP -> NBAR -> NBAR ;
+nbar_nbar_nbar : NBAR -> NBAR -> NBAR ; --- unnec. ambiguity
+nbar_name_nbar : NP_name -> NBAR -> NBAR ; -- "Delta flights"
+nbar_conj_nbar : NBAR -> CONJ -> NBAR -> NBAR ;
+
+adjp_most_adj : ADJ -> ADJP ;
+adjp_least_adj : ADJ -> ADJP ;
+ordinal_adjp_superl : ADJP_superlative -> ORDINAL ;
+
+det_the_ordinal : ORDINAL -> DET ;
+det_ordinal : ORDINAL -> DET ; -- common in spoken language
+det_predet_det : PREDET -> DET -> DET ;
+det_numer : NUMBER -> DET ; --- NUMBER in book
+det_less_than : NUMBER -> DET ; --- NUMBER
+det_more_than : NUMBER -> DET ; --- NUMBER
+det_possessive : POSSESSIVE -> DET ;
+
+
+-- p. 152 time and date NPs not given
+
+np_code : CODE -> NP ;
+np_nbar_code : NBAR -> CODE -> NP ;
+
+-- : NUMBER -> already -> covered -> above -> CODE
+-- letter codes added from corpus
+
+np_det : DET_bare -> NP ; -- any, which, one, both, the same, the latest,...
+
+nbar_comp : NBAR_of -> NBAR -> NBAR ; -- only ex of NBAR COMP; (kind | type) of plane
+
+-- by pg -printer=gf
+
+ cat ADJ ;
+ cat ADJP ;
+ cat ADJP_gaps ;
+ cat ADJP_post ;
+ cat ADJP_superlative ;
+ cat ADJ_nocomp ;
+ cat ADJ_pp ;
+ cat ADVP ;
+ cat ADVP_gaps ;
+ cat ADVP_sent ;
+ cat CODE ;
+ cat COMP ;
+ cat COMPLEMENTISER ;
+ cat CONJ ;
+ cat DET ;
+ cat DET_bare ;
+ cat DIGIT ;
+ cat NBAR ;
+ cat NBAR_of ;
+ cat NP ;
+ cat NP_gaps ;
+ cat NP_imp ;
+ cat NP_name ;
+ cat NP_norm ;
+ cat NP_q ;
+ cat NP_r ;
+ cat NP_temporal ;
+ cat NUMBER ;
+ cat ORDINAL ;
+ cat P ;
+ cat PHRASE ;
+ cat POSSESSIVE ;
+ cat PP ;
+ cat PP_gaps ;
+ cat PREDET ;
+ cat REL ;
+ cat S ;
+ cat S_imp ;
+ cat S_moved ;
+ cat S_norm ;
+ cat S_norm_inv ;
+ cat S_normal_gap ;
+ cat S_q ;
+ cat S_r ;
+ cat S_rel ;
+ cat UTTERANCE ;
+ cat VP ;
+ cat VP_inf ;
+ cat VP_ing ;
+ cat VP_pass ;
+ cat VP_to ;
+ cat V_be ;
+ cat V_ditr ;
+ cat V_ditrpp ;
+ cat V_ditrq ;
+ cat V_do ;
+ cat V_intr ;
+ cat V_mod ;
+ cat V_part ;
+ cat V_s ;
+ cat V_tr ;
+ cat V_trq ;
+ cat V_vp ;
+
+
+{-
+-- lexicon; picked from examples and explanations
+
+possessive_my : POSSESSIVE ;
+
+predet_all : PREDET ;
+predet_only : PREDET ;
+predet_just : PREDET ;
+
+nbar_flight : NBAR ;
+nbar_aircraft : NBAR ;
+
+name_Delta : NP_name ;
+name_Dallas : NP_name ;
+name_Boston : NP_name ;
+
+conj_and : CONJ ;
+
+det_any : DET_bare ;
+
+v_is : V_be ;
+v_leave : V_intr ;
+v_have : V_tr ;
+
+nbar_of_type : NBAR_of ;
+
+adj_cheap : ADJ ;
+
+
+--- ad hoc coercions to make cf grammar work
+
+det_bare : DET_bare -> DET ;
+-}
+
+} \ No newline at end of file
diff --git a/old-examples/CLE/QLFEng.gf b/old-examples/CLE/QLFEng.gf
new file mode 100644
index 000000000..192f051b1
--- /dev/null
+++ b/old-examples/CLE/QLFEng.gf
@@ -0,0 +1,268 @@
+--# -path=resource/abstract:resource/english:prelude
+
+concrete QLFEng of QLF = open ResourceEng, VerbphraseEng in {
+
+-- by CF2GF
+
+lin
+-- SLT book, chapter 9
+
+-- p. 164
+
+utterance_phrase p = p ;
+----utterance_conj_phrase : CONJ -> Phrase -> UTTERANCE ;
+----utterance_whatabout : PHRASE -> UTTERANCE ;
+----utterance_howabout : PHRASE -> UTTERANCE ;
+
+----phrase_pp : PP -> PHRASE ;
+----phrase_advp : ADVP -> PHRASE ;
+phrase_np = PhrNP ;
+
+utterance_s_imp = ImperMany ; --- ImperOne
+utterance_s_moved = QuestPhrase ;
+utterance_s_q = QuestPhrase ;
+----utterance_s_norm_inv = QuestPhrase ;
+utterance_s_norm = IndicPhrase ;
+
+-- p. 162
+
+s_norm_NP_VP np vp = UseCl (PosTP TPresent ASimul) (PredVP np vp) ;
+s_q_NP_VP ip vp = UseQCl (PosTP TPresent ASimul) (IntVP ip vp) ;
+s_r_NP_VP rp vp = UseRCl (PosTP TPresent ASimul) (RelVP rp vp) ;
+
+----s_imp_NP_VP npimp = PosImpVP ;
+
+---- s_advp_s : ADVP_sent -> S -> S ;
+---- s_s_advp : S -> ADVP_sent -> S ; -- AdvCl : Cl -> Adv -> Cl ;
+s_conj_s a conj b = ConjS and_Conj (TwoS a b) ;
+
+-- p. 163: 6 wh-move-rules
+
+-- p. 160
+
+---- vp_vp_pp : VP -> PP -> VP ;
+---- vp_vp_advp : VP -> ADVP -> VP ;
+---- vp_advp_vp : ADVP -> VP -> VP ;
+---- advp_vp_ing : VP_ing -> ADVP ;
+---- advp_vp_to : VP_to -> ADVP ;
+---- vp_conj_vp : VP -> CONJ -> VP -> VP ;
+---- vp_not_vp : VP -> VP ;
+
+--np_gaps : NP_gaps ;
+--pp_gaps : PP_gaps ;
+--adjp_gaps : ADJP_gaps ;
+--advp_gaps : ADVP_gaps ;
+
+-- p. 157
+
+---- vp_be_comp : V_be -> COMP -> VP ; -- 1 rule VP ::= V COMPS
+vp_tr = ComplV2 ;
+vp_ditr = ComplV3 ;
+vp_intr = UseV ;
+vp_mod vv vp = ComplVV vv (UseVCl PNeg ASimul (UseVP vp)) ;
+-- vp_do : V_do -> VP -> VP ;
+---- vp_be_pass : V_be -> VP_pass -> VP ; -- UsePassV : V -> VP ;
+---- vp_be_ing : V_be -> VP_ing -> VP ;
+-- vp_part : V_part -> VP ; -- particle verb
+vp_s = ComplVS ;
+---- vp_vp_to : V_vp -> VP_to -> VP ; -- "how much does it cost to fly..."
+vp_ditrq = ComplV2Q ;
+-- vp_ditrpp : V_ditrpp -> NP -> PP -> VP ;
+vp_trq = ComplVQ ;
+
+-- p. 159
+
+---- comp_np : NP -> COMP ;
+---- comp_adjp : ADJP -> COMP ;
+---- comp_pp : PP -> COMP ;
+
+-- p. 156
+
+---- pp_pp : PP -> PP -> PP ; -- big PP --- unnecessary ambiguity?
+
+pp_p_np = PrepNP ;
+---- pp_np_temporal : NP_temporal -> PP ;
+---- pp_name_p_name : NP_name -> P -> NP_name -> PP ; -- Baltimore to Philadelpia
+---- pp_conj_pp : PP -> CONJ -> PP -> PP ;
+
+-- p. 157; the numeral rules are not shown
+{-
+number_digit : DIGIT -> NUMBER ; --- and more
+ordinal_first : ORDINAL ; --- and more
+code_digit : DIGIT -> CODE ;
+code_digit_code : DIGIT -> CODE -> CODE ;
+
+digit_1 : DIGIT ;
+digit_2 : DIGIT ;
+digit_3 : DIGIT ;
+digit_4 : DIGIT ;
+digit_5 : DIGIT ;
+digit_6 : DIGIT ;
+digit_7 : DIGIT ;
+digit_8 : DIGIT ;
+digit_9 : DIGIT ;
+digit_0 : DIGIT ;
+-}
+-- p. 154 "recursive NPs"
+
+np_np_pp np pp = AdvNP np (AdvPP pp) ;
+---- np_np_rel : NP -> REL -> NP ;
+
+---- np_np_vp_ing : NP -> VP_ing -> NP ; -- these 2 are 1 with \/
+---- np_np_vp_pass : NP -> VP_pass -> NP ; --- AdjPart : V -> A
+
+---- np_np_adjp : NP -> ADJP_post -> NP ; --- restr. acc to text
+
+-- rel_s_rel : S_r -> REL ;
+rel_s_norm s = UseRCl (PosTP TPresent ASimul) (RelSlash IdRP s) ;
+--- they cannot be showing their real code here
+
+adjp_nocomp = UseA ;
+adjp_np = ComplA2 ;
+
+np_conj_np x conj y = ConjNP conj (TwoNP x y) ;
+-- np_np_np : NP -> NP -> NP ; -- Boston Atlanta and Denver
+
+---- s_vp_inf : VP_inf -> S_norm ; -- "to get from X to Y (is...)"
+---- np_s_q : S_q -> NP ; -- "what city they stop in (is...)"
+---- np_s_norm : S_norm -> NP ;
+---- np_compl_s : COMPLEMENTISER -> S_norm -> NP ; --- they don't tell what CO... is
+
+---- np_np_code : NP -> CODE -> NP ; --- unnec. source of ambiguity
+
+
+-- p. 150
+
+np_det_nbar = DetNP ;
+np_nbar = MassNP ; --- also pl. "travel arrangements"
+
+nbar_adjp_nbar = ModAP ;
+---- nbar_nbar_nbar : NBAR -> NBAR -> NBAR ; --- unnec. ambiguity
+---- nbar_name_nbar : NP_name -> NBAR -> NBAR ; -- "Delta flights"
+---- nbar_conj_nbar : NBAR -> CONJ -> NBAR -> NBAR ;
+
+adjp_most_adj = SuperlADeg ;
+---- adjp_least_adj : ADJ -> ADJP ;
+---- ordinal_adjp_superl : ADJP_superlative -> ORDINAL ;
+
+---- det_the_ordinal : ORDINAL -> DET ;
+---- det_ordinal : ORDINAL -> DET ; -- common in spoken language
+---- det_predet_det : PREDET -> DET -> DET ;
+---- det_numer : NUMBER -> DET ; --- NUMBER in book
+---- det_less_than : NUMBER -> DET ; --- NUMBER
+---- det_more_than : NUMBER -> DET ; --- NUMBER
+---- det_possessive : POSSESSIVE -> DET ;
+
+
+-- p. 152 time and date NPs not given
+
+---- np_code : CODE -> NP ;
+---- np_nbar_code : NBAR -> CODE -> NP ;
+
+-- : NUMBER -> already -> covered -> above -> CODE
+-- letter codes added from corpus
+
+---- np_det : DET_bare -> NP ; -- any, which, one, both, the same, the latest,...
+
+---- nbar_comp : NBAR_of -> NBAR -> NBAR ; -- only ex (kind | type) of plane
+
+lincat
+ ADJ = ADeg ;
+ ADJP = AP ;
+-- ADJP_gaps ;
+-- ADJP_post ;
+-- ADJP_superlative ;
+ ADJ_nocomp = A ;
+ ADJ_pp = A2 ;
+ ADVP = Adv ;
+-- ADVP_gaps ;
+ ADVP_sent = AdC ;
+---- CODE = String ;
+---- COMP ; NP ADJP PP
+-- COMPLEMENTISER ;
+ CONJ = Conj ;
+ DET = Det ;
+---- DET_bare ;
+-- DIGIT ;
+ NBAR = CN ;
+ NBAR_of = N2 ;
+ NP = NP ;
+-- NP_gaps ;
+-- NP_imp ;
+ NP_name = PN ;
+ NP_norm = NP ;
+ NP_q = IP ;
+ NP_r = RP ;
+ NP_temporal = NP ;
+ NUMBER = Numeral ;
+ ORDINAL = A ;
+ P = Prep ;
+ PHRASE = Phr ;
+-- POSSESSIVE ;
+ PP = PP ;
+-- PP_gaps ;
+---- PREDET ;
+ REL = RS ;
+ S = S ;
+ S_imp = Imp ;
+ S_moved = QS ;
+ S_norm = S ;
+-- S_norm_inv ;
+ S_normal_gap = Slash ;
+ S_q = QS ;
+ S_r = RS ;
+ UTTERANCE = Phr ;
+ VP = VP ;
+ VP_inf = VPI ;
+-- VP_ing ;
+-- VP_pass ;
+-- VP_to ;
+-- V_be ;
+ V_ditr = V3 ;
+ V_ditrpp = V3 ;
+ V_ditrq = V2Q ;
+-- V_do ;
+ V_intr = V ;
+ V_mod = VV ;
+ V_part = V ;
+ V_s = VS ;
+ V_tr = V2 ;
+ V_trq = VQ ;
+ V_vp = VV ;
+
+
+{-
+-- lexicon; picked from examples and explanations
+
+possessive_my : POSSESSIVE ;
+
+predet_all : PREDET ;
+predet_only : PREDET ;
+predet_just : PREDET ;
+
+nbar_flight : NBAR ;
+nbar_aircraft : NBAR ;
+
+name_Delta : NP_name ;
+name_Dallas : NP_name ;
+name_Boston : NP_name ;
+
+conj_and : CONJ ;
+
+det_any : DET_bare ;
+
+v_is : V_be ;
+v_leave : V_intr ;
+v_have : V_tr ;
+
+nbar_of_type : NBAR_of ;
+
+adj_cheap : ADJ ;
+
+
+--- ad hoc coercions to make cf grammar work
+
+det_bare : DET_bare -> DET ;
+-}
+
+} \ No newline at end of file