forked from GitHub/gf-rgl
@@ -22,7 +22,7 @@ Ice,Icelandic,icelandic,,,,,,n,,y
|
|||||||
Ina,Interlingua,interlingua,,,y,,n,n,,n
|
Ina,Interlingua,interlingua,,,y,,n,n,,n
|
||||||
Ita,Italian,italian,Romance,,y,,,,y,y
|
Ita,Italian,italian,Romance,,y,,,,y,y
|
||||||
Jpn,Japanese,japanese,,,,,,,,y
|
Jpn,Japanese,japanese,,,,,,,,y
|
||||||
Lat,Latin,latin,,,y,,n,n,,n
|
Lat,Latin,latin,,,,,y,n,n,y
|
||||||
Lav,Latvian,latvian,,,,,,,y,y
|
Lav,Latvian,latvian,,,,,,,y,y
|
||||||
Mlt,Maltese,maltese,,,,,,,,y
|
Mlt,Maltese,maltese,,,,,,,,y
|
||||||
Mon,Mongolian,mongolian,,,,,,n,,y
|
Mon,Mongolian,mongolian,,,,,,n,,y
|
||||||
|
|||||||
|
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../latin:../common:../abstract:../prelude
|
--# -path=.:../latin:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryLat = SyntaxLat, LexiconLat, ParadigmsLat - [mkAdv,mkAdN,mkOrd] ;
|
resource TryLat = SyntaxLat, LexiconLat, ParadigmsLat - [mkAdv,mkAdN,mkOrd,mkNum] ;
|
||||||
|
|||||||
@@ -2,45 +2,52 @@ concrete AdjectiveLat of Adjective = CatLat ** open ResLat, Prelude in {
|
|||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
-- PositA : A -> AP ; -- warm
|
||||||
|
PositA a =
|
||||||
|
{ s = \\ag => a.s ! Posit ! ag };
|
||||||
|
|
||||||
PositA a = -- A -> AP
|
-- ComparA : A -> NP -> AP ; -- warmer than I
|
||||||
{
|
|
||||||
s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
|
|
||||||
};
|
|
||||||
|
|
||||||
{-
|
|
||||||
ComparA a np = {
|
ComparA a np = {
|
||||||
s = \\_ => a.s ! AAdj Compar ++ "than" ++ np.s ! Nom ;
|
s = \\ag => a.s ! Compar ! ag ++ "quam" ++ np.s ! Nom ;
|
||||||
isPre = False
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- ComplA2 : A2 -> NP -> AP ; -- married to her
|
||||||
|
|
||||||
ComplA2 a np = {
|
ComplA2 a np = {
|
||||||
s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++ np.s ! a.c.c ;
|
||||||
isPre = False
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- ReflA2 : A2 -> AP -- married to myself
|
||||||
ReflA2 a = {
|
ReflA2 a = {
|
||||||
s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ;
|
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++
|
||||||
isPre = False
|
table { Acc => "memet" ; _ => "egomet" } ! a.c.c;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SentAP ap sc = {
|
-- UseA2 : A2 -> AP ; -- married
|
||||||
s = \\a => ap.s ! a ++ sc.s ;
|
UseA2 = PositA ;
|
||||||
isPre = False
|
|
||||||
} ;
|
-- UseComparA : A -> AP ; -- warmer
|
||||||
-}
|
UseComparA a =
|
||||||
|
{ s = \\ag => a.s ! Compar ! ag };
|
||||||
|
|
||||||
|
-- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John
|
||||||
|
CAdvAP cadv ap np =
|
||||||
|
{ s = \\ag => cadv.s ++ ap.s ! ag ++ cadv.p ++ np.s ! Nom } ;
|
||||||
|
|
||||||
|
-- The superlative use is covered in $Ord$.
|
||||||
|
|
||||||
|
-- AdjOrd : Ord -> AP ; -- warmest
|
||||||
|
AdjOrd a = { s = table { Ag g n c => a.s ! g ! n ! c } } ;
|
||||||
|
|
||||||
|
-- SentAP : AP -> SC -> AP ; -- good that she is here
|
||||||
|
SentAP ap sc =
|
||||||
|
{ s = \\a => ap.s ! a ++ sc.s } ;
|
||||||
|
|
||||||
|
|
||||||
-- AdAP : AdA -> AP -> AP ; -- very warm
|
-- AdAP : AdA -> AP -> AP ; -- very warm
|
||||||
AdAP ada ap = {
|
AdAP ada ap =
|
||||||
s = \\agr => ada.s ++ ap.s ! agr ;
|
{ s = \\agr => ada.s ++ ap.s ! agr } ;
|
||||||
} ;
|
|
||||||
|
|
||||||
-- UseA2 : A2 -> AP
|
|
||||||
UseA2 a = -- A2 -> AP
|
|
||||||
{
|
|
||||||
s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
-- AdvAP : AP -> Adv -> AP ; -- warm by nature
|
||||||
|
AdvAP ap adv =
|
||||||
|
{ s = \\ag => ap.s ! ag ++ adv.s ! Posit} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,38 @@
|
|||||||
concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude in
|
concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude, ParadigmsLat in
|
||||||
{
|
{
|
||||||
|
|
||||||
lin
|
lin
|
||||||
-- PositAdvAdj a = {s = a.s ! AAdv} ;
|
|
||||||
-- ComparAdvAdj cadv a np = {
|
-- PositAdvAdj : A -> Adv ; -- warmly
|
||||||
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom
|
PositAdvAdj a = a.adv ;
|
||||||
-- } ;
|
|
||||||
-- ComparAdvAdjS cadv a s = {
|
|
||||||
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ s.s
|
|
||||||
-- } ;
|
|
||||||
|
|
||||||
-- PrepNP : Prep -> NP -> Adv ; -- in the house
|
-- PrepNP : Prep -> NP -> Adv ; -- in the house
|
||||||
PrepNP prep np = {s = prep.s ++ np.s ! prep.c } ;
|
PrepNP prep np =
|
||||||
|
mkAdv (prep.s ++ np.adv ++ np.det.s ! np.g ! prep.c ++ np.preap.s ! (Ag np.g np.n prep.c) ++
|
||||||
|
np.s ! prep.c ++ np.postap.s ! (Ag np.g np.n prep.c ) ++ np.det.sp ! np.g ! prep.c ) ;
|
||||||
|
|
||||||
-- AdAdv = cc2 ;
|
|
||||||
|
|
||||||
|
-- ComparAdvAdj : CAdv -> A -> NP -> Adv ; -- more warmly than John
|
||||||
|
ComparAdvAdj cadv a np =
|
||||||
|
mkAdv (cadv.s ++ a.adv.s ! Compar ++ cadv.p ++ np.s ! Nom) ;
|
||||||
|
|
||||||
|
-- ComparAdvAdjS : CAdv -> A -> S -> Adv ; -- more warmly than he runs
|
||||||
|
ComparAdvAdjS cadv a s =
|
||||||
|
mkAdv (cadv.s ++ a.adv.s ! Compar ++ cadv.p ++ combineSentence s ! SPreS ! PreV ! SOV ) ;
|
||||||
|
|
||||||
|
-- AdAdv : AdA -> Adv -> Adv ; -- very quickly
|
||||||
|
AdAdv ada adv = mkAdv (ada.s ++ (adv.s ! Posit) ) ;
|
||||||
|
|
||||||
|
-- PositAdAAdj : A -> AdA ; -- extremely
|
||||||
|
PositAdAAdj a =
|
||||||
|
{ s = a.adv.s ! Posit } ;
|
||||||
|
|
||||||
-- Subordinate clauses can function as adverbs.
|
-- Subordinate clauses can function as adverbs.
|
||||||
|
|
||||||
-- SubjS : Subj -> S -> Adv ; -- when she sleeps
|
-- SubjS : Subj -> S -> Adv ; -- when she sleeps
|
||||||
SubjS = cc2 ;
|
SubjS subj s = mkAdv (subj.s ++ combineSentence s ! SPreS ! PreV ! SOV ) ;
|
||||||
|
|
||||||
-----b AdvSC s = s ; --- this rule give stack overflow in ordinary parsing
|
-- AdnCAdv : CAdv -> AdN ; -- less (than five)
|
||||||
--
|
AdnCAdv cadv = {s = cadv.s ++ cadv.p} ;
|
||||||
-- AdnCAdv cadv = {s = cadv.s ++ "than"} ;
|
|
||||||
--
|
--
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
concrete CatLat of Cat = CommonX-[Adv] ** open ResLat, ParamX, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
|||||||
|
|
||||||
---- Tensed/Untensed
|
---- Tensed/Untensed
|
||||||
--
|
--
|
||||||
S = {s : Str} ;
|
S = Sentence ;
|
||||||
QS = {s : QForm => Str} ;
|
QS = {s : QForm => Str} ;
|
||||||
-- RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
|
-- RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
|
||||||
-- SSlash = {s : Str ; c2 : Str} ;
|
-- SSlash = {s : Str ; c2 : Str} ;
|
||||||
@@ -15,11 +15,12 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
|||||||
--
|
--
|
||||||
Cl = Clause ;
|
Cl = Clause ;
|
||||||
ClSlash = Clause ;
|
ClSlash = Clause ;
|
||||||
Imp = {s : Polarity => ImpForm => Str} ;
|
Imp = {s : Polarity => VImpForm => Str} ;
|
||||||
--
|
--
|
||||||
---- Question
|
---- Question
|
||||||
--
|
--
|
||||||
QCl = {s : ResLat.Tense => Anteriority => Polarity => QForm => Str } ;
|
-- TO FIX
|
||||||
|
QCl = Clause ; -- {s : ResLat.Tense => Anteriority => Polarity => QForm => Str } ;
|
||||||
IP = {s : Case => Str ; n : Number} ;
|
IP = {s : Case => Str ; n : Number} ;
|
||||||
IComp = {s : Str} ;
|
IComp = {s : Str} ;
|
||||||
IDet = Determiner ; --{s : Str ; n : Number} ;
|
IDet = Determiner ; --{s : Str ; n : Number} ;
|
||||||
@@ -36,37 +37,35 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
|||||||
---- Verb
|
---- Verb
|
||||||
--
|
--
|
||||||
VP = ResLat.VerbPhrase ;
|
VP = ResLat.VerbPhrase ;
|
||||||
VPSlash = VP ** {c2 : Preposition} ;
|
VPSlash = ResLat.ObjectVerbPhrase ; -- VP ** {c2 : Preposition} ;
|
||||||
Comp = {s : Agr => Str} ;
|
Comp = {s : Agr => Str} ;
|
||||||
--
|
--
|
||||||
---- Adjective
|
---- Adjective
|
||||||
--
|
--
|
||||||
-- AP = Adjective ** {isPre : Bool} ; ---- {s : Agr => Str ; isPre : Bool} ;
|
-- AP = Adjective ** {isPre : Bool} ; ---- {s : Agr => Str ; isPre : Bool} ;
|
||||||
AP =
|
AP = AdjectivePhrase ;
|
||||||
{
|
|
||||||
s : Agr => Str ;
|
|
||||||
-- isPre : Bool ; -- should have no use in latin because adjectives can appear variably before and after nouns
|
|
||||||
} ;
|
|
||||||
--
|
--
|
||||||
---- Noun
|
---- Noun
|
||||||
--
|
--
|
||||||
CN = ResLat.ComplexNoun ;
|
CN = ResLat.CommonNoun ;
|
||||||
NP = ResLat.NounPhrase ;
|
NP = ResLat.NounPhrase ;
|
||||||
Pron = ResLat.Pronoun ;
|
Pron = ResLat.Pronoun ;
|
||||||
Det = Determiner ;
|
Det = Determiner ;
|
||||||
Predet, Ord = {s : Str} ;
|
Predet = {s : Str} ;
|
||||||
|
Ord = Ordinal ;
|
||||||
Num = {s : Gender => Case => Str ; n : Number} ;
|
Num = {s : Gender => Case => Str ; n : Number} ;
|
||||||
-- Card = {s : Str ; n : Number} ;
|
Card = {s : Gender => Case => Str ; n : Number} ;
|
||||||
Quant = Quantifier ;
|
Quant = Quantifier ;
|
||||||
--
|
--
|
||||||
---- Numeral
|
---- Numeral
|
||||||
--
|
--
|
||||||
-- Numeral = {s : CardOrd => Str ; n : Number} ;
|
Numeral = ResLat.Numeral ;
|
||||||
Digits = {s : Str ; unit : Unit} ;
|
Digits = {s : Str ; unit : Unit} ;
|
||||||
--
|
--
|
||||||
---- Structural
|
---- Structural
|
||||||
--
|
--
|
||||||
Conj = {s1,s2 : Str ; n : Number} ;
|
Conj = ResLat.Conjunction; --{s1,s2 : Str ; n : Number} ;
|
||||||
Subj = {s : Str} ;
|
Subj = {s : Str} ;
|
||||||
Prep = ResLat.Preposition ;
|
Prep = ResLat.Preposition ;
|
||||||
--
|
--
|
||||||
@@ -79,10 +78,16 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
|||||||
V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
||||||
|
|
||||||
A = Adjective ;
|
A = Adjective ;
|
||||||
|
Adv = Adverb ;
|
||||||
|
|
||||||
N = Noun ;
|
N = Noun ;
|
||||||
N2 = Noun ** { c : Prep } ;
|
N2 = Noun ** { c : Prep } ;
|
||||||
N3 = Noun ** { c : Prep ; c2 : Prep } ;
|
N3 = Noun ** { c : Prep ; c2 : Prep } ;
|
||||||
PN = Noun ;
|
PN = Noun ;
|
||||||
A2 = Adjective ** { c : Prep} ;
|
A2 = Adjective ** { c : Prep} ;
|
||||||
|
|
||||||
|
linref
|
||||||
|
NP = \np -> np.preap.s ! Ag np.g np.n Nom ++ np.s ! Nom ++ np.postap.s ! Ag np.g np.n Nom ;
|
||||||
|
VP = \vp -> vp.adv ++ vp.inf ! VInfActPres ++ vp.obj ++ vp.compl ! Ag Masc Sg Nom ;
|
||||||
|
S = \s -> combineSentence s ! SPreO ! PreO ! SOV ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,41 @@
|
|||||||
concrete ConjunctionLat of Conjunction =
|
concrete ConjunctionLat of Conjunction =
|
||||||
CatLat ** open ResLat, StructuralLat, Coordination, Prelude in {
|
CatLat ** open ResLat, StructuralLat, Coordination, Prelude, ParadigmsLat in {
|
||||||
--
|
--
|
||||||
-- flags optimize=all_subs ;
|
-- flags optimize=all_subs ;
|
||||||
--
|
--
|
||||||
|
|
||||||
lin
|
lin
|
||||||
--
|
-- ConjS : Conj -> ListS -> S ; -- he walks and she runs
|
||||||
ConjS = conjunctDistrSS ;
|
-- TO FIX
|
||||||
--
|
-- ConjS conj ss = { s = \\_ => conjunctDistrX conj (ss.l ! conj.c) ; sadv = lin Adv { s = []} ; neg = ss.neg } ;
|
||||||
ConjAdv = conjunctDistrSS ;
|
|
||||||
--
|
-- ConjAdv : Conj -> ListAdv -> Adv ; -- here or there
|
||||||
-- ConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
ConjAdv conj ss = mkAdv (conjunctDistrSS conj (ss.l ! conj.c) ).s ;
|
||||||
-- a = conjAgr (agrP3 conj.n) ss.a
|
|
||||||
-- } ;
|
-- ConjNP : Conj -> ListNP -> NP ; -- she or we
|
||||||
--
|
ConjNP conj nps =
|
||||||
ConjAP conj ss = conjunctDistrTable Agr conj ss ;
|
{
|
||||||
--
|
s = case conj.c of {
|
||||||
--{---b
|
And => case nps.isBase of {
|
||||||
--
|
False => (conjunctDistrTable Case conj (nps.l ! And)).s ;
|
||||||
-- ConjS = conjunctSS ;
|
True => \\c => conj.s1 ++ (nps.l ! And).s1 ! c ++ conj.s2 ++ (nps.l ! And).s2 ! c
|
||||||
|
} ;
|
||||||
|
c => (conjunctDistrTable Case conj (nps.l ! And)).s
|
||||||
|
} ;
|
||||||
|
n = case conj.c of { And => Pl ; _ => nps.n } ;
|
||||||
|
g = nps.g ;
|
||||||
|
p = nps.p ;
|
||||||
|
adv = nps.adv ;
|
||||||
|
preap = nps.preap ;
|
||||||
|
postap = nps.postap ;
|
||||||
|
det = { s = \\_,_ => "" ; sp = \\_,_ => "" ; n = nps.n };
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- ConjAP : Conj -> ListAP -> AP ;
|
||||||
|
ConjAP conj ss = conjunctDistrTable Agr conj (ss.l ! conj.c) ;
|
||||||
|
|
||||||
|
--
|
||||||
-- DConjS = conjunctDistrSS ;
|
-- DConjS = conjunctDistrSS ;
|
||||||
--
|
|
||||||
-- ConjAdv = conjunctSS ;
|
|
||||||
-- DConjAdv = conjunctDistrSS ;
|
-- DConjAdv = conjunctDistrSS ;
|
||||||
--
|
--
|
||||||
-- ConjNP conj ss = conjunctTable Case conj ss ** {
|
-- ConjNP conj ss = conjunctTable Case conj ss ** {
|
||||||
@@ -29,29 +44,87 @@ concrete ConjunctionLat of Conjunction =
|
|||||||
-- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
-- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||||
-- a = conjAgr (agrP3 conj.n) ss.a
|
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
|
||||||
-- ConjAP conj ss = conjunctTable Agr conj ss ;
|
|
||||||
--
|
|
||||||
-- DConjAP conj ss = conjunctDistrTable Agr conj ss ** {
|
-- DConjAP conj ss = conjunctDistrTable Agr conj ss ** {
|
||||||
-- isPre = ss.isPre
|
-- isPre = ss.isPre
|
||||||
-- } ;
|
-- } ;
|
||||||
---}
|
---}
|
||||||
--
|
--
|
||||||
---- These fun's are generated from the list cat's.
|
---- These fun's are generated from the list cat's.
|
||||||
--
|
--
|
||||||
-- BaseS = twoSS ;
|
|
||||||
-- ConsS = consrSS comma ;
|
-- BaseS : S -> S -> ListS
|
||||||
BaseAdv = twoSS ;
|
BaseS x y = {
|
||||||
ConsAdv = consrSS "et" ;
|
l = \\c => { s1 = x ; s2 = y } ;
|
||||||
-- BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
|
} ;
|
||||||
-- ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
|
|
||||||
BaseAP x y = lin A ( twoTable Agr x y ) ;
|
-- ConsS : S -> ListS -> ListS
|
||||||
ConsAP xs x = lin A ( consrTable Agr and_Conj.s2 xs x );
|
-- TO FIX
|
||||||
|
-- ConsS x xs = { l = \\_ => consrSS bindComma (ss (x.s ! PreS)) (xs.l ! Comma) };
|
||||||
|
-- ConsS s ss = {
|
||||||
|
-- l = \\c =>
|
||||||
|
-- { s1 = ss.s1 ++
|
||||||
|
-- table {
|
||||||
|
-- And => and_Conj
|
||||||
|
-- } ! c
|
||||||
|
-- ++ ss.s2 ;
|
||||||
|
-- s2 = s }
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
-- BaseAdv : Adv -> Adv -> ListAdv
|
||||||
|
BaseAdv x y = { l = \\c => twoSS (ss (x.s ! Posit)) (ss (y.s ! Posit)) } ;
|
||||||
|
|
||||||
|
-- ConsAdv : Adv -> ListAdv -> ListAdv
|
||||||
|
ConsAdv x xs = { l = \\_ => consrSS bindComma (ss (x.s ! Posit)) (xs.l ! Comma) } ;
|
||||||
|
|
||||||
|
-- BaseNP : NP -> NP -> ListNP ; -- John, Mary
|
||||||
|
BaseNP x y = {
|
||||||
|
l = \\c => twoTable Case x y ;
|
||||||
|
g = Masc ; -- Just guessing (but maybe sexist bullshit)
|
||||||
|
n = matchNumber x.n y.n ;
|
||||||
|
p = P3 ;
|
||||||
|
adv = x.adv ++ y.adv ;
|
||||||
|
preap = lin AP { s = \\a => x.preap.s ! a ++ y.preap.s ! a } ;
|
||||||
|
postap = lin AP { s = \\a => x.postap.s ! a ++ y.postap.s ! a } ;
|
||||||
|
isBase = True ;
|
||||||
|
det = { s = \\g,c => x.det.s ! g ! c ++ y.det.s ! g ! c ; sp = \\g,c => x.det.sp ! g ! c ++ y.det.sp ! g ! c ; n = matchNumber x.get.n y.get.n } ;
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- ConsNP : NP -> ListNP -> ListNP ; -- John, Mary, Bill
|
||||||
|
ConsNP x xs = {
|
||||||
|
l = \\_ => consrTable Case bindComma x ( xs.l ! Comma );
|
||||||
|
n = matchNumber x.n xs.n ;
|
||||||
|
g = xs.g ;
|
||||||
|
p = xs.p ;
|
||||||
|
adv = x.adv ++ xs.adv ;
|
||||||
|
preap = lin AP { s = \\a => x.preap.s ! a ++ xs.preap.s ! a } ;
|
||||||
|
postap = lin AP { s = \\a => x.postap.s ! a ++ xs.postap.s ! a } ;
|
||||||
|
isBase = False
|
||||||
|
-- TODO det
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- BaseAP : AP -> AP -> ListAP
|
||||||
|
BaseAP x y = { l = \\c => twoTable Agr x y };
|
||||||
|
|
||||||
|
-- ConsAP : AP -> ListAP -> ListAP
|
||||||
|
ConsAP x xs =
|
||||||
|
{ l = \\_ => consrTable Agr and_Conj.s2 x (xs.l ! Comma ) } ;
|
||||||
--
|
--
|
||||||
lincat
|
lincat
|
||||||
[S] = {s1,s2 : Str} ;
|
[S] = { l : Coordinator => {s1,s2 : S} } ; -- TO FIX
|
||||||
[Adv] = {s1,s2 : Str} ;
|
[Adv] = { l: Coordinator => {s1,s2 : Str}} ;
|
||||||
-- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
|
[NP] = {l : Coordinator => {s1,s2 : Case => Str} ; g : Gender ; n : Number ; p : Person ; adv : Str ; preap : AP ; postap : AP ; isBase : Bool } ;
|
||||||
[AP] = {s1,s2 : Agr => Str } ;
|
[AP] = {l : Coordinator => {s1,s2 : Agr => Str } } ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
-- Generates a new number value given two number values.
|
||||||
|
-- Pl if any of the two is Pl
|
||||||
|
-- Sg otherwise
|
||||||
|
matchNumber : Number -> Number -> Number = \n1,n2 ->
|
||||||
|
case <n1,n2> of {
|
||||||
|
<Pl,_> => Pl ;
|
||||||
|
<_,Pl> => Pl ;
|
||||||
|
<_,_> => Sg
|
||||||
|
} ;
|
||||||
--
|
--
|
||||||
}
|
}
|
||||||
|
|||||||
5
src/latin/ConstructionLat.gf
Normal file
5
src/latin/ConstructionLat.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:api
|
||||||
|
concrete ConstructionLat of Construction = CatLat **
|
||||||
|
open SyntaxLat, SymbolicLat, ParadigmsLat,
|
||||||
|
(L = LexiconLat), (E = ExtraLat), (G = GrammarLat), (I = IrregLat), (R = ResLat), (N = NounLat), Prelude in {
|
||||||
|
}
|
||||||
1
src/latin/DictLat.gf
Symbolic link
1
src/latin/DictLat.gf
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
dict/DictLat.gf
|
||||||
1
src/latin/DictLatAbs.gf
Symbolic link
1
src/latin/DictLatAbs.gf
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
dict/DictLatAbs.gf
|
||||||
2
src/latin/DocumentationLat.gf
Normal file
2
src/latin/DocumentationLat.gf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
concrete DocumentationLat of Documentation = {
|
||||||
|
}
|
||||||
1
src/latin/ExtendLat.gf
Normal file
1
src/latin/ExtendLat.gf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
concrete ExtendLat of Extend = ExtendFunctor with (Grammar=GrammarLat);
|
||||||
@@ -1,13 +1,54 @@
|
|||||||
concrete ExtraLat of ExtraLatAbs =
|
concrete ExtraLat of ExtraLatAbs =
|
||||||
CatLat,
|
CatLat, ExtraLexiconLat, ConjunctionLat **
|
||||||
ExtraLexiconLat **
|
open ResLat, ParadigmsLat, Coordination, Prelude in {
|
||||||
open ResLat, Coordination, Prelude in {
|
lincat CS = Str ;
|
||||||
lin
|
lin
|
||||||
|
useS s = combineSentence s ! SPreO ! PreO ! SOV ;
|
||||||
|
-- PastPartAP : VPSlash -> AP ; -- lost (opportunity) ; (opportunity) lost in space
|
||||||
|
-- PastPartAP vp = { s = vp.part ! VPassPerf } ;
|
||||||
|
|
||||||
UsePronNonDrop p = -- Pron -> NP
|
UsePronNonDrop p = -- Pron -> NP
|
||||||
{
|
{
|
||||||
g = p.g ;
|
g = p.pers.g ;
|
||||||
n = p.n ;
|
n = p.pers.n ;
|
||||||
p = p.p ;
|
p = p.p ;
|
||||||
s = p.pers ! PronNonDrop ! PronNonRefl ;
|
s = p.pers.s ! PronNonDrop ! PronNonRefl ;
|
||||||
|
adv = "" ;
|
||||||
|
preap, postap = { s = \\_ => "" } ;
|
||||||
|
det = { s = \\_,_ => "" ; sp = \\_,_ => "" ; n = p.pers.n } ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
AdjCNPre ap cn = -- AP -> CN -> CN
|
||||||
|
addAdjToCN (lin AP ap) (lin CN cn) Post ;
|
||||||
|
|
||||||
|
-- ConjNP : Conj -> ListNP -> NP ; -- she or we
|
||||||
|
ConjNPque conj nps =
|
||||||
|
{
|
||||||
|
s = case conj.c of {
|
||||||
|
And => case nps.isBase of {
|
||||||
|
False => (conjunctDistrTable Case conj (nps.l ! And)).s ;
|
||||||
|
True => \\c => (nps.l ! And).s1 ! c ++ (nps.l ! And).s2 ! c ++ BIND ++ "que"
|
||||||
|
} ;
|
||||||
|
c => (conjunctDistrTable Case conj (nps.l ! And)).s
|
||||||
|
} ;
|
||||||
|
n = case conj.c of { And => Pl ; _ => nps.n } ;
|
||||||
|
g = nps.g ;
|
||||||
|
p = nps.p ;
|
||||||
|
adv = nps.adv ;
|
||||||
|
preap = nps.preap ;
|
||||||
|
postap = nps.postap ;
|
||||||
|
det = { s = \\_,_ => "" ; sp = \\_,_ => "" ; n = nps.n };
|
||||||
|
} ;
|
||||||
|
|
||||||
|
everybodyFem_NP = regNP "quisque" "quemque" "cuiusque" "cuique" "quoque" "quisque" Fem Sg ;-- regNP "quisquae" Sg ; -- L...
|
||||||
|
somebodyFem_NP = regNP "aliquis" "aliquem" "alicuius" "clicui" "aliquo" "aliquis" Fem Sg ; -- Bayer-Lindauer 60.1
|
||||||
|
nobodyFem_NP = regNP "nemo" "neminem" "neminis" "nemini" "nemine" "nemo" Fem Sg ; -- Bayer Lindauer 60.4
|
||||||
|
|
||||||
|
Nom_Prep = mkPrep "" Nom ;
|
||||||
|
Gen_Prep = mkPrep "" Gen ;
|
||||||
|
Acc_Prep = mkPrep "" Acc ;
|
||||||
|
Dat_Prep = mkPrep "" Dat ;
|
||||||
|
Abl_Prep = mkPrep "" Abl ;
|
||||||
|
inAbl_Prep = mkPrep "in" Abl ;
|
||||||
|
onAbl_Prep = mkPrep "in" Abl ; -- L...
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,32 @@
|
|||||||
abstract ExtraLatAbs =
|
abstract ExtraLatAbs =
|
||||||
Extra,
|
Extra, ExtraLexiconLatAbs, Conjunction
|
||||||
ExtraLexiconLatAbs **
|
** {
|
||||||
{
|
cat CS ;
|
||||||
fun
|
fun
|
||||||
UsePronNonDrop : Pron -> NP ;
|
useS : S -> CS ;
|
||||||
|
-- do not drop pronouns
|
||||||
|
UsePronNonDrop : Pron -> NP ;
|
||||||
|
|
||||||
|
-- add adjective before the noun
|
||||||
|
AdjCNPre : AP -> CN -> CN ;
|
||||||
|
|
||||||
|
-- handle conjunction with suffix
|
||||||
|
ConjNPque : Conj -> ListNP -> NP ;
|
||||||
|
|
||||||
|
-- Alternative form for female noun phrase
|
||||||
|
everybodyFem_NP : NP ;
|
||||||
|
somebodyFem_NP : NP ;
|
||||||
|
nobodyFem_NP : NP ;
|
||||||
|
|
||||||
|
|
||||||
|
-- Some empty prepositions to enforce cases
|
||||||
|
Nom_Prep : Prep ;
|
||||||
|
Gen_Prep : Prep ;
|
||||||
|
Acc_Prep : Prep ;
|
||||||
|
Dat_Prep : Prep ;
|
||||||
|
Abl_Prep : Prep ;
|
||||||
|
|
||||||
|
-- Preposition with alternate case
|
||||||
|
inAbl_Prep : Prep ;
|
||||||
|
onAbl_Prep : Prep ;
|
||||||
}
|
}
|
||||||
|
|||||||
453
src/latin/ExtraLexCaesar.gf
Normal file
453
src/latin/ExtraLexCaesar.gf
Normal file
@@ -0,0 +1,453 @@
|
|||||||
|
concrete ExtraLexCaesar of ExtraLexCaesarAbs = CatLat ** open Prelude,ParadigmsLat,ResLat, IrregLat, LexiconLat,StructuralLat in {
|
||||||
|
lin
|
||||||
|
a_Prep = mkPrep "a" Abl ;
|
||||||
|
ab_Prep = mkPrep "ab" Abl ;
|
||||||
|
abdere_V = mkV "abdere" "abdo" "abdidi" "abditum";
|
||||||
|
abducere_V = mkV "abducere" "abduco" "abduxi" "abductum" ; -- prefixVerb "ab" ducere_V; -- ab + ducere, missing abduci (inf VInfPassPres : abduceri)
|
||||||
|
abesse_V = prefixVerb "ab" be_V; -- ab + esse, missing absente?
|
||||||
|
abicere_V = mkV "abicere" "abicio" "abieci" "abiectum"; -- prefixVerb "ab" iacere_V; -- ab + iacere
|
||||||
|
abscisus_A = mkA "abscisus";
|
||||||
|
absens_A = mkA "absens" "absentis"; -- missing absente
|
||||||
|
absimilis_A = mkA "absimilis" "absimile"; -- missing absimili (s Posit (Ag Masc Sg Dat) : absimii)
|
||||||
|
abstinere_V2 = mkV2 (mkV "abstinere"); -- prefixVerb2 "ab" tenere_V2 ; -- -- ab + tenere
|
||||||
|
abstrahere_V2 = mkV2 (mkV "abstrahere" "abstraho" "abstraxi" "abstractum");-- prefixVerb2 "ab" trahere_V2 ; -- ab + trahere
|
||||||
|
-- ac_Conj = mkConj "" "ac" Sg ;
|
||||||
|
accedere_V = mkV "adcedere" "adcedo" "adcessi" "adcessum"; -- prefixVerb "ad" cedere_V ; -- ad + cedere
|
||||||
|
accendere_V = mkV "accendere" "accendo" "accendi" "accensum";
|
||||||
|
accidere_V = mkV "accidere" "accido" "accidi" "accisum"; -- ad + caedere?
|
||||||
|
accipere_V = mkV "accipere" "accipio" "accepi" "acceptum"; -- prefixVerb "ad" capere_V; -- ad + capere
|
||||||
|
acclivis_A = mkA "acclivis" "acclive" ;
|
||||||
|
acclivitas_N = mkN "acclivitas" "acclivitatis" feminine;
|
||||||
|
accommodare_V = mkV "accommodare" ;
|
||||||
|
accommodatus_A = mkA "accommodatus" ;
|
||||||
|
accurrere_V = mkV "accurrere" "accurro" "accucurri" "accursum"; -- prefixVerb "ad" currere_V; -- ad + currere
|
||||||
|
accusare_V = mkV "accusare";
|
||||||
|
acervus_N = mkN "acervus" ;
|
||||||
|
acies_N = mkN "acies" ;
|
||||||
|
acriter_Adv = ss "acriter"; -- comparison???
|
||||||
|
ad_Prep = mkPrep "ad" Acc;
|
||||||
|
adaequare_V = mkV "adaequare"; -- ad + aequare?
|
||||||
|
adamare_V2 = mkV2 (mkV "adamare"); -- prefixVerb2 "ad" love_V2; -- ad + amare, missing adamassent (act (VAct VAnt (VImpf VConj) Pl P3) : adamavissent)?
|
||||||
|
adducere_V = mkV "adducere" "adduco" "adduxi" "adductum"; -- prefixVerb "ad" ducere_V; -- ad + ducere, missing adduci
|
||||||
|
adequitare_V = mkV "adequitare"; -- prefixVerb "ad" equitare_V; -- ad + equitare
|
||||||
|
adesse_V = prefixVerb "ad" be_V; -- ad + esse
|
||||||
|
adferre_V = prefixVerb "ad" ferre_V;-- ad + ferre
|
||||||
|
adfectus_A = mkA "adfectus";
|
||||||
|
adfectus_N = mkN "adfectus" "adfectus" masculine;
|
||||||
|
adficere_V = mkV " adficere" "adfico" "adfeci" "adfectum"; -- ad + facere?, missing adficiebantur
|
||||||
|
adfigere_V = mkV " adfigere" "adfixi" "adfixum"; -- ad + figere?, missing adfixae
|
||||||
|
adfinitas_N = mkN "adfinitas" "adfinitatis" feminine;
|
||||||
|
adflictare_V = mkV "adflictare";
|
||||||
|
adflictus_A = mkA "adflictus";
|
||||||
|
adgredi_V = mkV "adgredi" "adgredior" "adgressus"; -- ad + gradior?, missing adgressi, adgressus
|
||||||
|
adgregare_V = mkV "adgregare"; -- ad + gregare?
|
||||||
|
adhibere_V = mkV "adhibere"; -- ad + habere?
|
||||||
|
adhuc_Adv = ss "adhuc";
|
||||||
|
Adiatunnus_PN = mkPN (lin N (singularN (mkN "Adiatunnus")));
|
||||||
|
adicere_V = mkV "adicere" "adieci" "adiectum"; -- ad + iacere?, missing adiecta
|
||||||
|
adigere_V = mkV "adigere" "adigo" "adegi" "adactum"; -- ad + agere?, missing adigi
|
||||||
|
adire_V = mkV "adire" "adeo" "" ""; -- prefixVerb "ad" ire_V; -- ad + ire, missing adiisset, aditus?
|
||||||
|
aditus_N = mkN "aditus" "aditus" masculine;
|
||||||
|
adiungere_V = mkV "adiungere" "adiungo" "adiunxi" "adiunctum"; -- ad + iungere?
|
||||||
|
adiuvare_V = mkV "adiuvare"; -- ad + iuvare?
|
||||||
|
administrare_V = mkV "administrare"; -- ad + ministrare
|
||||||
|
admirari_V = mkV "admirari" "admiror" "admiratus"; -- ad + mirari?
|
||||||
|
admittere_V = mkV "admittere" "admitto" "admisi" "admissum"; -- ad + mittere?
|
||||||
|
admodum_Adv = ss "admodum";
|
||||||
|
adoriri_V = mkV "adoriri" "adorior" "adortus"; -- ad + oriri?, missing adorti, adortum, adortus
|
||||||
|
adpellere_V = mkV "adpellere" "adpello" "adpuli" "adpulsum"; -- ad + pelere?
|
||||||
|
adpetere_V = mkV "adpetere" "adpeto" "adpetivi" "adpetitum"; -- ad + petere?, missing adpetierit, adpetisse, adpetissent
|
||||||
|
adpropinquare_V = mkV " adpropinquare"; -- ad + propinquare?
|
||||||
|
-- adpulsare_V = mkV "adpulsare";
|
||||||
|
adsciscere_V = mkV "adsciscere" "adscisco" "adscivi" "ascitum"; -- ad + sciscere?
|
||||||
|
adsuere_V = mkV "adsuere" "adsuo" "adsui" "adsutum"; -- ad + suere?, missing adsue
|
||||||
|
adsuefacere_V = mkV "adsuefacere" "adsuefacio" "adsuefeci" "adsuefactum"; -- possibly problematic
|
||||||
|
-- adtectus ???
|
||||||
|
adulescentia_N = mkN "adulescentia";
|
||||||
|
adulescentulus_N = mkN "adulescentulus";
|
||||||
|
advenire_V = mkV "advenire" "advenio" "adveni" "adventum"; -- prefixVerb "ad" venire_V; -- ad + venire
|
||||||
|
advertere_V = mkV "advertere" "adverto" "adverti" "adversum"; -- ad + vertere?
|
||||||
|
adventus_N = mkN "adventus" "adventus" masculine;
|
||||||
|
aedificare_V = mkV "aedificare";
|
||||||
|
aedificium_N = mkN "aedificium";
|
||||||
|
aeger_A = mkA "aeger";
|
||||||
|
aegre_Adv = ss "aegre"; -- comparison?
|
||||||
|
Aemilius_PN = mkPN (lin N (singularN (mkN "Aemilius")));
|
||||||
|
aequaliter_Adv = ss "aequaliter";
|
||||||
|
aequare_V = mkV " aequare";
|
||||||
|
aequinoctium_N = mkN "aequinoctium";
|
||||||
|
aequitas_N = mkN "aequitas" "aequitatis" feminine;
|
||||||
|
aequum_N = mkN "aequum";
|
||||||
|
aequus_A = mkA "aequus";
|
||||||
|
aerarius_A = mkA "aerarius";
|
||||||
|
aerarius_N = mkN "aerarius";
|
||||||
|
aer_f_N = mkN "aer" "aeris" feminine;
|
||||||
|
aer_m_N = mkN "aer" "aeris" masculine;
|
||||||
|
aes_N = mkN "aer" "aeris" neuter;
|
||||||
|
aestas_N = mkN "aestas" "aestatis" feminine;
|
||||||
|
aestimare_V = mkV "aestimare";
|
||||||
|
aestuarium_N = mkN "aestuarium";
|
||||||
|
aestus_N = mkN "aestus" "aestus" masculine;
|
||||||
|
aetas_N = mkN "aetas" "aetatis" feminine;
|
||||||
|
ager_N = mkN "ager";
|
||||||
|
agere_V = mkV "agere" "ago" "egi" "actum";
|
||||||
|
agger_N = mkN "agger" "aggeris" masculine;
|
||||||
|
agmen_N = mkN "agmen" "agminis" neuter;
|
||||||
|
alacer_A = mkA "alacer" "alacris";
|
||||||
|
alacritas_N = mkN "alacritas" "alacritatis" feminine;
|
||||||
|
alarius_A = mkA "alarius";
|
||||||
|
-- alduas_??? = ???;
|
||||||
|
alere_1_V = mkV "alere" "alo" "alui" "altum";
|
||||||
|
alere_2_V = mkV "alere" "alo" "alui" "alitum";
|
||||||
|
alienus_A = mkA "alienus";
|
||||||
|
-- alii_Conj = mkConj "alii" "alii" Sg ;
|
||||||
|
aliquam_Adv = ss "aliquam";
|
||||||
|
aliquanto_Adv = ss "aliquanto";
|
||||||
|
--aliqui_Pron = mkPron ???;
|
||||||
|
-- aliquis_Pron = aliquis;
|
||||||
|
aliter_Adv = ss "aliter";
|
||||||
|
alium_N = mkN "alium";
|
||||||
|
alius_A = mkA (mkN "alius") (mkN "alia") (mkN "aliud" "alius" neuter);
|
||||||
|
Allobroges_PN = mkPN (lin N (pluralN (mkNoun "" "" "" "" "" "" "Allobroges" "Allobroges" "Allobrogum" "Allobrogibus" masculine))); -- missing Allobrogas
|
||||||
|
Alpes_PN = mkPN (lin N (pluralN (mkNoun "" "" "" "" "" "" "Alpes" "Alpes" "Alpium" "Alpibus" feminine)));
|
||||||
|
alter_A = mkA (mkN "alter") (mkN "altera") (mkN "alterum"); -- missing alterius
|
||||||
|
alterare_V = mkV "alterare";
|
||||||
|
altitudo_N = mkN "altitudo" "altitudinis" feminine;
|
||||||
|
altus_A = mkA "altus";
|
||||||
|
aluta_N = mkN "aluta";
|
||||||
|
Ambarri_PN = mkPN (lin N (pluralN (mkN "Ambarrus")));
|
||||||
|
Ambiani_PN = mkPN (lin N (pluralN (mkN "Ambianus")));
|
||||||
|
Ambiliati_PN = mkPN (lin N (pluralN (mkN "Ambiliatus")));
|
||||||
|
Ambivariti_PN = mkPN (lin N (pluralN (mkN "Ambivaritus")));
|
||||||
|
amentia_N = mkN "amentia";
|
||||||
|
amicitia_N = mkN "amicitia";
|
||||||
|
amicus_A = mkA "amicus";
|
||||||
|
amittere_V = mkV "amittere" "amitto" "amisi" "amissum";
|
||||||
|
amplificare_V = mkV "amplificare";
|
||||||
|
amplitudo_N = mkN "amplitudo" "amplitudinis" feminine;
|
||||||
|
amplus_A = mkA "amplus";
|
||||||
|
anceps_A = mkA "anceps" "ancipitis";
|
||||||
|
ancora_N = mkN "ancora";
|
||||||
|
Andebrogius_PN = mkPN (lin N (singularN (mkN "Andebrogius")));
|
||||||
|
--Andes_PN = ???
|
||||||
|
angustia_N = mkN "angustia";
|
||||||
|
angustiare_V = mkV "angustiare";
|
||||||
|
-- an_Conj = mkConj "" "an" Sg;
|
||||||
|
-- an_an_Conj = mkConj "an" "an" Sg;
|
||||||
|
animadvertere_V = mkV "animadvertere" "animadverto" "animadverti" "animadversum";
|
||||||
|
animus_N = mkN "animus";
|
||||||
|
annuus_A = mkA "annuus";
|
||||||
|
ante_Adv = ss "ante";
|
||||||
|
ante_Prep = mkPrep "ante" Acc;
|
||||||
|
antea_Adv = ss "antea";
|
||||||
|
antecedere_V = mkV "antecedere" "antecedo" "antecessi" "antecessum"; -- ante + cedere?
|
||||||
|
antemna_N = mkN "antemna";
|
||||||
|
anteponere_V = mkV "anteponere" "antepono" "anteposui" "antepositum"; -- prefixVerb2 "ante" put_V2; -- ante + ponere
|
||||||
|
antiquitus_Adv = ss "antiquitus";
|
||||||
|
antiquus_A = mkA "antiquus"; -- missing antiquissimum
|
||||||
|
aperire_V = mkV "aperire" "aperio" "aperui" "apertum"; -- missing aperta, apertis, apertissimis, apertissimo, aperto, apertum, apertus
|
||||||
|
apertare_V = mkV "apertare";
|
||||||
|
Aprilis_PN = mkPN (lin N (singularN (mkN "Aprilis" "Aprilis" masculine))); -- missing Apr, April
|
||||||
|
appellare_V = mkV "appellare";
|
||||||
|
aptus_A = mkA "aptus";
|
||||||
|
apud_Prep = mkPrep "apud" Acc;
|
||||||
|
aquatio_N = mkN "aquatio" "aquationis" feminine;
|
||||||
|
aquila_N = mkN "aquila";
|
||||||
|
Aquileia_PN = mkPN (lin N (singularN (mkN "Aquileia")));
|
||||||
|
Aquitania_PN = mkPN (lin N (singularN (mkN "Aquitania")));
|
||||||
|
Aquitanus_N = mkN "Aquitanus";
|
||||||
|
Arar_PN = mkPN (lin N (singularN (mkN "Arar" "Araris" masculine))); -- missing Ararim
|
||||||
|
arbitrari_V = mkV "arbitrari";
|
||||||
|
arbitrium_N = mkN "arbitrium";
|
||||||
|
arcessere_V = mkV "arcessere" "arcesso" "arcessivi" "arcessitum";
|
||||||
|
arduus_A = mkA "arduus";
|
||||||
|
aries_N = mkN "aries" "arietis" masculine;
|
||||||
|
Ariovistus_PN = mkPN (lin N (singularN (mkN "Ariovistus")));
|
||||||
|
armatus_A = mkA "armatus";
|
||||||
|
arma_N = lin N (pluralN (mkNoun "" "" "" "" "" "" "arma" "arma" "armorum" "armis" neuter));
|
||||||
|
armamentum_N = mkN "armamentum";
|
||||||
|
armare_V = mkV "armare";
|
||||||
|
armatura_N = mkN "armatura";
|
||||||
|
armus_N = mkN "armus";
|
||||||
|
arroganter_Adv = ss "arroganter"; -- comparison?
|
||||||
|
arrogantia_N = mkN "arrogantia";
|
||||||
|
artus_A = mkA "artus";
|
||||||
|
Arverni_PN = mkPN (lin N (pluralN (mkN "Arvernus")));
|
||||||
|
arx_N = mkN "arx" "arcis" feminine;
|
||||||
|
ascendere_V = mkV "ascendere" "ascendo" "ascendi" "ascensum";
|
||||||
|
-- at_Conj = mkConj "at" "" Sg ;
|
||||||
|
-- atque_Conj = mkConj "atque" "" Sg ;
|
||||||
|
Atrebates_PN = mkPN (mkN "Atrebas" "Atrebatis" masculine);
|
||||||
|
attingere_V = mkV "attingere" "attingo" "attigi" "attactum"; -- ad + tangere?
|
||||||
|
attribuere_V = mkV "attribuere" "attribuo" "attribui" "attributum"; -- ad + tribuere?, missing attribuant
|
||||||
|
-- auctibus ???
|
||||||
|
auctor_N = mkN "auctor" "auctoris" masculine;
|
||||||
|
auctorare_V = mkV "auctorare";
|
||||||
|
auctoritas_N = mkN "auctoritas" "auctoritatis" feminine;
|
||||||
|
auctus_A = mkA "auctus";
|
||||||
|
audacter_Adv = ss "audacter"; -- comparison?
|
||||||
|
audax_A = mkA "audax" "audacis";
|
||||||
|
audere_V = mkV "audere"; -- semi-deponent?, missing ausos
|
||||||
|
audire_V = mkV "audire" ; -- missing audierant, audierit
|
||||||
|
auditio_N = mkN "auditio" "auditionis" feminine;
|
||||||
|
augere_V = mkV "augere"; -- missing auxisse
|
||||||
|
Atuatuci_PN = mkPN (lin N (pluralN (mkN "Atuatucus")));
|
||||||
|
Aulerci_PN = mkPN (lin N (pluralN (mkN "Aulercus")));
|
||||||
|
Auriga_PN = mkPN (mkN "Auriga");
|
||||||
|
Aurunculeius_PN = mkPN (lin N (singularN (mkN "Aurunculeius")));
|
||||||
|
Ausci_PN = mkPN (lin N (pluralN (mkN "Auscus")));
|
||||||
|
-- aut_Conj = mkConj "aut" "" Sg ;
|
||||||
|
-- autem_Conj = mkConj "autem" "" Sg ;
|
||||||
|
auxiliare_V = mkV "auxiliare";
|
||||||
|
auxilium_N = mkN "auxilium";
|
||||||
|
avaritia_N = mkN "avaritia";
|
||||||
|
avertere_V = mkV "avertere" "averto" "averti" "aversum"; -- ab + vertere?, missing aventu (noun sg supine neut dat)
|
||||||
|
avus_N = mkN "avus";
|
||||||
|
Axona_PN = mkPN (lin N (singularN (mkN "Axona")));
|
||||||
|
baculus_N = mkN "baculus";
|
||||||
|
Baleares_PN = mkPN (lin N (pluralN (mkN "Balear" "Balearis" masculine)));
|
||||||
|
barbarus_A = mkA "barbarus";
|
||||||
|
barbarus_N = mkN "barbarus";
|
||||||
|
batavus_A = mkA "batavus";
|
||||||
|
Belgae_PN = mkPN (lin N (pluralN (mkN "Belga"))); -- missing Belgos
|
||||||
|
bellare_V = mkV "bellare";
|
||||||
|
bellicosus_A = mkA "bellicosus";
|
||||||
|
Bellovaci_PN = mkPN (lin N (pluralN (mkN "Bellovacus")));
|
||||||
|
bellum_N = mkN "bellum";
|
||||||
|
bellus_A = mkA "bellus";
|
||||||
|
bene_Adv = ss "bene"; -- comparison?
|
||||||
|
beneficium_N = mkN "beneficium";
|
||||||
|
Bibrax_PN = mkPN (lin N (singularN (mkN "Bibrax" "Bibractis" masculine)));
|
||||||
|
biduum_N = mkN "biduum";
|
||||||
|
biduus_A = mkA "biduus";
|
||||||
|
biennis_A = mkA "biennis" "bienne"; -- missing biennium
|
||||||
|
biennium_N = mkN "biennium";
|
||||||
|
binus_A = mkA "binus";
|
||||||
|
bipedalis_A = mkA "bipedalis" "bipedale"; -- missing bipedalibus
|
||||||
|
bipertitus_A = mkA "bipertitus";
|
||||||
|
bis_Adv = ss "bis";
|
||||||
|
Biturix_PN = mkPN (lin N (pluralN (mkN "Biturix" "Biturigis" masculine)));
|
||||||
|
-- boc ???
|
||||||
|
Boduognatus_PN = mkPN (lin N (singularN (mkN "Boduognatus")));
|
||||||
|
Boi_PN = mkPN (lin N (pluralN (mkN "Boius"))); -- missing Boi
|
||||||
|
bonitas_N = mkN "bonitas" "bonitatis" feminine;
|
||||||
|
bracchium_N = mkN "bracchium";
|
||||||
|
Bratuspantium_PN = mkPN (lin N (singularN (mkN "Bratuspantium")));
|
||||||
|
brevi_Adv = ss "brevi";
|
||||||
|
breviare_V = mkV "breviare";
|
||||||
|
brevis_A = mkA "brevis" "breve"; -- missing brevi
|
||||||
|
brevitas_N = mkN "brevitas" "brevitatis" feminine;
|
||||||
|
Britannia_PN = mkPN (mkN "Britannia");
|
||||||
|
britannus_A = mkA "britannus";
|
||||||
|
Brutus_PN = mkPN (lin N (singularN (mkN "Brutus")));
|
||||||
|
cadaver_N = mkN "cadaver" "cadaveris" neuter;
|
||||||
|
cadere_V = mkV "cadere" "cado" "cecidi" "casum";
|
||||||
|
Caesar_PN = mkPN (lin N (singularN (mkN "Caesar" "Caesaris" masculine))); -- missing Caesare
|
||||||
|
caespes_N = mkN "caespes" "caespitis" masculine;
|
||||||
|
calamitas_N = mkN "calamitas" "calamitatis" feminine;
|
||||||
|
calare_V = mkV "calare";
|
||||||
|
calo_N = mkN "calo" "calonis" masculine;
|
||||||
|
campus_N = mkN "campus";
|
||||||
|
capere_V = mkV "capere" "capio" "cepi" "captum"; -- missing capi
|
||||||
|
captivus_A = mkA "captivus";
|
||||||
|
captivus_N = mkN "captivus";
|
||||||
|
captus_N = mkN "captus" "captus" masculine;
|
||||||
|
carina_N = mkN "carina";
|
||||||
|
carpere_V = mkV "carpere" "carpio" "carpsi" "carptum";
|
||||||
|
carrus_N = mkN "carrus";
|
||||||
|
castellum_N = mkN "castellum";
|
||||||
|
castra_N = lin N (pluralN (mkNoun "" "" "" "" "" "" "castra" "castra" "castrorum" "castris" neuter));
|
||||||
|
casus_N = mkN "casus" "casus" masculine;
|
||||||
|
catena_N = mkN "catena";
|
||||||
|
causa_N = mkN "causa";
|
||||||
|
causa_Prep = mkPostp "causa" Gen;
|
||||||
|
cavare_V = mkV "cavare";
|
||||||
|
cavere_V = mkV "cavere";
|
||||||
|
cedere_V = mkV "cedere" "cedo" "cessi" "cessum";
|
||||||
|
celare_V = mkV "celare";
|
||||||
|
celer_A = mkA "celer" "celeris"; -- strange?
|
||||||
|
celeritas_N = mkN "celeritas" "celeritatis" feminine;
|
||||||
|
celeriter_Adv = ss "celeriter"; -- comparison? missing celerius, celerrime
|
||||||
|
census_N = mkN "census" "census" masculine;
|
||||||
|
censere_V = mkV "censere";
|
||||||
|
centuriare_V = mkV "centuriare";
|
||||||
|
centurio_N = mkN "centurio" "centurionis" masculine;
|
||||||
|
cernere_V = mkV "cernere" "cerno" "crevi" "cretum";
|
||||||
|
certare_V = mkV "certare";
|
||||||
|
certamen_N = mkN "certamen" "certaminis" neuter;
|
||||||
|
certus_A = mkA "certus";
|
||||||
|
ceterus_A = mkA "ceterus";
|
||||||
|
cibarius_A = mkA "cibarius";
|
||||||
|
cibus_N = mkN "cibus";
|
||||||
|
ciere_V = mkV "ciere" "cio" "civi" "citum";
|
||||||
|
cingere_V = mkV "cingere" "cingo" "cingi" "cinctum";
|
||||||
|
circinare_V = mkV "circinare";
|
||||||
|
circinus_N = mkN "circinus";
|
||||||
|
circiter_Adv = ss "circiter";
|
||||||
|
circiter_Prep = mkPrep "circiter" Acc;
|
||||||
|
circuitus_N = mkN "circuitus" "circuitus" masculine;
|
||||||
|
circum_Adv = ss "circum";
|
||||||
|
circum_Prep = mkPrep "circum" Acc;
|
||||||
|
circumdare_V = mkV "circumdare" "circumdo" "circumdedi" "circumdatum"; -- prefixVerb "circum" dare_V; -- circum + dare, missing circumdederant, circumdederunt
|
||||||
|
circumducere_V = mkV "circumducere" "circumduco" "circumduxi" "circumductum"; -- prefixVerb "circum" ducere_V; circum + ducere
|
||||||
|
circumiectus_A = mkA "circumiectus";
|
||||||
|
circumire_V = prefixVerb "circum" ire_V;
|
||||||
|
circummunire_V = mkV "circummunire";
|
||||||
|
circumsistere_1_V = mkV "circumsistere" "circumsisto" "circumstiti" "circumstatum" ; -- prefixVerb "circum" sistere_1_V; -- circum + sistere
|
||||||
|
-- circumsistere_2_V = prefixVerb "circum" sistere_2_V; -- circum + sistere
|
||||||
|
circumvenire_V = mkV "circumvenire" ; -- prefixVerb "circum" venire_V; -- circum + venire
|
||||||
|
cis_Prep = mkPrep "cis" Acc;
|
||||||
|
citare_V = mkV "citare";
|
||||||
|
citer_A = mkA "citer"; -- missing citeriore, citeriorem, citerioris
|
||||||
|
citra_Adv = ss "citra";
|
||||||
|
citus_A = mkA "citus";
|
||||||
|
civitas_N = mkN "civitas" "civitatis" feminine;
|
||||||
|
colere_V = mkV "colere" "colo" "colui" "cultum";
|
||||||
|
cooriri_V = mkV "cooriri" "coorior" "coortus"; -- prefixVerb "con" oriri_V; -- con + oriri, missing coorta
|
||||||
|
conferre_V = prefixVerb "con" ferre_V; -- con + ferre
|
||||||
|
---
|
||||||
|
conspicere_V = mkV "conspicere" "conspicio" "conspexi" "conspectum"; -- prefixVerb "con" specere_V; -- con + specere
|
||||||
|
conspirare_V = mkV "conspirare"; -- con + spirare?
|
||||||
|
constanter_Adv = ss "constanter"; -- comparison
|
||||||
|
constantia_N = mkN "constantia";
|
||||||
|
constare_V = mkV "constare"; -- prefixVerb "con" stare_V; -- con + stare, missing constiterant, constiterat, constiterunt, constitissent, constitisset, constitit
|
||||||
|
-- consternare_V = mkV "consternare"; -- con + sternere ?
|
||||||
|
consternere_V = mkV "consternere" "consterno" "constravi" "constratum"; -- con + sternere?
|
||||||
|
constituere_V = mkV "constituere" "constituo" "constitui" "constitutum"; -- prefixVerb "con" statuere_V; -- con + statuere
|
||||||
|
constitutum_N = mkN "constitutum";
|
||||||
|
consuere_V = mkV "consuere" "consuo" "consui" "consustum";
|
||||||
|
consuescere_V = mkV "consuescere" "consuesco" "consuevi" "consuetum"; -- con + suescere?, missing consuesse, consuessent?
|
||||||
|
consuetudo_N = mkN "consuetudo" "consuetudinis" feminine;
|
||||||
|
consul_N = mkN "consul" "consulis" masculine;
|
||||||
|
consulatus_N = mkN "consulatus" "consulatus" masculine;
|
||||||
|
consulere_V = mkV "consulere" "consulo" "consului" "consultum";
|
||||||
|
consultare_V = mkV "consultare";
|
||||||
|
consultum_N = mkN "consultum";
|
||||||
|
contemptio_N = mkN "contemptio" "contemptionis" feminine;
|
||||||
|
contemptus_A = mkA "contemptus";
|
||||||
|
contemptus_N = mkN "contemptus" "contemptus" masculine;
|
||||||
|
contentio_N = mkN "contentio" "contentionis" feminine;
|
||||||
|
contendere_V = mkV "contendere" "contendo" "contendi" "contentum";
|
||||||
|
contexere_V = mkV "contexere" "contexo" "contexui" "contextum"; -- prefixVerb "con" texere_V; -- con + texere
|
||||||
|
continens_N = mkN "continens" "continentis" feminine;
|
||||||
|
continenter_Adv = ss "continenter";
|
||||||
|
continere_V2 = mkV2 (mkV "continere"); -- prefixVerb2 "con" tenere_V2; con + tenere
|
||||||
|
contingere_V = mkV "contingere" "contingo" "contigi" "contectum"; -- con + tangere?
|
||||||
|
continuatio_N = mkN "continuatio" "continuationis" feminine;
|
||||||
|
continuus_A = mkA "continuus";
|
||||||
|
contra_Adv = ss "contra";
|
||||||
|
-- contrahere_V2 = -- prefixVerb2 "con" trahere_V2; -- con + trahere
|
||||||
|
contrarius_A = mkA "contrarius";
|
||||||
|
contumelia_N = mkN "contumelia";
|
||||||
|
convallis_N = mkN "convallis" "convallis" feminine;
|
||||||
|
convenire_V = prefixVerb "con" venire_V; -- missing convenerant, convenerat, convenerunt, convenisse, convenissent, convenisset, conventu, conventus
|
||||||
|
conversare_V = mkV "conversare";
|
||||||
|
convertere_V = prefixVerb "con" vertere_V; -- con + vertere
|
||||||
|
convincere_V = prefixVerb "con" vincere_V; -- con + vincere
|
||||||
|
convocare_V = prefixVerb "con" vocare_V; -- con + vocare
|
||||||
|
copia_N = mkN "copia";
|
||||||
|
copiosus_A = mkA "copiosus";
|
||||||
|
copula_N = mkN "copula";
|
||||||
|
cora_N = mkN "cora";
|
||||||
|
corona_N = mkN "corona";
|
||||||
|
corpus_N = mkN "corpus" "corporis" neuter;
|
||||||
|
cos_N = mkN "cos" "cotis" feminine;
|
||||||
|
cotidianus_A = mkA "cotidianus";
|
||||||
|
cotidie_Adv = ss "cotidie";
|
||||||
|
Cotta_PN = mkPN (lin N (singularN (mkN "Cotta")));
|
||||||
|
crassitudo_N = mkN "crassitudo" "crassitudinis" feminine;
|
||||||
|
Crassus_PN = mkPN (lin N (singularN (mkN "Crassus")));
|
||||||
|
cratis_N = mkN "cratis" "cratis" feminine;
|
||||||
|
creare_V = mkV "creare";
|
||||||
|
creber_A = mkA "creber";
|
||||||
|
credere_V = mkV "credere" "credo" "credidi" "creditum";
|
||||||
|
cremare_V = mkV "cremare";
|
||||||
|
crescere_V = mkV "crescere" "cresco" "crevi" "cretum";
|
||||||
|
Creta_N = mkN "Creta";
|
||||||
|
cruciare_V = mkV "cruciare";
|
||||||
|
cruciatus_N = mkN "cruciatus" "cruciatus" masculine;
|
||||||
|
crudelitas_N = mkN "crudelitas" "crudelitatis" feminine;
|
||||||
|
crudeliter_Adv = ss "crudeliter"; -- comparison?
|
||||||
|
culmen_N = mkN "culmen" "culminis" neuter;
|
||||||
|
culpa_N = mkN "culpa";
|
||||||
|
cultura_N = mkN "cultura";
|
||||||
|
cultus_N = mkN "cultus" "cultus" masculine;
|
||||||
|
cum_Prep = mkPrep "cum" Abl;
|
||||||
|
cunctari_V = mkV "cunctari";
|
||||||
|
cunctatio_N = mkN "cunctatio" "cunctationis" feminine;
|
||||||
|
cunctus_A = mkA "cunctus";
|
||||||
|
cuniculus_N = mkN "cuniculus";
|
||||||
|
cupere_V = mkV "cupere" "cupio" "cupivi" "cupitum";
|
||||||
|
cupiditas_N = mkN "cupiditas" "cupiditatis" feminine;
|
||||||
|
cupidus_A = mkA "cupidus";
|
||||||
|
cur_Adv = ss "cur";
|
||||||
|
cura_N = mkN "cura";
|
||||||
|
curare_V = mkV "curare"; -- missing curasset
|
||||||
|
currere_V = mkV "currere" "curro" "cucurri" "cursum";
|
||||||
|
currus_N = mkN "currus" "currus" masculine;
|
||||||
|
custodia_N = mkN "custodia";
|
||||||
|
damnare_V = mkV "damnare";
|
||||||
|
damnatus_A = mkA "damnatus";
|
||||||
|
dare_V = mkV "dare" "do" "dedi" "datum";
|
||||||
|
datum_N = mkN "datum";
|
||||||
|
de_Prep = mkPrep "de" Abl;
|
||||||
|
debere_VV = StructuralLat.must_VV;
|
||||||
|
ducere_V = mkV "ducere" "duco" "duxi" "ductum" ;
|
||||||
|
equitare_V = mkV "equitare";
|
||||||
|
ferre_V = fixFerre (mkVerb "ferre" "fer" "fer" "fera" "fereba" "ferre" "fere" "fer" "tul" "tul" "tuleri" "tulera" "tulisse" "tuleri" "lat");
|
||||||
|
iacere_V = mkV "iacere" "iacio" "ieci" "iactum";
|
||||||
|
ire_V = LexiconLat.go_V;
|
||||||
|
-- ne_an_Conj = mkConj (BIND ++ "ne") "an" Sg;
|
||||||
|
-- nonne_an_Conj = mkConj "nonne" "an" Sg;
|
||||||
|
-- num_an_Conj = mkConj "num" "an" Sg;
|
||||||
|
oriri_V = mkV "oriri" "orior" nonExist "ortus";
|
||||||
|
qui_IP = StructuralLat.whatSg_IP;
|
||||||
|
sistere_1_V = mkV "sistere" "sisto" "stiti" "statum";
|
||||||
|
sistere_2_V = mkV "sistere" "sisto" "steti" "statum";
|
||||||
|
specere_V = mkV "specere" "speco" "spexi" "spectum";
|
||||||
|
stare_V = LexiconLat.stand_V;
|
||||||
|
statuere_V = mkV "statuere" "statuo" "statui" "statutum";
|
||||||
|
tenere_V2 = LexiconLat.hold_V2;
|
||||||
|
texere_V = mkV "texere" "texo" "texui" "textum";
|
||||||
|
trahere_V2 = LexiconLat.pull_V2;
|
||||||
|
-- utrum_an_Conj = mkConj "utrum" "an" Sg;
|
||||||
|
venire_V = LexiconLat.come_V;
|
||||||
|
vertere_V = mkV "vertere" "verto" "verti" "versum";
|
||||||
|
vincere_V = mkV "vincere" "vinco" "vici" "victum";
|
||||||
|
vocare_V = mkV "vocare";
|
||||||
|
oper
|
||||||
|
fixFerre : Verb -> Verb =
|
||||||
|
\ferre ->
|
||||||
|
{
|
||||||
|
act = table
|
||||||
|
{
|
||||||
|
(VAct VSim (VPres VInd) Sg P2) => "fers";
|
||||||
|
(VAct VSim (VPres VInd) Sg P3) => "fert";
|
||||||
|
(VAct VSim (VPres VInd) Pl P1) => "ferimus";
|
||||||
|
(VAct VSim (VPres VInd) Pl P2) => "fertis";
|
||||||
|
rest => ferre.act ! rest
|
||||||
|
};
|
||||||
|
ger = ferre.ger;
|
||||||
|
geriv = ferre.geriv;
|
||||||
|
imp = table
|
||||||
|
{
|
||||||
|
(VImp1 Sg) => "fer";
|
||||||
|
(VImp1 Pl) => "ferte";
|
||||||
|
(VImp2 Sg P2) => "ferto";
|
||||||
|
(VImp2 Sg P3) => "ferto";
|
||||||
|
(VImp2 Pl P2) => "fertote";
|
||||||
|
rest => ferre.imp ! rest
|
||||||
|
};
|
||||||
|
inf = ferre.inf;
|
||||||
|
part = ferre.part;
|
||||||
|
pass = table
|
||||||
|
{
|
||||||
|
VPass (VPres VInd) Sg P2 => "ferris";
|
||||||
|
VPass (VPres VInd) Sg P3 => "fertur";
|
||||||
|
rest => ferre.pass ! rest
|
||||||
|
};
|
||||||
|
sup = ferre.sup;
|
||||||
|
|
||||||
|
|
||||||
|
} ;
|
||||||
|
}
|
||||||
417
src/latin/ExtraLexCaesarAbs.gf
Normal file
417
src/latin/ExtraLexCaesarAbs.gf
Normal file
@@ -0,0 +1,417 @@
|
|||||||
|
abstract ExtraLexCaesarAbs = Cat ** {
|
||||||
|
fun
|
||||||
|
a_Prep : Prep;
|
||||||
|
ab_Prep : Prep;
|
||||||
|
abdere_V : V;
|
||||||
|
abducere_V : V;
|
||||||
|
abesse_V : V;
|
||||||
|
abicere_V : V;
|
||||||
|
abscisus_A : A;
|
||||||
|
absens_A : A;
|
||||||
|
absimilis_A : A;
|
||||||
|
abstinere_V2 : V2;
|
||||||
|
abstrahere_V2 : V2;
|
||||||
|
ac_Conj : Conj ;
|
||||||
|
accedere_V : V;
|
||||||
|
accendere_V : V;
|
||||||
|
accidere_V : V;
|
||||||
|
accipere_V : V;
|
||||||
|
acclivis_A : A;
|
||||||
|
acclivitas_N : N;
|
||||||
|
accommodare_V : V;
|
||||||
|
accommodatus_A : A;
|
||||||
|
accurrere_V : V;
|
||||||
|
accusare_V : V;
|
||||||
|
acervus_N : N;
|
||||||
|
acies_N : N;
|
||||||
|
acriter_Adv : Adv;
|
||||||
|
ad_Prep : Prep;
|
||||||
|
adaequare_V : V;
|
||||||
|
adamare_V2 : V2;
|
||||||
|
adducere_V : V;
|
||||||
|
adequitare_V : V;
|
||||||
|
adesse_V : V;
|
||||||
|
adferre_V : V;
|
||||||
|
adfectus_A : A;
|
||||||
|
adfectus_N : N;
|
||||||
|
adficere_V : V;
|
||||||
|
adfigere_V : V;
|
||||||
|
adfinitas_N : N;
|
||||||
|
adflictare_V : V;
|
||||||
|
adflictus_A : A;
|
||||||
|
adgredi_V : V;
|
||||||
|
adgregare_V : V;
|
||||||
|
adhibere_V : V;
|
||||||
|
adhuc_Adv : Adv;
|
||||||
|
Adiatunnus_PN : PN;
|
||||||
|
adicere_V : V;
|
||||||
|
adigere_V : V;
|
||||||
|
adire_V : V;
|
||||||
|
aditus_N : N;
|
||||||
|
adiungere_V : V;
|
||||||
|
adiuvare_V : V;
|
||||||
|
administrare_V : V;
|
||||||
|
admirari_V : V;
|
||||||
|
admittere_V : V;
|
||||||
|
admodum_Adv : Adv;
|
||||||
|
adoriri_V : V;
|
||||||
|
adpellere_V : V;
|
||||||
|
adpetere_V : V;
|
||||||
|
adpropinquare_V : V;
|
||||||
|
adpulsare_V : V;
|
||||||
|
adsciscere_V : V;
|
||||||
|
adsuere_V : V;
|
||||||
|
adsuefacere_V : V;
|
||||||
|
adulescentia_N : N;
|
||||||
|
adulescentulus_N : N;
|
||||||
|
advenire_V : V;
|
||||||
|
adventus_N : N;
|
||||||
|
advertere_V : V;
|
||||||
|
aedificare_V : V;
|
||||||
|
aedificium_N : N;
|
||||||
|
aeger_A : A;
|
||||||
|
aegre_Adv : Adv;
|
||||||
|
Aemilius_PN : PN;
|
||||||
|
aequaliter_Adv : Adv;
|
||||||
|
aequare_V : V;
|
||||||
|
aequinoctium_N : N;
|
||||||
|
aequitas_N : N;
|
||||||
|
aequum_N : N;
|
||||||
|
aequus_A : A;
|
||||||
|
aerarius_A : A;
|
||||||
|
aerarius_N : N;
|
||||||
|
aer_f_N : N;
|
||||||
|
aer_m_N : N;
|
||||||
|
aes_N : N;
|
||||||
|
aestas_N : N;
|
||||||
|
aestimare_V : V;
|
||||||
|
aestuarium_N : N;
|
||||||
|
aestus_N : N;
|
||||||
|
aetas_N : N;
|
||||||
|
-- afferre_V : V;
|
||||||
|
ager_N : N;
|
||||||
|
agere_V : V;
|
||||||
|
agger_N : N;
|
||||||
|
agmen_N : N;
|
||||||
|
alacer_A : A;
|
||||||
|
alacritas_N : N;
|
||||||
|
alarius_A : A;
|
||||||
|
-- alduas_??? : ???;
|
||||||
|
alere_1_V : V;
|
||||||
|
alere_2_V : V;
|
||||||
|
alienus_A : A;
|
||||||
|
alii_Conj : Conj;
|
||||||
|
aliquam_Adv : Adv;
|
||||||
|
aliquanto_Adv : Adv;
|
||||||
|
-- aliqui_Pron : Pron;
|
||||||
|
aliquis_Pron : Pron;
|
||||||
|
aliter_Adv : Adv;
|
||||||
|
alium_N : N;
|
||||||
|
alius_A : A;
|
||||||
|
Allobroges_PN : PN;
|
||||||
|
Alpes_PN : PN;
|
||||||
|
alter_A : A;
|
||||||
|
alterare_V : V;
|
||||||
|
altitudo_N : N;
|
||||||
|
altus_A : A;
|
||||||
|
aluta_N : N;
|
||||||
|
Ambarri_PN : PN;
|
||||||
|
Ambiani_PN : PN;
|
||||||
|
Ambiliati_PN : PN;
|
||||||
|
Ambivariti_PN : PN;
|
||||||
|
amentia_N : N;
|
||||||
|
amicitia_N : N;
|
||||||
|
amicus_A : A;
|
||||||
|
amittere_V : V;
|
||||||
|
amplificare_V : V;
|
||||||
|
amplitudo_N : N;
|
||||||
|
amplus_A : A;
|
||||||
|
an_Conj : Conj;
|
||||||
|
an_an_Conj : Conj;
|
||||||
|
anceps_A : A;
|
||||||
|
ancora_N : N;
|
||||||
|
Andebrogius_PN : PN;
|
||||||
|
Andes_PN : PN;
|
||||||
|
angustiare_V : V;
|
||||||
|
angustia_N : N;
|
||||||
|
animadvertere_V : V;
|
||||||
|
animus_N : N;
|
||||||
|
annuus_A : A;
|
||||||
|
ante_Adv : Adv;
|
||||||
|
ante_Prep : Prep;
|
||||||
|
antea_Adv : Adv;
|
||||||
|
antecedere_V : V;
|
||||||
|
antemna_N : N;
|
||||||
|
anteponere_V : V;
|
||||||
|
antiquitus_Adv : Adv;
|
||||||
|
antiquus_A : A;
|
||||||
|
aperire_V : V;
|
||||||
|
apertare_V : V;
|
||||||
|
appellare_V : V;
|
||||||
|
Aprilis_PN : PN;
|
||||||
|
aptus_A : A;
|
||||||
|
apud_Prep : Prep;
|
||||||
|
aquatio_N : N;
|
||||||
|
aquila_N : N;
|
||||||
|
Aquileia_PN : PN;
|
||||||
|
Aquitanus_N : N;
|
||||||
|
Aquitania_PN : PN;
|
||||||
|
Arar_PN : PN;
|
||||||
|
arbitrari_V : V;
|
||||||
|
arbitrium_N : N;
|
||||||
|
arcessere_V : V;
|
||||||
|
arduus_A : A;
|
||||||
|
aries_N : N;
|
||||||
|
Ariovistus_PN : PN;
|
||||||
|
armatus_A : A;
|
||||||
|
arma_N : N;
|
||||||
|
armamentum_N : N;
|
||||||
|
armare_V : V;
|
||||||
|
armatura_N : N;
|
||||||
|
armus_N : N;
|
||||||
|
arroganter_Adv : Adv;
|
||||||
|
arrogantia_N : N;
|
||||||
|
artus_A : A;
|
||||||
|
Arverni_PN : PN;
|
||||||
|
arx_N : N;
|
||||||
|
ascendere_V : V;
|
||||||
|
at_Conj : Conj;
|
||||||
|
atque_Conj : Conj ;
|
||||||
|
Atrebates_PN : PN;
|
||||||
|
attingere_V : V;
|
||||||
|
attribuere_V : V;
|
||||||
|
Atuatuci_PN : PN;
|
||||||
|
auctor_N : N;
|
||||||
|
auctorare_V : V;
|
||||||
|
auctoritas_N : N;
|
||||||
|
auctus_A : A;
|
||||||
|
audacter_Adv : Adv;
|
||||||
|
audax_A : A;
|
||||||
|
audere_V : V;
|
||||||
|
audire_V : V;
|
||||||
|
auditio_N : N;
|
||||||
|
augere_V : V;
|
||||||
|
Aulerci_PN : PN;
|
||||||
|
Auriga_PN : PN;
|
||||||
|
Aurunculeius_PN : PN;
|
||||||
|
Ausci_PN : PN;
|
||||||
|
aut_Conj : Conj;
|
||||||
|
autem_Conj : Conj;
|
||||||
|
auxiliare_V : V;
|
||||||
|
auxilium_N : N;
|
||||||
|
avaritia_N : N;
|
||||||
|
avertere_V : V;
|
||||||
|
avus_N : N;
|
||||||
|
Axona_PN : PN;
|
||||||
|
baculus_N : N;
|
||||||
|
Baleares_PN : PN;
|
||||||
|
barbarus_A : A;
|
||||||
|
barbarus_N : N;
|
||||||
|
batavus_A : A;
|
||||||
|
Belgae_PN : PN;
|
||||||
|
bellare_V : V;
|
||||||
|
bellicosus_A : A;
|
||||||
|
Bellovaci_PN : PN;
|
||||||
|
bellum_N : N;
|
||||||
|
bellus_A : A;
|
||||||
|
bene_Adv : Adv;
|
||||||
|
beneficium_N : N;
|
||||||
|
Bibrax_PN : PN;
|
||||||
|
biduum_N : N;
|
||||||
|
biduus_A : A;
|
||||||
|
biennis_A : A;
|
||||||
|
biennium_N : N;
|
||||||
|
binus_A : A;
|
||||||
|
bipedalis_A : A;
|
||||||
|
bipertitus_A :A;
|
||||||
|
bis_Adv : Adv;
|
||||||
|
Biturix_PN : PN;
|
||||||
|
-- boc ???
|
||||||
|
Boduognatus_PN : PN;
|
||||||
|
Boi_PN : PN;
|
||||||
|
bonitas_N : N;
|
||||||
|
bracchium_N : N;
|
||||||
|
Bratuspantium_PN : PN;
|
||||||
|
brevi_Adv : Adv;
|
||||||
|
breviare_V : V;
|
||||||
|
brevis_A : A;
|
||||||
|
brevitas_N : N;
|
||||||
|
Britannia_PN : PN;
|
||||||
|
britannus_A : A;
|
||||||
|
Brutus_PN : PN;
|
||||||
|
cadaver_N : N;
|
||||||
|
cadere_V : V;
|
||||||
|
Caesar_PN : PN;
|
||||||
|
caespes_N : N;
|
||||||
|
calamitas_N : N;
|
||||||
|
calare_V : V;
|
||||||
|
calo_N : N;
|
||||||
|
campus_N : N;
|
||||||
|
capere_V : V;
|
||||||
|
captivus_A : A;
|
||||||
|
captivus_N : N;
|
||||||
|
captus_N : N;
|
||||||
|
carina_N : N;
|
||||||
|
carpere_V : V;
|
||||||
|
carrus_N : N;
|
||||||
|
castellum_N : N;
|
||||||
|
castra_N : N;
|
||||||
|
casus_N : N;
|
||||||
|
catena_N : N;
|
||||||
|
causa_N : N;
|
||||||
|
causa_Prep : Prep; -- Postposition
|
||||||
|
cavare_V : V;
|
||||||
|
cavere_V : V;
|
||||||
|
cedere_V : V;
|
||||||
|
celare_V : V;
|
||||||
|
celer_A : A;
|
||||||
|
celeritas_N : N;
|
||||||
|
celeriter_Adv : Adv;
|
||||||
|
censere_V : V;
|
||||||
|
census_N : N;
|
||||||
|
centuriare_V : V;
|
||||||
|
centurio_N : N;
|
||||||
|
cernere_V : V;
|
||||||
|
certare_V : V;
|
||||||
|
certamen_N : N;
|
||||||
|
certus_A : A;
|
||||||
|
ceterus_A : A;
|
||||||
|
cibarius_A : A;
|
||||||
|
cibus_N : N;
|
||||||
|
ciere_V : V;
|
||||||
|
cingere_V : V;
|
||||||
|
circinare_V : V;
|
||||||
|
circinus_N : N;
|
||||||
|
circiter_Adv : Adv;
|
||||||
|
circiter_Prep : Prep;
|
||||||
|
circuitus_N : N;
|
||||||
|
circum_Adv : Adv;
|
||||||
|
circum_Prep : Prep;
|
||||||
|
circumdare_V : V;
|
||||||
|
circumducere_V : V;
|
||||||
|
circumiectus_A : A;
|
||||||
|
circumire_V : V;
|
||||||
|
circummunire_V : V;
|
||||||
|
circumsistere_1_V : V;
|
||||||
|
-- circumsistere_2_V : V;
|
||||||
|
circumvenire_V : V;
|
||||||
|
cis_Prep : Prep;
|
||||||
|
citare_V : V;
|
||||||
|
citer_A : A;
|
||||||
|
citra_Adv : Adv;
|
||||||
|
citus_A : A;
|
||||||
|
civitas_N : N;
|
||||||
|
colere_V : V;
|
||||||
|
conferre_V : V;
|
||||||
|
---
|
||||||
|
conspicere_V : V;
|
||||||
|
conspirare_V : V;
|
||||||
|
constanter_Adv : Adv;
|
||||||
|
constantia_N : N;
|
||||||
|
constare_V : V;
|
||||||
|
-- consternare_V : V;
|
||||||
|
consternere_V : V;
|
||||||
|
constituere_V : V;
|
||||||
|
constitutum_N : N;
|
||||||
|
consuere_V : V;
|
||||||
|
consuescere_V : V;
|
||||||
|
consuetudo_N : N;
|
||||||
|
consul_N : N;
|
||||||
|
consulatus_N : N;
|
||||||
|
consulere_V : V;
|
||||||
|
consultare_V : V;
|
||||||
|
consultum_N : N;
|
||||||
|
contemptio_N : N;
|
||||||
|
contemptus_A : A;
|
||||||
|
contemptus_N : N;
|
||||||
|
contendere_V : V;
|
||||||
|
contentio_N : N;
|
||||||
|
contexere_V : V;
|
||||||
|
continens_N : N;
|
||||||
|
continenter_Adv : Adv;
|
||||||
|
continere_V2 : V2;
|
||||||
|
contingere_V : V;
|
||||||
|
continuatio_N : N;
|
||||||
|
continuus_A : A;
|
||||||
|
contra_Adv : Adv;
|
||||||
|
contrahere_V2 : V2;
|
||||||
|
contrarius_A : A;
|
||||||
|
contumelia_N : N;
|
||||||
|
convallis_N : N;
|
||||||
|
convenire_V : V;
|
||||||
|
conversare_V : V;
|
||||||
|
convertere_V : V;
|
||||||
|
convincere_V : V;
|
||||||
|
convocare_V : V;
|
||||||
|
cooriri_V : V;
|
||||||
|
copia_N : N;
|
||||||
|
copiosus_A : A;
|
||||||
|
copula_N : N;
|
||||||
|
cora_N : N;
|
||||||
|
corona_N : N;
|
||||||
|
corpus_N : N;
|
||||||
|
cos_N : N;
|
||||||
|
cotidianus_A : A;
|
||||||
|
cotidie_Adv : Adv;
|
||||||
|
Cotta_PN : PN;
|
||||||
|
crassitudo_N : N;
|
||||||
|
Crassus_PN : PN;
|
||||||
|
cratis_N : N;
|
||||||
|
creare_V : V;
|
||||||
|
creber_A : A;
|
||||||
|
credere_V : V;
|
||||||
|
cremare_V : V;
|
||||||
|
crescere_V : V;
|
||||||
|
Creta_N : N;
|
||||||
|
cruciare_V : V;
|
||||||
|
cruciatus_N : N;
|
||||||
|
crudelitas_N : N;
|
||||||
|
crudeliter_Adv : Adv;
|
||||||
|
culmen_N : N;
|
||||||
|
culpa_N : N;
|
||||||
|
cultura_N : N;
|
||||||
|
cultus_N : N;
|
||||||
|
cum_Prep : Prep;
|
||||||
|
cunctari_V : V;
|
||||||
|
cunctatio_N : N;
|
||||||
|
cunctus_A : A;
|
||||||
|
cuniculus_N : N;
|
||||||
|
cupere_V : V;
|
||||||
|
cupiditas_N : N;
|
||||||
|
cupidus_A : A;
|
||||||
|
cur_Adv : Adv;
|
||||||
|
cura_N : N;
|
||||||
|
curare_V : V;
|
||||||
|
currere_V : V;
|
||||||
|
currus_N : N;
|
||||||
|
custodia_N : N;
|
||||||
|
damnare_V : V;
|
||||||
|
damnatus_A : A;
|
||||||
|
dare_V : V;
|
||||||
|
datum_N : N;
|
||||||
|
de_Prep : Prep;
|
||||||
|
debere_VV : VV;
|
||||||
|
ducere_V : V;
|
||||||
|
equitare_V : V;
|
||||||
|
ferre_V : V;
|
||||||
|
iacere_V : V;
|
||||||
|
ire_V : V;
|
||||||
|
ne_an_Conj : Conj;
|
||||||
|
nonne_an_Conj : Conj;
|
||||||
|
num_an_Conj : Conj;
|
||||||
|
oriri_V : V;
|
||||||
|
qui_IP : IP;
|
||||||
|
sistere_1_V : V;
|
||||||
|
sistere_2_V : V;
|
||||||
|
specere_V : V;
|
||||||
|
stare_V : V;
|
||||||
|
statuere_V : V;
|
||||||
|
tenere_V2 : V2;
|
||||||
|
texere_V : V;
|
||||||
|
trahere_V2 : V2;
|
||||||
|
utrum_an_Conj : Conj;
|
||||||
|
venire_V : V;
|
||||||
|
vertere_V : V;
|
||||||
|
vincere_V : V;
|
||||||
|
vocare_V : V;
|
||||||
|
}
|
||||||
@@ -1,2 +1,28 @@
|
|||||||
concrete ExtraLexiconLat of ExtraLexiconLatAbs = {
|
concrete ExtraLexiconLat of ExtraLexiconLatAbs = CatLat ** open ParadigmsLat in {
|
||||||
|
lin
|
||||||
|
friend_Fem_N = mkN "amica" ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
|
baby_Fem_N = mkN "infans" "infantis" feminine ; -- Ranta; -antis m./f. (Langenscheidts)
|
||||||
|
blue_Var_A = mkA "caeruleus" ; -- 3 (Langenscheidts)
|
||||||
|
boss_Fem_N = mkN "dux" "ducis" feminine ; -- ducis m./f. (Langenscheidts)
|
||||||
|
bread_Neutr_N = mkN "pane" "panis" neuter ; -- -is m./n. (Langenscheidts)
|
||||||
|
cat_Var_N = mkN "felis" "felis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
cousin_Fem_N = mkN "consobrina" ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
|
cow_Fem_N = mkN "bos" "bovis" feminine ; -- bovis (gen. pl. boum, dat./abl. pl. bobus/bubus) m./f. (Langenscheidts)
|
||||||
|
dog_Fem_N = mkN "canis" "canis" feminine ; -- -is m./f. (Langenscheidts)
|
||||||
|
enemy_Fem_N = mkN "hostis" "hostis" feminine ; -- -is m./f. (Langenscheidts)
|
||||||
|
policeman_Fem_N = mkN "custos" "custodis" feminine ; -- -odis m./f. (Langenscheidts)
|
||||||
|
priest_Fem_N = mkN "sacerdos" "sacerdotis" feminine ; -- -dotis m./f. (Langenscheidts)
|
||||||
|
snake_Fem_N = mkN "serpens" "serpentis" feminine ; -- -entis m./f. (Langenscheidts)
|
||||||
|
student_Fem_N = mkN "discipula" ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
|
switch8on_Var_V2 = mkV2 (mkV "exstinguere" ) ; -- -ingo, -inxi, -inctum 3 (Langenscheidts)
|
||||||
|
bark_Fem_N = mkN "cortex" "corticis" feminine ; -- -icis m./(f.) (Langenscheidts)
|
||||||
|
blood_Var_N = mkN "sangis" "sanginis" masculine ; -- -inis m. (Langenscheidts)
|
||||||
|
day_Fem_N = mkN "dies" "diei" feminine ; -- -ei m./f. (Langenscheidts)
|
||||||
|
horn_Var_N = mkN "cornu" "cornus" neuter ; -- -us n. (Langenscheidts)
|
||||||
|
liver_Var_N = mkN "iocur" "iocineris" neuter ; -- iecoris/iocineris n. (Langenscheidts)
|
||||||
|
louse_Fem_N = mkN "pedis" "pedis" feminine ; -- -is m./f. (Langenscheidts)
|
||||||
|
nose_Neutr_N = mkN "nasum" ; -- -i m./n. (Langenscheidts)
|
||||||
|
rope_Fem_N = mkN "funis" "funis" feminine ; -- -is m.(/f.) (Langenscheidts)
|
||||||
|
salt_Neutr_N = mkN "sal" "salis" neuter ; -- salis m./n. (Langenscheidts)
|
||||||
|
stick_Neutr_N = mkN "baculum" ; -- -i n./m.
|
||||||
};
|
};
|
||||||
@@ -1,3 +1,29 @@
|
|||||||
abstract ExtraLexiconLatAbs = {
|
abstract ExtraLexiconLatAbs = Cat, Lexicon, ExtraLexCaesarAbs ** {
|
||||||
|
fun
|
||||||
|
-- Ambigous entries from main lexicon
|
||||||
|
friend_Fem_N : N ;
|
||||||
|
baby_Fem_N : N ;
|
||||||
|
blue_Var_A : A ;
|
||||||
|
boss_Fem_N : N ;
|
||||||
|
bread_Neutr_N : N ;
|
||||||
|
cat_Var_N : N ;
|
||||||
|
cousin_Fem_N : N ;
|
||||||
|
cow_Fem_N : N ;
|
||||||
|
dog_Fem_N : N ;
|
||||||
|
enemy_Fem_N : N ;
|
||||||
|
policeman_Fem_N : N ;
|
||||||
|
priest_Fem_N : N ;
|
||||||
|
snake_Fem_N : N ;
|
||||||
|
student_Fem_N : N ;
|
||||||
|
switch8on_Var_V2 : V2 ;
|
||||||
|
bark_Fem_N : N ;
|
||||||
|
blood_Var_N : N ;
|
||||||
|
day_Fem_N : N ;
|
||||||
|
horn_Var_N : N ;
|
||||||
|
liver_Var_N : N ;
|
||||||
|
louse_Fem_N : N ;
|
||||||
|
nose_Neutr_N : N ;
|
||||||
|
rope_Fem_N : N ;
|
||||||
|
salt_Neutr_N : N ;
|
||||||
|
stick_Neutr_N : N ;
|
||||||
};
|
};
|
||||||
@@ -11,8 +11,8 @@ concrete GrammarLat of Grammar =
|
|||||||
-- RelativeLat,
|
-- RelativeLat,
|
||||||
ConjunctionLat,
|
ConjunctionLat,
|
||||||
PhraseLat,
|
PhraseLat,
|
||||||
TextX,
|
TextX-[Adv],
|
||||||
TenseX,
|
TenseX-[Adv],
|
||||||
StructuralLat
|
StructuralLat
|
||||||
-- IdiomLat
|
-- IdiomLat
|
||||||
** {
|
** {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--concrete IdiomLat of Idiom = CatLat ** open Prelude, ResLat in {
|
concrete IdiomLat of Idiom = CatLat ** open Prelude, ResLat in {
|
||||||
--
|
--
|
||||||
-- flags optimize=all_subs ;
|
-- flags optimize=all_subs ;
|
||||||
--
|
--
|
||||||
@@ -26,5 +26,4 @@
|
|||||||
--
|
--
|
||||||
-- ImpPl1 vp = {s = "let's" ++ infVP True vp (AgP1 Pl)} ;
|
-- ImpPl1 vp = {s = "let's" ++ infVP True vp (AgP1 Pl)} ;
|
||||||
--
|
--
|
||||||
--}
|
}
|
||||||
--
|
|
||||||
@@ -6,171 +6,16 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
|||||||
--
|
--
|
||||||
|
|
||||||
lin
|
lin
|
||||||
-- Bayer-Lindauer 93 1
|
be_V = esseAux ;
|
||||||
be_V =
|
|
||||||
let
|
|
||||||
pres_stem = "s" ;
|
|
||||||
pres_ind_base = "su" ;
|
|
||||||
pres_conj_base = "si" ;
|
|
||||||
impf_ind_base = "era" ;
|
|
||||||
impf_conj_base = "esse" ;
|
|
||||||
fut_I_base = "eri" ;
|
|
||||||
imp_base = "es" ;
|
|
||||||
perf_stem = "fu" ;
|
|
||||||
perf_ind_base = "fu" ;
|
|
||||||
perf_conj_base = "fueri" ;
|
|
||||||
pqperf_ind_base = "fuera" ;
|
|
||||||
pqperf_conj_base = "fuisse" ;
|
|
||||||
fut_II_base = "fueri" ;
|
|
||||||
part_stem = "fut" ;
|
|
||||||
verb = mkVerb "esse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
|
||||||
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
act =
|
|
||||||
table {
|
|
||||||
VAct VSim (VPres VInd) n p =>
|
|
||||||
table Number [ table Person [ "sum" ; "es" ; "est" ] ;
|
|
||||||
table Person [ "sumus" ; "estis" ; "sunt" ]
|
|
||||||
] ! n ! p ;
|
|
||||||
a => verb.act ! a
|
|
||||||
};
|
|
||||||
pass =
|
|
||||||
\\_ => nonExist ; -- no passive forms
|
|
||||||
inf =
|
|
||||||
verb.inf ;
|
|
||||||
imp =
|
|
||||||
table {
|
|
||||||
VImp1 Sg => "es" ;
|
|
||||||
VImp1 Pl => "este" ;
|
|
||||||
VImp2 Pl P2 => "estote" ;
|
|
||||||
a => verb.imp ! a
|
|
||||||
} ;
|
|
||||||
sup =
|
|
||||||
\\_ => nonExist ; -- no supin forms
|
|
||||||
ger =
|
|
||||||
\\_ => nonExist ; -- no gerund forms
|
|
||||||
geriv =
|
|
||||||
\\_ => nonExist ; -- no gerundive forms
|
|
||||||
part = table {
|
|
||||||
VActFut =>
|
|
||||||
verb.part ! VActFut ;
|
|
||||||
VActPres =>
|
|
||||||
\\_ => nonExist ; -- no such participle
|
|
||||||
VPassPerf =>
|
|
||||||
\\_ => nonExist -- no such participle
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- Bayer-Lindauer 93 2.2
|
-- Bayer-Lindauer 93 2.2
|
||||||
can_VV =
|
can_V =
|
||||||
let
|
posseAux ;
|
||||||
pres_stem = "pos" ;
|
|
||||||
pres_ind_base = "pos" ;
|
|
||||||
pres_conj_base = "possi" ;
|
|
||||||
impf_ind_base = "potera" ;
|
|
||||||
impf_conj_base = "posse" ;
|
|
||||||
fut_I_base = "poteri" ;
|
|
||||||
imp_base = "" ;
|
|
||||||
perf_stem = "potu" ;
|
|
||||||
perf_ind_base = "potu" ;
|
|
||||||
perf_conj_base = "potueri" ;
|
|
||||||
pqperf_ind_base = "potuera" ;
|
|
||||||
pqperf_conj_base = "potuisse" ;
|
|
||||||
fut_II_base = "potueri" ;
|
|
||||||
part_stem = "" ;
|
|
||||||
verb = mkVerb "posse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
|
||||||
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
act =
|
|
||||||
table {
|
|
||||||
VAct VSim (VPres VInd) n p =>
|
|
||||||
table Number [ table Person [ "possum" ; "potes" ; "potest" ] ;
|
|
||||||
table Person [ "possumus" ; "potestis" ; "possunt" ]
|
|
||||||
] ! n ! p ;
|
|
||||||
a => verb.act ! a
|
|
||||||
} ;
|
|
||||||
pass =
|
|
||||||
\\_ => nonExist ; -- no passive forms
|
|
||||||
inf =
|
|
||||||
table {
|
|
||||||
VInfActFut _ => nonExist ;
|
|
||||||
a => verb.inf ! a
|
|
||||||
} ;
|
|
||||||
imp =
|
|
||||||
\\_ => nonExist ;
|
|
||||||
sup =
|
|
||||||
\\_ => nonExist ;
|
|
||||||
ger =
|
|
||||||
\\_ => nonExist ;
|
|
||||||
geriv =
|
|
||||||
\\_ => nonExist ;
|
|
||||||
part = table {
|
|
||||||
VActFut =>
|
|
||||||
\\_ => nonExist ; -- no such participle
|
|
||||||
VActPres =>
|
|
||||||
\\_ => nonExist ; -- no such participle
|
|
||||||
VPassPerf =>
|
|
||||||
\\_ => nonExist -- no such participle
|
|
||||||
} ;
|
|
||||||
isAux = False
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Bayer-Lindauer 94
|
-- Bayer-Lindauer 94
|
||||||
bring_V =
|
bring_V =
|
||||||
let
|
ferreAux ;
|
||||||
pres_stem = "fer" ;
|
|
||||||
pres_ind_base = "fer" ;
|
|
||||||
pres_conj_base = "fera" ;
|
|
||||||
impf_ind_base = "fereba" ;
|
|
||||||
impf_conj_base = "ferre" ;
|
|
||||||
fut_I_base = "fere" ;
|
|
||||||
imp_base = "fer" ;
|
|
||||||
perf_stem = "tul" ;
|
|
||||||
perf_ind_base = "tul" ;
|
|
||||||
perf_conj_base = "tuleri" ;
|
|
||||||
pqperf_ind_base = "tulera" ;
|
|
||||||
pqperf_conj_base = "tulisse" ;
|
|
||||||
fut_II_base = "tuleri" ;
|
|
||||||
part_stem = "lat" ;
|
|
||||||
verb = mkVerb "ferre" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
|
||||||
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
act =
|
|
||||||
table {
|
|
||||||
VAct VSim (VPres VInd) n p =>
|
|
||||||
table Number [ table Person [ "fero" ; "fers" ; "fert" ] ;
|
|
||||||
table Person [ "ferimus" ; "fertis" ; "ferunt" ]
|
|
||||||
] ! n ! p ;
|
|
||||||
a => verb.act ! a
|
|
||||||
} ;
|
|
||||||
pass =
|
|
||||||
table {
|
|
||||||
VPass (VPres VInd) n p =>
|
|
||||||
table Number [ table Person [ "feror" ; "ferris" ; "fertur" ] ;
|
|
||||||
table Person [ "ferimur" ; "ferimini" ; "feruntur" ]
|
|
||||||
] ! n ! p ;
|
|
||||||
a => verb.pass ! a
|
|
||||||
} ;
|
|
||||||
inf =
|
|
||||||
verb.inf ;
|
|
||||||
imp =
|
|
||||||
table {
|
|
||||||
VImp1 n => table Number [ "fer" ; "ferte" ] ! n ;
|
|
||||||
VImp2 Sg ( P2 | P3 ) => "ferto" ;
|
|
||||||
VImp2 Pl P2 => "fertote" ;
|
|
||||||
a => verb.imp ! a
|
|
||||||
} ;
|
|
||||||
sup =
|
|
||||||
verb.sup ;
|
|
||||||
ger =
|
|
||||||
verb.ger ;
|
|
||||||
geriv =
|
|
||||||
verb.geriv ;
|
|
||||||
part = verb.part ;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Bayer-Lindauer 95
|
-- Bayer-Lindauer 95
|
||||||
want_V =
|
want_V =
|
||||||
@@ -204,9 +49,9 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
|||||||
pass =
|
pass =
|
||||||
\\_ => nonExist ;
|
\\_ => nonExist ;
|
||||||
ger =
|
ger =
|
||||||
verb.ger ;
|
\\_ => nonExist ;
|
||||||
geriv =
|
geriv =
|
||||||
verb.geriv ;
|
\\_ => nonExist ;
|
||||||
imp =
|
imp =
|
||||||
\\_ => nonExist ;
|
\\_ => nonExist ;
|
||||||
inf =
|
inf =
|
||||||
@@ -220,7 +65,7 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
|||||||
\\_ => nonExist
|
\\_ => nonExist
|
||||||
} ;
|
} ;
|
||||||
sup =
|
sup =
|
||||||
verb.sup ;
|
\\_ => nonExist ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Bayer-Lindauer 96 1
|
-- Bayer-Lindauer 96 1
|
||||||
@@ -453,4 +298,155 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
|||||||
} ;
|
} ;
|
||||||
sup = \\_ => nonExist ; -- no such supine form
|
sup = \\_ => nonExist ; -- no such supine form
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
not8want_V =
|
||||||
|
let
|
||||||
|
pres_stem = "nol" ;
|
||||||
|
pres_ind_base = "nol" ;
|
||||||
|
pres_conj_base = "noli" ;
|
||||||
|
impf_ind_base = "noleba" ;
|
||||||
|
impf_conj_base = "nolle" ;
|
||||||
|
fut_I_base = "nole" ;
|
||||||
|
imp_base = "nol" ;
|
||||||
|
perf_stem = "nolu" ;
|
||||||
|
perf_ind_base = "nolu" ;
|
||||||
|
perf_conj_base = "nolueri" ;
|
||||||
|
pqperf_ind_base = "noluera" ;
|
||||||
|
pqperf_conj_base = "noluisse" ;
|
||||||
|
fut_II_base = "nolueri" ;
|
||||||
|
part_stem = "nolet" ;
|
||||||
|
verb = mkVerb "nolle" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act =
|
||||||
|
table {
|
||||||
|
VAct VSim (VPres VInd) n p =>
|
||||||
|
table Number [ table Person [ "nolo" ; "non vis" ; "non vult" ] ;
|
||||||
|
table Person [ "nolumus" ; "non vultis" ; "nolunt" ]
|
||||||
|
] ! n ! p ;
|
||||||
|
a => verb.act ! a
|
||||||
|
} ;
|
||||||
|
pass =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
ger =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
geriv =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
imp = table {
|
||||||
|
VImp1 Sg => "noli" ;
|
||||||
|
i => verb.imp ! i
|
||||||
|
} ;
|
||||||
|
inf = table {
|
||||||
|
VInfActFut _ | VInfPassPres | VInfPassPerf _ | VinfPassFut => nonExist ;
|
||||||
|
i => verb.inf ! i
|
||||||
|
} ;
|
||||||
|
part = table {
|
||||||
|
VActFut =>
|
||||||
|
\\_ => nonExist ;
|
||||||
|
VActPres =>
|
||||||
|
verb.part ! VActPres ;
|
||||||
|
VPassPerf =>
|
||||||
|
\\_ => nonExist
|
||||||
|
} ;
|
||||||
|
sup =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
make_V =
|
||||||
|
let
|
||||||
|
pres_stem = "faci" ;
|
||||||
|
pres_ind_base = "faci" ;
|
||||||
|
pres_conj_base = "facia" ;
|
||||||
|
impf_ind_base = "facieba" ;
|
||||||
|
impf_conj_base = "facere" ;
|
||||||
|
fut_I_base = "facie" ;
|
||||||
|
imp_base = "faci" ;
|
||||||
|
perf_stem = "fec" ;
|
||||||
|
perf_ind_base = "fec" ;
|
||||||
|
perf_conj_base = "feceri" ;
|
||||||
|
pqperf_ind_base = "fecera" ;
|
||||||
|
pqperf_conj_base = "fecisse" ;
|
||||||
|
fut_II_base = "feceri" ;
|
||||||
|
part_stem = "fact" ;
|
||||||
|
verb = mkVerb "facere" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act = verb.act ;
|
||||||
|
pass =
|
||||||
|
table {
|
||||||
|
VPass (VPres VInd) Sg P1 => "fio" ;
|
||||||
|
VPass (VPres VInd) Pl P3 => "fiunt" ;
|
||||||
|
VPass (VPres VInd) n p => "fi" + actPresEnding n p ;
|
||||||
|
VPass (VPres VConj) n p => "fia" + actPresEnding n p ;
|
||||||
|
VPass (VImpf VInd) n p => "fieba" + actPresEnding n p ;
|
||||||
|
VPass (VImpf VConj) n p => "fiere" + actPresEnding n p ;
|
||||||
|
VPass VFut Sg P1 => "fiam" ;
|
||||||
|
VPass VFut n p => "fie" + actPresEnding n p
|
||||||
|
} ;
|
||||||
|
ger =
|
||||||
|
verb.ger ;
|
||||||
|
geriv =
|
||||||
|
verb.geriv ;
|
||||||
|
imp =
|
||||||
|
table {
|
||||||
|
VImp1 Sg => "fac" ;
|
||||||
|
i => verb.imp ! i
|
||||||
|
} ;
|
||||||
|
inf =
|
||||||
|
table {
|
||||||
|
VInfActFut Masc => "facturus" ;
|
||||||
|
VInfActFut Fem => "factura" ;
|
||||||
|
VInfActFut Neutr => "facturum" ;
|
||||||
|
VInfPassPres => "fieri" ;
|
||||||
|
VInfPassPerf Masc => "factus" ;
|
||||||
|
VInfPassPerf Fem => "facta" ;
|
||||||
|
i => verb.inf ! i
|
||||||
|
};
|
||||||
|
part =
|
||||||
|
verb.part ;
|
||||||
|
sup =
|
||||||
|
table {
|
||||||
|
VSupAcc => "factum" ;
|
||||||
|
VSupAbl => "factu"
|
||||||
|
} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
give_V =
|
||||||
|
let
|
||||||
|
pres_stem = "da" ;
|
||||||
|
pres_ind_base = "da" ;
|
||||||
|
pres_conj_base = "de" ;
|
||||||
|
impf_ind_base = "daba" ;
|
||||||
|
impf_conj_base = "dare" ;
|
||||||
|
fut_I_base = "dabi" ;
|
||||||
|
imp_base = "da" ;
|
||||||
|
perf_stem = "ded" ;
|
||||||
|
perf_ind_base = "ded" ;
|
||||||
|
perf_conj_base = "dederi" ;
|
||||||
|
pqperf_ind_base = "dedera" ;
|
||||||
|
pqperf_conj_base = "dedisse" ;
|
||||||
|
fut_II_base = "dederi" ;
|
||||||
|
part_stem = "dat" ;
|
||||||
|
verb = mkVerb "dare" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act = verb.act ;
|
||||||
|
pass =
|
||||||
|
verb.pass ;
|
||||||
|
ger =
|
||||||
|
verb.ger ;
|
||||||
|
geriv =
|
||||||
|
verb.geriv ;
|
||||||
|
imp =
|
||||||
|
verb.imp ;
|
||||||
|
inf = verb.inf ;
|
||||||
|
part =
|
||||||
|
verb.part ;
|
||||||
|
sup =
|
||||||
|
verb.sup ;
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
abstract IrregLatAbs = Cat ** {
|
abstract IrregLatAbs = Cat ** {
|
||||||
fun
|
fun
|
||||||
be_V : V ;
|
be_V : V ;
|
||||||
can_VV : VV ;
|
can_V : V ;
|
||||||
bring_V : V ;
|
bring_V : V ;
|
||||||
want_V : V ;
|
want_V : V ;
|
||||||
go_V : V;
|
go_V : V;
|
||||||
become_V : V;
|
become_V : V;
|
||||||
rain_V : V;
|
rain_V : V;
|
||||||
hate_V : V;
|
hate_V : V;
|
||||||
|
not8want_V : V ;
|
||||||
|
make_V : V ;
|
||||||
|
give_V : V ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
concrete LangLat of Lang =
|
concrete LangLat of Lang =
|
||||||
GrammarLat,
|
GrammarLat,
|
||||||
ParadigmsLat,
|
ParadigmsLat,
|
||||||
-- ConjunctionLat,
|
|
||||||
LexiconLat
|
LexiconLat
|
||||||
|
-- ConstructionLat
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||||
|
|||||||
@@ -19,19 +19,21 @@ concrete LexiconLat of Lexicon = CatLat ** open
|
|||||||
NounLat,
|
NounLat,
|
||||||
AdjectiveLat,
|
AdjectiveLat,
|
||||||
VerbLat,
|
VerbLat,
|
||||||
Prelude in {
|
Prelude,
|
||||||
|
ExtraLat
|
||||||
|
in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
optimize=values ;
|
optimize=values ;
|
||||||
coding = utf8;
|
coding = utf8;
|
||||||
lin
|
lin
|
||||||
airplane_N = mkN "aeroplanum" ; -- -i n. (http://la.wikipedia.org/wiki/A%C3%ABroplanum / Pons)
|
airplane_N = mkN "aeroplanum" ; -- -i n. (http://la.wikipedia.org/wiki/A%C3%ABroplanum / Pons)
|
||||||
answer_V2S = mkV2S ( mkV "respondere" ) R.Dat_Prep ; -- -spondeo, -spondi, -sponsum 2 (Langenscheidts) alicui; ad, contra, adversus aliquid (Stowasser)
|
answer_V2S = mkV2S ( mkV "respondere" ) Dat_Prep ; -- -spondeo, -spondi, -sponsum 2 (Langenscheidts) alicui; ad, contra, adversus aliquid (Stowasser)
|
||||||
apartment_N = mkN "domicilium" ; -- -i n. (Langenscheidts)
|
apartment_N = mkN "domicilium" ; -- -i n. (Langenscheidts)
|
||||||
apple_N = mkN "malum" ; -- -i n. (Langenscheidts)
|
apple_N = mkN "malum" ; -- -i n. (Langenscheidts)
|
||||||
art_N = mkN "ars" "artis" feminine ; -- Ranta; artis f. (Langenscheidts)
|
art_N = mkN "ars" "artis" feminine ; -- Ranta; artis f. (Langenscheidts)
|
||||||
ask_V2Q = mkV2Q ( mkV "rogare" ) R.Acc_Prep ; -- rogo 1 (Langenscheidts) aliquem aliquid (Stowasser)
|
ask_V2Q = mkV2Q ( mkV "rogare" ) Acc_Prep ; -- rogo 1 (Langenscheidts) aliquem aliquid (Stowasser)
|
||||||
baby_N = mkN "infans" "infantis" ( variants { feminine ; masculine } ); -- Ranta; -antis m./f. (Langenscheidts)
|
baby_N = mkN "infans" "infantis" masculine ; -- Ranta; -antis m./f. (Langenscheidts)
|
||||||
bad_A = mkA "malus" ; -- Ranta; peior, pessimus 3 (Langenscheidts)
|
bad_A = mkA "malus" ; -- Ranta; peior, pessimus 3 (Langenscheidts)
|
||||||
bank_N = mkN "argentaria" ; -- -ae f. (http://la.wikipedia.org/wiki/Argentaria / Pons)
|
bank_N = mkN "argentaria" ; -- -ae f. (http://la.wikipedia.org/wiki/Argentaria / Pons)
|
||||||
beautiful_A = mkA "pulcher" ; -- -chra, -chrum (Langenscheidts)
|
beautiful_A = mkA "pulcher" ; -- -chra, -chrum (Langenscheidts)
|
||||||
@@ -42,16 +44,16 @@ lin
|
|||||||
bike_N = mkN "birota" ; -- -ae f. (http://la.wikipedia.org/wiki/Birota / Pons)
|
bike_N = mkN "birota" ; -- -ae f. (http://la.wikipedia.org/wiki/Birota / Pons)
|
||||||
bird_N = mkN "avis" "avis" feminine ; -- Ranta; -is f. (Langenscheidts)
|
bird_N = mkN "avis" "avis" feminine ; -- Ranta; -is f. (Langenscheidts)
|
||||||
black_A = mkA "niger" ; -- Ranta; -gra, -grum (Langenscheidts)
|
black_A = mkA "niger" ; -- Ranta; -gra, -grum (Langenscheidts)
|
||||||
blue_A = mkA ( variants { "caeruleus" ; "caerulus" } ) ; -- 3 (Langenscheidts)
|
blue_A = mkA "caerulus" ; -- 3 (Langenscheidts)
|
||||||
boat_N = mkN "navicula" ; -- -ae f. (Langenscheidts)
|
boat_N = mkN "navicula" ; -- -ae f. (Langenscheidts)
|
||||||
book_N = mkN "liber"; -- Ranta; -bri m. (Langenscheidts)
|
book_N = mkN "liber"; -- Ranta; -bri m. (Langenscheidts)
|
||||||
boot_N = mkN "calceus" ; -- -i m. (Langenscheidts)
|
boot_N = mkN "calceus" ; -- -i m. (Langenscheidts)
|
||||||
boss_N = mkN "dux" "ducis" ( variants { feminine ; masculine } ) ; -- ducis m./f. (Langenscheidts)
|
boss_N = mkN "dux" "ducis" masculine ; -- ducis m./f. (Langenscheidts)
|
||||||
boy_N = mkN "puer" "pueri" masculine ; -- -eri m. (Langenscheidts)
|
boy_N = mkN "puer" "pueri" masculine ; -- -eri m. (Langenscheidts)
|
||||||
bread_N = variants { (mkN "panis" "panis" masculine ) ; (mkN "pane" "panis" neuter ) } ; -- -is m./n. (Langenscheidts)
|
bread_N = mkN "panis" "panis" masculine ; -- -is m./n. (Langenscheidts)
|
||||||
break_V2 = mkV2 ( mkV "rumpere" "rumpo" "rupi" "ruptum" ) ; -- Ranta; 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
break_V2 = mkV2 ( mkV "rumpere" "rumpo" "rupi" "ruptum" ) ; -- Ranta; 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
broad_A = mkA "latus" ; -- 3 (Langenscheidts)
|
broad_A = mkA "latus" ; -- 3 (Langenscheidts)
|
||||||
brother_N2 = mkN2 ( mkN "frater" "fratris" masculine ) R.Gen_Prep; -- -tris m. (Langenscheidts) alicuius (Bayer-Lindauer 125.2)
|
brother_N2 = mkN2 ( mkN "frater" "fratris" masculine ) Gen_Prep; -- -tris m. (Langenscheidts) alicuius (Bayer-Lindauer 125.2)
|
||||||
brown_A = mkA "fulvus" ; -- 3 (Langenscheidts)
|
brown_A = mkA "fulvus" ; -- 3 (Langenscheidts)
|
||||||
butter_N = mkN "butyrum" ; -- -i n. (http://la.wikipedia.org/wiki/Butyrum / Pons)
|
butter_N = mkN "butyrum" ; -- -i n. (http://la.wikipedia.org/wiki/Butyrum / Pons)
|
||||||
buy_V2 = mkV2 (mkV "emere") ; -- emo, emi, emptum 3 (Langenscheidts) (Stowasser) ab, de aliquo (Stowasser)
|
buy_V2 = mkV2 (mkV "emere") ; -- emo, emi, emptum 3 (Langenscheidts) (Stowasser) ab, de aliquo (Stowasser)
|
||||||
@@ -60,7 +62,7 @@ lin
|
|||||||
cap_N = mkN "galerus" ; -- -i m. (Langenscheidts)
|
cap_N = mkN "galerus" ; -- -i m. (Langenscheidts)
|
||||||
car_N = mkN "autoreada" ; -- -ae f. (Pons / http://la.wikipedia.org/wiki/Autocinetum)
|
car_N = mkN "autoreada" ; -- -ae f. (Pons / http://la.wikipedia.org/wiki/Autocinetum)
|
||||||
carpet_N = mkN "stragulum" ; -- -i n. (Pons / http://la.wikipedia.org/wiki/Teges_pavimenti)
|
carpet_N = mkN "stragulum" ; -- -i n. (Pons / http://la.wikipedia.org/wiki/Teges_pavimenti)
|
||||||
cat_N = mkN ( variants {"feles" ; "felis" } ) "felis" feminine ; -- -is f. (Langenscheidts)
|
cat_N = mkN "feles" "felis" feminine ; -- -is f. (Langenscheidts)
|
||||||
ceiling_N = mkN "tegimentum" ; -- -i n. (Langenscheidts)
|
ceiling_N = mkN "tegimentum" ; -- -i n. (Langenscheidts)
|
||||||
chair_N = mkN "sedes" "sedis" feminine; -- -is f. (Langenscheidts)
|
chair_N = mkN "sedes" "sedis" feminine; -- -is f. (Langenscheidts)
|
||||||
cheese_N = mkN "caseus" ; -- -i m. (Langenscheidts)
|
cheese_N = mkN "caseus" ; -- -i m. (Langenscheidts)
|
||||||
@@ -75,29 +77,29 @@ lin
|
|||||||
come_V = mkV "venire" ; -- veno, veni, ventum 4 (Langenscheidts)
|
come_V = mkV "venire" ; -- veno, veni, ventum 4 (Langenscheidts)
|
||||||
computer_N = mkN "computatrum" ; -- -i n. (http://la.wikipedia.org/wiki/Computatrum / Pons)
|
computer_N = mkN "computatrum" ; -- -i n. (http://la.wikipedia.org/wiki/Computatrum / Pons)
|
||||||
country_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
country_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
||||||
cousin_N = mkN ( variants {"consobrinus" ; "consobrina" } ) ; -- -i/-ae m./f. (Langenscheidts)
|
cousin_N = mkN "consobrinus" ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
cow_N = mkN "bos" "bovis" ( variants { feminine ; masculine } ) ; -- bovis (gen. pl. boum, dat./abl. pl. bobus/bubus) m./f. (Langenscheidts)
|
cow_N = mkN "bos" "bovis" masculine ; -- bovis (gen. pl. boum, dat./abl. pl. bobus/bubus) m./f. (Langenscheidts)
|
||||||
die_V = mkV "mori" "mortuus" "morturus"; -- morior, mortuus sum, morturus (Langenscheidts)
|
die_V = mkV "mori" "mortuus" "morturus"; -- morior, mortuus sum, morturus (Langenscheidts)
|
||||||
dirty_A = mkA "sordidus" ; -- 3 (Langenscheidts)
|
dirty_A = mkA "sordidus" ; -- 3 (Langenscheidts)
|
||||||
|
|
||||||
distance_N3 = mkN3 (mkN "distantia") from_Prep to_Prep ; -- -ae f. (Langenscheidts) ab, ad aliquem; alicuius; aliquem (???)
|
distance_N3 = mkN3 (mkN "distantia") from_Prep to_Prep ; -- -ae f. (Langenscheidts) ab, ad aliquem; alicuius; aliquem (???)
|
||||||
doctor_N = mkN "medicus" ; -- -i m. (Langenscheidts)
|
doctor_N = mkN "medicus" ; -- -i m. (Langenscheidts)
|
||||||
dog_N = mkN "canis" "canis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
dog_N = mkN "canis" "canis" masculine ; -- -is m./f. (Langenscheidts)
|
||||||
door_N = mkN "porta" ; -- -ae f. (Langenscheidts)
|
door_N = mkN "porta" ; -- -ae f. (Langenscheidts)
|
||||||
drink_V2 = mkV2 (mkV "bibere") ; -- bibo, potum 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
drink_V2 = mkV2 (mkV "bibere") ; -- bibo, potum 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
easy_A2V = mkA2V (mkA "facilis" "facile" ) for_Prep ; -- -e sup -illimus (Langenscheidts)
|
easy_A2V = mkA2V (mkA "facilis" "facile" ) for_Prep ; -- -e sup -illimus (Langenscheidts)
|
||||||
eat_V2 = mkV2 (mkV "cenare") ; -- ceno 1 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
eat_V2 = mkV2 (mkV "cenare") ; -- ceno 1 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
empty_A = mkA "vacuus" ; -- 3 (Langenscheidts)
|
empty_A = mkA "vacuus" ; -- 3 (Langenscheidts)
|
||||||
enemy_N = mkN "hostis" "hostis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
enemy_N = mkN "hostis" "hostis" masculine ; -- -is m./f. (Langenscheidts)
|
||||||
factory_N = mkN "officina" ; -- -ae f. (Langenscheidts)
|
factory_N = mkN "officina" ; -- -ae f. (Langenscheidts)
|
||||||
father_N2 = mkN2 (mkN "pater" "patris" masculine ) R.Gen_Prep ; -- -tris m. gen pl -um (Langenscheidts) alicuius (Bayer-Lindauer 125.2)
|
father_N2 = mkN2 (mkN "pater" "patris" masculine ) Gen_Prep ; -- -tris m. gen pl -um (Langenscheidts) alicuius (Bayer-Lindauer 125.2)
|
||||||
fear_VS = mkVS (mkV "timere") ; -- timeo, timui, --- 2 (Langenscheidts)
|
fear_VS = mkVS (mkV "timere") ; -- timeo, timui, --- 2 (Langenscheidts)
|
||||||
find_V2 = mkV2 (mkV "reperire") ; -- reperio, repperi, repertum 4 (Langenscheidts) aliquem
|
find_V2 = mkV2 (mkV "reperire") ; -- reperio, repperi, repertum 4 (Langenscheidts) aliquem
|
||||||
fish_N = mkN "piscis" "piscis" masculine ; -- -is m. (Langenscheidts)
|
fish_N = mkN "piscis" "piscis" masculine ; -- -is m. (Langenscheidts)
|
||||||
floor_N = mkN "pavimentum" ; -- -i n. (Langenscheidts)
|
floor_N = mkN "pavimentum" ; -- -i n. (Langenscheidts)
|
||||||
forget_V2 = mkV2 (mkV "oblivisci" "obliviscor" "oblitus" ) ; -- obliscor, oblitus sum 3 (Langenscheidts)
|
forget_V2 = mkV2 (mkV "oblivisci" "obliviscor" "oblitus" ) ; -- obliscor, oblitus sum 3 (Langenscheidts)
|
||||||
fridge_N = mkN "frigidarium" ; -- --i n. (Pons / http://la.wikipedia.org/wiki/Armarium_frigidarium)
|
fridge_N = mkN "frigidarium" ; -- --i n. (Pons / http://la.wikipedia.org/wiki/Armarium_frigidarium)
|
||||||
friend_N = mkN ( variants { "amicus" ; "amica" } ) ; -- -i/-ae m./f. (Langenscheidts)
|
friend_N = mkN "amicus" ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
fruit_N = mkN "fructus" "fructus" masculine; -- -us m. (Langenscheidts)
|
fruit_N = mkN "fructus" "fructus" masculine; -- -us m. (Langenscheidts)
|
||||||
fun_AV = mkAV (mkA "iocosus") ; -- 3 (Langenscheidts)
|
fun_AV = mkAV (mkA "iocosus") ; -- 3 (Langenscheidts)
|
||||||
garden_N = mkN "hortus" ; -- -i m. (Langenscheidts)
|
garden_N = mkN "hortus" ; -- -i m. (Langenscheidts)
|
||||||
@@ -108,7 +110,7 @@ lin
|
|||||||
go_V = IrregLat.go_V ; -- eo, i(v)i, itum (Langenscheidts)
|
go_V = IrregLat.go_V ; -- eo, i(v)i, itum (Langenscheidts)
|
||||||
green_A = mkA "viridis" "viride"; -- -e (Langenscheidts)
|
green_A = mkA "viridis" "viride"; -- -e (Langenscheidts)
|
||||||
harbour_N = mkN "portus" "portus" masculine ; -- -us m. (Langenscheidts)
|
harbour_N = mkN "portus" "portus" masculine ; -- -us m. (Langenscheidts)
|
||||||
hate_V2 = mkV2 IrregLat.hate_V R.Acc_Prep ; -- odi, osurus/odivi (Langenscheidts)
|
hate_V2 = mkV2 IrregLat.hate_V Acc_Prep ; -- odi, osurus/odivi (Langenscheidts)
|
||||||
hat_N = mkN "petasus" ; -- -i m. (Langenscheidts)
|
hat_N = mkN "petasus" ; -- -i m. (Langenscheidts)
|
||||||
hear_V2 = mkV2 (mkV "audire") ; -- 4 (Langenscheidts)
|
hear_V2 = mkV2 (mkV "audire") ; -- 4 (Langenscheidts)
|
||||||
hill_N = mkN "collis" "collis" masculine ; -- -is m. (Langenscheidts)
|
hill_N = mkN "collis" "collis" masculine ; -- -is m. (Langenscheidts)
|
||||||
@@ -141,7 +143,7 @@ lin
|
|||||||
meat_N = mkN "carnis" "carnis" feminine ; -- -is f. (Langenscheidts)
|
meat_N = mkN "carnis" "carnis" feminine ; -- -is f. (Langenscheidts)
|
||||||
milk_N = mkN "lac" "lactis" neuter ; -- -- lactis n. (Langenscheidts)
|
milk_N = mkN "lac" "lactis" neuter ; -- -- lactis n. (Langenscheidts)
|
||||||
moon_N = mkN "luna" ; -- -ae f. (Langenscheidts)
|
moon_N = mkN "luna" ; -- -ae f. (Langenscheidts)
|
||||||
mother_N2 = mkN2 ( mkN "mater" "matris" feminine ) R.Gen_Prep ; -- matris f. (Langenscheidts)
|
mother_N2 = mkN2 ( mkN "mater" "matris" feminine ) Gen_Prep ; -- matris f. (Langenscheidts)
|
||||||
mountain_N = mkN "mons" "montis" masculine ; -- montis m. (Langenscheidts)
|
mountain_N = mkN "mons" "montis" masculine ; -- montis m. (Langenscheidts)
|
||||||
music_N = mkN "musica" ; -- -ae f. L..
|
music_N = mkN "musica" ; -- -ae f. L..
|
||||||
narrow_A = mkA "angustus" ; -- 3 (Langenscheidts)
|
narrow_A = mkA "angustus" ; -- 3 (Langenscheidts)
|
||||||
@@ -150,7 +152,7 @@ lin
|
|||||||
oil_N = mkN "oleum" ; -- -i n. (Langenscheidts)
|
oil_N = mkN "oleum" ; -- -i n. (Langenscheidts)
|
||||||
old_A = mkA "vetus" "veteris"; -- (Langenscheidts)
|
old_A = mkA "vetus" "veteris"; -- (Langenscheidts)
|
||||||
open_V2 = mkV2 (mkV "aperire") ; -- aperio, aperui, apertum 4 (Langenscheidts)
|
open_V2 = mkV2 (mkV "aperire") ; -- aperio, aperui, apertum 4 (Langenscheidts)
|
||||||
paint_V2A = mkV2A (mkV "pingere" "pingo" "pinxi" "pictum" ) R.Acc_Prep ; -- pingo, pinxi, pictum 3 (Langenscheidts)
|
paint_V2A = mkV2A (mkV "pingere" "pingo" "pinxi" "pictum" ) Acc_Prep ; -- pingo, pinxi, pictum 3 (Langenscheidts)
|
||||||
paper_N = mkN "charta" ; -- -ae f. (http://la.wikipedia.org/wiki/Charta / Pons)
|
paper_N = mkN "charta" ; -- -ae f. (http://la.wikipedia.org/wiki/Charta / Pons)
|
||||||
paris_PN = mkPN (mkN "Lutetia") ; -- -ae f. (http://la.wikipedia.org/wiki/Lutetia)
|
paris_PN = mkPN (mkN "Lutetia") ; -- -ae f. (http://la.wikipedia.org/wiki/Lutetia)
|
||||||
peace_N = mkN "pax" "pacis" feminine ; -- pacis f. (Langenscheidts)
|
peace_N = mkN "pax" "pacis" feminine ; -- pacis f. (Langenscheidts)
|
||||||
@@ -158,8 +160,8 @@ lin
|
|||||||
planet_N = mkN "planeta" ; -- -ae m. (http://la.wikipedia.org/wiki/Planeta)
|
planet_N = mkN "planeta" ; -- -ae m. (http://la.wikipedia.org/wiki/Planeta)
|
||||||
plastic_N = mkN "plastica" "plasticae" feminine ; -- -ae f. (http://la.wikipedia.org/wiki/Plasticum)
|
plastic_N = mkN "plastica" "plasticae" feminine ; -- -ae f. (http://la.wikipedia.org/wiki/Plasticum)
|
||||||
play_V2 = mkV2 (mkV "ludere") ; -- ludo, lusi, lusum 3 (Langenscheidts)
|
play_V2 = mkV2 (mkV "ludere") ; -- ludo, lusi, lusum 3 (Langenscheidts)
|
||||||
policeman_N = mkN "custos" "custodis" ( variants { masculine ; feminine } ) ; -- -odis m./f. (Langenscheidts)
|
policeman_N = mkN "custos" "custodis" masculine ; -- -odis m./f. (Langenscheidts)
|
||||||
priest_N = mkN "sacerdos" "sacerdotis" ( variants { masculine ; feminine } ) ; -- -dotis m./f. (Langenscheidts)
|
priest_N = mkN "sacerdos" "sacerdotis" masculine ; -- -dotis m./f. (Langenscheidts)
|
||||||
probable_AS = mkAS (mkA "verisimilis" "verisimile") ; -- -e (Langenscheidts)
|
probable_AS = mkAS (mkA "verisimilis" "verisimile") ; -- -e (Langenscheidts)
|
||||||
queen_N = mkN "regina" ; -- -ae f. (Langenscheidts)
|
queen_N = mkN "regina" ; -- -ae f. (Langenscheidts)
|
||||||
radio_N = mkN "radiophonum" ; -- -i n. (Pons / http://la.wikipedia.org/wiki/Radiophonia)
|
radio_N = mkN "radiophonum" ; -- -i n. (Pons / http://la.wikipedia.org/wiki/Radiophonia)
|
||||||
@@ -180,8 +182,8 @@ lin
|
|||||||
sea_N = mkN "mare" "maris" neuter ; -- -is n. (Langenscheidts)
|
sea_N = mkN "mare" "maris" neuter ; -- -is n. (Langenscheidts)
|
||||||
seek_V2 = mkV2 (mkV "quaerere" "quaero" "quaesivi" "quaesitum" ) ; -- quaero, quaesivi, quaesitum 3 (Langenscheidts)
|
seek_V2 = mkV2 (mkV "quaerere" "quaero" "quaesivi" "quaesitum" ) ; -- quaero, quaesivi, quaesitum 3 (Langenscheidts)
|
||||||
see_V2 = mkV2 (mkV "videre") ; -- video, vidi, visum 2 (Langenscheidts)
|
see_V2 = mkV2 (mkV "videre") ; -- video, vidi, visum 2 (Langenscheidts)
|
||||||
sell_V3 = mkV3 ( mkV "vendere" "vendo" "vendidi" "venditum" ) R.Acc_Prep R.Dat_Prep ; -- vendo, vendidi, venditum 3 (Langenscheidts)
|
sell_V3 = mkV3 ( mkV "vendere" "vendo" "vendidi" "venditum" ) Acc_Prep Dat_Prep ; -- vendo, vendidi, venditum 3 (Langenscheidts)
|
||||||
send_V3 = mkV3 ( mkV "mittere" "mitto" "misi" "missum" ) R.Acc_Prep R.Dat_Prep ; -- mitto, misi, missum 3 (Langenscheidts)
|
send_V3 = mkV3 ( mkV "mittere" "mitto" "misi" "missum" ) Acc_Prep Dat_Prep ; -- mitto, misi, missum 3 (Langenscheidts)
|
||||||
sheep_N = mkN "ovis" "ovis" feminine ; -- -is f. (Langenscheidts)
|
sheep_N = mkN "ovis" "ovis" feminine ; -- -is f. (Langenscheidts)
|
||||||
ship_N = mkN "navis" "navis" feminine ; -- -is f. acc. -em (-im) abl meist -i (Langenscheidts)
|
ship_N = mkN "navis" "navis" feminine ; -- -is f. acc. -em (-im) abl meist -i (Langenscheidts)
|
||||||
shirt_N = mkN "tunica" ; -- -ae f. (Langenscheidts)
|
shirt_N = mkN "tunica" ; -- -ae f. (Langenscheidts)
|
||||||
@@ -193,20 +195,20 @@ lin
|
|||||||
-- sleep_V = mkV "dormio" "dormivi" "dormitus" "dormire" ; -- Ranta;
|
-- sleep_V = mkV "dormio" "dormivi" "dormitus" "dormire" ; -- Ranta;
|
||||||
sleep_V = mkV "dormire" ; -- 4 (Langenscheidts)
|
sleep_V = mkV "dormire" ; -- 4 (Langenscheidts)
|
||||||
small_A = mkA "parvus" ; -- 3 (Langenscheidts)
|
small_A = mkA "parvus" ; -- 3 (Langenscheidts)
|
||||||
snake_N = mkN "serpens" "serpentis" ( variants { masculine ; feminine } ) ; -- -entis m./f. (Langenscheidts)
|
snake_N = mkN "serpens" "serpentis" masculine ; -- -entis m./f. (Langenscheidts)
|
||||||
sock_N = mkN "impile" "impilis" masculine ; -- -is n. (Pons)
|
sock_N = mkN "impile" "impilis" masculine ; -- -is n. (Pons)
|
||||||
speak_V2 = mkV2 (mkV "loqui" "loquor" "locutus" ) ; -- loquor, locutus sum 3 (Langenscheidts)
|
speak_V2 = mkV2 (mkV "loqui" "loquor" "locutus" ) ; -- loquor, locutus sum 3 (Langenscheidts)
|
||||||
star_N = mkN "stella" ; -- -ae f. (Langenscheidts)
|
star_N = mkN "stella" ; -- -ae f. (Langenscheidts)
|
||||||
steel_N = mkN "chalybs" "chalybis" masculine ; -- chalybis m. (Langenscheidts)
|
steel_N = mkN "chalybs" "chalybis" masculine ; -- chalybis m. (Langenscheidts)
|
||||||
stone_N = mkN "lapis" "lapidis" masculine ; -- -idis m. (Langenscheidts)
|
stone_N = mkN "lapis" "lapidis" masculine ; -- -idis m. (Langenscheidts)
|
||||||
stove_N = mkN "fornax" "formacis" feminine ; -- -acis f. (Langenscheidts)
|
stove_N = mkN "fornax" "formacis" feminine ; -- -acis f. (Langenscheidts)
|
||||||
student_N = mkN ( variants { "discipulus"; "discipula" } ) ; -- -i/-ae m./f. (Langenscheidts)
|
student_N = mkN "discipulus"; -- -i/-ae m./f. (Langenscheidts)
|
||||||
stupid_A = mkA "stultus" ; -- 3 (Langenscheidts)
|
stupid_A = mkA "stultus" ; -- 3 (Langenscheidts)
|
||||||
sun_N = mkN "sol" "solis" masculine ; -- solis m. (Langenscheidts)
|
sun_N = mkN "sol" "solis" masculine ; -- solis m. (Langenscheidts)
|
||||||
switch8off_V2 = mkV2 (mkV "accendere") ; -- -cendo, -cendi, -censum 3 (Langenscheidts)
|
switch8off_V2 = mkV2 (mkV "accendere") ; -- -cendo, -cendi, -censum 3 (Langenscheidts)
|
||||||
switch8on_V2 = mkV2 (mkV ( variants { "exstinguere" ; "extinguere" } ) ); -- -ingo, -inxi, -inctum 3 (Langenscheidts)
|
switch8on_V2 = mkV2 (mkV "extinguere" ); -- -ingo, -inxi, -inctum 3 (Langenscheidts)
|
||||||
table_N = mkN "mensa" ; -- -ae f. (Langenscheidts)
|
table_N = mkN "mensa" ; -- -ae f. (Langenscheidts)
|
||||||
talk_V3 = mkV3 ( lin V speak_V2 ) R.Dat_Prep R.Acc_Prep ;
|
talk_V3 = mkV3 ( lin V speak_V2 ) Dat_Prep Acc_Prep ;
|
||||||
teacher_N = mkN "magister" "magistri" masculine ; -- -tri m. (Langenscheidts)
|
teacher_N = mkN "magister" "magistri" masculine ; -- -tri m. (Langenscheidts)
|
||||||
teach_V2 = mkV2 (mkV "docere") ; -- doceo, docui, doctum 2 (Langenscheidts)
|
teach_V2 = mkV2 (mkV "docere") ; -- doceo, docui, doctum 2 (Langenscheidts)
|
||||||
television_N = mkN "televisio" "televisionis" feminine ; -- -onis f. (Pons)
|
television_N = mkN "televisio" "televisionis" feminine ; -- -onis f. (Pons)
|
||||||
@@ -230,7 +232,7 @@ lin
|
|||||||
white_A = mkA "albus" ; -- 3 (Langenscheidts)
|
white_A = mkA "albus" ; -- 3 (Langenscheidts)
|
||||||
window_N = mkN "fenestra" ; -- -ae f. (Langenscheidts)
|
window_N = mkN "fenestra" ; -- -ae f. (Langenscheidts)
|
||||||
wine_N = mkN "vinum" ; -- -i n. (Langenscheidts)
|
wine_N = mkN "vinum" ; -- -i n. (Langenscheidts)
|
||||||
win_V2 = mkV2 (mkV "vincere") ; -- vinco, vici, victum 3 (Langenscheidts)
|
win_V2 = mkV2 (mkV "vincere" "vinco" "vinxi" "victum") ; -- vinco, vici, victum 3 (Langenscheidts)
|
||||||
woman_N = mkN "femina" ; -- -ae f. (Langenscheidts)
|
woman_N = mkN "femina" ; -- -ae f. (Langenscheidts)
|
||||||
wonder_VQ = mkVQ (mkV "mirari") ; -- 1 (Langenscheidts)
|
wonder_VQ = mkVQ (mkV "mirari") ; -- 1 (Langenscheidts)
|
||||||
wood_N = mkN "lignum" ; -- -i n. (Langenscheidts)
|
wood_N = mkN "lignum" ; -- -i n. (Langenscheidts)
|
||||||
@@ -242,14 +244,14 @@ lin
|
|||||||
now_Adv = mkAdv "nunc" ; -- (Langenscheidts)
|
now_Adv = mkAdv "nunc" ; -- (Langenscheidts)
|
||||||
already_Adv = mkAdv "iam" ; -- (Langenscheidts)
|
already_Adv = mkAdv "iam" ; -- (Langenscheidts)
|
||||||
song_N = mkN "carmen" "carminis" neuter ; -- -inis n. (Langenscheidts)
|
song_N = mkN "carmen" "carminis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
add_V3 = mkV3 ( mkV "addere" "addo" "addidi" "additum" ) R.Acc_Prep R.to_P ; -- addo, addidi, additum 3 (Langenscheidts)
|
add_V3 = mkV3 ( mkV "addere" "addo" "addidi" "additum" ) Acc_Prep to_Prep ; -- addo, addidi, additum 3 (Langenscheidts)
|
||||||
number_N = mkN "numerus" ; -- -i m.
|
number_N = mkN "numerus" ; -- -i m.
|
||||||
put_V2 = mkV2 (mkV "ponere" "pono" "posui" "positum" ) ; -- pono, posui, positum 3 (Langenscheidts)
|
put_V2 = mkV2 (mkV "ponere" "pono" "posui" "positum" ) ; -- pono, posui, positum 3 (Langenscheidts)
|
||||||
stop_V = mkV "sistere" "sisto" "steti" "statum" ; -- sisto, stiti/steti, statum 3 (Langenscheidts)
|
stop_V = mkV "sistere" "sisto" "steti" "statum" ; -- sisto, stiti/steti, statum 3 (Langenscheidts)
|
||||||
jump_V = mkV "saltare" ; -- 1 (Langenscheidts)
|
jump_V = mkV "saltare" ; -- 1 (Langenscheidts)
|
||||||
|
|
||||||
left_Ord = ss "sinister" ; -- -tra, -trum (Langenscheidts)
|
left_Ord = lin Ord { s = \\g,n,c => (mkA "sinister").s ! R.Posit ! R.Ag g n c } ; -- -tra, -trum (Langenscheidts)
|
||||||
right_Ord = ss "dexter" ; -- -t(e)ra, -t(e)rum (Langenscheidts)
|
right_Ord = lin Ord { s = \\g,n,c => (mkA "dexter").s ! R.Posit ! R.Ag g n c } ; -- -t(e)ra, -t(e)rum (Langenscheidts)
|
||||||
far_Adv = mkAdv "longe" ; -- (Langenscheidts)
|
far_Adv = mkAdv "longe" ; -- (Langenscheidts)
|
||||||
correct_A = mkA "rectus" ; -- 3 (Langenscheidts)
|
correct_A = mkA "rectus" ; -- 3 (Langenscheidts)
|
||||||
dry_A = mkA "aridus" ; -- 3 (Langenscheidts)
|
dry_A = mkA "aridus" ; -- 3 (Langenscheidts)
|
||||||
@@ -267,13 +269,13 @@ lin
|
|||||||
animal_N = mkN "animal" "animalis" neuter ; -- -alis n. (Langenscheidts)
|
animal_N = mkN "animal" "animalis" neuter ; -- -alis n. (Langenscheidts)
|
||||||
ashes_N = mkN "cinis" "cineris" masculine ; -- -eris m. (Langenscheidts) & Bayer-Lindauer 33 1.2
|
ashes_N = mkN "cinis" "cineris" masculine ; -- -eris m. (Langenscheidts) & Bayer-Lindauer 33 1.2
|
||||||
back_N = mkN "tergum" ; -- -i n. (Langenscheidts)
|
back_N = mkN "tergum" ; -- -i n. (Langenscheidts)
|
||||||
bark_N = mkN "cortex" "corticis" ( variants { masculine ; feminine } ) ; -- -icis m./(f.) (Langenscheidts)
|
bark_N = mkN "cortex" "corticis" masculine ; -- -icis m./(f.) (Langenscheidts)
|
||||||
belly_N = mkN "venter" "ventris" masculine ; -- -tris m. (Langenscheidts)
|
belly_N = mkN "venter" "ventris" masculine ; -- -tris m. (Langenscheidts)
|
||||||
blood_N = variants { mkN "sanguis" "sanguinis" masculine ; mkN "sangis" "sanginis" masculine} ; -- -inis m. (Langenscheidts)
|
blood_N = mkN "sanguis" "sanguinis" masculine ; -- -inis m. (Langenscheidts)
|
||||||
bone_N = mkN "os" "ossis" neuter ; -- ossis n. (Langenscheidts)
|
bone_N = mkN "os" "ossis" neuter ; -- ossis n. (Langenscheidts)
|
||||||
breast_N = mkN "pectus""pectoris" neuter ; -- pectoris n. (Langenscheidts)
|
breast_N = mkN "pectus""pectoris" neuter ; -- pectoris n. (Langenscheidts)
|
||||||
cloud_N = mkN "nubes" "nubis" feminine ; -- -is f. (Langenscheidts)
|
cloud_N = mkN "nubes" "nubis" feminine ; -- -is f. (Langenscheidts)
|
||||||
day_N = mkN "dies" "diei" ( variants { masculine ; feminine } ) ; -- -ei m./f. (Langenscheidts)
|
day_N = mkN "dies" "diei" masculine ; -- -ei m./f. (Langenscheidts)
|
||||||
dust_N = mkN "pulvis" "pulveris" masculine; -- -veris m. (Langenscheidts)
|
dust_N = mkN "pulvis" "pulveris" masculine; -- -veris m. (Langenscheidts)
|
||||||
ear_N = mkN "auris" "auris" feminine; -- -is f. (Langenscheidts)
|
ear_N = mkN "auris" "auris" feminine; -- -is f. (Langenscheidts)
|
||||||
earth_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
earth_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
||||||
@@ -293,32 +295,32 @@ lin
|
|||||||
hand_N = mkN "manus" "manus" feminine ; -- -us f. (Langenscheidts)
|
hand_N = mkN "manus" "manus" feminine ; -- -us f. (Langenscheidts)
|
||||||
head_N = mkN "caput" "capitis" neuter ; -- -itis n. (Langenscheidts)
|
head_N = mkN "caput" "capitis" neuter ; -- -itis n. (Langenscheidts)
|
||||||
heart_N = mkN "cor" "cordis" neuter; -- cordis n. (Langenscheidts)
|
heart_N = mkN "cor" "cordis" neuter; -- cordis n. (Langenscheidts)
|
||||||
horn_N = mkN ( variants { "cornu" ; "cornus" } ) "cornus" neuter ; -- -us n. (Langenscheidts)
|
horn_N = mkN "cornus" "cornus" neuter ; -- -us n. (Langenscheidts)
|
||||||
husband_N = mkN "maritus" ; -- -i m. (Langenscheidts)
|
husband_N = mkN "maritus" ; -- -i m. (Langenscheidts)
|
||||||
ice_N = mkN "glacies" "glaciei" feminine ; -- -ei f. (Langenscheidts)
|
ice_N = mkN "glacies" "glaciei" feminine ; -- -ei f. (Langenscheidts)
|
||||||
knee_N = mkN "genu" "genus" neuter ; -- -us n. (Langenscheidts)
|
knee_N = mkN "genu" "genus" neuter ; -- -us n. (Langenscheidts)
|
||||||
leaf_N = mkN "folium" ; -- -i n. (Langenscheidts)
|
leaf_N = mkN "folium" ; -- -i n. (Langenscheidts)
|
||||||
leg_N = bone_N ;
|
leg_N = bone_N ;
|
||||||
liver_N = variants { ( mkN "iecur" "iecoris" neuter ) ; ( mkN "iocur" "iocineris" neuter ) } ; -- iecoris/iocineris n. (Langenscheidts)
|
liver_N = mkN "iecur" "iecoris" neuter ; -- iecoris/iocineris n. (Langenscheidts)
|
||||||
louse_N = mkN "pedis" "pedis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
louse_N = mkN "pedis" "pedis" masculine ; -- -is m./f. (Langenscheidts)
|
||||||
mouth_N = mkN "os" "oris" neuter ; -- oris n. (Langenscheidts)
|
mouth_N = mkN "os" "oris" neuter ; -- oris n. (Langenscheidts)
|
||||||
name_N = mkN "nomen" "nominis" neuter ; -- -inis n. (Langenscheidts)
|
name_N = mkN "nomen" "nominis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
neck_N = mkN "cervix" "cervicis" feminine ; -- -icis f. (meist pl.) (Langenscheidts)
|
neck_N = mkN "cervix" "cervicis" feminine ; -- -icis f. (meist pl.) (Langenscheidts)
|
||||||
night_N = mkN "nox" "noctis" feminine ; -- noctis f. (Langenscheidts)
|
night_N = mkN "nox" "noctis" feminine ; -- noctis f. (Langenscheidts)
|
||||||
nose_N = mkN ( variants { "nasus" ; "nasum" } ) ; -- -i m./n. (Langenscheidts)
|
nose_N = mkN "nasus" ; -- -i m./n. (Langenscheidts)
|
||||||
person_N = mkN "persona" ; -- -ae f. (Langenscheidts)
|
person_N = mkN "persona" ; -- -ae f. (Langenscheidts)
|
||||||
rain_N = mkN "pluvia" ; -- -ae f. (Langenscheidts)
|
rain_N = mkN "pluvia" ; -- -ae f. (Langenscheidts)
|
||||||
road_N = mkN "via" ; -- -ae f. (Langenscheidts)
|
road_N = mkN "via" ; -- -ae f. (Langenscheidts)
|
||||||
root_N = mkN "radix" "radicis" feminine ; -- -icis f. (Langenscheidts)
|
root_N = mkN "radix" "radicis" feminine ; -- -icis f. (Langenscheidts)
|
||||||
rope_N = mkN "funis" "funis" ( variants { masculine ; feminine } ) ; -- -is m.(/f.) (Langenscheidts)
|
rope_N = mkN "funis" "funis" masculine ; -- -is m.(/f.) (Langenscheidts)
|
||||||
salt_N = mkN "sal" "salis" ( variants { masculine ; neuter } ) ; -- salis m./n. (Langenscheidts)
|
salt_N = mkN "sal" "salis" masculine ; -- salis m./n. (Langenscheidts)
|
||||||
sand_N = mkN "arena" ; -- -ae f. (Langenscheidts)
|
sand_N = mkN "arena" ; -- -ae f. (Langenscheidts)
|
||||||
seed_N = mkN "semen" "seminis" neuter ; -- -inis n. (Langenscheidts)
|
seed_N = mkN "semen" "seminis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
skin_N = mkN "cutis" "cutis" feminine ; -- -is f. (Langenscheidts)
|
skin_N = mkN "cutis" "cutis" feminine ; -- -is f. (Langenscheidts)
|
||||||
sky_N = mkN "caelum" ; -- -i n. (Langenscheidts)
|
sky_N = mkN "caelum" ; -- -i n. (Langenscheidts)
|
||||||
smoke_N = mkN "fumus" ; -- -i m. (Langenscheidts)
|
smoke_N = mkN "fumus" ; -- -i m. (Langenscheidts)
|
||||||
snow_N = mkN "nix" "nivis" feminine ; -- nivis (gen. pl. -ium) f. (Langenscheidts)
|
snow_N = mkN "nix" "nivis" feminine ; -- nivis (gen. pl. -ium) f. (Langenscheidts)
|
||||||
stick_N = mkN ( variants { "baculum" ; "baculus" } ) ; -- -i n./m.
|
stick_N = mkN "baculus" ; -- -i n./m.
|
||||||
tail_N = mkN "cauda" ; -- -ae f. (Langenscheidts)
|
tail_N = mkN "cauda" ; -- -ae f. (Langenscheidts)
|
||||||
tongue_N = mkN "lingua" ; -- -ae f. (Langenscheidts)
|
tongue_N = mkN "lingua" ; -- -ae f. (Langenscheidts)
|
||||||
tooth_N = mkN "dens" "dentis" masculine; -- dentis m. (Langenscheidts)
|
tooth_N = mkN "dens" "dentis" masculine; -- dentis m. (Langenscheidts)
|
||||||
|
|||||||
@@ -1,39 +1,22 @@
|
|||||||
resource MissingLat = open GrammarLat, Prelude in {
|
resource MissingLat = open GrammarLat, Prelude in {
|
||||||
|
|
||||||
-- temporary definitions to enable the compilation of RGL API
|
-- temporary definitions to enable the compilation of RGL API
|
||||||
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
|
|
||||||
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
|
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
|
||||||
oper AdVVP : AdV -> VP -> VP = notYet "AdVVP" ;
|
|
||||||
oper AdjOrd : Ord -> AP = notYet "AdjOrd" ;
|
|
||||||
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
|
|
||||||
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
|
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
|
||||||
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
||||||
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
||||||
oper AdvS : Adv -> S -> S = notYet "AdvS" ;
|
|
||||||
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
||||||
oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ;
|
|
||||||
oper BaseNP : NP -> NP -> ListNP = notYet "BaseNP" ;
|
|
||||||
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
||||||
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
||||||
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
|
||||||
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
||||||
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
||||||
oper CompAdv : Adv -> Comp = notYet "CompAdv" ;
|
|
||||||
oper CompCN : CN -> Comp = notYet "CompCN" ;
|
|
||||||
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
||||||
oper CompNP : NP -> Comp = notYet "CompNP" ;
|
|
||||||
oper ComparA : A -> NP -> AP = notYet "ComparA" ;
|
|
||||||
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
|
|
||||||
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
|
||||||
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
|
|
||||||
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
|
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
|
||||||
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
||||||
oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ;
|
|
||||||
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
||||||
oper ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ;
|
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
|
||||||
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
||||||
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
||||||
oper DetNP : Det -> NP = notYet "DetNP" ;
|
|
||||||
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
|
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
|
||||||
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
|
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
|
||||||
oper EmbedS : S -> SC = notYet "EmbedS" ;
|
oper EmbedS : S -> SC = notYet "EmbedS" ;
|
||||||
@@ -42,101 +25,132 @@ oper ExistIP : IP -> QCl = notYet "ExistIP" ;
|
|||||||
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
||||||
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
||||||
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
||||||
oper IdRP : RP = notYet "IdRP" ;
|
|
||||||
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
|
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
|
||||||
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
||||||
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
|
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
|
||||||
|
oper IdRP : RP = notYet "IdRP" ;
|
||||||
|
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
|
||||||
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
|
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
|
||||||
oper ImpVP : VP -> Imp = notYet "ImpVP" ;
|
oper ImpVP : VP -> Imp = notYet "ImpVP" ;
|
||||||
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
|
|
||||||
oper MassNP : CN -> NP = notYet "MassNP" ;
|
|
||||||
oper NumCard : Card -> Num = notYet "NumCard" ;
|
|
||||||
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
||||||
oper NumNumeral : Numeral -> Card = notYet "NumNumeral" ;
|
|
||||||
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
|
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
|
||||||
oper OrdNumeral : Numeral -> Ord = notYet "OrdNumeral" ;
|
|
||||||
oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ;
|
oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ;
|
||||||
oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ;
|
|
||||||
oper PassV2 : V2 -> VP = notYet "PassV2" ;
|
|
||||||
oper PositAdvAdj : A -> Adv = notYet "PositAdvAdj" ;
|
|
||||||
oper PossPron : Pron -> Quant = notYet "PossPron" ;
|
oper PossPron : Pron -> Quant = notYet "PossPron" ;
|
||||||
|
oper pot1 : Digit -> Sub100 = notYet "pot1" ;
|
||||||
|
oper pot110 : Sub100 = notYet "pot110" ;
|
||||||
|
oper pot111 : Sub100 = notYet "pot111" ;
|
||||||
|
oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ;
|
||||||
|
oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ;
|
||||||
|
oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ;
|
||||||
|
oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ;
|
||||||
|
oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ;
|
||||||
|
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
|
||||||
|
oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ;
|
||||||
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
||||||
oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
|
||||||
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
||||||
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
|
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
|
||||||
oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
oper QuestCl : Cl -> QCl = notYet "QuestCl" ;
|
||||||
|
oper QuestIAdv : IAdv -> Cl -> QCl = notYet "QuestIAdv" ;
|
||||||
|
oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ;
|
||||||
|
oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ;
|
||||||
|
oper QuestVP : IP -> VP -> QCl = notYet "QuestVP" ;
|
||||||
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
||||||
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
|
||||||
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
||||||
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
|
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
||||||
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
|
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
|
||||||
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
|
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
|
||||||
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
|
|
||||||
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
||||||
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
|
|
||||||
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
||||||
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
|
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
|
||||||
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
|
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
|
||||||
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
|
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
|
||||||
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
|
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
|
||||||
oper Use2N3 : N3 -> N2 = notYet "Use2N3" ;
|
oper Use2N3 : N3 -> N2 = notYet "Use2N3" ;
|
||||||
oper UseComparA : A -> AP = notYet "UseComparA" ;
|
oper UseQCl : Temp -> Pol -> QCl -> QS = notYet "UseQCl" ;
|
||||||
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
|
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
|
||||||
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
|
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
|
||||||
oper UttAP : AP -> Utt = notYet "UttAP" ;
|
oper AddAdvQVP : QVP -> IAdv -> QVP = notYet "AddAdvQVP" ;
|
||||||
oper UttAdv : Adv -> Utt = notYet "UttAdv" ;
|
oper AdjDAP : DAP -> AP -> DAP = notYet "AdjDAP" ;
|
||||||
oper UttCN : CN -> Utt = notYet "UttCN" ;
|
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
|
||||||
oper UttCard : Card -> Utt = notYet "UttCard" ;
|
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
|
||||||
oper UttIAdv : IAdv -> Utt = notYet "UttIAdv" ;
|
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
||||||
oper UttIP : IP -> Utt = notYet "UttIP" ;
|
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
||||||
oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ;
|
oper AdvQVP : VP -> IAdv -> QVP = notYet "AdvQVP" ;
|
||||||
oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ;
|
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
||||||
oper UttImpSg : Pol -> Imp -> Utt = notYet "UttImpSg" ;
|
oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ;
|
||||||
oper UttNP : NP -> Utt = notYet "UttNP" ;
|
oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ;
|
||||||
oper UttVP : VP -> Utt = notYet "UttVP" ;
|
oper BaseDAP : DAP -> DAP -> ListDAP = notYet "BaseDAP" ;
|
||||||
oper n2 : Digit = notYet "n2" ;
|
oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ;
|
||||||
oper n3 : Digit = notYet "n3" ;
|
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
||||||
oper n4 : Digit = notYet "n4" ;
|
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
||||||
oper n5 : Digit = notYet "n5" ;
|
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
||||||
oper n6 : Digit = notYet "n6" ;
|
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
|
||||||
oper n7 : Digit = notYet "n7" ;
|
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
||||||
oper n8 : Digit = notYet "n8" ;
|
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
||||||
oper n9 : Digit = notYet "n9" ;
|
oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ;
|
||||||
oper num : Sub1000000 -> Numeral = notYet "num" ;
|
oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ;
|
||||||
oper pot0 : Digit -> Sub10 = notYet "pot0" ;
|
oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ;
|
||||||
oper pot01 : Sub10 = notYet "pot01" ;
|
oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ;
|
||||||
oper pot0as1 : Sub10 -> Sub100 = notYet "pot0as1" ;
|
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
||||||
|
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
|
||||||
|
oper ConsAdV : AdV -> ListAdV -> ListAdV = notYet "ConsAdV" ;
|
||||||
|
oper ConsCN : CN -> ListCN -> ListCN = notYet "ConsCN" ;
|
||||||
|
oper ConsDAP : DAP -> ListDAP -> ListDAP = notYet "ConsDAP" ;
|
||||||
|
oper ConsIAdv : IAdv -> ListIAdv -> ListIAdv = notYet "ConsIAdv" ;
|
||||||
|
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
||||||
|
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
||||||
|
oper CountNP : Det -> NP -> NP = notYet "CountNP" ;
|
||||||
|
oper DetDAP : Det -> DAP = notYet "DetDAP" ;
|
||||||
|
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
|
||||||
|
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
|
||||||
|
oper EmbedS : S -> SC = notYet "EmbedS" ;
|
||||||
|
oper EmbedVP : VP -> SC = notYet "EmbedVP" ;
|
||||||
|
oper ExtAdvS : Adv -> S -> S = notYet "ExtAdvS" ;
|
||||||
|
oper ExtAdvVP : VP -> Adv -> VP = notYet "ExtAdvVP" ;
|
||||||
|
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
|
||||||
|
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
||||||
|
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
|
||||||
|
oper ImpVP : VP -> Imp = notYet "ImpVP" ;
|
||||||
|
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
||||||
|
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
|
||||||
|
oper OrdNumeralSuperl : Numeral -> A -> Ord = notYet "OrdNumeralSuperl" ;
|
||||||
|
oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ;
|
||||||
|
oper PartNP : CN -> NP -> CN = notYet "PartNP" ;
|
||||||
|
oper PossNP : CN -> NP -> CN = notYet "PossNP" ;
|
||||||
|
oper PossPron : Pron -> Quant = notYet "PossPron" ;
|
||||||
oper pot1 : Digit -> Sub100 = notYet "pot1" ;
|
oper pot1 : Digit -> Sub100 = notYet "pot1" ;
|
||||||
oper pot110 : Sub100 = notYet "pot110" ;
|
oper pot110 : Sub100 = notYet "pot110" ;
|
||||||
oper pot111 : Sub100 = notYet "pot111" ;
|
oper pot111 : Sub100 = notYet "pot111" ;
|
||||||
oper pot1as2 : Sub100 -> Sub1000 = notYet "pot1as2" ;
|
|
||||||
oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ;
|
oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ;
|
||||||
oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ;
|
oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ;
|
||||||
oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ;
|
oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ;
|
||||||
oper pot2as3 : Sub1000 -> Sub1000000 = notYet "pot2as3" ;
|
|
||||||
oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ;
|
oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ;
|
||||||
oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ;
|
oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ;
|
||||||
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
|
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
|
||||||
|
oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ;
|
||||||
|
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
||||||
|
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
||||||
|
oper QuestCl : Cl -> QCl = notYet "QuestCl" ;
|
||||||
|
oper QuestIAdv : IAdv -> Cl -> QCl = notYet "QuestIAdv" ;
|
||||||
|
oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ;
|
||||||
|
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
|
||||||
|
oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ;
|
||||||
|
oper QuestVP : IP -> VP -> QCl = notYet "QuestVP" ;
|
||||||
|
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
||||||
|
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
||||||
|
oper RelS : S -> RS -> S = notYet "RelS" ;
|
||||||
|
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
||||||
|
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
||||||
|
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
|
||||||
|
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
|
||||||
|
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
|
||||||
|
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
|
||||||
|
oper SSubjS : S -> Subj -> S -> S = notYet "SSubjS" ;
|
||||||
|
oper Use2N3 : N3 -> N2 = notYet "Use2N3" ;
|
||||||
|
oper Use3N3 : N3 -> N2 = notYet "Use3N3" ;
|
||||||
|
oper UseQCl : Temp -> Pol -> QCl -> QS = notYet "UseQCl" ;
|
||||||
|
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
|
||||||
|
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
|
||||||
|
oper VPSlashPrep : VP -> Prep -> VPSlash = notYet "VPSlashPrep" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{-
|
|
||||||
AR 28/3/2017
|
|
||||||
|
|
||||||
To build:
|
|
||||||
|
|
||||||
$ gf api/TryLat.gf | grep constant | sort -u >missLat.tmp
|
|
||||||
|
|
||||||
$ ghci
|
|
||||||
Prelude> pgf <- PGF.readPGF "Lang.pgf"
|
|
||||||
Prelude> ms <- readFile "missLat.tmp" >>= return . map (last . words) . lines
|
|
||||||
Prelude> let ts = [PGF.showType [] t | m <- ms, Just t <- [PGF.functionType pgf (PGF.mkCId m)]]
|
|
||||||
Prelude> putStrLn $ unlines ["oper " ++ f ++ " : " ++ t ++ " = notYet \"" ++ f ++ "\" ;" | (f,t) <- zip ms ts]
|
|
||||||
|
|
||||||
To use:
|
|
||||||
|
|
||||||
--# -path=.:alltenses:prelude:../latin
|
|
||||||
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
|
|
||||||
open MissingLat in {}
|
|
||||||
|
|
||||||
-}
|
|
||||||
5
src/latin/MissingTranslateLat.gf
Normal file
5
src/latin/MissingTranslateLat.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
resource MissingTranslateLat = open GrammarLat, Prelude in {
|
||||||
|
|
||||||
|
-- temporary definitions to enable the compilation of RGL Translate
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
-- syntax. To build a lexicon, it is better to use $ParadigmsLat$, which
|
-- syntax. To build a lexicon, it is better to use $ParadigmsLat$, which
|
||||||
-- gives a higher-level access to this module.
|
-- gives a higher-level access to this module.
|
||||||
|
|
||||||
resource MorphoLat = ParamX, ResLat ** open Prelude in {
|
resource MorphoLat = ParamX, ResLat ** open Prelude, Predef in {
|
||||||
--
|
--
|
||||||
-- flags optimize=all ;
|
-- flags optimize=all ;
|
||||||
--
|
--
|
||||||
@@ -149,18 +149,18 @@ oper
|
|||||||
|
|
||||||
noun_ngg : Str -> Str -> Gender -> Noun = \verbum,verbi,g ->
|
noun_ngg : Str -> Str -> Gender -> Noun = \verbum,verbi,g ->
|
||||||
let s : Noun = case <verbum,verbi> of {
|
let s : Noun = case <verbum,verbi> of {
|
||||||
<_ + "a", _ + "ae"> => noun1 verbum ;
|
<_ + "a" , _ + "ae"> => noun1 verbum ;
|
||||||
<_ + "us", _ + "i"> => noun2us verbum ;
|
<_ + "us" , _ + "i" > => noun2us verbum ;
|
||||||
<_ + "um", _ + "i"> => noun2um verbum ;
|
<_ + "um" , _ + "i" > => noun2um verbum ;
|
||||||
<_ + ( "er" | "ir" ) , _ + "i"> => noun2er verbum verbi ;
|
<_ + ( "er" | "ir" ) , _ + "i" > => noun2er verbum verbi ;
|
||||||
|
<_ + "us" , _ + "us"> => noun4us verbum ;
|
||||||
<_ + "us", _ + "us"> => noun4us verbum ;
|
<_ + "u" , _ + "us"> => noun4u verbum ;
|
||||||
<_ + "u", _ + "us"> => noun4u verbum ;
|
<_ + "es" , _ + "ei"> => noun5 verbum ;
|
||||||
<_ + "es", _ + "ei"> => noun5 verbum ;
|
<semi + "bos" , _ > => prefixNoun semi (noun3 "bos" "bovis" Masc) ;
|
||||||
_ => noun3 verbum verbi g
|
_ => noun3 verbum verbi g
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
nounWithGen g s ;
|
nounWithGender g s ;
|
||||||
|
|
||||||
noun : Str -> Noun = \verbum ->
|
noun : Str -> Noun = \verbum ->
|
||||||
case verbum of {
|
case verbum of {
|
||||||
@@ -170,6 +170,7 @@ oper
|
|||||||
_ + ( "er" | "ir" ) => noun2er verbum ( (Predef.tk 2 verbum) + "ri" ) ;
|
_ + ( "er" | "ir" ) => noun2er verbum ( (Predef.tk 2 verbum) + "ri" ) ;
|
||||||
_ + "u" => noun4u verbum ;
|
_ + "u" => noun4u verbum ;
|
||||||
_ + "es" => noun5 verbum ;
|
_ + "es" => noun5 verbum ;
|
||||||
|
semi + "bos" => prefixNoun semi (noun_ngg "bos" "bovis" Masc) ;
|
||||||
_ => Predef.error ("3rd declinsion cannot be applied to just one noun form " ++ verbum)
|
_ => Predef.error ("3rd declinsion cannot be applied to just one noun form " ++ verbum)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -179,7 +180,7 @@ oper
|
|||||||
_ + "a" => noun1 verbum ;
|
_ + "a" => noun1 verbum ;
|
||||||
_ + "us" => noun2us verbum ;
|
_ + "us" => noun2us verbum ;
|
||||||
_ + "um" => noun2um verbum ;
|
_ + "um" => noun2um verbum ;
|
||||||
_ + ( "er" | "ir" ) =>
|
_ + ( "er" | "ir" | "ur" | "tr") =>
|
||||||
let
|
let
|
||||||
puer = verbum ;
|
puer = verbum ;
|
||||||
pue = Predef.tk 1 puer ;
|
pue = Predef.tk 1 puer ;
|
||||||
@@ -189,6 +190,7 @@ oper
|
|||||||
-- Exception of adjectives where e is part of the word stem 31 3.2
|
-- Exception of adjectives where e is part of the word stem 31 3.2
|
||||||
("asper" | "miser" | "tener" | "frugifer") + _ => "e";
|
("asper" | "miser" | "tener" | "frugifer") + _ => "e";
|
||||||
-- "liber" => ( "e" | "" ) ; conflicting with noun liber
|
-- "liber" => ( "e" | "" ) ; conflicting with noun liber
|
||||||
|
_ + "tr" => "t";
|
||||||
_ => ""
|
_ => ""
|
||||||
} ;
|
} ;
|
||||||
pu = Predef.tk 1 pue ;
|
pu = Predef.tk 1 pue ;
|
||||||
@@ -310,6 +312,8 @@ oper
|
|||||||
-- Usual cases
|
-- Usual cases
|
||||||
pulch + "er" => pulch + "r" ;
|
pulch + "er" => pulch + "r" ;
|
||||||
bon + "us" => bon ;
|
bon + "us" => bon ;
|
||||||
|
cam + "ur" => cam ;
|
||||||
|
dime + "tr" => bonus ;
|
||||||
_ => Predef.error ("adj12 does not apply to" ++ bonus)
|
_ => Predef.error ("adj12 does not apply to" ++ bonus)
|
||||||
} ;
|
} ;
|
||||||
nbonus = (noun12 bonus) ;
|
nbonus = (noun12 bonus) ;
|
||||||
@@ -334,9 +338,10 @@ oper
|
|||||||
(noun1 (bon + "a"))
|
(noun1 (bon + "a"))
|
||||||
(noun2um (bon + "um"))
|
(noun2um (bon + "um"))
|
||||||
< compsup.p1 , advs.p1 >
|
< compsup.p1 , advs.p1 >
|
||||||
< compsup.p2 , advs.p2 > ;
|
< compsup.p2 , advs.p2 >
|
||||||
|
(bon + "o") (bon + "ius") (bon + "issimo") ;
|
||||||
|
|
||||||
adj3x : (_,_ : Str) -> Adjective = \acer,acris ->
|
adj3x : (_,_ : Str) -> Adjective = \acer,acris -> -- FISHY??
|
||||||
let
|
let
|
||||||
ac = Predef.tk 2 acer ;
|
ac = Predef.tk 2 acer ;
|
||||||
acrise : Str * Str = case acer of {
|
acrise : Str * Str = case acer of {
|
||||||
@@ -353,16 +358,104 @@ oper
|
|||||||
(noun3adj acrise.p2 acris Neutr)
|
(noun3adj acrise.p2 acris Neutr)
|
||||||
< compsuper.p1 , "" >
|
< compsuper.p1 , "" >
|
||||||
< compsuper.p2 , "" >
|
< compsuper.p2 , "" >
|
||||||
;
|
(ac + "riter") (ac + "rius") (ac + "rissimo") ;
|
||||||
|
|
||||||
|
adjgre : Str -> Str -> Str -> Adjective = \bonus,bona,bonum ->
|
||||||
|
let
|
||||||
|
first : Str -> Agr => Str =
|
||||||
|
\stem ->
|
||||||
|
table { Ag Masc Sg Nom => stem + "os" ;
|
||||||
|
Ag (Masc | Neutr) Sg Gen => stem + "ou" ;
|
||||||
|
Ag (Masc | Neutr) Sg Dat => stem + "oi" ;
|
||||||
|
Ag (Masc | Neutr) Sg Acc => stem + "on" ;
|
||||||
|
Ag Masc Sg Voc => stem + "e" ;
|
||||||
|
Ag Fem Sg (Nom | Voc) => stem + "a" ;
|
||||||
|
Ag Fem Sg Gen => stem + "as" ;
|
||||||
|
Ag Fem Sg Dat => stem + "ai" ;
|
||||||
|
Ag Fem Sg Acc => stem + "an" ;
|
||||||
|
Ag Neutr Sg (Nom | Voc) => stem + "on" ;
|
||||||
|
Ag Masc Pl (Nom | Voc) => stem + "oi" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Pl Gen => stem + "on" ;
|
||||||
|
Ag (Masc | Neutr) Pl Dat => stem + "ois" ;
|
||||||
|
Ag Masc Pl Acc => stem + "ous" ;
|
||||||
|
Ag Fem Pl (Nom | Voc) => stem + "ai" ;
|
||||||
|
Ag Fem Pl Dat => stem + "ais" ;
|
||||||
|
Ag Fem Pl Acc => stem + "as" ;
|
||||||
|
Ag Neutr Pl (Nom | Acc | Voc) => stem + "a" ;
|
||||||
|
Ag _ _ Abl => nonExist
|
||||||
|
} ;
|
||||||
|
second : Str -> Agr => Str =
|
||||||
|
\stem ->
|
||||||
|
table { Ag (Masc | Fem) Sg Nom => stem + "os" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Sg Gen => stem + "ou" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Sg Dat => stem + "oi" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Sg Acc => stem + "on" ;
|
||||||
|
Ag (Masc | Fem) Sg Voc => stem + "e" ;
|
||||||
|
Ag Neutr Sg (Nom | Voc) => stem + "on" ;
|
||||||
|
Ag (Masc | Fem) Pl (Nom | Voc) => stem + "oi";
|
||||||
|
Ag (Masc | Fem | Neutr) Pl Gen => stem + "on" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Pl Dat => stem + "ois" ;
|
||||||
|
Ag (Masc | Fem) Pl Acc => stem + "ous" ;
|
||||||
|
Ag Neutr Pl (Nom | Acc | Voc) => stem + "a" ;
|
||||||
|
Ag _ _ Abl => nonExist
|
||||||
|
} ;
|
||||||
|
third : Str -> Agr => Str =
|
||||||
|
\stem ->
|
||||||
|
table { Ag (Masc | Fem | Neutr) Sg (Nom | Voc) => stem + "es" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Sg Gen => stem + "ous" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Sg Dat => stem + "ei" ;
|
||||||
|
Ag (Masc | Fem) Sg Acc => stem + "e" ;
|
||||||
|
Ag Neutr Sg Acc => stem + "es" ;
|
||||||
|
Ag (Masc | Fem) Pl (Nom | Acc | Voc) => "eis" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Pl Gen => "on" ;
|
||||||
|
Ag (Masc | Fem | Neutr) Pl Dat => "esi" ;
|
||||||
|
Ag Neutr Pl (Nom | Acc | Voc ) => "e" ;
|
||||||
|
Ag _ _ Abl => nonExist
|
||||||
|
} ;
|
||||||
|
in
|
||||||
|
{ s = case <bonus,bona,bonum> of {
|
||||||
|
<agi + "os" , _ + "a" , _ + "on"> =>
|
||||||
|
table { Posit => first agi ;
|
||||||
|
Compar => first (agi + "oter") ;
|
||||||
|
Super => first (agi + "otat")
|
||||||
|
} ;
|
||||||
|
<arctic + "os" , _ + "e" , _ + "on"> =>
|
||||||
|
table { Posit => second arctic ;
|
||||||
|
Compar => second (arctic + "oter") ;
|
||||||
|
Super => second (arctic + "otat")
|
||||||
|
} ;
|
||||||
|
<akapn + "os" , _ + "os", _ + "on"> =>
|
||||||
|
table { Posit => second akapn ;
|
||||||
|
Compar => second (akapn + "oter") ;
|
||||||
|
Super => second (akapn + "otat")
|
||||||
|
} ;
|
||||||
|
<isoscel + "es", _ + "es", _ + "es"> =>
|
||||||
|
table { Posit => third isoscel ;
|
||||||
|
Compar => first (isoscel + "oter") ;
|
||||||
|
Super => first (isoscel + "otat")
|
||||||
|
} ;
|
||||||
|
<amethystiz + "on", _ + "ousa", _ + "on"> =>
|
||||||
|
table { Posit => table { Ag g Sg c => first amethystiz ! Ag g Sg c ;
|
||||||
|
Ag g Pl c => third amethystiz ! Ag g Sg c
|
||||||
|
} ;
|
||||||
|
Compar => \\_ => nonExist ;
|
||||||
|
Super => \\_ => nonExist
|
||||||
|
};
|
||||||
|
_ => error ("Greek adjective " ++ bonus ++ bona ++ bonum ) -- { s = \\_,_ => "" ; adv = \\_ => ""} ;
|
||||||
|
} ;
|
||||||
|
adv = mkAdverb bonus
|
||||||
|
} ;
|
||||||
-- smart paradigms
|
-- smart paradigms
|
||||||
|
|
||||||
adj123 : Str -> Str -> Adjective = \bonus,boni ->
|
adj123 : Str -> Str -> Adjective = \bonus,boni ->
|
||||||
case <bonus,boni> of {
|
case <bonus,boni> of {
|
||||||
<_ + ("us" | "er"), _ + "i" > => adj12 bonus ;
|
<_ + ("us" | "er"), _ + "i" > => adj12 bonus ;
|
||||||
<_ + ("us" | "er"), _ + "is"> => adj3x bonus boni ;
|
<_ + ("us" | "er"), _ + "is"> => adj3x bonus boni ;
|
||||||
<_ , _ + "is"> => adj3x bonus boni ;
|
<_ , _ + "is"> => adj3x bonus boni ;
|
||||||
<_ + "is" , _ + "e" > => adj3x bonus boni ;
|
<_ + "is" , _ + "e" > => adj3x bonus boni ;
|
||||||
|
<_ + "is" , _ + "os"> => adj3x bonus boni ;
|
||||||
|
-- <_ + "os" , _ + "on"> => adjgre bonus boni boni ;
|
||||||
|
<bon + "on" , _ + "os"> => adjgre bonus (bon + "ousa") bonus ;
|
||||||
_ => Predef.error ("adj123: not applicable to" ++ bonus ++ boni)
|
_ => Predef.error ("adj123: not applicable to" ++ bonus ++ boni)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -372,8 +465,18 @@ oper
|
|||||||
facil + "is" => adj3x bonus bonus ;
|
facil + "is" => adj3x bonus bonus ;
|
||||||
feli + "x" => adj3x bonus (feli + "cis") ;
|
feli + "x" => adj3x bonus (feli + "cis") ;
|
||||||
_ => adj3x bonus (bonus + "is") ---- any example?
|
_ => adj3x bonus (bonus + "is") ---- any example?
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
adjfull : (bonus,bona,bonum : Str) -> Adjective = \bonus,bona,bonum ->
|
||||||
|
case <bonus,bona,bonum> of {
|
||||||
|
<_ + ("er"|"us"|"ur"|"tr"), _ + "a" , _ + "um"> => adj12 bonus ;
|
||||||
|
<_ + ("er"|"is"), _ + "is" , _ + "e" > => adj3x bonus bonum ; -- FISHY?
|
||||||
|
<_ + "ior" , _ + "ior", _ + "ius"> => adj3x bonus bonum ; -- FISHY?
|
||||||
|
<_ + "os" , _ + "os" , _ + "on"> => adjgre bonus bona bonum ;
|
||||||
|
<_ + "es" , _ + "es" , _ + "es"> => adjgre bonus bona bonum ;
|
||||||
|
<_ + "os" , _ + ("e"|"a") , _ + "on"> => adjgre bonus bona bonum ;
|
||||||
|
_ => Predef.error ("Not supported" ++ bonus ++ bona ++ bonum)
|
||||||
|
} ;
|
||||||
|
|
||||||
----3 Verbs
|
----3 Verbs
|
||||||
|
|
||||||
@@ -605,6 +708,8 @@ oper
|
|||||||
_ + ( "i" | "u" ) + "o" => verb3i iacere ieci iactus ; -- Bayer-Linduaer 74 1
|
_ + ( "i" | "u" ) + "o" => verb3i iacere ieci iactus ; -- Bayer-Linduaer 74 1
|
||||||
_ => verb3c iacere ieci iactus
|
_ => verb3c iacere ieci iactus
|
||||||
} ;
|
} ;
|
||||||
|
ab + "esse" => prefixVerb ab esseAux ;
|
||||||
|
circum + "ferre" => prefixVerb circum ferreAux ;
|
||||||
_ => Predef.error ("verb_ippp: illegal infinitive form" ++ iacere)
|
_ => Predef.error ("verb_ippp: illegal infinitive form" ++ iacere)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -618,6 +723,9 @@ oper
|
|||||||
_ + "ire" => let iaci = Predef.tk 2 iacere
|
_ + "ire" => let iaci = Predef.tk 2 iacere
|
||||||
in verb4 iacere ; -- (iaci + "vi") (iaci + "tus") ;
|
in verb4 iacere ; -- (iaci + "vi") (iaci + "tus") ;
|
||||||
_ + "ere" => verb2 iacere ;
|
_ + "ere" => verb2 iacere ;
|
||||||
|
circum + "ferre" => prefixVerb circum ferreAux ;
|
||||||
|
ab + "esse" => prefixVerb ab esseAux ;
|
||||||
|
prae + "posse" => prefixVerb prae posseAux ;
|
||||||
_ => Predef.error ("verb: illegal infinitive form" ++ iacere)
|
_ => Predef.error ("verb: illegal infinitive form" ++ iacere)
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
@@ -3,43 +3,85 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
DetCN det cn = -- Det -> CN -> NP
|
-- DetCN : Det -> CN -> NP ; -- the man
|
||||||
|
DetCN det cn =
|
||||||
{
|
{
|
||||||
s = \\c => det.s ! cn.g ! c ++ cn.preap.s ! (Ag cn.g det.n c) ++ cn.s ! det.n ! c ++ cn.postap.s ! (Ag cn.g det.n c) ;
|
s = \\c => cn.s ! det.n ! c ;
|
||||||
n = det.n ; g = cn.g ; p = P3 ;
|
n = det.n ; g = cn.g ; p = P3 ;
|
||||||
|
adv = cn.adv ;
|
||||||
|
preap = cn.preap ;
|
||||||
|
postap = cn.postap ;
|
||||||
|
det = det
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UsePN pn = lin NP { s = pn.s ! Sg ; g = pn.g ; n = Sg ; p = P3 } ;
|
-- UsePN : PN -> NP ; -- John
|
||||||
UsePron p = -- Pron -> Np
|
UsePN pn =
|
||||||
|
lin NP
|
||||||
|
{
|
||||||
|
s = pn.s ! Sg ;
|
||||||
|
g = pn.g ;
|
||||||
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
adv = "" ;
|
||||||
|
preap, postap = { s = \\_ => "" } ;
|
||||||
|
det = { s,sp = \\_,_ => "" ; n = Sg }
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- UsePron : Pron -> NP ; -- he
|
||||||
|
UsePron p =
|
||||||
{
|
{
|
||||||
g = p.g ;
|
g = p.pers.g ;
|
||||||
n = p.n ;
|
n = p.pers.n ;
|
||||||
p = p.p ;
|
p = p.p ;
|
||||||
s = \\c => case c of {
|
s = \\c => case c of {
|
||||||
Nom => p.pers ! PronDrop ! PronRefl ; -- Drop pronoun in nominative case
|
Nom => p.pers.s ! PronDrop ! PronNonRefl ; -- Drop pronoun in nominative case
|
||||||
_ => p.pers ! PronNonDrop ! PronRefl -- but don't drop it otherwise
|
_ => p.pers.s ! PronNonDrop ! PronNonRefl -- but don't drop it otherwise
|
||||||
} ! c ;
|
} ! c ;
|
||||||
|
adv = "" ;
|
||||||
|
preap, postap = { s = \\_ => "" } ;
|
||||||
|
det = { s,sp = \\_,_ => "" ; n = p.pers.n } ;
|
||||||
} ;
|
} ;
|
||||||
-- PredetNP pred np = {
|
|
||||||
-- s = \\c => pred.s ++ np.s ! c ;
|
-- PredetNP : Predet -> NP -> NP ; -- only the man
|
||||||
-- a = np.a
|
PredetNP predet np =
|
||||||
-- } ;
|
np ** {
|
||||||
--
|
det = np.det ** { s = \\g,c => predet.s ++ np.det.s ! g ! c }
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- PPartNP : NP -> V2 -> NP ; -- the man seen
|
||||||
-- PPartNP np v2 = {
|
-- PPartNP np v2 = {
|
||||||
-- s = \\c => np.s ! c ++ v2.s ! VPPart ;
|
-- s = \\c => np.s ! c ++ v2.s ! VPPart ;
|
||||||
-- a = np.a
|
-- a = np.a
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
-- RelNP np rs = {
|
|
||||||
-- s = \\c => np.s ! c ++ "," ++ rs.s ! np.a ;
|
|
||||||
-- a = np.a
|
|
||||||
-- } ;
|
|
||||||
|
|
||||||
-- AdvNP : NP -> Adv -> NP ; -- Paris today
|
-- AdvNP : NP -> Adv -> NP ; -- Paris today
|
||||||
AdvNP np adv = {
|
AdvNP np adv = np ** { adv = np.adv ++ (adv.s ! Posit) } ;
|
||||||
s = \\c => np.s ! c ++ adv.s ;
|
-- {
|
||||||
g = np.g ; n = np.n; p = np.p
|
-- s = \\c => np.s ! c ;
|
||||||
} ;
|
-- g = np.g ; n = np.n; p = np.p ;
|
||||||
|
-- adv = cc2 np.adv adv ;
|
||||||
|
-- preap = np.preap ;
|
||||||
|
-- postap = np.postap ;
|
||||||
|
-- det = np.det;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
-- ExtAdvNP: NP -> Adv -> NP ; -- boys, such as ..
|
||||||
|
ExtAdvNP = AdvNP ;
|
||||||
|
|
||||||
|
-- RelNP : NP -> RS -> NP ; -- Paris, which is here
|
||||||
|
RelNP np rs = np ** { adv = rs.s ++ np.adv } ;
|
||||||
|
|
||||||
|
-- DetNP : Det -> NP ; -- these five
|
||||||
|
DetNP det = {
|
||||||
|
s = det.s ! Neutr ;
|
||||||
|
g = Neutr ;
|
||||||
|
n = det.n ;
|
||||||
|
p = P3 ;
|
||||||
|
adv = "" ;
|
||||||
|
preap, postap = { s = \\_ => "" } ;
|
||||||
|
det = { s,sp = \\_,_ => "" ; n = det.n } ;
|
||||||
|
} ;
|
||||||
--
|
--
|
||||||
-- DetQuantOrd quant num ord = {
|
-- DetQuantOrd quant num ord = {
|
||||||
-- s = quant.s ! num.hasCard ! num.n ++ num.s ++ ord.s ;
|
-- s = quant.s ! num.hasCard ! num.n ++ num.s ++ ord.s ;
|
||||||
@@ -53,10 +95,7 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
n = num.n
|
n = num.n
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- DetNP det = {
|
|
||||||
-- s = det.sp ! Neutr ;
|
|
||||||
-- g = Neutr ; n = det.n ; p = P3
|
|
||||||
-- } ;
|
|
||||||
|
|
||||||
-- PossPron p = {
|
-- PossPron p = {
|
||||||
-- s = \\_,_ => p.s ! Gen ;
|
-- s = \\_,_ => p.s ! Gen ;
|
||||||
@@ -66,13 +105,14 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
NumSg = {s = \\_,_ => [] ; n = Sg} ;
|
NumSg = {s = \\_,_ => [] ; n = Sg} ;
|
||||||
NumPl = {s = \\_,_ => [] ; n = Pl} ;
|
NumPl = {s = \\_,_ => [] ; n = Pl} ;
|
||||||
|
|
||||||
-- NumCard n = n ** {hasCard = True} ;
|
NumCard n = n ;
|
||||||
--
|
--
|
||||||
-- NumDigits n = {s = n.s ! NCard ; n = n.n} ;
|
-- NumDigits n = {s = n.s ! NCard ; n = n.n} ;
|
||||||
-- OrdDigits n = {s = n.s ! NOrd} ;
|
-- OrdDigits n = {s = n.s ! NOrd} ;
|
||||||
--
|
--
|
||||||
-- NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
|
lin
|
||||||
-- OrdNumeral numeral = {s = numeral.s ! NOrd} ;
|
NumNumeral numeral = numeral.card ;
|
||||||
|
OrdNumeral numeral = numeral.ord ;
|
||||||
--
|
--
|
||||||
-- AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
|
-- AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
|
||||||
--
|
--
|
||||||
@@ -88,16 +128,24 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
sp = \\_ => [] ;
|
sp = \\_ => [] ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- MassNP cn = {
|
MassNP cn =
|
||||||
-- s = cn.s ! Sg ;
|
{
|
||||||
-- a = Ag cn.g Sg
|
s = cn.s ! Sg ;
|
||||||
-- } ;
|
-- s = case cn.massable of { True => cn.s ! Sg ; False => \\_ => nonExist } ;
|
||||||
|
g = cn.g ;
|
||||||
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
adv = cn.adv ;
|
||||||
|
preap = cn.preap ;
|
||||||
|
postap = cn.postap ;
|
||||||
|
det = { s,sp = \\_,_ => "" ; n = Sg } ;
|
||||||
|
};
|
||||||
|
|
||||||
UseN n = -- N -> CN
|
UseN n = -- N -> CN
|
||||||
lin CN ( n ** {preap, postap = {s = \\_ => "" } } ) ;
|
lin CN ( n ** {preap, postap = {s = \\_ => "" } ; adv = "" }) ; -- massable = n.massable } ) ;
|
||||||
|
|
||||||
UseN2 n2 = -- N2 -> CN
|
UseN2 n2 = -- N2 -> CN
|
||||||
lin CN ( n2 ** {preap, postap = {s = \\_ => "" } } ) ;
|
lin CN ( n2 ** {preap, postap = {s = \\_ => "" } ; adv = "" }) ; -- massable = n2.massable } ) ;
|
||||||
-----b UseN3 n = n ;
|
-----b UseN3 n = n ;
|
||||||
--
|
--
|
||||||
-- Use2N3 f = {
|
-- Use2N3 f = {
|
||||||
@@ -119,21 +167,10 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
-- c2 = f.c3
|
-- c2 = f.c3
|
||||||
-- } ;
|
-- } ;
|
||||||
|
|
||||||
param
|
|
||||||
AdjPos = Pre | Post ;
|
|
||||||
lin
|
lin
|
||||||
|
-- by default add adjective after the noun, otherwise use AdjCNPre
|
||||||
AdjCN ap cn = -- AP -> CN -> CN
|
AdjCN ap cn = -- AP -> CN -> CN
|
||||||
let pos = variants { Post ; Pre }
|
addAdjToCN (lin AP ap) (lin CN cn) Post ;
|
||||||
in
|
|
||||||
{
|
|
||||||
-- s = \\n,c => preOrPost ap.isPre (ap.s ! cn.g ! n ! c) (cn.s ! n ! c) ;
|
|
||||||
-- s = \\n,c => ( cn.s ! n ! c ) ++ ( ap.s ! AdjPhr cn.g n c) ; -- always add adjectives after noun?
|
|
||||||
s = cn.s ;
|
|
||||||
postap = case pos of { Pre => cn.postap ; Post => { s = \\a => ap.s ! a ++ cn.postap.s ! a } } ;
|
|
||||||
preap = case pos of { Pre => { s = \\a => ap.s ! a ++ cn.preap.s ! a } ; Post => cn.preap } ;
|
|
||||||
-- variants { postap = ConsAP postap ap ; preap = ConsAP preap ap } ; -- Nice if that would work
|
|
||||||
g = cn.g
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- RelCN cn rs = {
|
-- RelCN cn rs = {
|
||||||
-- s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ;
|
-- s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ;
|
||||||
@@ -143,7 +180,14 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
|||||||
-- AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
|
-- AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ;
|
||||||
|
|
||||||
-- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
|
-- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ;
|
||||||
--
|
--
|
||||||
-- ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! c ; g = cn.g} ;
|
-- ApposCN : CN -> NP -> CN
|
||||||
--
|
ApposCN cn np =
|
||||||
|
{
|
||||||
|
s = \\n,c => cn.s ! n ! c ++ np.det.s ! np.g ! c ++ np.preap.s ! (Ag np.g n c) ++ np.s ! c ++ np.postap .s ! (Ag np.g n c) ++ np.det.sp ! np.g ! c ;
|
||||||
|
g = cn.g ;
|
||||||
|
preap = cn.preap ;
|
||||||
|
postap = cn.postap ;
|
||||||
|
adv = cn.adv
|
||||||
|
} ; -- massable = cn.massable } ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,42 +1,36 @@
|
|||||||
concrete NumeralLat of Numeral = CatLat ** open ResLat in {
|
concrete NumeralLat of Numeral = CatLat ** open ResLat,ParadigmsLat in {
|
||||||
--
|
lincat
|
||||||
--lincat
|
Digit = Numeral ;
|
||||||
-- Digit = {s : DForm => CardOrd => Str} ;
|
Sub10 = Numeral ;
|
||||||
-- Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
Sub100 = Numeral ;
|
||||||
-- Sub100 = {s : CardOrd => Str ; n : Number} ;
|
Sub1000 = Numeral ;
|
||||||
-- Sub1000 = {s : CardOrd => Str ; n : Number} ;
|
Sub1000000 = Numeral ;
|
||||||
-- Sub1000000 = {s : CardOrd => Str ; n : Number} ;
|
|
||||||
--
|
lin
|
||||||
--lin num x = x ;
|
num x = x ;
|
||||||
--lin n2 = let two = mkNum "two" "twelve" "twenty" "second" in
|
n2 = lin Numeral ( mkNum "duo" "secundus" ) ;
|
||||||
-- {s = \\f,c => case <f,c> of {
|
n3 = lin Numeral ( mkNum "tres" "tertius" ) ;
|
||||||
-- <teen,NOrd> => "twelfth" ;
|
n4 = lin Numeral ( mkNum "quattuor" "quartus" ) ;
|
||||||
-- _ => two.s ! f ! c
|
n5 = lin Numeral ( mkNum "quinque" "quintus" ) ;
|
||||||
-- }
|
n6 = lin Numeral ( mkNum "sex" "sextus" ) ;
|
||||||
-- } ;
|
n7 = lin Numeral ( mkNum "septem" "septimus" ) ;
|
||||||
--
|
n8 = lin Numeral ( mkNum "octo" "ocatvus" ) ;
|
||||||
--lin n3 = mkNum "three" "thirteen" "thirty" "third" ;
|
n9 = lin Numeral ( mkNum "novem" "nonus" ) ;
|
||||||
--lin n4 = mkNum "four" "fourteen" "forty" "fourth" ;
|
|
||||||
--lin n5 = mkNum "five" "fifteen" "fifty" "fifth" ;
|
lin pot01 = lin Numeral ( mkNum "unus" "primus" ) ;
|
||||||
--lin n6 = regNum "six" ;
|
lin pot0 d = d ;
|
||||||
--lin n7 = regNum "seven" ;
|
|
||||||
--lin n8 = mkNum "eight" "eighteen" "eighty" "eighth" ;
|
|
||||||
--lin n9 = mkNum "nine" "nineteen" "ninety" "ninth" ;
|
|
||||||
--
|
|
||||||
--lin pot01 = mkNum "one" "eleven" "ten" "first" ** {n = Sg} ;
|
|
||||||
--lin pot0 d = d ** {n = Pl} ;
|
|
||||||
--lin pot110 = regCardOrd "ten" ** {n = Pl} ;
|
--lin pot110 = regCardOrd "ten" ** {n = Pl} ;
|
||||||
--lin pot111 = regCardOrd "eleven" ** {n = Pl} ;
|
--lin pot111 = regCardOrd "eleven" ** {n = Pl} ;
|
||||||
--lin pot1to19 d = {s = d.s ! teen} ** {n = Pl} ;
|
--lin pot1to19 d = {s = d.s ! teen} ** {n = Pl} ;
|
||||||
--lin pot0as1 n = {s = n.s ! unit} ** {n = n.n} ;
|
lin pot0as1 n = n ;
|
||||||
--lin pot1 d = {s = d.s ! ten} ** {n = Pl} ;
|
--lin pot1 d = {s = d.s ! ten} ** {n = Pl} ;
|
||||||
--lin pot1plus d e = {
|
--lin pot1plus d e = {
|
||||||
-- s = \\c => d.s ! ten ! NCard ++ "-" ++ e.s ! unit ! c ; n = Pl} ;
|
-- s = \\c => d.s ! ten ! NCard ++ "-" ++ e.s ! unit ! c ; n = Pl} ;
|
||||||
--lin pot1as2 n = n ;
|
pot1as2 n = n ;
|
||||||
--lin pot2 d = {s = \\c => d.s ! unit ! NCard ++ mkCard c "hundred"} ** {n = Pl} ;
|
--lin pot2 d = {s = \\c => d.s ! unit ! NCard ++ mkCard c "hundred"} ** {n = Pl} ;
|
||||||
--lin pot2plus d e = {
|
--lin pot2plus d e = {
|
||||||
-- s = \\c => d.s ! unit ! NCard ++ "hundred" ++ "and" ++ e.s ! c ; n = Pl} ;
|
-- s = \\c => d.s ! unit ! NCard ++ "hundred" ++ "and" ++ e.s ! c ; n = Pl} ;
|
||||||
--lin pot2as3 n = n ;
|
pot2as3 n = n ;
|
||||||
--lin pot3 n = {
|
--lin pot3 n = {
|
||||||
-- s = \\c => n.s ! NCard ++ mkCard c "thousand" ; n = Pl} ;
|
-- s = \\c => n.s ! NCard ++ mkCard c "thousand" ; n = Pl} ;
|
||||||
--lin pot3plus n m = {
|
--lin pot3plus n m = {
|
||||||
|
|||||||
@@ -24,9 +24,15 @@ resource ParadigmsLat = open
|
|||||||
-- To abstract over gender names, we define the following identifiers.
|
-- To abstract over gender names, we define the following identifiers.
|
||||||
|
|
||||||
oper
|
oper
|
||||||
masculine : Gender ;
|
masculine : Gender = Masc ;
|
||||||
feminine : Gender ;
|
feminine : Gender = Fem ;
|
||||||
neuter : Gender ;
|
neuter : Gender = Neutr ;
|
||||||
|
nom : Case = Nom ;
|
||||||
|
acc : Case = Acc ;
|
||||||
|
gen : Case = Gen ;
|
||||||
|
dat : Case = Dat ;
|
||||||
|
abl : Case = Abl ;
|
||||||
|
voc : Case = ResLat.Voc ;
|
||||||
|
|
||||||
mkN = overload {
|
mkN = overload {
|
||||||
mkN : (verbum : Str) -> N
|
mkN : (verbum : Str) -> N
|
||||||
@@ -36,21 +42,28 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkA = overload {
|
mkA = overload {
|
||||||
mkA : (verbum : Str) -> A
|
mkA : (verbum : Str) -> A -- Nominative masculine
|
||||||
= \n -> lin A ( adj n ** {isPre = False } ) ;
|
= \n -> lin A ( adj n ** {isPre = False } ) ;
|
||||||
mkA : (verbum, verbi : Str) -> A
|
mkA : (verbum, verbi : Str) -> A -- Nominative and Genitive masculine
|
||||||
= \x,y -> lin A ( adj123 x y ** {isPre = False } ) ;
|
= \x,y -> lin A ( adj123 x y ** {isPre = False } ) ;
|
||||||
mkA : (bonus,bona,bonum : N) -> A
|
-- mkA : (bonus,bona,bonum : N) -> A
|
||||||
= \x,y,z ->
|
-- = \x,y,z ->
|
||||||
let compsup = comp_super x ;
|
-- let compsup = comp_super x ;
|
||||||
advs : Str * Str =
|
-- advs : Str * Str =
|
||||||
case x.s!Sg!Nom of {
|
-- case x.s!Sg!Nom of {
|
||||||
-- Bayer-Lindauer 50 4
|
-- -- Bayer-Lindauer 50 4
|
||||||
idon + #vowel + "us" => < "magis" , "maxime" > ;
|
-- idon + #vowel + "us" => < "magis" , "maxime" > ;
|
||||||
_ => < "" , "" >
|
-- _ => < "" , "" >
|
||||||
};
|
-- };
|
||||||
in
|
-- in
|
||||||
lin A ( mkAdjective x y z < compsup.p1 , advs.p2 > < compsup.p2 , advs.p2> ** {isPre = False } ) ;
|
-- lin A ( mkAdjective x y z < compsup.p1 , advs.p2 > < compsup.p2 , advs.p2> ** {isPre = False } ) ;
|
||||||
|
mkA : (bonus,bona,bonum : Str) -> A -- Nominative masculine, feminine and neuter
|
||||||
|
= \x,y,z -> lin A (adjfull x y z ) ;
|
||||||
|
mkA : (verbum : Str) -> (comparable : Bool) -> A
|
||||||
|
= \n,b -> lin A ( case b of {
|
||||||
|
True => adj n ;
|
||||||
|
False => let a = adj n in { s = table { Posit => a.s ! Posit ; _ => \\_ => nonExist } ; adv = a.adv }
|
||||||
|
} ** { isPre = False } )
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -63,9 +76,12 @@ oper
|
|||||||
= \v,x,y -> lin V ( verb_ippp v x y nonExist ) ;
|
= \v,x,y -> lin V ( verb_ippp v x y nonExist ) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
V0 : Type = V ;
|
V0 : Type = V;
|
||||||
mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working
|
mkV0 = overload {
|
||||||
|
mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working
|
||||||
|
mkV0 : Str -> V0 = \v -> lin V0 (mkImpersonal v) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
mkV2 = overload {
|
mkV2 = overload {
|
||||||
mkV2 : (amare : Str) -> V2
|
mkV2 : (amare : Str) -> V2
|
||||||
= \v -> lin V2 ( verb v ** { c = lin Prep ( mkPrep "" Acc ) } ) ;
|
= \v -> lin V2 ( verb v ** { c = lin Prep ( mkPrep "" Acc ) } ) ;
|
||||||
@@ -75,13 +91,26 @@ oper
|
|||||||
= \v,p -> lin V2 ( v ** { c = p } ) ;
|
= \v,p -> lin V2 ( v ** { c = p } ) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
masculine = Masc ;
|
|
||||||
feminine = Fem ;
|
|
||||||
neuter = Neutr ;
|
|
||||||
|
|
||||||
mkAdv : Str -> Adv
|
mkAdv = overload {
|
||||||
= \s -> lin Adv {s = s} ;
|
mkAdv : Str -> Adv
|
||||||
|
= \s -> lin Adv (mkAdverb s) ;
|
||||||
|
mkAdv : (pos,comp,super : Str) -> Adv
|
||||||
|
= \p,c,s -> lin Adv (mkFullAdverb p c s);
|
||||||
|
mkAdv : (pos,comp : Str) -> Adv
|
||||||
|
= \p,c -> lin Adv (mkFullAdverb p c nonExist);
|
||||||
|
};
|
||||||
|
|
||||||
|
pluralN = ResLat.pluralN ;
|
||||||
|
singularN = ResLat.singularN ;
|
||||||
|
|
||||||
|
mkConj : Str -> Str -> Number -> Coordinator -> Conjunction = mkConjunction ;
|
||||||
|
|
||||||
|
mkPrep : Str -> Case -> Preposition = mkPreposition ;
|
||||||
|
|
||||||
|
mkPron = mkPronoun ;
|
||||||
|
|
||||||
|
mkNum = mkNumeral ;
|
||||||
-- To be implemented, just place holders
|
-- To be implemented, just place holders
|
||||||
mkPN : N -> PN = \n -> lin PN n ;
|
mkPN : N -> PN = \n -> lin PN n ;
|
||||||
mkN2 : N -> Prep -> N2 = \n,p -> lin N2 ( n ** { c = p } );
|
mkN2 : N -> Prep -> N2 = \n,p -> lin N2 ( n ** { c = p } );
|
||||||
|
|||||||
@@ -1,24 +1,37 @@
|
|||||||
concrete PhraseLat of Phrase = CatLat ** open Prelude, ResLat in {
|
concrete PhraseLat of Phrase = CatLat ** open Prelude, ResLat in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
||||||
--
|
--
|
||||||
-- UttS : S -> Utt
|
-- UttS : S -> Utt
|
||||||
UttS s = { s = s.s };
|
UttS s = { s = combineSentence s ! SPreS ! PreS ! SOV };
|
||||||
|
|
||||||
-- UttQS : QS -> Utt
|
-- UttQS : QS -> Utt
|
||||||
UttQS qs = {s = qs.s ! QDir } ;
|
UttQS qs = {s = qs.s ! QDir } ;
|
||||||
|
-- UttImpSg : Pol -> Imp -> Utt
|
||||||
|
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! VImp1 Sg } ;
|
||||||
|
-- UttImpPl : Pol -> Imp -> Utt
|
||||||
|
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! VImp1 Pl } ;
|
||||||
|
-- UttImpPol : Pol -> Imp -> Utt
|
||||||
|
UttImpPol pol imp = UttImpSg pol imp ;
|
||||||
|
-- UttIP : IP -> Utt
|
||||||
|
UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
||||||
|
-- UttIAdv : IAdv -> Utt
|
||||||
|
UttIAdv iadv = iadv ;
|
||||||
|
-- UttNP : NP -> Utt
|
||||||
|
UttNP np = {s = np.adv ++ np.det.s ! np.g ! Nom ++ np.preap.s ! (Ag np.g np.n Nom) ++ np.s ! Nom ++ np.postap.s ! (Ag np.g np.n Nom) ++ np.det.sp ! np.g ! Nom} ;
|
||||||
|
-- UttVP : VP -> Utt
|
||||||
|
UttVP vp = ss (vp.inf ! VInfActPres) ;
|
||||||
|
|
||||||
-- UttImpSg pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg False} ;
|
-- UttAdv : Adv -> Utt
|
||||||
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
|
UttAdv adv = ss (adv.s ! Posit) ;
|
||||||
-- UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
|
-- UttAP : AP -> Utt
|
||||||
--
|
UttAP ap = ss (ap.s ! Ag Masc Sg Nom );
|
||||||
-- UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
-- UttCard : Card -> Utt
|
||||||
-- UttIAdv iadv = iadv ;
|
UttCard card = ss (card.s ! Masc ! Nom);
|
||||||
-- UttNP np = {s = np.s ! Nom} ;
|
-- UttCN : CN -> Utt
|
||||||
-- UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
|
UttCN cn = ss (cn.s ! Sg ! Nom) ;
|
||||||
-- UttAdv adv = adv ;
|
-- UttInterj : Interj -> Utt
|
||||||
--
|
UttInterj interj = interj ;
|
||||||
NoPConj = {s = []} ;
|
NoPConj = {s = []} ;
|
||||||
PConjConj conj = {s = conj.s2} ; ---
|
PConjConj conj = {s = conj.s2} ; ---
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -3,29 +3,35 @@ concrete QuestionLat of Question = CatLat ** open ResLat, IrregLat, Prelude in {
|
|||||||
-- flags optimize=all_subs ;
|
-- flags optimize=all_subs ;
|
||||||
--`
|
--`
|
||||||
lin
|
lin
|
||||||
-- QuestCl : Cl -> QCl ; -- does John walk
|
-- QuestCl : Cl -> QCl ; -- does John walk
|
||||||
QuestCl cl = {
|
-- TO FIX
|
||||||
s = \\t,a,p =>
|
-- QuestCl cl = {
|
||||||
let cls = cl.s ! t ! a ! p
|
-- s = \\t,a,p =>
|
||||||
in table {
|
-- let cls = (combineClause cl PreS).s ! t ! a ! p
|
||||||
QDir => cls ! VQTrue ! VSO ; -- cls ! OQuest ;
|
-- in table {
|
||||||
QIndir => "" -- "if" ++ cls ! ODir -- TODO
|
-- QDir => cls ! VQTrue ! VSO ! PreV ; -- cls ! OQuest ;
|
||||||
}
|
-- QIndir => "" -- "if" ++ cls ! ODir -- TODO
|
||||||
} ;
|
-- }
|
||||||
|
-- } ;
|
||||||
|
|
||||||
-- QuestVP : IP -> VP -> QCl ; -- who walks
|
-- QuestVP : IP -> VP -> QCl ; -- who walks
|
||||||
QuestVP ip vp =
|
-- TO FIX
|
||||||
let qcl = mkQuestion { s = ip.s ! Nom } ( mkClause emptyNP vp )
|
-- QuestVP ip vp =
|
||||||
in {s = \\t,a,b,qd => qcl.s ! t ! a ! b ! qd} ;
|
-- let qcl = mkQuestion { s = ip.s ! Nom } ( mkClause emptyNP vp )
|
||||||
|
-- in {s = \\t,a,b,qd => qcl.s ! t ! a ! b ! qd} ;
|
||||||
|
|
||||||
-- QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love
|
-- QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love
|
||||||
QuestSlash ip slash =
|
-- TO FIX
|
||||||
mkQuestion (ss ( ip.s ! Acc) ) slash ;
|
|
||||||
|
-- QuestSlash ip slash =
|
||||||
|
-- mkQuestion (ss ( ip.s ! Acc) ) slash ;
|
||||||
|
|
||||||
QuestIAdv iadv cl = mkQuestion iadv cl ;
|
-- TO FIX
|
||||||
|
-- QuestIAdv iadv cl = mkQuestion iadv cl ;
|
||||||
--
|
--
|
||||||
QuestIComp icomp np =
|
-- TO FIX
|
||||||
mkQuestion icomp (mkClause np (predV be_V) ) ;
|
-- QuestIComp icomp np =
|
||||||
|
-- mkQuestion icomp (mkClause np (predV be_V) ) ;
|
||||||
--
|
--
|
||||||
--
|
--
|
||||||
-- PrepIP p ip = {s = p.s ++ ip.s ! Acc} ;
|
-- PrepIP p ip = {s = p.s ++ ip.s ! Acc} ;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--concrete RelativeLat of Relative = CatLat ** open ResLat in {
|
concrete RelativeLat of Relative = CatLat ** open ResLat in {
|
||||||
--
|
--
|
||||||
-- flags optimize=all_subs ;
|
-- flags optimize=all_subs ;
|
||||||
--
|
--
|
||||||
@@ -51,4 +51,4 @@
|
|||||||
-- a = RNoAg
|
-- a = RNoAg
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
--}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
--1 Latin auxiliary operations.
|
--1 Latin auxiliary operations.
|
||||||
|
|
||||||
resource ResLat = ParamX ** open Prelude,TenseX in {
|
resource ResLat = ParamX ** open Prelude, Predef, (C=CommonX) in {
|
||||||
|
|
||||||
param
|
param
|
||||||
Case = Nom | Acc | Gen | Dat | Abl | Voc ;
|
Case = Nom | Acc | Gen | Dat | Abl | Voc ;
|
||||||
@@ -12,36 +12,47 @@ param
|
|||||||
oper
|
oper
|
||||||
consonant : pattern Str = #( "p" | "b" | "f" | "v" | "m" | "t" | "d" | "s" | "z" | "n" | "r" | "c" | "g" | "l" | "q" | "qu" | "h" );
|
consonant : pattern Str = #( "p" | "b" | "f" | "v" | "m" | "t" | "d" | "s" | "z" | "n" | "r" | "c" | "g" | "l" | "q" | "qu" | "h" );
|
||||||
|
|
||||||
Noun : Type = {s : Number => Case => Str ; g : Gender} ;
|
Noun : Type = {s : Number => Case => Str ; g : Gender } ; -- massable : Bool } ;
|
||||||
NounPhrase : Type =
|
NounPhrase : Type =
|
||||||
{
|
{
|
||||||
s : Case => Str ;
|
s : Case => Str ;
|
||||||
g : Gender ;
|
g : Gender ;
|
||||||
n : Number ;
|
n : Number ;
|
||||||
p : Person ;
|
p : Person ;
|
||||||
|
adv : Str ;
|
||||||
|
preap : {s : Agr => Str } ;
|
||||||
|
postap : {s : Agr => Str } ;
|
||||||
|
det : Determiner
|
||||||
} ;
|
} ;
|
||||||
param
|
param
|
||||||
Order = SVO | VSO | VOS | OSV | OVS | SOV ;
|
Order = SVO | VSO | VOS | OSV | OVS | SOV ;
|
||||||
|
AdvPos = PreS | PreV | PreO | PreNeg | InV | InS ; -- | InO
|
||||||
|
SAdvPos = SPreS | SPreV | SPreO | SPreNeg ;
|
||||||
param
|
param
|
||||||
Agr = Ag Gender Number Case ; -- Agreement for NP et al.
|
Agr = Ag Gender Number Case ; -- Agreement for NP et al.
|
||||||
oper
|
oper
|
||||||
Adjective : Type = {
|
Adjective : Type = {
|
||||||
s : Degree => Agr => Str ;
|
s : Degree => Agr => Str ;
|
||||||
-- comp_adv : Str ;
|
-- comp_adv : Str ;
|
||||||
-- super_adv : Str
|
-- super_adv : Str
|
||||||
|
adv : Adverb ;
|
||||||
} ;
|
} ;
|
||||||
ComplexNoun : Type =
|
CommonNoun : Type =
|
||||||
{
|
{
|
||||||
s : Number => Case => Str ;
|
s : Number => Case => Str ;
|
||||||
g : Gender ;
|
g : Gender ;
|
||||||
|
adv : Str ;
|
||||||
preap : {s : Agr => Str } ;
|
preap : {s : Agr => Str } ;
|
||||||
postap : {s : Agr => Str } ;
|
postap : {s : Agr => Str }
|
||||||
} ;
|
-- massable : Bool
|
||||||
|
} ;
|
||||||
|
|
||||||
-- nouns
|
-- nouns
|
||||||
useCNasN : ComplexNoun -> Noun = \cn ->
|
useCNasN : CommonNoun -> Noun = \cn ->
|
||||||
{
|
{
|
||||||
s = cn.s ;
|
s = cn.s ;
|
||||||
g = cn.g ;
|
g = cn.g
|
||||||
|
-- massable = cn.massable;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pluralN : Noun -> Noun = \n ->
|
pluralN : Noun -> Noun = \n ->
|
||||||
@@ -52,11 +63,39 @@ param
|
|||||||
};
|
};
|
||||||
g = n.g ;
|
g = n.g ;
|
||||||
preap = n.preap ;
|
preap = n.preap ;
|
||||||
postap = n.postap ;
|
postap = n.postap
|
||||||
|
-- massable = n.massable ;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkNoun : (n1,_,_,_,_,_,_,_,_,n10 : Str) -> Gender -> Noun =
|
singularN : Noun -> Noun = \n ->
|
||||||
|
lin N {
|
||||||
|
s = table {
|
||||||
|
Sg => n.s ! Sg ;
|
||||||
|
Pl => \\_ => nonExist -- no plural forms
|
||||||
|
};
|
||||||
|
g = n.g ;
|
||||||
|
preap = n.preap ;
|
||||||
|
postap = n.postap
|
||||||
|
-- massable = n.massable ;
|
||||||
|
};
|
||||||
|
|
||||||
|
param
|
||||||
|
AdjPos = Pre | Post ;
|
||||||
|
oper
|
||||||
|
addAdjToCN : AdjectivePhrase -> CommonNoun -> AdjPos -> CommonNoun = \ap,cn,pos ->
|
||||||
|
{
|
||||||
|
s = cn.s ;
|
||||||
|
postap = case pos of { Pre => cn.postap ; Post => { s = \\a => ap.s ! a ++ cn.postap.s ! a } } ;
|
||||||
|
preap = case pos of { Pre => { s = \\a => ap.s ! a ++ cn.preap.s ! a } ; Post => cn.preap } ;
|
||||||
|
g = cn.g ;
|
||||||
|
adv = cn.adv
|
||||||
|
-- massable = cn.massable
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkNoun : (n1,_,_,_,_,_,_,_,_,n10 : Str) -> Gender -> Noun =
|
||||||
\sn,sa,sg,sd,sab,sv,pn,pa,pg,pd,g -> {
|
\sn,sa,sg,sd,sab,sv,pn,pa,pg,pd,g -> {
|
||||||
|
-- mkNoun : (n1,_,_,_,_,_,_,_,_,n10 : Str) -> Gender -> Bool -> Noun =
|
||||||
|
--\sn,sa,sg,sd,sab,sv,pn,pa,pg,pd,g,m -> {
|
||||||
s = table {
|
s = table {
|
||||||
Sg => table {
|
Sg => table {
|
||||||
Nom => sn ;
|
Nom => sn ;
|
||||||
@@ -74,31 +113,51 @@ param
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
g = g
|
g = g
|
||||||
|
-- massable = m
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- to change the default gender
|
-- to change the default gender
|
||||||
|
|
||||||
nounWithGen : Gender -> Noun -> Noun = \g,n ->
|
nounWithGender : Gender -> Noun -> Noun = \g,n ->
|
||||||
{s = n.s ; g = g} ;
|
{s = n.s ; g = g } ; -- massable = n.massable ;} ;
|
||||||
|
|
||||||
|
-- nounMassable : Bool -> Noun -> Noun = \m,n ->
|
||||||
|
-- {s = n.s ; g = n.g ; massable = m } ;
|
||||||
|
|
||||||
|
prefixNoun : Str -> Noun -> Noun =
|
||||||
|
\p,n ->
|
||||||
|
{ s = \\num,cas => addPrefix p (n.s ! num ! cas) ; g = n.g };
|
||||||
|
|
||||||
|
|
||||||
regNP : (_,_,_,_,_,_ : Str) -> Gender -> Number -> NounPhrase =
|
regNP : (_,_,_,_,_,_ : Str) -> Gender -> Number -> NounPhrase =
|
||||||
\nom,acc,gen,dat,abl,voc,g,n ->
|
\nom,acc,gen,dat,abl,voc,g,n ->
|
||||||
{
|
{
|
||||||
s = table Case [ nom ; acc ; gen ; dat ; abl ; voc ] ;
|
s = table Case [ nom ; acc ; gen ; dat ; abl ; voc ] ;
|
||||||
g = g ;
|
g = g ;
|
||||||
n = n ;
|
n = n ;
|
||||||
p = P3
|
p = P3;
|
||||||
|
adv = "" ;
|
||||||
|
preap, postap = { s = \\_ => "" } ;
|
||||||
|
det = { s = \\_,_ => "" ; sp = \\_,_ => "" ; n = n} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
emptyNP : NounPhrase = { s = \\_ => ""; g = Masc; n = Sg; p = P1 };
|
dummyNP : Str -> NounPhrase = \s -> regNP s s s s s s Masc Sg ;
|
||||||
|
|
||||||
|
emptyNP : NounPhrase = { s = \\_ => ""; g = Masc; n = Sg; p = P1 ; adv = "" ; preap, postap = { s = \\_ => "" } ; det = { s = \\_,_ => "" ; sp = \\_,_ => "" ; n = Sg } ;};
|
||||||
-- also used for adjectives and so on
|
-- also used for adjectives and so on
|
||||||
|
|
||||||
-- adjectives
|
-- adjectives
|
||||||
|
|
||||||
mkAdjective : (_,_,_ : Noun) ->
|
AdjectivePhrase : Type = {
|
||||||
|
s : Agr => Str ;
|
||||||
|
-- isPre : Bool ; -- should have no use in latin because adjectives can appear variably before and after nouns
|
||||||
|
} ;
|
||||||
|
mkAdjective : (bonus,bona,bonum : Noun) ->
|
||||||
( (Agr => Str) * Str ) ->
|
( (Agr => Str) * Str ) ->
|
||||||
( (Agr => Str) * Str ) -> Adjective =
|
( (Agr => Str) * Str ) ->
|
||||||
\bonus,bona,bonum,melior,optimus ->
|
(bono,bonius,bonissimo : Str) ->
|
||||||
|
Adjective =
|
||||||
|
\bonus,bona,bonum,melior,optimus,bono,bonius,bonissimo ->
|
||||||
{
|
{
|
||||||
s = table {
|
s = table {
|
||||||
Posit => table {
|
Posit => table {
|
||||||
@@ -110,7 +169,8 @@ param
|
|||||||
Superl => optimus.p1
|
Superl => optimus.p1
|
||||||
} ;
|
} ;
|
||||||
comp_adv = melior.p2 ;
|
comp_adv = melior.p2 ;
|
||||||
super_adv = optimus.p2
|
super_adv = optimus.p2 ;
|
||||||
|
adv = { s = table { Posit => bono ; Compar => bonius ; Superl => bonissimo } };
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -128,7 +188,7 @@ param
|
|||||||
|
|
||||||
|
|
||||||
emptyAdj : Adjective =
|
emptyAdj : Adjective =
|
||||||
{ s = \\_,_ => "" ; comp_adv = "" ; super_adv = "" } ;
|
{ s = \\_,_ => "" ; comp_adv = "" ; super_adv = "" ; adv = { s = \\_ => "" } } ;
|
||||||
|
|
||||||
-- verbs
|
-- verbs
|
||||||
|
|
||||||
@@ -149,11 +209,16 @@ param
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
VerbPhrase : Type = {
|
VerbPhrase : Type = {
|
||||||
fin : VActForm => VQForm => Str ;
|
s : VActForm => VQForm => Str ;
|
||||||
|
part : VPartForm =>Agr => Str ;
|
||||||
inf : VInfForm => Str ;
|
inf : VInfForm => Str ;
|
||||||
|
imp : VImpForm => Str ;
|
||||||
obj : Str ;
|
obj : Str ;
|
||||||
adj : Agr => Str
|
compl : Agr => Str ; -- general complement. Agr might be ignored except for adjectives
|
||||||
} ;
|
adv : Str
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ObjectVerbPhrase : Type = VerbPhrase ** {c : Preposition} ;
|
||||||
|
|
||||||
Verb : Type = {
|
Verb : Type = {
|
||||||
act : VActForm => Str ;
|
act : VActForm => Str ;
|
||||||
@@ -203,10 +268,11 @@ param
|
|||||||
|
|
||||||
useVPasV : VerbPhrase -> Verb = \vp ->
|
useVPasV : VerbPhrase -> Verb = \vp ->
|
||||||
{
|
{
|
||||||
act = \\a => vp.obj ++ vp.fin ! a ! VQFalse;
|
act = \\a => vp.obj ++ vp.s ! a ! VQFalse;
|
||||||
pass = \\_ => nonExist ;
|
pass = \\_ => nonExist ;
|
||||||
inf = \\a => vp.obj ++ vp.inf ! a ;
|
-- inf = \\a => vp.obj ++ vp.inf ! a ;
|
||||||
imp = \\_ => nonExist ;
|
inf = vp.inf ;
|
||||||
|
imp = vp.imp ;
|
||||||
ger = \\_ => nonExist ;
|
ger = \\_ => nonExist ;
|
||||||
geriv = \\_ => nonExist ;
|
geriv = \\_ => nonExist ;
|
||||||
sup = \\_ => nonExist ;
|
sup = \\_ => nonExist ;
|
||||||
@@ -378,25 +444,26 @@ param
|
|||||||
pres_stem + fill.p1 + "ndo"
|
pres_stem + fill.p1 + "ndo"
|
||||||
} ;
|
} ;
|
||||||
geriv =
|
geriv =
|
||||||
( mkAdjective
|
( mkAdjective
|
||||||
( mkNoun ( pres_stem + fill.p1 + "ndus" ) ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndi" )
|
( mkNoun ( pres_stem + fill.p1 + "ndus" ) ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndi" )
|
||||||
( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "nde" )
|
( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "nde" )
|
||||||
( pres_stem + fill.p1 + "ndi" ) ( pres_stem + fill.p1 + "ndos" ) ( pres_stem + fill.p1 + "ndorum" )
|
( pres_stem + fill.p1 + "ndi" ) ( pres_stem + fill.p1 + "ndos" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||||
( pres_stem + fill.p1 + "ndis" )
|
( pres_stem + fill.p1 + "ndis" )
|
||||||
Masc )
|
Masc )
|
||||||
( mkNoun ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndam" ) ( pres_stem + fill.p1 + "ndae" )
|
( mkNoun ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndam" ) ( pres_stem + fill.p1 + "ndae" )
|
||||||
( pres_stem + fill.p1 + "ndae" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "nda" )
|
( pres_stem + fill.p1 + "ndae" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "nda" )
|
||||||
( pres_stem + fill.p1 + "ndae" ) ( pres_stem + fill.p1 + "ndas" ) (pres_stem + fill.p1 +"ndarum" )
|
( pres_stem + fill.p1 + "ndae" ) ( pres_stem + fill.p1 + "ndas" ) (pres_stem + fill.p1 +"ndarum" )
|
||||||
( pres_stem + fill.p1 + "ndis" )
|
( pres_stem + fill.p1 + "ndis" )
|
||||||
Fem )
|
Fem )
|
||||||
( mkNoun ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndi" )
|
( mkNoun ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndum" ) ( pres_stem + fill.p1 + "ndi" )
|
||||||
( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndum" )
|
( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndo" ) ( pres_stem + fill.p1 + "ndum" )
|
||||||
( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndorum" )
|
( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||||
( pres_stem + fill.p1 + "ndis" )
|
( pres_stem + fill.p1 + "ndis" )
|
||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" > -- Comparative
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" > -- Superlative
|
||||||
).s!Posit ;
|
"" "" "" -- Adverb part
|
||||||
|
).s!Posit ;
|
||||||
sup =
|
sup =
|
||||||
table {
|
table {
|
||||||
VSupAcc => -- Supin
|
VSupAcc => -- Supin
|
||||||
@@ -436,6 +503,7 @@ param
|
|||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
|
"" "" ""
|
||||||
).s!Posit ;
|
).s!Posit ;
|
||||||
VPassPerf =>
|
VPassPerf =>
|
||||||
( mkAdjective
|
( mkAdjective
|
||||||
@@ -453,6 +521,7 @@ param
|
|||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
|
"" "" ""
|
||||||
).s!Posit
|
).s!Posit
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
@@ -607,6 +676,7 @@ param
|
|||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
|
"" "" ""
|
||||||
).s!Posit ;
|
).s!Posit ;
|
||||||
sup =
|
sup =
|
||||||
table {
|
table {
|
||||||
@@ -648,6 +718,7 @@ param
|
|||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
|
"" "" ""
|
||||||
).s!Posit ;
|
).s!Posit ;
|
||||||
VPassPerf =>
|
VPassPerf =>
|
||||||
( mkAdjective
|
( mkAdjective
|
||||||
@@ -668,10 +739,27 @@ param
|
|||||||
Neutr )
|
Neutr )
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
< \\_ => "" , "" >
|
< \\_ => "" , "" >
|
||||||
|
"" "" ""
|
||||||
).s!Posit
|
).s!Posit
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- at the moment only fills present tense
|
||||||
|
mkImpersonal : Str -> Verb = \s ->
|
||||||
|
{
|
||||||
|
act = table {
|
||||||
|
VAct VSim (VPres VInd) Sg P1 => s ;
|
||||||
|
_ => nonExist
|
||||||
|
} ;
|
||||||
|
pass = \\_ => nonExist ;
|
||||||
|
imp = \\_ => nonExist ;
|
||||||
|
inf = \\_ => nonExist ;
|
||||||
|
ger = \\_ => nonExist ;
|
||||||
|
geriv = \\_ => nonExist ;
|
||||||
|
part = \\_,_ => nonExist ;
|
||||||
|
sup = \\_ => nonExist ;
|
||||||
|
} ;
|
||||||
|
|
||||||
actPresEnding : Number -> Person -> Str =
|
actPresEnding : Number -> Person -> Str =
|
||||||
useEndingTable <"m", "s", "t", "mus", "tis", "nt"> ;
|
useEndingTable <"m", "s", "t", "mus", "tis", "nt"> ;
|
||||||
|
|
||||||
@@ -690,7 +778,7 @@ param
|
|||||||
}
|
}
|
||||||
in
|
in
|
||||||
(useEndingTable endings n p) + passPresEnding n p ;
|
(useEndingTable endings n p) + passPresEnding n p ;
|
||||||
|
|
||||||
useEndingTable : (Str*Str*Str*Str*Str*Str) -> Number -> Person -> Str =
|
useEndingTable : (Str*Str*Str*Str*Str*Str) -> Number -> Person -> Str =
|
||||||
\es,n,p -> case n of {
|
\es,n,p -> case n of {
|
||||||
Sg => case p of {
|
Sg => case p of {
|
||||||
@@ -705,6 +793,210 @@ param
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
addPrefix : Str -> Str -> Str =
|
||||||
|
\prefix,verb ->
|
||||||
|
case <prefix,verb> of {
|
||||||
|
<p + "b","f" + _ > => p + verb ;
|
||||||
|
<p + "b", "te" + r > => prefix + "sti" + r;
|
||||||
|
<p + "b", "t" + r > => prefix + "s" + verb;
|
||||||
|
<p + "b", "iact" + r > => prefix + "iect" + r;
|
||||||
|
<p + "b", "iac" + r > => prefix + "ic" + r;
|
||||||
|
<p + "d","capt" + r > => p + "ccept" + r ;
|
||||||
|
<p + "d","ca" + r > => p + "cci" + r ;
|
||||||
|
<p ,"spe" + r > => p + "spi" + r ;
|
||||||
|
<p ,"spex" + r > => prefix + verb;
|
||||||
|
<p ,"stat" + r > => p + "stit" + r ;
|
||||||
|
<p ,"tex" + r > => p + verb ;
|
||||||
|
<p ,"te" + r > => p + "ti" + r ;
|
||||||
|
<p + "d","c" + _ > => p + "c" + verb ;
|
||||||
|
<p + "d","t" + _ > => p + "t" + verb ;
|
||||||
|
<p + "d","l" + _ > => p + "l" + verb ;
|
||||||
|
_ => prefix + verb
|
||||||
|
} ;-- TODO too simple e.g. ab+fuit = afuit
|
||||||
|
|
||||||
|
prefixVerb2 : Str -> Verb2 -> Verb2 =
|
||||||
|
\prefix,verb ->
|
||||||
|
let v = { act = verb.act ; pass = verb.pass ; inf = verb.inf ; imp = verb.imp ; ger = verb.ger ; geriv = verb.geriv ; sup = verb.sup ; part = verb.part }
|
||||||
|
in
|
||||||
|
(prefixVerb prefix v) ** { c = verb.c };
|
||||||
|
|
||||||
|
prefixVerb : Str -> Verb -> Verb =
|
||||||
|
\prefix,verb ->
|
||||||
|
{
|
||||||
|
act = \\form => addPrefix prefix (verb.act ! form) ;
|
||||||
|
pass = \\form => addPrefix prefix (verb.pass ! form) ;
|
||||||
|
inf = \\form => addPrefix prefix (verb.inf ! form) ;
|
||||||
|
imp = \\form => addPrefix prefix (verb.imp ! form) ;
|
||||||
|
ger = \\form => addPrefix prefix (verb.ger ! form) ;
|
||||||
|
geriv = \\agr => addPrefix prefix (verb.geriv ! agr) ;
|
||||||
|
sup = \\form => addPrefix prefix (verb.sup ! form) ;
|
||||||
|
part = \\form,agr => addPrefix prefix (verb.part ! form ! agr) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
esseAux : Verb = -- Bayer-Lindauer 93 1
|
||||||
|
let
|
||||||
|
pres_stem = "s" ;
|
||||||
|
pres_ind_base = "su" ;
|
||||||
|
pres_conj_base = "si" ;
|
||||||
|
impf_ind_base = "era" ;
|
||||||
|
impf_conj_base = "esse" ;
|
||||||
|
fut_I_base = "eri" ;
|
||||||
|
imp_base = "es" ;
|
||||||
|
perf_stem = "fu" ;
|
||||||
|
perf_ind_base = "fu" ;
|
||||||
|
perf_conj_base = "fueri" ;
|
||||||
|
pqperf_ind_base = "fuera" ;
|
||||||
|
pqperf_conj_base = "fuisse" ;
|
||||||
|
fut_II_base = "fueri" ;
|
||||||
|
part_stem = "fut" ;
|
||||||
|
verb = mkVerb "esse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act =
|
||||||
|
table {
|
||||||
|
VAct VSim (VPres VInd) n p =>
|
||||||
|
table Number [ table Person [ "sum" ; "es" ; "est" ] ;
|
||||||
|
table Person [ "sumus" ; "estis" ; "sunt" ]
|
||||||
|
] ! n ! p ;
|
||||||
|
a => verb.act ! a
|
||||||
|
};
|
||||||
|
pass =
|
||||||
|
\\_ => nonExist ; -- no passive forms
|
||||||
|
inf =
|
||||||
|
verb.inf ;
|
||||||
|
imp =
|
||||||
|
table {
|
||||||
|
VImp1 Sg => "es" ;
|
||||||
|
VImp1 Pl => "este" ;
|
||||||
|
VImp2 Pl P2 => "estote" ;
|
||||||
|
a => verb.imp ! a
|
||||||
|
} ;
|
||||||
|
sup =
|
||||||
|
\\_ => nonExist ; -- no supin forms
|
||||||
|
ger =
|
||||||
|
\\_ => nonExist ; -- no gerund forms
|
||||||
|
geriv =
|
||||||
|
\\_ => nonExist ; -- no gerundive forms
|
||||||
|
part = table {
|
||||||
|
VActFut =>
|
||||||
|
verb.part ! VActFut ;
|
||||||
|
VActPres =>
|
||||||
|
\\_ => nonExist ; -- no such participle
|
||||||
|
VPassPerf =>
|
||||||
|
\\_ => nonExist -- no such participle
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ferreAux : Verb =
|
||||||
|
let
|
||||||
|
pres_stem = "fer" ;
|
||||||
|
pres_ind_base = "fer" ;
|
||||||
|
pres_conj_base = "fera" ;
|
||||||
|
impf_ind_base = "fereba" ;
|
||||||
|
impf_conj_base = "ferre" ;
|
||||||
|
fut_I_base = "fere" ;
|
||||||
|
imp_base = "fer" ;
|
||||||
|
perf_stem = "tul" ;
|
||||||
|
perf_ind_base = "tul" ;
|
||||||
|
perf_conj_base = "tuleri" ;
|
||||||
|
pqperf_ind_base = "tulera" ;
|
||||||
|
pqperf_conj_base = "tulisse" ;
|
||||||
|
fut_II_base = "tuleri" ;
|
||||||
|
part_stem = "lat" ;
|
||||||
|
verb = mkVerb "ferre" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act =
|
||||||
|
table {
|
||||||
|
VAct VSim (VPres VInd) n p =>
|
||||||
|
table Number [ table Person [ "fero" ; "fers" ; "fert" ] ;
|
||||||
|
table Person [ "ferimus" ; "fertis" ; "ferunt" ]
|
||||||
|
] ! n ! p ;
|
||||||
|
a => verb.act ! a
|
||||||
|
} ;
|
||||||
|
pass =
|
||||||
|
table {
|
||||||
|
VPass (VPres VInd) n p =>
|
||||||
|
table Number [ table Person [ "feror" ; "ferris" ; "fertur" ] ;
|
||||||
|
table Person [ "ferimur" ; "ferimini" ; "feruntur" ]
|
||||||
|
] ! n ! p ;
|
||||||
|
a => verb.pass ! a
|
||||||
|
} ;
|
||||||
|
inf =
|
||||||
|
verb.inf ;
|
||||||
|
imp =
|
||||||
|
table {
|
||||||
|
VImp1 n => table Number [ "fer" ; "ferte" ] ! n ;
|
||||||
|
VImp2 Sg ( P2 | P3 ) => "ferto" ;
|
||||||
|
VImp2 Pl P2 => "fertote" ;
|
||||||
|
a => verb.imp ! a
|
||||||
|
} ;
|
||||||
|
sup =
|
||||||
|
verb.sup ;
|
||||||
|
ger =
|
||||||
|
verb.ger ;
|
||||||
|
geriv =
|
||||||
|
verb.geriv ;
|
||||||
|
part = verb.part ;
|
||||||
|
};
|
||||||
|
|
||||||
|
posseAux : Verb =
|
||||||
|
let
|
||||||
|
pres_stem = "pos" ;
|
||||||
|
pres_ind_base = "pos" ;
|
||||||
|
pres_conj_base = "possi" ;
|
||||||
|
impf_ind_base = "potera" ;
|
||||||
|
impf_conj_base = "posse" ;
|
||||||
|
fut_I_base = "poteri" ;
|
||||||
|
imp_base = "" ;
|
||||||
|
perf_stem = "potu" ;
|
||||||
|
perf_ind_base = "potu" ;
|
||||||
|
perf_conj_base = "potueri" ;
|
||||||
|
pqperf_ind_base = "potuera" ;
|
||||||
|
pqperf_conj_base = "potuisse" ;
|
||||||
|
fut_II_base = "potueri" ;
|
||||||
|
part_stem = "" ;
|
||||||
|
verb = mkVerb "posse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
|
||||||
|
imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
act =
|
||||||
|
table {
|
||||||
|
VAct VSim (VPres VInd) n p =>
|
||||||
|
table Number [ table Person [ "possum" ; "potes" ; "potest" ] ;
|
||||||
|
table Person [ "possumus" ; "potestis" ; "possunt" ]
|
||||||
|
] ! n ! p ;
|
||||||
|
a => verb.act ! a
|
||||||
|
} ;
|
||||||
|
pass =
|
||||||
|
\\_ => nonExist ; -- no passive forms
|
||||||
|
inf =
|
||||||
|
table {
|
||||||
|
VInfActFut _ => nonExist ;
|
||||||
|
a => verb.inf ! a
|
||||||
|
} ;
|
||||||
|
imp =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
sup =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
ger =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
geriv =
|
||||||
|
\\_ => nonExist ;
|
||||||
|
part = table {
|
||||||
|
VActFut =>
|
||||||
|
\\_ => nonExist ; -- no such participle
|
||||||
|
VActPres =>
|
||||||
|
\\_ => nonExist ; -- no such participle
|
||||||
|
VPassPerf =>
|
||||||
|
\\_ => nonExist -- no such participle
|
||||||
|
} ;
|
||||||
|
};
|
||||||
|
|
||||||
-- pronouns
|
-- pronouns
|
||||||
|
|
||||||
param
|
param
|
||||||
@@ -717,15 +1009,31 @@ param
|
|||||||
-- PronIndef PronIndefUsage PronIndefPol PronIndefMeaning ;
|
-- PronIndef PronIndefUsage PronIndefPol PronIndefMeaning ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
Pronoun : Type = {
|
PersonalPronoun = {
|
||||||
pers : PronDropForm => PronReflForm => Case => Str ;
|
s : PronDropForm => PronReflForm => Case => Str ;
|
||||||
poss : PronReflForm => Agr => Str ;
|
|
||||||
g : Gender ;
|
g : Gender ;
|
||||||
n : Number ;
|
n : Number
|
||||||
p : Person ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
PossessivePronoun = {
|
||||||
|
s : PronReflForm => Agr => Str ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- Pronoun : Type = {
|
||||||
|
-- pers : PronDropForm => PronReflForm => Case => Str ;
|
||||||
|
-- poss : PronReflForm => Agr => Str ;
|
||||||
|
-- g : Gender ;
|
||||||
|
-- n : Number ;
|
||||||
|
-- p : Person ;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
Pronoun : Type = {
|
||||||
|
pers : PersonalPronoun ;
|
||||||
|
poss : PossessivePronoun ;
|
||||||
|
p : Person
|
||||||
|
} ;
|
||||||
|
|
||||||
pronForms = overload {
|
pronForms = overload {
|
||||||
pronForms : (_,_,_,_,_ : Str) -> Case => Str =
|
pronForms : (_,_,_,_,_ : Str) -> Case => Str =
|
||||||
\ego,me,mei,mihi,mee -> table Case [ego ; me ; mei ; mihi ; mee ; ego] ;
|
\ego,me,mei,mihi,mee -> table Case [ego ; me ; mei ; mihi ; mee ; ego] ;
|
||||||
@@ -839,90 +1147,170 @@ oper
|
|||||||
createPronouns g n p ;
|
createPronouns g n p ;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
pers = prons.p1 ;
|
pers = { s = prons.p1 ; g = g ; n = n } ;
|
||||||
poss = prons.p2 ;
|
poss = { s = prons.p2 } ;
|
||||||
g = g ;
|
|
||||||
n = n ;
|
|
||||||
p = p
|
p = p
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- prepositions
|
-- prepositions
|
||||||
|
|
||||||
Preposition : Type = {s : Str ; c : Case} ;
|
Preposition : Type = {s : Str ; c : Case ; isPost : Bool } ;
|
||||||
|
|
||||||
-- Bayer-Lindauer $149ff.
|
-- conjunctions
|
||||||
about_P = lin Prep (mkPrep "de" Gen ) ; -- L...
|
param Coordinator = And | Or | If | Neither | Because | Comma | Colon | Empty ;
|
||||||
at_P = lin Prep (mkPrep "ad" Acc ) ; -- L...
|
oper
|
||||||
on_P = lin Prep ( mkPrep "ad" Gen ) ; -- L...
|
Conjunction : Type = { s1 : Str ; s2 : Str ; n : Number ; c : Coordinator };
|
||||||
to_P = lin Prep ( mkPrep "ad" Acc ) ; -- L...
|
mkConjunction : Str -> Str -> Number -> Coordinator -> Conjunction = \s1,s2,num,coord -> { s1 = s1; s2 = s2 ; n = num ; c = coord } ;
|
||||||
Gen_Prep = lin Prep ( mkPrep "" Gen ) ;
|
|
||||||
Acc_Prep = lin Prep ( mkPrep "" Acc ) ;
|
VPSlash = VerbPhrase ** {c : Preposition} ;
|
||||||
Dat_Prep = lin Prep ( mkPrep "" Dat ) ;
|
|
||||||
Abl_Prep = lin Prep ( mkPrep "" Abl ) ;
|
|
||||||
|
|
||||||
VPSlash = VerbPhrase ** {c2 : Preposition} ;
|
|
||||||
|
|
||||||
predV : Verb -> VerbPhrase = \v -> {
|
predV : Verb -> VerbPhrase = \v -> {
|
||||||
fin = \\a,q => v.act ! a ++ case q of { VQTrue => Prelude.BIND ++ "ne"; VQFalse => "" };
|
s = \\a,q => v.act ! a ++ case q of { VQTrue => Prelude.BIND ++ "ne"; VQFalse => "" };
|
||||||
|
part = v.part;
|
||||||
|
imp = v.imp ;
|
||||||
inf = v.inf ;
|
inf = v.inf ;
|
||||||
obj = [] ;
|
obj = [] ;
|
||||||
adj = \\a => []
|
compl = \\a => [] ;
|
||||||
|
adv = ""
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
predV2 : Verb2 -> VPSlash = \v ->
|
predV2 : Verb2 -> VPSlash = \v ->
|
||||||
predV v ** {c2 = v.c} ;
|
predV v ** {c = v.c} ;
|
||||||
|
|
||||||
predV3 : Verb3 -> VPSlash = \v
|
predV3 : Verb3 -> VPSlash = \v
|
||||||
-> predV v ** {c2 = v.c2; c3 = v.c3 } ;
|
-> predV v ** {c = v.c; c2 = v.c2 } ;
|
||||||
|
|
||||||
appPrep : Preposition -> (Case => Str) -> Str = \c,s -> c.s ++ s ! c.c ;
|
appPrep : Preposition -> (Case => Str) -> Str = \c,s -> c.s ++ s ! c.c ;
|
||||||
|
|
||||||
insertObj : Str -> VerbPhrase -> VerbPhrase = \obj,vp -> {
|
insertObj : NounPhrase -> Preposition -> VerbPhrase -> VerbPhrase = \np,prep,vp -> {
|
||||||
fin = vp.fin ;
|
s = vp.s ;
|
||||||
|
part = vp.part ;
|
||||||
|
imp = vp.imp ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
obj = obj ++ vp.obj ;
|
obj = np.det.s ! np.g ! prep.c ++ np.preap.s ! (Ag np.g np.n prep.c) ++ (appPrep prep np.s) ++ np.postap.s ! (Ag np.g np.n prep.c) ++ np.det.sp ! np.g ! prep.c ++ vp.obj ;
|
||||||
adj = vp.adj
|
compl = vp.compl ;
|
||||||
|
adv = vp.adv ++ np.adv
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertObjc: Str -> VPSlash -> VPSlash = \obj,vp -> {
|
insertObjc: NounPhrase -> VPSlash -> VPSlash = \np,vp -> {
|
||||||
fin = vp.fin ;
|
s = vp.s ;
|
||||||
|
part = vp.part ;
|
||||||
|
imp = vp.imp ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
obj = obj ++ vp.obj ;
|
obj = np.det.s ! np.g ! vp.c.c ++ np.preap.s ! (Ag np.g np.n vp.c.c) ++ (appPrep vp.c np.s) ++ np.postap.s ! (Ag np.g np.n vp.c.c) ++ np.det.sp ! np.g ! vp.c.c ++ vp.obj ;
|
||||||
adj = vp.adj ;
|
compl = vp.compl ;
|
||||||
c2 = vp.c2
|
c = vp.c ;
|
||||||
|
adv = vp.adv ++ np.adv
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdj : (Agr => Str) -> VerbPhrase -> VerbPhrase = \adj,vp -> {
|
insertAdj : (Agr => Str) -> VerbPhrase -> VerbPhrase = \adj,vp -> {
|
||||||
fin = vp.fin ;
|
s = vp.s ;
|
||||||
|
part = vp.part ;
|
||||||
|
imp = vp.imp ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
obj = vp.obj ;
|
obj = vp.obj ;
|
||||||
adj = \\a => adj ! a ++ vp.adj ! a
|
compl = \\a => adj ! a ++ vp.compl ! a ;
|
||||||
|
adv = vp.adv
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
insertAdv : Adverb -> VerbPhrase -> VerbPhrase = \a,vp -> {
|
||||||
|
s = vp.s ;
|
||||||
|
part = vp.part ;
|
||||||
|
imp = vp.imp ;
|
||||||
|
inf = vp.inf ;
|
||||||
|
obj = vp.obj ;
|
||||||
|
compl = vp.compl ;
|
||||||
|
adv = vp.adv ++ (a.s ! Posit)
|
||||||
|
} ;
|
||||||
|
|
||||||
-- clauses
|
-- clauses
|
||||||
Clause = {s : Tense => Anteriority => Polarity => VQForm => Order => Str} ;
|
Sentence =
|
||||||
QClause = {s : Tense => Anteriority => Polarity => QForm => Str} ;
|
{
|
||||||
|
s,o,v,neg : AdvPos => Str ; -- Subject, verbphrase, object and negation particle plus potential adverb
|
||||||
|
t : C.Tense ; -- tense marker
|
||||||
|
p : C.Pol ; -- polarity marker
|
||||||
|
sadv : Str -- sentence adverb¡
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Clause = {s,o : AdvPos => Str ; v : Tense => Anteriority => VQForm => AdvPos => Str ; neg : Polarity => AdvPos => Str ; adv : Str } ;
|
||||||
|
QClause = {s : C.Tense => Anteriority => C.Pol => QForm => Str} ;
|
||||||
|
|
||||||
-- The VQForm parameter defines if the ordinary verbform or the quistion form with suffix "-ne" will be used
|
mkClause : NounPhrase -> VerbPhrase -> Clause = \np,vp ->
|
||||||
mkClause : NounPhrase -> VerbPhrase -> Clause = \np,vp -> {
|
let
|
||||||
s = \\tense,anter,pol,vqf,order => case order of {
|
-- combines adverbs from noun phrase and verb phrase
|
||||||
SVO => np.s ! Nom ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.inf ! VInfActPres ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ vp.obj ;
|
adv = np.adv ++ vp.adv ;
|
||||||
VSO => negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ np.s ! Nom ++ vp.obj ;
|
-- helper functions to either place the adverb in the designated position
|
||||||
VOS => negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ vp.obj ++ np.s ! Nom ;
|
-- or an empty string instead
|
||||||
OSV => vp.obj ++ np.s ! Nom ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ;
|
pres : AdvPos -> Str = \ap -> case ap of { PreS => adv ; _ => [] } ;
|
||||||
OVS => vp.obj ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ np.s ! Nom ;
|
prev : AdvPos -> Str = \ap -> case ap of { PreV => adv ; _ => [] } ;
|
||||||
SOV => np.s ! Nom ++ vp.obj ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf
|
preo : AdvPos -> Str = \ap -> case ap of { PreO => adv ; _ => [] } ;
|
||||||
}
|
preneg : AdvPos -> Str = \ap -> case ap of { PreNeg => adv ; _ => [] } ;
|
||||||
-- np.s ! Nom ++ vp.obj ++ vp.adj ! np.g ! np.n ++ negation p ++ vp.fin ! VAct a t np.n np.p
|
ins : AdvPos -> Str = \ap -> case ap of { InS => adv ; _ => [] } ;
|
||||||
|
inv : AdvPos -> Str = \ap -> case ap of { InV => adv ; _ => [] }
|
||||||
|
in
|
||||||
|
{
|
||||||
|
-- subject part of the clause:
|
||||||
|
-- ap is the adverb position in the clause
|
||||||
|
s = \\ap =>
|
||||||
|
pres ap ++ -- adverbs can be placed in the beginning of the clause
|
||||||
|
np.det.s ! np.g ! Nom ++ -- the determiner, if any
|
||||||
|
np.preap.s ! (Ag np.g np.n Nom) ++ -- adjectives which come before the subject noun, agreeing with it
|
||||||
|
ins ap ++ -- adverbs can be placed within the subject noun phrase
|
||||||
|
np.s ! Nom ++ -- the noun of the subject noun phrase in nominative
|
||||||
|
np.postap .s ! (Ag np.g np.n Nom) ++ -- adjectives which come after the subject noun, agreeing with it
|
||||||
|
np.det.sp ! np.g ! Nom ; -- second part of split determiners
|
||||||
|
-- verb part of the clause:
|
||||||
|
-- tense and anter(ority) for the verb tense
|
||||||
|
-- vqf is the VQForm parameter which defines if the ordinary verbform or the quistion form with suffix "-ne" will be used
|
||||||
|
-- ap is the adverb position in the clause
|
||||||
|
v = \\tense,anter,vqf,ap =>
|
||||||
|
prev ap ++ -- adverbs can be placed in the before the verb phrase
|
||||||
|
vp.compl ! Ag np.g np.n Nom ++ -- verb phrase complement, e.g. predicative expression, agreeing with the subject
|
||||||
|
inv ap ++ -- adverbs can be placed within the verb phrase
|
||||||
|
-- verb form with conversion between different forms of tense and aspect
|
||||||
|
vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ;
|
||||||
|
-- object part of the clause
|
||||||
|
o = \\ap => preo ap ++ vp.obj ;
|
||||||
|
-- optional negation particle, adverbs can be placed before the negation
|
||||||
|
neg = \\pol,ap => preneg ap ++ negation pol ;
|
||||||
|
adv = ""
|
||||||
|
} ;
|
||||||
|
|
||||||
|
combineClause : Clause -> C.Tense -> Anteriority -> C.Pol -> VQForm -> Sentence = \cl,tense,anter,pol,vqf ->
|
||||||
|
{ s = cl.s ;
|
||||||
|
o = cl.o ;
|
||||||
|
v = cl.v ! tense.t ! anter ! vqf ;
|
||||||
|
neg = cl.neg ! pol.p ;
|
||||||
|
sadv = "" ;
|
||||||
|
t = tense ;
|
||||||
|
p = pol
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
combineSentence : Sentence -> ( SAdvPos => AdvPos => Order => Str ) = \s ->
|
||||||
|
let
|
||||||
|
pres : SAdvPos -> Str = \ap -> case ap of { SPreS => s.sadv ; _ => [] } ;
|
||||||
|
prev : SAdvPos -> Str = \ap -> case ap of { SPreV => s.sadv ; _ => [] } ;
|
||||||
|
preo : SAdvPos -> Str = \ap -> case ap of { SPreO => s.sadv ; _ => [] } ;
|
||||||
|
preneg : SAdvPos -> Str = \ap -> case ap of { SPreNeg => s.sadv ; _ => [] }
|
||||||
|
in
|
||||||
|
\\sap,ap,order => case order of {
|
||||||
|
SVO => s.t.s ++ s.p.s ++ pres sap ++ s.s ! ap ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap ++ preo sap ++ s.o ! ap;
|
||||||
|
VSO => s.t.s ++ s.p.s ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap ++ pres sap ++ s.s ! ap ++ preo sap ++ s.o ! ap;
|
||||||
|
VOS => s.t.s ++ s.p.s ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap ++ preo sap ++ s.o ! ap ++ pres sap ++ s.s ! ap ;
|
||||||
|
OSV => s.t.s ++ s.p.s ++ preo sap ++ s.o ! ap ++ pres sap ++ s.s ! ap ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap;
|
||||||
|
OVS => s.t.s ++ s.p.s ++ preo sap ++ s.o ! ap ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap ++ pres sap ++ s.s ! ap ;
|
||||||
|
SOV => s.t.s ++ s.p.s ++ pres sap ++ s.s ! ap ++ preo sap ++ s.o ! ap ++ preneg sap ++ s.neg ! ap ++ prev sap ++ s.v ! ap
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- questions
|
-- questions
|
||||||
mkQuestion : SS -> Clause -> QClause = \ss,cl -> {
|
mkQuestion : SS -> Clause -> QClause = \ss,cl -> {
|
||||||
s = \\tense,anter,pol,form => case form of {
|
s = \\tense,anter,pol,form => case form of {
|
||||||
QDir => ss.s ++ cl.s ! tense ! anter ! pol ! VQFalse ! OVS;
|
QDir => ss.s ++ (combineSentence (combineClause cl tense anter pol VQFalse)) ! SPreS ! PreS ! OVS ;
|
||||||
QIndir => ss.s ++ cl.s ! tense ! anter ! pol ! VQFalse ! OSV
|
QIndir => ss.s ++ (combineSentence (combineClause cl tense anter pol VQFalse)) ! SPreO ! PreO ! OSV
|
||||||
}
|
}
|
||||||
} ;
|
};
|
||||||
|
|
||||||
negation : Polarity -> Str = \p -> case p of {
|
negation : Polarity -> Str = \p -> case p of {
|
||||||
Pos => [] ;
|
Pos => [] ;
|
||||||
@@ -932,7 +1320,7 @@ oper
|
|||||||
-- determiners
|
-- determiners
|
||||||
|
|
||||||
Determiner : Type = {
|
Determiner : Type = {
|
||||||
s : Gender => Case => Str ; -- s,sp : Gender => Case => Str ; Don't know what sp is for
|
s,sp : Gender => Case => Str ; -- sp for split determiners (not clear if really needed)
|
||||||
n : Number
|
n : Number
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -940,6 +1328,7 @@ oper
|
|||||||
{
|
{
|
||||||
n = n ;
|
n = n ;
|
||||||
s = \\g,c => a.s ! Posit ! Ag g n c ;
|
s = \\g,c => a.s ! Posit ! Ag g n c ;
|
||||||
|
sp = \\_,_ => ""
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Quantifier : Type = {
|
Quantifier : Type = {
|
||||||
@@ -985,11 +1374,62 @@ oper
|
|||||||
"illa" "illorum" "illis")
|
"illa" "illorum" "illis")
|
||||||
;
|
;
|
||||||
|
|
||||||
mkPrep : Str -> Case -> Preposition = \s,c -> lin Preposition {s = s ; c = c} ;
|
mkPreposition : Str -> Case -> Preposition = \s,c -> {s = s ; c = c; isPost = False} ;
|
||||||
|
|
||||||
mkAdv : Str -> { s: Str } = \adv -> { s = adv } ;
|
mkPostposition : Str -> Case -> Preposition = \s,c -> {s = s ; c = c ; isPost = True } ;
|
||||||
|
|
||||||
param
|
-- adverbs
|
||||||
Unit = one | ten | hundred | thousand | ten_thousand | hundred_thousand ;
|
Adverb : Type = { s : Degree => Str} ;
|
||||||
|
mkAdverb : Str -> Adverb = \adv ->
|
||||||
|
{ s = table { Posit => adv ; _ => nonExist } } ;
|
||||||
|
|
||||||
|
mkFullAdverb : (pos,comp,sup : Str) -> Adverb = \p,c,s ->
|
||||||
|
{ s = table { Posit => p ; Compar => c ; Super => s } };
|
||||||
|
-- numerals
|
||||||
|
param
|
||||||
|
CardOrd = NCard | NOrd ;
|
||||||
|
Unit = one | ten | hundred | thousand | ten_thousand | hundred_thousand ;
|
||||||
|
oper
|
||||||
|
Cardinal : Type = {s : Gender => Case => Str ; n : Number};
|
||||||
|
Ordinal : Type = { s : Gender => Number => Case => Str } ;
|
||||||
|
Numeral : Type = { card : Cardinal ; ord : Ordinal } ;
|
||||||
|
|
||||||
|
mkNumeral : Str -> Str -> Numeral = \c,o -> -- cardinal and ordinal form
|
||||||
|
let
|
||||||
|
cardFlex : Gender => Case => Str = case c of { "unus" => \\gen,cas => case <gen,cas> of {
|
||||||
|
<Masc, Nom | Voc> => "unus" ; <Masc, Acc> => "unum" ; <Masc, Abl> => "uno" ;
|
||||||
|
<Fem, Nom | Abl | Voc> => "una" ; <Fem, Acc> => "unam" ;
|
||||||
|
<Neutr, Nom | Acc | Voc> => "unum" ; <Neutr, Abl> => "uno" ;
|
||||||
|
<_, Gen> => "unius" ; <_, Dat> => "uni"
|
||||||
|
} ;
|
||||||
|
"duo" => table {
|
||||||
|
Masc | Neutr => table Case [ "duo" ; "duo" ; "duorum" ; "duobus" ; "duobus" ; "duo" ] ;
|
||||||
|
Fem => table Case [ "duae" ; "duas" ; "duarum" ; "duabus" ; "duabus" ; "duae" ] } ;
|
||||||
|
"tres" => \\gen,cas => case <gen,cas> of {
|
||||||
|
<Neutr, Nom | Acc | Voc > => "tria" ; <_, Nom | Acc | Voc > => "tres" ;
|
||||||
|
<_, Gen> => "trium" ; <_, Dat | Abl > => "tribus"
|
||||||
|
} ;
|
||||||
|
"milia" => table {
|
||||||
|
Neutr => table Case [ "milia" ; "milia" ; "milium" ; "milibus" ; "milibus" ; "milia" ] ;
|
||||||
|
_ => \\_ => nonExist
|
||||||
|
} ;
|
||||||
|
_ => \\_,_ => c
|
||||||
|
} ;
|
||||||
|
ordFlex : Gender => Number => Case => Str =
|
||||||
|
case o of {
|
||||||
|
stem + "us" => table {
|
||||||
|
Masc => table Number [ table Case [ stem + "us" ; stem + "um" ; stem + "i" ; stem + "o" ; stem + "o" ; stem + "e" ] ;
|
||||||
|
table Case [ stem + "i" ; stem + "os" ; stem + "orum" ; stem + "is" ; stem + "is" ; stem + "i" ] ;
|
||||||
|
];
|
||||||
|
Fem => table Number [ table Case [ stem + "a" ; stem + "am" ; stem + "ae" ; stem + "ae" ; stem + "a" ; stem + "a" ] ;
|
||||||
|
table Case [ stem + "ae" ; stem + "as" ; stem + "arum" ; stem + "is" ; stem + "is" ; stem + "ae" ] ;
|
||||||
|
] ;
|
||||||
|
Neutr => table Number [ table Case [ stem + "um" ; stem + "um" ; stem + "i" ; stem + "o" ; stem + "o" ; stem + "um" ] ;
|
||||||
|
table Case [ stem + "a" ; stem + "a" ; stem + "orum" ; stem + "is" ; stem + "is" ; stem + "a" ] ;
|
||||||
|
]
|
||||||
|
} ;
|
||||||
|
_ => error "unsupported ordinal form"
|
||||||
|
}
|
||||||
|
in
|
||||||
|
{ card = { s = cardFlex ; n = case c of { "unus" => Sg ; _ => Pl } } ; ord = { s = ordFlex } } ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,12 +45,13 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in {
|
|||||||
-- EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
|
-- EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
|
||||||
--
|
--
|
||||||
UseCl t p cl = -- Temp -> Pol-> Cl -> S
|
UseCl t p cl = -- Temp -> Pol-> Cl -> S
|
||||||
{
|
(combineClause cl (lin Tense t) t.a (lin Pol p) VQFalse) ;
|
||||||
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! VQFalse ! SOV
|
|
||||||
} ;
|
-- TO FIX
|
||||||
UseQCl t p cl = {
|
--UseQCl t p cl =
|
||||||
s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
|
-- s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p ! q
|
||||||
} ;
|
-- { s = \\q => combineSentence (combineClause cl t t.a p VQFalse) ! PreV ! VSO } ;
|
||||||
|
|
||||||
-- UseRCl t p cl = {
|
-- UseRCl t p cl = {
|
||||||
-- s = \\r => t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! r ;
|
-- s = \\r => t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! r ;
|
||||||
-- c = cl.c
|
-- c = cl.c
|
||||||
@@ -60,11 +61,13 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in {
|
|||||||
-- c2 = cl.c2
|
-- c2 = cl.c2
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
-- AdvS a s = {s = a.s ++ "," ++ s.s} ;
|
-- AdvS : Adv -> S -> S
|
||||||
|
AdvS adv s = { s = s.s ; o = s.o ; v = s.v ; neg = s.neg ; t = s.t ; p = s.p ; sadv = adv.s ! Posit ++ s.sadv } ;
|
||||||
|
|
||||||
-- This covers subjunctive clauses, but they can also be added to the end.
|
-- This covers subjunctive clauses, but they can also be added to the end.
|
||||||
-- SSubjS : S -> Subj -> S -> S ; -- I go home if she comes
|
-- SSubjS : S -> Subj -> S -> S ; -- I go home if she comes
|
||||||
SSubjS s1 subj s2 = ss ( subj.s ++ s2.s ++ s1.s );
|
-- TO FIX
|
||||||
|
-- SSubjS s1 subj s2 = { s = \\_ => subj.s ++ s2.s ! PreS ++ s1.s ! PreS ; sadv = lin Adv (mkAdverb []) } ;
|
||||||
|
|
||||||
-- RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ;
|
-- RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ;
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete StructuralLat of Structural = CatLat **
|
concrete StructuralLat of Structural = CatLat **
|
||||||
open ResLat, ParadigmsLat, Prelude, IrregLat, ConstructX in
|
open ResLat, ParadigmsLat, Prelude, IrregLat, (C=ConstructX) in
|
||||||
{
|
{
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
@@ -11,68 +11,68 @@ concrete StructuralLat of Structural = CatLat **
|
|||||||
almost_AdA, almost_AdN = ss "quasi" ; -- L...
|
almost_AdA, almost_AdN = ss "quasi" ; -- L...
|
||||||
although_Subj = ss "quamquam" ; -- L...
|
although_Subj = ss "quamquam" ; -- L...
|
||||||
always_AdV = ss "semper" ; -- L...
|
always_AdV = ss "semper" ; -- L...
|
||||||
and_Conj = sd2 [] "et" ** {n = Pl} ; -- L...
|
and_Conj = mkConj [] "et" Pl And ; -- L...
|
||||||
-----b and_Conj = ss "and" ** {n = Pl} ;
|
-----b and_Conj = ss "and" ** {n = Pl} ;
|
||||||
because_Subj = ss "cum" ; -- L...
|
because_Subj = ss "cum" ; -- L...
|
||||||
before_Prep = mkPrep "ante" Acc ; -- acc. L...
|
before_Prep = mkPrep "ante" Acc ; -- acc. L...
|
||||||
behind_Prep = mkPrep "a tergo" Acc ; -- acc. L...
|
behind_Prep = mkPrep "a tergo" Acc ; -- acc. L...
|
||||||
between_Prep = mkPrep "inter" Acc ; -- acc. L...
|
between_Prep = mkPrep "inter" Acc ; -- acc. L...
|
||||||
both7and_DConj = sd2 "et" "et" ** {n = Pl} ; --L...
|
both7and_DConj = mkConj "et" "et" Pl And; --L...
|
||||||
but_PConj = ss "sed" ; -- L...
|
but_PConj = ss "sed" ; -- L...
|
||||||
by8agent_Prep = mkPrep "per" Abl ; -- L...
|
by8agent_Prep = mkPrep "per" Abl ; -- L...
|
||||||
by8means_Prep = Abl_Prep ; -- L...
|
by8means_Prep = mkPrep "" Abl ; -- L...
|
||||||
can8know_VV, can_VV = IrregLat.can_VV ; --L...
|
can8know_VV, can_VV = mkVV IrregLat.can_V True ; --L...
|
||||||
during_Prep = mkPrep "inter" Acc ; -- L...
|
during_Prep = mkPrep "inter" Acc ; -- L...
|
||||||
either7or_DConj = sd2 "aut" "aut" ** {n = Sg} ; -- L...
|
either7or_DConj = mkConj "aut" "aut" Sg Or ; -- L...
|
||||||
everybody_NP = regNP "quisque" "quemque" "cuiusque" "cuique" "quoque" "quisque" ( Masc | Fem ) Sg ;-- regNP "quisquae" Sg ; -- L...
|
everybody_NP = regNP "quisque" "quemque" "cuiusque" "cuique" "quoque" "quisque" Masc Sg ;-- regNP "quisquae" Sg ; -- L...
|
||||||
every_Det = mkDeterminer ( mkA "omnis" ) Pl ; -- Pons
|
every_Det = mkDeterminer ( mkA "omnis" ) Pl ; -- Pons
|
||||||
everything_NP = regNP "omnia" "omnia" "omnium" "omnis" "omnis" "omnia" Neutr Pl ; --regNP "omnia" Pl ; -- L...
|
everything_NP = regNP "omnia" "omnia" "omnium" "omnis" "omnis" "omnia" Neutr Pl ; --regNP "omnia" Pl ; -- L...
|
||||||
everywhere_Adv = ss "ubique" ; -- L...
|
everywhere_Adv = mkAdv "ubique" ; -- L...
|
||||||
few_Det = mkDeterminer ( mkA "paulus" ) Pl ; -- L...
|
few_Det = mkDeterminer ( mkA "paulus" ) Pl ; -- L...
|
||||||
----- first_Ord = ss "first" ; DEPRECATED
|
----- first_Ord = ss "first" ; DEPRECATED
|
||||||
for_Prep = mkPrep "pro" Abl ; -- abl. L...
|
for_Prep = mkPrep "pro" Abl ; -- abl. L...
|
||||||
from_Prep = mkPrep "de" Abl ; -- abl. L...
|
from_Prep = mkPrep "de" Abl ; -- abl. L...
|
||||||
he_Pron = mkPronoun Masc Sg P3 ;
|
he_Pron = mkPronoun Masc Sg P3 ;
|
||||||
here_Adv = ss "hic" ; -- L...
|
here_Adv = mkAdv "hic" ; -- L...
|
||||||
here7to_Adv = ss "huc" ; -- L...
|
here7to_Adv = mkAdv "huc" ; -- L...
|
||||||
here7from_Adv = ss "hinc" ; -- L...
|
here7from_Adv = mkAdv "hinc" ; -- L...
|
||||||
how_IAdv = ss "qui" ; -- L...
|
how_IAdv = ss "qui" ; -- L...
|
||||||
how8many_IDet = mkDeterminer (mkA "quantus" ) Pl ; -- Pons
|
how8many_IDet = mkDeterminer (mkA "quantus" ) Pl ; -- Pons
|
||||||
how8much_IAdv = ss "quantum" ; -- L...
|
how8much_IAdv = ss "quantum" ; -- L...
|
||||||
if_Subj = ss "si" ; -- L...
|
if_Subj = ss "si" ; -- L...
|
||||||
in8front_Prep = mkPrep "ante" Acc ; -- acc. L...
|
in8front_Prep = mkPrep "ante" Acc ; -- acc. L...
|
||||||
i_Pron = mkPronoun Masc Sg P1 ;
|
i_Pron = mkPronoun Masc Sg P1 ;
|
||||||
in_Prep = mkPrep "in" ( variants { Abl ; Acc } ) ; -- L...
|
in_Prep = mkPrep "in" Acc ; -- L..., abl. in extra
|
||||||
it_Pron = mkPronoun Neutr Sg P3 ;
|
it_Pron = mkPronoun Neutr Sg P3 ;
|
||||||
less_CAdv = mkCAdv "minus" "quam" ; -- L...
|
less_CAdv = C.mkCAdv "minus" "quam" ; -- L...
|
||||||
many_Det = mkDeterminer ( mkA "multus" ) Pl ; -- L...
|
many_Det = mkDeterminer ( mkA "multus" ) Pl ; -- L...
|
||||||
more_CAdv = mkCAdv "magis" "quam" ; -- L...
|
more_CAdv = C.mkCAdv "magis" "quam" ; -- L...
|
||||||
most_Predet = ss "plurimi" ; -- L...
|
most_Predet = ss "plurimi" ; -- L...
|
||||||
much_Det = mkDeterminer ( mkA "multus" ) Sg ; -- L...
|
much_Det = mkDeterminer ( mkA "multus" ) Sg ; -- L...
|
||||||
must_VV = mkVV ( mkV "debere" ) True ; -- L...
|
must_VV = mkVV ( mkV "debere" ) True ; -- L...
|
||||||
-----b no_Phr = ss "immo" ;
|
-----b no_Phr = ss "immo" ;
|
||||||
no_Utt = ss "non est" ; -- should be expressed by a short negated sentence L...
|
no_Utt = ss "non est" ; -- should be expressed by a short negated sentence L...
|
||||||
on_Prep = mkPrep "in" ( Acc | Abl ) ; -- L...
|
on_Prep = mkPrep "in" Acc ; -- L...
|
||||||
------ one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
|
------ one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
|
||||||
only_Predet = ss "solum" ; -- L...
|
only_Predet = ss "solum" ; -- L...
|
||||||
or_Conj = sd2 [] "aut" ** {n = Sg} ; -- L...
|
or_Conj = mkConj [] "aut" Sg Or ; -- L...
|
||||||
otherwise_PConj = ss "praeterea" ; -- Pons
|
otherwise_PConj = ss "praeterea" ; -- Pons
|
||||||
part_Prep = mkPrep [] Gen ; -- Bayer-Lindauer 127
|
part_Prep = mkPrep [] Gen ; -- Bayer-Lindauer 127
|
||||||
please_Voc = ss "queso" ; -- L...
|
please_Voc = ss "queso" ; -- L...
|
||||||
possess_Prep = mkPrep [] Gen ; -- Bayer-Lindauer 125.2
|
possess_Prep = mkPrep [] Gen ; -- Bayer-Lindauer 125.2
|
||||||
quite_Adv = ss "admodum" ; -- or by comparation L...
|
quite_Adv = ss "admodum" ; -- actually AdA, can be expressed by comparation L...
|
||||||
she_Pron = mkPronoun Fem Sg P3 ;
|
she_Pron = mkPronoun Fem Sg P3 ;
|
||||||
so_AdA = ss "sic" ; -- L...
|
so_AdA = ss "sic" ; -- L...
|
||||||
somebody_NP = regNP "aliquis" "aliquem" "alicuius" "clicui" "aliquo" "aliquis" ( Masc | Fem ) Sg ; -- Bayer-Lindauer 60.1
|
somebody_NP = regNP "aliquis" "aliquem" "alicuius" "clicui" "aliquo" "aliquis" Masc Sg ; -- Bayer-Lindauer 60.1
|
||||||
someSg_Det = mkDeterminer ( mkA "aliquis" ) Sg ; -- L...
|
someSg_Det = mkDeterminer ( mkA "aliquis" ) Sg ; -- L...
|
||||||
somePl_Det = mkDeterminer ( mkA "nonnullus" ) Pl ; --L ...
|
somePl_Det = mkDeterminer ( mkA "nonnullus" ) Pl ; --L ...
|
||||||
something_NP = regNP "aliquid" "aliquid" "alicuius rei" "alicui rei" "aliqua re" "aliquid" Masc Sg ; -- Bayer-Lindauer 60.1
|
something_NP = regNP "aliquid" "aliquid" "alicuius rei" "alicui rei" "aliqua re" "aliquid" Masc Sg ; -- Bayer-Lindauer 60.1
|
||||||
somewhere_Adv = ss "usquam" ; -- L...
|
somewhere_Adv = mkAdv "usquam" ; -- L...
|
||||||
that_Quant = ille_Quantifier ;
|
that_Quant = ille_Quantifier ;
|
||||||
that_Subj = ss "ut" ; -- L...
|
that_Subj = ss "ut" ; -- L...
|
||||||
there_Adv = ss "ibi" ; -- loc. L...
|
there_Adv = mkAdv "ibi" ; -- loc. L...
|
||||||
there7to_Adv = ss "eo" ; -- Pons
|
there7to_Adv = mkAdv "eo" ; -- Pons
|
||||||
there7from_Adv = ss "inde" ; -- Pons
|
there7from_Adv = mkAdv "inde" ; -- Pons
|
||||||
therefore_PConj = ss "ergo" ; -- L...
|
therefore_PConj = ss "ergo" ; -- L...
|
||||||
they_Pron = mkPronoun Masc Pl P3 ;
|
they_Pron = mkPronoun Masc Pl P3 ;
|
||||||
this_Quant = hic_Quantifier ;
|
this_Quant = hic_Quantifier ;
|
||||||
@@ -109,18 +109,18 @@ concrete StructuralLat of Structural = CatLat **
|
|||||||
yes_Utt = ss "sane" ; -- L...
|
yes_Utt = ss "sane" ; -- L...
|
||||||
youSg_Pron = mkPronoun Masc Sg P2 ;
|
youSg_Pron = mkPronoun Masc Sg P2 ;
|
||||||
youPl_Pron = mkPronoun Masc Pl P2 ;
|
youPl_Pron = mkPronoun Masc Pl P2 ;
|
||||||
youPol_Pron = youSg_Pron | youPl_Pron ;
|
youPol_Pron = youSg_Pron ; -- only use singular
|
||||||
|
|
||||||
no_Quant = { s , sp = ( mkA "nullus" ).s ! Posit } ; -- nullus L...
|
no_Quant = { s , sp = ( mkA "nullus" ).s ! Posit } ; -- nullus L...
|
||||||
not_Predet = ss "non" ; -- L...
|
not_Predet = ss "non" ; -- L...
|
||||||
if_then_Conj = {s1 = "si" ; s2 = "" ; n = Sg } ; -- no word in s2 field L...
|
if_then_Conj = mkConj "si" [] Sg If ; -- no word in s2 field L...
|
||||||
at_least_AdN = ss "saltem" ; -- L...
|
at_least_AdN = ss "saltem" ; -- L...
|
||||||
at_most_AdN = ss "summum" ; -- Pons
|
at_most_AdN = ss "summum" ; -- Pons
|
||||||
nobody_NP = regNP "nemo" "neminem" "neminis" "nemini" "nemine" "nemo" ( Masc | Fem ) Sg ; -- Bayer Lindauer 60.4
|
nobody_NP = regNP "nemo" "neminem" "neminis" "nemini" "nemine" "nemo" Masc Sg ; -- Bayer Lindauer 60.4
|
||||||
nothing_NP = regNP "nihil" "nihil" "nullius rei" "nulli rei" "nulla re" "nihil" Neutr Sg ; -- Bayer-Lindauer 60.4
|
nothing_NP = regNP "nihil" "nihil" "nullius rei" "nulli rei" "nulla re" "nihil" Neutr Sg ; -- Bayer-Lindauer 60.4
|
||||||
except_Prep = mkPrep "praeter" Acc ; -- L...
|
except_Prep = mkPrep "praeter" Acc ; -- L...
|
||||||
|
|
||||||
as_CAdv = mkCAdv "ita" "ut" ; -- L ...
|
as_CAdv = C.mkCAdv "ita" "ut" ; -- L ...
|
||||||
|
|
||||||
have_V2 = mkV2 (mkV "habere") ; -- habeo, -ui, -itum 2 (Langenscheidts)
|
have_V2 = mkV2 (mkV "habere") ; -- habeo, -ui, -itum 2 (Langenscheidts)
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat in {
|
concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat, ParadigmsLat, TenseX in {
|
||||||
--
|
|
||||||
--lin
|
lin
|
||||||
-- SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
SymbPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||||
-- IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
IntPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||||
-- FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
FloatPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||||
-- NumPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
NumPN i = {s = \\n,c => i.s ! Neutr ! c; g = Neutr} ; --- c
|
||||||
-- CNIntNP cn i = {
|
-- CNIntNP cn i = {
|
||||||
-- s = \\c => (cn.s ! Sg ! Nom ++ i.s) ;
|
-- s = \\c => (cn.s ! Sg ! Nom ++ i.s) ;
|
||||||
-- a = agrgP3 Sg cn.g
|
-- a = agrgP3 Sg cn.g
|
||||||
@@ -20,20 +20,17 @@ concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat in {
|
|||||||
-- a = agrgP3 Sg cn.g
|
-- a = agrgP3 Sg cn.g
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
-- SymbS sy = sy ;
|
SymbS sy = { s = \\_ => sy.s ; neg = \\_ => "" ; o = \\_ => "" ; p = PPos ; sadv = "" ; t = TPres ; v = \\_ => "" } ;
|
||||||
--
|
|
||||||
-- SymbNum sy = {s = sy.s ; n = Pl ; hasCard = True} ;
|
|
||||||
-- SymbOrd sy = {s = sy.s ++ "th"} ;
|
|
||||||
--
|
|
||||||
--lincat
|
|
||||||
--
|
|
||||||
-- Symb, [Symb] = SS ;
|
|
||||||
--
|
|
||||||
--lin
|
|
||||||
--
|
|
||||||
-- MkSymb s = s ;
|
|
||||||
--
|
--
|
||||||
|
-- SymbNum sy = {s = sy.s ; n = Pl ; hasCard = True} ;
|
||||||
|
SymbOrd sy = { s = \\g,n,c => sy.s } ; -- does not inflect properly
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Symb, [Symb] = SS ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
MkSymb s = s ;
|
||||||
|
|
||||||
-- BaseSymb = infixSS "and" ;
|
-- BaseSymb = infixSS "and" ;
|
||||||
-- ConsSymb = infixSS "," ;
|
-- ConsSymb = infixSS "," ;
|
||||||
--
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--1 Construction rules for latin verb phrases
|
--1 Construction rules for latin verb phrases
|
||||||
concrete VerbLat of Verb = CatLat ** open (S=StructuralLat),ResLat,IrregLat in {
|
concrete VerbLat of Verb = CatLat ** open (S=StructuralLat),ResLat,IrregLat,ExtraLat,Predef,Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -11,88 +11,107 @@ concrete VerbLat of Verb = CatLat ** open (S=StructuralLat),ResLat,IrregLat in {
|
|||||||
|
|
||||||
-- ComplVV : VV -> VP -> VP ; -- want to run
|
-- ComplVV : VV -> VP -> VP ; -- want to run
|
||||||
ComplVV v vp =
|
ComplVV v vp =
|
||||||
{
|
vp ** {
|
||||||
fin = vp.fin ;
|
s = \\af,qf => v.act ! af ;
|
||||||
inf = v.inf ;
|
compl = \\ag => vp.compl ! ag ++ vp.inf ! VInfActPres
|
||||||
obj = vp.obj ;
|
} ;
|
||||||
adj = vp.adj
|
|
||||||
};
|
|
||||||
|
|
||||||
-- ComplVS : VS -> S -> VP ; -- say that she runs
|
-- ComplVS : VS -> S -> VP ; -- say that she runs
|
||||||
ComplVS v s = insertObj (S.that_Subj.s ++ s.s) (predV v) ;
|
ComplVS v s = insertObj ( dummyNP (S.that_Subj.s ++ s.s ! PreS)) Nom_Prep (predV v) ;
|
||||||
|
|
||||||
-- ComplVQ : VQ -> QS -> VP ; -- wonder who runs
|
-- ComplVQ : VQ -> QS -> VP ; -- wonder who runs
|
||||||
ComplVQ v q = insertObj ( q.s ! QIndir) (predV v) ;
|
ComplVQ v q = insertObj (dummyNP (q.s ! QIndir)) Nom_Prep (predV v) ;
|
||||||
|
|
||||||
-- ComplVA : VA -> AP -> VP ; -- they become red
|
-- ComplVA : VA -> AP -> VP ; -- they become red
|
||||||
ComplVA v ap = (predV v) ** { adj = ap.s } ;
|
ComplVA v ap = (predV v) ** { compl = ap.s } ;
|
||||||
|
|
||||||
-- SlashV2a : V2 -> VPSlash ; -- love (it)
|
-- SlashV2a : V2 -> VPSlash ; -- love (it)
|
||||||
SlashV2a v = lin VP (predV2 v) ;
|
SlashV2a v = lin VP (predV2 v) ;
|
||||||
|
|
||||||
-- Slash2V3 v np =
|
-- Slash2V3 : V3 -> NP -> VPSlash ; -- give it (to her)
|
||||||
-- insertObjc (\\_ => v.c2 ++ np.s ! Acc) (predV v ** {c2 = v.c3}) ;
|
Slash2V3 v np = lin VP (insertObjc np (predV3 v ** { c = v.c2 } ) );
|
||||||
|
|
||||||
-- Slash3V3 : V3 -> NP -> VPSlash ; -- give (it) to her
|
-- Slash3V3 : V3 -> NP -> VPSlash ; -- give (it) to her
|
||||||
Slash3V3 v np =
|
Slash3V3 v np = lin VP ( insertObjc np ( predV3 v ** { c = v.c} ) ) ;
|
||||||
lin VP ( insertObjc ( v.c2.s ++ np.s ! v.c2.c ) ( predV3 v ) ) ;
|
|
||||||
|
|
||||||
|
-- SlashV2V : V2V -> VP -> VPSlash ; -- beg (her) to go
|
||||||
-- SlashV2V v vp = insertObjc (\\a => infVP v.isAux vp a) (predVc v) ;
|
-- SlashV2V v vp = insertObjc (\\a => infVP v.isAux vp a) (predVc v) ;
|
||||||
|
|
||||||
|
-- SlashV2S : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
||||||
-- SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
-- SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
||||||
|
|
||||||
-- SlashV2Q : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
-- SlashV2Q : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
||||||
SlashV2Q v q = lin VP (insertObjc (q.s ! QIndir) (predV2 v) ) ;
|
SlashV2Q v q = lin VP (insertObjc (dummyNP (q.s ! QIndir)) (predV2 v) ) ;
|
||||||
|
|
||||||
-- SlashV2A : V2A -> AP -> VPSlash ; -- paint (it) red
|
-- SlashV2A : V2A -> AP -> VPSlash ; -- paint (it) red
|
||||||
SlashV2A v ap = lin VP ( (predV2 v) ** { adj = ap.s } ) ;
|
SlashV2A v ap = lin VP ( (predV2 v) ** { adj = ap.s } ) ;
|
||||||
|
|
||||||
-- ComplSlash : VPSlash -> NP -> VP ; -- love it
|
-- ComplSlash : VPSlash -> NP -> VP ; -- love it
|
||||||
ComplSlash vp np = -- VPSlash -> NP -> VP
|
ComplSlash vp np = -- VPSlash -> NP -> VP
|
||||||
insertObj (appPrep vp.c2 np.s) vp ;
|
insertObj np vp.c vp ;
|
||||||
|
|
||||||
|
-- SlashVV : VV -> VPSlash -> VPSlash ; -- want to buy
|
||||||
-- SlashVV vv vp =
|
-- SlashVV vv vp =
|
||||||
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
|
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
|
||||||
-- {c2 = vp.c2} ;
|
-- {c2 = vp.c2} ;
|
||||||
|
|
||||||
|
-- SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
|
||||||
-- SlashV2VNP vv np vp =
|
-- SlashV2VNP vv np vp =
|
||||||
-- insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
|
-- insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
|
||||||
-- (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
|
-- (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
|
||||||
-- {c2 = vp.c2} ;
|
-- {c2 = vp.c2} ;
|
||||||
|
|
||||||
--2 Other ways of forming verb phrases
|
--2 Other ways of forming verb phrases
|
||||||
|
|
||||||
|
-- ReflVP : VPSlash -> VP ; -- love himself
|
||||||
-- ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
|
-- ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
|
||||||
|
|
||||||
-- UseComp : Comp -> VP
|
-- UseComp : Comp -> VP ; -- be warm
|
||||||
UseComp comp =
|
UseComp comp =
|
||||||
insertAdj comp.s (predV be_V) ;
|
insertAdj comp.s (predV be_V) ;
|
||||||
|
|
||||||
-- PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ;
|
-- PassV2 : V2 -> VP ; -- be loved
|
||||||
|
PassV2 v = predV (
|
||||||
|
v ** {
|
||||||
|
act = table { VAct anter tense number person =>
|
||||||
|
case anter of {
|
||||||
|
VSim => v.pass ! VPass tense number person ;
|
||||||
|
VAnt => "" --error "using participles is not implemented yet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
-- AdvVP : VP -> Adv -> VP ; -- sleep here
|
-- AdvVP : VP -> Adv -> VP ; -- sleep here
|
||||||
AdvVP vp adv = insertObj adv.s vp ;
|
AdvVP vp adv = insertAdv adv vp ;
|
||||||
|
|
||||||
-- ExtAdvVP vp adv = vp
|
-- ExtAdvVP vp adv = vp
|
||||||
|
|
||||||
-- AdVVP adv vp = insertObj adv.s vp ;
|
-- AdVVP : AdV -> VP -> VP ; -- always sleep
|
||||||
|
AdVVP adv vp = vp ** { adv = vp.adv ++ adv.s } ;
|
||||||
|
|
||||||
-- AdvVPSlash : VPSlash -> Adv -> VPSlash ; -- use (it) here
|
-- AdvVPSlash : VPSlash -> Adv -> VPSlash ; -- use (it) here
|
||||||
|
AdvVPSlash vp adv = vp ** { adv = (adv.s ! Posit) ++ vp.adv } ;
|
||||||
-- AdVVPSlash : AdV -> VPSlash -> VPSlash ; -- always use (it)
|
|
||||||
|
-- AdVVPSlash : AdV -> VPSlash -> VPSlash ; -- always use (it)
|
||||||
|
AdVVPSlash adv vp = vp ** { adv = vp.adv ++ adv.s } ;
|
||||||
|
|
||||||
-- VPSlashPrep : VP -> Prep -> VPSlash ; -- live in (it)
|
-- VPSlashPrep : VP -> Prep -> VPSlash ; -- live in (it)
|
||||||
|
|
||||||
--2 Complements to copula
|
--2 Complements to copula
|
||||||
|
|
||||||
-- CompAP : AP -> Comp
|
-- CompAP : AP -> Comp ; -- (be) small
|
||||||
CompAP ap = ap ;
|
CompAP ap = ap ;
|
||||||
|
|
||||||
|
-- CompNP : NP -> Comp ; -- (be) the man
|
||||||
|
CompNP np = {s = \\_ => let a = Ag np.g np.n Nom in np.preap.s ! a ++ np.s ! Nom ++ np.postap.s ! a } ;
|
||||||
|
|
||||||
-- CompNP np = {s = \\_ => np.s ! Acc} ;
|
-- CompAdv : Adv -> Comp ; -- (be) here
|
||||||
|
CompAdv a = {s = \\_ => a.s ! Posit } ;
|
||||||
|
|
||||||
-- CompAdv a = {s = \\_ => a.s} ;
|
-- CompCN : CN -> Comp ; -- (be) a man/men
|
||||||
|
CompCN cn = {s = table { Ag g n c => cn.preap.s ! Ag cn.g n Nom ++ cn.s ! n ! Nom ++ cn.postap.s ! Ag cn.g n Nom} };
|
||||||
|
|
||||||
-- CompCN
|
|
||||||
|
|
||||||
-- UseCopula v = v
|
-- UseCopula : VP ; -- be
|
||||||
|
UseCopula = predV be_V ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
concrete BigLat of BigLatAbs = GrammarLat, DictLat ;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
abstract BigLatAbs = Grammar, DictLatAbs ;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
concrete BigLatEng of BigLatAbs = GrammarEng, DictLatEng ;
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
import Data.Char
|
|
||||||
import Data.List
|
|
||||||
|
|
||||||
main = mkLatin
|
|
||||||
|
|
||||||
mkLatin = do
|
|
||||||
ws <- readFile "DICTPAGE.RAW" >>= return . lines
|
|
||||||
let fcs = mkDict ws
|
|
||||||
let fs = [unwords [status st ++ "fun",f,":",cat,";","--",eng] | [st, f,cat,_,eng] <- fcs]
|
|
||||||
let ls = [unwords [status st ++ "lin",f,"=",lat,";"] | [st, f,_,lat,_] <- fcs]
|
|
||||||
|
|
||||||
writeFile "DictLatAbs.gf" "abstract DictLatAbs = Cat ** {"
|
|
||||||
appendFile "DictLatAbs.gf" "\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n"
|
|
||||||
appendFile "DictLatAbs.gf" (unlines fs)
|
|
||||||
appendFile "DictLatAbs.gf" "}"
|
|
||||||
|
|
||||||
writeFile "DictLat.gf" "concrete DictLat of DictLatAbs = CatLat ** open ParadigmsLat in {"
|
|
||||||
appendFile "DictLat.gf" "\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n"
|
|
||||||
appendFile "DictLat.gf" (unlines ls)
|
|
||||||
appendFile "DictLat.gf" "}"
|
|
||||||
|
|
||||||
let es = [unwords [status st ++ "lin",f,"=",mkEng cat eng,";"] | [st, f,cat,_,eng] <- fcs]
|
|
||||||
writeFile "DictLatEng.gf" "concrete DictLatEng of DictLatAbs = CatEng ** open ParadigmsEng in {"
|
|
||||||
appendFile "DictLatEng.gf" "\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n"
|
|
||||||
appendFile "DictLatEng.gf" (unlines es)
|
|
||||||
appendFile "DictLatEng.gf" "}"
|
|
||||||
|
|
||||||
|
|
||||||
--- putStrLn $ unlines ls
|
|
||||||
|
|
||||||
mkDict :: [String] -> [[String]] -- fun, cat, lat, eng
|
|
||||||
mkDict = map mkOne . zip [10001 ..] . map cleanUp
|
|
||||||
where
|
|
||||||
cleanUp s = let (lat,eng) = break (=='[') s in
|
|
||||||
(words (filter (\c -> c==' ' || isLetter c) lat), eng)
|
|
||||||
mkOne (i,(lws,eng)) = addId i (mkLat lws) ++ [eng]
|
|
||||||
mkLat lws = case lws of
|
|
||||||
x:y:"N":_:g:_ -> f [x, "N", lin "mkN" [show x,show y, (snd (gender g))]] where f = if fst (gender g) then ok else todo
|
|
||||||
x:y:"N": g:_ -> f [x, "N", lin "mkN" [show x,show y, (snd (gender g))]] where f = if fst (gender g) then ok else todo
|
|
||||||
x:"gen":z:"ADJ":_ -> ok [x, "A", lin "mkA" [show x]]
|
|
||||||
x:y:z:"ADJ":_ -> ok [x, "A", lin "mkA" [show x]]
|
|
||||||
x:"ADV":_ -> ok [x, "Adv", lin "mkAdv" [show x]]
|
|
||||||
x:y:z:u:"V":_:"INTRANS":_ -> okv [y, "V", lin "mkV" [show y,show x,show z,show u]]
|
|
||||||
x:y:z:u:"V":_:"TRANS":_ -> okv [y, "V2", lin "mkV2" ["(" ++ lin "mkV" [show y,show x,show z,show u] ++ ")"]]
|
|
||||||
x:y:z:u:"V":_:"DEP":_ -> todo [y, "V", lin "depV" ["(" ++ lin "mkV" [show y,show x,show z,show u] ++ ")"]]
|
|
||||||
x:y:z:u:"V":_ -> okv [y, "V", lin "mkV" [show y,show x,show z,show u]]
|
|
||||||
|
|
||||||
_ -> todo ["TODO","",unwords lws]
|
|
||||||
|
|
||||||
addId i (st:f:c:rest) = st:(f ++ "_" ++ show i ++ "_" ++ c):c:rest
|
|
||||||
|
|
||||||
gender g = case g of
|
|
||||||
"M" -> (True, "masculine")
|
|
||||||
"F" -> (True, "feminine")
|
|
||||||
"N" -> (True, "neuter")
|
|
||||||
"C" -> (True, "masculine {-C-}")
|
|
||||||
_ -> (False, g ++ "{-??-}")
|
|
||||||
|
|
||||||
fun x c = x ++ "_" ++ c
|
|
||||||
lin f xs = unwords (f:xs)
|
|
||||||
todo xs = "1":xs
|
|
||||||
ok xs = "0":xs
|
|
||||||
okv r@(f:_) = if elem (take 3 (reverse f)) ["era","ere","eri"] then ok r else todo r
|
|
||||||
|
|
||||||
status st = case st of
|
|
||||||
"0" -> ""
|
|
||||||
_ -> "-- "
|
|
||||||
|
|
||||||
|
|
||||||
-- build an English version: TODO better analysis of the notation
|
|
||||||
mkEng cat eng = unwords $ intersperse "|" $ map mkOne engs
|
|
||||||
where
|
|
||||||
mkOne s = unwords ["mk" ++ cat, show s]
|
|
||||||
engs = [clean (takeWhile (flip notElem "\r,;") (drop 11 eng))] ---- TODO
|
|
||||||
clean s = case s of
|
|
||||||
'\\':r:cs -> clean cs
|
|
||||||
c:cs -> c:clean cs
|
|
||||||
_ -> s
|
|
||||||
|
|
||||||
-- [DXXFS] :: counting-board; side-board; slab table; panel; square stone on top of column;
|
|
||||||
-- [EEQEE] :: Father; (Aramaic); bishop of Syriac/Coptic church; (false read obba/decanter);
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
Aarne Ranta 2017-01-19
|
|
||||||
|
|
||||||
A script for building a Latin dictionary from William Whitaker's Words
|
|
||||||
|
|
||||||
Source: http://archives.nd.edu/whitaker/dictpage.zip
|
|
||||||
|
|
||||||
See also: https://en.wikipedia.org/wiki/William_Whitaker's_Words
|
|
||||||
|
|
||||||
License: BSD for the script. Unknown for the source, therefore not redistributed here.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
runghc MkLatin.hs
|
|
||||||
|
|
||||||
Output:
|
|
||||||
|
|
||||||
DictLatAbs.gf
|
|
||||||
DictLat.gf
|
|
||||||
|
|
||||||
Uses Herbert Lange's RGL implementation of Latin (darcs version of 2017-01-19 with ParadigmsLat.mkAdv added by AR)
|
|
||||||
|
|
||||||
Coverage of first version: 90%; 3938 missing out of 39227 entries. Marked with leading "--"
|
|
||||||
Reasons for uncovered entries
|
|
||||||
- uncommon category (e.g. structural words)
|
|
||||||
- missing case in ParadigmsLat.gf, e.g. deponent verbs
|
|
||||||
|
|
||||||
Matching for adjectives (A) uncertain, because we only use ParadigmsLat.gf.mkA : Str -> A
|
|
||||||
|
|
||||||
Verb subcat information is uncertain, too. It is based on the src's TRANS and INTRANS flags.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user