added conjugations

This commit is contained in:
krasimir
2008-02-27 22:21:56 +00:00
parent d320691533
commit fcfd71009e
5 changed files with 65 additions and 10 deletions

View File

@@ -89,6 +89,8 @@ concrete CatBul of Cat = open ResBul, Prelude, (R = ParamX) in {
-- Structural
Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ;
Subj = {s : Str} ;
Prep = {s : Str; c : Case} ;

View File

@@ -0,0 +1,47 @@
concrete ConjunctionBul of Conjunction =
CatBul ** open ResBul, Coordination, Prelude in {
flags optimize=all_subs ;
lin
ConjS = conjunctSS ;
DConjS = conjunctDistrSS ;
ConjAdv = conjunctSS ;
DConjAdv = conjunctDistrSS ;
ConjNP conj ss = conjunctTable Role conj ss ** {
a = {gn = conjGenNum (gennum DMasc conj.n) ss.a.gn; p = ss.a.p}
} ;
DConjNP conj ss = conjunctDistrTable Role conj ss ** {
a = {gn = conjGenNum (gennum DMasc conj.n) ss.a.gn; p = ss.a.p}
} ;
ConjAP conj ss = conjunctTable AForm conj ss ** {
isPre = ss.isPre
} ;
DConjAP conj ss = conjunctDistrTable AForm conj ss ** {
isPre = ss.isPre
} ;
-- These fun's are generated from the list cat's.
BaseS = twoSS ;
ConsS = consrSS comma ;
BaseAdv = twoSS ;
ConsAdv = consrSS comma ;
BaseNP x y = twoTable Role x y ** {a = conjAgr x.a y.a} ;
ConsNP xs x = consrTable Role comma xs x ** {a = conjAgr xs.a x.a} ;
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
lincat
[S] = {s1,s2 : Str} ;
[Adv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : Role => Str ; a : Agr} ;
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
}

View File

@@ -9,6 +9,7 @@ concrete GrammarBul of Grammar =
SentenceBul,
QuestionBul,
RelativeBul,
ConjunctionBul,
PhraseBul,
TextBul,
StructuralBul

View File

@@ -102,6 +102,17 @@ resource ResBul = ParamX ** open Prelude in {
--2 Transformations between parameter types
oper
conjGenNum : GenNum -> GenNum -> GenNum = \a,b ->
case <a,b> of {
<GSg _,GSg g> => GSg g ;
_ => GPl
} ;
conjAgr : Agr -> Agr -> Agr = \a,b -> {
gn = conjGenNum a.gn b.gn ;
p = conjPerson a.p b.p
} ;
gennum : DGender -> Number -> GenNum = \g,n ->
case n of {
Sg => GSg (case g of {

View File

@@ -10,15 +10,13 @@ concrete StructuralBul of Structural = CatBul **
almost_AdA, almost_AdN = ss "ïî÷òè" ;
although_Subj = ss ["âúïðåêè ÷å"] ;
{- always_AdV = ss "always" ;
and_Conj = ss "and" ** {n = Pl} ;
-}
and_Conj = ss "è" ** {n = Pl} ;
because_Subj = ss "çàùîòî" ;
before_Prep = mkPrep "ïðåäè" Acc ;
behind_Prep = mkPrep "çàä" Acc ;
between_Prep = mkPrep "ìåæäó" Acc ;
{-
both7and_DConj = sd2 "both" "and" ** {n = Pl} ;
-}
both7and_DConj = sd2 "è" "è" ** {n = Pl} ;
but_PConj = ss "íî" ;
by8agent_Prep = mkPrep "÷ðåç" Acc ;
by8means_Prep = mkPrep "÷ðåç" Acc ;
@@ -37,9 +35,7 @@ concrete StructuralBul of Structural = CatBul **
} ;
-}
during_Prep = mkPrep ["ïî âðåìå íà"] Acc ;
{-
either7or_DConj = sd2 "either" "or" ** {n = Sg} ;
-}
either7or_DConj = sd2 "èëè" "èëè" ** {n = Sg} ;
everybody_NP = mkNP "âñåêè" (GSg Masc) P3 ;
every_Det = mkDeterminerSg "âñåêè" "âñÿêà" "âñÿêî";
everything_NP = mkNP "âñÿêî" (GSg Neut) P3 ;
@@ -84,9 +80,7 @@ concrete StructuralBul of Structural = CatBul **
on_Prep = mkPrep "íà" Acc ;
---- one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
only_Predet = {s = \\_ => "ñàìî"} ;
{-
or_Conj = ss "or" ** {n = Sg} ;
-}
or_Conj = ss "èëè" ** {n = Sg} ;
otherwise_PConj = ss "èíà÷å" ;
part_Prep = mkPrep "îò" Acc ;
please_Voc = ss "ìîëÿ" ;