mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
copy files over from GF-latin
This commit is contained in:
@@ -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,15 @@ 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 ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,77 @@ 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 ;
|
-- TO FIX
|
||||||
ConsAdv = consrSS "et" ;
|
-- BaseS x y = { l = \\c => twoStr (x.s ! PreS) (y.s ! PreS) } ;
|
||||||
-- 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} ;
|
-- ConsS : S -> ListS -> ListS
|
||||||
BaseAP x y = lin A ( twoTable Agr x y ) ;
|
-- TO FIX
|
||||||
ConsAP xs x = lin A ( consrTable Agr and_Conj.s2 xs x );
|
-- ConsS x xs = { l = \\_ => consrSS bindComma (ss (x.s ! PreS)) (xs.l ! Comma) };
|
||||||
|
|
||||||
|
-- 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 : Str} } ; -- 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 {
|
||||||
|
}
|
||||||
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)
|
||||||
|
|||||||
196
src/latin/MissingAPILat.gf
Normal file
196
src/latin/MissingAPILat.gf
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
resource MissingAPILat = open GrammarLat, Prelude in {
|
||||||
|
|
||||||
|
-- temporary definitions to enable the compilation of RGL API
|
||||||
|
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
|
||||||
|
oper AdjOrd : Ord -> AP = notYet "AdjOrd" ;
|
||||||
|
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
|
||||||
|
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
|
||||||
|
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
|
||||||
|
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
||||||
|
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
||||||
|
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
||||||
|
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
||||||
|
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
||||||
|
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
||||||
|
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
||||||
|
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
||||||
|
oper CompAdv : Adv -> Comp = notYet "CompAdv" ;
|
||||||
|
oper ComparA : A -> NP -> AP = notYet "ComparA" ;
|
||||||
|
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
|
||||||
|
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
||||||
|
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
||||||
|
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
|
||||||
|
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
|
||||||
|
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
||||||
|
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
||||||
|
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
|
||||||
|
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
||||||
|
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
||||||
|
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 ExistIP : IP -> QCl = notYet "ExistIP" ;
|
||||||
|
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
||||||
|
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
||||||
|
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
||||||
|
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
|
||||||
|
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
||||||
|
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 ImpVP : VP -> Imp = notYet "ImpVP" ;
|
||||||
|
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
||||||
|
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
|
||||||
|
oper OrdSuperl : A -> Ord = notYet "OrdSuperl" ;
|
||||||
|
oper PassV2 : V2 -> VP = notYet "PassV2" ;
|
||||||
|
oper PositAdvAdj : A -> Adv = notYet "PositAdvAdj" ;
|
||||||
|
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 PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
||||||
|
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
||||||
|
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
||||||
|
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
|
||||||
|
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 ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
||||||
|
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
||||||
|
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
||||||
|
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
||||||
|
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
|
||||||
|
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
|
||||||
|
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
|
||||||
|
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
|
||||||
|
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
||||||
|
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
|
||||||
|
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 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 UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
|
||||||
|
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
|
||||||
|
oper AddAdvQVP : QVP -> IAdv -> QVP = notYet "AddAdvQVP" ;
|
||||||
|
oper AdjDAP : DAP -> AP -> DAP = notYet "AdjDAP" ;
|
||||||
|
oper AdjOrd : Ord -> AP = notYet "AdjOrd" ;
|
||||||
|
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
|
||||||
|
oper AdNum : AdN -> Card -> Card = notYet "AdNum" ;
|
||||||
|
oper AdvAP : AP -> Adv -> AP = notYet "AdvAP" ;
|
||||||
|
oper AdvCN : CN -> Adv -> CN = notYet "AdvCN" ;
|
||||||
|
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
||||||
|
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
||||||
|
oper AdvQVP : VP -> IAdv -> QVP = notYet "AdvQVP" ;
|
||||||
|
oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
||||||
|
oper AdvVPSlash : VPSlash -> Adv -> VPSlash = notYet "AdvVPSlash" ;
|
||||||
|
oper AdVVPSlash : AdV -> VPSlash -> VPSlash = notYet "AdVVPSlash" ;
|
||||||
|
oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ;
|
||||||
|
oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ;
|
||||||
|
oper BaseDAP : DAP -> DAP -> ListDAP = notYet "BaseDAP" ;
|
||||||
|
oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ;
|
||||||
|
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
||||||
|
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
||||||
|
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
||||||
|
oper CompAdv : Adv -> Comp = notYet "CompAdv" ;
|
||||||
|
oper ComparA : A -> NP -> AP = notYet "ComparA" ;
|
||||||
|
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
|
||||||
|
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
||||||
|
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
||||||
|
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
|
||||||
|
oper ComplN2 : N2 -> NP -> CN = notYet "ComplN2" ;
|
||||||
|
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
||||||
|
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
||||||
|
oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ;
|
||||||
|
oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ;
|
||||||
|
oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ;
|
||||||
|
oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ;
|
||||||
|
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 ExtAdvNP : NP -> Adv -> NP = notYet "ExtAdvNP" ;
|
||||||
|
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 PassV2 : V2 -> VP = notYet "PassV2" ;
|
||||||
|
oper PositAdAAdj : A -> AdA = notYet "PositAdAAdj" ;
|
||||||
|
oper PositAdvAdj : A -> Adv = notYet "PositAdvAdj" ;
|
||||||
|
oper PossNP : CN -> NP -> CN = notYet "PossNP" ;
|
||||||
|
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 PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
||||||
|
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 ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
||||||
|
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
||||||
|
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
||||||
|
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
|
||||||
|
oper RelS : S -> RS -> S = notYet "RelS" ;
|
||||||
|
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
|
||||||
|
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
||||||
|
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
|
||||||
|
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 UseComparA : A -> AP = notYet "UseComparA" ;
|
||||||
|
oper UseCopula : VP = notYet "UseCopula" ;
|
||||||
|
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" ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,142 +1 @@
|
|||||||
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 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 AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
|
||||||
oper AdvIP : IP -> Adv -> IP = notYet "AdvIP" ;
|
|
||||||
oper AdvS : Adv -> S -> S = notYet "AdvS" ;
|
|
||||||
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 BaseS : S -> S -> ListS = notYet "BaseS" ;
|
|
||||||
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
|
||||||
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
|
||||||
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 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 ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
|
||||||
oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ;
|
|
||||||
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
|
||||||
oper ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ;
|
|
||||||
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
|
||||||
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
|
||||||
oper DetNP : Det -> NP = notYet "DetNP" ;
|
|
||||||
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 ExistIP : IP -> QCl = notYet "ExistIP" ;
|
|
||||||
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
|
||||||
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
|
||||||
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
|
||||||
oper IdRP : RP = notYet "IdRP" ;
|
|
||||||
oper IdetCN : IDet -> CN -> IP = notYet "IdetCN" ;
|
|
||||||
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
|
||||||
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
|
|
||||||
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
|
|
||||||
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 NumNumeral : Numeral -> Card = notYet "NumNumeral" ;
|
|
||||||
oper OrdDigits : Digits -> Ord = notYet "OrdDigits" ;
|
|
||||||
oper OrdNumeral : Numeral -> Ord = notYet "OrdNumeral" ;
|
|
||||||
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 PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
|
||||||
oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
|
||||||
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
|
||||||
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
|
|
||||||
oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
|
||||||
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
|
||||||
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
|
||||||
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
|
||||||
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
|
|
||||||
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
|
|
||||||
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
|
|
||||||
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
|
|
||||||
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
|
||||||
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
|
|
||||||
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 Use2N3 : N3 -> N2 = notYet "Use2N3" ;
|
|
||||||
oper UseComparA : A -> AP = notYet "UseComparA" ;
|
|
||||||
oper UseRCl : Temp -> Pol -> RCl -> RS = notYet "UseRCl" ;
|
|
||||||
oper UseSlash : Temp -> Pol -> ClSlash -> SSlash = notYet "UseSlash" ;
|
|
||||||
oper UttAP : AP -> Utt = notYet "UttAP" ;
|
|
||||||
oper UttAdv : Adv -> Utt = notYet "UttAdv" ;
|
|
||||||
oper UttCN : CN -> Utt = notYet "UttCN" ;
|
|
||||||
oper UttCard : Card -> Utt = notYet "UttCard" ;
|
|
||||||
oper UttIAdv : IAdv -> Utt = notYet "UttIAdv" ;
|
|
||||||
oper UttIP : IP -> Utt = notYet "UttIP" ;
|
|
||||||
oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ;
|
|
||||||
oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ;
|
|
||||||
oper UttImpSg : Pol -> Imp -> Utt = notYet "UttImpSg" ;
|
|
||||||
oper UttNP : NP -> Utt = notYet "UttNP" ;
|
|
||||||
oper UttVP : VP -> Utt = notYet "UttVP" ;
|
|
||||||
oper n2 : Digit = notYet "n2" ;
|
|
||||||
oper n3 : Digit = notYet "n3" ;
|
|
||||||
oper n4 : Digit = notYet "n4" ;
|
|
||||||
oper n5 : Digit = notYet "n5" ;
|
|
||||||
oper n6 : Digit = notYet "n6" ;
|
|
||||||
oper n7 : Digit = notYet "n7" ;
|
|
||||||
oper n8 : Digit = notYet "n8" ;
|
|
||||||
oper n9 : Digit = notYet "n9" ;
|
|
||||||
oper num : Sub1000000 -> Numeral = notYet "num" ;
|
|
||||||
oper pot0 : Digit -> Sub10 = notYet "pot0" ;
|
|
||||||
oper pot01 : Sub10 = notYet "pot01" ;
|
|
||||||
oper pot0as1 : Sub10 -> Sub100 = notYet "pot0as1" ;
|
|
||||||
oper pot1 : Digit -> Sub100 = notYet "pot1" ;
|
|
||||||
oper pot110 : Sub100 = notYet "pot110" ;
|
|
||||||
oper pot111 : Sub100 = notYet "pot111" ;
|
|
||||||
oper pot1as2 : Sub100 -> Sub1000 = notYet "pot1as2" ;
|
|
||||||
oper pot1plus : Digit -> Sub10 -> Sub100 = notYet "pot1plus" ;
|
|
||||||
oper pot1to19 : Digit -> Sub100 = notYet "pot1to19" ;
|
|
||||||
oper pot2 : Sub10 -> Sub1000 = notYet "pot2" ;
|
|
||||||
oper pot2as3 : Sub1000 -> Sub1000000 = notYet "pot2as3" ;
|
|
||||||
oper pot2plus : Sub10 -> Sub100 -> Sub1000 = notYet "pot2plus" ;
|
|
||||||
oper pot3 : Sub1000 -> Sub1000000 = notYet "pot3" ;
|
|
||||||
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{-
|
|
||||||
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 = ss "" ; 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 ;
|
||||||
}
|
}
|
||||||
|
|||||||
8
src/latin/api/CombinatorsLat.gf
Normal file
8
src/latin/api/CombinatorsLat.gf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
--# -path=.:alltenses:prelude:..
|
||||||
|
|
||||||
|
resource CombinatorsLat = Combinators - [ appCN, appCNc ] with
|
||||||
|
(Cat = CatLat),
|
||||||
|
(Structural = StructuralLat),
|
||||||
|
(Noun = NounLat),
|
||||||
|
(Constructors = ConstructorsLat) **
|
||||||
|
{}
|
||||||
4
src/latin/api/ConstructorsLat.gf
Normal file
4
src/latin/api/ConstructorsLat.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:alltenses:prelude:..
|
||||||
|
|
||||||
|
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
|
||||||
|
open MissingAPILat in {}
|
||||||
4
src/latin/api/ConstructorsLat.gf~
Normal file
4
src/latin/api/ConstructorsLat.gf~
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:alltenses:prelude:..
|
||||||
|
|
||||||
|
resource ConstructorsLat = Constructors with (Grammar = GrammarLat) **
|
||||||
|
open MissingLat in {}
|
||||||
91
src/latin/api/Symbolic.gf
Normal file
91
src/latin/api/Symbolic.gf
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
--1 Symbolic: Noun Phrases with mathematical symbols
|
||||||
|
|
||||||
|
incomplete resource Symbolic = open Symbol, Grammar, PredefCnc in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
symb : overload {
|
||||||
|
symb : Symb -> NP ; -- x
|
||||||
|
symb : Str -> NP ; -- x
|
||||||
|
symb : Int -> NP ; -- 23
|
||||||
|
symb : Float -> NP ; -- 0.99
|
||||||
|
symb : N -> Digits -> NP ; -- level 4
|
||||||
|
symb : N -> Card -> NP ; -- level at least four
|
||||||
|
symb : CN -> Card -> NP ; -- advanced level at least four
|
||||||
|
symb : Det -> N -> Card -> NP ; -- the number at least four
|
||||||
|
symb : Det -> CN -> Card -> NP ; -- the even number at least four
|
||||||
|
symb : N -> Numeral -> NP ; -- level four
|
||||||
|
symb : CN -> Numeral -> NP ; -- advanced level four
|
||||||
|
symb : Det -> N -> Numeral -> NP ; -- the largest number four
|
||||||
|
symb : Det -> CN -> Numeral -> NP ; -- the largest even number four
|
||||||
|
symb : Det -> N -> Str -> Str -> NP ; -- the largest levels i and j
|
||||||
|
symb : Det -> CN -> [Symb] -> NP ; -- the largest basic levels i, j, and k
|
||||||
|
symb : Quant -> N -> Numeral -> NP ; -- the number four
|
||||||
|
symb : Quant -> CN -> Numeral -> NP ; -- the even number four
|
||||||
|
symb : Quant -> N -> Str -> Str -> NP ; -- the levels i and j
|
||||||
|
symb : Quant -> CN -> [Symb] -> NP ; -- the basic levels i, j, and k
|
||||||
|
symb : Symb -> S ; -- A
|
||||||
|
symb : Symb -> Card ; -- n
|
||||||
|
symb : Symb -> Ord -- n'th
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkSymb : Str -> Symb ;
|
||||||
|
mkInteger : Predef.Int -> Integer ;
|
||||||
|
mkFloating : Predef.Float -> Floating ;
|
||||||
|
|
||||||
|
Symb : Type
|
||||||
|
= Symbol.Symb ;
|
||||||
|
--.
|
||||||
|
|
||||||
|
symb = overload {
|
||||||
|
symb : Symb -> NP
|
||||||
|
= \s -> UsePN (SymbPN s) ;
|
||||||
|
symb : Str -> NP
|
||||||
|
= \s -> UsePN (SymbPN (mkSymb s)) ;
|
||||||
|
symb : Int -> NP
|
||||||
|
= \i -> UsePN (IntPN i) ;
|
||||||
|
symb : Float -> NP
|
||||||
|
= \i -> UsePN (FloatPN i) ;
|
||||||
|
symb : N -> Digits -> NP
|
||||||
|
= \c,i -> CNNumNP (UseN c) (NumDigits i) ;
|
||||||
|
symb : N -> Card -> NP
|
||||||
|
= \c,n -> CNNumNP (UseN c) n ;
|
||||||
|
symb : CN -> Card -> NP
|
||||||
|
= \c,n -> CNNumNP c n ;
|
||||||
|
symb : Det -> N -> Card -> NP
|
||||||
|
= \d,n,x -> DetCN d (ApposCN (UseN n) (UsePN (NumPN x))) ;
|
||||||
|
symb : Det -> CN -> Card -> NP
|
||||||
|
= \d,n,x -> DetCN d (ApposCN n (UsePN (NumPN x))) ;
|
||||||
|
symb : N -> Numeral -> NP
|
||||||
|
= \c,n -> CNNumNP (UseN c) (NumNumeral n) ;
|
||||||
|
symb : CN -> Numeral -> NP
|
||||||
|
= \c,n -> CNNumNP c (NumNumeral n) ;
|
||||||
|
symb : Det -> N -> Numeral -> NP
|
||||||
|
= \d,n,x -> DetCN d (ApposCN (UseN n) (UsePN (NumPN (NumNumeral x)))) ;
|
||||||
|
symb : Det -> CN -> Numeral -> NP
|
||||||
|
= \d,n,x -> DetCN d (ApposCN n (UsePN (NumPN (NumNumeral x)))) ;
|
||||||
|
symb : Det -> N -> Str -> Str -> NP
|
||||||
|
= \c,n,x,y -> CNSymbNP c (UseN n) (BaseSymb (mkSymb x) (mkSymb y)) ;
|
||||||
|
symb : Det -> CN -> [Symb] -> NP
|
||||||
|
= CNSymbNP ;
|
||||||
|
symb : Quant -> N -> Numeral -> NP
|
||||||
|
= \d,n,x -> DetCN (DetQuant d NumSg) (ApposCN (UseN n) (UsePN (NumPN (NumNumeral x)))) ;
|
||||||
|
symb : Quant -> CN -> Numeral -> NP
|
||||||
|
= \d,n,x -> DetCN (DetQuant d NumSg) (ApposCN n (UsePN (NumPN (NumNumeral x)))) ;
|
||||||
|
symb : Quant -> N -> Str -> Str -> NP
|
||||||
|
= \d,n,x,y -> CNSymbNP (DetQuant d NumSg) (UseN n) (BaseSymb (mkSymb x) (mkSymb y)) ;
|
||||||
|
symb : Quant -> CN -> [Symb] -> NP
|
||||||
|
= \d -> CNSymbNP (DetQuant d NumSg);
|
||||||
|
symb : Symb -> S = SymbS ;
|
||||||
|
symb : Symb -> Card = SymbNum ;
|
||||||
|
symb : Symb -> Ord = SymbOrd
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkSymb : Str -> Symb = \s -> {s = s ; lock_Symb = <>} ;
|
||||||
|
|
||||||
|
mkInteger i = {s = Predef.show Predef.Int i ; lock_Int = <>} ;
|
||||||
|
mkFloating f = {s = Predef.show Predef.Float f ; lock_Float = <>} ;
|
||||||
|
|
||||||
|
Integer : Type = {s : Str ; lock_Int : {}} ;
|
||||||
|
Floating : Type = {s : Str ; lock_Float : {}} ;
|
||||||
|
|
||||||
|
}
|
||||||
5
src/latin/api/SymbolicLat.gf
Normal file
5
src/latin/api/SymbolicLat.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:../icelandic:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicLat = Symbolic with
|
||||||
|
(Symbol = SymbolLat),
|
||||||
|
(Grammar = GrammarLat) ;
|
||||||
5
src/latin/api/SyntaxLat.gf
Normal file
5
src/latin/api/SyntaxLat.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:alltenses:prelude:..
|
||||||
|
|
||||||
|
instance SyntaxLat of Syntax =
|
||||||
|
ConstructorsLat, CatLat, StructuralLat, CombinatorsLat ;
|
||||||
|
|
||||||
4
src/latin/api/TryLat.gf
Normal file
4
src/latin/api/TryLat.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:..:prelude
|
||||||
|
|
||||||
|
resource TryLat = SyntaxLat, ExtraLat, LexiconLat, ParadigmsLat -
|
||||||
|
[mkAdv,mkAdN,mkOrd,mkNum];
|
||||||
10
src/latin/api/mkMissing.hs
Normal file
10
src/latin/api/mkMissing.hs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import PGF
|
||||||
|
import System.Environment
|
||||||
|
|
||||||
|
main =
|
||||||
|
do
|
||||||
|
args <- getArgs -- first one should be pgf file and second one should be the file containing the errors/warnings about missing things
|
||||||
|
pgf <- PGF.readPGF (args !! 0) -- "tmp/Lang.pgf"
|
||||||
|
ms <- readFile (args !! 1) {- "tmp/MissingLat.tmp" -} >>= return . map (last . words) . lines
|
||||||
|
let ts = [PGF.showType [] t | m <- ms, Just t <- [PGF.functionType pgf (PGF.mkCId m)]]
|
||||||
|
putStrLn $ unlines ["oper " ++ f ++ " : " ++ t ++ " = notYet \"" ++ f ++ "\" ;" | (f,t) <- zip ms ts]
|
||||||
18
src/latin/api/mkMissing.sh
Executable file
18
src/latin/api/mkMissing.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "Create tmp dir"
|
||||||
|
mkdir tmp/
|
||||||
|
echo "Remove old file"
|
||||||
|
echo "resource MissingAPILat = {} " > ../MissingAPILat.gf
|
||||||
|
echo "Look for missing functions"
|
||||||
|
# gf -src -i .. -batch TryLat.gf 2>&1 | grep "Warning: no linearization of" | sort -u > tmp/MissingLat.tmp
|
||||||
|
gf -src -i .. -batch TryLat.gf 2>&1 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" | grep -E "constant not found|no linearization of" | sort -u > tmp/MissingLat.tmp
|
||||||
|
echo "Compile grammar"
|
||||||
|
gf -src -make -i .. -D tmp ../LangLat.gf &> /dev/null
|
||||||
|
echo "Create placeholders for missing functions"
|
||||||
|
echo "resource MissingAPILat = open GrammarLat, Prelude in {" > ../MissingAPILat.gf
|
||||||
|
echo "" >> ../MissingAPILat.gf
|
||||||
|
echo "-- temporary definitions to enable the compilation of RGL API" >> ../MissingAPILat.gf
|
||||||
|
runghc mkMissing.hs "tmp/Lang.pgf" "tmp/MissingLat.tmp">> ../MissingAPILat.gf
|
||||||
|
echo "}" >> ../MissingAPILat.gf
|
||||||
|
echo "Cleanup"
|
||||||
|
rm -Rf tmp
|
||||||
39225
src/latin/dict/DICTPAGE.RAW
Normal file
39225
src/latin/dict/DICTPAGE.RAW
Normal file
File diff suppressed because it is too large
Load Diff
39225
src/latin/dict/DICTPAGE.RAW.2
Normal file
39225
src/latin/dict/DICTPAGE.RAW.2
Normal file
File diff suppressed because it is too large
Load Diff
39225
src/latin/dict/DICTPAGE.RAW~
Normal file
39225
src/latin/dict/DICTPAGE.RAW~
Normal file
File diff suppressed because it is too large
Load Diff
34819
src/latin/dict/DictLat.gf
Normal file
34819
src/latin/dict/DictLat.gf
Normal file
File diff suppressed because it is too large
Load Diff
37214
src/latin/dict/DictLatAbs.gf
Normal file
37214
src/latin/dict/DictLatAbs.gf
Normal file
File diff suppressed because it is too large
Load Diff
1
src/latin/dict/FullLex.gf
Normal file
1
src/latin/dict/FullLex.gf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
concrete FullLex of FullLexAbs = LexiconLat, DictLat-[do_V2];
|
||||||
1
src/latin/dict/FullLex.gf~
Normal file
1
src/latin/dict/FullLex.gf~
Normal file
@@ -0,0 +1 @@
|
|||||||
|
concrete FullLex of FullLexAbs = LexiconLat, DictLat-do_V2;
|
||||||
1
src/latin/dict/FullLexAbs.gf
Normal file
1
src/latin/dict/FullLexAbs.gf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
abstract FullLexAbs = Lexicon, DictLatAbs-[do_V2,leg_N,man_N] ;
|
||||||
1
src/latin/dict/FullLexAbs.gf~
Normal file
1
src/latin/dict/FullLexAbs.gf~
Normal file
@@ -0,0 +1 @@
|
|||||||
|
abstract FullLexAbs = Lexicon, DictLatAbs-[do_V2,leg_N] ;
|
||||||
342
src/latin/dict/Parsetest.hs
Normal file
342
src/latin/dict/Parsetest.hs
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
|
import Text.Parsec
|
||||||
|
import Text.Parsec.Error
|
||||||
|
import Data.Char
|
||||||
|
import Data.Maybe
|
||||||
|
import System.IO
|
||||||
|
import Data.List
|
||||||
|
import Debug.Trace
|
||||||
|
data Case = Nom | Gen | Dat | Acc | Abl deriving Show
|
||||||
|
data Gender = Masc | Fem | Neuter | Common | Unknown
|
||||||
|
data Cat = N | V | A | Adv | Interj | Prep | Num | Conj | Pron deriving Show;
|
||||||
|
data VerbKind = Trans | Intrans | Deponens | SemiDeponens | Impersonal deriving Show
|
||||||
|
data Comparison = Positive | Comparative | Superlative | PosComp | CompSuper | PosCompSuper | Undeclined deriving Show;
|
||||||
|
data DictEntry = Entry { cat :: Cat , forms :: [String] , other :: OtherInfos , comment :: String } | EmptyEntry deriving Show;
|
||||||
|
data OtherInfos = Noun { iclass :: Maybe Int , gen :: Gender } | Adjective { iclass :: Maybe Int , comp :: Comparison } | Verb { iclass :: Maybe Int , kind :: VerbKind } | Preposition { c :: Case } | NoInfos deriving Show;
|
||||||
|
|
||||||
|
instance Show Gender where
|
||||||
|
show Masc = "masculine"
|
||||||
|
show Fem = "feminine"
|
||||||
|
show Neuter = "neuter"
|
||||||
|
show Common = "(feminine | masculine)"
|
||||||
|
show Unknown = ""
|
||||||
|
|
||||||
|
hash :: Stream s m Char => ParsecT s u m Char
|
||||||
|
hash = char '#'
|
||||||
|
|
||||||
|
wordForm :: Stream s m Char => ParsecT s u m String
|
||||||
|
wordForm =
|
||||||
|
let
|
||||||
|
esse :: Stream s m Char => ParsecT s u m String
|
||||||
|
esse =
|
||||||
|
string "sum" <|> string "est"
|
||||||
|
suffix :: Stream s m Char => ParsecT s u m String
|
||||||
|
suffix =
|
||||||
|
do
|
||||||
|
d <- char '-'
|
||||||
|
sfx <- many letter
|
||||||
|
spcs <- many space
|
||||||
|
return $ d : sfx ++ spcs
|
||||||
|
genitive :: Stream s m Char => ParsecT s u m String
|
||||||
|
genitive =
|
||||||
|
do
|
||||||
|
p1 <- string "(gen"
|
||||||
|
p2 <- many (noneOf ")")
|
||||||
|
p3 <- string ")"
|
||||||
|
return $ p1 ++ p2 ++ p3
|
||||||
|
in
|
||||||
|
do
|
||||||
|
w0 <- optionMaybe (char '-' <|> letter)
|
||||||
|
ws <- if isJust w0 then many (letter <|> oneOf "()/") else return ""
|
||||||
|
s1 <- many space
|
||||||
|
s <- option [] $ try $ esse
|
||||||
|
s2 <- many space
|
||||||
|
g <- option [] $ try genitive
|
||||||
|
s3 <- many space
|
||||||
|
sfs <- option [] $ try (many suffix)
|
||||||
|
return $ maybe ws (:ws) w0 ++ s1 ++ s ++ s2 ++ g ++ s3 ++ concat sfs
|
||||||
|
|
||||||
|
wordForms :: Stream s m Char => ParsecT s u m [String]
|
||||||
|
wordForms =
|
||||||
|
do
|
||||||
|
wf <- wordForm;
|
||||||
|
wfs <- many (do
|
||||||
|
_ <- char ','
|
||||||
|
skipMany space
|
||||||
|
wordForm
|
||||||
|
)
|
||||||
|
return (wf:wfs)
|
||||||
|
|
||||||
|
gender :: Stream s m Char => ParsecT s u m Gender
|
||||||
|
gender =
|
||||||
|
do
|
||||||
|
skipMany space
|
||||||
|
c <- upper
|
||||||
|
case c of {
|
||||||
|
'N' -> return Neuter ;
|
||||||
|
'M' -> return Masc ;
|
||||||
|
'F' -> return Fem ;
|
||||||
|
'C' -> return Common; -- Feminine and/or masculine
|
||||||
|
'X' -> return Unknown;
|
||||||
|
_ -> unexpected ("unhandled gender " ++ [c])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inflection :: Stream s m Char => ParsecT s u m (Maybe Int)
|
||||||
|
inflection =
|
||||||
|
do
|
||||||
|
_ <- char '(';
|
||||||
|
i <- digit ;
|
||||||
|
_ <- string "st" <|> string "nd" <|> string "rd" <|> string "th" ;
|
||||||
|
_ <- char ')';
|
||||||
|
return $ Just $ digitToInt i
|
||||||
|
|
||||||
|
verbkind :: Stream s m Char => ParsecT s u m VerbKind
|
||||||
|
verbkind =
|
||||||
|
do
|
||||||
|
s <- many upper
|
||||||
|
case s of {
|
||||||
|
"INTRANS" -> return Intrans;
|
||||||
|
"TRANS" -> return Trans;
|
||||||
|
"DEP" -> return Deponens;
|
||||||
|
"SEMIDEP" -> return SemiDeponens;
|
||||||
|
"IMPERS" -> return Impersonal;
|
||||||
|
_ -> unexpected s -- Probably just return intrans?
|
||||||
|
}
|
||||||
|
|
||||||
|
cases :: Stream s m Char => ParsecT s u m Case
|
||||||
|
cases =
|
||||||
|
do
|
||||||
|
s <- many upper
|
||||||
|
case s of {
|
||||||
|
"ACC" -> return Acc;
|
||||||
|
"ABL" -> return Abl;
|
||||||
|
_ -> unexpected s
|
||||||
|
}
|
||||||
|
|
||||||
|
rest :: Stream s m Char => ParsecT s u m String
|
||||||
|
rest =
|
||||||
|
do
|
||||||
|
c0 <- char '['
|
||||||
|
cs <- many anyChar
|
||||||
|
return (c0:cs)
|
||||||
|
|
||||||
|
noun :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
noun =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- char 'N'
|
||||||
|
skipMany space
|
||||||
|
i <- option Nothing inflection
|
||||||
|
g <- gender
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry N wfs (Noun i g) c
|
||||||
|
|
||||||
|
verb :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
verb =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "V"
|
||||||
|
skipMany space
|
||||||
|
i <- option Nothing inflection
|
||||||
|
skipMany space
|
||||||
|
k <- option Intrans verbkind
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry V wfs (Verb i k) c
|
||||||
|
|
||||||
|
adjective :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
adjective =
|
||||||
|
let
|
||||||
|
dropLast :: Int -> String -> String
|
||||||
|
dropLast i s = take (length s - i) s
|
||||||
|
fixStuff :: [String] -> ([String],OtherInfos)
|
||||||
|
fixStuff wfs@[f1,f2]
|
||||||
|
| isSuffixOf "or -or -us" f1 && isSuffixOf "us -a -um" f2 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 10 f1
|
||||||
|
stem2 = dropLast 9 f2
|
||||||
|
in
|
||||||
|
([stem1 ++ "or", stem1 ++ "or", stem1 ++ "us", stem2 ++ "us", stem2 ++ "a", stem2 ++ "um"],
|
||||||
|
Adjective (Just 3) CompSuper)
|
||||||
|
| f2 == "undeclined" = (wfs, Adjective (Just (-1)) Undeclined)
|
||||||
|
fixStuff wfs@[f1,f2,f3]
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a" f2 && isSuffixOf "um" f3 = (wfs, Adjective (Just 1) Positive)
|
||||||
|
| isSuffixOf "r" f1 && isSuffixOf "ra" f2 && isSuffixOf "rum" f3 = (wfs, Adjective (Just 1) Positive)
|
||||||
|
| isSuffixOf "is" f1 && isSuffixOf "is" f2 && isSuffixOf "e" f3 = ([f1,f3], Adjective (Just 3) Positive)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "is" f2 && isSuffixOf "e" f3 = (wfs, Adjective (Just 3) Positive)
|
||||||
|
| isSuffixOf "os" f1 && isSuffixOf "os" f2 && isSuffixOf "on" f3 = (wfs, Adjective (Just (-1)) Positive) -- Greek stuff
|
||||||
|
| isSuffixOf "os" f1 && isSuffixOf "a" f2 && isSuffixOf "on" f3 = (wfs, Adjective (Just (-1)) Positive) -- Green stuff
|
||||||
|
| f2 == "(gen.)" = ([f1,f3], Adjective (Just 3) Positive)
|
||||||
|
-- acer, acris -e, acrior -or -us, acerrimus -a -um ADJ
|
||||||
|
-- abjectus, abjecta -um, abjectior -or -us, abjectissimus -a -um
|
||||||
|
fixStuff wfs@[f1,f2,f3,f4]
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -um" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 2 f1
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "um",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 2 f1
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "ns" f1 && isSuffixOf "ntis (gen.)" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 11 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "ntis",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 3) PosCompSuper)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "is -e" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 5 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "is", stem1 ++ "e",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 3) PosCompSuper)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 5 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "is" f1 && isSuffixOf "e" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, f2,
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
fixStuff wfs = trace ("ERROR: " ++ show wfs) (wfs,NoInfos)
|
||||||
|
in
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "ADJ"
|
||||||
|
-- Set additional infos/normalize foobar
|
||||||
|
-- i <- return Nothing
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
let (nwfs,ninfos) = fixStuff $ map skipSpaces wfs -- (Adjective i)
|
||||||
|
return $ Entry A nwfs ninfos c
|
||||||
|
|
||||||
|
adverb :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
adverb =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "ADV"
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry Adv wfs NoInfos c
|
||||||
|
|
||||||
|
interjection :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
interjection =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "INTERJ"
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry Interj wfs NoInfos c
|
||||||
|
|
||||||
|
preposition :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
preposition =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "PREP"
|
||||||
|
skipMany space
|
||||||
|
c <- cases
|
||||||
|
skipMany space
|
||||||
|
cc <- rest
|
||||||
|
return $ Entry Prep wfs (Preposition c) cc
|
||||||
|
|
||||||
|
wrongLine :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
wrongLine =
|
||||||
|
do
|
||||||
|
line <- many1 $ noneOf "["
|
||||||
|
unexpected $ "Unexpected line " ++ line
|
||||||
|
|
||||||
|
lineParser :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
lineParser =
|
||||||
|
do
|
||||||
|
_ <- hash
|
||||||
|
(try noun <|> try verb <|> try adjective <|> try adverb <|> try interjection <|> try preposition) <|> wrongLine
|
||||||
|
|
||||||
|
skipSpaces :: String -> String
|
||||||
|
skipSpaces = dropWhileEnd isSpace --filter (/= ' ')
|
||||||
|
|
||||||
|
write :: FilePath -> FilePath -> [(Int,DictEntry)] -> IO ()
|
||||||
|
write abs conc es =
|
||||||
|
let
|
||||||
|
join :: String -> [String] -> String
|
||||||
|
join g l = foldl (\f s -> f ++ g ++ s ) (head l) (tail l)
|
||||||
|
writeEntry :: Handle -> Handle -> [(Int,DictEntry)] -> IO ()
|
||||||
|
writeEntry habs hconc [] =
|
||||||
|
do
|
||||||
|
hPutStrLn habs "}"
|
||||||
|
hClose habs
|
||||||
|
hPutStrLn hconc "}"
|
||||||
|
hClose hconc
|
||||||
|
writeEntry habs hconc (e@(i,Entry cat forms _ _):es) =
|
||||||
|
do
|
||||||
|
let lemma = skipSpaces $ head forms
|
||||||
|
hPutStrLn habs $ " " ++ lemma ++ "_" ++ show i ++ "_" ++ show cat ++ " : " ++ show cat ++ ";";
|
||||||
|
case e of {
|
||||||
|
(i,Entry N wfs (Noun (Just 1) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ head wfs ++ "\"; -- 1st " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry N wfs (Noun (Just 2) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ head wfs ++ "\"; -- 2nd " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry N wfs (Noun (Just 3) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ (join "\" \"" $ map skipSpaces wfs) ++ "\" " ++ show gender ++ "; -- 3rd " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry A wfs (Adjective (Just 1) comp@Positive) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkA \"" ++ head wfs ++ "\"; -- 1st " ++ show comp ++ " " ++ c;
|
||||||
|
_ -> return () -- print e
|
||||||
|
|
||||||
|
}
|
||||||
|
writeEntry habs hconc es
|
||||||
|
in
|
||||||
|
do
|
||||||
|
habs <- openFile abs WriteMode
|
||||||
|
hconc <- openFile conc WriteMode
|
||||||
|
hPutStrLn habs "abstract DictLatAbs = Cat ** {"
|
||||||
|
hPutStrLn habs "\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm"
|
||||||
|
hPutStrLn habs "fun"
|
||||||
|
hPutStrLn hconc "concrete DictLat of DictLatAbs = CatLat ** open ParadigmsLat in {"
|
||||||
|
hPutStrLn hconc "-- extracted from http://archives.nd.edu/whitaker/dictpage.htm"
|
||||||
|
hPutStrLn hconc "lin"
|
||||||
|
writeEntry habs hconc es
|
||||||
|
|
||||||
|
main =
|
||||||
|
let
|
||||||
|
p :: String -> IO (Maybe DictEntry)
|
||||||
|
p l =
|
||||||
|
case parse lineParser "dict" l of {
|
||||||
|
Left err -> do
|
||||||
|
{ putStrLn $ drop 1 (showErrorMessages "or" "unknown parse error" "expecting" "unexpected" "end of input" $ errorMessages err) ;
|
||||||
|
return Nothing
|
||||||
|
} ;
|
||||||
|
Right e -> return $ Just e
|
||||||
|
}
|
||||||
|
in
|
||||||
|
do
|
||||||
|
ws <- fmap lines (readFile "DICTPAGE.RAW")
|
||||||
|
es <- zip [1..] . catMaybes <$> mapM p ws
|
||||||
|
write "DictLatAbs.gf" "DictLat.gf" es
|
||||||
342
src/latin/dict/Parsetest.hs~
Normal file
342
src/latin/dict/Parsetest.hs~
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
|
import Text.Parsec
|
||||||
|
import Text.Parsec.Error
|
||||||
|
import Data.Char
|
||||||
|
import Data.Maybe
|
||||||
|
import System.IO
|
||||||
|
import Data.List
|
||||||
|
import Debug.Trace
|
||||||
|
data Case = Nom | Gen | Dat | Acc | Abl deriving Show
|
||||||
|
data Gender = Masc | Fem | Neuter | Common | Unknown
|
||||||
|
data Cat = N | V | A | Adv | Interj | Prep | Num | Conj | Pron deriving Show;
|
||||||
|
data VerbKind = Trans | Intrans | Deponens | SemiDeponens | Impersonal deriving Show
|
||||||
|
data Comparison = Positive | Comparative | Superlative | PosComp | CompSuper | PosCompSuper | Undeclined deriving Show;
|
||||||
|
data DictEntry = Entry { cat :: Cat , forms :: [String] , other :: OtherInfos , comment :: String } | EmptyEntry deriving Show;
|
||||||
|
data OtherInfos = Noun { iclass :: Maybe Int , gen :: Gender } | Adjective { iclass :: Maybe Int , comp :: Comparison } | Verb { iclass :: Maybe Int , kind :: VerbKind } | Preposition { c :: Case } | NoInfos deriving Show;
|
||||||
|
|
||||||
|
instance Show Gender where
|
||||||
|
show Masc = "masculine"
|
||||||
|
show Fem = "feminine"
|
||||||
|
show Neuter = "neuter"
|
||||||
|
show Common = "(feminine | masculine)"
|
||||||
|
show Unknown = ""
|
||||||
|
|
||||||
|
hash :: Stream s m Char => ParsecT s u m Char
|
||||||
|
hash = char '#'
|
||||||
|
|
||||||
|
wordForm :: Stream s m Char => ParsecT s u m String
|
||||||
|
wordForm =
|
||||||
|
let
|
||||||
|
esse :: Stream s m Char => ParsecT s u m String
|
||||||
|
esse =
|
||||||
|
string "sum" <|> string "est"
|
||||||
|
suffix :: Stream s m Char => ParsecT s u m String
|
||||||
|
suffix =
|
||||||
|
do
|
||||||
|
d <- char '-'
|
||||||
|
sfx <- many letter
|
||||||
|
spcs <- many space
|
||||||
|
return $ d : sfx ++ spcs
|
||||||
|
genitive :: Stream s m Char => ParsecT s u m String
|
||||||
|
genitive =
|
||||||
|
do
|
||||||
|
p1 <- string "(gen"
|
||||||
|
p2 <- many (noneOf ")")
|
||||||
|
p3 <- string ")"
|
||||||
|
return $ p1 ++ p2 ++ p3
|
||||||
|
in
|
||||||
|
do
|
||||||
|
w0 <- optionMaybe (char '-' <|> letter)
|
||||||
|
ws <- if isJust w0 then many (letter <|> oneOf "()/") else return ""
|
||||||
|
s1 <- many space
|
||||||
|
s <- option [] $ try $ esse
|
||||||
|
s2 <- many space
|
||||||
|
g <- option [] $ try genitive
|
||||||
|
s3 <- many space
|
||||||
|
sfs <- option [] $ try (many suffix)
|
||||||
|
return $ maybe ws (:ws) w0 ++ s1 ++ s ++ s2 ++ g ++ s3 ++ concat sfs
|
||||||
|
|
||||||
|
wordForms :: Stream s m Char => ParsecT s u m [String]
|
||||||
|
wordForms =
|
||||||
|
do
|
||||||
|
wf <- wordForm;
|
||||||
|
wfs <- many (do
|
||||||
|
_ <- char ','
|
||||||
|
skipMany space
|
||||||
|
wordForm
|
||||||
|
)
|
||||||
|
return (wf:wfs)
|
||||||
|
|
||||||
|
gender :: Stream s m Char => ParsecT s u m Gender
|
||||||
|
gender =
|
||||||
|
do
|
||||||
|
skipMany space
|
||||||
|
c <- upper
|
||||||
|
case c of {
|
||||||
|
'N' -> return Neuter ;
|
||||||
|
'M' -> return Masc ;
|
||||||
|
'F' -> return Fem ;
|
||||||
|
'C' -> return Common; -- Feminine and/or masculine
|
||||||
|
'X' -> return Unknown;
|
||||||
|
_ -> unexpected ("unhandled gender " ++ [c])
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inflection :: Stream s m Char => ParsecT s u m (Maybe Int)
|
||||||
|
inflection =
|
||||||
|
do
|
||||||
|
_ <- char '(';
|
||||||
|
i <- digit ;
|
||||||
|
_ <- string "st" <|> string "nd" <|> string "rd" <|> string "th" ;
|
||||||
|
_ <- char ')';
|
||||||
|
return $ Just $ digitToInt i
|
||||||
|
|
||||||
|
verbkind :: Stream s m Char => ParsecT s u m VerbKind
|
||||||
|
verbkind =
|
||||||
|
do
|
||||||
|
s <- many upper
|
||||||
|
case s of {
|
||||||
|
"INTRANS" -> return Intrans;
|
||||||
|
"TRANS" -> return Trans;
|
||||||
|
"DEP" -> return Deponens;
|
||||||
|
"SEMIDEP" -> return SemiDeponens;
|
||||||
|
"IMPERS" -> return Impersonal;
|
||||||
|
_ -> unexpected s -- Probably just return intrans?
|
||||||
|
}
|
||||||
|
|
||||||
|
cases :: Stream s m Char => ParsecT s u m Case
|
||||||
|
cases =
|
||||||
|
do
|
||||||
|
s <- many upper
|
||||||
|
case s of {
|
||||||
|
"ACC" -> return Acc;
|
||||||
|
"ABL" -> return Abl;
|
||||||
|
_ -> unexpected s
|
||||||
|
}
|
||||||
|
|
||||||
|
rest :: Stream s m Char => ParsecT s u m String
|
||||||
|
rest =
|
||||||
|
do
|
||||||
|
c0 <- char '['
|
||||||
|
cs <- many anyChar
|
||||||
|
return (c0:cs)
|
||||||
|
|
||||||
|
noun :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
noun =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- char 'N'
|
||||||
|
skipMany space
|
||||||
|
i <- option Nothing inflection
|
||||||
|
g <- gender
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry N wfs (Noun i g) c
|
||||||
|
|
||||||
|
verb :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
verb =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "V"
|
||||||
|
skipMany space
|
||||||
|
i <- option Nothing inflection
|
||||||
|
skipMany space
|
||||||
|
k <- option Intrans verbkind
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry V wfs (Verb i k) c
|
||||||
|
|
||||||
|
adjective :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
adjective =
|
||||||
|
let
|
||||||
|
dropLast :: Int -> String -> String
|
||||||
|
dropLast i s = take (length s - i) s
|
||||||
|
fixStuff :: [String] -> ([String],OtherInfos)
|
||||||
|
fixStuff wfs@[f1,f2]
|
||||||
|
| isSuffixOf "or -or -us" f1 && isSuffixOf "us -a -um" f2 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 10 f1
|
||||||
|
stem2 = dropLast 9 f2
|
||||||
|
in
|
||||||
|
([stem1 ++ "or", stem1 ++ "or", stem1 ++ "us", stem2 ++ "us", stem2 ++ "a", stem2 ++ "um"],
|
||||||
|
Adjective (Just 3) CompSuper)
|
||||||
|
| f2 == "undeclined" = (wfs, Adjective (Just (-1)) Undeclined)
|
||||||
|
fixStuff wfs@[f1,f2,f3]
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a" f2 && isSuffixOf "um" f3 = (wfs, Adjective (Just 1) Positive)
|
||||||
|
| isSuffixOf "r" f1 && isSuffixOf "ra" f2 && isSuffixOf "rum" f3 = (wfs, Adjective (Just 1) Positive)
|
||||||
|
| isSuffixOf "is" f1 && isSuffixOf "is" f2 && isSuffixOf "e" f3 = ([f1,f3], Adjective (Just 3) Positive)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "is" f2 && isSuffixOf "e" f3 = (wfs, Adjective (Just 3) Positive)
|
||||||
|
| isSuffixOf "os" f1 && isSuffixOf "os" f2 && isSuffixOf "on" f3 = (wfs, Adjective (Just (-1)) Positive) -- Greek stuff
|
||||||
|
| isSuffixOf "os" f1 && isSuffixOf "a" f2 && isSuffixOf "on" f3 = (wfs, Adjective (Just (-1)) Positive) -- Green stuff
|
||||||
|
| f2 == "(gen.)" = ([f1,f3], Adjective (Just 3) Positive)
|
||||||
|
-- acer, acris -e, acrior -or -us, acerrimus -a -um ADJ
|
||||||
|
-- abjectus, abjecta -um, abjectior -or -us, abjectissimus -a -um
|
||||||
|
fixStuff wfs@[f1,f2,f3,f4]
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -um" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 2 f1
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "um",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "us" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 2 f1
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "ns" f1 && isSuffixOf "ntis (gen.)" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 11 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "ntis",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 3) PosCompSuper)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "is -e" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 5 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "is", stem1 ++ "e",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 3) PosCompSuper)
|
||||||
|
| isSuffixOf "er" f1 && isSuffixOf "a -um" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem1 = dropLast 5 f2
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, stem1 ++ "a", stem1 ++ "um",
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
| isSuffixOf "is" f1 && isSuffixOf "e" f2 && isSuffixOf "or -or -us" f3 && isSuffixOf "us -a -um" f4 =
|
||||||
|
let
|
||||||
|
stem2 = dropLast 10 f3
|
||||||
|
stem3 = dropLast 9 f4
|
||||||
|
in
|
||||||
|
([f1, f2,
|
||||||
|
stem2 ++ "or", stem2 ++ "or", stem2 ++ "us",
|
||||||
|
stem3 ++ "us", stem3 ++ "a", stem3 ++ "um"],
|
||||||
|
Adjective (Just 1) PosCompSuper)
|
||||||
|
fixStuff wfs = trace ("ERROR: " ++ show wfs) (wfs,NoInfos)
|
||||||
|
in
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "ADJ"
|
||||||
|
-- Set additional infos/normalize foobar
|
||||||
|
-- i <- return Nothing
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
let (nwfs,ninfos) = fixStuff $ map skipSpaces wfs -- (Adjective i)
|
||||||
|
return $ Entry A nwfs ninfos c
|
||||||
|
|
||||||
|
adverb :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
adverb =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "ADV"
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry Adv wfs NoInfos c
|
||||||
|
|
||||||
|
interjection :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
interjection =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "INTERJ"
|
||||||
|
skipMany space
|
||||||
|
c <- rest
|
||||||
|
return $ Entry Interj wfs NoInfos c
|
||||||
|
|
||||||
|
preposition :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
preposition =
|
||||||
|
do
|
||||||
|
wfs <- wordForms
|
||||||
|
_ <- string "PREP"
|
||||||
|
skipMany space
|
||||||
|
c <- cases
|
||||||
|
skipMany space
|
||||||
|
cc <- rest
|
||||||
|
return $ Entry Interj wfs (Preposition c) cc
|
||||||
|
|
||||||
|
wrongLine :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
wrongLine =
|
||||||
|
do
|
||||||
|
line <- many1 $ noneOf "["
|
||||||
|
unexpected $ "Unexpected line " ++ line
|
||||||
|
|
||||||
|
lineParser :: Stream s m Char => ParsecT s u m DictEntry
|
||||||
|
lineParser =
|
||||||
|
do
|
||||||
|
_ <- hash
|
||||||
|
(try noun <|> try verb <|> try adjective <|> try adverb <|> try interjection <|> try preposition) <|> wrongLine
|
||||||
|
|
||||||
|
skipSpaces :: String -> String
|
||||||
|
skipSpaces = dropWhileEnd isSpace --filter (/= ' ')
|
||||||
|
|
||||||
|
write :: FilePath -> FilePath -> [(Int,DictEntry)] -> IO ()
|
||||||
|
write abs conc es =
|
||||||
|
let
|
||||||
|
join :: String -> [String] -> String
|
||||||
|
join g l = foldl (\f s -> f ++ g ++ s ) (head l) (tail l)
|
||||||
|
writeEntry :: Handle -> Handle -> [(Int,DictEntry)] -> IO ()
|
||||||
|
writeEntry habs hconc [] =
|
||||||
|
do
|
||||||
|
hPutStrLn habs "}"
|
||||||
|
hClose habs
|
||||||
|
hPutStrLn hconc "}"
|
||||||
|
hClose hconc
|
||||||
|
writeEntry habs hconc (e@(i,Entry cat forms _ _):es) =
|
||||||
|
do
|
||||||
|
let lemma = skipSpaces $ head forms
|
||||||
|
hPutStrLn habs $ " " ++ lemma ++ "_" ++ show i ++ "_" ++ show cat ++ " : " ++ show cat ++ ";";
|
||||||
|
case e of {
|
||||||
|
(i,Entry N wfs (Noun (Just 1) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ head wfs ++ "\"; -- 1st " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry N wfs (Noun (Just 2) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ head wfs ++ "\"; -- 2nd " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry N wfs (Noun (Just 3) gender) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkN \"" ++ (join "\" \"" $ map skipSpaces wfs) ++ "\" " ++ show gender ++ "; -- 3rd " ++ show gender ++ " " ++ c;
|
||||||
|
(i,Entry A wfs (Adjective (Just 1) comp@Positive) c) -> hPutStrLn hconc $ " " ++ lemma ++ "_" ++ show i ++ "_N = mkA \"" ++ head wfs ++ "\"; -- 1st " ++ show comp ++ " " ++ c;
|
||||||
|
_ -> return () -- print e
|
||||||
|
|
||||||
|
}
|
||||||
|
writeEntry habs hconc es
|
||||||
|
in
|
||||||
|
do
|
||||||
|
habs <- openFile abs WriteMode
|
||||||
|
hconc <- openFile conc WriteMode
|
||||||
|
hPutStrLn habs "abstract DictLatAbs = Cat ** {"
|
||||||
|
hPutStrLn habs "\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm"
|
||||||
|
hPutStrLn habs "fun"
|
||||||
|
hPutStrLn hconc "concrete DictLat of DictLatAbs = CatLat ** open ParadigmsLat in {"
|
||||||
|
hPutStrLn hconc "-- extracted from http://archives.nd.edu/whitaker/dictpage.htm"
|
||||||
|
hPutStrLn hconc "lin"
|
||||||
|
writeEntry habs hconc es
|
||||||
|
|
||||||
|
main =
|
||||||
|
let
|
||||||
|
p :: String -> IO (Maybe DictEntry)
|
||||||
|
p l =
|
||||||
|
case parse lineParser "dict" l of {
|
||||||
|
Left err -> do
|
||||||
|
{ putStrLn $ drop 1 (showErrorMessages "or" "unknown parse error" "expecting" "unexpected" "end of input" $ errorMessages err) ;
|
||||||
|
return Nothing
|
||||||
|
} ;
|
||||||
|
Right e -> return $ Just e
|
||||||
|
}
|
||||||
|
in
|
||||||
|
do
|
||||||
|
ws <- fmap lines (readFile "DICTPAGE.RAW")
|
||||||
|
es <- zip [1..] . catMaybes <$> mapM p ws
|
||||||
|
write "DictLatAbs.gf" "DictLat.gf" es
|
||||||
38985
src/latin/dict/TEST.RAW
Normal file
38985
src/latin/dict/TEST.RAW
Normal file
File diff suppressed because it is too large
Load Diff
39225
src/latin/dict/TEST.RAW~
Normal file
39225
src/latin/dict/TEST.RAW~
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/latin/dict/dictpage.zip
Normal file
BIN
src/latin/dict/dictpage.zip
Normal file
Binary file not shown.
530
src/latin/dict/parse.pl
Normal file
530
src/latin/dict/parse.pl
Normal file
@@ -0,0 +1,530 @@
|
|||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Data::Dumper;
|
||||||
|
use feature ":5.10";
|
||||||
|
|
||||||
|
my %genders = (F => "feminine" , M => "masculine" , N => "neuter" , C => "COMMON" , X => "UNKNOWN" ) ;
|
||||||
|
my %cases = (ABL => "Abl" , ACC => "Acc", DAT => "Dat", GEN => "Gen", NOM => "Nom" ) ;
|
||||||
|
|
||||||
|
my $wordform = "[\\w()/.\\s-]+" ;
|
||||||
|
my $comment = "(\\[.*)" ;
|
||||||
|
my $gender = "(F|M|N|C|X)";
|
||||||
|
my $vtype = "(TRANS|INTRANS|DEP|SEMIDEP|IMPERS)";
|
||||||
|
my $case = "(ABL|ACC|DAT|GEN|NOM|VOC|LOC)" ;
|
||||||
|
my $number = "(S|P)" ;
|
||||||
|
my $declension = "\\((1st|2nd|3rd|4th|5th)\\)";
|
||||||
|
my $interjection = "#($wordform)\\s+INTERJ\\s+$comment";
|
||||||
|
my $adverb = "#(($wordform,\\s+)*$wordform)\\s+ADV\\s+$comment";
|
||||||
|
my $adjective = "#(($wordform,\\s+)*$wordform)\\s+$gender\\s+ADJ\\s+$comment";
|
||||||
|
my $adjective2 = "#(($wordform,\\s+)*$wordform)\\s+ADJ\\s+$comment";
|
||||||
|
my $adjective3 = "#(($wordform,\\s+)*$wordform)\\s+ADJ\\s+[1-3]\\s+[1-3]\\s+$case\\s+$number\\s+$gender\\s+POS\\s+$comment";
|
||||||
|
my $conjunction = "#($wordform)\\s+CONJ\\s+$comment";
|
||||||
|
my $noun = "#(($wordform,\\s+)*$wordform)\\s+N\\s+$gender\\s+$comment";
|
||||||
|
my $noun2 = "#(($wordform,\\s+)*$wordform)\\s+N\\s+$declension\\s+$gender\\s+$comment";
|
||||||
|
my $noun3 = "#(($wordform,\\s+)*$wordform)\\s+N\\s+[0-9]\\s+[0-9]\\s+$case\\s+$number\\s+$gender\\s+$comment";
|
||||||
|
my $prep = "#($wordform)\\s+PREP\\s+$case\\s+$comment";
|
||||||
|
my $verb = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$comment";
|
||||||
|
my $verb2 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$comment";
|
||||||
|
my $verb3 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$vtype\\s+$comment";
|
||||||
|
my $verb4 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$vtype\\s+$comment";
|
||||||
|
my $verb5 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$case\\s+$comment";
|
||||||
|
|
||||||
|
my $absheader = "--# -path=.:..\n" .
|
||||||
|
"abstract DictLatAbs = Cat,Structural-[here_Adv],Lexicon-[leg_N,man_N,do_V2] ** {\n" .
|
||||||
|
"-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n" .
|
||||||
|
" fun";
|
||||||
|
my $concheader = "--# -path=.:..\n" .
|
||||||
|
"concrete DictLat of DictLatAbs = CatLat,StructuralLat-[here_Adv],LexiconLat-[leg_N,man_N,do_V2] ** open Prelude, ParadigmsLat, ResLat, ExtraLat in {\n" .
|
||||||
|
"-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n" .
|
||||||
|
" lin";
|
||||||
|
my $footer = "}";
|
||||||
|
|
||||||
|
open(my $absfh, ">", "DictLatAbs.gf") or die "Can't open > DictLatAbs.gf: $!";
|
||||||
|
open(my $concfh, ">", "DictLat.gf") or die "Can't open > DictLatAbs.gf: $!";
|
||||||
|
|
||||||
|
my %conclines ;
|
||||||
|
my %abslines ;
|
||||||
|
|
||||||
|
my @blacklist = ["multi_N","multae_N","alisalius_A","alius_A","semibos_A","semivir_A"];
|
||||||
|
|
||||||
|
print $absfh "$absheader\n";
|
||||||
|
print $concfh "$concheader\n";
|
||||||
|
|
||||||
|
while (my $l = <>) {
|
||||||
|
chomp($l);
|
||||||
|
my @wfs;
|
||||||
|
my $cat;
|
||||||
|
my $absname;
|
||||||
|
if ($l =~ /$interjection/)
|
||||||
|
{
|
||||||
|
# print "INTERJ Word: $1 -- Comment: $2\n";
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $comment = $2 ;
|
||||||
|
$wf =~ s/\s$//g;
|
||||||
|
$cat = "Interj" ;
|
||||||
|
$absname = $wf."_Interj" ;
|
||||||
|
push @wfs, $wf;
|
||||||
|
$conclines{$absname} = " $absname = ss \"$wf\" ; -- $comment \n" ;
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adverb/)
|
||||||
|
{
|
||||||
|
# print "ADV Word: $1 -- Comment: $3\n";
|
||||||
|
my $wf = $1 ; # all word forms in one string
|
||||||
|
my $comment = $3;
|
||||||
|
@wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
map { s/\s$// } @wfs;
|
||||||
|
$cat = "Adv" ;
|
||||||
|
$absname = $wfs[0]."_Adv" ;
|
||||||
|
if (@wfs == 1)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkAdv \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif (@wfs == 2)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname =mkAdv \"".$wfs[0]."\" \"".$wfs[1]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif (@wfs == 3)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname =mkAdv \"".$wfs[0]."\" \"".$wfs[1]."\" \"".$wfs[2]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adjective/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ; # all word forms in one string
|
||||||
|
my $comment = $3;
|
||||||
|
@wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
map { s/[\s.]$// } @wfs;
|
||||||
|
$cat = "A" ;
|
||||||
|
$absname = $wfs[0]."_A" ;
|
||||||
|
$conclines{$absname} = " $absname = mkA \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
# print "A1 Word: $1 -- Comment: $3\n"; # these adjectives should always work
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adjective2/)
|
||||||
|
{
|
||||||
|
# print "A2 Word: $1 -- Comment: $3\n";
|
||||||
|
my $wf = $1 ; # all word forms in one string
|
||||||
|
my $comment = $3;
|
||||||
|
@wfs = split /\s*[,-]\s*/, $1; # word forms split into a list
|
||||||
|
map { s/[\s.]$// } @wfs;
|
||||||
|
# Word forms contain variations -> Ignore
|
||||||
|
#print $absfh " ".$wfs[0]."_A : A ;\n" ;
|
||||||
|
$cat = "A" ;
|
||||||
|
$absname = $wfs[0]."_A" ;
|
||||||
|
if ($absname ~~ @blacklist) {
|
||||||
|
$conclines{$absname} = "-- BLACKLISTED $absname : A2 $wf -- blacklisted -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Wordform contains variants -> to be fixed
|
||||||
|
elsif ($wf =~ /[(\/\(\))]|(\s-)/ )
|
||||||
|
{
|
||||||
|
if ($wfs[1] eq "(gen.)")
|
||||||
|
{
|
||||||
|
if (@wfs == 3)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkA \"".$wfs[0]."\" \"".$wfs[2]."\"; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- TODO $absname : A2 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ($wfs[1] =~ /\(gen\.\)/)
|
||||||
|
{
|
||||||
|
$wfs[1] =~ s/ \(gen\.\)//g;
|
||||||
|
$conclines{$absname} = " $absname = mkA \"".$wfs[0]."\" \"".$wfs[1]."\"; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- SLASHSTUFF $absname : A2 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Abbreviations -> Ignore
|
||||||
|
elsif ($wf =~ /abbr?\./) {
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : A2 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Undefined -> Ignore
|
||||||
|
elsif ($wf =~ /undecl/) {
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : A2 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Two word forms, just use both
|
||||||
|
elsif (@wfs == 2)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkA \"".$wfs[0]."\" \"".$wfs[1]."\"; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Three word forms -> regular adjective?!?
|
||||||
|
elsif (@wfs == 3)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkA \"".$wfs[0]."\" \"".$wfs[1]."\" \"".$wfs[2]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Too many word forms
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- TOOMUCH $absname : A2 $wf -- $comment\n" ;
|
||||||
|
# print "A2 Word: ".$wfs[0]." -- $wf -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adjective3/)
|
||||||
|
{
|
||||||
|
# Overly specific forms to be ignored
|
||||||
|
$cat = "" ;
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$conjunction/)
|
||||||
|
{
|
||||||
|
# print "CONJ Word: $1 -- Comment: $2\n";
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $comment = $2;
|
||||||
|
$wf =~ s/\s$//g;
|
||||||
|
$cat = "Conj" ;
|
||||||
|
$absname = $wf."_Conj" ;
|
||||||
|
push @wfs, $wf;
|
||||||
|
# We don't get enough information for our grammar from the lexicon
|
||||||
|
$conclines{$absname} = "-- $absname : Conj $wf -- $comment\n" ;
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $gender = $3;
|
||||||
|
my $comment = $4;
|
||||||
|
@wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
$wfs[0] =~ s/[\.\s]//g; # remove punctuation from word form
|
||||||
|
$cat = "N" ;
|
||||||
|
$absname = $wfs[0]."_N" ;
|
||||||
|
# Blacklisted, not handled yet
|
||||||
|
if ($absname ~~ @blacklist) {
|
||||||
|
$conclines{$absname} = "-- BLACKLISTED $absname : N1 $wf -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
# strange special characters -> ingnored
|
||||||
|
elsif ($wf =~ /[\/\(\)]/ )
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- TODO $absname : N1 $wf -- $gender -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Wordforms contain "undecl" -> Ignored
|
||||||
|
elsif ($wf =~ /undecl/ )
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : N1 $wf -- $gender -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Wordforms contains abbreviation -> Ignored
|
||||||
|
elsif ($wf =~ /abb(r?)\./)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : N1 $wf -- $gender -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif(scalar(@wfs) == 1)
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_".$gender."_N" ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif(scalar(@wfs) == 2)
|
||||||
|
{
|
||||||
|
my $g = $genders{$gender};
|
||||||
|
if ($gender eq "C")
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_F_N" ;
|
||||||
|
$abslines{$absname} = $cat ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" feminine ; -- $comment\n" ;
|
||||||
|
$absname = $wfs[0]."_M_N" ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" masculine ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Unknown gender
|
||||||
|
elsif ($gender eq "X")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- $absname : N1 $wf -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_".$gender."_N" ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" $g ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_N";
|
||||||
|
$conclines{$absname} = "-- $absname : N1 $wf -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
# print "N1 Word: ".$wfs[0]." -- ".scalar(@wfs)." -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun2/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $gender = $4;
|
||||||
|
my $declension = $3;
|
||||||
|
my $comment = $5;
|
||||||
|
$cat = "N" ;
|
||||||
|
@wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
$absname = $wfs[0]."_".$gender."_N" ;
|
||||||
|
# Blacklisted
|
||||||
|
if ($absname ~~ @blacklist) {
|
||||||
|
$conclines{$absname} = "-- BLACKLISTED $absname : N1 $wf -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($declension eq "1st" || $declension eq "2nd")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif (scalar(@wfs) == 2)
|
||||||
|
{
|
||||||
|
my $g = $genders{$gender};
|
||||||
|
if ($gender eq "C")
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_F_N" ;
|
||||||
|
$abslines{$absname} = $cat ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" feminine ; -- $comment\n" ;
|
||||||
|
$absname = $wfs[0]."_M_N" ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" masculine ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# Unknown gender
|
||||||
|
elsif ($gender eq "X")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- $absname : N1 $wf -- Gender: $gender -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$absname = $wfs[0]."_".$gender."_N" ;
|
||||||
|
$conclines{$absname} = " $absname = mkN \"".$wfs[0]."\" \"".$wfs[1]."\" $g ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- $absname : N2 $wf -- Gender: $gender -- Declension: $declension -- Comment: $comment\n";
|
||||||
|
# print "N2 Word: ".$wfs[0]." -- Gender: $gender -- Declension: $declension -- Comment: $comment\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun3/)
|
||||||
|
{
|
||||||
|
# Overly specific
|
||||||
|
$cat = "" ;
|
||||||
|
}
|
||||||
|
# Has to be after nouns to avoid problems with N ADJ
|
||||||
|
elsif ($l =~ /$prep/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $case = $2 ;
|
||||||
|
my $comment = $3 ;
|
||||||
|
$wf =~ s/\s//g;
|
||||||
|
push @wfs, $wf;
|
||||||
|
# print "PREP Word: $wf -- Case: $case -- Comment: $comment\n";
|
||||||
|
my $c = $cases{$case};
|
||||||
|
$cat = "Prep" ;
|
||||||
|
$absname = $wfs[0]."_".$c."_Prep" ;
|
||||||
|
$conclines{$absname} = " $absname = mkPrep \"".$wfs[0]."\" $c ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $comment = $3 ;
|
||||||
|
$cat = "V" ;
|
||||||
|
@wfs = split /\s*,\s+/, $wf ;
|
||||||
|
$absname = $wfs[0]."_V";
|
||||||
|
# Undefined -> Ignore
|
||||||
|
if ($absname ~~ @blacklist) {
|
||||||
|
$conclines{$absname} = "-- BLACKLISTED $absname : V1 $wf -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
# strange special characters -> ingnored
|
||||||
|
elsif ($wf =~ /[(\/\(\))]|(\s-)/ )
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- TODO $absname : V1 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($wf =~ /undecl/) {
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : V1 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($wf =~ /additional/ && $wf =~ /forms/) {
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : V1 $wf -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif (@wfs == 4)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" \"".$wfs[0]."\" \"".$wfs[2]."\" \"".$wfs[3]."\" ; -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print "V1 Word: ".$wfs[0]." -- Comment: $comment\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb2/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $declension = $3 ;
|
||||||
|
my $comment = $4 ;
|
||||||
|
$cat = "V" ;
|
||||||
|
@wfs = split /\s*,\s+/, $1;
|
||||||
|
$absname = $wfs[0]."_V";
|
||||||
|
if ($absname ~~ @blacklist) {
|
||||||
|
$conclines{$absname} = "-- BLACKLISTED $absname : V2 $wf -- Declension: $declension -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
# strange special characters -> ingnored
|
||||||
|
elsif ($wf =~ /[(\/\(\))]|(\s-)/ )
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- TODO $absname : V2 $wf -- Declension: $declension -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($wf =~ /undecl/) {
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : V2 $wf -- Declension: $declension -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
if ($declension eq "1st" || $declension eq "2nd")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif (scalar(@wfs) == 4)
|
||||||
|
{
|
||||||
|
if (!$wf =~ /-/)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\" \"".$wfs[0]."\" \"".$wfs[2]."\" \"".$wfs[3]."\") ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($wfs[2] eq "-" && $wfs[3] eq "-")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" \"".$wfs[0]."\" nonExist nonExist ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($wfs[3] eq "-")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\" \"".$wfs[0]."\" \"".$wfs[2]."\" nonExist ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# print "V2 Word: ".$wfs[0]." -- Declension: $declension -- Comment: $comment\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb3/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $type = $3 ;
|
||||||
|
my $comment = $4 ;
|
||||||
|
$cat = "V" ;
|
||||||
|
@wfs = split /\s*,\s+/, $1 ;
|
||||||
|
if ($type eq "TRANS")
|
||||||
|
{
|
||||||
|
$cat = "V2" ;
|
||||||
|
}
|
||||||
|
elsif ($type eq "IMPERS")
|
||||||
|
{
|
||||||
|
$cat= "V0" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cat= "V" ;
|
||||||
|
}
|
||||||
|
@wfs = split /\s*,\s+/, $1;
|
||||||
|
$absname = $wfs[0]."_".$cat ;
|
||||||
|
if ($wf =~ /undecl/)
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- IGNORED $absname : V3 $wf -- Type: $type -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($cat eq "V")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($cat eq "V0")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV0 \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\") ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
# print "V3 Word: ".$wfs[0]." -- VType: $type -- Comment: $comment\n";
|
||||||
|
}
|
||||||
|
$cat = "V" if $cat eq "V0";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb4/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $declension = $3 ;
|
||||||
|
my $type = $4 ;
|
||||||
|
my $comment = $5 ;
|
||||||
|
if ($type eq "TRANS")
|
||||||
|
{
|
||||||
|
$cat = "V2" ;
|
||||||
|
}
|
||||||
|
elsif ($type eq "IMPERS")
|
||||||
|
{
|
||||||
|
$cat= "V0" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cat= "V" ;
|
||||||
|
}
|
||||||
|
@wfs = split /\s*,\s+/, $1;
|
||||||
|
$absname = $wfs[0]."_".$cat ;
|
||||||
|
if ($declension eq "1st" || $declension eq "2nd")
|
||||||
|
{
|
||||||
|
if ($cat eq "V")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($cat eq "V0")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV0 \"".$wfs[0]."\" ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\") ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif (scalar(@wfs) == 4)
|
||||||
|
{
|
||||||
|
if (!$wf =~ /-/)
|
||||||
|
{
|
||||||
|
if ($cat eq "V")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV \"".$wfs[1]."\" \"".$wfs[0]."\" \"".$wfs[2]."\" \"".$wfs[3]."\"; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
elsif ($cat eq "V0")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV0 \"".$wfs[0]."\"; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\" \"".$wfs[0]."\" \"".$wfs[2]."\" \"".$wfs[3]."\") ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$cat = "V" if $cat eq "V0";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb5/)
|
||||||
|
{
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $declension = $3 ;
|
||||||
|
my $case = $4 ;
|
||||||
|
my $comment = $5 ;
|
||||||
|
$cat = "V2" ;
|
||||||
|
@wfs = split /\s*,\s+/, $1;
|
||||||
|
$absname = $wfs[0]."_".$cat ;
|
||||||
|
my $c = $cases{$case};
|
||||||
|
if ($declension eq "1st" || $declension eq "2nd")
|
||||||
|
{
|
||||||
|
$conclines{$absname} = " $absname = mkV2 (mkV \"".$wfs[1]."\") ".$c."_Prep ; -- $comment\n" ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$conclines{$absname} = "-- $absname : V4 $wf -- Declension: $declension -- Case: $case -- Comment: $comment\n" ;
|
||||||
|
}
|
||||||
|
#print "V5 Word: ".$wfs[0]." -- Declension: $declension -- Case: $case -- Comment: $comment\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cat = "" ;
|
||||||
|
print "MISSING: $l\n";
|
||||||
|
}
|
||||||
|
if ($cat ne "") {
|
||||||
|
# print $absfh " ".$wfs[0]."_".$cat." : $cat ;\n" ;
|
||||||
|
$abslines{$absname} = $cat;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach my $k (sort (keys %abslines))
|
||||||
|
{
|
||||||
|
print $absfh " $k : ".$abslines{$k}." ;\n" ;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach my $k (sort (keys %conclines))
|
||||||
|
{
|
||||||
|
given ($k) {
|
||||||
|
# when (@blacklist) {
|
||||||
|
# print $concfh "-- ".$conclines{$k};
|
||||||
|
# }
|
||||||
|
# default {
|
||||||
|
print $concfh $conclines{$k};
|
||||||
|
# }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print $absfh "$footer\n";
|
||||||
|
print $concfh "$footer\n";
|
||||||
|
close($absfh);
|
||||||
|
close($concfh);
|
||||||
9076
src/latin/dict/parts/DICTPAGE.ADJ
Normal file
9076
src/latin/dict/parts/DICTPAGE.ADJ
Normal file
File diff suppressed because it is too large
Load Diff
2202
src/latin/dict/parts/DICTPAGE.ADV
Normal file
2202
src/latin/dict/parts/DICTPAGE.ADV
Normal file
File diff suppressed because it is too large
Load Diff
2202
src/latin/dict/parts/DICTPAGE.ADV~
Normal file
2202
src/latin/dict/parts/DICTPAGE.ADV~
Normal file
File diff suppressed because it is too large
Load Diff
102
src/latin/dict/parts/DICTPAGE.CONJ
Normal file
102
src/latin/dict/parts/DICTPAGE.CONJ
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
#ac CONJ [XXXAO] :: and, and also, and besides;
|
||||||
|
#acsi CONJ [XXXCW] :: as if; (ac si);
|
||||||
|
#adque CONJ [XXXCO] :: and, as well as, as soon as; together with; and even; and too/also/now; yet;
|
||||||
|
#adqui CONJ [XXXES] :: but, yet, notwithstanding, however, rather, well/but now; and yet, still;
|
||||||
|
#adquin CONJ [XXXEO] :: but, yet, notwithstanding, however, rather, well/but now; and yet, still;
|
||||||
|
#alii CONJ [XXXCC] :: some ... others (alii ... alii);
|
||||||
|
#alius CONJ [XXXCO] :: the_one ... the_other (alius ... alius);
|
||||||
|
#alter CONJ [XXXCO] :: the_one ... the_other (alter ... alter); otherwise;
|
||||||
|
#an CONJ [XXXCO] :: can it be that (introduces question expecting negative answer/further question);
|
||||||
|
#an CONJ [XXXAO] :: |whether; (utrum ... an = whether ... or); or; either;
|
||||||
|
#anne CONJ [XXXCO] :: can it be that (introducing a question expecting a negative answer);
|
||||||
|
#anne CONJ [XXXEO] :: |whether (or not) (an-ne);
|
||||||
|
#annon CONJ [XXXCO] :: can it be that (introducing a question expecting a positive answer);
|
||||||
|
#antequam CONJ [XXXAO] :: before, sooner than; until;
|
||||||
|
#ast CONJ [XXXBO] :: but, on the other hand/contrary; but yet; at least; in that event; if further;
|
||||||
|
#at CONJ [XXXAO] :: but, but on the other hand; on the contrary; while, whereas; but yet; at least;
|
||||||
|
#atenim CONJ [XXXEO] :: but/yet in spite of what has been said; but/yet nevertheless/all the same;
|
||||||
|
#atque CONJ [XXXAO] :: and, as well/soon as; together with; and moreover/even; and too/also/now; yet;
|
||||||
|
#atqui CONJ [XXXBO] :: but, yet, notwithstanding, however, rather, well/but now; and yet, still;
|
||||||
|
#atquin CONJ [XXXBO] :: but, yet, notwithstanding, however, rather, well/but now; and yet, still;
|
||||||
|
#audem CONJ [XXXEO] :: but (postpositive), on the other hand/contrary; while, however; moreover, also;
|
||||||
|
#aut CONJ [XXXAO] :: or, or rather/else; either...or (aut...aut) (emphasizing one);
|
||||||
|
#autem CONJ [XXXAO] :: but (postpositive), on the other hand/contrary; while, however; moreover, also;
|
||||||
|
#bat CONJ [XXXEO] :: but, while, however; (contemptuous parity of "at" - b-b-but);
|
||||||
|
#batenim CONJ [XXXEO] :: but, yet, nevertheless, however; (contemptuous parity of "atenim" - b-b-but);
|
||||||
|
#cumquam CONJ [XXXFO] :: ever; [in combination sicumquam => if ever];
|
||||||
|
#cuncumque CONJ [XXXFO] :: whenever;
|
||||||
|
#donec CONJ [XXXAX] :: while, as long as, until;
|
||||||
|
#dum CONJ [XXXAX] :: while, as long as, until; provided that;
|
||||||
|
#dummodo CONJ [XXXDX] :: provided (that) (+ subj);
|
||||||
|
#enim CONJ [XXXAX] :: namely (postpos.); indeed; in fact; for; I mean, for instance, that is to say;
|
||||||
|
#enimvero CONJ [XXXBO] :: to be sure, certainly; well, upon by word; but, on the other hand; what is more;
|
||||||
|
#et CONJ [XXXAX] :: and, and even; also, even; (et ... et = both ... and);
|
||||||
|
#etenim CONJ [XXXBX] :: and indeed, because, since, as a matter of fact (independent reason, emphasis);
|
||||||
|
#etiam CONJ [XXXAO] :: and also, besides/furthermore, in addition/as well; even, actually; yes/indeed;
|
||||||
|
#etiam CONJ [XXXAO] :: |now too, as yet, still, even now; yet again; likewise; (particle); (et-iam);
|
||||||
|
#etiamsi CONJ [XXXDX] :: even if, although;
|
||||||
|
#etiamtum CONJ [XXXDX] :: even then; yet;
|
||||||
|
#etsi CONJ [XXXBX] :: although, though, even if; albeit; I know that but;
|
||||||
|
#igitur CONJ [XXXAO] :: therefore (postpositive), so/then; consequently; accordingly; well/in that case;
|
||||||
|
#itaque CONJ [XXXAX] :: and so, therefore;
|
||||||
|
#licet CONJ [XXXCO] :: although, granted that; (with subjunctive);
|
||||||
|
#modo CONJ [XXXDX] :: but, if only; but only;
|
||||||
|
#nam CONJ [XXXAX] :: for, on the other hand; for instance;
|
||||||
|
#namque CONJ [XXXAX] :: for and in fact, on the other hand; insomuch as (strengthened nam);
|
||||||
|
#ne CONJ [XXXAX] :: that not, lest; (for negative of IMP);
|
||||||
|
#nec CONJ [XXXAX] :: nor, and..not; not..either, not even;
|
||||||
|
#necdum CONJ [XXXBX] :: and/but not yet;
|
||||||
|
#necne CONJ [XXXDX] :: or not;
|
||||||
|
#nedum CONJ [XXXDX] :: still less; not to speak of; much more;
|
||||||
|
#nempe CONJ [XXXDX] :: truly, certainly, of course;
|
||||||
|
#neque CONJ [XXXAX] :: nor [neque..neque=>neither..nor; neque solum..sed etiam=>not only..but also];
|
||||||
|
#nequedum CONJ [XXXDX] :: and/but not yet;
|
||||||
|
#neu CONJ [XXXBX] :: or not, and not; (for negative of IMP); [neve ... neve => neither ... nor ];
|
||||||
|
#neve CONJ [XXXDX] :: or not, and not; (for negative of IMP); [neve ... neve => neither ... nor ];
|
||||||
|
#ni CONJ [XXXDX] :: if ... not; unless;
|
||||||
|
#nisi CONJ [XXXAX] :: if not; except, unless;
|
||||||
|
#nonnisi CONJ [XXXDO] :: not unless; not except; only (on specific terms);
|
||||||
|
#posteaquam CONJ [XXXDX] :: after;
|
||||||
|
#postquam CONJ [XXXAX] :: after;
|
||||||
|
#priusquam CONJ [XXXBX] :: before; until; sooner than;
|
||||||
|
#prout CONJ [XXXBX] :: as, just as; exactly as;
|
||||||
|
#quam CONJ [XXXDX] :: how, than;
|
||||||
|
#quamobrem CONJ [XXXDX] :: why, for what reason, on what account; on account of which, where/there-fore;
|
||||||
|
#quamquam CONJ [XXXDX] :: though, although; yet; nevertheless;
|
||||||
|
#quamvis CONJ [XXXDX] :: however much; although;
|
||||||
|
#quando CONJ [XXXDX] :: when, since, because; [si quando => if ever];
|
||||||
|
#quandoquidem CONJ [XXXDX] :: since, seeing that;
|
||||||
|
#quanquam CONJ [XXXDX] :: though, although; yet; nevertheless;
|
||||||
|
#quasi CONJ [XXXDX] :: as if, just as if, as though; as it were; about;
|
||||||
|
#que CONJ [FXXET] :: and; (while properly attached as enclitic sometimes copyists make mistakes);
|
||||||
|
#quia CONJ [XXXAX] :: because;
|
||||||
|
#quin CONJ [XXXDX] :: so that not, without; that not; but that; that; [quin etiam => moreover];
|
||||||
|
#quo CONJ [XXXDX] :: whither, in what place, where;
|
||||||
|
#quoad CONJ [XXXDX] :: as long as, until;
|
||||||
|
#quocirca CONJ [XXXDX] :: on account of which; wherefore;
|
||||||
|
#quod CONJ [XXXDX] :: because, as far as, insofar as; [quod si => but if];
|
||||||
|
#quodnisi CONJ [XXXDX] :: but if not; and if not; (introduces conditional); (quodnisi = quod nisi);
|
||||||
|
#quodsi CONJ [XXXDX] :: but if; and if; (introduces conditional); (quodsi = quod si)
|
||||||
|
#quominus CONJ [XXXDX] :: that not, from (quo minus);
|
||||||
|
#quoniam CONJ [XXXAX] :: because, since, seeing that;
|
||||||
|
#quum CONJ [DXXCS] :: when, while, as, since, although; as soon;
|
||||||
|
#sed CONJ [XXXAX] :: but, but also; yet; however, but in fact/truth; not to mention; yes but;
|
||||||
|
#set CONJ [XXXBX] :: but, but also; yet; however, but in fact/truth; not to mention; yes but;
|
||||||
|
#seu CONJ [XXXAX] :: or if; or; [sive ... sive => whether ... or, either ... or];
|
||||||
|
#si CONJ [XXXAX] :: if, if only; whether; [quod si/si quis or quid => but if/if anyone or anything];
|
||||||
|
#sicumquam CONJ [XXXFO] :: if ever; [si cumquam => if ever];
|
||||||
|
#sicut CONJ [XXXDX] :: as, just as; like; in same way; as if; as it certainly is; as it were;
|
||||||
|
#sin CONJ [XXXBX] :: but if; if on the contrary;
|
||||||
|
#siquidem CONJ [XXXBX] :: accordingly; if indeed/in fact/it is possible, even supposing; since/in that;
|
||||||
|
#sive CONJ [XXXAX] :: or if; or; [sive ... sive => whether ... or];
|
||||||
|
#tametsi CONJ [XXXDX] :: even if, although, though;
|
||||||
|
#tamquam CONJ [XXXAX] :: as, just as, just as if; as it were, so to speak; as much as; so as;
|
||||||
|
#tanquam CONJ [XXXDX] :: as, just as, just as if; as it were, so to speak; as much as; so as;
|
||||||
|
#tum CONJ [XXXDS] :: moreover; (frequent in Cicero and before; rare after);
|
||||||
|
#ubi CONJ [XXXAX] :: where, whereby;
|
||||||
|
#ut CONJ [XXXAX] :: to (+ subjunctive), in order that/to; how, as, when, while; even if;
|
||||||
|
#uti CONJ [XXXAX] :: in order that; that, so that; as, when; [ut primum => as soon as];
|
||||||
|
#utrumnam CONJ [EXXFP] :: whether; (Vulgate 1 Samuel 10:22);
|
||||||
|
#utut CONJ [XXXCO] :: however; in whatever way;
|
||||||
|
#vel CONJ [XXXAX] :: or; [vel ... vel => either ... or];
|
||||||
|
#verumtamen CONJ [XXXDX] :: but yet, nevertheless, but even so, still (resuming after digression);
|
||||||
106
src/latin/dict/parts/DICTPAGE.INTERJ
Normal file
106
src/latin/dict/parts/DICTPAGE.INTERJ
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
#a INTERJ [XXXBO] :: Ah!; (distress/regret/pity, appeal/entreaty, surprise/joy, objection/contempt);
|
||||||
|
#absit INTERJ [EEXCE] :: "god forbid", "let it be far from the hearts of the faithful";
|
||||||
|
#aelinon INTERJ [XXXFO] :: exclamation of sorrow; "alas for Linus";
|
||||||
|
#age INTERJ [XXXCS] :: come!, go to!, well!, all right!; let come;
|
||||||
|
#agedum INTERJ [XXXCO] :: come!, go to!, well!, all right!;
|
||||||
|
#agite INTERJ [XXXCQ] :: come!, go to!, well!, all right!;
|
||||||
|
#ah INTERJ [XXXCO] :: exclamation expressing surprise/irony;
|
||||||
|
#aha INTERJ [XXXEO] :: exclamation expressing surprise/irony;
|
||||||
|
#ai INTERJ [XXXFS] :: alas; exclamation expressing grief;
|
||||||
|
#aisne INTERJ [XXXES] :: indeed? really? is it possible? do you really mean it? (surprise/wonder);
|
||||||
|
#Alleluia INTERJ [EEQCE] :: Halleluia, cry of joy and praise to God; (praise ye Jehovah);
|
||||||
|
#apage INTERJ [XXXCO] :: be off!; nonsense!, get away with you!;
|
||||||
|
#apsit INTERJ [EEXCE] :: "god forbid", "let it be far from the hearts of the faithful";
|
||||||
|
#atat INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atatae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atatatae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atate INTERJ [XXXFS] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atattae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attat INTERJ [XXXCO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attatae INTERJ [XXXEO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attate INTERJ [XXXCS] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attattatae INTERJ [XXXEO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#au INTERJ [XXXFS] :: oh! ow! oh dear! goodness gracious! (used by women to express consternation);
|
||||||
|
#ave INTERJ [XXXCO] :: hail!, formal expression of greetings;
|
||||||
|
#babae INTERJ [CXXEO] :: wow!; exclamation of surprise or amazement;
|
||||||
|
#be INTERJ [XAXFO] :: baa (sound made by sheep);
|
||||||
|
#bee INTERJ [DAXFS] :: baa; sound made by a sheep;
|
||||||
|
#beia INTERJ [XXXFO] :: see!; (comic word as contemptuous echo of "heia");
|
||||||
|
#bombax INTERJ [XXXFO] :: Splendid! Marvelous!;
|
||||||
|
#buttuti INTERJ [XEIFS] :: Buttuti!; (exclamation used by Hernici of Latinum at religious festivals);
|
||||||
|
#buttutti INTERJ [XEIFO] :: Buttuti!; (exclamation used by Hernici of Latinum at religious festivals);
|
||||||
|
#chaere INTERJ [XXXEO] :: welcome; hail (L+S);
|
||||||
|
#chere INTERJ [XXXDO] :: welcome; hail (L+S);
|
||||||
|
#coco INTERJ [XXXFO] :: crow of cock; cock-a-doodle-doo; hen-clucking (L+S);
|
||||||
|
#cuccuru INTERJ [XXXFO] :: cock-a-doodle-doo!
|
||||||
|
#cucurru INTERJ [XXXFS] :: cock-a-doodle-doo!
|
||||||
|
#deurode INTERJ [XXXFO] :: come hither!; (deuro de); (applied to a catamite);
|
||||||
|
#ecastor INTERJ [XXXDX] :: by Castor (interjection used by women);
|
||||||
|
#ecca INTERJ [XXXFO] :: Here they (neuter) are!; Behold!, Observe!, Lo!;
|
||||||
|
#eccam INTERJ [XXXDO] :: Here she/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccas INTERJ [XXXEO] :: Here they (feminine) are!; Behold!, Observe!, Lo!;
|
||||||
|
#ecce INTERJ [XXXAX] :: behold! see! look! there! here! [ecce eum => here he is];
|
||||||
|
#eccere INTERJ [XXXDO] :: Here she/it is!; Behold!, Observe!, Lo!; There you are!;
|
||||||
|
#eccillam INTERJ [XXXEO] :: There she/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccillud INTERJ [XXXFO] :: There it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccillum INTERJ [XXXEO] :: There he/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccistam INTERJ [XXXFO] :: There she is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccum INTERJ [XXXFO] :: Here he/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#edepol INTERJ [XXXDX] :: by Pollux!;
|
||||||
|
#ehem INTERJ [XXXEC] :: oho! well well!;
|
||||||
|
#eheu INTERJ [XXXDX] :: alas! (exclamation of grief/pain/fear);
|
||||||
|
#ehoi INTERJ [XXXEZ] :: hurrah! (exclamation of happiness);
|
||||||
|
#ei INTERJ [XXXDX] :: Ah! Woe!, oh dear, alas; (of grief or fear);
|
||||||
|
#eia INTERJ [XXXBX] :: how now!, Ha, Good, see! (of joy); see!, Quick! (of urgency/astonishment);
|
||||||
|
#Eli INTERJ [EEQFE] :: My God; [Eli Eli lama sabacthani => My God, my God why hast thou forsaken me];
|
||||||
|
#Eloi INTERJ [EEQFE] :: My God; (Aramaic);
|
||||||
|
#em INTERJ [XXXDX] :: there! (of wonder); here!;
|
||||||
|
#en INTERJ [XXXBX] :: behold! see! lo! here! hey! look at this!;
|
||||||
|
#eu INTERJ [XXXDX] :: well done! bravo!; splendid! (sometimes ironic);
|
||||||
|
#eugae INTERJ [XXXDX] :: oh, good! fine! well done! (delight/pleasure/surprise, sometimes ironic);
|
||||||
|
#euge INTERJ [XXXDX] :: oh, good! fine! well done! (delight/pleasure/surprise, sometimes ironic);
|
||||||
|
#eugepae INTERJ [XXXEC] :: well done!; (sometimes ironic);
|
||||||
|
#euhoe INTERJ [XXXDX] :: cry of joy used by the votaries of Bacchus;
|
||||||
|
#euoeeuhoe INTERJ [XXXEC] :: shout of the Bacchantes;
|
||||||
|
#ha INTERJ [EXXBT] :: Ah!; (distress/regret/pity, appeal/entreaty, surprise/joy, objection/contempt);
|
||||||
|
#hahahae INTERJ [EXXES] :: Ha ha!; (laughter, derision);
|
||||||
|
#hahahe INTERJ [EXXES] :: Ha ha!; (laughter, derision);
|
||||||
|
#Hallelujah INTERJ [EEQCE] :: Halleluia, cry of joy and praise to God; (praise ye Jehovah);
|
||||||
|
#hau INTERJ [XXXFS] :: oh! ow! oh dear! goodness gracious! (used by women to express consternation);
|
||||||
|
#have INTERJ [XXXDX] :: hail!, formal expression of greetings;
|
||||||
|
#hei INTERJ [XXXDX] :: Ah! Woe!, oh dear, alas; (exclamation expressing anguish, grief or fear);
|
||||||
|
#heia INTERJ [XXXBX] :: how now!, Ha, Good, see! (of joy); see!, Quick! (of urgency/astonishment);
|
||||||
|
#Heli INTERJ [EEQFW] :: My God; [~ ~ lemma sabacthani => My God, my God why hast thou forsaken me];
|
||||||
|
#hem INTERJ [XXXCO] :: what ' s that? (surprise/concern); Ah!/alas! (unhappiness); there/here! (wonder);
|
||||||
|
#hercle INTERJ [XXXDX] :: By Hercules!; assuredly, indeed;
|
||||||
|
#hercule INTERJ [XXXDX] :: by Hercules!; assuredly, indeed;
|
||||||
|
#heu INTERJ [XXXAX] :: oh! ah! alas! (an expression of dismay or pain);
|
||||||
|
#heus INTERJ [XXXDX] :: hey!, ho!, ho there!, listen!;
|
||||||
|
#Hosanna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#Hosianna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#hui INTERJ [XXXDX] :: whee!, wow!; sound of surprise or approbation not unlike "whee";
|
||||||
|
#ilicet INTERJ [XXXCO] :: you may go/off with you; it ' s over; at once; [~ malam crucem => to Hell with];
|
||||||
|
#Io INTERJ [XXXAO] :: Yo!; Hurrah! (ritual exclamation of strong emotion/joy); Ho!; Look!; Quick!;
|
||||||
|
#lema INTERJ [EEQFW] :: Eli Eli lama sabacthani/My God, my God why hast thou forsaken me Matthew 27:46;
|
||||||
|
#lo INTERJ [EXXFP] :: Lo!; (magic word to cure bite of mad dog);
|
||||||
|
#maranatha INTERJ [DEXEP] :: our Lord cometh; (Aramaic through Greek);
|
||||||
|
#mecastor INTERJ [XXXDO] :: by Castor!; (oath used by women);
|
||||||
|
#mehercle INTERJ [XXXDX] :: By Hercules! assuredly, indeed;
|
||||||
|
#mehercule INTERJ [XXXDX] :: by Hercules! assuredly, indeed;
|
||||||
|
#mehercules INTERJ [XXXDX] :: by Hercules! assuredly, indeed;
|
||||||
|
#o INTERJ [XXXAX] :: Oh!;
|
||||||
|
#oh INTERJ [XXXDX] :: oh! ah!;
|
||||||
|
#ohe INTERJ [XXXDX] :: hey! hey there!;
|
||||||
|
#oi INTERJ [XXXEC] :: oh! ah!;
|
||||||
|
#oiei INTERJ [XXXDS] :: oh dear; (lamentation);
|
||||||
|
#Osanna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#phy INTERJ [XXXFO] :: pish! tush!; (expression of disgust);
|
||||||
|
#Pol INTERJ [XXXDX] :: by Pollux; truly; really;
|
||||||
|
#ridiculum INTERJ [XXXEO] :: the idea/question is absurd/ridiculous!;
|
||||||
|
#st INTERJ [XXXDX] :: hush! hist!;
|
||||||
|
#tat INTERJ [BXXFS] :: what! (Plautus);
|
||||||
|
#triumphe INTERJ [XXXFS] :: triumphant!;
|
||||||
|
#va INTERJ [DXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
|
#vae INTERJ [XXXBX] :: alas, woe, ah; oh dear; (Vae, puto deus fio. - Vespasian); Bah!, Curses!;
|
||||||
|
#vah INTERJ [XXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
|
#vaha INTERJ [BXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
107
src/latin/dict/parts/DICTPAGE.INTERJ~
Normal file
107
src/latin/dict/parts/DICTPAGE.INTERJ~
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
#a INTERJ [XXXBO] :: Ah!; (distress/regret/pity, appeal/entreaty, surprise/joy, objection/contempt);
|
||||||
|
#absit INTERJ [EEXCE] :: "god forbid", "let it be far from the hearts of the faithful";
|
||||||
|
#aelinon INTERJ [XXXFO] :: exclamation of sorrow; "alas for Linus";
|
||||||
|
#age INTERJ [XXXCS] :: come!, go to!, well!, all right!; let come;
|
||||||
|
#agedum INTERJ [XXXCO] :: come!, go to!, well!, all right!;
|
||||||
|
#agite INTERJ [XXXCQ] :: come!, go to!, well!, all right!;
|
||||||
|
#ah INTERJ [XXXCO] :: exclamation expressing surprise/irony;
|
||||||
|
#aha INTERJ [XXXEO] :: exclamation expressing surprise/irony;
|
||||||
|
#ai INTERJ [XXXFS] :: alas; exclamation expressing grief;
|
||||||
|
#aisne INTERJ [XXXES] :: indeed? really? is it possible? do you really mean it? (surprise/wonder);
|
||||||
|
#Alleluia INTERJ [EEQCE] :: Halleluia, cry of joy and praise to God; (praise ye Jehovah);
|
||||||
|
#apage INTERJ [XXXCO] :: be off!; nonsense!, get away with you!;
|
||||||
|
#apsit INTERJ [EEXCE] :: "god forbid", "let it be far from the hearts of the faithful";
|
||||||
|
#atat INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atatae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atatatae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atate INTERJ [XXXFS] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#atattae INTERJ [XXXFO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attat INTERJ [XXXCO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attatae INTERJ [XXXEO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attate INTERJ [XXXCS] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#attattatae INTERJ [XXXEO] :: ah! oh! alas! (expression of sudden enlightenment/surprise/fear/warning);
|
||||||
|
#au INTERJ [XXXFS] :: oh! ow! oh dear! goodness gracious! (used by women to express consternation);
|
||||||
|
#ave INTERJ [XXXCO] :: hail!, formal expression of greetings;
|
||||||
|
#babae INTERJ [CXXEO] :: wow!; exclamation of surprise or amazement;
|
||||||
|
#be INTERJ [XAXFO] :: baa (sound made by sheep);
|
||||||
|
#bee INTERJ [DAXFS] :: baa; sound made by a sheep;
|
||||||
|
#beia INTERJ [XXXFO] :: see!; (comic word as contemptuous echo of "heia");
|
||||||
|
#bombax INTERJ [XXXFO] :: Splendid! Marvelous!;
|
||||||
|
#buttuti INTERJ [XEIFS] :: Buttuti!; (exclamation used by Hernici of Latinum at religious festivals);
|
||||||
|
#buttutti INTERJ [XEIFO] :: Buttuti!; (exclamation used by Hernici of Latinum at religious festivals);
|
||||||
|
#chaere INTERJ [XXXEO] :: welcome; hail (L+S);
|
||||||
|
#chere INTERJ [XXXDO] :: welcome; hail (L+S);
|
||||||
|
#coco INTERJ [XXXFO] :: crow of cock; cock-a-doodle-doo; hen-clucking (L+S);
|
||||||
|
#cuccuru INTERJ [XXXFO] :: cock-a-doodle-doo!
|
||||||
|
#cucurru INTERJ [XXXFS] :: cock-a-doodle-doo!
|
||||||
|
#deurode INTERJ [XXXFO] :: come hither!; (deuro de); (applied to a catamite);
|
||||||
|
#ecastor INTERJ [XXXDX] :: by Castor (interjection used by women);
|
||||||
|
#ecca INTERJ [XXXFO] :: Here they (neuter) are!; Behold!, Observe!, Lo!;
|
||||||
|
#eccam INTERJ [XXXDO] :: Here she/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccas INTERJ [XXXEO] :: Here they (feminine) are!; Behold!, Observe!, Lo!;
|
||||||
|
#ecce INTERJ [XXXAX] :: behold! see! look! there! here! [ecce eum => here he is];
|
||||||
|
#eccere INTERJ [XXXDO] :: Here she/it is!; Behold!, Observe!, Lo!; There you are!;
|
||||||
|
#eccillam INTERJ [XXXEO] :: There she/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccillud INTERJ [XXXFO] :: There it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccillum INTERJ [XXXEO] :: There he/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccistam INTERJ [XXXFO] :: There she is!; Behold!, Observe!, Lo!;
|
||||||
|
#eccum INTERJ [XXXFO] :: Here he/it is!; Behold!, Observe!, Lo!;
|
||||||
|
#edepol INTERJ [XXXDX] :: by Pollux!;
|
||||||
|
#ehem INTERJ [XXXEC] :: oho! well well!;
|
||||||
|
#eheu INTERJ [XXXDX] :: alas! (exclamation of grief/pain/fear);
|
||||||
|
#ehoi INTERJ [XXXEZ] :: hurrah! (exclamation of happiness);
|
||||||
|
#ei INTERJ [XXXDX] :: Ah! Woe!, oh dear, alas; (of grief or fear);
|
||||||
|
#eia INTERJ [XXXBX] :: how now!, Ha, Good, see! (of joy); see!, Quick! (of urgency/astonishment);
|
||||||
|
#Eli INTERJ [EEQFE] :: My God; [Eli Eli lama sabacthani => My God, my God why hast thou forsaken me];
|
||||||
|
#Eloi INTERJ [EEQFE] :: My God; (Aramaic);
|
||||||
|
#em INTERJ [XXXDX] :: there! (of wonder); here!;
|
||||||
|
#en INTERJ [XXXBX] :: behold! see! lo! here! hey! look at this!;
|
||||||
|
#eu INTERJ [XXXDX] :: well done! bravo!; splendid! (sometimes ironic);
|
||||||
|
#eugae INTERJ [XXXDX] :: oh, good! fine! well done! (delight/pleasure/surprise, sometimes ironic);
|
||||||
|
#euge INTERJ [XXXDX] :: oh, good! fine! well done! (delight/pleasure/surprise, sometimes ironic);
|
||||||
|
#eugepae INTERJ [XXXEC] :: well done!; (sometimes ironic);
|
||||||
|
#euhoe INTERJ [XXXDX] :: cry of joy used by the votaries of Bacchus;
|
||||||
|
#euoeeuhoe INTERJ [XXXEC] :: shout of the Bacchantes;
|
||||||
|
#ha INTERJ [EXXBT] :: Ah!; (distress/regret/pity, appeal/entreaty, surprise/joy, objection/contempt);
|
||||||
|
#hahahae INTERJ [EXXES] :: Ha ha!; (laughter, derision);
|
||||||
|
#hahahe INTERJ [EXXES] :: Ha ha!; (laughter, derision);
|
||||||
|
#Hallelujah INTERJ [EEQCE] :: Halleluia, cry of joy and praise to God; (praise ye Jehovah);
|
||||||
|
#hau INTERJ [XXXFS] :: oh! ow! oh dear! goodness gracious! (used by women to express consternation);
|
||||||
|
#have INTERJ [XXXDX] :: hail!, formal expression of greetings;
|
||||||
|
#hei INTERJ [XXXDX] :: Ah! Woe!, oh dear, alas; (exclamation expressing anguish, grief or fear);
|
||||||
|
#heia INTERJ [XXXBX] :: how now!, Ha, Good, see! (of joy); see!, Quick! (of urgency/astonishment);
|
||||||
|
#Heli INTERJ [EEQFW] :: My God; [~ ~ lemma sabacthani => My God, my God why hast thou forsaken me];
|
||||||
|
#hem INTERJ [XXXCO] :: what ' s that? (surprise/concern); Ah!/alas! (unhappiness); there/here! (wonder);
|
||||||
|
#hercle INTERJ [XXXDX] :: By Hercules!; assuredly, indeed;
|
||||||
|
#hercule INTERJ [XXXDX] :: by Hercules!; assuredly, indeed;
|
||||||
|
#heu INTERJ [XXXAX] :: oh! ah! alas! (an expression of dismay or pain);
|
||||||
|
#heus INTERJ [XXXDX] :: hey!, ho!, ho there!, listen!;
|
||||||
|
#Hosanna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#Hosianna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#hui INTERJ [XXXDX] :: whee!, wow!; sound of surprise or approbation not unlike "whee";
|
||||||
|
#ilicet INTERJ [XXXCO] :: you may go/off with you; it ' s over; at once; [~ malam crucem => to Hell with];
|
||||||
|
#Io INTERJ [XXXAO] :: Yo!; Hurrah! (ritual exclamation of strong emotion/joy); Ho!; Look!; Quick!;
|
||||||
|
#lema INTERJ [EEQFW] :: Eli Eli lama sabacthani/My God, my God why hast thou forsaken me Matthew 27:46;
|
||||||
|
#lo INTERJ [EXXFP] :: Lo!; (magic word to cure bite of mad dog);
|
||||||
|
#maranatha INTERJ [DEXEP] :: our Lord cometh; (Aramaic through Greek);
|
||||||
|
#mecastor INTERJ [XXXDO] :: by Castor!; (oath used by women);
|
||||||
|
#mehercle INTERJ [XXXDX] :: By Hercules! assuredly, indeed;
|
||||||
|
#mehercule INTERJ [XXXDX] :: by Hercules! assuredly, indeed;
|
||||||
|
#mehercules INTERJ [XXXDX] :: by Hercules! assuredly, indeed;
|
||||||
|
#o INTERJ [XXXAX] :: Oh!;
|
||||||
|
#oh INTERJ [XXXDX] :: oh! ah!;
|
||||||
|
#ohe INTERJ [XXXDX] :: hey! hey there!;
|
||||||
|
#oi INTERJ [XXXEC] :: oh! ah!;
|
||||||
|
#oiei INTERJ [XXXDS] :: oh dear; (lamentation);
|
||||||
|
#Osanna INTERJ [DEQEE] :: Hosanna, "God save", a cry of praise (Hebrew);
|
||||||
|
#phy INTERJ [XXXFO] :: pish! tush!; (expression of disgust);
|
||||||
|
#Pol INTERJ [XXXDX] :: by Pollux; truly; really;
|
||||||
|
#qualiter ADV [XXXDX] :: as, just as; in what/which way/state/manner (INTERJ), how;
|
||||||
|
#ridiculum INTERJ [XXXEO] :: the idea/question is absurd/ridiculous!;
|
||||||
|
#st INTERJ [XXXDX] :: hush! hist!;
|
||||||
|
#tat INTERJ [BXXFS] :: what! (Plautus);
|
||||||
|
#triumphe INTERJ [XXXFS] :: triumphant!;
|
||||||
|
#va INTERJ [DXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
|
#vae INTERJ [XXXBX] :: alas, woe, ah; oh dear; (Vae, puto deus fio. - Vespasian); Bah!, Curses!;
|
||||||
|
#vah INTERJ [XXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
|
#vaha INTERJ [BXXCO] :: Ha!/oh!/ah!; (exclamation of pain/dismay, of contempt/anger, of surprise/joy);
|
||||||
19641
src/latin/dict/parts/DICTPAGE.N
Normal file
19641
src/latin/dict/parts/DICTPAGE.N
Normal file
File diff suppressed because it is too large
Load Diff
129
src/latin/dict/parts/DICTPAGE.NUM
Normal file
129
src/latin/dict/parts/DICTPAGE.NUM
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
#amb NUM [XXXBO] :: both; two of pair; two considered together, both parties; each of two;
|
||||||
|
#bes NUM [XXXCO] :: two thirds; [bes alter => one and two thirds];
|
||||||
|
#biscentum, biscentesimus -a -um, biscenteni -ae -a, biscentie(n)s NUM [XXXCE] :: two hundred;
|
||||||
|
#bisen NUM [XXXFW] :: twelve each/apiece/times/at a time; by twelves; (twice six);
|
||||||
|
#centensim NUM [XXXCO] :: one hundredth; (part/in series);
|
||||||
|
#centensum NUM [BXXEG] :: one hundredth; (part/in series);
|
||||||
|
#centum, centesimus -a -um, centeni -ae -a, centie(n)s NUM [XXXAO] :: one hundred;
|
||||||
|
#decem, decimus -a -um, deni -ae -a, decie(n)s NUM [XXXBO] :: ten; (ten men);
|
||||||
|
#decum NUM [XXXCO] :: tenth; (~ unda/fluctus => 10th wave, of great size); [cum decumo => tenfold];
|
||||||
|
#des NUM [AXXEO] :: two thirds; [bes alter => one and two thirds];
|
||||||
|
#ducentensim NUM [BXXEG] :: two hundredth;
|
||||||
|
#ducentensum NUM [BXXEG] :: two hundredth;
|
||||||
|
#ducenti -ae -a, ducentesimus -a -um, duceni -ae -a, ducentie(n)s NUM [XXXBX] :: two hundred;
|
||||||
|
#duo -ae o, secundus -a -um, bini -ae -a, bis NUM [XXXAX] :: two (pl.);
|
||||||
|
#duodecim, duodecimus -a -um, duodeni -ae -a, duodecie(n)s NUM [XXXAX] :: twelve;
|
||||||
|
#duodecum NUM [BXXCG] :: twelve;
|
||||||
|
#duodetriginta, duodetricesimus -a -um, duodetriceni -ae -a, duodetricie(n)s NUM [XXXEX] :: twenty eight;
|
||||||
|
#duodevicensim NUM [BXXCG] :: eighteen;
|
||||||
|
#duodevicensum NUM [BXXCG] :: eighteen;
|
||||||
|
#duodevigensim NUM [BXXFG] :: eighteenth;
|
||||||
|
#duodevigensum NUM [BXXFG] :: eighteenth;
|
||||||
|
#duodeviginti, duodevicesimus -a -um, duodeviceni -ae -a, duodevicie(n)s NUM [XXXDX] :: eighteen;
|
||||||
|
#is, ea, id PRON [XXXAX] :: he/she/it/they (by GENDER/NUMBER); DEMONST: that, he/she/it, they/them;
|
||||||
|
#mill NUM [XXXAX] :: thousand; a thousand; [mille passuum => thousand paces = a mile];
|
||||||
|
#mille, millesimus -a -um, milleni -ae -a, milie(n)s NUM [XXXAX] :: thousand; a thousand; [mille passuum => thousand paces = a mile];
|
||||||
|
#millensim NUM [BXXEG] :: thousandth;
|
||||||
|
#millensum NUM [BXXEG] :: thousandth;
|
||||||
|
#multot NUM [XXXCZ] :: many times;
|
||||||
|
#nonagensim NUM [BXXEG] :: ninetieth;
|
||||||
|
#nonagensum NUM [BXXEG] :: ninetieth;
|
||||||
|
#nonaginta, nonagesimus -a -um, nonageni -ae -a, nonagie(n)s NUM [XXXBX] :: ninety;
|
||||||
|
#nongentensim NUM [BXXEG] :: nine hundredth;
|
||||||
|
#nongentensum NUM [BXXEG] :: nine hundredth;
|
||||||
|
#nongenti -ae -a, nongentesimus -a -um, nongeni -ae -a, noningentie(n)s NUM [XXXBX] :: nine hundred;
|
||||||
|
#novem, nonus -a -um, noveni -ae -a, novie(n)s NUM [XXXBX] :: nine;
|
||||||
|
#novendecim NUM [XXXDX] :: nineteen;
|
||||||
|
#octavodecem, octavodecimus -a -um, octavodeni -ae -a, octavidecie(n)s NUM [EXXET] :: eighteen;
|
||||||
|
#octingentensim NUM [BXXEG] :: eight hundredth;
|
||||||
|
#octingentensum NUM [BXXEG] :: eight hundredth;
|
||||||
|
#octingenti -ae -a, octingentesimus -a -um, octingeni -ae -a, octingentie(n)s NUM [XXXBX] :: eight hundred;
|
||||||
|
#octo, octavus -a -um, octoni -ae -a, octie(n)s NUM [XXXAX] :: eight;
|
||||||
|
#octodecim NUM [XXXDX] :: eighteen;
|
||||||
|
#octogensim NUM [BXXEG] :: eightieth;
|
||||||
|
#octogensum NUM [BXXEG] :: eightieth;
|
||||||
|
#octoginta, octogesimus -a -um, octogeni -ae -a, octogie(n)s NUM [XXXBX] :: eighty;
|
||||||
|
#plur NUM [DXXES] :: often, frequently; sometimes; several/many times (Bee);
|
||||||
|
#plus, pluris N (3rd) N [XXXDX] :: more, too much, more than enough; more than (w/NUM); higher price/value (GEN);
|
||||||
|
#quadragensim NUM [BXXEG] :: fortieth;
|
||||||
|
#quadragensum NUM [BXXEG] :: fortieth;
|
||||||
|
#quadraginta, quadragesimus -a -um, quadrageni -ae -a, quadragie(n)s NUM [XXXBX] :: forty;
|
||||||
|
#quadrin NUM [BXXEG] :: four each/apiece/times/fold (how many each);
|
||||||
|
#quadringentensim NUM [BXXEG] :: four hundredth;
|
||||||
|
#quadringentensum NUM [BXXEG] :: four hundredth;
|
||||||
|
#quadringenti -ae -a, quadringentesimus -a -um, quadringeni -ae -a, quadringentie(n)s NUM [XXXBX] :: four hundred;
|
||||||
|
#quartadecem, quartadecimus -a -um, quartadeni -ae -a, quartadecie(n)s NUM [XXXEX] :: fourteen;
|
||||||
|
#quattor NUM [XXXES] :: four;
|
||||||
|
#quattuor, quartus -a -um, quaterni -ae -a, - NUM [XXXAO] :: four;
|
||||||
|
#quattuordecim, -, -, quatterdecie(n)s NUM [XXXCO] :: fourteen; (the 14 front theater rows reserved for equestrian order);
|
||||||
|
#quatuor NUM [XXXDO] :: four;
|
||||||
|
#quatuordecim, -, -, quaterdecie(n)s NUM [XXXDS] :: fourteen;
|
||||||
|
#quinct NUM [BXXAG] :: five;
|
||||||
|
#quindecim, quindecimus -a -um, quindeci -ae -a, quindecie(n)s NUM [XXXCO] :: fifteen;
|
||||||
|
#quingentensim NUM [BXXEG] :: five hundredth;
|
||||||
|
#quingentensum NUM [BXXEG] :: five hundredth;
|
||||||
|
#quingenti -ae -a, quingentesimus -a -um, quingeni -ae -a, quingentie(n)s NUM [XXXBX] :: five hundred;
|
||||||
|
#quinquagensim NUM [BXXEG] :: fiftieth;
|
||||||
|
#quinquagensum NUM [BXXEG] :: fiftieth;
|
||||||
|
#quinquaginta, quinquagesimus -a -um, quinquageni -ae -a, quinquagie(n)s NUM [XXXBX] :: fifty;
|
||||||
|
#quinque, quintus -a -um, quini -ae -a, quinquie(n)s NUM [XXXAX] :: five;
|
||||||
|
#quintadecem, quintadecimus -a -um, quintadeni -ae -a, quintadecie(n)s NUM [FXXET] :: fifteen;
|
||||||
|
#quotquot NUM [XXXDX] :: however many;
|
||||||
|
#sedecim, -, -, sedecie(n)s NUM [XXXDX] :: sixteen;
|
||||||
|
#septem, septimus -a -um, septeni -ae -a, septie(n)s NUM [XXXAX] :: seven;
|
||||||
|
#septemdecim NUM [XXXEC] :: seventeen;
|
||||||
|
#septendecim NUM [XXXDX] :: seventeen;
|
||||||
|
#septim NUM [BXXEG] :: seven;
|
||||||
|
#septingentensim NUM [BXXEG] :: seven hundredth;
|
||||||
|
#septingentensum NUM [BXXEG] :: seven hundredth;
|
||||||
|
#septingenti -ae -a, septingentesimus -a -um, septingeni -ae -a, septingentie(n)s NUM [XXXBX] :: seven hundred;
|
||||||
|
#septuagensim NUM [BXXEG] :: seventieth;
|
||||||
|
#septuagensum NUM [BXXEG] :: seventieth;
|
||||||
|
#septuaginta, septuagesimus -a -um, septuageni -ae -a, septuagie(n)s NUM [XXXBX] :: seventy;
|
||||||
|
#septum NUM [XXXEG] :: seven; (primarily used in compound words);
|
||||||
|
#sescentensim NUM [BXXEG] :: six hundredth;
|
||||||
|
#sescentensum NUM [BXXEG] :: six hundredth;
|
||||||
|
#sescenti -ae -a, sescentesimus -a -um, sesceni -ae -a, sexcentie(n)s NUM [XXXBX] :: six hundred;
|
||||||
|
#sesterti NUM [XXXDX] :: two and a half (2 1/2);
|
||||||
|
#sex, sextus -a -um, seni -ae -a, sexie(n)s NUM [XXXAX] :: six;
|
||||||
|
#sexagensim NUM [BXXEG] :: sixtieth;
|
||||||
|
#sexagensum NUM [BXXEG] :: sixtieth;
|
||||||
|
#sexaginta, sexagesimus -a -um, sexageni -ae -a, sexagie(n)s NUM [XXXBX] :: sixty;
|
||||||
|
#terci NUM [FXXAM] :: three;
|
||||||
|
#toc NUM [EXXDX] :: so often, so many times;
|
||||||
|
#tot NUM [XXXAO] :: as/so often, so many times, such a great number of times; that number of times;
|
||||||
|
#tot NUM [XXXDX] :: so many, such a number of; as many, so many; such a great number of;
|
||||||
|
#trecentensim NUM [BXXEG] :: three hundredth;
|
||||||
|
#trecentensum NUM [BXXEG] :: three hundredth;
|
||||||
|
#trecenti -ae -a, trecentesimus -a -um, treceni -ae -a, trecentie(n)s NUM [XXXBQ] :: three hundred; (used to denote a large number);
|
||||||
|
#tredecim, -, -, terdecie(n)s NUM [XXXDX] :: thirteen;
|
||||||
|
#tres -es -ia, tertius -a -um, terni -ae -a, ter NUM [XXXAX] :: three;
|
||||||
|
#tricensim NUM [BXXEG] :: thirtieth;
|
||||||
|
#tricensum NUM [BXXEG] :: thirtieth;
|
||||||
|
#trigen NUM [DXXEO] :: thirtieth;
|
||||||
|
#trigensim NUM [DXXEO] :: thirtieth;
|
||||||
|
#trigesim NUM [XXXES] :: thirty;
|
||||||
|
#triginta, tricesimus -a -um, triceni -ae -a, tricie(n)s NUM [XXXBX] :: thirty;
|
||||||
|
#trin NUM [XXXEX] :: three each/apiece/times/fold; triple; three in any case; three at a time;
|
||||||
|
#tripl NUM [XXXDX] :: threefold, triple; three;
|
||||||
|
#undecim, undecimus -a -um, undeni -ae -a, undecie(n)s NUM [XXXAX] :: eleven;
|
||||||
|
#undecum NUM [BXXCG] :: eleven;
|
||||||
|
#undenonaginta, undenonagesimus -a -um, undenonageni -ae -a, undenonagie(n)s NUM [XXXFS] :: eighty-nine;
|
||||||
|
#undeoctoginta, undeoctogesimus -a -um, undeoctogeni -ae -a, undeoctogie(n)s NUM [XXXFS] :: seventy-nine;
|
||||||
|
#undequadraginta, undequadragesimus -a -um, undequadrageni -ae -a, undequadragie(n)s NUM [XXXFS] :: thirty-nine;
|
||||||
|
#undequinquaginta, undequinquagesimus -a -u, undequinquageni -ae -a, undequinquagie(n)s NUM [XXXFS] :: forty-nine;
|
||||||
|
#undesexaginta, undesexagesimus -a -um, undesexageni -ae -a, undesexagie(n)s NUM [XXXFS] :: fifty-nine;
|
||||||
|
#undetricensim NUM [BXXEG] :: twenty ninth;
|
||||||
|
#undetricensum NUM [BXXEG] :: twenty ninth;
|
||||||
|
#undetriginta, undetricesimus -a -um, undetriceni -ae -a, undetricie(n)s NUM [XXXEX] :: twenty nine;
|
||||||
|
#undevicensim NUM [BXXEG] :: nineteenth;
|
||||||
|
#undevicensum NUM [BXXEG] :: nineteenth;
|
||||||
|
#undevigensim NUM [BXXFG] :: nineteenth;
|
||||||
|
#undevigensum NUM [BXXFG] :: nineteenth;
|
||||||
|
#undeviginti, undevicesimus -a -um, undeviceni -ae -a, undevicie(n)s NUM [XXXDX] :: nineteen;
|
||||||
|
#unus -a -um, primus -a -um, singuli -ae -a, semel NUM [XXXAX] :: one;
|
||||||
|
#vicensim NUM [BXXEG] :: twentieth;
|
||||||
|
#vicensum NUM [BXXEG] :: twentieth;
|
||||||
|
#vigensim NUM [BXXCG] :: twenty;
|
||||||
|
#vigensum NUM [BXXBG] :: twenty;
|
||||||
|
#viginti, vicesimus -a -um, viceni -ae -a, vicie(n)s NUM [XXXAX] :: twenty;
|
||||||
12
src/latin/dict/parts/DICTPAGE.PACK
Normal file
12
src/latin/dict/parts/DICTPAGE.PACK
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#quicum PACK [XXXCX] :: (w/-cum) only ABL with whom?, with which?;
|
||||||
|
#quicumque, quaecumque, quodcumque PACK [XXXCX] :: (w/-cumque) who/whatever, no matter who/what, in any time/way, however small;
|
||||||
|
#quicunque, quaecunque, quodcunque PACK [XXXCX] :: (w/-cunque) who/whatever, no matter who/what, in any time/way, however small;
|
||||||
|
#quidam, quaedam, quoddam PACK [XXXCX] :: (w/-dam) certain; as INDEF a certain thing; somebody, one, something;
|
||||||
|
#quilibet, quaelibet, quodlibet PACK [XXXCX] :: (w/-libet) whatever, whichever, no matter, what you please; any whatever;
|
||||||
|
#quilibet, quaelibet, quodlibet PACK [XXXCX] :: (w/-libet) whoever/whatever you please; anyone/anything whatever;
|
||||||
|
#quilubet, quaelubet, quodlubet PACK [XXXCX] :: (w/-lubet) whatever, whichever, no matter, what you please; any whatever;
|
||||||
|
#quilubet, quaelubet, quodlubet PACK [XXXCX] :: (w/-lubet) whoever/whatever you please; anyone/anything whatever;
|
||||||
|
#quinam, quaenam, quodnam PACK [XXXCX] :: (w/-nam) who then; who in the world; which, I insist;
|
||||||
|
#quisnam, quaenam, quidnam PACK INTERR [XXXCX] :: (w/-nam) who?; what?; who then?; who in the world?;
|
||||||
|
#quisque, quaeque, quodque PACK [XXXCX] :: (w/-que) each, each one; every, everybody, everything (more than 2); whatever;
|
||||||
|
#quivis, quaevis, quodvis PACK [XXXCX] :: (w/-vis) any whatever; anyone/anything you wish;
|
||||||
93
src/latin/dict/parts/DICTPAGE.PREP
Normal file
93
src/latin/dict/parts/DICTPAGE.PREP
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#a PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin/time); after (reference);
|
||||||
|
#a PREP ACC [XXXCO] :: ante, abb. a.; [in calendar expression a. d. = ante diem => before the day];
|
||||||
|
#ab PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin/time); after (reference);
|
||||||
|
#abante PREP ABL [XXXES] :: from before/in front of;
|
||||||
|
#abs PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin (time); after (reference);
|
||||||
|
#absque PREP ABL [XXXCO] :: without, apart from, away from; but for; except for; were it not for; (early);
|
||||||
|
#abusque PREP ABL [XXXCL] :: all the way from; from/since the time of;
|
||||||
|
#ad PREP ACC [XXXAO] :: to, up to, towards; near, at; until, on, by; almost; according to; about w/NUM;
|
||||||
|
#adusque PREP ACC [XXXCO] :: all the way/right up to, as far as, to the point of (space/time/number/degree);
|
||||||
|
#adversum PREP ACC [XXXAO] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#adversus PREP ACC [XXXAO] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#advorsum PREP ACC [BXXAX] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#advorsus PREP ACC [BXXAX] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#ante PREP ACC [XXXAO] :: in front/presence of, in view; before (space/time/degree); over against, facing;
|
||||||
|
#apsque PREP ABL [XXXCO] :: without, apart from, away from; but for; except for; were it not for; (early);
|
||||||
|
#apud PREP ACC [XXXAO] :: at, by, near, among; at the house of; before, in the presence/writings/view of;
|
||||||
|
#aput PREP ACC [XXXAO] :: at, by, near, among; at the house of; before, in presence/writings/view/eyes of;
|
||||||
|
#callim PREP ACC [AXXBO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#cata PREP ABL [DXXFS] :: by; (in distributed sense); [cata mane mane => morning by morning];
|
||||||
|
#causa PREP GEN [XXXAO] :: for sake/purpose of (preceded by GEN.), on account/behalf of, with a view to;
|
||||||
|
#caussa PREP GEN [XXXAO] :: for the sake/purpose of (preceded by GEN), on account/behalf of, with view to;
|
||||||
|
#circa PREP ACC [XXXAO] :: around, on bounds of; about/near (space/time/numeral); concerning; with;
|
||||||
|
#circiter PREP ACC [XXXDO] :: about, around, near (space/time/numeral); towards;
|
||||||
|
#circum PREP ACC [XXXBO] :: around, about, among, near (space/time), in neighborhood of; in circle around;
|
||||||
|
#cis PREP ACC [XXXCO] :: on/to this/near side of, short of; before, within (time);
|
||||||
|
#citra PREP ACC [XXXAO] :: on this/near side of, short of; before; below, less than; without regard to;
|
||||||
|
#clam PREP ABL [XXXEO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#clam PREP ACC [XXXCO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#clanculum PREP ACC [XXXFO] :: without knowledge of, secret from;
|
||||||
|
#com PREP ABL [AXXAC] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#com PREP ABL [AXXAC] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#contra PREP ACC [XXXAO] :: against, facing, opposite; weighed against; as against; in resistance/reply to;
|
||||||
|
#contra PREP ACC [XXXAO] :: |contrary to, not in conformance with; the reverse of; otherwise than;
|
||||||
|
#contra PREP ACC [XXXAO] :: ||towards/up to, in direction of; directly over/level with; to detriment of;
|
||||||
|
#coram PREP ABL [XXXCO] :: in the presence of, before; (may precede or follow object); personally (L+S);
|
||||||
|
#cum PREP ABL [XXXAO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#cum PREP ABL [XXXAO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#de PREP ABL [XXXAO] :: down/away from, from, off; about, of, concerning; according to; with regard to;
|
||||||
|
#desub PREP ABL [XXXFO] :: below, under; beneath;
|
||||||
|
#desuper PREP ACC [XXXEO] :: over, above;
|
||||||
|
#dextra PREP ACC [DXXES] :: on the right of; on the right-hand side of;
|
||||||
|
#e PREP ABL [XXXAX] :: out of, from; by reason of; according to; because of, as a result of;
|
||||||
|
#erga PREP ACC [XXXBX] :: towards, opposite (friendly);
|
||||||
|
#ex PREP ABL [XXXAX] :: out of, from; by reason of; according to; because of, as a result of;
|
||||||
|
#extra PREP ACC [XXXAX] :: outside of, beyond, without, beside; except;
|
||||||
|
#fine PREP ABL [XXXDX] :: up to;
|
||||||
|
#fini PREP ABL [XXXDX] :: up to;
|
||||||
|
#in PREP ABL [XXXAX] :: in, on, at (space); in accordance with/regard to/the case of; within (time);
|
||||||
|
#in PREP ACC [XXXAX] :: into; about, in the mist of; according to, after (manner); for; to, among;
|
||||||
|
#infra PREP ACC [XXXAX] :: below, lower than; later than;
|
||||||
|
#insuper PREP ACC [XXXBX] :: above, on top; in addition (to); over;
|
||||||
|
#inter PREP ACC [XXXAX] :: between, among; during; [inter se => to each other, mutually];
|
||||||
|
#intra PREP ACC [XXXAX] :: within, inside; during; under;
|
||||||
|
#juxta PREP ACC [XXXBX] :: near, (very) close to, next to; hard by, adjoining; on a par with; like;
|
||||||
|
#juxtim PREP ACC [XXXDX] :: next to, beside;
|
||||||
|
#ob PREP ACC [XXXAX] :: on account of, for the sake of, for; instead of; right before;
|
||||||
|
#palam PREP ABL [XXXDS] :: in presence of;
|
||||||
|
#penes PREP ACC [XXXDX] :: in the power of, in the hands of (person); belonging to;
|
||||||
|
#per PREP ACC [XXXAX] :: through (space); during (time); by, by means of;
|
||||||
|
#pone PREP ACC [XXXDX] :: behind (in local relations) (rare);
|
||||||
|
#post PREP ACC [XXXAX] :: behind (space), after (time); subordinate to (rank);
|
||||||
|
#prae PREP ABL [XXXAX] :: before, in front; in view of, because of;
|
||||||
|
#praeter PREP ACC [XXXAX] :: besides, except, contrary to; beyond (rank), in front of, before; more than;
|
||||||
|
#praeterquam PREP ACC [XXXDX] :: except, besides, beyond, contrary to;
|
||||||
|
#pro PREP ABL [XXXAX] :: on behalf of; before; in front/instead of; for; about; according to; as, like;
|
||||||
|
#prope PREP ACC [XXXAX] :: near;
|
||||||
|
#propter PREP ACC [XXXAX] :: near; on account of; by means of; because of;
|
||||||
|
#qum PREP ABL [BXXEO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#qum PREP ABL [BXXEO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#quom PREP ABL [BXXDO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#quom PREP ABL [BXXDO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#quum PREP ABL [DXXCS] :: with, together with, at the same time with; under; at; along with, amid;
|
||||||
|
#secundum PREP ACC [XXXBS] :: after; according to; along/next to, following/immediately after, close behind;
|
||||||
|
#secus PREP ACC [XXXCO] :: by, beside, alongside; in accordance with;
|
||||||
|
#sine PREP ABL [XXXAX] :: without; (sometimes after object); lack; [Johannis sine Terra => John Lackland];
|
||||||
|
#sub PREP ABL [XXXAX] :: under, beneath, behind, at the foot of (rest); within; during, about (time);
|
||||||
|
#sub PREP ACC [XXXAX] :: under; up to, up under, close to (of motion); until, before, up to, about;
|
||||||
|
#subter PREP ABL [XXXEO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff); (usu. ACC);
|
||||||
|
#subter PREP ACC [XXXCO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff);
|
||||||
|
#super PREP ABL [XXXAX] :: over (space), above, upon, in addition to; during (time); concerning; beyond;
|
||||||
|
#super PREP ACC [XXXBX] :: upon/on; over, above, about; besides (space); during (time); beyond (degree);
|
||||||
|
#supra PREP ACC [XXXAX] :: above, beyond; over; more than; in charge of, in authority over;
|
||||||
|
#supter PREP ABL [XXXEO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff); (usu. ACC);
|
||||||
|
#supter PREP ACC [XXXCO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff);
|
||||||
|
#tenus PREP ABL [XXXDX] :: as far as, to the extent of, up to, down to;
|
||||||
|
#trans PREP ACC [XXXDX] :: across, over; beyond; on the other side; (only local relations);
|
||||||
|
#uls PREP ACC [XXXDX] :: beyond, on the other side, on that side; more than, besides;
|
||||||
|
#ultra PREP ACC [XXXDX] :: beyond, on the other side, on that side; more than, besides;
|
||||||
|
#usque PREP ACC [XXXDX] :: up to (name of town or locality);
|
||||||
|
#versum PREP ACC [XXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#versus PREP ACC [XXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#vorsum PREP ACC [BXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#vorsus PREP ACC [BXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
94
src/latin/dict/parts/DICTPAGE.PREP~
Normal file
94
src/latin/dict/parts/DICTPAGE.PREP~
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
#a PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin/time); after (reference);
|
||||||
|
#a PREP ACC [XXXCO] :: ante, abb. a.; [in calendar expression a. d. = ante diem => before the day];
|
||||||
|
#ab PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin/time); after (reference);
|
||||||
|
#abante PREP ABL [XXXES] :: from before/in front of;
|
||||||
|
#abs PREP ABL [XXXAO] :: by (agent), from (departure, cause, remote origin (time); after (reference);
|
||||||
|
#absque PREP ABL [XXXCO] :: without, apart from, away from; but for; except for; were it not for; (early);
|
||||||
|
#abusque PREP ABL [XXXCL] :: all the way from; from/since the time of;
|
||||||
|
#ad PREP ACC [XXXAO] :: to, up to, towards; near, at; until, on, by; almost; according to; about w/NUM;
|
||||||
|
#adusque PREP ACC [XXXCO] :: all the way/right up to, as far as, to the point of (space/time/number/degree);
|
||||||
|
#adversum PREP ACC [XXXAO] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#adversus PREP ACC [XXXAO] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#advorsum PREP ACC [BXXAX] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#advorsus PREP ACC [BXXAX] :: facing, opposite, against, towards; contrary to; face to face, in presence of;
|
||||||
|
#ante PREP ACC [XXXAO] :: in front/presence of, in view; before (space/time/degree); over against, facing;
|
||||||
|
#apsque PREP ABL [XXXCO] :: without, apart from, away from; but for; except for; were it not for; (early);
|
||||||
|
#apud PREP ACC [XXXAO] :: at, by, near, among; at the house of; before, in the presence/writings/view of;
|
||||||
|
#aput PREP ACC [XXXAO] :: at, by, near, among; at the house of; before, in presence/writings/view/eyes of;
|
||||||
|
#callim PREP ACC [AXXBO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#cata PREP ABL [DXXFS] :: by; (in distributed sense); [cata mane mane => morning by morning];
|
||||||
|
#causa PREP GEN [XXXAO] :: for sake/purpose of (preceded by GEN.), on account/behalf of, with a view to;
|
||||||
|
#caussa PREP GEN [XXXAO] :: for the sake/purpose of (preceded by GEN), on account/behalf of, with view to;
|
||||||
|
#circa PREP ACC [XXXAO] :: around, on bounds of; about/near (space/time/numeral); concerning; with;
|
||||||
|
#circiter PREP ACC [XXXDO] :: about, around, near (space/time/numeral); towards;
|
||||||
|
#circum PREP ACC [XXXBO] :: around, about, among, near (space/time), in neighborhood of; in circle around;
|
||||||
|
#cis PREP ACC [XXXCO] :: on/to this/near side of, short of; before, within (time);
|
||||||
|
#citra PREP ACC [XXXAO] :: on this/near side of, short of; before; below, less than; without regard to;
|
||||||
|
#clam PREP ABL [XXXEO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#clam PREP ACC [XXXCO] :: without knowledge of, unknown to; concealed/secret from; (rarely w/ABL);
|
||||||
|
#clanculum PREP ACC [XXXFO] :: without knowledge of, secret from;
|
||||||
|
#com PREP ABL [AXXAC] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#com PREP ABL [AXXAC] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#contra PREP ACC [XXXAO] :: against, facing, opposite; weighed against; as against; in resistance/reply to;
|
||||||
|
#contra PREP ACC [XXXAO] :: |contrary to, not in conformance with; the reverse of; otherwise than;
|
||||||
|
#contra PREP ACC [XXXAO] :: ||towards/up to, in direction of; directly over/level with; to detriment of;
|
||||||
|
#coram PREP ABL [XXXCO] :: in the presence of, before; (may precede or follow object); personally (L+S);
|
||||||
|
#cum PREP ABL [XXXAO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#cum PREP ABL [XXXAO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#de PREP ABL [XXXAO] :: down/away from, from, off; about, of, concerning; according to; with regard to;
|
||||||
|
#desub PREP ABL [XXXFO] :: below, under; beneath;
|
||||||
|
#desuper PREP ACC [XXXEO] :: over, above;
|
||||||
|
#dextra PREP ACC [DXXES] :: on the right of; on the right-hand side of;
|
||||||
|
#e PREP ABL [XXXAX] :: out of, from; by reason of; according to; because of, as a result of;
|
||||||
|
#erga PREP ACC [XXXBX] :: towards, opposite (friendly);
|
||||||
|
#ex PREP ABL [XXXAX] :: out of, from; by reason of; according to; because of, as a result of;
|
||||||
|
#extra PREP ACC [XXXAX] :: outside of, beyond, without, beside; except;
|
||||||
|
#fine PREP ABL [XXXDX] :: up to;
|
||||||
|
#fini PREP ABL [XXXDX] :: up to;
|
||||||
|
#in PREP ABL [XXXAX] :: in, on, at (space); in accordance with/regard to/the case of; within (time);
|
||||||
|
#in PREP ACC [XXXAX] :: into; about, in the mist of; according to, after (manner); for; to, among;
|
||||||
|
#incircum ADV [XXXFS] :: round about; (L+S calls it PREP);
|
||||||
|
#infra PREP ACC [XXXAX] :: below, lower than; later than;
|
||||||
|
#insuper PREP ACC [XXXBX] :: above, on top; in addition (to); over;
|
||||||
|
#inter PREP ACC [XXXAX] :: between, among; during; [inter se => to each other, mutually];
|
||||||
|
#intra PREP ACC [XXXAX] :: within, inside; during; under;
|
||||||
|
#juxta PREP ACC [XXXBX] :: near, (very) close to, next to; hard by, adjoining; on a par with; like;
|
||||||
|
#juxtim PREP ACC [XXXDX] :: next to, beside;
|
||||||
|
#ob PREP ACC [XXXAX] :: on account of, for the sake of, for; instead of; right before;
|
||||||
|
#palam PREP ABL [XXXDS] :: in presence of;
|
||||||
|
#penes PREP ACC [XXXDX] :: in the power of, in the hands of (person); belonging to;
|
||||||
|
#per PREP ACC [XXXAX] :: through (space); during (time); by, by means of;
|
||||||
|
#pone PREP ACC [XXXDX] :: behind (in local relations) (rare);
|
||||||
|
#post PREP ACC [XXXAX] :: behind (space), after (time); subordinate to (rank);
|
||||||
|
#prae PREP ABL [XXXAX] :: before, in front; in view of, because of;
|
||||||
|
#praeter PREP ACC [XXXAX] :: besides, except, contrary to; beyond (rank), in front of, before; more than;
|
||||||
|
#praeterquam PREP ACC [XXXDX] :: except, besides, beyond, contrary to;
|
||||||
|
#pro PREP ABL [XXXAX] :: on behalf of; before; in front/instead of; for; about; according to; as, like;
|
||||||
|
#prope PREP ACC [XXXAX] :: near;
|
||||||
|
#propter PREP ACC [XXXAX] :: near; on account of; by means of; because of;
|
||||||
|
#qum PREP ABL [BXXEO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#qum PREP ABL [BXXEO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#quom PREP ABL [BXXDO] :: with, together/jointly/along/simultaneous with, amid; supporting; attached;
|
||||||
|
#quom PREP ABL [BXXDO] :: |under command/at the head of; having/containing/including; using/by means of;
|
||||||
|
#quum PREP ABL [DXXCS] :: with, together with, at the same time with; under; at; along with, amid;
|
||||||
|
#secundum PREP ACC [XXXBS] :: after; according to; along/next to, following/immediately after, close behind;
|
||||||
|
#secus PREP ACC [XXXCO] :: by, beside, alongside; in accordance with;
|
||||||
|
#sine PREP ABL [XXXAX] :: without; (sometimes after object); lack; [Johannis sine Terra => John Lackland];
|
||||||
|
#sub PREP ABL [XXXAX] :: under, beneath, behind, at the foot of (rest); within; during, about (time);
|
||||||
|
#sub PREP ACC [XXXAX] :: under; up to, up under, close to (of motion); until, before, up to, about;
|
||||||
|
#subter PREP ABL [XXXEO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff); (usu. ACC);
|
||||||
|
#subter PREP ACC [XXXCO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff);
|
||||||
|
#super PREP ABL [XXXAX] :: over (space), above, upon, in addition to; during (time); concerning; beyond;
|
||||||
|
#super PREP ACC [XXXBX] :: upon/on; over, above, about; besides (space); during (time); beyond (degree);
|
||||||
|
#supra PREP ACC [XXXAX] :: above, beyond; over; more than; in charge of, in authority over;
|
||||||
|
#supter PREP ABL [XXXEO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff); (usu. ACC);
|
||||||
|
#supter PREP ACC [XXXCO] :: beneath, under (cover/shelter); towards/at base (of wall/cliff);
|
||||||
|
#tenus PREP ABL [XXXDX] :: as far as, to the extent of, up to, down to;
|
||||||
|
#trans PREP ACC [XXXDX] :: across, over; beyond; on the other side; (only local relations);
|
||||||
|
#uls PREP ACC [XXXDX] :: beyond, on the other side, on that side; more than, besides;
|
||||||
|
#ultra PREP ACC [XXXDX] :: beyond, on the other side, on that side; more than, besides;
|
||||||
|
#usque PREP ACC [XXXDX] :: up to (name of town or locality);
|
||||||
|
#versum PREP ACC [XXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#versus PREP ACC [XXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#vorsum PREP ACC [BXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
|
#vorsus PREP ACC [BXXCO] :: toward, in the direction of; (placed after ACC); -ward (after name of town);
|
||||||
52
src/latin/dict/parts/DICTPAGE.PRON
Normal file
52
src/latin/dict/parts/DICTPAGE.PRON
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#aliqui, aliqua, aliquod PRON [XXXAX] :: any; some;
|
||||||
|
#aliquis, aliquis, aliquid PRON [XXXAX] :: anyone, anybody, anything; someone, something; one or another;
|
||||||
|
#chodchod PRON 1 7 ACC S N [EXXFW] :: whatever; everything/anything (which); valuable merchandise (Souter);
|
||||||
|
#eadem PRON 4 2 ACC P N [XXXBX] :: same, the same, the very same; also; (idem, eadem, idem);
|
||||||
|
#eadem PRON 4 2 NOM P N [XXXBX] :: same, the same, the very same; also; (idem, eadem, idem);
|
||||||
|
#eadem PRON 4 2 NOM S F [XXXBX] :: same, the same, the very same; also; (idem, eadem, idem);
|
||||||
|
#ec PRON 3 1 ACC P N [EXXEW] :: these (pl.); persons/things/conditions present/here/just mentioned; +DEMONS;
|
||||||
|
#ec PRON 3 1 NOM P N [EXXEW] :: these (pl.); persons/things/conditions present/here/just mentioned; +DEMONS;
|
||||||
|
#ec PRON 3 1 NOM S F [EXXEW] :: this; person/thing present/just mentioned/in this place; ((h)(a)ec); +DEMONS;
|
||||||
|
#eccille, eccilla, eccillud PRON [XXXFO] :: that over there;
|
||||||
|
#ego, mei PRON PERS [XXXAX] :: I, me;
|
||||||
|
#eodem PRON 4 2 ABL S X [XXXBX] :: same, the same, the very same; also; (idem, eadem, idem);
|
||||||
|
#eundem PRON 4 2 ACC S M [XXXBX] :: same, the same, the very same; also; (idem, eadem, idem);
|
||||||
|
#hic, haec, hoc PRON [XXXAX] :: this; these (pl.); (also DEMONST);
|
||||||
|
#idem, eadem, idem PRON [XXXAX] :: (w/-dem ONLY, idem, eadem, idem) same, the same, the very same, also;
|
||||||
|
#ille, illa, illud PRON [XXXAX] :: that; those (pl.); also DEMONST; that person/thing; the well known; the former;
|
||||||
|
#ipse, ipsa, ipsum PRON [XXXAO] :: himself/herself/itself; the very/real/actual one; in person; themselves (pl.);
|
||||||
|
#isse, issa, issum PRON [XXXDO] :: himself/herself/itself; the very/actual one; (endearment/colloquial of ipse);
|
||||||
|
#iste, ista, istud PRON [XXXAX] :: that, that of yours, that which you refer to; such;
|
||||||
|
#istic, istaec, istoc PRON [XXXDX] :: that of yours/mentioned by you/at hand;
|
||||||
|
#mei (GEN) PRON REFLEX [XXXCX] :: myself;
|
||||||
|
#nos, nostrum/nostri PRON PERS [XXXAX] :: we (pl.), us;
|
||||||
|
#olle, olla, ollud PRON [BXXDO] :: that; that person/thing; the well known; the former; those (pl.); (ille);
|
||||||
|
#quemquem PRON 1 0 ACC S M [XXXCX] :: whomever; every one who; whomever it be; everyone; each;
|
||||||
|
#qui, quae, qua PRON [XXXAX] :: any; some; someone (preceded by si, nisi, numquid, ne), something, anyone;
|
||||||
|
#qui, quae, quod PRON [XXXAX] :: which?, what?; what kind of?;
|
||||||
|
#qui, quae, quod PRON [XXXAX] :: who, which; (relative pronoun);
|
||||||
|
#quicquam PRON 1 6 ACC S N [XXXCX] :: any; anything; anything whatsoever;
|
||||||
|
#quicquam PRON 1 6 NOM S N [XXXCX] :: any; anything; anything whatsoever;
|
||||||
|
#quicquid PRON 1 6 ACC S N [XXXCX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quicquid PRON 1 6 NOM S N [XXXBX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quidquid PRON 1 6 ACC S N [XXXCX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quidquid PRON 1 6 NOM S N [XXXBX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quippiam PRON 1 0 ACC S N [XXXBO] :: some/any one/thing; unspecified thing/person; certain quanity, a bit; at all;
|
||||||
|
#quippiam PRON 1 0 NOM S N [XXXBO] :: some/any one/thing; unspecified thing/person; certain quanity, a bit; at all;
|
||||||
|
#quis, quis, quid PRON [XXXAX] :: anyone, anybody, anything; someone, something; one or another;
|
||||||
|
#quis, quis, quid PRON [XXXAX] :: who?, which one?, what man?, what thing? (type/nature); what kind of; what?;
|
||||||
|
#quisquis PRON 1 2 NOM S C [XXXBX] :: whoever; every one who; whoever it be; everyone; each;
|
||||||
|
#quodquod PRON 1 7 ACC S N [XXXCX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quodquod PRON 1 7 NOM S N [XXXBX] :: whatever, whatsoever; everything which; each one; each; everything; anything;
|
||||||
|
#quoquo PRON 1 0 ABL S X [XXXCX] :: whoever; whatever, whatsoever; every one who; everything which; each one; each;
|
||||||
|
#seipse, seipsa, seipsum PRON [EXXCE] :: he himself, she herself, it itself; they themselves (pl.);
|
||||||
|
#semetipse, semetipsa, semetipsum PRON [EXXCE] :: he himself, she herself, it itself; they themselves (pl.); (intensive);
|
||||||
|
#sui (GEN) PRON REFLEX [XXXCX] :: him/her/it/ones-self; him/her/it; them (selves) (pl.); each other, one another;
|
||||||
|
#tu, tui PRON PERS [XXXAX] :: you, thee;
|
||||||
|
#tui (GEN) PRON REFLEX [XXXCX] :: yourself, thyself;
|
||||||
|
#unicuique PRON 1 0 DAT S X [XXXDW] :: each one;
|
||||||
|
#uniuscuiusque PRON 1 0 GEN S X [XXXDW] :: each one;
|
||||||
|
#unumquodque PRON 1 0 ACC S M [XXXDW] :: each one;
|
||||||
|
#unusquisque PRON 1 0 NOM S M [XXXDW] :: each one;
|
||||||
|
#vos, vetrum/vetri PRON PERS [XXXCX] :: you (pl.), ye;
|
||||||
|
#vos, votrum/votri PRON PERS [XXXCX] :: you (pl.), ye;
|
||||||
7812
src/latin/dict/parts/DICTPAGE.V
Normal file
7812
src/latin/dict/parts/DICTPAGE.V
Normal file
File diff suppressed because it is too large
Load Diff
11535
src/latin/dict/parts/DictLat.gf
Normal file
11535
src/latin/dict/parts/DictLat.gf
Normal file
File diff suppressed because it is too large
Load Diff
12783
src/latin/dict/parts/DictLatAbs.gf
Normal file
12783
src/latin/dict/parts/DictLatAbs.gf
Normal file
File diff suppressed because it is too large
Load Diff
12784
src/latin/dict/parts/DictLatAbs.gf~
Normal file
12784
src/latin/dict/parts/DictLatAbs.gf~
Normal file
File diff suppressed because it is too large
Load Diff
164
src/latin/dict/parts/parse.pl~
Normal file
164
src/latin/dict/parts/parse.pl~
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
my $wordform = "[\\w()/.\\s-]+" ;
|
||||||
|
my $comment = "(\\[.*)" ;
|
||||||
|
my $gender = "(F|M|N|C|X)";
|
||||||
|
my $vtype = "(TRANS|INTRANS|DEP|SEMIDEP)";
|
||||||
|
my $case = "(ABL|ACC|GEN|DAT)" ;
|
||||||
|
my $declension = "\\((1st|2nd|3rd|4th|5th)\\)";
|
||||||
|
my $interjection = "#($wordform)\\s+INTERJ\\s+$comment";
|
||||||
|
my $adverb = "#(($wordform,\\s+)*$wordform)\\s+ADV\\s+$comment";
|
||||||
|
my $adjective = "#(($wordform,\\s+)*$wordform)\\s+ADJ\\s+$comment";
|
||||||
|
my $conjunction = "#($wordform)\\s+CONJ\\s+$comment";
|
||||||
|
my $noun = "#(($wordform,\\s+)*$wordform)\\s+N\\s+$gender\\s+$comment";
|
||||||
|
my $noun2 = "#(($wordform,\\s+)*$wordform)\\s+N\\s+$declension\\s+$gender\\s+$comment";
|
||||||
|
my $noun3 = "#(($wordform,\\s+)*$wordform)\\s+N\\s+ADJ\\s+$comment";
|
||||||
|
my $prep = "#($wordform)\\s+PREP\\s+$case\\s+$comment";
|
||||||
|
my $verb = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$comment";
|
||||||
|
my $verb2 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$comment";
|
||||||
|
my $verb3 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$vtype\\s+$comment";
|
||||||
|
my $verb4 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$vtype\\s+$comment";
|
||||||
|
my $verb5 = "#(($wordform,\\s+)*$wordform)\\s+V\\s+$declension\\s+$case\\s+$comment";
|
||||||
|
|
||||||
|
my $absheader = "abstract DictLatAbs = Cat ** {\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n\tfun";
|
||||||
|
my $concheader = "concrete DictLat of DictLatAbs = CatLat ** open Prelude,ParadigmsLat in {\n-- extracted from http://archives.nd.edu/whitaker/dictpage.htm\n lin";
|
||||||
|
my $footer = "}";
|
||||||
|
|
||||||
|
open(my $absfh, ">", "DictLatAbs.gf") or die "Can't open > DictLatAbs.gf: $!";
|
||||||
|
open(my $concfh, ">", "DictLat.gf") or die "Can't open > DictLatAbs.gf: $!";
|
||||||
|
|
||||||
|
print $absfh "$absheader\n";
|
||||||
|
print $concfh "$concheader\n";
|
||||||
|
|
||||||
|
while (my $l = <>) {
|
||||||
|
if ($l =~ /$interjection/)
|
||||||
|
{
|
||||||
|
# print "INTERJ Word: $1 -- Comment: $2\n";
|
||||||
|
my $wf = $1 ;
|
||||||
|
$wf =~ s/\s$//g;
|
||||||
|
print $absfh " ".$wf."_Interj : Interj ;\n" ;
|
||||||
|
print $concfh " ".$wf."_Interj = ss \"$wf\" ; \n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adverb/)
|
||||||
|
{
|
||||||
|
# print "ADV Word: $1 -- Comment: $3\n";
|
||||||
|
my $wf = $1 ; # all word forms in one string
|
||||||
|
my $comment = $3;
|
||||||
|
my @wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
map { s/\s$// } @wfs;
|
||||||
|
print $absfh " ".$wfs[0]."_Adv : Adv ;\n" ;
|
||||||
|
if (@wfs == 1)
|
||||||
|
{
|
||||||
|
print $concfh " ".$wfs[0]."_Adv = ss \"".$wfs[0]."\" ;\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# Comparison levels are missing so far
|
||||||
|
print $concfh "-- ".$wfs[0]."_Adv : $wf -- $comment\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$adjective/)
|
||||||
|
{
|
||||||
|
print "ADJ Word: $1 -- Comment: $3\n";
|
||||||
|
my $wf = $1 ; # all word forms in one string
|
||||||
|
my $comment = $3;
|
||||||
|
my @wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
map { s/[\s.]$// } @wfs;
|
||||||
|
# Word forms contain variations -> Ignore
|
||||||
|
print $absfh " ".$wfs[0]."_Adj : Adj ;\n" ;
|
||||||
|
if ($wf =~ /\/\(\)/ )
|
||||||
|
print $concfh "-- ".$wfs[0]."_Adj : $wf -- $comment\n";
|
||||||
|
{
|
||||||
|
}
|
||||||
|
# Abbreviations -> Ignore
|
||||||
|
elsif ($wf =~ /abbr\./) {
|
||||||
|
print $concfh "-- ".$wfs[0]."_Adj : $wf -- $comment\n";
|
||||||
|
}
|
||||||
|
# Three word forms -> regular adjective?!?
|
||||||
|
elsif (@wfs == 3)
|
||||||
|
{
|
||||||
|
print $concfh " ".$wfs[0]."_Adj = mkA \"".$wfs[0]."\" ;\n";
|
||||||
|
}
|
||||||
|
# Too many word forms
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $concfh "-- ".$wfs[0]."_Adj : $wf -- $comment\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$conjunction/)
|
||||||
|
{
|
||||||
|
# print "CONJ Word: $1 -- Comment: $2\n";
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $comment = $2;
|
||||||
|
$wf =~ s/\s$//g;
|
||||||
|
print $absfh " ".$wf."_Conj : Conj ;\n" ;
|
||||||
|
# We don't get enough information for our grammar from the lexicon
|
||||||
|
# print $concfh " ".$wf."_Conj = ss \"$wf\" ; \n";
|
||||||
|
print $concfh "-- ".$wf."_Conj -- $comment\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun/)
|
||||||
|
{
|
||||||
|
|
||||||
|
my $wf = $1 ;
|
||||||
|
my $gender = $3;
|
||||||
|
my $comment = $4;
|
||||||
|
my @wfs = split /\s*,\s+/, $1; # word forms split into a list
|
||||||
|
print $absfh " ".$wfs[0]."_N : N ;\n" ;
|
||||||
|
if ($wf =~ /\/\(\)/ )
|
||||||
|
{
|
||||||
|
print $concfh "-- ".$wfs[0]."_N : $wf -- $gender -- $comment\n";
|
||||||
|
}
|
||||||
|
elsif ($wf =~ /abb(r?)\./)
|
||||||
|
{
|
||||||
|
print $concfh "-- ".$wfs[0]."_N : $wf -- $gender -- $comment\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print "N1 Word: $1 -- Gender: $3 -- Comment: $4\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun2/)
|
||||||
|
{
|
||||||
|
print "N Word: $1 -- Gender: $4 -- Declension: $3 -- Comment: $5\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$noun3/)
|
||||||
|
{
|
||||||
|
print "N Word: $1 -- Comment: $3\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$prep/)
|
||||||
|
{
|
||||||
|
print "PREP Word: $1 -- Case: $2 -- Comment: $3\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb/)
|
||||||
|
{
|
||||||
|
print "V Word: $1 -- Comment: $3\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb2/)
|
||||||
|
{
|
||||||
|
print "V Word: $1 -- Declension: $3 -- Comment: $4\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb3/)
|
||||||
|
{
|
||||||
|
print "V Word: $1 -- VType: $3 -- Comment: $4\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb4/)
|
||||||
|
{
|
||||||
|
print "V Word: $1 -- Declension: $3 -- VType: $4 -- Comment: $5\n";
|
||||||
|
}
|
||||||
|
elsif ($l =~ /$verb5/)
|
||||||
|
{
|
||||||
|
print "V Word: $1 -- Declension: $3 -- Case: $4 -- Comment: $5\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print "MISSING: $l\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print $absfh "$footer\n";
|
||||||
|
print $concfh "$footer\n";
|
||||||
|
close($absfh);
|
||||||
|
close($concfh);
|
||||||
BIN
src/latin/doc/LO_CH-GU.eps
Normal file
BIN
src/latin/doc/LO_CH-GU.eps
Normal file
Binary file not shown.
BIN
src/latin/doc/datech2017-presentation.pdf
Normal file
BIN
src/latin/doc/datech2017-presentation.pdf
Normal file
Binary file not shown.
362
src/latin/doc/datech2017-presentation.tex
Normal file
362
src/latin/doc/datech2017-presentation.tex
Normal file
@@ -0,0 +1,362 @@
|
|||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Beamer Presentation
|
||||||
|
% LaTeX Template
|
||||||
|
% Version 1.0 (10/11/12)
|
||||||
|
%
|
||||||
|
% This template has been downloaded from:
|
||||||
|
% http://www.LaTeXTemplates.com
|
||||||
|
%
|
||||||
|
% License:
|
||||||
|
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||||
|
%
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------------------
|
||||||
|
% PACKAGES AND THEMES
|
||||||
|
%----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
%\documentclass[12pt]{beamer}
|
||||||
|
%\documentclass{beamer}
|
||||||
|
\documentclass[compress,table]{beamer} % compresses the navigation bar on top
|
||||||
|
|
||||||
|
\mode<presentation> {
|
||||||
|
% The Beamer class comes with a number of default slide themes
|
||||||
|
% which change the colors and layouts of slides. Below this is a list
|
||||||
|
% of all the themes, uncomment each in turn to see what they look like.
|
||||||
|
|
||||||
|
% best themes (ordered by preference)
|
||||||
|
\usetheme{Madrid} % has no navigation overview per slide
|
||||||
|
%\usetheme{Boadilla}% has no navigation overview per slide
|
||||||
|
%\usetheme{Warsaw} % navigation on top, title and author below
|
||||||
|
%\usetheme{PaloAlto} % nav at side, title and author also at side
|
||||||
|
%\usetheme{Berkeley}
|
||||||
|
|
||||||
|
%\usetheme{Szeged}
|
||||||
|
%\usetheme{Copenhagen}
|
||||||
|
%\usetheme{Luebeck}
|
||||||
|
|
||||||
|
%\usetheme{Malmoe}
|
||||||
|
%\usetheme{Bergen}
|
||||||
|
%\usetheme{CambridgeUS}
|
||||||
|
%\usetheme{AnnArbor}
|
||||||
|
%\usetheme{Marburg}
|
||||||
|
|
||||||
|
% not so nice themes
|
||||||
|
%\usetheme{default}
|
||||||
|
%\usetheme{Antibes}
|
||||||
|
%\usetheme{Berlin}
|
||||||
|
%\usetheme{Darmstadt}
|
||||||
|
%\usetheme{Dresden}
|
||||||
|
%\usetheme{Frankfurt}
|
||||||
|
%\usetheme{Goettingen}
|
||||||
|
%\usetheme{Hannover}
|
||||||
|
%\usetheme{Ilmenau}
|
||||||
|
%\usetheme{JuanLesPins}
|
||||||
|
%\usetheme{Montpellier}
|
||||||
|
%\usetheme{Pittsburgh}
|
||||||
|
%\usetheme{Rochester}
|
||||||
|
%\usetheme{Singapore}
|
||||||
|
|
||||||
|
% As well as themes, the Beamer class has a number of color themes
|
||||||
|
% for any slide theme. Uncomment each of these in turn to see how it
|
||||||
|
% changes the colors of your current slide theme.
|
||||||
|
|
||||||
|
\usecolortheme{dolphin}
|
||||||
|
|
||||||
|
%\usecolortheme{beaver}
|
||||||
|
%\usecolortheme{whale}
|
||||||
|
%\usecolortheme{lily}
|
||||||
|
%\usecolortheme{orchid}
|
||||||
|
%\usecolortheme{rose}
|
||||||
|
%\usecolortheme{seahorse}
|
||||||
|
|
||||||
|
%\usecolortheme{albatross}
|
||||||
|
%\usecolortheme{beetle}
|
||||||
|
%\usecolortheme{crane}
|
||||||
|
%\usecolortheme{dove}
|
||||||
|
%\usecolortheme{fly}
|
||||||
|
%\usecolortheme{seagull}
|
||||||
|
%\usecolortheme{wolverine}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%\setbeamertemplate{footline} % To remove the footer line in all slides uncomment this line
|
||||||
|
%\setbeamertemplate{footline}[page number] % To replace the footer line in all slides with a simple slide count uncomment this line
|
||||||
|
|
||||||
|
%\setbeamertemplate{navigation symbols}{} % To remove the navigation symbols from the bottom of all slides uncomment this line
|
||||||
|
\setbeamertemplate{headline}{} % removes the top bar
|
||||||
|
%\setbeamertemplate{enumerate items}[circle]
|
||||||
|
%\setbeamertemplate{enumerate items}[square]
|
||||||
|
\setbeamertemplate{enumerate items}[default]
|
||||||
|
\newcommand{\nologo}{\setbeamertemplate{logo}{}}
|
||||||
|
|
||||||
|
\usepackage{graphicx} % Allows including images
|
||||||
|
\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables
|
||||||
|
\usepackage{ulem} % needed for \sout (strike-out text)
|
||||||
|
\usepackage{hyperref} % can be used to create links to labels
|
||||||
|
\usepackage{appendixnumberbeamer} % use appendix, to avoid counting backup slides
|
||||||
|
\usepackage{multirow} % needed for \multirow{}{}{}
|
||||||
|
|
||||||
|
\usepackage{listings}
|
||||||
|
|
||||||
|
\lstdefinelanguage{gf}
|
||||||
|
{
|
||||||
|
morekeywords={abstract, flags, cat, fun, incomplete, concrete, of, open, in, lincat, lin, resource, param, oper, variants, table, interface, instance, def, data, lindef, printname,},
|
||||||
|
sensitive=false,
|
||||||
|
morecomment=[l]{-{}-},
|
||||||
|
morestring=[b]",
|
||||||
|
stringstyle={\textit}
|
||||||
|
}
|
||||||
|
\lstset{language=gf,captionpos=b,numbers=none, numberstyle=\tiny, numbersep=5pt, basicstyle=\footnotesize\ttfamily, escapeinside={\%*}{*)},}
|
||||||
|
|
||||||
|
%----------------------------------------------------------------------------------------
|
||||||
|
% TITLE PAGE
|
||||||
|
%----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
% The short title appears at the bottom of every slide, the full title is only on the title page
|
||||||
|
\title[Latin grammar]{Implementation of a Latin Grammar in Grammatical Framework}
|
||||||
|
|
||||||
|
\author[Herbert Lange]{Herbert Lange\inst{1}}
|
||||||
|
|
||||||
|
\institute[University of Gothenburg]{
|
||||||
|
\begin{columns}
|
||||||
|
\begin{column}{5.5cm}
|
||||||
|
\centering
|
||||||
|
\inst{1} Computer Science and Engineering\\University of Gothenburg and Chalmers University of Technology\\Gothenburg, Sweden
|
||||||
|
\textit{herbert.lange@cse.gu.se}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
|
}
|
||||||
|
|
||||||
|
\date[DATeCH 2017]{DATeCH 2017, Göttingen, June 1st-2nd} % CPSS
|
||||||
|
|
||||||
|
\logo{\includegraphics[width=0.5\textwidth]{LO_CH-GU.eps}}
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\titlepage % Print the title page as the first slide
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}{Overview} % Table of contents slide, comment this block out to remove it
|
||||||
|
%% Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation
|
||||||
|
\tableofcontents%[hideallsubsections]%[pausesections]
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\section{Background}
|
||||||
|
\subsection{Latin}
|
||||||
|
|
||||||
|
\begin{frame}{Latin}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Indo-European language
|
||||||
|
\item development almost from 240 b.c. to the beginning
|
||||||
|
of the 20th century (and in some fields still continues)
|
||||||
|
\item Usual focus on classic period (from the first public speeches of M. Tullius Cicero (ca.
|
||||||
|
80 b.c. to ca. 117 a.d.)
|
||||||
|
\item Strong inflectional and synthetic language
|
||||||
|
\item Rather free word order (but strong tendencies within certain text domains and time periods, also not all combinations seem to be acceptable)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%% {\nologo
|
||||||
|
%% \begin{frame}
|
||||||
|
%% \includegraphics[width=\textwidth]{Life-of-Brian-Latin-2}
|
||||||
|
%% \end{frame}
|
||||||
|
%% }
|
||||||
|
|
||||||
|
\subsection{Grammatical Framework}
|
||||||
|
\begin{frame}{Grammatical Framework}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Modern grammar formalism based on type theory and inspired by functional programming languages (especially Haskell)
|
||||||
|
\item Variant of context-free grammars extended by so called tables and records
|
||||||
|
\item Expressivity equivalent to Parallel Multiple Context-Free Grammars (PMCFG) (mildly context-sensitive)
|
||||||
|
\item Separation in Abstract and Concrete Syntax
|
||||||
|
\item Open Source
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}[fragile]{Example}
|
||||||
|
\begin{lstlisting}
|
||||||
|
param Number = Sg | Pl ;
|
||||||
|
param Case = Nom | Acc | Dat | Abl | Voc ;
|
||||||
|
param Gen = Masc | Fem | Neutr ;
|
||||||
|
|
||||||
|
lincat N = { s : Number => Case => Str ; g : Gender } ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
man_N = {
|
||||||
|
s = table {
|
||||||
|
Sg => table {
|
||||||
|
Nom => "vir" ; Acc => "virum " ; Gen => "viri" ;
|
||||||
|
Dat => "viro" ; Abl => "viro" ; Voc => "vir" } ;
|
||||||
|
Pl => table {
|
||||||
|
Nom => "viri" ; Acc => "viros" ; Gen => "virorum" ;
|
||||||
|
Dat => "viris" ; Abl => "viris" ; Voc => "viri" ; }
|
||||||
|
} ;
|
||||||
|
g = Masc
|
||||||
|
}
|
||||||
|
\end{lstlisting}
|
||||||
|
% Here I should come up with a minimal example of a grammar with tables and records
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\subsection{Resource Grammar Library}
|
||||||
|
|
||||||
|
\begin{frame}{Resource Grammar Library}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Grammarians equivalent to a Programming Languages standard library
|
||||||
|
\item Common basis for multilingual applications (and machine translation)
|
||||||
|
\item Also Open Source, and this grammar is part of it
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\section{Grammar}
|
||||||
|
|
||||||
|
\begin{frame}{General Concept}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Originally: Translate information from a standard (school) grammar book into a computerized form
|
||||||
|
\item Implement the RGL abstract syntax
|
||||||
|
\item Now: Application-specific resources especially for language learning
|
||||||
|
\item Constituent grammar not dependency grammar (not as cool but conversion between GF trees and UD is possible)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Lexicon}
|
||||||
|
\begin{frame}{Lexicon}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Basic Lexicon with ca 350 entries
|
||||||
|
\item Contains mostly base forms, uses morphological rules to generate the whole paradigms
|
||||||
|
\item Main problem: modern concepts (e.g. refrigerator) and homonyms (e.g. bank)
|
||||||
|
\item Use of web-based and collaborative resources (e.g. Latin Wikipedia, Wiktionary)
|
||||||
|
\item Work in progress: Adopt other lexical resources
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Morphology}
|
||||||
|
\begin{frame}{Morphology}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Strongly inflectional but quite regular morphology
|
||||||
|
\item Use as little information as possible to generate the whole paradigm (smart paradigms)
|
||||||
|
\item Several inflection classes for different lexical categories
|
||||||
|
\item Use tables for word forms depending on grammatical features
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\begin{table}
|
||||||
|
\resizebox{\textwidth}{!}{
|
||||||
|
\begin{tabular}{l|l|l|l}
|
||||||
|
Word class & Inherent & Parametric & No. of Inflection classes\\
|
||||||
|
\hline
|
||||||
|
Noun & Gender & Number, Case & 5\\
|
||||||
|
Adjective & & Degree, Gender, Number, Case & 3\\
|
||||||
|
Verb (active) & & Anteriority, Tense, Number, Person & 4 regular, 4 deponent \\
|
||||||
|
Determiner & Number & Gender, Case \\
|
||||||
|
\end{tabular}}
|
||||||
|
\end{table}
|
||||||
|
\begin{table}[h]
|
||||||
|
{\small
|
||||||
|
\begin{tabular}{l|l}
|
||||||
|
Feature & Values \\
|
||||||
|
\hline
|
||||||
|
Gender & Feminine, Masculine, Neuter \\
|
||||||
|
Number & Singular, Plural \\
|
||||||
|
Case & Nominative, Genitive, Dative, Accusative, Ablative, Vocative\\
|
||||||
|
Degree & Positive, Comparative, Superlative \\
|
||||||
|
Anteriority & Anterior, Simultaneous \\
|
||||||
|
Tense & Present Indicative, Present Subjunctive, Imperfect Indicative, \\
|
||||||
|
& Imperfect Subjunctive, Future Indicative, Future Subjunctive\\
|
||||||
|
Person & 1, 2, 3 \\
|
||||||
|
\end{tabular}}
|
||||||
|
\end{table}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Syntax}
|
||||||
|
\begin{frame}{Syntax}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Syntax rules use basic and smaller parts to assemble larger parts up to the sentence level
|
||||||
|
\item Challenge: Free word order
|
||||||
|
\item Decision what parts can be completely assembled at what point (and what has to be kept apart)
|
||||||
|
\item Use records to keep parts of a phrase separate
|
||||||
|
\item Postpone decision on word order as long as possible
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\section{Results}
|
||||||
|
|
||||||
|
\begin{frame}{Results}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Comprehensive Latin morphology
|
||||||
|
\item Implemented about 1/3 of the RGL syntactic functions (but some of them are rather obscure)
|
||||||
|
\item Already usable in applications
|
||||||
|
\item Future: Adding rules as they are needed and large-scale evaluation
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\section{Applications}
|
||||||
|
|
||||||
|
\begin{frame}{Applications}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Our main focus: Language learning\\
|
||||||
|
Grammar-based and gamified computer-aided language learning application for beginner's level
|
||||||
|
\item Other possible applications in Digital Humanities\\
|
||||||
|
Giving access to cultural heritage e.g. with a translation app for epigraphs
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
{\huge
|
||||||
|
Thanks for your attention \\[3em]
|
||||||
|
\pause
|
||||||
|
Questions? \\[2em]
|
||||||
|
}
|
||||||
|
Source:\\ \url{wwww.grammaticalframework.org} and \url{https://github.com/daherb/GF-latin}
|
||||||
|
\end{frame}
|
||||||
|
% backup slides
|
||||||
|
\appendix
|
||||||
|
|
||||||
|
%% {\nologo
|
||||||
|
%% \begin{frame}
|
||||||
|
%% \begin{center} \includegraphics[scale=0.5]{delirant-isti-romani} \end{center}
|
||||||
|
%% \end{frame}
|
||||||
|
%% }
|
||||||
|
|
||||||
|
|
||||||
|
{\nologo
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\begin{lstlisting}[basicstyle=\tiny\ttfamily]
|
||||||
|
noun : Str -> Noun = \lexform ->
|
||||||
|
case lexform of {
|
||||||
|
- - noun1, noun2us/um/er, noun4 and noun5 are the functions for the different
|
||||||
|
- - declension classes. The 2nd class is split in three subclasses
|
||||||
|
_ + "a" => noun1 lexform ;
|
||||||
|
_ + "us" => noun2us lexform ;
|
||||||
|
_ + "um" => noun2um lexform ;
|
||||||
|
- - "Predef.tk n word" removes a suffix of length n from word
|
||||||
|
_ + ( "er" | "ir" ) => noun2er lexform ( (Predef.tk 2 lexform) + "ri" ) ;
|
||||||
|
_ + "u" => noun4u lexform ;
|
||||||
|
_ + "es" => noun5 lexform ;
|
||||||
|
- - Predef.error stops with a given error message
|
||||||
|
_ => Predef.error ("3rd declinsion cannot be applied " ++
|
||||||
|
"to just one noun form " ++ lexform)
|
||||||
|
} ;
|
||||||
|
\end{lstlisting}
|
||||||
|
\end{frame}
|
||||||
|
}
|
||||||
|
|
||||||
|
{\nologo
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\begin{lstlisting}[basicstyle=\tiny\ttfamily]
|
||||||
|
mkClause : NounPhrase -> VerbPhrase -> Clause = \np,vp -> {
|
||||||
|
s = \\tense,anter,pol,vqf,order => case order of {
|
||||||
|
SVO => np.s ! Nom ++ negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ vp.obj ;
|
||||||
|
VSO => negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ np.s ! Nom ++ vp.obj ;
|
||||||
|
VOS => negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ vp.obj ++ np.s ! Nom ;
|
||||||
|
OSV => vp.obj ++ np.s ! Nom ++ negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ;
|
||||||
|
OVS => vp.obj ++ negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf ++ np.s ! Nom ;
|
||||||
|
SOV => np.s ! Nom ++ vp.obj ++ negation pol ++ vp.compl ! Ag np.g np.n Nom ++ vp.s ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ! vqf
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
\end{lstlisting}
|
||||||
|
\end{frame}
|
||||||
|
}
|
||||||
|
\end{document}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
src/latin/doc/folien.pdf
Normal file
BIN
src/latin/doc/folien.pdf
Normal file
Binary file not shown.
227
src/latin/doc/folien.tex
Normal file
227
src/latin/doc/folien.tex
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
%\documentclass[handout]{beamer}
|
||||||
|
\documentclass{beamer}
|
||||||
|
%\usetheme{Singapore} % anderes Layout
|
||||||
|
%\usetheme{Antibes} % anderes Layout
|
||||||
|
%\usecolortheme{lily}
|
||||||
|
\usetheme{Antibes}
|
||||||
|
\usecolortheme{beaver}
|
||||||
|
\setbeamertemplate{footline}[frame number]
|
||||||
|
\usepackage{color}
|
||||||
|
\usepackage{german}
|
||||||
|
\usepackage{latexsym,amssymb}
|
||||||
|
\usepackage{amsmath} % für begin{cases} ... \end{cases}
|
||||||
|
%\usepackage[utf8]{inputenc}
|
||||||
|
%\usepackage[T1]{fontenc}
|
||||||
|
%\usepackage{algorithm}
|
||||||
|
%\usepackage{algorithmicx}
|
||||||
|
%\usepackage{algpseudocode}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{fontspec}
|
||||||
|
|
||||||
|
\setbeamertemplate{footline}[frame number]
|
||||||
|
\parindent0pt
|
||||||
|
\parskip1.2ex
|
||||||
|
|
||||||
|
\def\nat{{\mathbb N}}
|
||||||
|
\def\bool{{\mathbb B}}
|
||||||
|
\def\real{{\mathbb R}}
|
||||||
|
|
||||||
|
\title[Implementierung einer Lateingrammatik]{Implementierung einer Lateingrammatik im Grammatical Framework \\ \quad \\ \large Kolloquium Computerlinguistisches Arbeiten SS 2013 }
|
||||||
|
\author{Herbert Lange}
|
||||||
|
|
||||||
|
\date{\today}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\frame{\titlepage}
|
||||||
|
|
||||||
|
\section*{Überblick}
|
||||||
|
\subsection*{Inhalt}
|
||||||
|
\begin{frame}{Inhalt}
|
||||||
|
%\begin{multicols}{2}
|
||||||
|
\tableofcontents
|
||||||
|
%\end{multicols}
|
||||||
|
\end{frame}
|
||||||
|
\section{Einführung}
|
||||||
|
\subsection{Das Grammatical Framework}
|
||||||
|
\begin{frame}[fragile]{Das Grammatical Framework}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Mächtigkeit äquivalent zu PMCFG (Parallel Multiple Context-Free Grammars)
|
||||||
|
$\rightarrow$ zwischen mild und voll kontextsensitiv
|
||||||
|
\item Trennung von abstrakter und konkreter Syntax
|
||||||
|
\item Verschiedene API-Ebenen und Einbindungsmöglichkeiten (u.a. Java, JavaScript)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Die Ressource Grammar Library}
|
||||||
|
\begin{frame}{Die Ressource Grammar Library}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Minimaler Satz gemeinsamer Bestandteile verschiedener Sprachen (Beispielvokabular, Wort-/Satzarten, Syntaxregeln)
|
||||||
|
\item ca. 38 Sprachen voll oder teilweise umgesetzt
|
||||||
|
\item ca. 43 geschlossene Kategorien (Determiner, ...) und Phrasentypen
|
||||||
|
\item ca. 22 offene Kategorien (Nomen, Verben, Adjektive, ...)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}
|
||||||
|
|
||||||
|
\begin{block}{}
|
||||||
|
{\scriptsize\ttfamily
|
||||||
|
%> i alltenses/LangGer.gfo \\
|
||||||
|
% linking ... OK \\
|
||||||
|
% Languages: LangGer \\
|
||||||
|
% 47884 msec \\
|
||||||
|
Lang> p ''der Mann sieht die Frau'' \\
|
||||||
|
PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumSg) (UseN man\_N)) (ComplSlash (SlashV2a see\_V2) (DetCN (DetQuant DefArt NumSg) (UseN woman\_N)))))) NoVoc
|
||||||
|
}
|
||||||
|
\end{block}
|
||||||
|
{\tiny
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|l|l|l|l|}
|
||||||
|
\hline
|
||||||
|
Funktion & Typ & Argumente & Übersetzung\\
|
||||||
|
\hline
|
||||||
|
PhrUtt & Phr & (PConj) Utt (Voc) & der Mann sieht die Frau \\
|
||||||
|
NoPConj & PConj & & (Keine Konjunktion) \\
|
||||||
|
UttS & Utt & S & der Mann sieht die Frau \\
|
||||||
|
UseCl & S & (Temp) (Pol) Cl & der Mann sieht die Frau \\
|
||||||
|
TTAnt & Temp & Tense Ant & (Tempus und Aspekt) \\
|
||||||
|
TPres & Tense & & (Präsens) \\
|
||||||
|
ASimul & Ant & & (Gleichzeitigkeit) \\
|
||||||
|
PPos & Pol & & (Positive Aussage) \\
|
||||||
|
PredVP & Cl & NP VP & der Mann sehen die Frau \\
|
||||||
|
DetCN & NP & Det CN & der Mann \\
|
||||||
|
DetQuant & Det & Quant Num & der \\
|
||||||
|
DefArt & Quant & & der \\
|
||||||
|
NumSg & Num & & (Singular) \\
|
||||||
|
UseN & CN & N & Mann \\
|
||||||
|
man\_N & N & & Mann \\
|
||||||
|
ComplSlash & VP & VPSlash NP & sehen die Frau \\
|
||||||
|
%SlashV2a & VPSlash & V2 & sehen \\
|
||||||
|
%see\_V2 & V2 & & sehen \\
|
||||||
|
\multicolumn{4}{|c|}{...} \\
|
||||||
|
NoVoc & Voc & & (Keine Anrede) \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Die Lateinische Sprache}
|
||||||
|
\begin{frame}[fragile]{Die Lateinische Sprache}
|
||||||
|
Teil der indogermanischen Sprachfamilie $\rightarrow$ Ähnlichkeiten zu germanischen Sprachen so wie dem Griechischen \\
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|l|l|l|}
|
||||||
|
\hline
|
||||||
|
lateinisch & griechisch & deutsch \\
|
||||||
|
\hline
|
||||||
|
pater & patér & Vater \\
|
||||||
|
ager & agrós & Acker \\
|
||||||
|
trēs & treĩs & drei \\
|
||||||
|
decem & déka & zehn \\
|
||||||
|
est & estí & ist \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
Ursprünglich Sprache der Bewohner der mittelitalienischen Region Latium
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}{Sprachliche Besonderheiten}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Sehr freie Satzstellung $\rightarrow$ aber meist Verwendung von Subjekt-Objekt-Verb
|
||||||
|
\item Flektierende Sprache mit synthetischer Syntax (Abl. abs. und AcI)
|
||||||
|
\begin{itemize}
|
||||||
|
\item Augusto regente pax erat in toto imperio romano $\rightarrow$ Als/weil Augustus regierte, herrschte im ganzen römischen Reich Frieden.
|
||||||
|
\item Imperatorem venire audit $\rightarrow$ Er hört, dass der Imperator kommt.
|
||||||
|
\end{itemize}
|
||||||
|
\item Ablativ und Vokativ als eigene Fälle
|
||||||
|
\item Fehlen von Artikel
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\section{Umsetzung}
|
||||||
|
\begin{frame}{Umsetzung}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Lexikon der RGL
|
||||||
|
\item Morphologie der RGL
|
||||||
|
\item Syntax der RGL
|
||||||
|
\item Optional: rein sprachspezifische Konstrukte
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Lexikon}
|
||||||
|
\begin{frame}{Lexikon}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Ca. 400 vorgegebene englische Wörter aus allen möglichen Wortarten und verschiedenen Bereichen
|
||||||
|
\item Keine Klärung von Ambiguitäten (z.B. bank) $\rightarrow$ willkürliche Wahl der Übersetzung
|
||||||
|
\item Viele moderne Begriffe (Auto, Eisenbahn, Computer, Fernseher) $\rightarrow$ Übersetzung mit Hilfe der Wikipedia
|
||||||
|
\item Begriffe ohne auffindbare Übersetzung (ein-/ausschalten) $\rightarrow$ Wahl eines nahe liegenden Wortes (accendere/exstinguere)
|
||||||
|
\item Manche Differenzierungen nicht in jeder Sprache möglich
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}{}
|
||||||
|
\begin{block}{Beispiel}
|
||||||
|
{\scriptsize\ttfamily
|
||||||
|
blue\_A = mkA ( variants { ''caeruleus'' ; ''caerulus'' } ) ; -- 3 L... \\
|
||||||
|
boat\_N = mkN ''navicula'' ; -- -ae f. L... \\
|
||||||
|
book\_N = mkN ''liber'' ''libri'' masculine ; -- Ranta; -bri m. L... \\
|
||||||
|
boot\_N = mkN ''calceus'' ; -- -i m. L... \\
|
||||||
|
boss\_N = mkN ''dux'' ''ducis'' ( variants { feminine ; masculine } ) ; -- ducis m./f. L... \\
|
||||||
|
boy\_N = mkN ''puer'' ''pueri'' masculine ; -- -eri m. L... \\
|
||||||
|
bread\_N = ( variants { (mkN ''panis'' ''panis'' masculine ) ; mkN ''pane'' } ) ; -- -is m./n. L... \\
|
||||||
|
break\_V2 = mkV2 (mkV ''rumpo'' ''rupi'' ''ruptum'' ''rumpere'') ; -- Ranta; 3 L...
|
||||||
|
}
|
||||||
|
\end{block}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Morphologie}
|
||||||
|
\begin{frame}{Morphologie}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Einteilung in vier Gruppen: Nomina (Substantive, Adjektive, Pronomina, Numeralia), Verben, Partikel (Adverbien, Präpositionen, Konjunktionen), Interjektionen. Es gibt keine Artikel
|
||||||
|
\item Nomina und Verben werden flektiert, Partikel und Interjektionen werden nicht flektiert
|
||||||
|
\item Fünf Nomendeklinationen, drei Adjektivdeklinationen, Adjektivkomparation, Adverbbildung, vier Verbkonjugationen, Deponentia
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}{Smart Paradigms}
|
||||||
|
Pattern Matching um für ein Wort aus möglichst wenig Formen das Paradigma zu bestimmen
|
||||||
|
\begin{block}{Beispiel}
|
||||||
|
{\scriptsize\ttfamily
|
||||||
|
noun : Str -> Noun = \textbackslash verbum -> \\
|
||||||
|
case verbum of \{ \\
|
||||||
|
\_ + ''a'' => noun1 verbum ; \\
|
||||||
|
\_ + ''us'' => noun2us verbum ; \\
|
||||||
|
\_ + ''um'' => noun2um verbum ; \\
|
||||||
|
\_ + ''er'' => noun2er verbum ; \\
|
||||||
|
\_ + ''u'' => noun4u verbum ; \\
|
||||||
|
\_ + ''es'' => noun5 verbum ; \\
|
||||||
|
\_ => noun3 verbum \\
|
||||||
|
\} ;
|
||||||
|
}
|
||||||
|
\end{block}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Syntax}
|
||||||
|
\begin{frame}{Syntax}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Problem: Freie Wortstellung im Satz $\rightarrow$ Variationen erhöhen die Komplexität exponentiell
|
||||||
|
\item Zunächst: Beschränkung auf SOV-Wortstellung (Subjekt-Objekt-Verb)
|
||||||
|
\item Später: Suche nach performanten Implementierungsmöglichkeiten für beschränkte oder volle Variation
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\subsection{Ausblick}
|
||||||
|
\begin{frame}{Ausblick}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Anbinden eines größeres Lexikons
|
||||||
|
\item Integration in eine Weboberfläche oder eine Android-App
|
||||||
|
\item Anwendung in der Lehre (Translation Quiz)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\section{Abschluss}
|
||||||
|
\begin{frame}{Zusammenfassung}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Lexikon mit ca. 400 teils modernen Wörtern
|
||||||
|
\item Morphologie mit Smart Paradigms
|
||||||
|
\item Syntax mit möglichst freier Wortstellung
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\begin{frame}{Literatur}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Bayer, Karl u. Lindauer, Josef: Lateinische Grammatik, C.C. Buchners Verlag, Bamberg 1994
|
||||||
|
\item Leuman, M./Hofmann, J.B./ Szantyr, A.: Lateinische Grammatik. Auf der Grundlage des Werkes von Friedrich Stolz und Joseph Hermann Schmalz; Band 2: Lateinische Syntax und Stilistik, C.H. Beck'sche Verlagsbuchhandlung, München 1972
|
||||||
|
\item Ranta, Aarne: Grammatical Framework. Programming with Multilingual Grammars, CSLI Publications, Stanford 2011
|
||||||
|
\item Ranta, Aarne: Grammatical Framework Tutorial, http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html 2010
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
\end{document}
|
||||||
BIN
src/latin/doc/magisterarbeit.pdf
Normal file
BIN
src/latin/doc/magisterarbeit.pdf
Normal file
Binary file not shown.
101
src/latin/doc/magisterarbeit/MA.ebib.bib
Normal file
101
src/latin/doc/magisterarbeit/MA.ebib.bib
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
@inproceedings{BAMMAN2006,
|
||||||
|
author = {Bamman, David and Crane, Gregory},
|
||||||
|
title = {The Design and Use of a Latin Dependency Treebank},
|
||||||
|
journal = {Procedings of the TLT},
|
||||||
|
year = {2006},
|
||||||
|
pages = {67-78},
|
||||||
|
editor = {Hajic, Jan and Nivre, Joakim},
|
||||||
|
booktitle = {Proceedings of the Fifth International Treebanks and Linguistic Theories Conference},
|
||||||
|
organization = {Institute of Formal and Applied Linguistics, Faculty of Mathematics and Physics, Charles University},
|
||||||
|
url = {http://hdl.handle.net/10427/42684},
|
||||||
|
address = {Prag}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{BAYER-LINDAUER1994,
|
||||||
|
title = {Lateinische Grammatik},
|
||||||
|
editor = {Bayer, Karl and Lindauer, Josef},
|
||||||
|
publisher = {C.C. Buchners Verlag, J. Lindauer Verlag, R. Oldenburg Verlag},
|
||||||
|
year = {1994},
|
||||||
|
city = {Bamberg, M"unchen},
|
||||||
|
edition = {2. Auflage, auf der Grundlage der Lateinischen Schulgrammatik von Landgraf-Leitschuh neu bearbeitet}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{HOPCROFT1979,
|
||||||
|
author = {Hopcroft, John E. and Ullman, Jeffrey D.},
|
||||||
|
title = {Introduction to Automata Theory, Languages and Computation},
|
||||||
|
publisher = {Addison-Wesley Publishing Company},
|
||||||
|
year = {1979},
|
||||||
|
city = {Reading MA, Menlo Park CA, London, Amsterdam, Don Mills ON, Sydney}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{LANGENSCHEIDT1981,
|
||||||
|
title = {Langenscheidts Schulw"orterbuch Lateinisch},
|
||||||
|
subtitle = {Lateinisch-Deutsch Deutsch-Latein},
|
||||||
|
edition = {14. Auflage},
|
||||||
|
editor = {Pertsch, {\relax Dr.} Erich and Lange-Kowal, {\relax Dr.} Ernst Erwin},
|
||||||
|
publisher = {Langenscheidt},
|
||||||
|
year = {1981},
|
||||||
|
city = {Berlin, M"uenchen, Wien, Z"urich}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{METZLER2004,
|
||||||
|
publisher = {Directmedia},
|
||||||
|
title = {Metzler Lexikon Sprache},
|
||||||
|
year = {2004},
|
||||||
|
city = {Berlin},
|
||||||
|
editor = {Gl"uck, Helmut},
|
||||||
|
series = {Digitale Bibliothek},
|
||||||
|
number = {34},
|
||||||
|
edition = {2. Auflage}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{MUELLER-LANCE2006,
|
||||||
|
author = {M"uller-Lanc\'e, Johannes},
|
||||||
|
title = {Latein f"ur Romanisten},
|
||||||
|
publisher = {Gunter Narr Verlag},
|
||||||
|
city = {T"ubingen},
|
||||||
|
year = {2006},
|
||||||
|
subtitle = {Ein Lehr- und Arbeitsbuch},
|
||||||
|
edition = {1. Auflage}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{NEUE1897,
|
||||||
|
author = {Neue, Friedrich},
|
||||||
|
title = {Formenlehre der lateinischen Sprache},
|
||||||
|
publisher = {S. Calvary & Co.},
|
||||||
|
year = {1897},
|
||||||
|
city = {Berlin},
|
||||||
|
volume = {Band 3},
|
||||||
|
subtitle = {Das Verb},
|
||||||
|
edition = {3. sehr vermehrte Auflage}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{PONS2012,
|
||||||
|
title = {Sch"ulerw"orterbuch Latein},
|
||||||
|
editor = {Dralle, Anette and Federking, Walther and Vetter, Gregor},
|
||||||
|
publisher = {PONS GmbH},
|
||||||
|
year = {2012},
|
||||||
|
city = {Stuttgart},
|
||||||
|
subtitle = {Latein-Deutsch und Deutsch-Latein},
|
||||||
|
edition = {1. Auflage}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{RANTA2011,
|
||||||
|
author = {Ranta, Aarne},
|
||||||
|
title = {Grammatical Framework},
|
||||||
|
publisher = {CSLL Studies in Computational Linguistics},
|
||||||
|
year = {2011},
|
||||||
|
subtitle = {Programming with Multilingual Grammars},
|
||||||
|
city = {Stanford, California}
|
||||||
|
}
|
||||||
|
|
||||||
|
@book{SCHOENING2008,
|
||||||
|
author = {Sch"oning, Uwe},
|
||||||
|
title = {Theoretische Intormatik - kurz gefasst},
|
||||||
|
publisher = {Spektrum Akademischer Verlag},
|
||||||
|
year = {2008},
|
||||||
|
city = {Heidelberg},
|
||||||
|
edition = {5. Auflage}
|
||||||
|
}
|
||||||
|
|
||||||
1175
src/latin/doc/magisterarbeit/arydshln.sty
Normal file
1175
src/latin/doc/magisterarbeit/arydshln.sty
Normal file
File diff suppressed because it is too large
Load Diff
56
src/latin/doc/magisterarbeit/diffs/AdjectiveLat.gf.diff
Normal file
56
src/latin/doc/magisterarbeit/diffs/AdjectiveLat.gf.diff
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
diff --git a/lib/src/latin/AdjectiveLat.gf b/lib/src/latin/AdjectiveLat.gf
|
||||||
|
index 9b0f345..7aa096a 100644
|
||||||
|
--- a/lib/src/latin/AdjectiveLat.gf
|
||||||
|
+++ b/lib/src/latin/AdjectiveLat.gf
|
||||||
|
@@ -1,39 +1,45 @@
|
||||||
|
concrete AdjectiveLat of Adjective = CatLat ** open ResLat, Prelude in {
|
||||||
|
|
||||||
|
|
||||||
|
lin
|
||||||
|
|
||||||
|
- PositA a = a ;
|
||||||
|
+ PositA a = -- A -> AP
|
||||||
|
+ {
|
||||||
|
+ s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
|
||||||
|
+ };
|
||||||
|
|
||||||
|
{-
|
||||||
|
ComparA a np = {
|
||||||
|
s = \\_ => a.s ! AAdj Compar ++ "than" ++ np.s ! Nom ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
|
|
||||||
|
ComplA2 a np = {
|
||||||
|
s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ReflA2 a = {
|
||||||
|
s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
SentAP ap sc = {
|
||||||
|
s = \\a => ap.s ! a ++ sc.s ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
-}
|
||||||
|
|
||||||
|
- AdAP ada ap = {
|
||||||
|
- s = \\g,n,c => ada.s ++ ap.s ! g ! n ! c ;
|
||||||
|
- isPre = ap.isPre
|
||||||
|
- } ;
|
||||||
|
+ -- AdAP ada ap = {
|
||||||
|
+ -- s = \\g,n,c => ada.s ++ ap.s ! g ! n ! c ;
|
||||||
|
+ -- isPre = ap.isPre
|
||||||
|
+ -- } ;
|
||||||
|
|
||||||
|
--- UseA2 a = a ;
|
||||||
|
+ UseA2 a = -- A2 -> AP
|
||||||
|
+ {
|
||||||
|
+ s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
|
||||||
|
+ } ;
|
||||||
|
|
||||||
|
}
|
||||||
28
src/latin/doc/magisterarbeit/diffs/AdverbLat.gf.diff
Normal file
28
src/latin/doc/magisterarbeit/diffs/AdverbLat.gf.diff
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/lib/src/latin/AdverbLat.gf b/lib/src/latin/AdverbLat.gf
|
||||||
|
index b959ab8..d3cb693 100644
|
||||||
|
--- a/lib/src/latin/AdverbLat.gf
|
||||||
|
+++ b/lib/src/latin/AdverbLat.gf
|
||||||
|
@@ -1,21 +1,21 @@
|
||||||
|
concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude in {
|
||||||
|
|
||||||
|
- lin
|
||||||
|
+-- lin
|
||||||
|
-- PositAdvAdj a = {s = a.s ! AAdv} ;
|
||||||
|
-- ComparAdvAdj cadv a np = {
|
||||||
|
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ np.s ! Nom
|
||||||
|
-- } ;
|
||||||
|
-- ComparAdvAdjS cadv a s = {
|
||||||
|
-- s = cadv.s ++ a.s ! AAdv ++ "than" ++ s.s
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
- PrepNP prep np = {s = appPrep prep np.s} ;
|
||||||
|
+-- PrepNP prep np = {s = appPrep prep np.s} ;
|
||||||
|
|
||||||
|
-- AdAdv = cc2 ;
|
||||||
|
--
|
||||||
|
-- SubjS = cc2 ;
|
||||||
|
-----b AdvSC s = s ; --- this rule give stack overflow in ordinary parsing
|
||||||
|
--
|
||||||
|
-- AdnCAdv cadv = {s = cadv.s ++ "than"} ;
|
||||||
|
--
|
||||||
|
}
|
||||||
13
src/latin/doc/magisterarbeit/diffs/AllLat.gf.diff
Normal file
13
src/latin/doc/magisterarbeit/diffs/AllLat.gf.diff
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/lib/src/latin/AllLat.gf b/lib/src/latin/AllLat.gf
|
||||||
|
index 79f9117..902c652 100644
|
||||||
|
--- a/lib/src/latin/AllLat.gf
|
||||||
|
+++ b/lib/src/latin/AllLat.gf
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
|
concrete AllLat of AllLatAbs =
|
||||||
|
- LangLat
|
||||||
|
--- ExtraLat
|
||||||
|
+ LangLat,
|
||||||
|
+ ExtraLat
|
||||||
|
** {} ;
|
||||||
13
src/latin/doc/magisterarbeit/diffs/AllLatAbs.gf.diff
Normal file
13
src/latin/doc/magisterarbeit/diffs/AllLatAbs.gf.diff
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/lib/src/latin/AllLatAbs.gf b/lib/src/latin/AllLatAbs.gf
|
||||||
|
index 7b7af3f..ba468a1 100644
|
||||||
|
--- a/lib/src/latin/AllLatAbs.gf
|
||||||
|
+++ b/lib/src/latin/AllLatAbs.gf
|
||||||
|
@@ -1 +1,7 @@
|
||||||
|
-abstract AllLatAbs = Lang ;
|
||||||
|
+--# -path=.:../abstract:../common:prelude
|
||||||
|
+
|
||||||
|
+abstract AllLatAbs =
|
||||||
|
+ Lang,
|
||||||
|
+ IrregLatAbs-[can_VV,go_V],
|
||||||
|
+ ExtraLatAbs
|
||||||
|
+ ** {} ;
|
||||||
130
src/latin/doc/magisterarbeit/diffs/CatLat.gf.diff
Normal file
130
src/latin/doc/magisterarbeit/diffs/CatLat.gf.diff
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
diff --git a/lib/src/latin/CatLat.gf b/lib/src/latin/CatLat.gf
|
||||||
|
index 8d85714..af48f02 100644
|
||||||
|
--- a/lib/src/latin/CatLat.gf
|
||||||
|
+++ b/lib/src/latin/CatLat.gf
|
||||||
|
@@ -1,88 +1,91 @@
|
||||||
|
concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
|
||||||
|
|
||||||
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
|
||||||
|
---- Tensed/Untensed
|
||||||
|
--
|
||||||
|
--- S = {s : Str} ;
|
||||||
|
--- QS = {s : QForm => Str} ;
|
||||||
|
+ S = {s : Str} ;
|
||||||
|
+ QS = {s : QForm => Str} ;
|
||||||
|
-- RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
|
||||||
|
-- SSlash = {s : Str ; c2 : Str} ;
|
||||||
|
--
|
||||||
|
---- Sentence
|
||||||
|
--
|
||||||
|
- Cl = {s : VAnter => VTense => Polarity => Str} ;
|
||||||
|
+ Cl = { s : Tense => Anteriority => Polarity => Order => Str } ;
|
||||||
|
-- ClSlash = {
|
||||||
|
--- s : ResLat.Tense => Anteriority => CPolarity => Order => Str ;
|
||||||
|
+-- s : ResLat.Tense => Anteriority => Polarity => Order => Str ;
|
||||||
|
-- c2 : Str
|
||||||
|
-- } ;
|
||||||
|
--- Imp = {s : CPolarity => ImpForm => Str} ;
|
||||||
|
+ Imp = {s : Polarity => ImpForm => Str} ;
|
||||||
|
--
|
||||||
|
---- Question
|
||||||
|
--
|
||||||
|
--- QCl = {s : ResLat.Tense => Anteriority => CPolarity => QForm => Str} ;
|
||||||
|
--- IP = {s : Case => Str ; n : Number} ;
|
||||||
|
--- IComp = {s : Str} ;
|
||||||
|
--- IDet = {s : Str ; n : Number} ;
|
||||||
|
--- IQuant = {s : Number => Str} ;
|
||||||
|
+ QCl = {s : ResLat.Tense => Anteriority => Polarity => QForm => Str} ;
|
||||||
|
+ IP = {s : Case => Str ; n : Number} ;
|
||||||
|
+ IComp = {s : Str} ;
|
||||||
|
+ IDet = Determiner ; --{s : Str ; n : Number} ;
|
||||||
|
+ IQuant = {s : Agr => Str} ;
|
||||||
|
--
|
||||||
|
---- Relative
|
||||||
|
--
|
||||||
|
-- RCl = {
|
||||||
|
-- s : ResLat.Tense => Anteriority => CPolarity => Agr => Str ;
|
||||||
|
-- c : Case
|
||||||
|
-- } ;
|
||||||
|
-- RP = {s : RCase => Str ; a : RAgr} ;
|
||||||
|
--
|
||||||
|
---- Verb
|
||||||
|
--
|
||||||
|
- VP = ResLat.VP ;
|
||||||
|
- VPSlash = ResLat.VP ** {c2 : Preposition} ;
|
||||||
|
- Comp = {s : Gender => Number => Case => Str} ;
|
||||||
|
+ VP = ResLat.VerbPhrase ;
|
||||||
|
+ VPSlash = VP ** {c2 : Preposition} ;
|
||||||
|
+ Comp = {s : Agr => Str} ;
|
||||||
|
--
|
||||||
|
---- Adjective
|
||||||
|
--
|
||||||
|
- AP = Adjective ** {isPre : Bool} ; ---- {s : Agr => Str ; isPre : Bool} ;
|
||||||
|
+-- AP = Adjective ** {isPre : Bool} ; ---- {s : Agr => Str ; isPre : Bool} ;
|
||||||
|
+ AP =
|
||||||
|
+ {
|
||||||
|
+ s : Agr => Str ;
|
||||||
|
+-- isPre : Bool ; -- should have no use in latin because adjectives can appear variably before and after nouns
|
||||||
|
+ } ;
|
||||||
|
--
|
||||||
|
---- Noun
|
||||||
|
--
|
||||||
|
- CN = {s : Number => Case => Str ; g : Gender} ;
|
||||||
|
- NP, Pron = {s : Case => Str ; g : Gender ; n : Number ; p : Person} ;
|
||||||
|
+ CN = ResLat.CommonNoun ;
|
||||||
|
+ NP = ResLat.NounPhrase ;
|
||||||
|
+ Pron = ResLat.Pronoun ;
|
||||||
|
Det = Determiner ;
|
||||||
|
--- Predet, Ord = {s : Str} ;
|
||||||
|
+ Predet, Ord = {s : Str} ;
|
||||||
|
Num = {s : Gender => Case => Str ; n : Number} ;
|
||||||
|
-- Card = {s : Str ; n : Number} ;
|
||||||
|
Quant = Quantifier ;
|
||||||
|
--
|
||||||
|
---- Numeral
|
||||||
|
--
|
||||||
|
-- Numeral = {s : CardOrd => Str ; n : Number} ;
|
||||||
|
Digits = {s : Str ; unit : Unit} ;
|
||||||
|
--
|
||||||
|
---- Structural
|
||||||
|
--
|
||||||
|
Conj = {s1,s2 : Str ; n : Number} ;
|
||||||
|
--- Subj = {s : Str} ;
|
||||||
|
- Prep = {s : Str ; c : Case} ;
|
||||||
|
+ Subj = {s : Str} ;
|
||||||
|
+ Prep = ResLat.Preposition ;
|
||||||
|
--
|
||||||
|
---- Open lexical classes, e.g. Lexicon
|
||||||
|
|
||||||
|
- V = Verb ;
|
||||||
|
- V2 = Verb ** {c : Preposition} ;
|
||||||
|
--- V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
|
||||||
|
--- V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
|
||||||
|
--- V3 = Verb ** {c2, c3 : Str} ;
|
||||||
|
--- VV = {s : VVForm => Str ; isAux : Bool} ;
|
||||||
|
--- V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
||||||
|
---
|
||||||
|
- A = Adjective ** {isPre : Bool} ;
|
||||||
|
--- A2 = {s : AForm => Str ; c2 : Str} ;
|
||||||
|
---
|
||||||
|
+ V, VS, VQ, VA = ResLat.Verb ; -- = {s : VForm => Str} ;
|
||||||
|
+ V2, V2A, V2Q, V2S = Verb ** {c : Prep } ;
|
||||||
|
+ V3 = Verb ** {c2, c3 : Prep} ;
|
||||||
|
+ VV = ResLat.VV ;
|
||||||
|
+ V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
||||||
|
+
|
||||||
|
+ A = Adjective ;
|
||||||
|
+
|
||||||
|
N = Noun ;
|
||||||
|
--- N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str} ;
|
||||||
|
--- N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Str} ;
|
||||||
|
- PN = {s : Case => Str ; g : Gender} ;
|
||||||
|
---
|
||||||
|
+ N2 = Noun ** { c : Prep } ;
|
||||||
|
+ N3 = Noun ** { c : Prep ; c2 : Prep } ;
|
||||||
|
+ PN = Noun ;
|
||||||
|
+ A2 = Adjective ** { c : Prep} ;
|
||||||
|
}
|
||||||
82
src/latin/doc/magisterarbeit/diffs/ConjunctionLat.gf.diff
Normal file
82
src/latin/doc/magisterarbeit/diffs/ConjunctionLat.gf.diff
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
diff --git a/lib/src/latin/ConjunctionLat.gf b/lib/src/latin/ConjunctionLat.gf
|
||||||
|
index a857eef..125767d 100644
|
||||||
|
--- a/lib/src/latin/ConjunctionLat.gf
|
||||||
|
+++ b/lib/src/latin/ConjunctionLat.gf
|
||||||
|
@@ -1,60 +1,57 @@
|
||||||
|
---concrete ConjunctionLat of Conjunction =
|
||||||
|
--- CatLat ** open ResLat, Coordination, Prelude in {
|
||||||
|
+concrete ConjunctionLat of Conjunction =
|
||||||
|
+ CatLat ** open ResLat, StructuralLat, Coordination, Prelude in {
|
||||||
|
--
|
||||||
|
-- flags optimize=all_subs ;
|
||||||
|
--
|
||||||
|
--- lin
|
||||||
|
+ lin
|
||||||
|
--
|
||||||
|
--- ConjS = conjunctDistrSS ;
|
||||||
|
+ ConjS = conjunctDistrSS ;
|
||||||
|
--
|
||||||
|
--- ConjAdv = conjunctDistrSS ;
|
||||||
|
+ ConjAdv = conjunctDistrSS ;
|
||||||
|
--
|
||||||
|
-- ConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||||
|
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
--- ConjAP conj ss = conjunctDistrTable Agr conj ss ** {
|
||||||
|
--- isPre = ss.isPre
|
||||||
|
--- } ;
|
||||||
|
+ ConjAP conj ss = conjunctDistrTable Agr conj ss ;
|
||||||
|
--
|
||||||
|
--{---b
|
||||||
|
--
|
||||||
|
-- ConjS = conjunctSS ;
|
||||||
|
-- DConjS = conjunctDistrSS ;
|
||||||
|
--
|
||||||
|
-- ConjAdv = conjunctSS ;
|
||||||
|
-- DConjAdv = conjunctDistrSS ;
|
||||||
|
--
|
||||||
|
-- ConjNP conj ss = conjunctTable Case conj ss ** {
|
||||||
|
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||||
|
-- } ;
|
||||||
|
-- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||||
|
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
--- ConjAP conj ss = conjunctTable Agr conj ss ** {
|
||||||
|
--- isPre = ss.isPre
|
||||||
|
--- } ;
|
||||||
|
+-- ConjAP conj ss = conjunctTable Agr conj ss ;
|
||||||
|
+--
|
||||||
|
-- DConjAP conj ss = conjunctDistrTable Agr conj ss ** {
|
||||||
|
-- isPre = ss.isPre
|
||||||
|
-- } ;
|
||||||
|
---}
|
||||||
|
--
|
||||||
|
---- These fun's are generated from the list cat's.
|
||||||
|
--
|
||||||
|
-- BaseS = twoSS ;
|
||||||
|
-- ConsS = consrSS comma ;
|
||||||
|
--- BaseAdv = twoSS ;
|
||||||
|
--- ConsAdv = consrSS comma ;
|
||||||
|
+ BaseAdv = twoSS ;
|
||||||
|
+ ConsAdv = consrSS "et" ;
|
||||||
|
-- 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 = twoTable Agr x y ** {isPre = andB x.isPre y.isPre} ;
|
||||||
|
--- ConsAP xs x = consrTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
||||||
|
+ BaseAP x y = lin A ( twoTable Agr x y ) ;
|
||||||
|
+ ConsAP xs x = lin A ( consrTable Agr and_Conj.s2 xs x );
|
||||||
|
--
|
||||||
|
--- lincat
|
||||||
|
--- [S] = {s1,s2 : Str} ;
|
||||||
|
--- [Adv] = {s1,s2 : Str} ;
|
||||||
|
+ lincat
|
||||||
|
+ [S] = {s1,s2 : Str} ;
|
||||||
|
+ [Adv] = {s1,s2 : Str} ;
|
||||||
|
-- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
|
||||||
|
--- [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ;
|
||||||
|
+ [AP] = {s1,s2 : Agr => Str } ;
|
||||||
|
--
|
||||||
|
---}
|
||||||
|
+}
|
||||||
16
src/latin/doc/magisterarbeit/diffs/ExtraLat.gf.diff
Normal file
16
src/latin/doc/magisterarbeit/diffs/ExtraLat.gf.diff
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
diff --git a/lib/src/latin/ExtraLat.gf b/lib/src/latin/ExtraLat.gf
|
||||||
|
index 9dad2f9..e6c8728 100644
|
||||||
|
--- a/lib/src/latin/ExtraLat.gf
|
||||||
|
+++ b/lib/src/latin/ExtraLat.gf
|
||||||
|
@@ -1,3 +1,11 @@
|
||||||
|
concrete ExtraLat of ExtraLatAbs = CatLat **
|
||||||
|
open ResLat, Coordination, Prelude in {
|
||||||
|
+ lin
|
||||||
|
+ UsePronNonDrop p = -- Pron -> NP
|
||||||
|
+ {
|
||||||
|
+ g = p.g ;
|
||||||
|
+ n = p.n ;
|
||||||
|
+ p = p.p ;
|
||||||
|
+ s = p.pers ! PronNonDrop ! PronRefl ;
|
||||||
|
+ } ;
|
||||||
|
}
|
||||||
11
src/latin/doc/magisterarbeit/diffs/ExtraLatAbs.gf.diff
Normal file
11
src/latin/doc/magisterarbeit/diffs/ExtraLatAbs.gf.diff
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
diff --git a/lib/src/latin/ExtraLatAbs.gf b/lib/src/latin/ExtraLatAbs.gf
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f2d1729
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/lib/src/latin/ExtraLatAbs.gf
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+abstract ExtraLatAbs = Extra ** {
|
||||||
|
+ fun
|
||||||
|
+ UsePronNonDrop : Pron -> NP ;
|
||||||
|
+
|
||||||
|
+}
|
||||||
26
src/latin/doc/magisterarbeit/diffs/GrammarLat.gf.diff
Normal file
26
src/latin/doc/magisterarbeit/diffs/GrammarLat.gf.diff
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/lib/src/latin/GrammarLat.gf b/lib/src/latin/GrammarLat.gf
|
||||||
|
index efa7f69..09966e9 100644
|
||||||
|
--- a/lib/src/latin/GrammarLat.gf
|
||||||
|
+++ b/lib/src/latin/GrammarLat.gf
|
||||||
|
@@ -1,19 +1,18 @@
|
||||||
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
|
concrete GrammarLat of Grammar =
|
||||||
|
NounLat,
|
||||||
|
VerbLat,
|
||||||
|
AdjectiveLat,
|
||||||
|
AdverbLat,
|
||||||
|
NumeralLat,
|
||||||
|
SentenceLat,
|
||||||
|
-- QuestionLat,
|
||||||
|
-- RelativeLat,
|
||||||
|
-- ConjunctionLat,
|
||||||
|
--- PhraseLat,
|
||||||
|
+ PhraseLat,
|
||||||
|
TextX,
|
||||||
|
- StructuralLat,
|
||||||
|
+ StructuralLat
|
||||||
|
-- IdiomLat
|
||||||
|
- TenseX
|
||||||
|
** {
|
||||||
|
} ;
|
||||||
641
src/latin/doc/magisterarbeit/diffs/IrregLat.gf.diff
Normal file
641
src/latin/doc/magisterarbeit/diffs/IrregLat.gf.diff
Normal file
@@ -0,0 +1,641 @@
|
|||||||
|
diff --git a/lib/src/latin/IrregLat.gf b/lib/src/latin/IrregLat.gf
|
||||||
|
index 20657f0..2c3cb65 100644
|
||||||
|
--- a/lib/src/latin/IrregLat.gf
|
||||||
|
+++ b/lib/src/latin/IrregLat.gf
|
||||||
|
@@ -1,181 +1,458 @@
|
||||||
|
-----# -path=.:prelude:../abstract:../common
|
||||||
|
---
|
||||||
|
---concrete IrregLat of IrregLatAbs = CatLat ** open ParadigmsLat in {
|
||||||
|
+--# -path=.:prelude:../abstract:../common
|
||||||
|
+
|
||||||
|
+concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat in {
|
||||||
|
--
|
||||||
|
--flags optimize=values ;
|
||||||
|
--
|
||||||
|
--- lin
|
||||||
|
--- awake_V = irregV "awake" "awoke" "awoken" ;
|
||||||
|
--- bear_V = irregV "bear" "bore" "born" ;
|
||||||
|
--- beat_V = irregV "beat" "beat" "beat" ;
|
||||||
|
--- become_V = irregV "become" "became" "become" ;
|
||||||
|
--- begin_V = irregV "begin" "began" "begun" ;
|
||||||
|
--- bend_V = irregV "bend" "bent" "bent" ;
|
||||||
|
--- beset_V = irregV "beset" "beset" "beset" ;
|
||||||
|
--- bet_V = irregDuplV "bet" "bet" "bet" ;
|
||||||
|
--- bid_V = irregDuplV "bid" (variants {"bid" ; "bade"}) (variants {"bid" ; "bidden"}) ;
|
||||||
|
--- bind_V = irregV "bind" "bound" "bound" ;
|
||||||
|
--- bite_V = irregV "bite" "bit" "bitten" ;
|
||||||
|
--- bleed_V = irregV "bleed" "bled" "bled" ;
|
||||||
|
--- blow_V = irregV "blow" "blew" "blown" ;
|
||||||
|
--- break_V = irregV "break" "broke" "broken" ;
|
||||||
|
--- breed_V = irregV "breed" "bred" "bred" ;
|
||||||
|
--- bring_V = irregV "bring" "brought" "brought" ;
|
||||||
|
--- broadcast_V = irregV "broadcast" "broadcast" "broadcast" ;
|
||||||
|
--- build_V = irregV "build" "built" "built" ;
|
||||||
|
--- burn_V = irregV "burn" (variants {"burned" ; "burnt"}) (variants {"burned" ; "burnt"}) ;
|
||||||
|
--- burst_V = irregV "burst" "burst" "burst" ;
|
||||||
|
--- buy_V = irregV "buy" "bought" "bought" ;
|
||||||
|
--- cast_V = irregV "cast" "cast" "cast" ;
|
||||||
|
--- catch_V = irregV "catch" "caught" "caught" ;
|
||||||
|
--- choose_V = irregV "choose" "chose" "chosen" ;
|
||||||
|
--- cling_V = irregV "cling" "clung" "clung" ;
|
||||||
|
--- come_V = irregV "come" "came" "come" ;
|
||||||
|
--- cost_V = irregV "cost" "cost" "cost" ;
|
||||||
|
--- creep_V = irregV "creep" "crept" "crept" ;
|
||||||
|
--- cut_V = irregDuplV "cut" "cut" "cut" ;
|
||||||
|
--- deal_V = irregV "deal" "dealt" "dealt" ;
|
||||||
|
--- dig_V = irregDuplV "dig" "dug" "dug" ;
|
||||||
|
--- dive_V = irregV "dive" (variants {"dived" ; "dove"}) "dived" ;
|
||||||
|
--- do_V = mk5V "do" "does" "did" "done" "doing" ;
|
||||||
|
--- draw_V = irregV "draw" "drew" "drawn" ;
|
||||||
|
--- dream_V = irregV "dream" (variants {"dreamed" ; "dreamt"}) (variants {"dreamed" ; "dreamt"}) ;
|
||||||
|
--- drive_V = irregV "drive" "drove" "driven" ;
|
||||||
|
--- drink_V = irregV "drink" "drank" "drunk" ;
|
||||||
|
--- eat_V = irregV "eat" "ate" "eaten" ;
|
||||||
|
--- fall_V = irregV "fall" "fell" "fallen" ;
|
||||||
|
--- feed_V = irregV "feed" "fed" "fed" ;
|
||||||
|
--- feel_V = irregV "feel" "felt" "felt" ;
|
||||||
|
--- fight_V = irregV "fight" "fought" "fought" ;
|
||||||
|
--- find_V = irregV "find" "found" "found" ;
|
||||||
|
--- fit_V = irregDuplV "fit" "fit" "fit" ;
|
||||||
|
--- flee_V = irregV "flee" "fled" "fled" ;
|
||||||
|
--- fling_V = irregV "fling" "flung" "flung" ;
|
||||||
|
--- fly_V = irregV "fly" "flew" "flown" ;
|
||||||
|
--- forbid_V = irregDuplV "forbid" "forbade" "forbidden" ;
|
||||||
|
--- forget_V = irregDuplV "forget" "forgot" "forgotten" ;
|
||||||
|
--- forgive_V = irregV "forgive" "forgave" "forgiven" ;
|
||||||
|
--- forsake_V = irregV "forsake" "forsook" "forsaken" ;
|
||||||
|
--- freeze_V = irregV "freeze" "froze" "frozen" ;
|
||||||
|
--- get_V = irregDuplV "get" "got" "gotten" ;
|
||||||
|
--- give_V = irregV "give" "gave" "given" ;
|
||||||
|
--- go_V = mk5V "go" "goes" "went" "gone" "going" ;
|
||||||
|
--- grind_V = irregV "grind" "ground" "ground" ;
|
||||||
|
--- grow_V = irregV "grow" "grew" "grown" ;
|
||||||
|
--- hang_V = irregV "hang" "hung" "hung" ;
|
||||||
|
--- have_V = mk5V "have" "has" "had" "had" "having" ;
|
||||||
|
--- hear_V = irregV "hear" "heard" "heard" ;
|
||||||
|
--- hide_V = irregV "hide" "hid" "hidden" ;
|
||||||
|
--- hit_V = irregDuplV "hit" "hit" "hit" ;
|
||||||
|
--- hold_V = irregV "hold" "held" "held" ;
|
||||||
|
--- hurt_V = irregV "hurt" "hurt" "hurt" ;
|
||||||
|
--- keep_V = irregV "keep" "kept" "kept" ;
|
||||||
|
--- kneel_V = irregV "kneel" "knelt" "knelt" ;
|
||||||
|
--- knit_V = irregDuplV "knit" "knit" "knit" ;
|
||||||
|
--- know_V = irregV "know" "knew" "know" ;
|
||||||
|
--- lay_V = irregV "lay" "laid" "laid" ;
|
||||||
|
--- lead_V = irregV "lead" "led" "led" ;
|
||||||
|
--- leap_V = irregV "leap" (variants {"leaped" ; "lept"}) (variants {"leaped" ; "lept"}) ;
|
||||||
|
--- learn_V = irregV "learn" (variants {"learned" ; "learnt"}) (variants {"learned" ; "learnt"}) ;
|
||||||
|
--- leave_V = irregV "leave" "left" "left" ;
|
||||||
|
--- lend_V = irregV "lend" "lent" "lent" ;
|
||||||
|
--- let_V = irregDuplV "let" "let" "let" ;
|
||||||
|
--- lie_V = irregV "lie" "lay" "lain" ;
|
||||||
|
--- light_V = irregV "light" (variants {"lighted" ; "lit"}) "lighted" ;
|
||||||
|
--- lose_V = irregV "lose" "lost" "lost" ;
|
||||||
|
--- make_V = irregV "make" "made" "made" ;
|
||||||
|
--- mean_V = irregV "mean" "meant" "meant" ;
|
||||||
|
--- meet_V = irregV "meet" "met" "met" ;
|
||||||
|
--- misspell_V = irregV "misspell" (variants {"misspelled" ; "misspelt"}) (variants {"misspelled" ; "misspelt"}) ;
|
||||||
|
--- mistake_V = irregV "mistake" "mistook" "mistaken" ;
|
||||||
|
--- mow_V = irregV "mow" "mowed" (variants {"mowed" ; "mown"}) ;
|
||||||
|
--- overcome_V = irregV "overcome" "overcame" "overcome" ;
|
||||||
|
--- overdo_V = mk5V "overdo" "overdoes" "overdid" "overdone" "overdoing" ;
|
||||||
|
--- overtake_V = irregV "overtake" "overtook" "overtaken" ;
|
||||||
|
--- overthrow_V = irregV "overthrow" "overthrew" "overthrown" ;
|
||||||
|
--- pay_V = irregV "pay" "paid" "paid" ;
|
||||||
|
--- plead_V = irregV "plead" "pled" "pled" ;
|
||||||
|
--- prove_V = irregV "prove" "proved" (variants {"proved" ; "proven"}) ;
|
||||||
|
--- put_V = irregDuplV "put" "put" "put" ;
|
||||||
|
--- quit_V = irregDuplV "quit" "quit" "quit" ;
|
||||||
|
--- read_V = irregV "read" "read" "read" ;
|
||||||
|
--- rid_V = irregDuplV "rid" "rid" "rid" ;
|
||||||
|
--- ride_V = irregV "ride" "rode" "ridden" ;
|
||||||
|
--- ring_V = irregV "ring" "rang" "rung" ;
|
||||||
|
--- rise_V = irregV "rise" "rose" "risen" ;
|
||||||
|
--- run_V = irregDuplV "run" "ran" "run" ;
|
||||||
|
--- saw_V = irregV "saw" "sawed" (variants {"sawed" ; "sawn"}) ;
|
||||||
|
--- say_V = irregV "say" "said" "said" ;
|
||||||
|
--- see_V = irregV "see" "saw" "seen" ;
|
||||||
|
--- seek_V = irregV "seek" "sought" "sought" ;
|
||||||
|
--- sell_V = irregV "sell" "sold" "sold" ;
|
||||||
|
--- send_V = irregV "send" "sent" "sent" ;
|
||||||
|
--- set_V = irregDuplV "set" "set" "set" ;
|
||||||
|
--- sew_V = irregV "sew" "sewed" (variants {"sewed" ; "sewn"}) ;
|
||||||
|
--- shake_V = irregV "shake" "shook" "shaken" ;
|
||||||
|
--- shave_V = irregV "shave" "shaved" (variants {"shaved" ; "shaven"}) ;
|
||||||
|
--- shear_V = irregV "shear" "shore" "shorn" ;
|
||||||
|
--- shed_V = irregDuplV "shed" "shed" "shed" ;
|
||||||
|
--- shine_V = irregV "shine" "shone" "shone" ;
|
||||||
|
--- shoe_V = irregV "shoe" "shoed" (variants {"shoed" ; "shod"}) ;
|
||||||
|
--- shoot_V = irregV "shoot" "shot" "shot" ;
|
||||||
|
--- show_V = irregV "show" "showed" (variants {"showed" ; "shown"}) ;
|
||||||
|
--- shrink_V = irregV "shrink" "shrank" "shrunk" ;
|
||||||
|
--- shut_V = irregDuplV "shut" "shut" "shut" ;
|
||||||
|
--- sing_V = irregV "sing" "sang" "sung" ;
|
||||||
|
--- sink_V = irregV "sink" "sank" "sunk" ;
|
||||||
|
--- sit_V = irregDuplV "sit" "sat" "sat" ;
|
||||||
|
--- sleep_V = irregV "sleep" "slept" "slept" ;
|
||||||
|
--- slay_V = irregV "slay" "slew" "slain" ;
|
||||||
|
--- slide_V = irregV "slide" "slid" "slid" ;
|
||||||
|
--- sling_V = irregV "sling" "slung" "slung" ;
|
||||||
|
--- slit_V = irregDuplV "slit" "slit" "slit" ;
|
||||||
|
--- smite_V = irregV "smite" "smote" "smitten" ;
|
||||||
|
--- sow_V = irregV "sow" "sowed" (variants {"sowed" ; "sown"}) ;
|
||||||
|
--- speak_V = irregV "speak" "spoke" "spoken" ;
|
||||||
|
--- speed_V = irregV "speed" "sped" "sped" ;
|
||||||
|
--- spend_V = irregV "spend" "spent" "spent" ;
|
||||||
|
--- spill_V = irregV "spill" (variants {"spilled" ; "spilt"}) (variants {"spilled" ; "spilt"}) ;
|
||||||
|
--- spin_V = irregDuplV "spin" "spun" "spun" ;
|
||||||
|
--- spit_V = irregDuplV "spit" (variants {"spit" ; "spat"}) "spit" ;
|
||||||
|
--- split_V = irregDuplV "split" "split" "split" ;
|
||||||
|
--- spread_V = irregV "spread" "spread" "spread" ;
|
||||||
|
--- spring_V = irregV "spring" (variants {"sprang" ; "sprung"}) "sprung" ;
|
||||||
|
--- stand_V = irregV "stand" "stood" "stood" ;
|
||||||
|
--- steal_V = irregV "steal" "stole" "stolen" ;
|
||||||
|
--- stick_V = irregV "stick" "stuck" "stuck" ;
|
||||||
|
--- sting_V = irregV "sting" "stung" "stung" ;
|
||||||
|
--- stink_V = irregV "stink" "stank" "stunk" ;
|
||||||
|
--- stride_V = irregV "stride" "strod" "stridden" ;
|
||||||
|
--- strike_V = irregV "strike" "struck" "struck" ;
|
||||||
|
--- string_V = irregV "string" "strung" "strung" ;
|
||||||
|
--- strive_V = irregV "strive" "strove" "striven" ;
|
||||||
|
--- swear_V = irregV "swear" "swore" "sworn" ;
|
||||||
|
--- sweep_V = irregV "sweep" "swept" "swept" ;
|
||||||
|
--- swell_V = irregV "swell" "swelled" (variants {"swelled" ; "swollen"}) ;
|
||||||
|
--- swim_V = irregDuplV "swim" "swam" "swum" ;
|
||||||
|
--- swing_V = irregV "swing" "swung" "swung" ;
|
||||||
|
--- take_V = irregV "take" "took" "taken" ;
|
||||||
|
--- teach_V = irregV "teach" "taught" "taught" ;
|
||||||
|
--- tear_V = irregV "tear" "tore" "torn" ;
|
||||||
|
--- tell_V = irregV "tell" "told" "told" ;
|
||||||
|
--- think_V = irregV "think" "thought" "thought" ;
|
||||||
|
--- thrive_V = irregV "thrive" (variants {"thrived" ; "throve"}) "thrived" ;
|
||||||
|
--- throw_V = irregV "throw" "threw" "thrown" ;
|
||||||
|
--- thrust_V = irregV "thrust" "thrust" "thrust" ;
|
||||||
|
--- tread_V = irregV "tread" "trod" "trodden" ;
|
||||||
|
--- understand_V = irregV "understand" "understood" "understood" ;
|
||||||
|
--- uphold_V = irregV "uphold" "upheld" "upheld" ;
|
||||||
|
--- upset_V = irregDuplV "upset" "upset" "upset" ;
|
||||||
|
--- wake_V = irregV "wake" "woke" "woken" ;
|
||||||
|
--- wear_V = irregV "wear" "wore" "worn" ;
|
||||||
|
--- weave_V = irregV "weave" (variants {"weaved" ; "wove"}) (variants {"weaved" ; "woven"}) ;
|
||||||
|
--- wed_V = irregDuplV "wed" "wed" "wed" ;
|
||||||
|
--- weep_V = irregV "weep" "wept" "wept" ;
|
||||||
|
--- wind_V = irregV "wind" "wound" "wound" ;
|
||||||
|
--- win_V = irregDuplV "win" "won" "won" ;
|
||||||
|
--- withhold_V = irregV "withhold" "withheld" "withheld" ;
|
||||||
|
--- withstand_V = irregV "withstand" "withstood" "withstood" ;
|
||||||
|
--- wring_V = irregV "wring" "wrung" "wrung" ;
|
||||||
|
--- write_V = irregV "write" "wrote" "written" ;
|
||||||
|
---}
|
||||||
|
+
|
||||||
|
+ lin
|
||||||
|
+ science_N = pluralN (mkN "litera" ) ; -- only pl. (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 93 1
|
||||||
|
+ 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 =
|
||||||
|
+ \\_ => "######" ; -- no passive forms
|
||||||
|
+ inf =
|
||||||
|
+ verb.inf ;
|
||||||
|
+ imp =
|
||||||
|
+ table {
|
||||||
|
+ VImp1 Sg => "es" ;
|
||||||
|
+ VImp1 Pl => "este" ;
|
||||||
|
+ VImp2 Pl P2 => "estote" ;
|
||||||
|
+ a => verb.imp ! a
|
||||||
|
+ } ;
|
||||||
|
+ sup =
|
||||||
|
+ \\_ => "######" ; -- no supin forms
|
||||||
|
+ ger =
|
||||||
|
+ \\_ => "######" ; -- no gerund forms
|
||||||
|
+ geriv =
|
||||||
|
+ \\_ => "######" ; -- no gerundive forms
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ verb.part ! VActFut ;
|
||||||
|
+ VActPres =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######" -- no such participle
|
||||||
|
+ }
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 93 2.2
|
||||||
|
+ can_VV =
|
||||||
|
+ 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 =
|
||||||
|
+ \\_ => "######" ; -- no passive forms
|
||||||
|
+ inf =
|
||||||
|
+ table {
|
||||||
|
+ VInfActFut _ => "######" ;
|
||||||
|
+ a => verb.inf ! a
|
||||||
|
+ } ;
|
||||||
|
+ imp =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ sup =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ ger =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ geriv =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VActPres =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######" -- no such participle
|
||||||
|
+ } ;
|
||||||
|
+ isAux = False
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 94
|
||||||
|
+ bring_V =
|
||||||
|
+ 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 ;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 95
|
||||||
|
+ want_V =
|
||||||
|
+ let
|
||||||
|
+ pres_stem = "vel" ;
|
||||||
|
+ pres_ind_base = "vol" ;
|
||||||
|
+ pres_conj_base = "veli" ;
|
||||||
|
+ impf_ind_base = "voleba" ;
|
||||||
|
+ impf_conj_base = "volle" ;
|
||||||
|
+ fut_I_base = "vole" ;
|
||||||
|
+ imp_base = "" ;
|
||||||
|
+ perf_stem = "volu" ;
|
||||||
|
+ perf_ind_base = "volu" ;
|
||||||
|
+ perf_conj_base = "volueri" ;
|
||||||
|
+ pqperf_ind_base = "voluera" ;
|
||||||
|
+ pqperf_conj_base = "voluisse" ;
|
||||||
|
+ fut_II_base = "volueri" ;
|
||||||
|
+ part_stem = "volet" ;
|
||||||
|
+ verb = mkVerb "velle" 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 [ "volo" ; "vis" ; "vult" ] ;
|
||||||
|
+ table Person [ "volumus" ; "vultis" ; "volunt" ]
|
||||||
|
+ ] ! n ! p ;
|
||||||
|
+ a => verb.act ! a
|
||||||
|
+ } ;
|
||||||
|
+ pass =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ ger =
|
||||||
|
+ verb.ger ;
|
||||||
|
+ geriv =
|
||||||
|
+ verb.geriv ;
|
||||||
|
+ imp =
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ inf =
|
||||||
|
+ verb.inf ;
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ \\_ => "######" ;
|
||||||
|
+ VActPres =>
|
||||||
|
+ verb.part ! VActPres ;
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######"
|
||||||
|
+ } ;
|
||||||
|
+ sup =
|
||||||
|
+ verb.sup ;
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 96 1
|
||||||
|
+ go_V =
|
||||||
|
+ let
|
||||||
|
+ pres_stem = "i" ;
|
||||||
|
+ pres_ind_base = "i" ;
|
||||||
|
+ pres_conj_base = "ea" ;
|
||||||
|
+ impf_ind_base = "iba" ;
|
||||||
|
+ impf_conj_base = "ire" ;
|
||||||
|
+ fut_I_base = "ibi" ;
|
||||||
|
+ imp_base = "i" ;
|
||||||
|
+ perf_stem = "i" ;
|
||||||
|
+ perf_ind_base = "i" ;
|
||||||
|
+ perf_conj_base = "ieri" ;
|
||||||
|
+ pqperf_ind_base = "iera" ;
|
||||||
|
+ pqperf_conj_base = "isse" ;
|
||||||
|
+ fut_II_base = "ieri" ;
|
||||||
|
+ part_stem = "it" ;
|
||||||
|
+ verb = mkVerb "ire" 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 [ "eo" ; "is" ; "it" ] ;
|
||||||
|
+ table Person [ "imus" ; "itis" ; "eunt" ]
|
||||||
|
+ ] ! n ! p ;
|
||||||
|
+ VAct VAnt (VPres VInd) Sg P2 => "isti" ;
|
||||||
|
+ VAct VAnt (VPres VInd) Pl P2 => "istis" ;
|
||||||
|
+ a => verb.act ! a
|
||||||
|
+ } ;
|
||||||
|
+ pass =
|
||||||
|
+ \\_ => "######"; -- no passive forms
|
||||||
|
+ ger =
|
||||||
|
+ table VGerund [ "eundum" ; "eundi" ; "eundo" ; "eundo" ] ;
|
||||||
|
+ geriv =
|
||||||
|
+ verb.geriv ;
|
||||||
|
+ imp =
|
||||||
|
+ table {
|
||||||
|
+ VImp2 Pl P3 => "eunto" ;
|
||||||
|
+ a => verb.imp ! a
|
||||||
|
+ } ;
|
||||||
|
+ inf =
|
||||||
|
+ table {
|
||||||
|
+ VInfActPerf _ => "isse" ;
|
||||||
|
+ a =>verb.inf ! a
|
||||||
|
+ };
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ verb.part ! VActFut ;
|
||||||
|
+ VActPres =>
|
||||||
|
+ table {
|
||||||
|
+ Ag ( Fem | Masc ) n c =>
|
||||||
|
+ ( mkNoun ( "iens" ) ( "euntem" ) ( "euntis" )
|
||||||
|
+ ( "eunti" ) ( "eunte" ) ( "iens" )
|
||||||
|
+ ( "euntes" ) ( "euntes" ) ( "euntium" )
|
||||||
|
+ ( "euntibus" )
|
||||||
|
+ Masc ).s ! n ! c ;
|
||||||
|
+ Ag Neutr n c =>
|
||||||
|
+ ( mkNoun ( "iens" ) ( "iens" ) ( "euntis" )
|
||||||
|
+ ( "eunti" ) ( "eunte" ) ( "iens" )
|
||||||
|
+ ( "euntia" ) ( "euntia" ) ( "euntium" )
|
||||||
|
+ ( "euntibus" )
|
||||||
|
+ Masc ).s ! n ! c
|
||||||
|
+ } ;
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######" -- no such participle
|
||||||
|
+ } ;
|
||||||
|
+ sup =
|
||||||
|
+ \\_ => "######" -- really no such form?
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 97
|
||||||
|
+ become_V =
|
||||||
|
+ let
|
||||||
|
+ pres_stem = "fi" ;
|
||||||
|
+ pres_ind_base = "fi" ;
|
||||||
|
+ pres_conj_base = "fia" ;
|
||||||
|
+ impf_ind_base = "fieba" ;
|
||||||
|
+ impf_conj_base = "fiere" ;
|
||||||
|
+ fut_I_base = "fie" ;
|
||||||
|
+ imp_base = "fi" ;
|
||||||
|
+ perf_stem = "" ;
|
||||||
|
+ perf_ind_base = "" ;
|
||||||
|
+ perf_conj_base = "" ;
|
||||||
|
+ pqperf_ind_base = "" ;
|
||||||
|
+ pqperf_conj_base = "" ;
|
||||||
|
+ fut_II_base = "" ;
|
||||||
|
+ part_stem = "fact" ;
|
||||||
|
+
|
||||||
|
+ verb =
|
||||||
|
+ mkVerb "fieri" 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) Sg P1 => "fio" ;
|
||||||
|
+ VAct VAnt _ _ _ => "######" ; -- perfect expressed by participle
|
||||||
|
+ a => verb.act ! a
|
||||||
|
+ } ;
|
||||||
|
+ pass =
|
||||||
|
+ \\_ => "######" ; -- no passive forms
|
||||||
|
+ ger =
|
||||||
|
+ \\_ => "######" ; -- no gerund form
|
||||||
|
+ geriv =
|
||||||
|
+ \\_ => "######" ; -- no gerundive form
|
||||||
|
+ imp =
|
||||||
|
+ verb.imp ;
|
||||||
|
+ inf =
|
||||||
|
+ table {
|
||||||
|
+ VInfActPerf _ => "factus" ;
|
||||||
|
+ VInfActFut Masc => "futurum" ;
|
||||||
|
+ VInfActFut Fem => "futura" ;
|
||||||
|
+ VInfActFut Neutr => "futurum" ;
|
||||||
|
+ a => verb.inf ! a
|
||||||
|
+ } ;
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VActPres =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ verb.part ! VPassPerf
|
||||||
|
+ } ;
|
||||||
|
+ sup =
|
||||||
|
+ \\_ => "######" -- no supin
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- Source ?
|
||||||
|
+ rain_V =
|
||||||
|
+ {
|
||||||
|
+ act =
|
||||||
|
+ table {
|
||||||
|
+ VAct VSim (VPres VInd) Sg P3 => "pluit" ;
|
||||||
|
+ VAct VSim (VPres VInd) Pl P3 => "pluunt" ;
|
||||||
|
+ VAct VSim (VImpf VInd) Sg P3 => "pluebat" ;
|
||||||
|
+ VAct VSim (VImpf VInd) Pl P3 => "pluebant" ;
|
||||||
|
+ VAct VSim VFut Sg P3 => "pluet" ;
|
||||||
|
+ VAct VSim VFut Pl P3 => "pluent" ;
|
||||||
|
+ VAct VAnt (VPres VInd) Sg P3 => "pluvit" ;
|
||||||
|
+ VAct VAnt (VPres VInd) Pl P3 => "pluverunt" ;
|
||||||
|
+ VAct VAnt (VImpf VInd) Sg P3 => "pluverat" ;
|
||||||
|
+ VAct VAnt (VImpf VInd) Pl P3 => "pluverat" ;
|
||||||
|
+ VAct VAnt VFut Sg P3 => "pluverit" ;
|
||||||
|
+ VAct VAnt VFut Pl P3 => "pluverint" ;
|
||||||
|
+ VAct VSim (VPres VConj) Sg P3 => "pluat" ;
|
||||||
|
+ VAct VSim (VPres VConj) Pl P3 => "pluant" ;
|
||||||
|
+ VAct VSim (VImpf VConj) Sg P3 => "plueret" ;
|
||||||
|
+ VAct VSim (VImpf VConj) Pl P3 => "pluerent" ;
|
||||||
|
+ VAct VAnt (VPres VConj) Sg P3 => "pluverit" ;
|
||||||
|
+ VAct VAnt (VPres VConj) Pl P3 => "pluverint" ;
|
||||||
|
+ VAct VAnt (VImpf VConj) Sg P3 => "pluvisset" ;
|
||||||
|
+ VAct VAnt (VImpf VConj) Pl P3 => "pluvissent" ;
|
||||||
|
+ _ => "######" -- no such forms
|
||||||
|
+ } ;
|
||||||
|
+ pass =
|
||||||
|
+ \\_ => "######" ; -- no passive forms
|
||||||
|
+ inf = table {
|
||||||
|
+ VInfActPres => "pluere" ;
|
||||||
|
+ VInfActPerf _ => "pluvisse" ;
|
||||||
|
+ _ => "######"
|
||||||
|
+ } ;
|
||||||
|
+ imp =
|
||||||
|
+ table {
|
||||||
|
+ VImp2 Sg ( P2 | P3 ) => "pluito" ;
|
||||||
|
+ VImp2 Pl P2 => "pluitote" ;
|
||||||
|
+ VImp2 Pl P3 => "pluunto" ;
|
||||||
|
+ _ => "######"
|
||||||
|
+ } ;
|
||||||
|
+ ger =
|
||||||
|
+ \\_ => "######" ; -- no gerund forms
|
||||||
|
+ geriv =
|
||||||
|
+ \\_ => "######" ; -- no gerundive forms
|
||||||
|
+ sup =
|
||||||
|
+ \\_ => "######" ; -- no supin forms
|
||||||
|
+ part = table {
|
||||||
|
+ VActPres =>
|
||||||
|
+ \\_ => "pluens" ;
|
||||||
|
+ VActFut =>
|
||||||
|
+ \\_ => "######" ; -- no such participle
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######" -- no such participle
|
||||||
|
+ }
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- Bayer-Lindauer 98
|
||||||
|
+ hate_V =
|
||||||
|
+ let
|
||||||
|
+ pres_stem = "" ;
|
||||||
|
+ pres_ind_base = "" ;
|
||||||
|
+ pres_conj_base = "" ;
|
||||||
|
+ impf_ind_base = "" ;
|
||||||
|
+ impf_conj_base = "" ;
|
||||||
|
+ fut_I_base = "" ;
|
||||||
|
+ imp_base = "" ;
|
||||||
|
+ perf_stem = "od" ;
|
||||||
|
+ perf_ind_base = "od" ;
|
||||||
|
+ perf_conj_base = "oderi" ;
|
||||||
|
+ pqperf_ind_base = "odera" ;
|
||||||
|
+ pqperf_conj_base = "odissem" ;
|
||||||
|
+ fut_II_base = "oderi" ;
|
||||||
|
+ part_stem = "os" ;
|
||||||
|
+ verb =
|
||||||
|
+ mkVerb "odisse" 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 t n p => verb.act ! VAct VAnt t n p ;
|
||||||
|
+ _ => "######" -- no such verb forms
|
||||||
|
+ } ;
|
||||||
|
+ pass = \\_ => "######" ; -- no passive forms
|
||||||
|
+ ger = \\_ => "######" ; -- no gerund forms
|
||||||
|
+ geriv = \\_ => "######" ; -- no gerundive forms
|
||||||
|
+ imp = \\_ => "######" ; -- no imperative form
|
||||||
|
+ inf = table {
|
||||||
|
+ VInfActPres => verb.inf ! VInfActPres ;
|
||||||
|
+ VInfActFut g => verb.inf ! VInfActFut g ; -- really ?
|
||||||
|
+ _ => "######"
|
||||||
|
+ } ;
|
||||||
|
+ part = table {
|
||||||
|
+ VActFut =>
|
||||||
|
+ verb.part ! VActFut ;
|
||||||
|
+ VActPres =>
|
||||||
|
+ \\_ => "######" ; -- no such participle form
|
||||||
|
+ VPassPerf =>
|
||||||
|
+ \\_ => "######" -- no such participle form
|
||||||
|
+ } ;
|
||||||
|
+ sup = \\_ => "######" ; -- no such supine form
|
||||||
|
+ } ;
|
||||||
|
+}
|
||||||
18
src/latin/doc/magisterarbeit/diffs/IrregLatAbs.gf.diff
Normal file
18
src/latin/doc/magisterarbeit/diffs/IrregLatAbs.gf.diff
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/lib/src/latin/IrregLatAbs.gf b/lib/src/latin/IrregLatAbs.gf
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a5e86f7
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/lib/src/latin/IrregLatAbs.gf
|
||||||
|
@@ -0,0 +1,12 @@
|
||||||
|
+abstract IrregLatAbs = Cat ** {
|
||||||
|
+ fun
|
||||||
|
+ science_N : N ;
|
||||||
|
+ be_V : V ;
|
||||||
|
+ can_VV : VV ;
|
||||||
|
+ bring_V : V ;
|
||||||
|
+ want_V : V ;
|
||||||
|
+ go_V : V;
|
||||||
|
+ become_V : V;
|
||||||
|
+ rain_V : V;
|
||||||
|
+ hate_V : V;
|
||||||
|
+}
|
||||||
17
src/latin/doc/magisterarbeit/diffs/LangLat.gf.diff
Normal file
17
src/latin/doc/magisterarbeit/diffs/LangLat.gf.diff
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
diff --git a/lib/src/latin/LangLat.gf b/lib/src/latin/LangLat.gf
|
||||||
|
index e727a11..a61a880 100644
|
||||||
|
--- a/lib/src/latin/LangLat.gf
|
||||||
|
+++ b/lib/src/latin/LangLat.gf
|
||||||
|
@@ -1,10 +1,12 @@
|
||||||
|
--# -path=.:../abstract:../common:../prelude
|
||||||
|
|
||||||
|
concrete LangLat of Lang =
|
||||||
|
GrammarLat,
|
||||||
|
+ ParadigmsLat,
|
||||||
|
+ ConjunctionLat,
|
||||||
|
LexiconLat
|
||||||
|
** {
|
||||||
|
|
||||||
|
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||||
|
|
||||||
|
} ;
|
||||||
767
src/latin/doc/magisterarbeit/diffs/LexiconLat.gf.diff
Normal file
767
src/latin/doc/magisterarbeit/diffs/LexiconLat.gf.diff
Normal file
@@ -0,0 +1,767 @@
|
|||||||
|
diff --git a/lib/src/latin/LexiconLat.gf b/lib/src/latin/LexiconLat.gf
|
||||||
|
index 4c0fc16..14bdba2 100644
|
||||||
|
--- a/lib/src/latin/LexiconLat.gf
|
||||||
|
+++ b/lib/src/latin/LexiconLat.gf
|
||||||
|
@@ -1,377 +1,395 @@
|
||||||
|
--# -path=.:prelude
|
||||||
|
|
||||||
|
+--1 Basic Latin Lexicon.
|
||||||
|
+
|
||||||
|
+-- Aarne Ranta pre 2013, Herbert Lange 2013
|
||||||
|
+
|
||||||
|
+-- This lexicon implements all the words in the abstract Lexicon.
|
||||||
|
+-- For each entry a source is given, either a printed dictionary, a
|
||||||
|
+-- printed grammar book or a link to an online source. The used printed
|
||||||
|
+-- dictionaries are Langescheidts Schulwörterbuch Lateinisch 17. Edition
|
||||||
|
+-- 1984 (shorter: Langenscheidts), PONS Schulwörterbuch Latein 1. Edition
|
||||||
|
+-- 2012 (Shorter: Pons) and Der kleine Stowasser 3. Edition 1991 (shorter:
|
||||||
|
+-- Stowasser). The Grammar book is Bayer-Lindauer: Lateinische Schulgrammatik
|
||||||
|
+-- 2. Edition 1994.
|
||||||
|
+
|
||||||
|
concrete LexiconLat of Lexicon = CatLat ** open
|
||||||
|
ParadigmsLat,
|
||||||
|
--- IrregLat,
|
||||||
|
+ IrregLat,
|
||||||
|
+ ResLat,
|
||||||
|
+ StructuralLat,
|
||||||
|
+ NounLat,
|
||||||
|
+ AdjectiveLat,
|
||||||
|
+ VerbLat,
|
||||||
|
Prelude in {
|
||||||
|
|
||||||
|
flags
|
||||||
|
optimize=values ;
|
||||||
|
-
|
||||||
|
+ coding = utf8;
|
||||||
|
lin
|
||||||
|
--- airplane_N = mkN "airplane" ;
|
||||||
|
--- answer_V2S = mkV2S (regV "answer") toP ;
|
||||||
|
--- apartment_N = mkN "apartment" ;
|
||||||
|
--- apple_N = mkN "apple" ;
|
||||||
|
- art_N = mkN "ars" ;
|
||||||
|
--- ask_V2Q = mkV2Q (regV "ask") noPrep ;
|
||||||
|
- baby_N = mkN "infans" ;
|
||||||
|
- bad_A = mkA "malus" ;
|
||||||
|
--- bank_N = mkN "bank" ;
|
||||||
|
- beautiful_A = mkA "pulcher" ;
|
||||||
|
--- become_VA = mkVA (irregV "become" "became" "become") ;
|
||||||
|
- beer_N = mkN "cerevisia" ;
|
||||||
|
--- beg_V2V = mkV2V (regDuplV "beg") noPrep toP ;
|
||||||
|
- big_A = mkA "magnus" ;
|
||||||
|
--- bike_N = mkN "bike" ;
|
||||||
|
- bird_N = mkN "avis" "avis" masculine ;
|
||||||
|
- black_A = mkA "niger" ;
|
||||||
|
--- blue_A = regADeg "blue" ;
|
||||||
|
--- boat_N = mkN "boat" ;
|
||||||
|
- book_N = mkN "liber" ;
|
||||||
|
--- boot_N = mkN "boot" ;
|
||||||
|
--- boss_N = mkN human (mkN "boss") ;
|
||||||
|
- boy_N = mkN "liber" ;
|
||||||
|
- bread_N = mkN "panis" "panis" masculine ;
|
||||||
|
- break_V2 = mkV2 (mkV "rumpo" "rupi" "ruptum" "rumpere") ;
|
||||||
|
--- broad_A = regADeg "broad" ;
|
||||||
|
--- brother_N2 = mkN2 (mkN masculine (mkN "brother")) (mkPrep "of") ;
|
||||||
|
--- brown_A = regADeg "brown" ;
|
||||||
|
--- butter_N = mkN "butter" ;
|
||||||
|
--- buy_V2 = dirV2 (irregV "buy" "bought" "bought") ;
|
||||||
|
--- camera_N = mkN "camera" ;
|
||||||
|
--- cap_N = mkN "cap" ;
|
||||||
|
--- car_N = mkN "car" ;
|
||||||
|
--- carpet_N = mkN "carpet" ;
|
||||||
|
- cat_N = mkN "felis" ;
|
||||||
|
--- ceiling_N = mkN "ceiling" ;
|
||||||
|
--- chair_N = mkN "chair" ;
|
||||||
|
--- cheese_N = mkN "cheese" ;
|
||||||
|
--- child_N = mk2N "child" "children" ;
|
||||||
|
--- church_N = mkN "church" ;
|
||||||
|
- city_N = mkN "urbs" "urbis" feminine ;
|
||||||
|
--- clean_A = regADeg "clean" ;
|
||||||
|
--- clever_A = regADeg "clever" ;
|
||||||
|
--- close_V2 = dirV2 (regV "close") ;
|
||||||
|
--- coat_N = mkN "coat" ;
|
||||||
|
--- cold_A = regADeg "cold" ;
|
||||||
|
--- come_V = (irregV "come" "came" "come") ;
|
||||||
|
--- computer_N = mkN "computer" ;
|
||||||
|
--- country_N = mkN "country" ;
|
||||||
|
--- cousin_N = mkN human (mkN "cousin") ;
|
||||||
|
--- cow_N = mkN "cow" ;
|
||||||
|
--- die_V = (regV "die") ;
|
||||||
|
--- dirty_A = regADeg "dirty" ;
|
||||||
|
--- distance_N3 = mkN3 (mkN "distance") fromP toP ;
|
||||||
|
--- doctor_N = mkN human (mkN "doctor") ;
|
||||||
|
--- dog_N = mkN "dog" ;
|
||||||
|
--- door_N = mkN "door" ;
|
||||||
|
--- drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ;
|
||||||
|
--- easy_A2V = mkA2V (regA "easy") forP ;
|
||||||
|
--- eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ;
|
||||||
|
--- empty_A = regADeg "empty" ;
|
||||||
|
--- enemy_N = mkN "enemy" ;
|
||||||
|
--- factory_N = mkN "factory" ;
|
||||||
|
--- father_N2 = mkN2 (mkN masculine (mkN "father")) (mkPrep "of") ;
|
||||||
|
--- fear_VS = mkVS (regV "fear") ;
|
||||||
|
--- find_V2 = dirV2 (irregV "find" "found" "found") ;
|
||||||
|
--- fish_N = mk2N "fish" "fish" ;
|
||||||
|
--- floor_N = mkN "floor" ;
|
||||||
|
--- forget_V2 = dirV2 (irregDuplV "forget" "forgot" "forgotten") ;
|
||||||
|
--- fridge_N = mkN "fridge" ;
|
||||||
|
--- friend_N = mkN human (mkN "friend") ;
|
||||||
|
--- fruit_N = mkN "fruit" ;
|
||||||
|
--- fun_AV = mkAV (regA "fun") ;
|
||||||
|
--- garden_N = mkN "garden" ;
|
||||||
|
--- girl_N = mkN feminine (mkN "girl") ;
|
||||||
|
--- glove_N = mkN "glove" ;
|
||||||
|
- gold_N = mkN "aurum" ;
|
||||||
|
- good_A = mkA "bonus" ;
|
||||||
|
--- go_V = mk5V "go" "goes" "went" "gone" "going" ;
|
||||||
|
--- green_A = regADeg "green" ;
|
||||||
|
--- harbour_N = mkN "harbour" ;
|
||||||
|
--- hate_V2 = dirV2 (regV "hate") ;
|
||||||
|
--- hat_N = mkN "hat" ;
|
||||||
|
--- have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
|
||||||
|
--- hear_V2 = dirV2 (irregV "hear" "heard" "heard") ;
|
||||||
|
--- hill_N = mkN "hill" ;
|
||||||
|
--- hope_VS = mkVS (regV "hope") ;
|
||||||
|
--- horse_N = mkN "horse" ;
|
||||||
|
--- hot_A = duplADeg "hot" ;
|
||||||
|
--- house_N = mkN "house" ;
|
||||||
|
--- important_A = compoundADeg (regA "important") ;
|
||||||
|
--- industry_N = mkN "industry" ;
|
||||||
|
--- iron_N = mkN "iron" ;
|
||||||
|
--- king_N = mkN masculine (mkN "king") ;
|
||||||
|
--- know_V2 = dirV2 (irregV "know" "knew" "known") ;
|
||||||
|
--- lake_N = mkN "lake" ;
|
||||||
|
--- lamp_N = mkN "lamp" ;
|
||||||
|
--- learn_V2 = dirV2 (regV "learn") ;
|
||||||
|
--- leather_N = mkN "leather" ;
|
||||||
|
--- leave_V2 = dirV2 (irregV "leave" "left" "left") ;
|
||||||
|
--- like_V2 = dirV2 (regV "like") ;
|
||||||
|
--- listen_V2 = prepV2 (regV "listen") toP ;
|
||||||
|
--- live_V = (regV "live") ;
|
||||||
|
--- long_A = regADeg "long" ;
|
||||||
|
--- lose_V2 = dirV2 (irregV "lose" "lost" "lost") ;
|
||||||
|
- love_N = mkN "amor" ;
|
||||||
|
- love_V2 = mkV2 "amare" ;
|
||||||
|
--- man_N = mkN masculine (mk2N "man" "men") ;
|
||||||
|
--- married_A2 = mkA2 (regA "married") toP ;
|
||||||
|
--- meat_N = mkN "meat" ;
|
||||||
|
--- milk_N = mkN "milk" ;
|
||||||
|
--- moon_N = mkN "moon" ;
|
||||||
|
--- mother_N2 = mkN2 (mkN feminine (mkN "mother")) (mkPrep "of") ;
|
||||||
|
--- mountain_N = mkN "mountain" ;
|
||||||
|
--- music_N = mkN "music" ;
|
||||||
|
--- narrow_A = regADeg "narrow" ;
|
||||||
|
--- new_A = regADeg "new" ;
|
||||||
|
--- newspaper_N = mkN "newspaper" ;
|
||||||
|
--- oil_N = mkN "oil" ;
|
||||||
|
--- old_A = regADeg "old" ;
|
||||||
|
--- open_V2 = dirV2 (regV "open") ;
|
||||||
|
--- paint_V2A = mkV2A (regV "paint") noPrep ;
|
||||||
|
--- paper_N = mkN "paper" ;
|
||||||
|
--- paris_PN = mkPN (mkN nonhuman (mkN "Paris")) ;
|
||||||
|
--- peace_N = mkN "peace" ;
|
||||||
|
--- pen_N = mkN "pen" ;
|
||||||
|
--- planet_N = mkN "planet" ;
|
||||||
|
--- plastic_N = mkN "plastic" ;
|
||||||
|
--- play_V2 = dirV2 (regV "play") ;
|
||||||
|
--- policeman_N = mkN masculine (mkN "policeman" "policemen") ;
|
||||||
|
--- priest_N = mkN human (mkN "priest") ;
|
||||||
|
--- probable_AS = mkAS (regA "probable") ;
|
||||||
|
--- queen_N = mkN feminine (mkN "queen") ;
|
||||||
|
--- radio_N = mkN "radio" ;
|
||||||
|
--- rain_V0 = mkV0 (regV "rain") ;
|
||||||
|
--- read_V2 = dirV2 (irregV "read" "read" "read") ;
|
||||||
|
--- red_A = duplADeg "red" ;
|
||||||
|
--- religion_N = mkN "religion" ;
|
||||||
|
--- restaurant_N = mkN "restaurant" ;
|
||||||
|
--- river_N = mkN "river" ;
|
||||||
|
--- rock_N = mkN "rock" ;
|
||||||
|
--- roof_N = mkN "roof" ;
|
||||||
|
--- rubber_N = mkN "rubber" ;
|
||||||
|
--- run_V = (irregDuplV "run" "ran" "run") ;
|
||||||
|
--- say_VS = mkVS (irregV "say" "said" "said") ;
|
||||||
|
--- school_N = mkN "school" ;
|
||||||
|
--- science_N = mkN "science" ;
|
||||||
|
--- sea_N = mkN "sea" ;
|
||||||
|
--- seek_V2 = dirV2 (irregV "seek" "sought" "sought") ;
|
||||||
|
--- see_V2 = dirV2 (irregV "see" "saw" "seen") ;
|
||||||
|
--- sell_V3 = dirV3 (irregV "sell" "sold" "sold") toP ;
|
||||||
|
--- send_V3 = dirV3 (irregV "send" "sent" "sent") toP ;
|
||||||
|
--- sheep_N = mk2N "sheep" "sheep" ;
|
||||||
|
--- ship_N = mkN "ship" ;
|
||||||
|
--- shirt_N = mkN "shirt" ;
|
||||||
|
--- shoe_N = mkN "shoe" ;
|
||||||
|
--- shop_N = mkN "shop" ;
|
||||||
|
--- short_A = regADeg "short" ;
|
||||||
|
--- silver_N = mkN "silver" ;
|
||||||
|
--- sister_N = mkN2 (mkN feminine (mkN "sister")) (mkPrep "of") ;
|
||||||
|
- sleep_V = mkV "dormio" "dormivi" "dormitus" "dormire" ;
|
||||||
|
--- small_A = regADeg "small" ;
|
||||||
|
--- snake_N = mkN "snake" ;
|
||||||
|
--- sock_N = mkN "sock" ;
|
||||||
|
--- speak_V2 = dirV2 (irregV "speak" "spoke" "spoken") ;
|
||||||
|
--- star_N = mkN "star" ;
|
||||||
|
--- steel_N = mkN "steel" ;
|
||||||
|
--- stone_N = mkN "stone" ;
|
||||||
|
--- stove_N = mkN "stove" ;
|
||||||
|
--- student_N = mkN human (mkN "student") ;
|
||||||
|
--- stupid_A = regADeg "stupid" ;
|
||||||
|
--- sun_N = mkN "sun" ;
|
||||||
|
--- switch8off_V2 = dirV2 (partV (regV "switch") "off") ;
|
||||||
|
--- switch8on_V2 = dirV2 (partV (regV "switch") "on") ;
|
||||||
|
--- table_N = mkN "table" ;
|
||||||
|
--- talk_V3 = mkV3 (regV "talk") toP aboutP ;
|
||||||
|
--- teacher_N = mkN human (mkN "teacher") ;
|
||||||
|
--- teach_V2 = dirV2 (irregV "teach" "taught" "taught") ;
|
||||||
|
--- television_N = mkN "television" ;
|
||||||
|
--- thick_A = regADeg "thick" ;
|
||||||
|
--- thin_A = duplADeg "thin" ;
|
||||||
|
--- train_N = mkN "train" ;
|
||||||
|
--- travel_V = (regDuplV "travel") ;
|
||||||
|
--- tree_N = mkN "tree" ;
|
||||||
|
--- ---- trousers_N = mkN "trousers" ;
|
||||||
|
--- ugly_A = regADeg "ugly" ;
|
||||||
|
--- understand_V2 = dirV2 (irregV "understand" "understood" "understood") ;
|
||||||
|
--- university_N = mkN "university" ;
|
||||||
|
--- village_N = mkN "village" ;
|
||||||
|
--- wait_V2 = prepV2 (regV "wait") forP ;
|
||||||
|
--- walk_V = (regV "walk") ;
|
||||||
|
--- warm_A = regADeg "warm" ;
|
||||||
|
--- war_N = mkN "war" ;
|
||||||
|
--- watch_V2 = dirV2 (regV "watch") ;
|
||||||
|
--- water_N = mkN "water" ;
|
||||||
|
--- white_A = regADeg "white" ;
|
||||||
|
--- window_N = mkN "window" ;
|
||||||
|
--- wine_N = mkN "wine" ;
|
||||||
|
--- win_V2 = dirV2 (irregDuplV "win" "won" "won") ;
|
||||||
|
--- woman_N = mkN feminine (mk2N "woman" "women") ;
|
||||||
|
--- wonder_VQ = mkVQ (regV "wonder") ;
|
||||||
|
--- wood_N = mkN "wood" ;
|
||||||
|
--- write_V2 = dirV2 (irregV "write" "wrote" "written") ;
|
||||||
|
--- yellow_A = regADeg "yellow" ;
|
||||||
|
--- young_A = regADeg "young" ;
|
||||||
|
---
|
||||||
|
--- do_V2 = dirV2 (mk5V "do" "does" "did" "done" "doing") ;
|
||||||
|
--- now_Adv = mkAdv "now" ;
|
||||||
|
--- already_Adv = mkAdv "already" ;
|
||||||
|
--- song_N = mkN "song" ;
|
||||||
|
--- add_V3 = dirV3 (regV "add") toP ;
|
||||||
|
--- number_N = mkN "number" ;
|
||||||
|
--- put_V2 = prepV2 (irregDuplV "put" "put" "put") noPrep ;
|
||||||
|
--- stop_V = regDuplV "stop" ;
|
||||||
|
--- jump_V = regV "jump" ;
|
||||||
|
---
|
||||||
|
--- left_Ord = ss "left" ;
|
||||||
|
--- right_Ord = ss "right" ;
|
||||||
|
--- far_Adv = mkAdv "far" ;
|
||||||
|
--- correct_A = (regA "correct") ;
|
||||||
|
--- dry_A = regA "dry" ;
|
||||||
|
--- dull_A = regA "dull" ;
|
||||||
|
--- full_A = regA "full" ;
|
||||||
|
--- heavy_A = regA "heavy" ;
|
||||||
|
--- near_A = regA "near" ;
|
||||||
|
--- rotten_A = (regA "rotten") ;
|
||||||
|
--- round_A = regA "round" ;
|
||||||
|
--- sharp_A = regA "sharp" ;
|
||||||
|
--- smooth_A = regA "smooth" ;
|
||||||
|
--- straight_A = regA "straight" ;
|
||||||
|
--- wet_A = regA "wet" ; ----
|
||||||
|
--- wide_A = regA "wide" ;
|
||||||
|
--- animal_N = mkN "animal" ;
|
||||||
|
--- ashes_N = mkN "ash" ; -- FIXME: plural only?
|
||||||
|
--- back_N = mkN "back" ;
|
||||||
|
--- bark_N = mkN "bark" ;
|
||||||
|
--- belly_N = mkN "belly" ;
|
||||||
|
--- blood_N = mkN "blood" ;
|
||||||
|
--- bone_N = mkN "bone" ;
|
||||||
|
--- breast_N = mkN "breast" ;
|
||||||
|
--- cloud_N = mkN "cloud" ;
|
||||||
|
--- day_N = mkN "day" ;
|
||||||
|
--- dust_N = mkN "dust" ;
|
||||||
|
--- ear_N = mkN "ear" ;
|
||||||
|
--- earth_N = mkN "earth" ;
|
||||||
|
--- egg_N = mkN "egg" ;
|
||||||
|
--- eye_N = mkN "eye" ;
|
||||||
|
--- fat_N = mkN "fat" ;
|
||||||
|
--- feather_N = mkN "feather" ;
|
||||||
|
--- fingernail_N = mkN "fingernail" ;
|
||||||
|
--- fire_N = mkN "fire" ;
|
||||||
|
--- flower_N = mkN "flower" ;
|
||||||
|
--- fog_N = mkN "fog" ;
|
||||||
|
--- foot_N = mk2N "foot" "feet" ;
|
||||||
|
--- forest_N = mkN "forest" ;
|
||||||
|
--- grass_N = mkN "grass" ;
|
||||||
|
--- guts_N = mkN "gut" ; -- FIXME: no singular
|
||||||
|
--- hair_N = mkN "hair" ;
|
||||||
|
--- hand_N = mkN "hand" ;
|
||||||
|
--- head_N = mkN "head" ;
|
||||||
|
--- heart_N = mkN "heart" ;
|
||||||
|
--- horn_N = mkN "horn" ;
|
||||||
|
--- husband_N = mkN masculine (mkN "husband") ;
|
||||||
|
--- ice_N = mkN "ice" ;
|
||||||
|
--- knee_N = mkN "knee" ;
|
||||||
|
--- leaf_N = mk2N "leaf" "leaves" ;
|
||||||
|
--- leg_N = mkN "leg" ;
|
||||||
|
--- liver_N = mkN "liver" ;
|
||||||
|
--- louse_N = mk2N "louse" "lice" ;
|
||||||
|
--- mouth_N = mkN "mouth" ;
|
||||||
|
--- name_N = mkN "name" ;
|
||||||
|
--- neck_N = mkN "neck" ;
|
||||||
|
--- night_N = mkN "night" ;
|
||||||
|
--- nose_N = mkN "nose" ;
|
||||||
|
--- person_N = mkN human (mkN "person") ;
|
||||||
|
--- rain_N = mkN "rain" ;
|
||||||
|
--- road_N = mkN "road" ;
|
||||||
|
--- root_N = mkN "root" ;
|
||||||
|
--- rope_N = mkN "rope" ;
|
||||||
|
--- salt_N = mkN "salt" ;
|
||||||
|
--- sand_N = mkN "sand" ;
|
||||||
|
--- seed_N = mkN "seed" ;
|
||||||
|
--- skin_N = mkN "skin" ;
|
||||||
|
--- sky_N = mkN "sky" ;
|
||||||
|
--- smoke_N = mkN "smoke" ;
|
||||||
|
--- snow_N = mkN "snow" ;
|
||||||
|
--- stick_N = mkN "stick" ;
|
||||||
|
--- tail_N = mkN "tail" ;
|
||||||
|
--- tongue_N = mkN "tongue" ;
|
||||||
|
--- tooth_N = mk2N "tooth" "teeth" ;
|
||||||
|
--- wife_N = mkN feminine (mk2N "wife" "wives") ;
|
||||||
|
--- wind_N = mkN "wind" ;
|
||||||
|
--- wing_N = mkN "wing" ;
|
||||||
|
--- worm_N = mkN "worm" ;
|
||||||
|
--- year_N = mkN "year" ;
|
||||||
|
--- blow_V = IrregLat.blow_V ;
|
||||||
|
--- breathe_V = dirV2 (regV "breathe") ;
|
||||||
|
--- burn_V = IrregLat.burn_V ;
|
||||||
|
--- dig_V = IrregLat.dig_V ;
|
||||||
|
--- fall_V = IrregLat.fall_V ;
|
||||||
|
--- float_V = regV "float" ;
|
||||||
|
--- flow_V = regV "flow" ;
|
||||||
|
--- fly_V = IrregLat.fly_V ;
|
||||||
|
--- freeze_V = IrregLat.freeze_V ;
|
||||||
|
--- give_V3 = dirV3 give_V toP ;
|
||||||
|
--- laugh_V = regV "laugh" ;
|
||||||
|
--- lie_V = IrregLat.lie_V ;
|
||||||
|
--- play_V = regV "play" ;
|
||||||
|
--- sew_V = IrregLat.sew_V ;
|
||||||
|
--- sing_V = IrregLat.sing_V ;
|
||||||
|
--- sit_V = IrregLat.sit_V ;
|
||||||
|
--- smell_V = regV "smell" ;
|
||||||
|
--- spit_V = IrregLat.spit_V ;
|
||||||
|
--- stand_V = IrregLat.stand_V ;
|
||||||
|
--- swell_V = IrregLat.swell_V ;
|
||||||
|
--- swim_V = IrregLat.swim_V ;
|
||||||
|
--- think_V = IrregLat.think_V ;
|
||||||
|
--- turn_V = regV "turn" ;
|
||||||
|
--- vomit_V = regV "vomit" ;
|
||||||
|
---
|
||||||
|
--- bite_V2 = dirV2 IrregLat.bite_V ;
|
||||||
|
--- count_V2 = dirV2 (regV "count") ;
|
||||||
|
--- cut_V2 = dirV2 IrregLat.cut_V ;
|
||||||
|
--- fear_V2 = dirV2 (regV "fear") ;
|
||||||
|
--- fight_V2 = dirV2 fight_V ;
|
||||||
|
--- hit_V2 = dirV2 hit_V ;
|
||||||
|
--- hold_V2 = dirV2 hold_V ;
|
||||||
|
--- hunt_V2 = dirV2 (regV "hunt") ;
|
||||||
|
--- kill_V2 = dirV2 (regV "kill") ;
|
||||||
|
--- pull_V2 = dirV2 (regV "pull") ;
|
||||||
|
--- push_V2 = dirV2 (regV "push") ;
|
||||||
|
--- rub_V2 = dirV2 (regDuplV "rub") ;
|
||||||
|
--- scratch_V2 = dirV2 (regV "scratch") ;
|
||||||
|
--- split_V2 = dirV2 split_V ;
|
||||||
|
--- squeeze_V2 = dirV2 (regV "squeeze") ;
|
||||||
|
--- stab_V2 = dirV2 (regDuplV "stab") ;
|
||||||
|
--- suck_V2 = dirV2 (regV "suck") ;
|
||||||
|
--- throw_V2 = dirV2 throw_V ;
|
||||||
|
--- tie_V2 = dirV2 (regV "tie") ;
|
||||||
|
--- wash_V2 = dirV2 (regV "wash") ;
|
||||||
|
--- wipe_V2 = dirV2 (regV "wipe") ;
|
||||||
|
---
|
||||||
|
----- other_A = regA "other" ;
|
||||||
|
---
|
||||||
|
--- grammar_N = mkN "grammar" ;
|
||||||
|
--- language_N = mkN "language" ;
|
||||||
|
--- rule_N = mkN "rule" ;
|
||||||
|
---
|
||||||
|
----- added 4/6/2007
|
||||||
|
--- john_PN = mkPN (mkN masculine (mkN "John")) ;
|
||||||
|
--- question_N = mkN "question" ;
|
||||||
|
--- ready_A = regA "ready" ;
|
||||||
|
--- reason_N = mkN "reason" ;
|
||||||
|
--- today_Adv = mkAdv "today" ;
|
||||||
|
--- uncertain_A = regA "uncertain" ;
|
||||||
|
---
|
||||||
|
---oper
|
||||||
|
--- aboutP = mkPrep "about" ;
|
||||||
|
--- atP = mkPrep "at" ;
|
||||||
|
--- forP = mkPrep "for" ;
|
||||||
|
--- fromP = mkPrep "from" ;
|
||||||
|
--- inP = mkPrep "in" ;
|
||||||
|
--- onP = mkPrep "on" ;
|
||||||
|
--- toP = mkPrep "to" ;
|
||||||
|
---
|
||||||
|
+ airplane_N = mkN "aeroplanum" ; -- -i n. (http://la.wikipedia.org/wiki/A%C3%ABroplanum / Pons)
|
||||||
|
+ 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)
|
||||||
|
+ apple_N = mkN "malum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ art_N = mkN "ars" "artis" feminine ; -- Ranta; artis f. (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ bad_A = mkA "malus" ; -- Ranta; peior, pessimus 3 (Langenscheidts)
|
||||||
|
+ bank_N = mkN "argentaria" ; -- -ae f. (http://la.wikipedia.org/wiki/Argentaria / Pons)
|
||||||
|
+ beautiful_A = mkA "pulcher" ; -- -chra, -chrum (Langenscheidts)
|
||||||
|
+ become_VA = mkVA (mkV "fieri") ; -- fio, factus (Langenscheidts)
|
||||||
|
+ beer_N = mkN ( "cervisia" ) ; -- Ranta; -ae f. (http://la.wikipedia.org/wiki/Cervisia / Pons)
|
||||||
|
+ beg_V2V = mkV2V ( mkV "petere" "peto" "petivi" "petitum" ) "ab" False ; -- peto, -tivi/tii, -titum 3 (Langenscheidts) ab aliquo (Stowasser)
|
||||||
|
+ big_A = mkA "magnus" ; -- Ranta; maior, maximus 3 (Langenscheidts)
|
||||||
|
+ bike_N = mkN "birota" ; -- -ae f. (http://la.wikipedia.org/wiki/Birota / Pons)
|
||||||
|
+ bird_N = mkN "avis" "avis" feminine ; -- Ranta; -is f. (Langenscheidts)
|
||||||
|
+ black_A = mkA "niger" ; -- Ranta; -gra, -grum (Langenscheidts)
|
||||||
|
+ blue_A = mkA ( variants { "caeruleus" ; "caerulus" } ) ; -- 3 (Langenscheidts)
|
||||||
|
+ boat_N = mkN "navicula" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ book_N = mkN "liber"; -- Ranta; -bri m. (Langenscheidts)
|
||||||
|
+ boot_N = mkN "calceus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ boss_N = mkN "dux" "ducis" ( variants { feminine ; masculine } ) ; -- ducis m./f. (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)
|
||||||
|
+ break_V2 = mkV2 ( mkV "rumpere" "rumpo" "rupi" "ruptum" ) ; -- Ranta; 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
|
+ broad_A = mkA "latus" ; -- 3 (Langenscheidts)
|
||||||
|
+ brother_N2 = mkN2 ( mkN "frater" "fratris" masculine ) Gen_Prep; -- -tris m. (Langenscheidts) alicuius (Bayer-Lindauer 125.2)
|
||||||
|
+ brown_A = mkA "fulvus" ; -- 3 (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ -- Trying to work with Machina ++ photographica
|
||||||
|
+ camera_N = ResLat.useCNasN (AdjCN (PositA (mkA "photographicus") ) (UseN (mkN "machina" ) ) ) ; -- (http://la.wikipedia.org/wiki/Machina_photographica / Pons)
|
||||||
|
+ cap_N = mkN "galerus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ cat_N = mkN ( variants {"feles" ; "felis" } ) "felis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
+ ceiling_N = mkN "tegimentum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ chair_N = mkN "sedes" "sedis" feminine; -- -is f. (Langenscheidts)
|
||||||
|
+ cheese_N = mkN "caseus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ child_N = mkN "proles" "prolis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
+ church_N = mkN "ecclesia" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ city_N = mkN "urbs" "urbis" feminine; -- Ranta; urbis f. (Langenscheidts)
|
||||||
|
+ clean_A = mkA "lautus" ; -- 3 (Langenscheidts)
|
||||||
|
+ clever_A = mkA "callidus" ; -- 3 (Langenscheidts)
|
||||||
|
+ close_V2 = mkV2 (mkV "claudere") ; -- claudo, clasi, clausum 3 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
|
+ coat_N = mkN "pallium" ; -- -i n. (Langenscheidts)
|
||||||
|
+ cold_A = mkA "frigidus" ; -- 3 (Langenscheidts)
|
||||||
|
+ come_V = mkV "venire" ; -- veno, veni, ventum 4 (Langenscheidts)
|
||||||
|
+ computer_N = mkN "computatrum" ; -- -i n. (http://la.wikipedia.org/wiki/Computatrum / Pons)
|
||||||
|
+ country_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ cousin_N = mkN ( variants {"consobrinus" ; "consobrina" } ) ; -- -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)
|
||||||
|
+ die_V = mkV "mori" "mortuus" "morturus"; -- morior, mortuus sum, morturus (Langenscheidts)
|
||||||
|
+ dirty_A = mkA "sordidus" ; -- 3 (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ distance_N3 = mkN3 (mkN "distantia") from_Prep to_Prep ; -- -ae f. (Langenscheidts) ab, ad aliquem; alicuius; aliquem (???)
|
||||||
|
+ doctor_N = mkN "medicus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ dog_N = mkN "canis" "canis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
||||||
|
+ door_N = mkN "porta" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ eat_V2 = mkV2 (mkV "cenare") ; -- ceno 1 (Langenscheidts) aliquem (Bayer-Lindauer 110)
|
||||||
|
+ empty_A = mkA "vacuus" ; -- 3 (Langenscheidts)
|
||||||
|
+ enemy_N = mkN "hostis" "hostis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
||||||
|
+ factory_N = mkN "officina" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ find_V2 = mkV2 (mkV "reperire") ; -- reperio, repperi, repertum 4 (Langenscheidts) aliquem
|
||||||
|
+ fish_N = mkN "piscis" "piscis" masculine ; -- -is m. (Langenscheidts)
|
||||||
|
+ floor_N = mkN "pavimentum" ; -- -i n. (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)
|
||||||
|
+ friend_N = mkN ( variants { "amicus" ; "amica" } ) ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
|
+ fruit_N = mkN "fructus" "fructus" masculine; -- -us m. (Langenscheidts)
|
||||||
|
+ fun_AV = mkAV (mkA "iocosus") ; -- 3 (Langenscheidts)
|
||||||
|
+ garden_N = mkN "hortus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ girl_N = mkN "puella" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ glove_N = mkN "caestus" "caestus" masculine ; --us m. (Langenscheidts)
|
||||||
|
+ gold_N = mkN "aurum" ; -- Ranta; -i n. (Langenscheidts)
|
||||||
|
+ good_A = mkA "bonus" ; -- Ranta; 3 comp melior, -us; sup optimus 3; adv bene
|
||||||
|
+ go_V = IrregLat.go_V ; -- eo, i(v)i, itum (Langenscheidts)
|
||||||
|
+ green_A = mkA "viridis" "viride"; -- -e (Langenscheidts)
|
||||||
|
+ harbour_N = mkN "portus" "portus" masculine ; -- -us m. (Langenscheidts)
|
||||||
|
+ hate_V2 = mkV2 IrregLat.hate_V Acc_Prep ; -- odi, osurus/odivi (Langenscheidts)
|
||||||
|
+ hat_N = mkN "petasus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ hear_V2 = mkV2 (mkV "audire") ; -- 4 (Langenscheidts)
|
||||||
|
+ hill_N = mkN "collis" "collis" masculine ; -- -is m. (Langenscheidts)
|
||||||
|
+ hope_VS = mkVS (mkV "sperare") ; -- 1 (Langenscheidts)
|
||||||
|
+ horse_N = mkN "equus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ hot_A = mkA "calidus" ; -- 3 (Langenscheidts)
|
||||||
|
+ house_N = mkN "domus" "domus" feminine ; -- -us f. (Langenscheidts)
|
||||||
|
+ important_A = mkA "gravis" "grave"; -- -e (Langenscheidts)
|
||||||
|
+ industry_N = mkN "industria" ; -- -ae f. (http://la.wikipedia.org/wiki/Industria / Pons)
|
||||||
|
+ iron_N = mkN "ferrum" ; -- -i m. (Langenscheidts)
|
||||||
|
+ king_N = mkN "rex" "regis" masculine; -- regis m. (Langenscheidts)
|
||||||
|
+ know_V2 = mkV2 (mkV "scire") ; -- scio, scivi/scii, scitum 4 (Langenscheidts)
|
||||||
|
+ know_VQ = mkV "scire" ;
|
||||||
|
+ know_VS = mkV "scire" ;
|
||||||
|
+ lake_N = mkN "lacus" "lacus" masculine; -- -us m. (Langenscheidts)
|
||||||
|
+ lamp_N = mkN "lucerna" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ learn_V2 = mkV2 (mkV "discere" "disco" "didici") ; -- disco, didici, - 3 (-isc-?) (Langenscheidts)
|
||||||
|
+ leather_N = mkN "scortum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ leave_V2 = mkV2 (mkV "relinquere" "relinquo" "relinqui" "relictum") ; -- relinquo, relinqui, relictum 3 (Langenscheidts)
|
||||||
|
+ like_V2 = mkV2 ( IrregLat.want_V ) ; -- vello, velli (volsi, vulsi), vulsum 3 (Langenscheidts)
|
||||||
|
+ listen_V2 = mkV2 (mkV "auscultare") ; -- ausculto 1 (Langenscheidts)
|
||||||
|
+ live_V = mkV "vivere" "vivo" "vixi" "victum" ; -- vivo, vixi, victurus 3 (Langenscheidts)
|
||||||
|
+ long_A = mkA "longus" ; -- 3 (Langenscheidts)
|
||||||
|
+ lose_V2 = mkV2 (mkV "amittere") ; -- amitto, amissi, amissum 3 (Langenscheidts)
|
||||||
|
+ love_N = mkN "amor" "amoris" masculine ; -- Ranta; -oris m. (Langenscheidts)
|
||||||
|
+ love_V2 = mkV2 "amare" ; -- Ranta; amo 1 (Langenscheidts)
|
||||||
|
+ man_N = mkN "vir" "viri" masculine ; -- viri m. (Langenscheidts)
|
||||||
|
+ -- Category not yet implemented
|
||||||
|
+ married_A2 = mkA2 (mkA "coniunctus") to_Prep; -- 3 (http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0060:entry=coniunctus&highlight=married)
|
||||||
|
+ meat_N = mkN "carnis" "carnis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
+ milk_N = mkN "lac" "lactis" neuter ; -- -- lactis n. (Langenscheidts)
|
||||||
|
+ moon_N = mkN "luna" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ mother_N2 = mkN2 ( mkN "mater" "matris" feminine ) Gen_Prep ; -- matris f. (Langenscheidts)
|
||||||
|
+ mountain_N = mkN "mons" "montis" masculine ; -- montis m. (Langenscheidts)
|
||||||
|
+ music_N = mkN "musica" ; -- -ae f. L..
|
||||||
|
+ narrow_A = mkA "angustus" ; -- 3 (Langenscheidts)
|
||||||
|
+ new_A = mkA "novus" ; -- 3 (Langenscheidts)
|
||||||
|
+ newspaper_N = mkN "diurnum" ; -- -i n. (Pons)
|
||||||
|
+ oil_N = mkN "oleum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ old_A = mkA "vetus" "veteris"; -- (Langenscheidts)
|
||||||
|
+ open_V2 = mkV2 (mkV "aperire") ; -- aperio, aperui, apertum 4 (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)
|
||||||
|
+ paris_PN = mkPN (mkN "Lutetia") ; -- -ae f. (http://la.wikipedia.org/wiki/Lutetia)
|
||||||
|
+ peace_N = mkN "pax" "pacis" feminine ; -- pacis f. (Langenscheidts)
|
||||||
|
+ pen_N = mkN "stilus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ 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)
|
||||||
|
+ play_V2 = mkV2 (mkV "ludere" "ludo" "lusi" "lusum" ) ; -- ludo, lusi, lusum 3 (Langenscheidts)
|
||||||
|
+ policeman_N = mkN "custos" "custodis" ( variants { masculine ; feminine } ) ; -- -odis m./f. (Langenscheidts)
|
||||||
|
+ priest_N = mkN "sacerdos" "sacerdotis" ( variants { masculine ; feminine } ) ; -- -dotis m./f. (Langenscheidts)
|
||||||
|
+ probable_AS = mkAS (mkA "verisimilis" "verisimile") ; -- -e (Langenscheidts)
|
||||||
|
+ queen_N = mkN "regina" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ radio_N = mkN "radiophonum" ; -- -i n. (Pons / http://la.wikipedia.org/wiki/Radiophonia)
|
||||||
|
+ rain_V0 = mkV0 ( IrregLat.rain_V ) ; -- (Langenscheidts)
|
||||||
|
+ read_V2 = mkV2 (mkV "legere" "lego" "legi" "lectum") ; -- lego, legi, lectum 3 (Langenscheidts)
|
||||||
|
+ red_A = mkA "ruber" ; -- rubra, rubrum (Langenscheidts)
|
||||||
|
+ religion_N = mkN "religio" "religionis" feminine ; -- -onis f. (Langenscheidts)
|
||||||
|
+ restaurant_N = mkN "taberna" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ river_N = mkN "fluvius" ; -- -i m. (Langenscheidts)
|
||||||
|
+ rock_N = mkN "saxum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ roof_N = mkN "tectum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ rubber_N = mkN "cummis" "cummis" feminine ; -- -is f. Der kleine Stowasser
|
||||||
|
+ run_V = mkV "currere" "curro" "cucurri" "cursum" ; -- curro, cucurri, cursum 3 (Langenscheidts)
|
||||||
|
+ say_VS = mkVS (mkV "dicere" "dico" "dixi" "dictum") ; -- dico, dixi, dictum 3 (Langenscheidts)
|
||||||
|
+ school_N = mkN "schola" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ -- Irregular
|
||||||
|
+ science_N = IrregLat.science_N ;
|
||||||
|
+ sea_N = mkN "mare" "maris" neuter ; -- -is n. (Langenscheidts)
|
||||||
|
+ seek_V2 = mkV2 (mkV "quaerere" "quaero" "quaesivi" "quaesitum" ) ; -- quaero, quaesivi, quaesitum 3 (Langenscheidts)
|
||||||
|
+ see_V2 = mkV2 (mkV "videre") ; -- video, vidi, visum 2 (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" ) Acc_Prep Dat_Prep ; -- mitto, misi, missum 3 (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)
|
||||||
|
+ shirt_N = mkN "tunica" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ shoe_N = boot_N ;
|
||||||
|
+ shop_N = mkN "institorium" ; -- -i n. (Langenscheidts)
|
||||||
|
+ short_A = mkA "brevis" "breve" ; -- -e (Langenscheidts)
|
||||||
|
+ silver_N = mkN "argentum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ sister_N = mkN "soror" "sororis" feminine; -- -oris f. (Langenscheidts)
|
||||||
|
+-- sleep_V = mkV "dormio" "dormivi" "dormitus" "dormire" ; -- Ranta;
|
||||||
|
+ sleep_V = mkV "dormire" ; -- 4 (Langenscheidts)
|
||||||
|
+ small_A = mkA "parvus" ; -- 3 (Langenscheidts)
|
||||||
|
+ snake_N = mkN "serpens" "serpentis" ( variants { masculine ; feminine } ) ; -- -entis m./f. (Langenscheidts)
|
||||||
|
+ sock_N = mkN "impile" "impilis" masculine ; -- -is n. (Pons)
|
||||||
|
+ speak_V2 = mkV2 (mkV "loqui" "loquor" "locutus" ) ; -- loquor, locutus sum 3 (Langenscheidts)
|
||||||
|
+ star_N = mkN "stella" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ steel_N = mkN "chalybs" "chalybis" masculine ; -- chalybis m. (Langenscheidts)
|
||||||
|
+ stone_N = mkN "lapis" "lapidis" masculine ; -- -idis m. (Langenscheidts)
|
||||||
|
+ stove_N = mkN "fornax" "formacis" feminine ; -- -acis f. (Langenscheidts)
|
||||||
|
+ student_N = mkN ( variants { "discipulus"; "discipula" } ) ; -- -i/-ae m./f. (Langenscheidts)
|
||||||
|
+ stupid_A = mkA "stultus" ; -- 3 (Langenscheidts)
|
||||||
|
+ sun_N = mkN "sol" "solis" masculine ; -- solis m. (Langenscheidts)
|
||||||
|
+ switch8off_V2 = mkV2 (mkV "accendere") ; -- -cendo, -cendi, -censum 3 (Langenscheidts)
|
||||||
|
+ switch8on_V2 = mkV2 ( variants { mkV "exstinguere" "exstingo" "exstinxi" "exstinctum" ; mkV "extinguere" "extingo" "extinxi" "extinctum" } ) ; -- -ingo, -inxi, -inctum 3 (Langenscheidts)
|
||||||
|
+ table_N = mkN "mensa" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ talk_V3 = mkV3 ( lin V speak_V2 ) Dat_Prep Acc_Prep ;
|
||||||
|
+ teacher_N = mkN "magister" "magistri" masculine ; -- -tri m. (Langenscheidts)
|
||||||
|
+ teach_V2 = mkV2 (mkV "docere") ; -- doceo, docui, doctum 2 (Langenscheidts)
|
||||||
|
+ television_N = mkN "televisio" "televisionis" feminine ; -- -onis f. (Pons)
|
||||||
|
+ thick_A = mkA "crassus" ; -- 3 (Langenscheidts)
|
||||||
|
+ thin_A = mkA "tenuis" "tenue" ; -- -e (Langenscheidts)
|
||||||
|
+ train_N = mkN "hamaxostichus" ; -- -i m. (http://la.wikipedia.org/wiki/Hamaxostichus)
|
||||||
|
+ travel_V = ResLat.useVPasV ( ComplSlash ( SlashV2a ( mkV2 "facere" ) ) ( DetCN ( DetQuant IndefArt NumSg ) ( UseN ( mkN "iter" "itineris" Neutr ) ) ) ) ; -- facio, feci, factum 3
|
||||||
|
+ tree_N = mkN "arbor" "arboris" feminine ; -- -oris f.
|
||||||
|
+ -- Not even in English implemented
|
||||||
|
+---- trousers_N = mkN "trousers" ;
|
||||||
|
+ ugly_A = mkA "foedus" ; -- 3 (Langenscheidts)
|
||||||
|
+ understand_V2 = mkV2 (mkV "intellegere" "intellego" "intellexi" "intellectum" ) ; -- intellego, intellexi, intellectum 3 (Langenscheidts)
|
||||||
|
+ university_N = mkN "universitas" "universitatis" feminine ; -- -atis f. (http://la.wikipedia.org/wiki/Universitas) and (Langenscheidts)
|
||||||
|
+ village_N = mkN "vicus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ wait_V2 = mkV2 (mkV "exspectare") ; -- 1 (Langenscheidts)
|
||||||
|
+ walk_V = mkV "vadere" ; -- 3 (Langenscheidts)
|
||||||
|
+ warm_A = mkA "calidus" ; -- 3 (Langenscheidts)
|
||||||
|
+ war_N = mkN "bellum" ; -- -i m. (Langenscheidts)
|
||||||
|
+ watch_V2 = mkV2 (mkV "spectare") ; -- 1 (Langenscheidts)
|
||||||
|
+ water_N = mkN "aqua" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ white_A = mkA "albus" ; -- 3 (Langenscheidts)
|
||||||
|
+ window_N = mkN "fenestra" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ wine_N = mkN "vinum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ win_V2 = mkV2 (mkV "vincere") ; -- vinco, vici, victum 3 (Langenscheidts)
|
||||||
|
+ woman_N = mkN "femina" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ wonder_VQ = mkVQ (mkV "mirari") ; -- 1 (Langenscheidts)
|
||||||
|
+ wood_N = mkN "lignum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ write_V2 = mkV2 (mkV "scribere") ; -- scribo, scripsi, scriptum 3 (Langenscheidts)
|
||||||
|
+ yellow_A = mkA "flavus" ; -- 3 (Langenscheidts)
|
||||||
|
+ young_A = mkA "adulescens" "adulescentis"; -- -entis (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ do_V2 = mkV2 (mkV "agere") ; -- ago, egi, actum 3 (Langenscheidts)
|
||||||
|
+ now_Adv = mkAdv "nunc" ; -- (Langenscheidts)
|
||||||
|
+ already_Adv = mkAdv "iam" ; -- (Langenscheidts)
|
||||||
|
+ song_N = mkN "carmen" "carminis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
|
+ add_V3 = mkV3 ( mkV "addere" "addo" "addidi" "additum" ) Acc_Prep to_P ; -- addo, addidi, additum 3 (Langenscheidts)
|
||||||
|
+ number_N = mkN "numerus" ; -- -i m.
|
||||||
|
+ 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)
|
||||||
|
+ jump_V = mkV "saltare" ; -- 1 (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ left_Ord = ss "sinister" ; -- -tra, -trum (Langenscheidts)
|
||||||
|
+ right_Ord = ss "dexter" ; -- -t(e)ra, -t(e)rum (Langenscheidts)
|
||||||
|
+ far_Adv = mkAdv "longe" ; -- (Langenscheidts)
|
||||||
|
+ correct_A = mkA "rectus" ; -- 3 (Langenscheidts)
|
||||||
|
+ dry_A = mkA "aridus" ; -- 3 (Langenscheidts)
|
||||||
|
+ dull_A = mkA "bardus" ; -- 3 (Langenscheidts) u. (http://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0060:entry=bardus&highlight=dull)
|
||||||
|
+ full_A = mkA "plenus" ; -- 3 (Langenscheidts)
|
||||||
|
+ heavy_A = mkA "gravis" "grave" ; -- -e (Langenscheidts)
|
||||||
|
+ near_A = mkA "propinquus" ; -- 3 (comp. durch propior, -ius sup. durch proximus 3) (Langenscheidts)
|
||||||
|
+ rotten_A = mkA "perditus" ; -- 3 (Langenscheidts)
|
||||||
|
+ round_A = mkA "rotundus" ; -- 3 (Langenscheidts)
|
||||||
|
+ sharp_A = mkA "acer" "acris" ; -- acris, acre (Langenscheidts)
|
||||||
|
+ smooth_A = mkA "lubricus" ; -- 3 (Langenscheidts)
|
||||||
|
+ straight_A = mkA "rectus" ; -- 3 (Langenscheidts)
|
||||||
|
+ wet_A = mkA "umidus" ; -- 3 (Langenscheidts)
|
||||||
|
+ wide_A = mkA "vastus" ; -- 3 (Langenscheidts)
|
||||||
|
+ animal_N = mkN "animal" "animalis" neuter ; -- -alis n. (Langenscheidts)
|
||||||
|
+ ashes_N = mkN "cinis" "cineris" masculine ; -- -eris m. (Langenscheidts) & Bayer-Lindauer 33 1.2
|
||||||
|
+ back_N = mkN "tergum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ bark_N = mkN "cortex" "corticis" ( variants { masculine ; feminine } ) ; -- -icis m./(f.) (Langenscheidts)
|
||||||
|
+ belly_N = mkN "venter" "ventris" masculine ; -- -tris m. (Langenscheidts)
|
||||||
|
+ blood_N = variants { mkN "sanguis" "sanguinis" masculine ; mkN "sangis" "sanginis" masculine} ; -- -inis m. (Langenscheidts)
|
||||||
|
+ bone_N = mkN "os" "ossis" neuter ; -- ossis n. (Langenscheidts)
|
||||||
|
+ breast_N = mkN "pectus""pectoris" neuter ; -- pectoris n. (Langenscheidts)
|
||||||
|
+ cloud_N = mkN "nubes" "nubis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
+ day_N = mkN "dies" "diei" ( variants { masculine ; feminine } ) ; -- -ei m./f. (Langenscheidts)
|
||||||
|
+ dust_N = mkN "pulvis" "pulveris" masculine; -- -veris m. (Langenscheidts)
|
||||||
|
+ ear_N = mkN "auris" "auris" feminine; -- -is f. (Langenscheidts)
|
||||||
|
+ earth_N = mkN "terra" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ egg_N = mkN "ovum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ eye_N = mkN "oculus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ fat_N = mkN "omentum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ feather_N = mkN "penna" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ fingernail_N = mkN "unguis" "unguis" masculine ; -- -is m. (Langenscheidts)
|
||||||
|
+ fire_N = mkN "ignis" "ignis" masculine; -- -is m. (Langenscheidts)
|
||||||
|
+ flower_N = mkN "flos" "floris" masculine ; -- floris m. (Langenscheidts)
|
||||||
|
+ fog_N = mkN "nebula" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ foot_N = mkN "pes" "pedis" masculine ; -- pedis m. (Langenscheidts)
|
||||||
|
+ forest_N = mkN "silva" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ grass_N = mkN "gramen" "graminis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
|
+ guts_N = mkN "intestinum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ hair_N = mkN "capillus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ hand_N = mkN "manus" "manus" feminine ; -- -us f. (Langenscheidts)
|
||||||
|
+ head_N = mkN "caput" "capitis" neuter ; -- -itis n. (Langenscheidts)
|
||||||
|
+ heart_N = mkN "cor" "cordis" neuter; -- cordis n. (Langenscheidts)
|
||||||
|
+ horn_N = mkN ( variants { "cornu" ; "cornus" } ) "cornus" neuter ; -- -us n. (Langenscheidts)
|
||||||
|
+ husband_N = mkN "maritus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ ice_N = mkN "glacies" "glaciei" feminine ; -- -ei f. (Langenscheidts)
|
||||||
|
+ knee_N = mkN "genu" "genus" neuter ; -- -us n. (Langenscheidts)
|
||||||
|
+ leaf_N = mkN "folium" ; -- -i n. (Langenscheidts)
|
||||||
|
+ leg_N = bone_N ;
|
||||||
|
+ liver_N = variants { ( mkN "iecur" "iecoris" neuter ) ; ( mkN "iocur" "iocineris" neuter ) } ; -- iecoris/iocineris n. (Langenscheidts)
|
||||||
|
+ louse_N = mkN "pedis" "pedis" ( variants { masculine ; feminine } ) ; -- -is m./f. (Langenscheidts)
|
||||||
|
+ mouth_N = mkN "os" "oris" neuter ; -- oris n. (Langenscheidts)
|
||||||
|
+ name_N = mkN "nomen" "nominis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
|
+ neck_N = mkN "cervix" "cervicis" feminine ; -- -icis f. (meist pl.) (Langenscheidts)
|
||||||
|
+ night_N = mkN "nox" "noctis" feminine ; -- noctis f. (Langenscheidts)
|
||||||
|
+ nose_N = mkN ( variants { "nasus" ; "nasum" } ) ; -- -i m./n. (Langenscheidts)
|
||||||
|
+ person_N = mkN "persona" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ rain_N = mkN "pluvia" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ road_N = mkN "via" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ root_N = mkN "radix" "radicis" feminine ; -- -icis f. (Langenscheidts)
|
||||||
|
+ rope_N = mkN "funis" "funis" ( variants { masculine ; feminine } ) ; -- -is m.(/f.) (Langenscheidts)
|
||||||
|
+ salt_N = mkN "sal" "salis" ( variants { masculine ; neuter } ) ; -- salis m./n. (Langenscheidts)
|
||||||
|
+ sand_N = mkN "arena" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ seed_N = mkN "semen" "seminis" neuter ; -- -inis n. (Langenscheidts)
|
||||||
|
+ skin_N = mkN "cutis" "cutis" feminine ; -- -is f. (Langenscheidts)
|
||||||
|
+ sky_N = mkN "caelum" ; -- -i n. (Langenscheidts)
|
||||||
|
+ smoke_N = mkN "fumus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ snow_N = mkN "nix" "nivis" feminine ; -- nivis (gen. pl. -ium) f. (Langenscheidts)
|
||||||
|
+ stick_N = mkN ( variants { "baculum" ; "baculus" } ) ; -- -i n./m.
|
||||||
|
+ tail_N = mkN "cauda" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ tongue_N = mkN "lingua" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ tooth_N = mkN "dens" "dentis" masculine; -- dentis m. (Langenscheidts)
|
||||||
|
+ wife_N = mkN "mulier" "mulieris" feminine; -- -eris f. (Langenscheidts)
|
||||||
|
+ wind_N = mkN "ventus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ wing_N = mkN "ala" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ worm_N = mkN "vermis" "vermis" masculine ; -- -is m. (Langenscheidts)
|
||||||
|
+ year_N = mkN "annus" ; -- -i m. (Langenscheidts)
|
||||||
|
+ blow_V = mkV "flare" ; -- flo 1 (Langenscheidts)
|
||||||
|
+ breathe_V = mkV "spirare" ; -- spiro 1 (Langenscheidts)
|
||||||
|
+ burn_V = mkV "ardere" ; -- ardeo, arsi, arsum 2 (Langenscheidts)
|
||||||
|
+ dig_V = mkV "fodere" "fodio" "fodi" "fossum" ; -- fodio, fodi, fossum 3 (Langenscheidts)
|
||||||
|
+ fall_V = mkV "caedere" "caedo" "cecidi" "caesum" ; -- caedo, cecidi, caesum 3 (Langenscheidts)
|
||||||
|
+ float_V = mkV "fluitere" ; -- fluito 1 (Langenscheidts)
|
||||||
|
+ flow_V = mkV "fluere" "fluo" "fluxi" "fluctum" ; -- fluo, fluxi, fluxum 3 (Langenscheidts)
|
||||||
|
+ fly_V = mkV "volare" ; -- volo 1 (Langenscheidts)
|
||||||
|
+ freeze_V = mkV "gelare" ; -- gelo 1 (Langenscheidts)
|
||||||
|
+ -- Category not yet implemented
|
||||||
|
+ give_V3 = mkV3 (mkV "donare" ) from_Prep to_Prep ;
|
||||||
|
+ laugh_V = mkV "ridere" ; -- rideo, -si, -sum 2 (Langenscheidts)
|
||||||
|
+ lie_V = mkV "iacere" ; -- iaceo, iacui, - 2 (Langenscheidts)
|
||||||
|
+ play_V = mkV "ludere" ; -- ludo, -si, -sum 3 (Langenscheidts)
|
||||||
|
+ sew_V = mkV "serere" "sero" "sevi" "satum" ; -- sero, sevi, satum 3 (Langenscheidts)
|
||||||
|
+ sing_V = mkV "cantare" ; -- canto 1 (Langenscheidts)
|
||||||
|
+ sit_V = mkV "sedere" ; -- sedeo, sedi, sessum 2 (Langenscheidts)
|
||||||
|
+ smell_V = mkV "olere" ; -- oleo, -ui, - 2 (Langenscheidts)
|
||||||
|
+ spit_V = mkV "spuere" "spuo" "spui" "sputum" ; -- spuo, -ui, -utum 3 (Langenscheidts)
|
||||||
|
+ stand_V = mkV "stare" ; -- sto, steti, staturus, statum 1 (Langenscheidts)
|
||||||
|
+ swell_V = mkV "intumescere" "intumesco" "intumui" ; -- intumesco, -mui, - 3 (Langenscheidts)
|
||||||
|
+ swim_V = mkV "natare" ; -- nato 1 (Langenscheidts)
|
||||||
|
+ think_V = mkV "cogitare" ; -- cogito 1 (Langenscheidts)
|
||||||
|
+ turn_V = mkV "vertere" ; -- verso 1 (Langenscheidts)
|
||||||
|
+ vomit_V = mkV "vomere" "vomo" "vomui" "vomitum" ; -- vomo, -ui, -itum 3 (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ bite_V2 = mkV2 "mordere" ; -- mordeo, momordi, morsum 2 (Langenscheidts)
|
||||||
|
+ count_V2 = mkV2 (mkV "numerare") ; -- numero 1 (Langenscheidts)
|
||||||
|
+ cut_V2 = mkV2 (mkV "secare" ) ; -- seco, secui, sectum, secaturus 1 (Langenscheidts)
|
||||||
|
+ fear_V2 = mkV2 (mkV "timere") ; -- timeo, ui, - 2 (Langenscheidts)
|
||||||
|
+ fight_V2 = mkV2 (mkV "pugnare" ) ; -- pugno 1 (Langenscheidts)
|
||||||
|
+ hit_V2 = mkV2 ( mkV "ferire" ) ; -- ferio, -, - 4 (Langenscheidts)
|
||||||
|
+ hold_V2 = mkV2 ( mkV "tenere" ) ; -- teneo, tenui, tentum 2 (Langenscheidts)
|
||||||
|
+ hunt_V2 = mkV2 (mkV "agitare") ; -- agito 1 (Langenscheidts)
|
||||||
|
+ kill_V2 = mkV2 (mkV "necare") ; -- neco 1 (Langenscheidts)
|
||||||
|
+ pull_V2 = mkV2 (mkV "trahere" "traho" "traxi" "tractum" ) ; -- traho, traxi, tractum 3 (Langenscheidts)
|
||||||
|
+ push_V2 = mkV2 (mkV "premere" "premo" "pressi" "pressum" ) ; -- premo, pressi, pressum 3 (Langenscheidts)
|
||||||
|
+ rub_V2 = mkV2 (mkV "radere" "rado" "rasi" "rasum" ) ; -- raso, -si, -sum 3 (Langenscheidts)
|
||||||
|
+ scratch_V2 = mkV2 (mkV "scalpere" "scalpo" "scalpsi" "scalptum" ) ; -- scalpo, -psi, -ptum 3 (Langenscheidts)
|
||||||
|
+ split_V2 = mkV2 ( mkV "scindere" "scindo" "scidi" "scissum" ) ; -- scindo, -idi, -issum 3 (Langenscheidts)
|
||||||
|
+ squeeze_V2 = mkV2 (mkV "premere" "premo" "pressi" "pressum" ) ; -- premo, pressi, pressum 3 (Langenscheidts)
|
||||||
|
+ stab_V2 = mkV2 (mkV "transfigere" "transfigo" "transfixi" "transfixum") ; -- -figo, -fixi, fixum 3 (Langenscheidts)
|
||||||
|
+ suck_V2 = mkV2 (mkV "fellare") ; -- fel(l)o 1 (Langenscheidts)
|
||||||
|
+ throw_V2 = mkV2 (mkV "iacere" "iacio" "ieci" "iactum" ) ; -- iacio, ieci, iactum 3 (Langenscheidts)
|
||||||
|
+ tie_V2 = mkV2 (mkV "vincire") ; -- vincio, vinxi, vinctum 4 (Langenscheidts)
|
||||||
|
+ wash_V2 = mkV2 (mkV "lavare") ; -- lavo, lavi, lautum (lotum)/lavatum 1 (Langenscheidts)
|
||||||
|
+ wipe_V2 = mkV2 (mkV "detergere") ; -- detergeo, -tersi, -tersum 2/ detergo, -, - 3 (Langenscheidts)
|
||||||
|
+
|
||||||
|
+---- other_A = mkA "other" ;
|
||||||
|
+
|
||||||
|
+ grammar_N = mkN "grammatica" ; -- -ae/-orum f./n. (http://la.wikipedia.org/wiki/Grammatica) and (Langenscheidts)
|
||||||
|
+ language_N = mkN "lingua" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ rule_N = mkN "regula" ; -- -ae f. (Langenscheidts)
|
||||||
|
+
|
||||||
|
+-- added 4/6/2007
|
||||||
|
+ john_PN = mkPN (mkN "Iohannes") ; -- (http://en.wikipedia.org/wiki/John_(given_name))
|
||||||
|
+ question_N = mkN "rogatio" "rogationis" feminine; -- -onis f. (Langenscheidts)
|
||||||
|
+ ready_A = mkA "paratus" ; -- 3 (Langenscheidts)
|
||||||
|
+ reason_N = mkN "causa" ; -- -ae f. (Langenscheidts)
|
||||||
|
+ today_Adv = mkAdv "hodie" ; -- (Langenscheidts)
|
||||||
|
+ uncertain_A = mkA "incertus" ; -- 3 (Langenscheidts)
|
||||||
|
+
|
||||||
|
+ alas_Interj = ss "eheu" ;
|
||||||
|
}
|
||||||
818
src/latin/doc/magisterarbeit/diffs/MorphoLat.gf.diff
Normal file
818
src/latin/doc/magisterarbeit/diffs/MorphoLat.gf.diff
Normal file
@@ -0,0 +1,818 @@
|
|||||||
|
diff --git a/lib/src/latin/MorphoLat.gf b/lib/src/latin/MorphoLat.gf
|
||||||
|
index 1236145..9c11286 100644
|
||||||
|
--- a/lib/src/latin/MorphoLat.gf
|
||||||
|
+++ b/lib/src/latin/MorphoLat.gf
|
||||||
|
@@ -1,197 +1,624 @@
|
||||||
|
-----# -path=.:../../prelude
|
||||||
|
---
|
||||||
|
-----1 A Simple Latlish Resource Morphology
|
||||||
|
-----
|
||||||
|
----- Aarne Ranta 2002 -- 2005
|
||||||
|
-----
|
||||||
|
----- This resource morphology contains definitions needed in the resource
|
||||||
|
----- syntax. To build a lexicon, it is better to use $ParadigmsLat$, which
|
||||||
|
----- gives a higher-level access to this module.
|
||||||
|
---
|
||||||
|
---resource MorphoLat = ResLat ** open Prelude, (Predef=Predef) in {
|
||||||
|
+--# -path=.:../prelude
|
||||||
|
+
|
||||||
|
+--1 A Simple Latin Resource Morphology.
|
||||||
|
+
|
||||||
|
+-- Herbert Lange 2013
|
||||||
|
+
|
||||||
|
+-- This resource morphology contains definitions needed in the resource
|
||||||
|
+-- syntax. To build a lexicon, it is better to use $ParadigmsLat$, which
|
||||||
|
+-- gives a higher-level access to this module.
|
||||||
|
+
|
||||||
|
+resource MorphoLat = ParamX, ResLat ** open Prelude in {
|
||||||
|
--
|
||||||
|
-- flags optimize=all ;
|
||||||
|
--
|
||||||
|
+
|
||||||
|
----2 Phonology
|
||||||
|
-----
|
||||||
|
----- To regulate the use of endings for both nouns, adjectives, and verbs:
|
||||||
|
---
|
||||||
|
---oper
|
||||||
|
--- y2ie : Str -> Str -> Str = \fly,s ->
|
||||||
|
--- let y = last (init fly) in
|
||||||
|
--- case y of {
|
||||||
|
--- "a" => fly + s ;
|
||||||
|
--- "e" => fly + s ;
|
||||||
|
--- "o" => fly + s ;
|
||||||
|
--- "u" => fly + s ;
|
||||||
|
--- _ => init fly + "ie" + s
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
---
|
||||||
|
-----2 Nouns
|
||||||
|
-----
|
||||||
|
----- For conciseness and abstraction, we define a worst-case macro for
|
||||||
|
----- noun inflection. It is used for defining special case that
|
||||||
|
----- only need one string as argument.
|
||||||
|
---
|
||||||
|
---oper
|
||||||
|
--- CommonNoun : Type = {s : Number => Case => Str} ;
|
||||||
|
---
|
||||||
|
--- nounGen : Str -> CommonNoun = \dog -> case last dog of {
|
||||||
|
--- "y" => nounY "dog" ;
|
||||||
|
--- "s" => nounS (init "dog") ;
|
||||||
|
--- _ => nounReg "dog"
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
----- These are auxiliaries to $nounGen$.
|
||||||
|
---
|
||||||
|
--- nounReg : Str -> CommonNoun = \dog ->
|
||||||
|
--- mkNoun dog (dog + "s") (dog + "'s") (dog + "s'");
|
||||||
|
--- nounS : Str -> CommonNoun = \kiss ->
|
||||||
|
--- mkNoun kiss (kiss + "es") (kiss + "'s") (kiss + "es'") ;
|
||||||
|
--- nounY : Str -> CommonNoun = \fl ->
|
||||||
|
--- mkNoun (fl + "y") (fl + "ies") (fl + "y's") (fl + "ies'") ;
|
||||||
|
---
|
||||||
|
---
|
||||||
|
+oper
|
||||||
|
+ -- sounds and sound changes
|
||||||
|
+ vowel : pattern Str = #( "a" | "e" | "o" | "u" | "y" );
|
||||||
|
+ semivowel : pattern Str = #( "j" | "w" );
|
||||||
|
+ consonant : pattern Str = #( "p" | "b" | "f" | "v" | "m" | "t" | "d" | "s" | "z" | "n" | "r" | "c" | "g" | "l" | "q" | "qu" | "h" );
|
||||||
|
+ stop : pattern Str = #( "p" | "b" | "t" | "d" | "c" | "q" | "q" );
|
||||||
|
+ fricative : pattern Str = #( "f" | "v" | "s" | "z" | "h" );
|
||||||
|
+ nasal : pattern Str = #( "m" | "n" );
|
||||||
|
+ liquid : pattern Str = #( "r" | "l" );
|
||||||
|
+-- consonant : pattern Str = #(#stop | #fricative | #nasal | #liquid ); -- not working
|
||||||
|
+----2 Nouns
|
||||||
|
+
|
||||||
|
+-- declensions
|
||||||
|
+oper
|
||||||
|
+
|
||||||
|
+ -- a-Declension
|
||||||
|
+ noun1 : Str -> Noun = \mensa ->
|
||||||
|
+ let
|
||||||
|
+ mensae = mensa + "e" ;
|
||||||
|
+ mensis = init mensa + "is" ;
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ mensa (mensa +"m") mensae mensae mensa mensa
|
||||||
|
+ mensae (mensa + "s") (mensa + "rum") mensis
|
||||||
|
+ Fem ;
|
||||||
|
+
|
||||||
|
+ -- o-Declension
|
||||||
|
+ noun2us : Str -> Noun = \servus ->
|
||||||
|
+ let
|
||||||
|
+ serv = Predef.tk 2 servus ;
|
||||||
|
+ servum = serv + "um" ;
|
||||||
|
+ servi = serv + "i" ;
|
||||||
|
+ servo = serv + "o" ;
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ servus servum servi servo servo (serv + "e")
|
||||||
|
+ servi (serv + "os") (serv + "orum") (serv + "is")
|
||||||
|
+ Masc ;
|
||||||
|
+
|
||||||
|
+ noun2er : Str -> Str -> Noun = \liber,libri ->
|
||||||
|
+ let
|
||||||
|
+ libr : Str = Predef.tk 1 libri;
|
||||||
|
+ librum = libr + "um" ;
|
||||||
|
+ libri = libr + "i" ;
|
||||||
|
+ libro = libr + "o" ;
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ liber librum libri libro libro liber
|
||||||
|
+ libri ( libr + "os" ) ( libr + "orum" ) ( libr + "is" )
|
||||||
|
+ Masc ;
|
||||||
|
+
|
||||||
|
+ noun2um : Str -> Noun = \bellum ->
|
||||||
|
+ let
|
||||||
|
+ bell = Predef.tk 2 bellum ;
|
||||||
|
+ belli = bell + "i" ;
|
||||||
|
+ bello = bell + "o" ;
|
||||||
|
+ bella = bell + "a" ;
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ bellum bellum belli bello bello (bell + "um")
|
||||||
|
+ bella bella (bell + "orum") (bell + "is")
|
||||||
|
+ Neutr ;
|
||||||
|
+
|
||||||
|
+ -- Consonant declension
|
||||||
|
+ noun3c : Str -> Str -> Gender -> Noun = \rex,regis,g ->
|
||||||
|
+ let
|
||||||
|
+ reg : Str = Predef.tk 2 regis ;
|
||||||
|
+ regemes : Str * Str = case g of {
|
||||||
|
+ Masc | Fem => < reg + "em" , reg + "es" > ;
|
||||||
|
+ Neutr => < rex , reg + "a" >
|
||||||
|
+ } ;
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ rex regemes.p1 regis ( reg + "i" ) ( reg + "e" ) rex
|
||||||
|
+ regemes.p2 regemes.p2 ( reg + "um" ) ( reg + "ibus" )
|
||||||
|
+ g ;
|
||||||
|
+
|
||||||
|
+ -- i-declension
|
||||||
|
+ noun3i : Str -> Str -> Gender -> Noun = \ars,artis,g ->
|
||||||
|
+ let
|
||||||
|
+ art : Str = Predef.tk 2 artis ;
|
||||||
|
+ artemes : Str * Str = case g of {
|
||||||
|
+ Masc | Fem => < art + "em" , art + "es" > ;
|
||||||
|
+ Neutr => case art of {
|
||||||
|
+ _ + #consonant + #consonant => < ars , art + "a" > ; -- maybe complete fiction but may be working
|
||||||
|
+ _ => < ars , art + "ia" > -- Bayer-Lindauer 32 4
|
||||||
|
+ }
|
||||||
|
+ } ;
|
||||||
|
+ arte : Str = case ars of {
|
||||||
|
+ _ + ( "e" | "al" | "ar" ) => art + "i" ;
|
||||||
|
+ _ => art + "e"
|
||||||
|
+ };
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ ars artemes.p1 artis ( art + "i" ) arte ars
|
||||||
|
+ artemes.p2 artemes.p2 ( art + "ium" ) ( art + "ibus" )
|
||||||
|
+ g ;
|
||||||
|
+
|
||||||
|
+ -- u-Declension
|
||||||
|
+
|
||||||
|
+ noun4us : Str -> Noun = \fructus ->
|
||||||
|
+ let
|
||||||
|
+ fructu = init fructus ;
|
||||||
|
+ fruct = init fructu
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ fructus (fructu + "m") fructus (fructu + "i") fructu fructus
|
||||||
|
+ fructus fructus (fructu + "um") (fruct + "ibus")
|
||||||
|
+ Masc ;
|
||||||
|
+
|
||||||
|
+ noun4u : Str -> Noun = \cornu ->
|
||||||
|
+ let
|
||||||
|
+ corn = init cornu ;
|
||||||
|
+ cornua = cornu + "a"
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ cornu cornu (cornu + "s") cornu cornu cornu
|
||||||
|
+ cornua cornua (cornu + "um") (corn + "ibus")
|
||||||
|
+ Neutr ;
|
||||||
|
+
|
||||||
|
+ -- e-Declension
|
||||||
|
+ noun5 : Str -> Noun = \res ->
|
||||||
|
+ let
|
||||||
|
+ re = init res ;
|
||||||
|
+ rei = re + "i"
|
||||||
|
+ in
|
||||||
|
+ mkNoun
|
||||||
|
+ res (re+ "m") rei rei re res
|
||||||
|
+ res res (re + "rum") (re + "bus")
|
||||||
|
+ Fem ;
|
||||||
|
+
|
||||||
|
+ -- smart paradigms
|
||||||
|
+
|
||||||
|
+ noun_ngg : Str -> Str -> Gender -> Noun = \verbum,verbi,g ->
|
||||||
|
+ let s : Noun = case <verbum,verbi> of {
|
||||||
|
+ <_ + "a", _ + "ae"> => noun1 verbum ;
|
||||||
|
+ <_ + "us", _ + "i"> => noun2us verbum ;
|
||||||
|
+ <_ + "um", _ + "i"> => noun2um verbum ;
|
||||||
|
+ <_ + ( "er" | "ir" ) , _ + "i"> => noun2er verbum verbi ;
|
||||||
|
+
|
||||||
|
+ <_ + "us", _ + "us"> => noun4us verbum ;
|
||||||
|
+ <_ + "u", _ + "us"> => noun4u verbum ;
|
||||||
|
+ <_ + "es", _ + "ei"> => noun5 verbum ;
|
||||||
|
+ _ => noun3 verbum verbi g
|
||||||
|
+ }
|
||||||
|
+ in
|
||||||
|
+ nounWithGen g s ;
|
||||||
|
+
|
||||||
|
+ noun : Str -> Noun = \verbum ->
|
||||||
|
+ case verbum of {
|
||||||
|
+ _ + "a" => noun1 verbum ;
|
||||||
|
+ _ + "us" => noun2us verbum ;
|
||||||
|
+ _ + "um" => noun2um verbum ;
|
||||||
|
+ _ + ( "er" | "ir" ) => noun2er verbum ( (Predef.tk 2 verbum) + "ri" ) ;
|
||||||
|
+ _ + "u" => noun4u verbum ;
|
||||||
|
+ _ + "es" => noun5 verbum ;
|
||||||
|
+ _ => Predef.error ("3rd declinsion cannot be applied to just one noun form " ++ verbum)
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ noun12 : Str -> Noun = \verbum ->
|
||||||
|
+ case verbum of {
|
||||||
|
+ _ + "a" => noun1 verbum ;
|
||||||
|
+ _ + "us" => noun2us verbum ;
|
||||||
|
+ _ + "um" => noun2um verbum ;
|
||||||
|
+ _ + ( "er" | "ir" ) =>
|
||||||
|
+ let
|
||||||
|
+ puer = verbum ;
|
||||||
|
+ pue = Predef.tk 1 puer ;
|
||||||
|
+ e = case puer of {
|
||||||
|
+ -- Exception of nouns where e is part of the word stem Bayer-Lindauer 27 4.2
|
||||||
|
+ "puer" | "socer" | "gener" | "vesper" => "e" ;
|
||||||
|
+ -- Exception of adjectives where e is part of the word stem 31 3.2
|
||||||
|
+ ("asper" | "miser" | "tener" | "frugifer") + _ => "e";
|
||||||
|
+ -- "liber" => ( "e" | "" ) ; conflicting with noun liber
|
||||||
|
+ _ => ""
|
||||||
|
+ } ;
|
||||||
|
+ pu = Predef.tk 1 pue ;
|
||||||
|
+ in noun2er verbum ( pu + e + "ri" );
|
||||||
|
+ _ => Predef.error ("noun12 does not apply to" ++ verbum)
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ noun3 : Str -> Str -> Gender -> Noun = \rex,regis,g ->
|
||||||
|
+ let
|
||||||
|
+ reg : Str = Predef.tk 2 regis ;
|
||||||
|
+ in
|
||||||
|
+ case <rex,reg> of {
|
||||||
|
+ -- Bos has to many exceptions to be handled correctly
|
||||||
|
+ < "bos" , "bov" > => mkNoun "bos" "bovem" "bovis" "bovi" "bove" "bos" "boves" "boves" "boum" "bobus" g;
|
||||||
|
+ -- Some exceptions with no fitting rules
|
||||||
|
+ < "nix" , _ > => noun3i rex regis g; -- Langenscheidts
|
||||||
|
+ < ( "sedes" | "canis" | "iuvenis" | "mensis" | "sal" ) , _ > => noun3c rex regis g ; -- Bayer-Lindauer 31 3 and Exercitia Latina 32 b), sal must be handled here because it will be handled wrongly by the next rule
|
||||||
|
+ < _ + ( "e" | "al" | "ar" ) , _ > => noun3i rex regis g ; -- Bayer-Lindauer 32 2.3
|
||||||
|
+ ( < _ + "ter" , _ + "tr" >
|
||||||
|
+ | < _ + "en" , _ + "in" >
|
||||||
|
+ | < _ + "s" , _ + "r" >
|
||||||
|
+ ) => noun3c rex regis g ; -- might not be right but seems fitting for Bayer-Lindauer 31 2.2
|
||||||
|
+ < _ , _ + #consonant + #consonant > => noun3i rex regis g ; -- Bayer-Lindauer 32 2.2
|
||||||
|
+ < _ + ( "is" | "es" ) , _ > =>
|
||||||
|
+ if_then_else
|
||||||
|
+ Noun
|
||||||
|
+ -- assumption based on Bayer-Lindauer 32 2.1
|
||||||
|
+ ( pbool2bool ( Predef.eqInt ( Predef.length rex ) ( Predef.length regis ) ) )
|
||||||
|
+ ( noun3i rex regis g )
|
||||||
|
+ ( noun3c rex regis g ) ;
|
||||||
|
+ _ => noun3c rex regis g
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
----3 Proper names
|
||||||
|
-----
|
||||||
|
----- Regular proper names are inflected with "'s" in the genitive.
|
||||||
|
---
|
||||||
|
--- nameReg : Str -> Gender -> {s : Case => Str} = \john,g ->
|
||||||
|
--- {s = table {Gen => john + "'s" ; _ => john} ; g = g} ;
|
||||||
|
---
|
||||||
|
+
|
||||||
|
----2 Determiners
|
||||||
|
---
|
||||||
|
--- mkDeterminer : Number -> Str -> {s,sp : Str ; n : Number} = \n,s ->
|
||||||
|
--- {s,sp = s ; n = n} ;
|
||||||
|
---
|
||||||
|
+
|
||||||
|
----2 Pronouns
|
||||||
|
-----
|
||||||
|
----- Here we define personal pronouns.
|
||||||
|
-----
|
||||||
|
----- We record the form "mine" and the gender for later use.
|
||||||
|
---
|
||||||
|
--- Pronoun : Type =
|
||||||
|
--- {s : Case => Str ; a : Agr} ;
|
||||||
|
---
|
||||||
|
--- mkPronoun : (_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun =
|
||||||
|
--- \I,me,my,mine,n,p,g ->
|
||||||
|
--- {s = table {Nom => I ; Acc => me ; Gen => my} ;
|
||||||
|
--- a = toAgr n p g
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
--- human : Gender = Masc ; --- doesn't matter
|
||||||
|
---
|
||||||
|
--- pronI = mkPronoun "I" "me" "my" "mine" Sg P1 human ;
|
||||||
|
--- pronYouSg = mkPronoun "you" "you" "your" "yours" Sg P2 human ; -- verb agr OK
|
||||||
|
--- pronHe = mkPronoun "he" "him" "his" "his" Sg P3 Masc ;
|
||||||
|
--- pronShe = mkPronoun "she" "her" "her" "hers" Sg P3 Fem ;
|
||||||
|
--- pronIt = mkPronoun "it" "it" "its" "it" Sg P3 Neutr ;
|
||||||
|
---
|
||||||
|
--- pronWe = mkPronoun "we" "us" "our" "ours" Pl P1 human ;
|
||||||
|
--- pronYouPl = mkPronoun "you" "you" "your" "yours" Pl P2 human ;
|
||||||
|
--- pronThey = mkPronoun "they" "them" "their" "theirs" Pl P3 human ; ---
|
||||||
|
---
|
||||||
|
---
|
||||||
|
+
|
||||||
|
----2 Adjectives
|
||||||
|
-----
|
||||||
|
----- To form the adjectival and the adverbial forms, two strings are needed
|
||||||
|
----- in the worst case. (First without degrees.)
|
||||||
|
---
|
||||||
|
--- Adjective = {s : AForm => Str} ;
|
||||||
|
---
|
||||||
|
----- However, most adjectives can be inflected using the final character.
|
||||||
|
----- N.B. this is not correct for "shy", but $mkAdjective$ has to be used.
|
||||||
|
---
|
||||||
|
--- regAdjective : Str -> Adjective = \free ->
|
||||||
|
--- let
|
||||||
|
--- e = last free ;
|
||||||
|
--- fre = init free ;
|
||||||
|
--- freely = case e of {
|
||||||
|
--- "y" => fre + "ily" ;
|
||||||
|
--- _ => free + "ly"
|
||||||
|
--- } ;
|
||||||
|
--- fre = case e of {
|
||||||
|
--- "e" => fre ;
|
||||||
|
--- "y" => fre + "i" ;
|
||||||
|
--- _ => free
|
||||||
|
--- }
|
||||||
|
--- in
|
||||||
|
--- mkAdjective free (fre + "er") (fre + "est") freely ;
|
||||||
|
---
|
||||||
|
----- Many adjectives are 'inflected' by adding a comparison word.
|
||||||
|
---
|
||||||
|
--- adjDegrLong : Str -> Adjective = \ridiculous ->
|
||||||
|
--- mkAdjective
|
||||||
|
--- ridiculous
|
||||||
|
--- ("more" ++ ridiculous)
|
||||||
|
--- ("most" ++ ridiculous)
|
||||||
|
--- ((regAdjective ridiculous).s ! AAdv) ;
|
||||||
|
---
|
||||||
|
---
|
||||||
|
+oper
|
||||||
|
+ comp_super : Noun -> ( Agr => Str ) * ( Agr => Str ) =
|
||||||
|
+ \bonus ->
|
||||||
|
+ case bonus.s!Sg!Gen of {
|
||||||
|
+ -- Exception Bayer-Lindauer 50 1
|
||||||
|
+ "boni" => < comp "meli" , table { Ag g n c => table Gender [ (noun2us "optimus").s ! n ! c ; (noun1 "optima").s ! n ! c ; (noun2um "optimum").s ! n ! c ] ! g } > ;
|
||||||
|
+ "mali" => < comp "pei" , super "pessus" > ;
|
||||||
|
+ "magni" => < comp "mai" , table { Ag g n c => table Gender [ (noun2us "maximus").s ! n ! c ; (noun1 "maxima").s ! n ! c ; (noun2um "maximum").s ! n ! c ] ! g } > ;
|
||||||
|
+ "parvi" => < comp "mini" , table { Ag g n c => table Gender [ (noun2us "minimus").s ! n ! c ; (noun1 "minima").s ! n ! c ; (noun2um "minimum").s ! n ! c ] ! g } >;
|
||||||
|
+ --Exception Bayer-Lindauer 50.3
|
||||||
|
+ "novi" => < comp "recenti" , super "recens" > ;
|
||||||
|
+ "feri" => < comp "feroci" , super "ferox" > ;
|
||||||
|
+ "sacris" => < comp "sancti" , super "sanctus" >;
|
||||||
|
+ "frugiferi" => < comp "fertilis" , super "fertilis" > ;
|
||||||
|
+ "veti" => < comp "vetusti" , super "vetustus" >;
|
||||||
|
+ "inopis" => < comp "egentis" , super "egens" >;
|
||||||
|
+ -- Default Case use Singular Genetive to determine comparative
|
||||||
|
+ sggen => < comp sggen , super (bonus.s!Sg!Nom) >
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ comp : Str -> ( Agr => Str ) = \boni -> -- Bayer-Lindauer 46 2
|
||||||
|
+ case boni of {
|
||||||
|
+ bon + ( "i" | "is" ) =>
|
||||||
|
+ table
|
||||||
|
+ {
|
||||||
|
+ Ag ( Fem | Masc ) Sg c => table Case [ bon + "ior" ;
|
||||||
|
+ bon + "iorem" ;
|
||||||
|
+ bon + "ioris" ;
|
||||||
|
+ bon + "iori" ;
|
||||||
|
+ bon + "iore";
|
||||||
|
+ bon + "ior" ] ! c ;
|
||||||
|
+ Ag ( Fem | Masc ) Pl c => table Case [ bon + "iores" ;
|
||||||
|
+ bon + "iores" ;
|
||||||
|
+ bon + "iorum" ;
|
||||||
|
+ bon + "ioribus" ;
|
||||||
|
+ bon + "ioribus" ;
|
||||||
|
+ bon + "iores" ] ! c ;
|
||||||
|
+ Ag Neutr Sg c => table Case [ bon + "ius" ;
|
||||||
|
+ bon + "ius" ;
|
||||||
|
+ bon + "ioris" ;
|
||||||
|
+ bon + "iori" ;
|
||||||
|
+ bon + "iore" ;
|
||||||
|
+ bon + "ius" ] ! c ;
|
||||||
|
+ Ag Neutr Pl c => table Case [ bon + "iora" ;
|
||||||
|
+ bon + "iora" ;
|
||||||
|
+ bon + "iorum" ;
|
||||||
|
+ bon + "ioribus" ;
|
||||||
|
+ bon + "ioribus" ;
|
||||||
|
+ bon + "iora" ] ! c
|
||||||
|
+ }
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ super : Str -> ( Agr => Str ) = \bonus ->
|
||||||
|
+ let
|
||||||
|
+ prefix : Str = case bonus of {
|
||||||
|
+ ac + "er" => bonus ; -- Bayer-Lindauer 48 2
|
||||||
|
+ faci + "lis" => faci + "l" ; -- Bayer-Lindauer 48 3
|
||||||
|
+ feli + "x" => feli + "c" ; -- Bayer-Lindauer 48 1
|
||||||
|
+ ege + "ns" => ege + "nt" ; -- Bayer-Lindauer 48 1
|
||||||
|
+ bon + ( "us" | "is") => bon -- Bayer-Lindauer 48 1
|
||||||
|
+ };
|
||||||
|
+ suffix : Str = case bonus of {
|
||||||
|
+ ac + "er" => "rim" ; -- Bayer-Lindauer 48 2
|
||||||
|
+ faci + "lis" => "lim" ; -- Bayer-Lindauer 48 3
|
||||||
|
+ _ => "issim" -- Bayer-Lindauer 48 1
|
||||||
|
+ };
|
||||||
|
+ in
|
||||||
|
+ table {
|
||||||
|
+ Ag Fem n c => (noun1 ( prefix + suffix + "a" )).s ! n ! c ;
|
||||||
|
+ Ag Masc n c => (noun2us ( prefix + suffix + "us" )).s ! n ! c;
|
||||||
|
+ Ag Neutr n c => (noun2um ( prefix + suffix + "um" )).s ! n ! c
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ adj12 : Str -> Adjective = \bonus ->
|
||||||
|
+ let
|
||||||
|
+ bon : Str = case bonus of {
|
||||||
|
+ -- Exceptions Bayer-Lindauer 41 3.2
|
||||||
|
+ ("asper" | "liber" | "miser" | "tener" | "frugifer") => bonus ;
|
||||||
|
+ -- Usual cases
|
||||||
|
+ pulch + "er" => pulch + "r" ;
|
||||||
|
+ bon + "us" => bon ;
|
||||||
|
+ _ => Predef.error ("adj12 does not apply to" ++ bonus)
|
||||||
|
+ } ;
|
||||||
|
+ nbonus = (noun12 bonus) ;
|
||||||
|
+ compsup : ( Agr => Str ) * ( Agr => Str ) =
|
||||||
|
+ -- Bayer-Lindauer 50 4
|
||||||
|
+ case bonus of {
|
||||||
|
+ (_ + #vowel + "us" ) |
|
||||||
|
+ (_ + "r" + "us" ) =>
|
||||||
|
+ < table { Ag g n c => table Gender [ ( noun12 bonus ).s ! n ! c ; ( noun12 ( bon + "a" ) ).s ! n ! c ; ( noun12 ( bon + "um" ) ).s ! n ! c ] ! g } ,
|
||||||
|
+ table { Ag g n c => table Gender [ ( noun12 bonus ).s ! n ! c ; ( noun12 ( bon + "a" ) ).s ! n ! c ; ( noun12 ( bon + "um" ) ).s ! n ! c ] ! g } > ;
|
||||||
|
+ _ => comp_super nbonus
|
||||||
|
+ };
|
||||||
|
+ advs : Str * Str =
|
||||||
|
+ case bonus of {
|
||||||
|
+ -- Bayer-Lindauer 50 4
|
||||||
|
+ idon + ( #vowel | "r" ) + "us" => < "magis" , "maxime" > ;
|
||||||
|
+ _ => < "" , "" >
|
||||||
|
+ }
|
||||||
|
+ in
|
||||||
|
+ mkAdjective
|
||||||
|
+ nbonus
|
||||||
|
+ (noun1 (bon + "a"))
|
||||||
|
+ (noun2um (bon + "um"))
|
||||||
|
+ < compsup.p1 , advs.p1 >
|
||||||
|
+ < compsup.p2 , advs.p2 > ;
|
||||||
|
+
|
||||||
|
+ adj3x : (_,_ : Str) -> Adjective = \acer,acris ->
|
||||||
|
+ let
|
||||||
|
+ ac = Predef.tk 2 acer ;
|
||||||
|
+ acrise : Str * Str = case acer of {
|
||||||
|
+ _ + "er" => <ac + "ris", ac + "re"> ;
|
||||||
|
+ _ + "is" => <acer , ac + "e"> ;
|
||||||
|
+ _ => <acer , acer>
|
||||||
|
+ } ;
|
||||||
|
+ nacer = (noun3adj acer acris Masc) ;
|
||||||
|
+ compsuper = comp_super nacer;
|
||||||
|
+ in
|
||||||
|
+ mkAdjective
|
||||||
|
+ nacer
|
||||||
|
+ (noun3adj acrise.p1 acris Fem)
|
||||||
|
+ (noun3adj acrise.p2 acris Neutr)
|
||||||
|
+ < compsuper.p1 , "" >
|
||||||
|
+ < compsuper.p2 , "" >
|
||||||
|
+ ;
|
||||||
|
+
|
||||||
|
+-- smart paradigms
|
||||||
|
+
|
||||||
|
+ adj123 : Str -> Str -> Adjective = \bonus,boni ->
|
||||||
|
+ case <bonus,boni> of {
|
||||||
|
+ <_ + ("us" | "er"), _ + "i" > => adj12 bonus ;
|
||||||
|
+ <_ + ("us" | "er"), _ + "is"> => adj3x bonus boni ;
|
||||||
|
+ <_ , _ + "is"> => adj3x bonus boni ;
|
||||||
|
+ <_ + "is" , _ + "e" > => adj3x bonus boni ;
|
||||||
|
+ _ => Predef.error ("adj123: not applicable to" ++ bonus ++ boni)
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ adj : Str -> Adjective = \bonus ->
|
||||||
|
+ case bonus of {
|
||||||
|
+ _ + ("us" | "er") => adj12 bonus ;
|
||||||
|
+ facil + "is" => adj3x bonus bonus ;
|
||||||
|
+ feli + "x" => adj3x bonus (feli + "cis") ;
|
||||||
|
+ _ => adj3x bonus (bonus + "is") ---- any example?
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
----3 Verbs
|
||||||
|
-----
|
||||||
|
----- The worst case needs five forms. (The verb "be" is treated separately.)
|
||||||
|
---
|
||||||
|
--- mkVerb4 : (_,_,_,_: Str) -> Verb = \go,goes,went,gone ->
|
||||||
|
--- let going = case last go of {
|
||||||
|
--- "e" => init go + "ing" ;
|
||||||
|
--- _ => go + "ing"
|
||||||
|
--- }
|
||||||
|
--- in
|
||||||
|
--- mkVerb go goes went gone going ;
|
||||||
|
---
|
||||||
|
----- This is what we use to derive the irregular forms in almost all cases
|
||||||
|
---
|
||||||
|
--- mkVerbIrreg : (_,_,_ : Str) -> Verb = \bite,bit,bitten ->
|
||||||
|
--- let bites = case last bite of {
|
||||||
|
--- "y" => y2ie bite "s" ;
|
||||||
|
--- "s" => init bite + "es" ;
|
||||||
|
--- _ => bite + "s"
|
||||||
|
--- }
|
||||||
|
--- in mkVerb4 bite bites bit bitten ;
|
||||||
|
---
|
||||||
|
----- This is used to derive regular forms.
|
||||||
|
---
|
||||||
|
--- mkVerbReg : Str -> Verb = \soak ->
|
||||||
|
--- let
|
||||||
|
--- soaks = case last soak of {
|
||||||
|
--- "y" => y2ie soak "s" ;
|
||||||
|
--- "s" => init soak + "es" ;
|
||||||
|
--- _ => soak + "s"
|
||||||
|
--- } ;
|
||||||
|
--- soaked = case last soak of {
|
||||||
|
--- "e" => init soak + "s" ;
|
||||||
|
--- _ => soak + "ed"
|
||||||
|
--- }
|
||||||
|
--- in
|
||||||
|
--- mkVerb4 soak soaks soaked soaked ;
|
||||||
|
---
|
||||||
|
--- verbGen : Str -> Verb = \kill -> case last kill of {
|
||||||
|
--- "y" => verbP3y (init kill) ;
|
||||||
|
--- "e" => verbP3e (init kill) ;
|
||||||
|
--- "s" => verbP3s (init kill) ;
|
||||||
|
--- _ => regVerbP3 kill
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
----- These are just auxiliary to $verbGen$.
|
||||||
|
---
|
||||||
|
--- regVerbP3 : Str -> Verb = \walk ->
|
||||||
|
--- mkVerbIrreg walk (walk + "ed") (walk + "ed") ;
|
||||||
|
--- verbP3s : Str -> Verb = \kiss ->
|
||||||
|
--- mkVerb4 kiss (kiss + "es") (kiss + "ed") (kiss + "ed") ;
|
||||||
|
--- verbP3e : Str -> Verb = \love ->
|
||||||
|
--- mkVerb4 love (love + "s") (love + "d") (love + "d") ;
|
||||||
|
--- verbP3y : Str -> Verb = \cr ->
|
||||||
|
--- mkVerb4 (cr + "y") (cr + "ies") (cr + "ied") (cr + "ied") ;
|
||||||
|
---
|
||||||
|
------ The particle always appears right after the verb.
|
||||||
|
---
|
||||||
|
--- verbPart : Verb -> Str -> Verb = \v,p ->
|
||||||
|
--- {s = \\f => v.s ! f ++ p ; isRefl = v.isRefl} ;
|
||||||
|
---
|
||||||
|
--- verbNoPart : Verb -> Verb = \v -> verbPart v [] ;
|
||||||
|
---
|
||||||
|
---
|
||||||
|
---} ;
|
||||||
|
---
|
||||||
|
+
|
||||||
|
+-- 1./a-conjugation
|
||||||
|
+
|
||||||
|
+ verb1 : Str -> Verb = \laudare ->
|
||||||
|
+ let
|
||||||
|
+ lauda = Predef.tk 2 laudare ;
|
||||||
|
+ laud = init lauda ;
|
||||||
|
+ laudav = lauda + "v" ;
|
||||||
|
+ pres_stem = lauda ;
|
||||||
|
+ pres_ind_base = lauda ;
|
||||||
|
+ pres_conj_base = laud + "e" ;
|
||||||
|
+ impf_ind_base = lauda + "ba" ;
|
||||||
|
+ impf_conj_base = lauda + "re" ;
|
||||||
|
+ fut_I_base = lauda + "bi" ;
|
||||||
|
+ imp_base = lauda ;
|
||||||
|
+ perf_stem = laudav ;
|
||||||
|
+ perf_ind_base = laudav ;
|
||||||
|
+ perf_conj_base = laudav + "eri" ;
|
||||||
|
+ pqperf_ind_base = laudav + "era" ;
|
||||||
|
+ pqperf_conj_base = laudav + "isse" ;
|
||||||
|
+ fut_II_base = laudav + "eri" ;
|
||||||
|
+ part_stem = lauda + "t" ;
|
||||||
|
+ in
|
||||||
|
+ mkVerb laudare 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 ;
|
||||||
|
+
|
||||||
|
+ -- 2./e-conjugation
|
||||||
|
+
|
||||||
|
+ verb2 : Str -> Verb = \monere ->
|
||||||
|
+ let
|
||||||
|
+ mone = Predef.tk 2 monere ;
|
||||||
|
+ mon = init mone ;
|
||||||
|
+ monu = mon + "u" ;
|
||||||
|
+ pres_stem = mone ;
|
||||||
|
+ pres_ind_base = mone ;
|
||||||
|
+ pres_conj_base = mone + "a" ;
|
||||||
|
+ impf_ind_base = mone + "ba" ;
|
||||||
|
+ impf_conj_base = mone + "re" ;
|
||||||
|
+ fut_I_base = mone + "bi" ;
|
||||||
|
+ imp_base = mone ;
|
||||||
|
+ perf_stem = monu ;
|
||||||
|
+ perf_ind_base = monu ;
|
||||||
|
+ perf_conj_base = monu + "eri" ;
|
||||||
|
+ pqperf_ind_base = monu + "era" ;
|
||||||
|
+ pqperf_conj_base = monu + "isse" ;
|
||||||
|
+ fut_II_base = monu + "eri" ;
|
||||||
|
+ part_stem = mon + "it" ;
|
||||||
|
+ in
|
||||||
|
+ mkVerb monere 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 ;
|
||||||
|
+
|
||||||
|
+-- 3./Consonant conjugation
|
||||||
|
+
|
||||||
|
+ verb3c : ( regere,rexi,rectus : Str ) -> Verb = \regere,rexi,rectus ->
|
||||||
|
+ let
|
||||||
|
+ rege = Predef.tk 2 regere ;
|
||||||
|
+ reg = init rege ;
|
||||||
|
+ rex = init rexi ;
|
||||||
|
+ rect = Predef.tk 2 rectus ;
|
||||||
|
+ pres_stem = reg ;
|
||||||
|
+ pres_ind_base = reg ;
|
||||||
|
+ pres_conj_base = reg + "a" ;
|
||||||
|
+ impf_ind_base = reg + "eba" ;
|
||||||
|
+ impf_conj_base = reg + "ere" ;
|
||||||
|
+ fut_I_base = rege ;
|
||||||
|
+ imp_base = reg ;
|
||||||
|
+ perf_stem = rex ;
|
||||||
|
+ perf_ind_base = rex ;
|
||||||
|
+ perf_conj_base = rex + "eri" ;
|
||||||
|
+ pqperf_ind_base = rex + "era" ;
|
||||||
|
+ pqperf_conj_base = rex + "isse" ;
|
||||||
|
+ fut_II_base = rex + "eri" ;
|
||||||
|
+ part_stem = rect ;
|
||||||
|
+ in
|
||||||
|
+ mkVerb regere 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 ;
|
||||||
|
+
|
||||||
|
+-- 3./i-conjugation
|
||||||
|
+
|
||||||
|
+ verb3i : ( capere,cepi,captus : Str ) -> Verb = \capere,cepi,captus ->
|
||||||
|
+ let
|
||||||
|
+ cape = Predef.tk 2 capere ;
|
||||||
|
+ cap = init cape ;
|
||||||
|
+ capi = cap + "i" ;
|
||||||
|
+ cep = init cepi ;
|
||||||
|
+ capt = Predef.tk 2 captus ;
|
||||||
|
+ pres_stem = capi ;
|
||||||
|
+ pres_ind_base = capi ;
|
||||||
|
+ pres_conj_base = capi + "a" ;
|
||||||
|
+ impf_ind_base = capi + "eba" ;
|
||||||
|
+ impf_conj_base = cape + "re" ;
|
||||||
|
+ fut_I_base = capi + "e" ;
|
||||||
|
+ imp_base = cap ;
|
||||||
|
+ perf_stem = cep ;
|
||||||
|
+ perf_ind_base = cep ;
|
||||||
|
+ perf_conj_base = cep + "eri" ;
|
||||||
|
+ pqperf_ind_base = cep + "era" ;
|
||||||
|
+ pqperf_conj_base = cep + "isse" ;
|
||||||
|
+ fut_II_base = cep + "eri" ;
|
||||||
|
+ part_stem = capt ;
|
||||||
|
+ in
|
||||||
|
+ mkVerb capere 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 ;
|
||||||
|
+
|
||||||
|
+-- 4./i-conjugation
|
||||||
|
+
|
||||||
|
+ verb4 : Str -> Verb = \audire ->
|
||||||
|
+ let
|
||||||
|
+ audi = Predef.tk 2 audire ;
|
||||||
|
+ audiv = audi + "v" ;
|
||||||
|
+ pres_stem = audi ;
|
||||||
|
+ pres_ind_base = audi ;
|
||||||
|
+ pres_conj_base = audi + "a" ;
|
||||||
|
+ impf_ind_base = audi + "eba" ;
|
||||||
|
+ impf_conj_base = audi + "re" ;
|
||||||
|
+ fut_I_base = audi +"e" ;
|
||||||
|
+ imp_base = audi ;
|
||||||
|
+ perf_stem = audiv ;
|
||||||
|
+ perf_ind_base = audiv ;
|
||||||
|
+ perf_conj_base = audiv + "eri" ;
|
||||||
|
+ pqperf_ind_base = audiv + "era" ;
|
||||||
|
+ pqperf_conj_base = audiv + "isse" ;
|
||||||
|
+ fut_II_base = audiv + "eri" ;
|
||||||
|
+ part_stem = audi + "t" ;
|
||||||
|
+ in
|
||||||
|
+ mkVerb audire 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 ;
|
||||||
|
+
|
||||||
|
+-- deponent verb
|
||||||
|
+
|
||||||
|
+-- 1./a-conjugation
|
||||||
|
+ deponent1 : Str -> Verb = \hortari ->
|
||||||
|
+ let
|
||||||
|
+ horta = Predef.tk 2 hortari ;
|
||||||
|
+ hort = init horta ;
|
||||||
|
+ pres_stem = horta ;
|
||||||
|
+ pres_ind_base = horta ;
|
||||||
|
+ pres_conj_base = hort + "e" ;
|
||||||
|
+ impf_ind_base = horta + "ba" ;
|
||||||
|
+ impf_conj_base = horta + "re" ;
|
||||||
|
+ fut_I_base = horta + "bi" ;
|
||||||
|
+ imp_base = horta ;
|
||||||
|
+ part_stem = horta + "t" ;
|
||||||
|
+ in
|
||||||
|
+ mkDeponent hortari pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base part_stem ;
|
||||||
|
+
|
||||||
|
+-- 2./e-conjugation
|
||||||
|
+ deponent2 : Str -> Verb = \vereri ->
|
||||||
|
+ let
|
||||||
|
+ vere = Predef.tk 2 vereri ;
|
||||||
|
+ ver = init vere ;
|
||||||
|
+ pres_stem = vere ;
|
||||||
|
+ pres_ind_base = vere ;
|
||||||
|
+ pres_conj_base = vere + "a" ;
|
||||||
|
+ impf_ind_base = vere + "ba" ;
|
||||||
|
+ impf_conj_base = vere + "re" ;
|
||||||
|
+ fut_I_base = vere + "bi" ;
|
||||||
|
+ imp_base = vere ;
|
||||||
|
+ part_stem = ver + "it" ;
|
||||||
|
+ in
|
||||||
|
+ mkDeponent vereri pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base part_stem ;
|
||||||
|
+
|
||||||
|
+-- 3./Consonant conjugation
|
||||||
|
+ deponent3c : ( sequi,sequor,secutus : Str ) -> Verb = \sequi,sequor,secutus ->
|
||||||
|
+ let
|
||||||
|
+ sequ = Predef.tk 2 sequor ;
|
||||||
|
+ secu = Predef.tk 3 secutus ;
|
||||||
|
+ pres_stem = sequ ;
|
||||||
|
+ pres_ind_base = sequ ;
|
||||||
|
+ pres_conj_base = sequ + "a" ;
|
||||||
|
+ impf_ind_base = sequ + "eba" ;
|
||||||
|
+ impf_conj_base = sequ + "ere" ;
|
||||||
|
+ fut_I_base = sequ + "e" ;
|
||||||
|
+ imp_base = sequi ;
|
||||||
|
+ part_stem = secu + "t" ;
|
||||||
|
+ in
|
||||||
|
+ mkDeponent sequi pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base part_stem ;
|
||||||
|
+
|
||||||
|
+-- 3./i-conjugation
|
||||||
|
+ deponent3i : ( pati,patior,passus : Str ) -> Verb = \pati,patior,passus ->
|
||||||
|
+ let
|
||||||
|
+ pat = init pati ;
|
||||||
|
+ pass = Predef.tk 2 passus ;
|
||||||
|
+ pres_stem = pati ;
|
||||||
|
+ pres_ind_base = pati ;
|
||||||
|
+ pres_conj_base = pati + "a" ;
|
||||||
|
+ impf_ind_base = pati + "eba" ;
|
||||||
|
+ impf_conj_base = pat + "ere" ;
|
||||||
|
+ fut_I_base = pati + "e" ;
|
||||||
|
+ imp_base = pati ;
|
||||||
|
+ part_stem = pass ;
|
||||||
|
+ in
|
||||||
|
+ mkDeponent pati pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base part_stem ;
|
||||||
|
+
|
||||||
|
+-- 4./i-conjugation
|
||||||
|
+ deponent4 : Str -> Verb = \largiri ->
|
||||||
|
+ let
|
||||||
|
+ largi = Predef.tk 2 largiri ;
|
||||||
|
+ pres_stem = largi ;
|
||||||
|
+ pres_ind_base = largi ;
|
||||||
|
+ pres_conj_base = largi + "a" ;
|
||||||
|
+ impf_ind_base = largi + "eba" ;
|
||||||
|
+ impf_conj_base = largi + "re" ;
|
||||||
|
+ fut_I_base = largi + "e" ;
|
||||||
|
+ imp_base = largi ;
|
||||||
|
+ part_stem = largi + "t" ;
|
||||||
|
+ in
|
||||||
|
+ mkDeponent largiri pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base part_stem ;
|
||||||
|
+
|
||||||
|
+-- smart paradigms
|
||||||
|
+
|
||||||
|
+ verb_ippp : (iacere,iacio,ieci,iactus : Str) -> Verb =
|
||||||
|
+ \iacere,iacio,ieci,iactus ->
|
||||||
|
+ case iacere of {
|
||||||
|
+ _ + "ari" => deponent1 iacere ;
|
||||||
|
+ _ + "eri" => deponent2 iacere ;
|
||||||
|
+ _ + "iri" => deponent4 iacere ;
|
||||||
|
+ _ + "i" => case iacio of {
|
||||||
|
+ _ + "ior" => deponent3i iacere iacio iactus ;
|
||||||
|
+ _ => deponent3c iacere iacio iactus
|
||||||
|
+ } ;
|
||||||
|
+ _ + "are" => verb1 iacere ;
|
||||||
|
+ _ + "ire" => verb4 iacere ; -- ieci iactus ;
|
||||||
|
+ _ + "ere" => case iacio of {
|
||||||
|
+ _ + #consonant + "o" => verb3c iacere ieci iactus ; -- Bayer-Lindauer 74 1
|
||||||
|
+ _ + "eo" => verb2 iacere ;
|
||||||
|
+ _ + ( "i" | "u" ) + "o" => verb3i iacere ieci iactus ; -- Bayer-Linduaer 74 1
|
||||||
|
+ _ => verb3c iacere ieci iactus
|
||||||
|
+ } ;
|
||||||
|
+ _ => Predef.error ("verb_ippp: illegal infinitive form" ++ iacere)
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ verb : (iacere : Str) -> Verb =
|
||||||
|
+ \iacere ->
|
||||||
|
+ case iacere of {
|
||||||
|
+ _ + "ari" => deponent1 iacere ;
|
||||||
|
+ _ + "eri" => deponent2 iacere ;
|
||||||
|
+ _ + "iri" => deponent4 iacere ;
|
||||||
|
+ _ + "are" => verb1 iacere ;
|
||||||
|
+ _ + "ire" => -- let iaci = Predef.tk 2 iacere in
|
||||||
|
+ verb4 iacere ; -- (iaci + "vi") (iaci + "tus") ;
|
||||||
|
+ _ + "ere" => verb2 iacere ;
|
||||||
|
+ _ => Predef.error ("verb: illegal infinitive form" ++ iacere)
|
||||||
|
+ } ;
|
||||||
|
+}
|
||||||
|
\ No newline at end of file
|
||||||
194
src/latin/doc/magisterarbeit/diffs/NounLat.gf.diff
Normal file
194
src/latin/doc/magisterarbeit/diffs/NounLat.gf.diff
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
diff --git a/lib/src/latin/NounLat.gf b/lib/src/latin/NounLat.gf
|
||||||
|
index 01eb80a..ea60fbd 100644
|
||||||
|
--- a/lib/src/latin/NounLat.gf
|
||||||
|
+++ b/lib/src/latin/NounLat.gf
|
||||||
|
@@ -1,132 +1,151 @@
|
||||||
|
-concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
|
||||||
|
+concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
||||||
|
|
||||||
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
- DetCN det cn = {
|
||||||
|
- s = \\c => det.s ! cn.g ! c ++ cn.s ! det.n ! c ;
|
||||||
|
- n = det.n ; g = cn.g ; p = P3
|
||||||
|
+ DetCN det cn = -- Det -> CN -> NP
|
||||||
|
+ {
|
||||||
|
+ 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) ;
|
||||||
|
+ n = det.n ; g = cn.g ; p = P3 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
--- UsePN pn = pn ** {a = agrgP3 Sg pn.g} ;
|
||||||
|
- UsePron p = p ;
|
||||||
|
+ UsePN pn = lin NP { s = pn.s ! Sg ; g = pn.g ; n = Sg ; p = P3 } ;
|
||||||
|
+
|
||||||
|
+ UsePron p = -- Pron -> Np
|
||||||
|
+ {
|
||||||
|
+ g = p.g ;
|
||||||
|
+ n = p.n ;
|
||||||
|
+ p = p.p ;
|
||||||
|
+ s = \\c => case c of {
|
||||||
|
+ Nom => p.pers ! PronDrop ! PronRefl ; -- Drop pronoun in nominative case
|
||||||
|
+ _ => p.pers ! PronNonDrop ! PronRefl -- but don't drop it otherwise
|
||||||
|
+ } ! c ;
|
||||||
|
+ } ;
|
||||||
|
|
||||||
|
-- PredetNP pred np = {
|
||||||
|
-- s = \\c => pred.s ++ np.s ! c ;
|
||||||
|
-- a = np.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- PPartNP np v2 = {
|
||||||
|
-- s = \\c => np.s ! c ++ v2.s ! VPPart ;
|
||||||
|
-- a = np.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- RelNP np rs = {
|
||||||
|
-- s = \\c => np.s ! c ++ "," ++ rs.s ! np.a ;
|
||||||
|
-- a = np.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- AdvNP np adv = {
|
||||||
|
-- s = \\c => np.s ! c ++ adv.s ;
|
||||||
|
-- a = np.a
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- DetQuantOrd quant num ord = {
|
||||||
|
-- s = quant.s ! num.hasCard ! num.n ++ num.s ++ ord.s ;
|
||||||
|
-- sp = quant.sp ! num.hasCard ! num.n ++ num.s ++ ord.s ;
|
||||||
|
-- n = num.n
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
DetQuant quant num = {
|
||||||
|
- s = \\g,c => quant.s ! num.n ! g ! c ++ num.s ! g ! c ;
|
||||||
|
- sp = \\g,c => quant.sp ! num.n ! g ! c ++ num.s ! g ! c ;
|
||||||
|
+ s = \\g,c => quant.s ! Ag g num.n c ++ num.s ! g ! c ;
|
||||||
|
+ sp = \\g,c => quant.sp ! Ag g num.n c ++ num.s ! g ! c ;
|
||||||
|
n = num.n
|
||||||
|
} ;
|
||||||
|
|
||||||
|
- DetNP det = {
|
||||||
|
- s = det.sp ! Neutr ;
|
||||||
|
- g = Neutr ; n = det.n ; p = P3
|
||||||
|
- } ;
|
||||||
|
+ -- DetNP det = {
|
||||||
|
+ -- s = det.sp ! Neutr ;
|
||||||
|
+ -- g = Neutr ; n = det.n ; p = P3
|
||||||
|
+ -- } ;
|
||||||
|
|
||||||
|
-- PossPron p = {
|
||||||
|
-- s = \\_,_ => p.s ! Gen ;
|
||||||
|
-- sp = \\_,_ => p.sp
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
NumSg = {s = \\_,_ => [] ; n = Sg} ;
|
||||||
|
NumPl = {s = \\_,_ => [] ; n = Pl} ;
|
||||||
|
|
||||||
|
-- NumCard n = n ** {hasCard = True} ;
|
||||||
|
--
|
||||||
|
-- NumDigits n = {s = n.s ! NCard ; n = n.n} ;
|
||||||
|
-- OrdDigits n = {s = n.s ! NOrd} ;
|
||||||
|
--
|
||||||
|
-- NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ;
|
||||||
|
-- OrdNumeral numeral = {s = numeral.s ! NOrd} ;
|
||||||
|
--
|
||||||
|
-- AdNum adn num = {s = adn.s ++ num.s ; n = num.n} ;
|
||||||
|
--
|
||||||
|
-- OrdSuperl a = {s = a.s ! AAdj Superl} ;
|
||||||
|
|
||||||
|
DefArt = {
|
||||||
|
- s = \\_,_,_ => [] ;
|
||||||
|
- sp = \\n,g => (personalPronoun g n P3).s
|
||||||
|
+ s = \\_ => [] ;
|
||||||
|
+ sp = \\_ => [] ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
--- IndefArt = {
|
||||||
|
--- s = \\c,n => case <n,c> of {
|
||||||
|
--- <Sg,False> => artIndef ;
|
||||||
|
--- _ => []
|
||||||
|
--- } ;
|
||||||
|
--- sp = \\c,n => case <n,c> of {
|
||||||
|
--- <Sg,False> => "one" ;
|
||||||
|
--- <Pl,False> => "ones" ;
|
||||||
|
--- _ => []
|
||||||
|
--- }
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
--- MassNP cn = {
|
||||||
|
--- s = cn.s ! Sg ;
|
||||||
|
--- a = agrP3 Sg
|
||||||
|
--- } ;
|
||||||
|
---
|
||||||
|
- UseN n = n ;
|
||||||
|
--- UseN2 n = n ;
|
||||||
|
------b UseN3 n = n ;
|
||||||
|
+ IndefArt = {
|
||||||
|
+ s = \\_ => [] ;
|
||||||
|
+ sp = \\_ => [] ;
|
||||||
|
+ } ;
|
||||||
|
+
|
||||||
|
+ -- MassNP cn = {
|
||||||
|
+ -- s = cn.s ! Sg ;
|
||||||
|
+ -- a = Ag cn.g Sg
|
||||||
|
+ -- } ;
|
||||||
|
+
|
||||||
|
+--2 Common Nouns
|
||||||
|
+ UseN n = -- N -> CN
|
||||||
|
+ lin CN ( n ** {preap, postap = {s = \\_ => "" } } ) ;
|
||||||
|
+
|
||||||
|
+ UseN2 n2 = -- N2 -> CN
|
||||||
|
+ lin CN ( n2 ** {preap, postap = {s = \\_ => "" } } ) ;
|
||||||
|
+ -----b UseN3 n = n ;
|
||||||
|
--
|
||||||
|
-- Use2N3 f = {
|
||||||
|
-- s = \\n,c => f.s ! n ! Nom ;
|
||||||
|
-- g = f.g ;
|
||||||
|
-- c2 = f.c2
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- Use3N3 f = {
|
||||||
|
-- s = \\n,c => f.s ! n ! Nom ;
|
||||||
|
-- g = f.g ;
|
||||||
|
-- c2 = f.c3
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- ComplN2 f x = {s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ; g = f.g} ;
|
||||||
|
-- ComplN3 f x = {
|
||||||
|
-- s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ;
|
||||||
|
-- g = f.g ;
|
||||||
|
-- c2 = f.c3
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
- AdjCN ap cn = {
|
||||||
|
- s = \\n,c => preOrPost ap.isPre (ap.s ! cn.g ! n ! c) (cn.s ! n ! c) ;
|
||||||
|
- g = cn.g
|
||||||
|
+ param
|
||||||
|
+ AdjPos = Pre | Post ;
|
||||||
|
+ lin
|
||||||
|
+ AdjCN ap cn = -- AP -> CN -> CN
|
||||||
|
+ let pos = variants { Post ; Pre }
|
||||||
|
+ 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 = {
|
||||||
|
-- s = \\n,c => cn.s ! n ! c ++ rs.s ! agrgP3 n cn.g ;
|
||||||
|
-- g = cn.g
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
- 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} ;
|
||||||
|
--
|
||||||
|
-- ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! c ; g = cn.g} ;
|
||||||
|
--
|
||||||
|
}
|
||||||
120
src/latin/doc/magisterarbeit/diffs/ParadigmsLat.gf.diff
Normal file
120
src/latin/doc/magisterarbeit/diffs/ParadigmsLat.gf.diff
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
diff --git a/lib/src/latin/ParadigmsLat.gf b/lib/src/latin/ParadigmsLat.gf
|
||||||
|
index 808d46b..a45cd4a 100644
|
||||||
|
--- a/lib/src/latin/ParadigmsLat.gf
|
||||||
|
+++ b/lib/src/latin/ParadigmsLat.gf
|
||||||
|
@@ -1,65 +1,102 @@
|
||||||
|
---# -path=.:../abstract:../../prelude:../common
|
||||||
|
+--# -path=.:../abstract:../prelude:../common
|
||||||
|
|
||||||
|
--1 Latin Lexical Paradigms
|
||||||
|
--
|
||||||
|
--- Aarne Ranta 2008
|
||||||
|
+-- Aarne Ranta 2008, Extended Herbert Lange 2013
|
||||||
|
--
|
||||||
|
-- This is an API for the user of the resource grammar
|
||||||
|
-- for adding lexical items. It gives functions for forming
|
||||||
|
-- expressions of open categories: nouns, adjectives, verbs.
|
||||||
|
--
|
||||||
|
-- Closed categories (determiners, pronouns, conjunctions) are
|
||||||
|
-- accessed through the resource syntax API, $Structural.gf$.
|
||||||
|
|
||||||
|
resource ParadigmsLat = open
|
||||||
|
(Predef=Predef),
|
||||||
|
Prelude,
|
||||||
|
ResLat,
|
||||||
|
+ MorphoLat,
|
||||||
|
CatLat
|
||||||
|
in {
|
||||||
|
|
||||||
|
--2 Parameters
|
||||||
|
--
|
||||||
|
-- To abstract over gender names, we define the following identifiers.
|
||||||
|
|
||||||
|
oper
|
||||||
|
masculine : Gender ;
|
||||||
|
feminine : Gender ;
|
||||||
|
neuter : Gender ;
|
||||||
|
|
||||||
|
mkN = overload {
|
||||||
|
mkN : (verbum : Str) -> N
|
||||||
|
- = \n -> noun n ** {lock_N = <>} ;
|
||||||
|
+ = \n -> lin N ( noun n ) ;
|
||||||
|
mkN : (verbum, verbi : Str) -> Gender -> N
|
||||||
|
- = \x,y,z -> noun_ngg x y z ** {lock_N = <>} ;
|
||||||
|
+ = \x,y,z -> lin N ( noun_ngg x y z ) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkA = overload {
|
||||||
|
mkA : (verbum : Str) -> A
|
||||||
|
- = \n -> adj n ** {isPre = False ; lock_A = <>} ;
|
||||||
|
+ = \n -> lin A ( adj n ** {isPre = False } ) ;
|
||||||
|
mkA : (verbum, verbi : Str) -> A
|
||||||
|
- = \x,y -> adj123 x y ** {isPre = False ; lock_A = <>} ;
|
||||||
|
+ = \x,y -> lin A ( adj123 x y ** {isPre = False } ) ;
|
||||||
|
mkA : (bonus,bona,bonum : N) -> A
|
||||||
|
- = \x,y,z -> mkAdjective x y z ** {isPre = False ; lock_A = <>} ;
|
||||||
|
+ = \x,y,z ->
|
||||||
|
+ let compsup = comp_super x ;
|
||||||
|
+ advs : Str * Str =
|
||||||
|
+ case x.s!Sg!Nom of {
|
||||||
|
+ -- Bayer-Lindauer 50 4
|
||||||
|
+ idon + #vowel + "us" => < "magis" , "maxime" > ;
|
||||||
|
+ _ => < "" , "" >
|
||||||
|
+ };
|
||||||
|
+ in
|
||||||
|
+ lin A ( mkAdjective x y z < compsup.p1 , advs.p2 > < compsup.p2 , advs.p2> ** {isPre = False } ) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
mkV = overload {
|
||||||
|
mkV : (tacere : Str) -> V
|
||||||
|
- = \v -> verb v ** {lock_V = <>} ;
|
||||||
|
- mkV : (iacio,ieci,iactus,iacere : Str) -> V
|
||||||
|
- = \v,x,y,z -> verb_pppi v x y z ** {lock_V = <>} ;
|
||||||
|
+ = \v -> lin V ( verb v ) ;
|
||||||
|
+ mkV : (iacere,iacio,ieci,iactus : Str) -> V
|
||||||
|
+ = \v,x,y,z -> lin V ( verb_ippp v x y z ) ;
|
||||||
|
+ mkV : (iacere,iacio,ieci : Str) -> V
|
||||||
|
+ = \v,x,y -> lin V ( verb_ippp v x y "######" ) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
+ V0 : Type = V ;
|
||||||
|
+ mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working
|
||||||
|
+
|
||||||
|
mkV2 = overload {
|
||||||
|
mkV2 : (amare : Str) -> V2
|
||||||
|
- = \v -> verb v ** {c = {s = [] ; c = Acc} ; lock_V2 = <>} ;
|
||||||
|
+ = \v -> lin V2 ( verb v ** { c = lin Prep ( mkPrep "" Acc ) } ) ;
|
||||||
|
mkV2 : (facere : V) -> V2
|
||||||
|
- = \v -> v ** {c = {s = [] ; c = Acc} ; lock_V2 = <>} ;
|
||||||
|
+ = \v -> lin V2 ( v ** { c = lin Prep ( mkPrep "" Acc ) } ) ;
|
||||||
|
+ mkV2 : V -> Prep -> V2
|
||||||
|
+ = \v,p -> lin V2 ( v ** { c = p } ) ;
|
||||||
|
} ;
|
||||||
|
---.
|
||||||
|
+
|
||||||
|
masculine = Masc ;
|
||||||
|
feminine = Fem ;
|
||||||
|
neuter = Neutr ;
|
||||||
|
|
||||||
|
+-- To be implemented, just place holders
|
||||||
|
+ mkPN : N -> PN = \n -> lin PN n ;
|
||||||
|
+ mkN2 : N -> Prep -> N2 = \n,p -> lin N2 ( n ** { c = p } );
|
||||||
|
+ mkN3 : N -> Prep -> Prep -> N3 = \n,p1,p2 -> lin N3 ( n **{ c = p1 ; c2 = p2 } ) ;
|
||||||
|
+ mkV2S : V -> Prep -> V2S = \v,p -> lin V2S ( v ** { c = p } ) ;
|
||||||
|
+ mkV2Q : V -> Prep -> V2Q = \v,p -> lin V2Q ( v ** { c = p } ) ;
|
||||||
|
+ mkV2V : V -> Str -> Bool -> V2V = \v,s,b -> lin V2V ( v ** { c2 = s ; isAux = b } ) ;
|
||||||
|
+ mkVV : V -> Bool -> VV = \v,b -> lin VV ( v ** { isAux = b } ) ;
|
||||||
|
+ mkVA : V -> VA = \v -> lin VA v ;
|
||||||
|
+ mkV3 : V -> Prep -> Prep -> V3 = \v,p1,p2 -> lin V3 ( v ** { c2 = p1; c3 = p2 } ) ;
|
||||||
|
+ mkVQ : V -> VQ = \v -> lin VQ v ;
|
||||||
|
+ mkVS : V -> VS = \v -> lin VS v ;
|
||||||
|
+ mkV2A : V -> Prep -> V2A = \v,p -> lin V2A (v ** { c = p } ) ;
|
||||||
|
+ AS : Type = A ;
|
||||||
|
+ mkAS : A -> AS = \a -> lin AS a ;
|
||||||
|
+ mkA2 : A -> Prep -> A2 = \a,p -> lin A2 ( a ** { c = p } ) ;
|
||||||
|
+ A2V : Type = A2 ;
|
||||||
|
+ mkA2V : A -> Prep -> A2V = \a,p -> lin A2V ( lin A2 ( a ** { c = p } ) ) ;
|
||||||
|
+ AV : Type = A ;
|
||||||
|
+ mkAV : A -> AV = \a -> lin AV a ;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user