lib examples numbered, some more added

This commit is contained in:
aarne
2007-06-03 08:07:16 +00:00
parent 0a3cf11859
commit 01840d027d
3 changed files with 111 additions and 57 deletions

View File

@@ -64,23 +64,23 @@ incomplete resource Constructors = open Grammar in {
oper
mkText : overload {
mkText : Phr -> Text ; -- But John walks.
mkText : Phr -> (Punct) -> (Text) -> Text ; -- John walks? Yes.
mkText : Phr -> Text ; -- 1. But John walks.
mkText : Phr -> (Punct) -> (Text) -> Text ; -- 2. John walks? Yes.
-- A text can also be directly built from utterances, which in turn can
-- be directly built from sentences, present-tense clauses, questions, or
-- positive imperatives.
mkText : Utt -> Text ; -- John.
mkText : S -> Text ; -- John walked.
mkText : Cl -> Text ; -- John walks.
mkText : QS -> Text ; -- Did John walk?
mkText : Imp -> Text -- Walk!
mkText : Utt -> Text ; -- 3. John.
mkText : S -> Text ; -- 4. John walked.
mkText : Cl -> Text ; -- 5. John walks.
mkText : QS -> Text ; -- 6. Did John walk?
mkText : Imp -> Text -- 7. Walk!
} ;
-- A text can also be empty.
emptyText : Text ; -- [empty text]
emptyText : Text ; -- 8. [empty text]
--3 Punct: punctuation marks
@@ -97,17 +97,17 @@ incomplete resource Constructors = open Grammar in {
-- and a vocative, both of which are by default empty.
mkPhr : overload {
mkPhr : Utt -> Phr ; -- why
mkPhr : (PConj) -> Utt -> (Voc) -> Phr ; -- but why John
mkPhr : Utt -> Phr ; -- 1. why
mkPhr : (PConj) -> Utt -> (Voc) -> Phr ; -- 2. but why John
-- A phrase can also be directly built by a sentence, a present-tense
-- clause, a question, or a positive singular imperative.
mkPhr : S -> Phr ; -- John walked
mkPhr : Cl -> Phr ; -- John walks
mkPhr : QS -> Phr ; -- did John walk
mkPhr : Imp -> Phr -- walk
mkPhr : S -> Phr ; -- 3. John walked
mkPhr : Cl -> Phr ; -- 4. John walks
mkPhr : QS -> Phr ; -- 5. did John walk
mkPhr : Imp -> Phr -- 6. walk
} ;
--3 PConj, phrasal conjunctions
@@ -115,43 +115,43 @@ incomplete resource Constructors = open Grammar in {
-- Any conjunction can be used as a phrasal conjunction.
-- More phrasal conjunctions are defined in $Structural$.
mkPConj : Conj -> PConj ; -- and
mkPConj : Conj -> PConj ; -- 1. and
--3 Voc, vocatives
-- Any noun phrase can be turned into a vocative.
-- More vocatives are defined in $Structural$.
mkVoc : NP -> Voc ; -- John
mkVoc : NP -> Voc ; -- 1. John
--3 Utt, utterances
-- Utterances are formed from sentences, clauses, questions, and positive singular imperatives.
mkUtt : overload {
mkUtt : S -> Utt ; -- John walked
mkUtt : Cl -> Utt ; -- John walks
mkUtt : QS -> Utt ; -- did John walk
mkUtt : Imp -> Utt ; -- love yourself
mkUtt : S -> Utt ; -- 1. John walked
mkUtt : Cl -> Utt ; -- 2. John walks
mkUtt : QS -> Utt ; -- 3. did John walk
mkUtt : Imp -> Utt ; -- 4. love yourself
-- Imperatives can also vary in $ImpForm$ (number/politeness) and
-- polarity.
mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt ; -- don't love yourselves
mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt ; -- 5. don't love yourselves
-- Utterances can also be formed from interrogative phrases and
-- interrogative adverbials, noun phrases, adverbs, and verb phrases.
mkUtt : IP -> Utt ; -- who
mkUtt : IAdv -> Utt ; -- why
mkUtt : NP -> Utt ; -- John
mkUtt : Adv -> Utt ; -- here
mkUtt : VP -> Utt -- to walk
mkUtt : IP -> Utt ; -- 6. who
mkUtt : IAdv -> Utt ; -- 7. why
mkUtt : NP -> Utt ; -- 8. John
mkUtt : Adv -> Utt ; -- 9. here
mkUtt : VP -> Utt -- 10. to walk
} ;
-- The plural first-person imperative is a special construction.
lets_Utt : VP -> Utt ; -- let's walk
lets_Utt : VP -> Utt ; -- 11. let's walk
--2 Auxiliary parameters for phrases and sentences
@@ -202,20 +202,20 @@ incomplete resource Constructors = open Grammar in {
-- A sentence has a fixed tense, anteriority and polarity.
mkS : overload {
mkS : Cl -> S ; -- John walks
mkS : (Tense) -> (Ant) -> (Pol) -> Cl -> S ; -- John wouldn't have walked
mkS : Cl -> S ; -- 1. John walks
mkS : (Tense) -> (Ant) -> (Pol) -> Cl -> S ; -- 2. John wouldn't have walked
-- Sentences can be combined with conjunctions. This can apply to a pair
-- of sentences, but also to a list of more than two.
mkS : Conj -> S -> S -> S ; -- John walks and I run
mkS : Conj -> ListS -> S ; -- John walks, I run and you sleep
mkS : DConj -> S -> S -> S ; -- either John walk or I run
mkS : DConj -> ListS -> S ; -- either John walks, I run or you sleep
mkS : Conj -> S -> S -> S ; -- 3. John walks and I run
mkS : Conj -> ListS -> S ; -- 4. John walks, I run and you sleep
mkS : DConj -> S -> S -> S ; -- 5. either John walk or I run
mkS : DConj -> ListS -> S ; -- 6. either John walks, I run or you sleep
-- A sentence can be prefixed by an adverb.
mkS : Adv -> S -> S -- today, John will walk
mkS : Adv -> S -> S -- 7. today, John walks
} ;
--3 Cl, clauses
@@ -225,42 +225,49 @@ incomplete resource Constructors = open Grammar in {
-- with a verb and appropriate arguments.
mkCl : overload {
mkCl : NP -> V -> Cl ; -- John walks
mkCl : NP -> V2 -> NP -> Cl ; -- John loves her
mkCl : NP -> V3 -> NP -> NP -> Cl ; -- John sends it to her
mkCl : NP -> AP -> Cl ; -- John is nice and warm
mkCl : NP -> A -> Cl ; -- John is nice
mkCl : NP -> A -> NP -> Cl ; -- John is nicer than Mary
mkCl : NP -> A2 -> NP -> Cl ; -- John is married to Mary
mkCl : NP -> NP -> Cl ; -- John is the man
mkCl : NP -> CN -> Cl ; -- John is an old man
mkCl : NP -> N -> Cl ; -- John is a man
mkCl : NP -> Adv -> Cl ; -- John is here
mkCl : NP -> V -> Cl ; -- 1. John walks
mkCl : NP -> V2 -> NP -> Cl ; -- 2. John loves her
mkCl : NP -> V3 -> NP -> NP -> Cl ; -- 3. John sends it to her
mkCl : NP -> VV -> VP -> Cl ; -- 4. John wants to walk
mkCl : NP -> VS -> S -> Cl ; -- 5. John says that it is good
mkCl : NP -> VQ -> QS -> Cl ; -- 6. John wonders if it is good
mkCl : NP -> VA -> AP -> Cl ; -- 7. John becomes old
mkCl : NP -> V2A ->NP -> AP -> Cl ; -- 8. John paints it red
mkCl : NP -> AP -> Cl ; -- 9. John is very old
mkCl : NP -> A -> Cl ; -- 10. John is old
mkCl : NP -> A -> NP -> Cl ; -- 11. John is older than her
mkCl : NP -> A2 -> NP -> Cl ; -- 12. John is married to her
mkCl : NP -> N -> Cl ; -- 13. John is a man
mkCl : NP -> CN -> Cl ; -- 14. John is an old man
mkCl : NP -> NP -> Cl ; -- 15. John is the man
mkCl : NP -> Adv -> Cl ; -- 16. John is here
-- As the general rule, a clause can be built from a subject noun phrase and
-- a verb phrase.
mkCl : NP -> VP -> Cl ; -- John wants to walk
mkCl : NP -> VP -> Cl ; -- 17. John walks here
-- Subjectless verb phrases are used for impersonal actions.
mkCl : V -> Cl ; -- it rains
mkCl : VP -> Cl ; -- it is getting warm
mkCl : V -> Cl ; -- 18. it rains
mkCl : VP -> Cl ; -- 19. it is raining
-- Existentials are a special form of clauses.
mkCl : NP -> Cl ; -- there is a house
mkCl : N -> Cl ; -- 20. there is a house
mkCl : CN -> Cl ; -- 21. there is an old houses
mkCl : NP -> Cl ; -- 22. there are five houses
-- There are also special forms in which a noun phrase or an adverb is
-- emphasized.
mkCl : NP -> RS -> Cl ; -- it is John who walks
mkCl : Adv -> S -> Cl -- it is here John walks
mkCl : NP -> RS -> Cl ; -- 23. it is John that walks
mkCl : Adv -> S -> Cl -- 24. it is here John walks
} ;
-- Generic clauses are one with an impersonal subject.
genericCl : VP -> Cl ; -- one walks
genericCl : VP -> Cl ; -- 25. one walks
--2 Verb phrases and imperatives
@@ -339,10 +346,12 @@ incomplete resource Constructors = open Grammar in {
mkNP : QuantSg -> N -> NP ; -- this man
mkNP : QuantPl -> CN -> NP ; -- these old men
mkNP : QuantPl -> N -> NP ; -- these men
mkNP : Num -> CN -> NP ; -- forty-five old men
mkNP : Num -> N -> NP ; -- forty-five men
mkNP : Numeral -> CN -> NP ; -- forty-five old men
mkNP : Numeral -> N -> NP ; -- forty-five men
mkNP : Int -> CN -> NP ; -- 45 old men
mkNP : Int -> N -> NP ; -- 45 men
mkNP : Num -> CN -> NP ; -- almost forty-five old men
mkNP : Num -> N -> NP ; -- almost forty-five men
mkNP : Pron -> CN -> NP; -- my old man
mkNP : Pron -> N -> NP ; -- my man
@@ -834,12 +843,25 @@ incomplete resource Constructors = open Grammar in {
= \s,v,o -> PredVP s (ComplV2 v o);
mkCl : NP -> V3 -> NP -> NP -> Cl
= \s,v,o,i -> PredVP s (ComplV3 v o i);
mkCl : NP -> VV -> VP -> Cl = \s,v,vp -> PredVP s (ComplVV v vp) ;
mkCl : NP -> VS -> S -> Cl = \s,v,p -> PredVP s (ComplVS v p) ;
mkCl : NP -> VQ -> QS -> Cl = \s,v,q -> PredVP s (ComplVQ v q) ;
mkCl : NP -> VA -> AP -> Cl = \s,v,q -> PredVP s (ComplVA v q) ;
mkCl : NP -> V2A ->NP -> AP -> Cl = \s,v,n,q -> PredVP s (ComplV2A v n q) ;
mkCl : VP -> Cl -- it rains
= ImpersCl ;
mkCl : NP -> RS -> Cl -- it is you who did it
= CleftNP ;
mkCl : Adv -> S -> Cl -- it is yesterday she arrived
= CleftAdv ;
mkCl : N -> Cl -- there is a house
= \y -> ExistNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (UseN y)) ;
mkCl : CN -> Cl -- there is a house
= \y -> ExistNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) y) ;
mkCl : NP -> Cl -- there is a house
= ExistNP ;
mkCl : NP -> AP -> Cl -- John is nice and warm
@@ -882,6 +904,10 @@ incomplete resource Constructors = open Grammar in {
mkNP : Pron -> CN -> NP = \p,n -> DetCN (DetSg (SgQuant (PossPron p)) NoOrd) n ;
mkNP : Pron -> N -> NP = \p,n -> DetCN (DetSg (SgQuant (PossPron p)) NoOrd) (UseN n) ;
mkNP : Numeral -> CN -> NP -- 51 old men
= \d,n -> DetCN (DetPl (PlQuant IndefArt) (NumNumeral d) NoOrd) n ;
mkNP : Numeral -> N -> NP -- 51 men
= \d,n -> DetCN (DetPl (PlQuant IndefArt) (NumNumeral d) NoOrd) (UseN n) ;
mkNP : Int -> CN -> NP -- 51 old men
= \d,n -> DetCN (DetPl (PlQuant IndefArt) (NumInt d) NoOrd) n ;
mkNP : Int -> N -> NP -- 51 men

View File

@@ -14,8 +14,9 @@ fun
ex1_S, ex2_S, ex3_S, ex4_S, ex5_S, ex6_S, ex7_S : S ;
ex1_Cl, ex2_Cl, ex3_Cl, ex4_Cl, ex5_Cl, ex6_Cl, ex7_Cl, ex8_Cl, ex8_Cl, ex10_Cl,
ex11_Cl, ex12_Cl, ex13_Cl, ex14_Cl, ex15_Cl, ex16_Cl, ex17_Cl, ex18_Cl : Cl ;
ex1_Cl, ex2_Cl, ex3_Cl, ex4_Cl, ex5_Cl, ex6_Cl, ex7_Cl, ex8_Cl, ex9_Cl, ex10_Cl,
ex11_Cl, ex12_Cl, ex13_Cl, ex14_Cl, ex15_Cl, ex16_Cl, ex17_Cl, ex18_Cl, ex19_Cl, ex20_Cl,
ex21_Cl, ex22_Cl, ex23_Cl, ex24_Cl, ex25_Cl : Cl ;
}

View File

@@ -41,10 +41,37 @@ incomplete concrete ExxI of Exx = Cat ** open Lang, Constructors in {
ex4_S = mkS and_Conj (mkListS (mkS (mkCl john_NP walk_V)) (mkListS (mkS (mkCl (mkNP i_Pron) run_V)) (mkS (mkCl (mkNP youSg_Pron) sleep_V)))) ;
ex5_S = mkS either7or_DConj (mkS (mkCl john_NP walk_V)) (mkS (mkCl (mkNP i_Pron) run_V)) ;
ex6_S = mkS either7or_DConj (mkListS (mkS (mkCl john_NP walk_V)) (mkListS (mkS (mkCl (mkNP i_Pron) run_V)) (mkS (mkCl (mkNP youSg_Pron) sleep_V)))) ;
ex7_S = mkS today_Adv (mkS futureTense (mkCl john_NP walk_V)) ;
ex1_Cl = mkCl john_NP walk_V ;
ex2_Cl = mkCl john_NP love_V2 (mkNP she_Pron) ;
ex3_Cl = mkCl john_NP send_V3 (mkNP it_Pron) (mkNP she_Pron) ;
ex4_Cl = mkCl john_NP want_VV (mkVP walk_V) ;
ex5_Cl = mkCl john_NP say_VS (mkS (mkCl (mkNP it_Pron) good_A)) ;
ex6_Cl = mkCl john_NP wonder_VQ (mkQS (mkCl (mkNP it_Pron) good_A)) ;
ex7_Cl = mkCl john_NP become_VA (mkAP old_A) ;
ex8_Cl = mkCl john_NP paint_V2A (mkNP it_Pron) (mkAP red_A) ;
ex9_Cl = mkCl john_NP (mkAP very_AdA (mkAP old_A)) ;
ex10_Cl = mkCl john_NP old_A ;
ex11_Cl = mkCl john_NP old_A (mkNP she_Pron) ;
ex12_Cl = mkCl john_NP married_A2 (mkNP she_Pron) ;
ex13_Cl = mkCl john_NP man_N ;
ex14_Cl = mkCl john_NP (mkCN old_A man_N) ;
ex15_Cl = mkCl john_NP (mkNP defSgDet man_N) ;
ex16_Cl = mkCl john_NP here_Adv ;
ex17_Cl = mkCl john_NP (mkVP (mkVP walk_V) here_Adv) ;
ex18_Cl = mkCl rain_V0 ;
ex19_Cl = mkCl (progressiveVP (mkVP rain_V0)) ;
ex20_Cl = mkCl house_N ;
ex21_Cl = mkCl (mkCN old_A house_N) ;
ex22_Cl = mkCl (mkNP n5_Numeral house_N) ;
ex23_Cl = mkCl john_NP (mkRS (mkRCl which_RP (mkVP walk_V))) ;
ex24_Cl = mkCl here_Adv (mkS (mkCl john_NP walk_V)) ;
ex25_Cl = mkCl (mkVP walk_V) ;
oper
john_PN = paris_PN ; ----
today_Adv = here_Adv ; ----
john_NP = mkNP john_PN ;
}