diff --git a/lib/doc/MkExxTable.hs b/lib/doc/MkExxTable.hs index b19fea455..bcc874ac5 100644 --- a/lib/doc/MkExxTable.hs +++ b/lib/doc/MkExxTable.hs @@ -22,7 +22,7 @@ readApiExxOne file = do s <- readFile file let lang = reverse (take 3 (drop 4 (reverse file))) -- api-exx-*Eng*.txt let api = getApiExxOne $ filter validOutput $ lines s - putStrLn $ unlines $ prApiEx api + putStrLn $ unlines $ prApiEx api --- return (lang,api) -- map function -> language -> example @@ -68,9 +68,12 @@ prApiExx aexx = unlines prApiEx :: M.Map String String -> [String] prApiEx apexx = case M.toList apexx of (a,e):lexx -> (a ++ ": ``" ++ unwords (words e) ++ "``"): - [l ++ ": //" ++ doBind e ++ "//" | (l,e) <- lexx] + [l ++ ": //" ++ mkEx e ++ "//" | (l,e) <- lexx] -doBind = unwords . bind . words +mkEx e = case words e of + "atomic":"term":_ -> "*" + "[]":_ -> "''" + es -> unwords (bind es) bind ws = case ws of w : "&+" : u : ws2 -> bind ((w ++ u) : ws2) diff --git a/lib/doc/api-examples.txt b/lib/doc/api-examples.txt index 161f586cb..4d615753d 100644 --- a/lib/doc/api-examples.txt +++ b/lib/doc/api-examples.txt @@ -173,7 +173,7 @@ mkUtt (mkVP paint_V2A it_NP (mkAP red_A)) mkVP : V2S -> NP -> S -> VP -- answer to him that we sleep mkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V))) mkVP : V2Q -> NP -> QS -> VP -- ask him who sleeps -mkUtt (mkVP answer_V2S he_NP (mkQS (mkQCl who_IP sleep_V))) +mkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))) mkVP : V2V -> NP -> VP -> VP -- beg him to sleep mkUtt (mkVP beg_V2V he_NP (mkVP sleep_V)) mkVP : A -> VP -- be old @@ -592,65 +592,65 @@ mkIP (mkIDet which_IQuant pluralNum) house_N mkIDet : IQuant -> IDet mkIP (mkIDet which_IQuant) house_N which_IDet : IDet -mkIP which_IDet +mkIP which_IDet house_N whichPl_IDet : IDet -mkIP whichPl_IDet +mkIP whichPl_IDet house_N mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS -- that wouldn't have slept -mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V) +mkCN woman_N (mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V)) mkRS : RCl -> RS -- -mkRS (mkRCl which_RP sleep_V) +mkCN woman_N (mkRS (mkRCl which_RP sleep_V)) mkRS : Conj -> RS -> RS -> RS -- -mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP she_NP love_V2)) +mkCN woman_N (mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP we_NP love_V2))) mkRCl : RP -> VP -> RCl -- who sleeps -mkRCl which_RP (mkVP (mkVP sleep_V) here_Adv) +mkCN woman_N (mkRS (mkRCl which_RP (mkVP (mkVP sleep_V) here_Adv))) mkRCl : RP -> V -> RCl -- who sleeps -mkRCl which_RP sleep_V +mkCN woman_N (mkRS (mkRCl which_RP sleep_V)) mkRCl : RP -> V2 -> NP -> RCl -- who loves her -mkRCl which_RP love_V2 she_NP +mkCN woman_N (mkRS (mkRCl which_RP love_V2 he_NP)) mkRCl : RP -> V3 -> NP -> NP -> RCl -- who sends it to her -mkRCl which_RP send_V3 it_NP she_NP +mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP)) mkRCl : RP -> VV -> VP -> RCl -- who wants to sleep -mkRCl which_RP want_VV (mkVP sleep_V) +mkCN woman_N (mkRS (mkRCl which_RP want_VV (mkVP sleep_V))) mkRCl : RP -> VS -> S -> RCl -- who says that I sleep -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 : RP -> VQ -> QS -> RCl -- who wonders who sleeps -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)))) mkRCl : RP -> VA -> A -> RCl -- who becomes old -mkRCl which_RP become_VA old_A +mkCN woman_N (mkRS (mkRCl which_RP become_VA old_A)) mkRCl : RP -> VA -> AP -> RCl -- who becomes very old -mkRCl which_RP become_VA (mkAP very_AdA old_A) +mkCN woman_N (mkRS (mkRCl which_RP become_VA (mkAP very_AdA old_A))) mkRCl : RP -> V2A -> NP -> A -> RCl -- who paints it red -mkRCl which_RP paint_V2A it_NP red_A +mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A)) mkRCl : RP -> V2A -> NP -> AP -> RCl -- who paints it very red -mkRCl which_RP paint_V2A it_NP (mkAP red_A) +mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A))) mkRCl : RP -> V2S -> NP -> S -> RCl -- who answers to him that we sleep -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 : RP -> V2Q -> NP -> QS -> RCl -- who asks him who sleeps -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 : RP -> V2V -> NP -> VP -> RCl -- who begs him to sleep -mkRCl which_RP beg_V2V he_NP (mkVP sleep_V) +mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V))) mkRCl : RP -> A -> RCl -- who is old -mkRCl which_RP old_A +mkCN woman_N (mkRS (mkRCl which_RP old_A)) mkRCl : RP -> A -> NP -> RCl -- who is older than he -mkRCl which_RP old_A he_NP +mkCN woman_N (mkRS (mkRCl which_RP old_A he_NP)) mkRCl : RP -> A2 -> NP -> RCl -- who is married to him -mkRCl which_RP married_A2 he_NP +mkCN woman_N (mkRS (mkRCl which_RP married_A2 he_NP)) mkRCl : RP -> AP -> RCl -- who is very old -mkRCl which_RP (mkAP very_AdA old_A) +mkCN woman_N (mkRS (mkRCl which_RP (mkAP very_AdA old_A))) mkRCl : RP -> NP -> RCl -- who is the woman -mkRCl which_RP (mkNP the_Det woman_N) +mkCN woman_N (mkRS (mkRCl which_RP (mkNP the_Det woman_N))) mkRCl : RP -> N -> RCl -- who is a woman -mkRCl which_RP woman_N +mkCN student_N (mkRS (mkRCl which_RP woman_N)) mkRCl : RP -> CN -> RCl -- who is an old woman -mkRCl which_RP (mkCN old_A woman_N) +mkCN student_N (mkRS (mkRCl which_RP (mkCN old_A woman_N))) mkRCl : RP -> Adv -> RCl -- who is here -mkRCl which_RP here_Adv +mkCN woman_N (mkRS (mkRCl which_RP here_Adv)) mkRCl : RP -> VP -> RCl -- who always sleeps -mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)) +mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)))) mkRCl : RP -> NP -> V2 -> RCl -- who she loves -mkRCl which_RP she_NP love_V2 +mkCN woman_N (mkRS (mkRCl which_RP we_NP love_V2)) mkRCl : RP -> ClSlash -> RCl -- who she loves today --: -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))) -- which_RP : RP -- which/who --which_RP mkRP : Prep -> NP -> RP -> RP -- all the cities in which @@ -808,9 +808,9 @@ something_NP somewhere_Adv : Adv somewhere_Adv that_Quant : Quant -that_Quant +mkNP that_Quant house_N that_Subj : Subj -that_Subj +mkAdv that_Subj (mkS (mkCl she_NP sleep_V)) there_Adv : Adv there_Adv there7to_Adv : Adv -- to there @@ -822,7 +822,7 @@ therefore_PConj they_Pron : Pron they_Pron this_Quant : Quant -this_Quant +mkNP this_Quant house_N through_Prep : Prep mkAdv through_Prep it_NP to_Prep : Prep @@ -844,7 +844,7 @@ whatSg_IP when_IAdv : IAdv mkUtt when_IAdv when_Subj : Subj -when_Subj +mkAdv when_Subj (mkS (mkCl she_NP sleep_V)) where_IAdv : IAdv mkUtt where_IAdv which_IQuant : IQuant @@ -868,9 +868,9 @@ youPl_Pron youPol_Pron : Pron -- you (polite) youPol_Pron no_Quant : Quant -no_Quant +mkNP no_Quant house_N not_Predet : Predet -not_Predet +mkNP not_Predet everybody_NP if_then_Conj : Conj mkAdv if_then_Conj here_Adv there_Adv at_least_AdN : AdN diff --git a/lib/doc/synopsis.html b/lib/doc/synopsis.html index 11aecb63d..87e011e3c 100644 --- a/lib/doc/synopsis.html +++ b/lib/doc/synopsis.html @@ -536,17 +536,17 @@ Lexical category, constructors given in
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-> AP -> NP -> APmkAP as_CAdv (mkAP old_A) she_NP mkAP as_CAdv (mkAP old_A) she_NP reflAPalmost_AdNmkCard almostAdN (mkCard (mkNumeral n8_Unit)) mkCard almostAdN (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)) mkAdNas_CAdvas_CAdv as_CAdv less_CAdvmore_CAdvmore_CAdv more_CAdv mkCN-> VP -> CNmkCN (mkCN reason_N) (mkVP sleep_V) mkCN (mkCN reason_N) (mkVP sleep_V) mkCN-> SC -> CNmkCN (mkCN reason_N) (mkVP sleep_V) mkCN (mkCN reason_N) (mkVP sleep_V) mkCNmkCl-> V2V -> NP -> VP -> ClmkCl she_NP beg_V2V he_NP (mkVP sleep_V) mkCl she_NP beg_V2V he_NP (mkVP sleep_V) mkClmkClSlash-> 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)))) if_then_ConjmkAdv if_then_Conj here_Adv there_Adv mkAdv if_then_Conj here_Adv there_Adv or_ConjaPl_DetmkNP aPl_Det woman_N mkNP aPl_Det woman_N aSg_DetmkNP aSg_Det woman_N mkNP aSg_Det woman_N a_DetmkNP a_Det house_N mkNP a_Det house_N every_Detmany_DetmkNP many_Det house_N mkNP many_Det house_N mkDetthePl_DetmkNP thePl_Det house_N mkNP thePl_Det house_N theSg_DetmkNP theSg_Det house_N mkNP theSg_Det house_N the_DetmkNP the_Det house_N mkNP the_Det house_N how8much_IAdvmkUtt how8much_IAdv mkUtt how8much_IAdv how_IAdvwhichPl_IDetmkIP whichPl_IDet mkIP whichPl_IDet house_N which_IDetmkIP which_IDet mkIP which_IDet house_N everybody_NPeverybody_NP everybody_NP everything_NPeverything_NP everything_NP he_NPit_NPmkUtt it_NP mkUtt it_NP mkNPmkNP-> Adv -> NPmkUtt (mkNP (mkNP paris_PN) today_Adv) mkUtt (mkNP (mkNP paris_PN) today_Adv) mkNPnobody_NPnobody_NP nobody_NP nothing_NPnothing_NP nothing_NP she_NPsomebody_NPsomebody_NP somebody_NP something_NPsomething_NP something_NP they_NPall_PredetmkNP all_Predet (mkNP thePl_Det man_N) mkNP all_Predet (mkNP thePl_Det man_N) most_Predetnot_Predetnot_Predet mkNP not_Predet everybody_NP only_Predetexcept_PrepmkAdv except_Prep it_NP mkAdv except_Prep it_NP for_PrepmkAdv for_Prep it_NP mkAdv for_Prep it_NP from_Prepthrough_PrepmkAdv through_Prep it_Prep mkAdv through_Prep it_NP to_PrepmkAdv to_Prep it_Prep mkAdv to_Prep it_NP under_Prephe_Pronhe_Pron he_Pron i_Proni_Pron i_Pron it_Pronit_Pron it_Pron she_Pronshe_Pron she_Pron they_Pronthey_Pron they_Pron we_Pronwe_Pron we_Pron youPl_PronyouPl_Pron youPl_Pron youPol_PronyouPol_Pron youPol_Pron youSg_PronyouSg_Pron youSg_Pron mkQCl-> V2V -> NP -> VP -> QClmkQCl who_IP beg_V2V he_NP (mkVP sleep_V) mkQCl who_IP beg_V2V he_NP (mkVP sleep_V) mkQClmkQCl-> ClSlash -> QClmkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv) mkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv) mkQCla_QuantmkNP a_Quant house_N mkNP a_Quant house_N mkQuant-> QuantmkNP (mkQuant i_Pron) house_N mkNP (mkQuant i_Pron) house_N no_Quantno_Quant mkNP no_Quant house_N that_Quantthat_Quant mkNP that_Quant house_N the_QuantmkNP the_Quant house_N mkNP the_Quant house_N this_Quantthis_Quant mkNP this_Quant house_N mkRCl-> VP -> RClmkRCl which_RP (mkVP always_AdV (mkVP sleep_V)) mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)))) mkRCl-> V -> RClmkRCl which_RP sleep_V mkCN woman_N (mkRS (mkRCl which_RP sleep_V)) mkRCl-> V2 -> NP -> RClmkRCl which_RP love_V2 she_NP mkCN woman_N (mkRS (mkRCl which_RP love_V2 he_NP)) mkRCl-> V3 -> NP -> NP -> RClmkRCl which_RP send_V3 it_NP she_NP mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP)) mkRCl-> VV -> VP -> RClmkRCl which_RP want_VV (mkVP sleep_V) mkCN woman_N (mkRS (mkRCl which_RP want_VV (mkVP sleep_V))) mkRCl-> VS -> S -> RClmkRCl 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 -> RClmkRCl 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)))) mkRCl-> VA -> A -> RClmkRCl which_RP become_VA old_A mkCN woman_N (mkRS (mkRCl which_RP become_VA old_A)) mkRCl-> VA -> AP -> RClmkRCl which_RP become_VA (mkAP very_AdA old_A) mkCN woman_N (mkRS (mkRCl which_RP become_VA (mkAP very_AdA old_A))) mkRCl-> V2A -> NP -> A -> RClmkRCl 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 -> RClmkRCl which_RP paint_V2A it_NP (mkAP red_A) mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A))) mkRCl-> V2S -> NP -> S -> RClmkRCl 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 -> RClmkRCl 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 -> RClmkRCl which_RP beg_V2V he_NP (mkVP sleep_V) mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V))) mkRCl-> A -> RClmkRCl which_RP old_A mkCN woman_N (mkRS (mkRCl which_RP old_A)) mkRCl-> A -> NP -> RClmkRCl which_RP old_A he_NP mkCN woman_N (mkRS (mkRCl which_RP old_A he_NP)) mkRCl-> A2 -> NP -> RClmkRCl which_RP married_A2 he_NP mkCN woman_N (mkRS (mkRCl which_RP married_A2 he_NP)) mkRCl-> AP -> RClmkRCl which_RP (mkAP very_AdA old_A) mkCN woman_N (mkRS (mkRCl which_RP (mkAP very_AdA old_A))) mkRCl-> NP -> RClmkRCl which_RP (mkNP the_Det woman_N) mkCN woman_N (mkRS (mkRCl which_RP (mkNP the_Det woman_N))) mkRCl-> N -> RClmkRCl which_RP woman_N mkCN student_N (mkRS (mkRCl which_RP woman_N)) mkRCl-> CN -> RClmkRCl which_RP (mkCN old_A woman_N) mkCN student_N (mkRS (mkRCl which_RP (mkCN old_A woman_N))) mkRCl-> Adv -> RClmkRCl which_RP here_Adv mkCN woman_N (mkRS (mkRCl which_RP here_Adv)) mkRCl-> NP -> V2 -> RClmkRCl which_RP she_NP love_V2 mkCN woman_N (mkRS (mkRCl which_RP we_NP love_V2)) mkRCl-> ClSlash -> RClmkRCl 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))) mkRClmkRS-> (Ant) -> (Pol) -> RCl -> RSmkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V) mkCN woman_N (mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V)) mkRS-> RS -> RS -> RSmkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP she_NP love_V2)) mkCN woman_N (mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP we_NP love_V2))) mkRSmkS-> S -> SmkS today_Adv (mkS (mkCl she_NP sleep_V)) mkS today_Adv (mkS (mkCl she_NP sleep_V)) that_Subjthat_Subj mkAdv that_Subj (mkS (mkCl she_NP sleep_V)) when_Subjwhen_Subj mkAdv when_Subj (mkS (mkCl she_NP sleep_V)) mkVP-> S -> VPmkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) mkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) mkVPmkVP-> NP -> QS -> VPmkUtt (mkVP answer_V2S 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)) mkVPmkVPSlash-> QS -> VPSlashmkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_Idv (mkCl i_NP sleep_V))))) mkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_Idv (mkCl i_NP sleep_V))))) mkVPSlashmkVPSlash-> 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))) mkVPSlashmkVPSlash-> 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))) must_VVmust_VV must_VV want_VV