diff --git a/doc/CC_eng_tha.txt b/doc/CC_eng_tha.txt index 406964ffd..3d33db6bd 100644 --- a/doc/CC_eng_tha.txt +++ b/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/doc/Test.hs b/doc/Test.hs new file mode 100644 index 000000000..25165cb0a --- /dev/null +++ b/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/doc/api-examples.txt b/doc/api-examples.txt index 9b781cd3a..782e13f17 100644 --- a/doc/api-examples.txt +++ b/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/doc/synopsis.html b/doc/synopsis.html index f6b6f1dd1..c91ad5037 100644 --- a/doc/synopsis.html +++ b/doc/synopsis.html @@ -542,7 +542,7 @@ Lexical category, constructors given in
mkAP-> NP -> APmkAP married_A2 she_NP mkAP married_A2 she_NP mkAPmkAP-> S -> APmkCl (mkVP (mkAP (mkAP good_A) (mkS (mkCl she_NP sleep_V)))) mkCl (mkVP (mkAP (mkAP good_A) (mkS (mkCl she_NP sleep_V)))) mkAP-> QS -> APmkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V)))) mkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V)))) mkAP-> VP -> APmkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V)) mkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V)) mkAP-> SC -> APmkCl she_NP (mkAP (mkAP ready_A) (mkSC (mkVP sleep_V))) mkCl she_NP (mkAP (mkAP ready_A) (mkSC (mkVP sleep_V))) mkAPmkAP-> ListAP -> APmkAP and_Conj (mkListAP (mkAP old_A) (mkListAP (mkAP big_A) (mkAP warm_A))) mkAP and_Conj (mkListAP (mkAP old_A) (mkListAP (mkAP big_A) (mkAP warm_A))) mkAPmkAP-> AP -> NP -> APmkAP as_CAdv (mkAP old_A) she_NP mkAP as_CAdv (mkAP old_A) she_NP reflAPalmost_AdAmkAP almost_AdA red_A mkAP almost_AdA red_A quite_Advquite_Adv quite_Adv so_AdAso_AdA so_AdA too_AdAalmost_AdNmkCard almost_AdN (mkCard (mkNumeral n8_Unit)) mkCard almost_AdN (mkCard (mkNumeral n8_Unit)) at_least_AdNmkCard at_least_AdN (mkCard (mkNumeral n8_Unit)) mkCard at_least_AdN (mkCard (mkNumeral n8_Unit)) at_most_AdNmkCard at_most_AdN (mkCard (mkNumeral n8_Unit)) mkCard at_most_AdN (mkCard (mkNumeral n8_Unit)) mkAdN-> AdNmkCard (mkAdN more_CAdv) (mkCard (mkNumeral n8_Unit)) mkCard (mkAdN more_CAdv) (mkCard (mkNumeral n8_Unit)) always_AdValways_AdV always_AdV mkAdv-> S -> AdvmkAdv when_Subj (mkS (mkCl she_NP sleep_V)) mkAdv when_Subj (mkS (mkCl she_NP sleep_V)) mkAdv-> A -> NP -> AdvmkAdv more_CAdv warm_A he_NP mkAdv more_CAdv warm_A he_NP mkAdv-> A -> S -> AdvmkAdv more_CAdv warm_A (mkS (mkCl he_NP run_V)) mkAdv more_CAdv warm_A (mkS (mkCl he_NP run_V)) mkAdvmkAdv-> Adv -> Adv -> AdvmkAdv and_Conj here_Adv now_Adv mkAdv and_Conj here_Adv now_Adv mkAdv-> ListAdv -> AdvmkAdv and_Conj (mkListAdv (mkAdv with_Prep she_NP) (mkListAdv here_Adv now_Adv)) mkAdv and_Conj (mkListAdv (mkAdv with_Prep she_NP) (mkListAdv here_Adv now_Adv)) somewhere_AdvanteriorAntmkS anteriorAnt (mkCl she_NP sleep_V) mkS anteriorAnt (mkCl she_NP sleep_V) simultaneousAntmkS simultaneousAnt (mkCl she_NP sleep_V) mkS simultaneousAnt (mkCl she_NP sleep_V) mkCN-> NP -> CNmkCN mother_N2 (mkNP the_Det king_N) mkCN mother_N2 (mkNP the_Det king_N) mkCNmkCN-> CN -> CNmkCN big_A (mkCN blue_A house_N) mkCN big_A (mkCN blue_A house_N) mkCNmkCN-> CN -> CNmkCN (mkAP very_AdA big_A) (mkCN blue_A house_N) mkCN (mkAP very_AdA big_A) (mkCN blue_A house_N) mkCN-> RS -> CNmkCN man_N (mkRS (mkRCl which_RP she_NP love_V2)) mkCN man_N (mkRS (mkRCl which_RP she_NP love_V2)) mkCN-> RS -> CNmkCN (mkCN old_A man_N) (mkRS (mkRCl which_RP she_NP love_V2)) mkCN (mkCN old_A man_N) (mkRS (mkRCl which_RP she_NP love_V2)) mkCNmkCN-> S -> CNmkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkCN-> QS -> CNmkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkCNmkCl-> V -> ClmkCl she_NP sleep_V mkCl she_NP sleep_V mkCl-> V2 -> NP -> ClmkCl she_NP love_V2 he_NP mkCl she_NP love_V2 he_NP mkCl-> V3 -> NP -> NP -> ClmkCl she_NP send_V3 it_NP he_NP mkCl she_NP send_V3 it_NP he_NP mkCl-> VV -> VP -> ClmkCl she_NP want_VV (mkVP sleep_V) mkCl she_NP want_VV (mkVP sleep_V) mkCl-> VS -> S -> ClmkCl she_NP say_VS (mkS (mkCl i_NP sleep_V)) mkCl she_NP say_VS (mkS (mkCl i_NP sleep_V)) mkCl-> VQ -> QS -> ClmkCl she_NP wonder_VQ (mkQS (mkQCl who_IP sleep_V)) mkCl she_NP wonder_VQ (mkQS (mkQCl who_IP sleep_V)) mkCl-> VA -> A -> ClmkCl she_NP become_VA old_A mkCl she_NP become_VA old_A mkCl-> VA -> AP -> ClmkCl she_NP become_VA (mkAP very_AdA old_A) mkCl she_NP become_VA (mkAP very_AdA old_A) mkCl-> V2A -> NP -> A -> ClmkCl she_NP paint_V2A it_NP red_A mkCl she_NP paint_V2A it_NP red_A mkCl-> V2A -> NP -> AP -> ClmkCl she_NP paint_V2A it_NP (mkAP red_A) mkCl she_NP paint_V2A it_NP (mkAP red_A) mkCl-> V2S -> NP -> S -> ClmkCl she_NP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)) mkCl she_NP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)) mkCl-> V2Q -> NP -> QS -> ClmkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)) mkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)) mkCl-> V2V -> NP -> VP -> ClmkCl she_NP beg_V2V he_NP (mkVP sleep_V) mkCl she_NP beg_V2V he_NP (mkVP sleep_V) mkCl-> A -> ClmkCl she_NP old_A mkCl she_NP old_A mkCl-> A -> NP -> ClmkCl she_NP old_A he_NP mkCl she_NP old_A he_NP mkCl-> A2 -> NP -> ClmkCl she_NP married_A2 he_NP mkCl she_NP married_A2 he_NP mkCl-> AP -> ClmkCl she_NP (mkAP very_AdA old_A) mkCl she_NP (mkAP very_AdA old_A) mkCl-> NP -> ClmkCl she_NP (mkNP the_Det woman_N) mkCl she_NP (mkNP the_Det woman_N) mkCl-> N -> ClmkCl she_NP woman_N mkCl she_NP woman_N mkCl-> CN -> ClmkCl she_NP (mkCN old_A woman_N) mkCl she_NP (mkCN old_A woman_N) mkCl-> Adv -> ClmkCl she_NP here_Adv mkCl she_NP here_Adv mkCl-> VP -> ClmkCl she_NP (mkVP always_AdV (mkVP sleep_V)) mkCl she_NP (mkVP always_AdV (mkVP sleep_V)) mkClmkCl-> RS -> ClmkCl she_NP (mkRS (mkRCl which_RP (mkVP sleep_V))) mkCl she_NP (mkRS (mkRCl which_RP (mkVP sleep_V))) mkCl-> S -> ClmkCl here_Adv (mkS (mkCl she_NP sleep_V)) mkCl here_Adv (mkS (mkCl she_NP sleep_V)) mkClmkCl-> VP -> ClmkCl (mkSC (mkS (mkCl she_NP sleep_V))) (mkVP good_A) mkCl (mkSC (mkS (mkCl she_NP sleep_V))) (mkVP good_A) mkClSlash-> VPSlash -> ClSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)) mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)) mkClSlash-> V2 -> ClSlashmkQCl who_IP (mkClSlash she_NP see_V2) mkQCl who_IP (mkClSlash she_NP see_V2) mkClSlash-> VV -> V2 -> ClSlashmkQCl who_IP (mkClSlash she_NP want_VV see_V2) mkQCl who_IP (mkClSlash she_NP want_VV see_V2) mkClSlash-> Prep -> ClSlashmkQCl who_IP (mkClSlash (mkCl she_NP sleep_V) with_Prep) mkQCl who_IP (mkClSlash (mkCl she_NP sleep_V) with_Prep) mkClSlash-> Adv -> ClSlashmkQCl who_IP (mkClSlash (mkClSlash she_NP see_V2) today_Adv) mkQCl who_IP (mkClSlash (mkClSlash she_NP see_V2) today_Adv) mkClSlash-> VS -> SSlash -> ClSlashmkQCl who_IP (mkClSlash she_NP know_VS (mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash we_NP (mkVPSlash see_V2)))) mkQCl who_IP (mkClSlash she_NP know_VS (mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash we_NP (mkVPSlash see_V2)))) and_ConjmkAdv and_Conj here_Adv now_Adv mkAdv and_Conj here_Adv now_Adv both7and_DConjmkAdv both7and_DConj here_Adv there_Adv mkAdv both7and_DConj here_Adv there_Adv either7or_DConjmkAdv either7or_DConj here_Adv there_Adv mkAdv either7or_DConj here_Adv there_Adv if_then_Conjfew_DetmkUtt (mkNP few_Det women_N) mkUtt (mkNP few_Det woman_N) many_Detmuch_DetmkUtt (mkNP much_Det wine_N) mkUtt (mkNP much_Det wine_N) somePl_DetmkUtt (mkNP somePl_Det woman_N) mkUtt (mkNP somePl_Det woman_N) someSg_DetmkUtt (mkNP someSg_Det wine_N) mkUtt (mkNP someSg_Det wine_N) that_Detwhy_IAdvmkUtt why_IAdv mkUtt why_IAdv mkIP-> Adv -> IPmkIP who_IP (mkAdv in_Prep (mkNP paris_PN)) mkIP who_IP (mkAdv in_Prep (mkNP paris_PN)) whatPl_IPwhoPl_IPwhoPl_IP whoPl_IP whoSg_IPwhoSg_IP whoSg_IP who_IPmkUtt who_IP mkUtt who_IP everybody_NPmkUtt everybody_NP mkUtt everybody_NP everything_NPmkNP-> NP -> NPmkUtt (mkNP only_Predet (mkNP this_Det woman_N)) mkUtt (mkNP only_Predet (mkNP this_Det woman_N)) mkNPmkNP-> ListNP -> NPmkUtt (mkNP or_Conj (mkListNP (mkNP this_Det woman_N) (mkListNP (mkNP john_PN) i_NP))) mkUtt (mkNP or_Conj (mkListNP (mkNP this_Det woman_N) (mkListNP (mkNP john_PN) i_NP))) nobody_NPshe_NPmkUtt she_NP mkUtt she_NP somebody_NPthey_NPmkUtt they_NP mkUtt they_NP this_NPyouPl_NPmkUtt youPl_NP mkUtt youPl_NP youPol_NPmkNum-> NummkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkNum-> Card -> NummkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit))) pluralNummkNumeral-> NumeralmkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkNumeral-> Sub1000 -> NumeralmkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkNumeralthousandfoldNumeral-> NumeralthousandfoldNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) thousandfoldNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkPConj-> PConjmkPhr (mkPConj and_Conj) (mkUtt now_Adv) mkPhr (mkPConj and_Conj) (mkUtt now_Adv) otherwise_PConjotherwise_PConj otherwise_PConj therefore_PConjmkPhr-> PhrmkPhr (mkS futureTense negativePol (mkCl she_NP sleep_V)) mkPhr (mkS futureTense negativePol (mkCl she_NP sleep_V)) mkPhr-> PhrmkPhr (mkCl she_NP sleep_V) mkPhr (mkCl she_NP sleep_V) mkPhr-> PhrmkPhr (mkQS conditionalTense (mkQCl (mkCl she_NP sleep_V))) mkPhr (mkQS conditionalTense (mkQCl (mkCl she_NP sleep_V))) mkPhrnegativePolmkS negativePol (mkCl she_NP sleep_V) mkS negativePol (mkCl she_NP sleep_V) positivePolmkS positivePol (mkCl she_NP sleep_V) mkS positivePol (mkCl she_NP sleep_V) not_PredetmkUtt (mkNP not_Predet everybody_NP) mkUtt (mkNP not_Predet everybody_NP) only_Predetonly_Predet only_Predet after_PrepmkAdv after_Prep it_NP mkAdv after_Prep it_NP before_Prepbetween_PrepmkAdv between_Prep (mkNP and_Conj you_NP i_NP) mkAdv between_Prep (mkNP and_Conj you_NP i_NP) by8agent_Prepduring_PrepmkAdv during_Prep it_NP mkAdv during_Prep it_NP except_Prepwithout_PrepmkAdv without_Prep it_NP mkAdv without_Prep it_NP she_PronmkUtt (mkNP she_Pron) mkUtt (mkNP she_Pron) they_PronmkUtt (mkNP they_Pron) mkUtt (mkNP they_Pron) we_PronyouPl_PronmkUtt (mkNP youPl_Pron) mkUtt (mkNP youPl_Pron) youPol_PronmkQCl-> QClmkQCl (mkCl she_NP sleep_V) mkQCl (mkCl she_NP sleep_V) mkQCl-> VP -> QClmkQCl who_IP (mkVP always_AdV (mkVP sleep_V)) mkQCl who_IP (mkVP always_AdV (mkVP sleep_V)) mkQCl-> V -> QClmkQCl who_IP sleep_V mkQCl who_IP sleep_V mkQCl-> V2 -> NP -> QClmkQCl who_IP love_V2 she_NP mkQCl who_IP love_V2 she_NP mkQCl-> V3 -> NP -> NP -> QClmkQCl who_IP send_V3 it_NP she_NP mkQCl who_IP send_V3 it_NP she_NP mkQCl-> VV -> VP -> QClmkQCl who_IP want_VV (mkVP sleep_V) mkQCl who_IP want_VV (mkVP sleep_V) mkQCl-> VS -> S -> QClmkQCl who_IP say_VS (mkS (mkCl i_NP sleep_V)) mkQCl who_IP say_VS (mkS (mkCl i_NP sleep_V)) mkQCl-> VQ -> QS -> QClmkQCl who_IP wonder_VQ (mkQS (mkQCl who_IP sleep_V)) mkQCl who_IP wonder_VQ (mkQS (mkQCl who_IP sleep_V)) mkQCl-> VA -> A -> QClmkQCl who_IP become_VA old_A mkQCl who_IP become_VA old_A mkQCl-> VA -> AP -> QClmkQCl who_IP become_VA (mkAP very_AdA old_A) mkQCl who_IP become_VA (mkAP very_AdA old_A) mkQCl-> V2A -> NP -> A -> QClmkQCl who_IP paint_V2A it_NP red_A mkQCl who_IP paint_V2A it_NP red_A mkQCl-> V2A -> NP -> AP -> QClmkQCl who_IP paint_V2A it_NP (mkAP very_AdA red_A) mkQCl who_IP paint_V2A it_NP (mkAP very_AdA red_A) mkQCl-> V2S -> NP -> S -> QClmkQCl who_IP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)) mkQCl who_IP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)) mkQCl-> V2Q -> NP -> QS -> QClmkQCl who_IP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)) mkQCl who_IP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)) mkQCl-> V2V -> NP -> VP -> QClmkQCl who_IP beg_V2V he_NP (mkVP sleep_V) mkQCl who_IP beg_V2V he_NP (mkVP sleep_V) mkQCl-> A -> QClmkQCl who_IP old_A mkQCl who_IP old_A mkQCl-> A -> NP -> QClmkQCl who_IP old_A he_NP mkQCl who_IP old_A he_NP mkQCl-> A2 -> NP -> QClmkQCl who_IP married_A2 he_NP mkQCl who_IP married_A2 he_NP mkQCl-> AP -> QClmkQCl who_IP (mkAP very_AdA old_A) mkQCl who_IP (mkAP very_AdA old_A) mkQCl-> NP -> QClmkQCl who_IP (mkNP the_Det woman_N) mkQCl who_IP (mkNP the_Det woman_N) mkQCl-> N -> QClmkQCl who_IP woman_N mkQCl who_IP woman_N mkQCl-> CN -> QClmkQCl who_IP (mkCN old_A woman_N) mkQCl who_IP (mkCN old_A woman_N) mkQCl-> Adv -> QClmkQCl who_IP here_Adv mkQCl who_IP here_Adv mkQCl-> NP -> V2 -> QClmkQCl who_IP she_NP mkQCl who_IP she_NP mkQCl-> ClSlash -> QClmkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv) mkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv) mkQCl-> Cl -> QClmkQCl why_IAdv (mkCl she_NP sleep_V) mkQCl why_IAdv (mkCl she_NP sleep_V) mkQCl-> IP -> Cl -> QClmkQCl with_Prep who_IP (mkCl she_NP sleep_V) mkQCl with_Prep who_IP (mkCl she_NP sleep_V) mkQCl-> NP -> QClmkQCl where_IAdv she_NP mkQCl where_IAdv she_NP mkQCl-> NP -> QClmkQCl (mkIComp who_IP) (mkNP this_Det man_N) mkQCl (mkIComp who_IP) (mkNP this_Det man_N) mkQClmkQS-> (Ant) -> (Pol) -> QCl -> QSmkQS conditionalTense anteriorAnt negativePol (mkQCl who_IP sleep_V) mkQS conditionalTense anteriorAnt negativePol (mkQCl who_IP sleep_V) mkQS-> QSmkQS (mkCl she_NP sleep_V) mkQS (mkCl she_NP sleep_V) no_QuantmkUtt (mkNP no_Quant house_N) mkUtt (mkNP no_Quant house_N) that_QuantmkRCl-> VP -> RClmkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)))) mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)))) mkRClmkRCl-> V3 -> NP -> NP -> RClmkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP)) mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP)) mkRClmkRCl-> VS -> S -> RClmkCN woman_N (mkRS (mkRCl which_RP say_VS (mkS (mkCl i_NP sleep_V)))) mkCN woman_N (mkRS (mkRCl which_RP say_VS (mkS (mkCl i_NP sleep_V)))) mkRCl-> VQ -> QS -> RClmkCN woman_N (mkRS (mkRCl which_RP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))) mkCN woman_N (mkRS (mkRCl which_RP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))) mkRClmkRCl-> V2A -> NP -> A -> RClmkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A)) mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A)) mkRCl-> V2A -> NP -> AP -> RClmkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A))) mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A))) mkRCl-> V2S -> NP -> S -> RClmkCN woman_N (mkRS (mkRCl which_RP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)))) mkCN woman_N (mkRS (mkRCl which_RP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)))) mkRCl-> V2Q -> NP -> QS -> RClmkCN woman_N (mkRS (mkRCl which_RP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))) mkCN woman_N (mkRS (mkRCl which_RP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))) mkRCl-> V2V -> NP -> VP -> RClmkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V))) mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V))) mkRClmkRCl-> ClSlash -> RClmkCN woman_N (mkRS (mkRCl which_RP (mkClSlash (mkClSlash she_NP love_V2) today_Adv))) mkCN woman_N (mkRS (mkRCl which_RP (mkClSlash (mkClSlash she_NP love_V2) today_Adv))) mkRClmkS-> (Ant) -> (Pol) -> Cl -> SmkS conditionalTense anteriorAnt negativePol (mkCl she_NP sleep_V) mkS conditionalTense anteriorAnt negativePol (mkCl she_NP sleep_V) mkSmkS-> S -> S -> SmkS and_Conj (mkS (mkCl she_NP sleep_V)) (mkS (mkCl i_NP run_V)) mkS and_Conj (mkS (mkCl she_NP sleep_V)) (mkS (mkCl i_NP run_V)) mkS-> ListS -> SmkS and_Conj (mkListS (mkS (mkCl she_NP sleep_V)) (mkListS (mkS (mkCl i_NP run_V)) (mkS (mkCl (mkNP youSg_Pron) walk_V)))) mkS and_Conj (mkListS (mkS (mkCl she_NP sleep_V)) (mkListS (mkS (mkCl i_NP run_V)) (mkS (mkCl (mkNP youSg_Pron) walk_V)))) mkS-> S -> SmkS today_Adv (mkS (mkCl she_NP sleep_V)) mkS today_Adv (mkS (mkCl she_NP sleep_V)) mkSC-> SCmkSC (mkS (mkCl she_NP sleep_V)) mkSC (mkS (mkCl she_NP sleep_V)) mkSC-> SCmkSC (mkQS (mkQCl who_IP sleep_V)) mkSC (mkQS (mkQCl who_IP sleep_V)) mkSCmkSSlash-> Pol -> ClSlash -> SSlashmkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash she_NP (mkVPSlash see_V2)) mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash she_NP (mkVPSlash see_V2)) mkSub1000-> Sub1000mkNumeral (mkSub1000 (mkSub100 n9_Unit n9_Unit)) mkNumeral (mkSub1000 (mkSub100 n9_Unit n9_Unit)) mkSub1000-> Sub1000mkNumeral (mkSub1000 n9_Unit) mkNumeral (mkSub1000 n9_Unit) mkSub1000-> Sub100 -> Sub1000mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) although_SubjmkAdv although_Subj (mkS (mkCl she_NP sleep_V)) mkAdv although_Subj (mkS (mkCl she_NP sleep_V)) because_SubjmkAdv because_Subj (mkS (mkCl she_NP sleep_V)) mkAdv because_Subj (mkS (mkCl she_NP sleep_V)) if_SubjmkAdv if_Subj (mkS (mkCl she_NP sleep_V)) mkAdv if_Subj (mkS (mkCl she_NP sleep_V)) that_SubjmkAdv that_Subj (mkS (mkCl she_NP sleep_V)) mkAdv that_Subj (mkS (mkCl she_NP sleep_V)) when_SubjmkAdv when_Subj (mkS (mkCl she_NP sleep_V)) mkAdv when_Subj (mkS (mkCl she_NP sleep_V)) conditionalTensemkS conditionalTense (mkCl she_NP sleep_V) mkS conditionalTense (mkCl she_NP sleep_V) futureTensemkS futureTense (mkCl she_NP sleep_V) mkS futureTense (mkCl she_NP sleep_V) pastTensemkS pastTense (mkCl she_NP sleep_V) mkS pastTense (mkCl she_NP sleep_V) presentTensemkS presentTense (mkCl she_NP sleep_V) mkS presentTense (mkCl she_NP sleep_V) mkText-> (Punct) -> (Text) -> TextmkText (mkPhr (mkQS (mkCl she_NP sleep_V))) questMarkPunct (mkText (mkPhr yes_Utt) fullStopPunct) mkText (mkPhr (mkQS (mkCl she_NP sleep_V))) questMarkPunct (mkText (mkPhr yes_Utt) fullStopPunct) mkTextmkText-> TextmkText (mkS pastTense (mkCl she_NP sleep_V)) mkText (mkS pastTense (mkCl she_NP sleep_V)) mkText-> TextmkText (mkCl she_NP sleep_V) mkText (mkCl she_NP sleep_V) mkText-> TextmkText (mkQS pastTense (mkQCl (mkCl she_NP sleep_V))) mkText (mkQS pastTense (mkQCl (mkCl she_NP sleep_V))) mkTextmkText-> Text -> TextmkText (mkText (mkPhr (mkUtt where_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt here_Adv)))) (mkText (mkPhr (mkUtt when_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt now_Adv)) exclMarkPunct)) mkText (mkText (mkPhr (mkUtt where_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt here_Adv)))) (mkText (mkPhr (mkUtt when_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt now_Adv)) exclMarkPunct)) n9_UnitmkNumeral n9_Unit mkNumeral n9_Unit mkUtt-> UttmkUtt (mkS pastTense (mkCl she_NP sleep_V)) mkUtt (mkS pastTense (mkCl she_NP sleep_V)) mkUtt-> UttmkUtt (mkCl she_NP sleep_V) mkUtt (mkCl she_NP sleep_V) mkUtt-> UttmkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V)) mkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V)) mkUtt-> UttmkUtt (mkQCl who_IP sleep_V) mkUtt (mkQCl who_IP sleep_V) mkUttmkUtt-> UttmkUtt who_IP mkUtt who_IP mkUtt-> UttmkUtt why_IAdv mkUtt why_IAdv mkUttmkVP-> NP -> NP -> VPmkUtt (mkVP send_V3 it_NP he_NP) mkUtt (mkVP send_V3 it_NP he_NP) mkVPmkVP-> S -> VPmkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) mkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) mkVP-> QS -> VPmkUtt (mkVP wonder_VQ (mkQS (mkQCl who_IP sleep_V))) mkUtt (mkVP wonder_VQ (mkQS (mkQCl who_IP sleep_V))) mkVP-> AP -> VPmkUtt (mkVP become_VA (mkAP red_A)) mkUtt (mkVP become_VA (mkAP red_A)) mkVP-> NP -> AP -> VPmkUtt (mkVP paint_V2A it_NP (mkAP red_A)) mkUtt (mkVP paint_V2A it_NP (mkAP red_A)) mkVP-> NP -> S -> VPmkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V))) mkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V))) mkVP-> NP -> QS -> VPmkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))) mkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))) mkVP-> NP -> VP -> VPmkUtt (mkVP beg_V2V he_NP (mkVP sleep_V)) mkUtt (mkVP beg_V2V he_NP (mkVP sleep_V)) mkVPmkVP-> VP -> VPmkUtt (mkVP always_AdV (mkVP sleep_V)) mkUtt (mkVP always_AdV (mkVP sleep_V)) mkVP-> NP -> VPmkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)) it_NP) mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)) it_NP) mkVP-> VPmkUtt (reflexiveVP (mkVPSlash paint_V2A (mkAP black_A))) mkUtt (reflexiveVP (mkVPSlash paint_V2A (mkAP black_A))) mkVPpassiveVP-> NP -> VPmkUtt (passiveVP love_V2 she_NP) mkUtt (passiveVP love_V2 she_NP) progressiveVPmkVPSlash-> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)) mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)) mkVPSlash-> NP -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash send_V3 it_NP)) mkQCl who_IP (mkClSlash she_NP (mkVPSlash send_V3 it_NP)) mkVPSlash-> AP -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash paint_V2A (mkAP red_A))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash paint_V2A (mkAP red_A))) mkVPSlash-> QS -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_IAdv (mkCl i_NP sleep_V))))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_IAdv (mkCl i_NP sleep_V))))) mkVPSlash-> S -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash answer_V2S (mkS (mkCl i_NP sleep_V)))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash answer_V2S (mkS (mkCl i_NP sleep_V)))) mkVPSlash-> VP -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V (mkVP sleep_V))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V (mkVP sleep_V))) mkVPSlash-> VPSlash -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash want_VV (mkVPSlash see_V2))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash want_VV (mkVPSlash see_V2))) mkVPSlash-> NP -> VPSlash -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V i_NP (mkVPSlash see_V2))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V i_NP (mkVPSlash see_V2))) mkV(breken,brak,gebroken : Str) -> V-> Str -> V2V =
+-> Str -> Str -> V2V =-> Str -> V2A =
+-> Str -> Str -> V2A =