From 2cc65efff8e8905c8babea8de460cffbdba33ac6 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 8 Dec 2011 14:04:42 +0000 Subject: [PATCH] adjustments in Phrasebook and synopsis --- examples/phrasebook/SentencesTha.gf | 4 + examples/phrasebook/WordsTha.gf | 16 +- examples/phrasebook/missing.txt | 2 +- lib/doc/CC_eng_tha.txt | 8 +- lib/doc/Test.hs | 22 ++ lib/doc/api-examples.txt | 2 +- lib/doc/synopsis.html | 393 ++++++++++++++-------------- lib/src/dutch/LexiconDut.gf | 4 +- lib/src/dutch/ParadigmsDut.gf | 3 + lib/src/dutch/ResDut.gf | 2 +- lib/src/thai/CatTha.gf | 7 +- lib/src/thai/LexiconTha.gf | 14 +- lib/src/thai/NounTha.gf | 2 +- lib/src/thai/ParadigmsTha.gf | 8 +- lib/src/thai/StructuralTha.gf | 8 +- lib/src/thai/VerbTha.gf | 12 +- 16 files changed, 271 insertions(+), 236 deletions(-) create mode 100644 lib/doc/Test.hs diff --git a/examples/phrasebook/SentencesTha.gf b/examples/phrasebook/SentencesTha.gf index 2e2aebe09..ea5d7fbe9 100644 --- a/examples/phrasebook/SentencesTha.gf +++ b/examples/phrasebook/SentencesTha.gf @@ -1,6 +1,7 @@ concrete SentencesTha of Sentences = NumeralTha ** SentencesI - [ PGreetingMale, PGreetingFemale, GObjectPlease, + IMale, YouFamMale, YouFamFemale, ACitizen ] with (Syntax = SyntaxTha), @@ -17,6 +18,9 @@ lin ACitizen p n = mkCl p.name (mkVP (mkCN n (P.personN R.khon_s))) ; + IMale = mkPerson (R.mkNP "ผม") ; + YouFamMale, YouFamFemale = mkPerson (R.mkNP "เธอ") ; + oper thpron = R.thpron ; } diff --git a/examples/phrasebook/WordsTha.gf b/examples/phrasebook/WordsTha.gf index b6f3215b1..89659eb15 100644 --- a/examples/phrasebook/WordsTha.gf +++ b/examples/phrasebook/WordsTha.gf @@ -155,12 +155,12 @@ concrete WordsTha of Words = SentencesTha ** HowMuchCost item = mkQS (mkQCl (mkIComp how8much_IAdv) item) ; ItCost item price = mkCl item (mkV2 (R.thword "เป็น" "รา" "คา")) price ; - PropOpen p = mkCl p.name open_Adv ; - PropClosed p = mkCl p.name closed_Adv ; - PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ; - PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ; - PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ; - PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ; + PropOpen p = mkCl p.name open_A ; + PropClosed p = mkCl p.name closed_A ; + PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; + PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; + PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; + PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; -- Building phrases from strings is complicated: the solution is to use -- mkText : Text -> Text -> Text ; @@ -244,8 +244,8 @@ concrete WordsTha of Words = SentencesTha ** mkPlace : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p -> mkCNPlace (mkCN p) at_Prep noPrep ; - open_Adv = P.mkAdv "เปิด" ; - closed_Adv = P.mkAdv "ปิด" ; + open_A = P.mkA "เปิด" ; + closed_A = P.mkA "ปิด" ; xOf : Str -> NPPerson -> NPPerson = \f,p -> {name = mkNP the_Det (mkCN (personN f) (SyntaxTha.mkAdv possess_Prep p.name)) ; diff --git a/examples/phrasebook/missing.txt b/examples/phrasebook/missing.txt index d16355ca4..93d0b9d03 100644 --- a/examples/phrasebook/missing.txt +++ b/examples/phrasebook/missing.txt @@ -1,5 +1,5 @@ DisambPhrasebookEng : -PhrasebookBul : ABusinessman ACook ADoctor AEngineer ALawyer AProfessor AStudent ATeacher Baht Beach Beef Chili Coke Durian Egg Garlic IceCream ItsCold ItsRaining ItsWarm ItsWindy Lemonade Mango Noodles ObjPlur OrangeJuice Pineapple Pork Rice Salad Shrimps Smoke SunShine Thai ThesPlur ThesePlur ThosePlur +PhrasebookBul : Noodles PhrasebookCat : ABusinessman ACook ADoctor AEngineer ALawyer AProfessor AStudent ATeacher Baht Beach Beef Chili Coke Durian Egg Garlic IceCream ItsCold ItsRaining ItsWarm ItsWindy Lemonade MMust Mango Noodles ObjPlur OrangeJuice Pineapple Pork Rice Salad Shrimps Smoke SunShine Thai ThesPlur ThesePlur ThosePlur PhrasebookDan : ABusinessman ACook ADoctor AEngineer ALawyer AProfessor AStudent ATeacher Baht Beach Beef Chili Coke Durian Egg Garlic IceCream ItsCold ItsRaining ItsWarm ItsWindy Lemonade Mango Noodles ObjPlur OrangeJuice Pineapple Pork Rice Salad Shrimps Smoke SunShine Thai ThesPlur ThesePlur ThosePlur PhrasebookDut : ABusinessman ACook ADoctor AEngineer ALawyer AProfessor AStudent ATeacher Baht Beach Beef Chili Coke Durian Egg Garlic IceCream ItsCold ItsRaining ItsWarm ItsWindy Lemonade Mango Noodles ObjPlur OrangeJuice Pineapple Pork Rice Salad Shrimps Smoke SunShine Thai ThesPlur ThesePlur ThosePlur diff --git a/lib/doc/CC_eng_tha.txt b/lib/doc/CC_eng_tha.txt index 406964ffd..3d33db6bd 100644 --- a/lib/doc/CC_eng_tha.txt +++ b/lib/doc/CC_eng_tha.txt @@ -65,11 +65,11 @@ she sleeps mkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V)) who didn't sleep -ไครไม่นอนหลับ -- neg place not preferred +ใครไม่นอนหลับ -- neg place not preferred mkUtt (mkQCl who_IP sleep_V) who sleeps -ไครนอนหลับ +ใครนอนหลับ mkUtt pluralImpForm negativePol (mkImp (mkVP man_N)) don't be men @@ -217,7 +217,7 @@ she answers to him that we sleep mkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)) she asks him who sleeps -หล่อนถามเขาว่าไครนอนหลับ +หล่อนถามเขาว่าใครนอนหลับ mkCl she_NP beg_V2V he_NP (mkVP sleep_V) she begs him to sleep @@ -854,7 +854,7 @@ it is good that she sleeps mkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V)))) it is uncertain who sleeps -ลังเลใจว่าไครนอนหลับ +ลังเลใจว่าใครนอนหลับ mkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V)) she is ready to sleep diff --git a/lib/doc/Test.hs b/lib/doc/Test.hs new file mode 100644 index 000000000..25165cb0a --- /dev/null +++ b/lib/doc/Test.hs @@ -0,0 +1,22 @@ +import qualified Data.Map as Map +import Data.Char + +gold = "CC_eng_tha.txt" +tested = "api-examples-Tha.txt" + +main = do + s <- readFile gold + let corrects = Map.fromList $ exx 1 5 2 (lines s) +-- mapM_ putStrLn $ concat [[t,s] | (t,s) <- Map.toList corrects] + t <- readFile tested + mapM_ (doTest corrects) (exx 18 22 1 (map (drop 4) (lines t))) + +exx x y z ss = [(ss!!k,ss!!(k+z)) | k <- [x,y .. length ss - 2]] + +doTest corrects (t,s) = case Map.lookup t corrects of + Just c -> if unspace s == uncomment c then return () else mapM_ putStrLn [t,unspace s,c] + _ -> return () + +unspace = filter (not . isSpace) +uncomment = unspace . takeWhile (/= '-') + diff --git a/lib/doc/api-examples.txt b/lib/doc/api-examples.txt index 9b781cd3a..782e13f17 100644 --- a/lib/doc/api-examples.txt +++ b/lib/doc/api-examples.txt @@ -750,7 +750,7 @@ mkUtt everything_NP everywhere_Adv : Adv everywhere_Adv few_Det : Det -mkUtt (mkNP few_Det women_N) +mkUtt (mkNP few_Det woman_N) for_Prep : Prep mkAdv for_Prep it_NP from_Prep : Prep diff --git a/lib/doc/synopsis.html b/lib/doc/synopsis.html index f6b6f1dd1..c91ad5037 100644 --- a/lib/doc/synopsis.html +++ b/lib/doc/synopsis.html @@ -542,7 +542,7 @@ Lexical category, constructors given in mkAP A2 -> NP -> AP -
married to her
+
married to her
mkAP @@ -552,22 +552,22 @@ Lexical category, constructors given in mkAP AP -> S -> AP -
it is good that she sleeps
+
it is good that she sleeps
mkAP AP -> QS -> AP -
it is uncertain who sleeps
+
it is uncertain who sleeps
mkAP AP -> VP -> AP -
she is ready to sleep
+
she is ready to sleep
mkAP AP -> SC -> AP -
she is ready to sleep
+
she is ready to sleep
mkAP @@ -587,7 +587,7 @@ Lexical category, constructors given in mkAP Conj -> ListAP -> AP -
old , big and warm
+
old , big and warm
mkAP @@ -597,7 +597,7 @@ Lexical category, constructors given in mkAP CAdv -> AP -> NP -> AP -
as old as she
+
as old as she
reflAP @@ -618,17 +618,17 @@ Lexical category, constructors given in almost_AdA AdA -
almost red
+
almost red
quite_Adv AdA -
quite
+
quite
so_AdA AdA -
so
+
so
too_AdA @@ -654,22 +654,22 @@ Lexical category, constructors given in almost_AdN AdN -
almost eight
+
almost eight
at_least_AdN AdN -
at least eight
+
at least eight
at_most_AdN AdN -
at most eight
+
at most eight
mkAdN CAdv -> AdN -
more than eight
+
more than eight
@@ -685,7 +685,7 @@ Lexical category, constructors given in always_AdV AdV -
always
+
always
@@ -731,17 +731,17 @@ Lexical category, constructors given in mkAdv Subj -> S -> Adv -
when she sleeps
+
when she sleeps
mkAdv CAdv -> A -> NP -> Adv -
more warmly than he
+
more warmly than he
mkAdv CAdv -> A -> S -> Adv -
more warmly than he runs
+
more warmly than he runs
mkAdv @@ -751,12 +751,12 @@ Lexical category, constructors given in mkAdv Conj -> Adv -> Adv -> Adv -
here and now
+
here and now
mkAdv Conj -> ListAdv -> Adv -
with her , here and now
+
with her , here and now
somewhere_Adv @@ -792,12 +792,12 @@ Lexical category, constructors given in anteriorAnt Ant -
she has slept
+
she has slept
simultaneousAnt Ant -
she sleeps
+
she sleeps
@@ -844,7 +844,7 @@ Lexical category, constructors given in mkCN N2 -> NP -> CN -
mother of the king
+
mother of the king
mkCN @@ -869,7 +869,7 @@ Lexical category, constructors given in mkCN A -> CN -> CN -
big blue house
+
big blue house
mkCN @@ -879,17 +879,17 @@ Lexical category, constructors given in mkCN AP -> CN -> CN -
very big blue house
+
very big blue house
mkCN N -> RS -> CN -
man whom she loves
+
man whom she loves
mkCN CN -> RS -> CN -
old man whom she loves
+
old man whom she loves
mkCN @@ -904,12 +904,12 @@ Lexical category, constructors given in mkCN CN -> S -> CN -
almost five
+
almost five
mkCN CN -> QS -> CN -
almost five
+
almost five
mkCN @@ -981,112 +981,112 @@ Lexical category, constructors given in mkCl NP -> V -> Cl -
she sleeps
+
she sleeps
mkCl NP -> V2 -> NP -> Cl -
she loves him
+
she loves him
mkCl NP -> V3 -> NP -> NP -> Cl -
she sends it to him
+
she sends it to him
mkCl NP -> VV -> VP -> Cl -
she wants to sleep
+
she wants to sleep
mkCl NP -> VS -> S -> Cl -
she says that I sleep
+
she says that I sleep
mkCl NP -> VQ -> QS -> Cl -
she wonders who sleeps
+
she wonders who sleeps
mkCl NP -> VA -> A -> Cl -
she becomes old
+
she becomes old
mkCl NP -> VA -> AP -> Cl -
she becomes very old
+
she becomes very old
mkCl NP -> V2A -> NP -> A -> Cl -
she paints it red
+
she paints it red
mkCl NP -> V2A -> NP -> AP -> Cl -
she paints it red
+
she paints it red
mkCl NP -> V2S -> NP -> S -> Cl -
she answers to him that we sleep
+
she answers to him that we sleep
mkCl NP -> V2Q -> NP -> QS -> Cl -
she asks him who sleeps
+
she asks him who sleeps
mkCl NP -> V2V -> NP -> VP -> Cl -
she begs him to sleep
+
she begs him to sleep
mkCl NP -> A -> Cl -
she is old
+
she is old
mkCl NP -> A -> NP -> Cl -
she is older than he
+
she is older than he
mkCl NP -> A2 -> NP -> Cl -
she is married to him
+
she is married to him
mkCl NP -> AP -> Cl -
she is very old
+
she is very old
mkCl NP -> NP -> Cl -
she is the woman
+
she is the woman
mkCl NP -> N -> Cl -
she is a woman
+
she is a woman
mkCl NP -> CN -> Cl -
she is an old woman
+
she is an old woman
mkCl NP -> Adv -> Cl -
she is here
+
she is here
mkCl NP -> VP -> Cl -
she always sleeps
+
she always sleeps
mkCl @@ -1106,12 +1106,12 @@ Lexical category, constructors given in mkCl NP -> RS -> Cl -
it is she who sleeps
+
it is she who sleeps
mkCl Adv -> S -> Cl -
it is here that she sleeps
+
it is here that she sleeps
mkCl @@ -1126,7 +1126,7 @@ Lexical category, constructors given in mkCl SC -> VP -> Cl -
that she sleeps is good
+
that she sleeps is good
@@ -1142,32 +1142,32 @@ Lexical category, constructors given in mkClSlash NP -> VPSlash -> ClSlash -
whom does she see
+
whom does she see
mkClSlash NP -> V2 -> ClSlash -
whom does she see
+
whom does she see
mkClSlash NP -> VV -> V2 -> ClSlash -
whom does she want to see
+
whom does she want to see
mkClSlash Cl -> Prep -> ClSlash -
with whom does she sleep
+
with whom does she sleep
mkClSlash ClSlash -> Adv -> ClSlash -
whom does she see today
+
whom does she see today
mkClSlash NP -> VS -> SSlash -> ClSlash -
whom does she know that we hadn't seen
+
whom does she know that we hadn't seen
@@ -1209,17 +1209,17 @@ Lexical category, constructors given in and_Conj Conj -
here and now
+
here and now
both7and_DConj Conj -
both here and there
+
both here and there
either7or_DConj Conj -
either here or there
+
either here or there
if_then_Conj @@ -1265,7 +1265,7 @@ Lexical category, constructors given in few_Det Det -
constant not found: women_N
+
few women
many_Det @@ -1325,17 +1325,17 @@ Lexical category, constructors given in much_Det Det -
much wine
+
much wine
somePl_Det Det -
some women
+
some women
someSg_Det Det -
some wine
+
some wine
that_Det @@ -1503,7 +1503,7 @@ Lexical category, constructors given in why_IAdv IAdv -
why
+
why
@@ -1606,7 +1606,7 @@ Lexical category, constructors given in mkIP IP -> Adv -> IP -
who in Paris
+
who in Paris
whatPl_IP @@ -1626,17 +1626,17 @@ Lexical category, constructors given in whoPl_IP IP -
who
+
who
whoSg_IP IP -
who
+
who
who_IP IP -
who
+
who
@@ -1857,7 +1857,7 @@ Lexical category, constructors given in everybody_NP NP -
everybody
+
everybody
everything_NP @@ -1987,7 +1987,7 @@ Lexical category, constructors given in mkNP Predet -> NP -> NP -
only this woman
+
only this woman
mkNP @@ -2012,7 +2012,7 @@ Lexical category, constructors given in mkNP Conj -> ListNP -> NP -
this woman , John or I
+
this woman , John or I
nobody_NP @@ -2027,7 +2027,7 @@ Lexical category, constructors given in she_NP NP -
she
+
she
somebody_NP @@ -2052,7 +2052,7 @@ Lexical category, constructors given in they_NP NP -
they
+
they
this_NP @@ -2072,7 +2072,7 @@ Lexical category, constructors given in youPl_NP NP -
you
+
you
youPol_NP @@ -2118,12 +2118,12 @@ Lexical category, constructors given in mkNum Card -> Num -
almost five
+
almost five
mkNum AdN -> Card -> Num -
almost five
+
almost five
pluralNum @@ -2159,12 +2159,12 @@ Lexical category, constructors given in mkNumeral Sub1000 -> Numeral -
nine hundred and ninety - nine
+
nine hundred and ninety - nine
mkNumeral Sub1000 -> Sub1000 -> Numeral -
nine hundred and ninety - nine thousand nine hundred and ninety - nine
+
nine hundred and ninety - nine thousand nine hundred and ninety - nine
mkNumeral @@ -2174,7 +2174,7 @@ Lexical category, constructors given in thousandfoldNumeral Sub1000 -> Numeral -
nine hundred and ninety - nine thousand
+
nine hundred and ninety - nine thousand
@@ -2226,12 +2226,12 @@ Lexical category, constructors given in mkPConj Conj -> PConj -
and now
+
and now
otherwise_PConj PConj -
otherwise
+
otherwise
therefore_PConj @@ -2265,17 +2265,17 @@ Lexical category, constructors given in mkPhr S -> Phr -
she won't sleep
+
she won't sleep
mkPhr Cl -> Phr -
she sleeps
+
she sleeps
mkPhr QS -> Phr -
would she sleep
+
would she sleep
mkPhr @@ -2296,12 +2296,12 @@ Lexical category, constructors given in negativePol Pol -
she doesn't sleep
+
she doesn't sleep
positivePol Pol -
she sleeps
+
she sleeps
@@ -2327,12 +2327,12 @@ Lexical category, constructors given in not_Predet Predet -
not everybody
+
not everybody
only_Predet Predet -
only
+
only
@@ -2353,7 +2353,7 @@ Lexical category, constructors given in after_Prep Prep -
after it
+
after it
before_Prep @@ -2368,7 +2368,7 @@ Lexical category, constructors given in between_Prep Prep -
between you and me
+
between you and me
by8agent_Prep @@ -2383,7 +2383,7 @@ Lexical category, constructors given in during_Prep Prep -
during it
+
during it
except_Prep @@ -2448,7 +2448,7 @@ Lexical category, constructors given in without_Prep Prep -
without it
+
without it
@@ -2479,12 +2479,12 @@ Lexical category, constructors given in she_Pron Pron -
she
+
she
they_Pron Pron -
they
+
they
we_Pron @@ -2494,7 +2494,7 @@ Lexical category, constructors given in youPl_Pron Pron -
you
+
you
youPol_Pron @@ -2546,147 +2546,147 @@ Lexical category, constructors given in mkQCl Cl -> QCl -
does she sleep
+
does she sleep
mkQCl IP -> VP -> QCl -
who always sleeps
+
who always sleeps
mkQCl IP -> V -> QCl -
who sleeps
+
who sleeps
mkQCl IP -> V2 -> NP -> QCl -
who loves her
+
who loves her
mkQCl IP -> V3 -> NP -> NP -> QCl -
who sends it to her
+
who sends it to her
mkQCl IP -> VV -> VP -> QCl -
who wants to sleep
+
who wants to sleep
mkQCl IP -> VS -> S -> QCl -
who says that I sleep
+
who says that I sleep
mkQCl IP -> VQ -> QS -> QCl -
who wonders who sleeps
+
who wonders who sleeps
mkQCl IP -> VA -> A -> QCl -
who becomes old
+
who becomes old
mkQCl IP -> VA -> AP -> QCl -
who becomes very old
+
who becomes very old
mkQCl IP -> V2A -> NP -> A -> QCl -
who paints it red
+
who paints it red
mkQCl IP -> V2A -> NP -> AP -> QCl -
who paints it very red
+
who paints it very red
mkQCl IP -> V2S -> NP -> S -> QCl -
who answers to him that we sleep
+
who answers to him that we sleep
mkQCl IP -> V2Q -> NP -> QS -> QCl -
who asks him who sleeps
+
who asks him who sleeps
mkQCl IP -> V2V -> NP -> VP -> QCl -
who begs him to sleep
+
who begs him to sleep
mkQCl IP -> A -> QCl -
who is old
+
who is old
mkQCl IP -> A -> NP -> QCl -
who is older than he
+
who is older than he
mkQCl IP -> A2 -> NP -> QCl -
who is married to him
+
who is married to him
mkQCl IP -> AP -> QCl -
who is very old
+
who is very old
mkQCl IP -> NP -> QCl -
who is the woman
+
who is the woman
mkQCl IP -> N -> QCl -
who is a woman
+
who is a woman
mkQCl IP -> CN -> QCl -
who is an old woman
+
who is an old woman
mkQCl IP -> Adv -> QCl -
who is here
+
who is here
mkQCl IP -> NP -> V2 -> QCl -
who is her
+
who is her
mkQCl IP -> ClSlash -> QCl -
whom does she love today
+
whom does she love today
mkQCl IAdv -> Cl -> QCl -
why does she sleep
+
why does she sleep
mkQCl Prep -> IP -> Cl -> QCl -
with whom does she sleep
+
with whom does she sleep
mkQCl IAdv -> NP -> QCl -
where is she
+
where is she
mkQCl IComp -> NP -> QCl -
who is this man
+
who is this man
mkQCl @@ -2707,12 +2707,12 @@ Lexical category, constructors given in mkQS (Tense) -> (Ant) -> (Pol) -> QCl -> QS -
who wouldn't have slept
+
who wouldn't have slept
mkQS Cl -> QS -
does she sleep
+
does she sleep
@@ -2738,7 +2738,7 @@ Lexical category, constructors given in no_Quant Quant -
no house
+
no house
that_Quant @@ -2769,7 +2769,7 @@ Lexical category, constructors given in mkRCl RP -> VP -> RCl -
woman who always sleeps
+
woman who always sleeps
mkRCl @@ -2784,7 +2784,7 @@ Lexical category, constructors given in mkRCl RP -> V3 -> NP -> NP -> RCl -
woman who sends it to him
+
woman who sends it to him
mkRCl @@ -2794,12 +2794,12 @@ Lexical category, constructors given in mkRCl RP -> VS -> S -> RCl -
woman who says that I sleep
+
woman who says that I sleep
mkRCl RP -> VQ -> QS -> RCl -
woman who wonders who sleeps
+
woman who wonders who sleeps
mkRCl @@ -2814,27 +2814,27 @@ Lexical category, constructors given in mkRCl RP -> V2A -> NP -> A -> RCl -
woman who paints it red
+
woman who paints it red
mkRCl RP -> V2A -> NP -> AP -> RCl -
woman who paints it very red
+
woman who paints it very red
mkRCl RP -> V2S -> NP -> S -> RCl -
woman who answers to him that we sleep
+
woman who answers to him that we sleep
mkRCl RP -> V2Q -> NP -> QS -> RCl -
woman who asks him who sleeps
+
woman who asks him who sleeps
mkRCl RP -> V2V -> NP -> VP -> RCl -
woman who begs him to sleep
+
woman who begs him to sleep
mkRCl @@ -2884,7 +2884,7 @@ Lexical category, constructors given in mkRCl RP -> ClSlash -> RCl -
woman whom she loves today
+
woman whom she loves today
mkRCl @@ -2957,7 +2957,7 @@ Lexical category, constructors given in mkS (Tense) -> (Ant) -> (Pol) -> Cl -> S -
she wouldn't have slept
+
she wouldn't have slept
mkS @@ -2967,17 +2967,17 @@ Lexical category, constructors given in mkS Conj -> S -> S -> S -
she sleeps and I run
+
she sleeps and I run
mkS Conj -> ListS -> S -
she sleeps , I run and you walk
+
she sleeps , I run and you walk
mkS Adv -> S -> S -
today she sleeps
+
today she sleeps
@@ -2993,12 +2993,12 @@ Lexical category, constructors given in mkSC S -> SC -
that she sleeps
+
that she sleeps
mkSC QS -> SC -
who sleeps
+
who sleeps
mkSC @@ -3019,7 +3019,7 @@ Lexical category, constructors given in mkSSlash Temp -> Pol -> ClSlash -> SSlash -
she hadn't seen
+
she hadn't seen
@@ -3061,17 +3061,17 @@ Lexical category, constructors given in mkSub1000 Sub100 -> Sub1000 -
ninety - nine
+
ninety - nine
mkSub1000 Unit -> Sub1000 -
nine hundred
+
nine hundred
mkSub1000 Unit -> Sub100 -> Sub1000 -
nine hundred and ninety - nine
+
nine hundred and ninety - nine
@@ -3087,27 +3087,27 @@ Lexical category, constructors given in although_Subj Subj -
although she sleeps
+
although she sleeps
because_Subj Subj -
because she sleeps
+
because she sleeps
if_Subj Subj -
if she sleeps
+
if she sleeps
that_Subj Subj -
that she sleeps
+
that she sleeps
when_Subj Subj -
when she sleeps
+
when she sleeps
@@ -3139,22 +3139,22 @@ Lexical category, constructors given in conditionalTense Tense -
she would sleep
+
she would sleep
futureTense Tense -
she will sleep
+
she will sleep
pastTense Tense -
she slept
+
she slept
presentTense Tense -
she sleeps
+
she sleeps
@@ -3175,7 +3175,7 @@ Lexical category, constructors given in mkText Phr -> (Punct) -> (Text) -> Text -
does she sleep ? yes .
+
does she sleep ? yes .
mkText @@ -3185,17 +3185,17 @@ Lexical category, constructors given in mkText S -> Text -
she slept .
+
she slept .
mkText Cl -> Text -
she sleeps .
+
she sleeps .
mkText QS -> Text -
did she sleep ?
+
did she sleep ?
mkText @@ -3205,7 +3205,7 @@ Lexical category, constructors given in mkText Text -> Text -> Text -
where ? here . when ? now !
+
where ? here . when ? now !
@@ -3261,7 +3261,7 @@ Lexical category, constructors given in n9_Unit Unit -
nine
+
nine
@@ -3282,22 +3282,22 @@ Lexical category, constructors given in mkUtt S -> Utt -
she slept
+
she slept
mkUtt Cl -> Utt -
she sleeps
+
she sleeps
mkUtt QS -> Utt -
who didn't sleep
+
who didn't sleep
mkUtt QCl -> Utt -
who sleeps
+
who sleeps
mkUtt @@ -3307,12 +3307,12 @@ Lexical category, constructors given in mkUtt IP -> Utt -
who
+
who
mkUtt IAdv -> Utt -
why
+
why
mkUtt @@ -3475,7 +3475,7 @@ Lexical category, constructors given in mkVP V3 -> NP -> NP -> VP -
to send it to him
+
to send it to him
mkVP @@ -3485,37 +3485,37 @@ Lexical category, constructors given in mkVP VS -> S -> VP -
to know that she sleeps
+
to know that she sleeps
mkVP VQ -> QS -> VP -
to wonder who sleeps
+
to wonder who sleeps
mkVP VA -> AP -> VP -
to become red
+
to become red
mkVP V2A -> NP -> AP -> VP -
to paint it red
+
to paint it red
mkVP V2S -> NP -> S -> VP -
to answer to him that she sleeps
+
to answer to him that she sleeps
mkVP V2Q -> NP -> QS -> VP -
to ask him who sleeps
+
to ask him who sleeps
mkVP V2V -> NP -> VP -> VP -
to beg him to sleep
+
to beg him to sleep
mkVP @@ -3565,17 +3565,17 @@ Lexical category, constructors given in mkVP AdV -> VP -> VP -
always to sleep
+
always to sleep
mkVP VPSlash -> NP -> VP -
to paint it black
+
to paint it black
mkVP VPSlash -> VP -
to paint itself black
+
to paint itself black
mkVP @@ -3590,7 +3590,7 @@ Lexical category, constructors given in passiveVP V2 -> NP -> VP -
to be loved by her
+
to be loved by her
progressiveVP @@ -3621,42 +3621,42 @@ Lexical category, constructors given in mkVPSlash V2 -> VPSlash -
whom does she see
+
whom does she see
mkVPSlash V3 -> NP -> VPSlash -
to whom does she send it
+
to whom does she send it
mkVPSlash V2A -> AP -> VPSlash -
whom does she paint red
+
whom does she paint red
mkVPSlash V2Q -> QS -> VPSlash -
whom does she ask where I sleep
+
whom does she ask where I sleep
mkVPSlash V2S -> S -> VPSlash -
to whom does she answer that I sleep
+
to whom does she answer that I sleep
mkVPSlash V2V -> VP -> VPSlash -
whom does she beg to sleep
+
whom does she beg to sleep
mkVPSlash VV -> VPSlash -> VPSlash -
whom does she want to see
+
whom does she want to see
mkVPSlash V2V -> NP -> VPSlash -> VPSlash -
whom does she beg me to see
+
whom does she beg me to see
@@ -5386,6 +5386,11 @@ source V +regular verb with third person sg pres (giving stem) + + +mkV (breken,brak,gebroken : Str) -> V theme of irregular verb @@ -8900,7 +8905,7 @@ source V -> Str -> V2V = +V -> Str -> Str -> V2V = - @@ -8910,7 +8915,7 @@ source V -> Str -> V2A = +V -> Str -> Str -> V2A = - diff --git a/lib/src/dutch/LexiconDut.gf b/lib/src/dutch/LexiconDut.gf index 7e473b01d..14b31c4d5 100644 --- a/lib/src/dutch/LexiconDut.gf +++ b/lib/src/dutch/LexiconDut.gf @@ -44,7 +44,7 @@ lin married_A2 = mkA2 (mkA "getrouwd") (mkPrep "met") ; mother_N2 = mkN2 (mkN "moeder") ; now_Adv = mkAdv "nu" ; - paint_V2A = mkV2A (mkV "schilderen") noPrep ; + paint_V2A = mkV2A (mkV "schilderen" "schildert") noPrep ; paris_PN = mkPN "Parijs" ; red_A = mkA "rood" ; say_VS = mkVS zeggen_V ; @@ -196,7 +196,7 @@ laugh_V = lachen_V ; leaf_N = mkN "blad" neuter ; learn_V2 = mkV2 "leren" ; leather_N = mkN "leer" neuter ; -leave_V2 = mkV2 laten_V ; +leave_V2 = mkV2 (mkV "verlaten" "verliet" "verlieten" "verlaten") ; leg_N = mkN "been" neuter ; lie_V = liggen_V ; like_V2 = mkV2 houden_V van_Prep ; diff --git a/lib/src/dutch/ParadigmsDut.gf b/lib/src/dutch/ParadigmsDut.gf index 1211a1f32..8f3f35996 100644 --- a/lib/src/dutch/ParadigmsDut.gf +++ b/lib/src/dutch/ParadigmsDut.gf @@ -116,6 +116,7 @@ oper mkV : overload { mkV : (aaien : Str) -> V ; -- regular verb + mkV : (aaien,aait : Str) -> V ; -- regular verb with third person sg pres (giving stem) mkV : (breken,brak,gebroken : Str) -> V ; -- theme of irregular verb mkV : (breken,brak,braken,gebroken : Str) -> V ; -- also past plural irregular mkV : (aai,aait,aaien,aaide,aaide,aaiden,geaaid : Str) -> V ; -- worst-case verb @@ -216,6 +217,8 @@ oper mkV = overload { mkV : (aaien : Str) -> V = \s -> lin V (v2vv (regVerb s)) ; + mkV : (aaien, aait : Str) -> V = + \s,t -> lin V (v2vv (smartVerb s (init t))) ; mkV : (breken,brak,gebroken : Str) -> V = \a,b,c -> lin V (v2vv (irregVerb a b c)) ; mkV : (breken,brak,braken,gebroken : Str) -> V = diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf index 77ca8bd63..e738cce59 100644 --- a/lib/src/dutch/ResDut.gf +++ b/lib/src/dutch/ResDut.gf @@ -224,7 +224,7 @@ resource ResDut = ParamX ** open Prelude in { -- For regular verbs with past tense 'd' d_regVerb : (_,_ :Str) -> Verb = \geeuwen,geeuw -> - let stem = mkStem geeuwen + let stem = geeuw --- mkStem geeuwen in mkVerb stem (stem + "t") geeuwen (stem + "de") (stem + "de") (stem + "den") diff --git a/lib/src/thai/CatTha.gf b/lib/src/thai/CatTha.gf index b043e5d23..b407d4881 100644 --- a/lib/src/thai/CatTha.gf +++ b/lib/src/thai/CatTha.gf @@ -44,7 +44,8 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { CN = ResTha.Noun ; NP, Pron = ResTha.NP ; Det, Quant = ResTha.Determiner ; - Predet, Ord = {s : Str} ; + Predet = {s1,s2 : Str} ; + Ord = {s : Str} ; Num = {s : Str ; hasC : Bool} ; -- Numeral @@ -60,8 +61,8 @@ concrete CatTha of Cat = CommonX ** open ResTha, Prelude in { -- Open lexical classes, e.g. Lexicon V, VS, VQ, VA = Verb ; - V2, V2A, V2Q, V2S, V2V = Verb ** {c2 : Str} ; - V3 = Verb ** {c2, c3 : Str} ; + V2, V2Q, V2S = Verb ** {c2 : Str} ; + V3, V2A, V2V = Verb ** {c2, c3 : Str} ; VV = VVerb ; A = ResTha.Adj ; diff --git a/lib/src/thai/LexiconTha.gf b/lib/src/thai/LexiconTha.gf index 556f92296..bef525b23 100644 --- a/lib/src/thai/LexiconTha.gf +++ b/lib/src/thai/LexiconTha.gf @@ -26,7 +26,7 @@ lin beautiful_A = mkA "สวย" ; become_VA = mkV (thword "กลาย" "เป็น") ; -- pen beer_N = mkN biar_s kew_s ; - beg_V2V = regV "ขอ" ** {c2 = []} ; + beg_V2V = regV "ขอ" ** {c2 = [] ; c3 = "ให้"} ; --- hay as prep of VP belly_N = mkN (thword "พุง") ; big_A = mkA (thword "ใหญ่") ; bike_N = mkN (thword "จักร" "ยาน") "คัน" ; @@ -35,7 +35,7 @@ lin black_A = mkA (thword "ดำ") ; blood_N = mkN (thword "เลือด") ; blow_V = mkV (thword "พัด") ; - blue_A = mkA (thword "สี" "น้ำ" "เงิน") ; + blue_A = mkA (thword "น้ำ" "เงิน") ; --- (thword "สี" "น้ำ" "เงิน") ; boat_N = mkN (thword "เรือ") "ลำ" ; bone_N = mkN (thword "กระ" "ดูก") ; book_N = mkN (thword nag_s svv_s) lem_s ; @@ -137,7 +137,7 @@ lin good_A = mkA "ดี" ; grammar_N = mkN (thword "ไวย" "กรณ์") ; ----? grass_N = mkN "หญ้า" ; - green_A = mkA (thword "สี" "เขียว") ; + green_A = mkA "เขียว" ; --- (thword "สี" "เขียว") ; guts_N = mkN (thword "ไส้") ; hair_N = mkN (thword "ผม") ; hand_N = mkN (thword "มือ") ; @@ -214,7 +214,7 @@ lin old_A = mkA (thword "แก่") ; open_V2 = mkV2 (mkV "เปิด") ; other_A = mkA "อื่น" ; - paint_V2A = mkV2A (regV "ทา") [] ; + paint_V2A = mkV2A (regV "ทา") [] "สี" ; paper_N = mkN (thword "กระ" "ดาษ") ; ----? paris_PN = ss "ปารีส" ; peace_N = mkN (thword "สัน" "ติ" "ภาพ"); ----? @@ -237,7 +237,7 @@ lin ready_A = mkA "พร้อม" ; reason_N = verbalN "เหตู" ; read_V2 = mkV2 "อ่าน" ; - red_A = mkA (thword "สี" "แดง") ; + red_A = mkA "แดง" ; --- (thword "สี" "แดง") ; religion_N = mkN (thword "ศาส" "นา") ; ----? restaurant_N = placeN (thword "ร้าน" "อา" "หาร") ; right_Ord = ss "ขวา" ; @@ -264,7 +264,7 @@ lin seed_N = mkN (thword "เม็ด") ; seek_V2 = mkV2 "หา" ; sell_V3 = mkV3 "ขาย" ; - send_V3 = mkV3 (mkV "ส่ง" "ให้") ; + send_V3 = mkV3 (mkV "ส่ง") [] (thword "ให้" "กับ") ; --- hai kab as prep sew_V = mkV (thword "เย็บ") ; sharp_A = mkA (thword "คม") ; sheep_N = animalN "แกะ" ; @@ -356,7 +356,7 @@ lin worm_N = animalN (thword "หนอน") ; write_V2 = mkV2 "เขียน" ; year_N = mkN (thword "ปี") ; - yellow_A = mkA (thword "สี" "เหลือง") ; + yellow_A = mkA "เหลือง" ; ---- (thword "สี" "เหลือง") ; young_A = mkA "รุ่น" ; oper diff --git a/lib/src/thai/NounTha.gf b/lib/src/thai/NounTha.gf index 52671b83c..bda5cc417 100644 --- a/lib/src/thai/NounTha.gf +++ b/lib/src/thai/NounTha.gf @@ -11,7 +11,7 @@ concrete NounTha of Noun = CatTha ** open StringsTha, ResTha, Prelude in { DetNP det = mkNP (thbind det.s1 det.s2) ; - PredetNP pred np = thbind pred np ; + PredetNP pred np = mkNP (thbind pred.s1 np.s pred.s2) ; PPartNP np v2 = thbind np (ss ((predV v2).s ! Pos)) ; ---- ?? diff --git a/lib/src/thai/ParadigmsTha.gf b/lib/src/thai/ParadigmsTha.gf index 8a1123260..b08dc7aee 100644 --- a/lib/src/thai/ParadigmsTha.gf +++ b/lib/src/thai/ParadigmsTha.gf @@ -76,14 +76,14 @@ oper mkV2Q : V -> Str -> V2Q = \v,p -> lin V2Q (v ** {c2 = p}) ; - mkV2V : V -> Str -> V2V = - \v,p -> lin V2V (v ** {c2 = p}) ; + mkV2V : V -> Str -> Str -> V2V = + \v,p,q -> lin V2V (v ** {c2 = p ; c3 = q}) ; mkV2S : V -> Str -> V2S = \v,p -> lin V2S (v ** {c2 = p}) ; - mkV2A : V -> Str -> V2A = - \v,p -> lin V2A (v ** {c2 = p}) ; + mkV2A : V -> Str -> Str -> V2A = + \v,p,q -> lin V2A (v ** {c2 = p ; c3 = q}) ; mkAdv : Str -> Adv = \s -> lin Adv (ss s) ; diff --git a/lib/src/thai/StructuralTha.gf b/lib/src/thai/StructuralTha.gf index 837227067..bb6cc993a 100644 --- a/lib/src/thai/StructuralTha.gf +++ b/lib/src/thai/StructuralTha.gf @@ -6,7 +6,7 @@ concrete StructuralTha of Structural = CatTha ** lin above_Prep = ss (thword "ข้าง" "บน") ; after_Prep = ss (thword "หลัง" "จาก") ; - all_Predet = ss (thword "ทั้ง" "หมด") ; + all_Predet = {s1 = thword "ทั้ง" "หมด" ; s2 = []} ; almost_AdA, almost_AdN = ss (thword "เกิ" "อบ") ; although_Subj = ss "ถืง" ; always_AdV = ss (thword "เส" "มอ") ; --- pronunciation @@ -51,16 +51,16 @@ concrete StructuralTha of Structural = CatTha ** less_CAdv = {s = "น้อย" ; p = "กว่า"} ; many_Det = quantDet "หลาย" ; more_CAdv = {s = "มาก" ; p = "กว่า"} ; - most_Predet = ss (thword "มาก" "ที่" "สุด") ; + most_Predet = {s1 = thword "มาก" "ที่" "สุด" ; s2 = []} ; much_Det = quantDet "หลาย" ; ---- always? must_VV = {s = tog_s ; typ = VVPre} ; no_Quant = quantDet (thword "ไม่" "มี") ; no_Utt = ss may_s ; nobody_NP = mkNP (thword "ไม่" "มี" "ใคร") ; - not_Predet = ss may_s ; ---- + not_Predet = {s1 = may_s ; s2 = []} ; ---- nothing_NP = mkNP "เปล่า" ; on_Prep = ss "บน" ; - only_Predet = ss (thword "เท่า" "นั้น") ; + only_Predet = {s1 = [] ; s2 = thword "เท่า" "นั้น"} ; or_Conj = {s1 = [] ; s2 = "หริอ"} ; otherwise_PConj = ss (thword "ไม่" "อย่าง" "นั้น") ; part_Prep = ss "" ; ---- diff --git a/lib/src/thai/VerbTha.gf b/lib/src/thai/VerbTha.gf index c2559f772..f1e5d7630 100644 --- a/lib/src/thai/VerbTha.gf +++ b/lib/src/thai/VerbTha.gf @@ -7,16 +7,16 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in { SlashV2a v = predV v ** {c2 = v.c2} ; - Slash2V3 v np = insertObj np (predV v) ** {c2 = v.c3} ; - Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2} ; + Slash2V3 v np = insertObject (predV v) ** {c2 = v.c3} ; + Slash3V3 v np = insertExtra (predV v) ** {c2 = v.c2} ; SlashV2A v ap = - insertExtra (predV v) ** {c2 = v.c2} ; + insertExtra (predV v) ** {c2 = v.c2} ; --- pen? SlashV2V v vp = ---- looks too simple compared with ComplVV - insertExtra : Str> (predV v) ** {c2 = v.c2} ; + insertExtra : Str> (predV v) ** {c2 = v.c2} ; SlashV2S v s = - insertExtra conjThat (predV v) ** {c2 = v.c2} ; + insertExtra (predV v) ** {c2 = v.c2} ; SlashV2Q v q = insertExtra (q.s ! QIndir) (predV v) ** {c2 = v.c2} ; @@ -57,7 +57,7 @@ concrete VerbTha of Verb = CatTha ** open ResTha, StringsTha, Prelude in { ReflVP vp = insertObj (mkNP (thbind vp.c2 reflPron)) vp ; - PassV2 v = {s = \\p => thbind thuuk_s ((predV v).s ! p) ; e = []} ; + PassV2 v = {s = \\p => thbind (polStr may_s p) thuuk_s ; e = thbind v.s1 v.s2} ; -- to put agent before verb; --- the place of neg? CompAP ap = {s = \\p => thbind (polStr may_s p) ap.s} ;