mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -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
|
||||
-- PositA : A -> AP ; -- warm
|
||||
PositA a =
|
||||
{ s = \\ag => a.s ! Posit ! ag };
|
||||
|
||||
PositA a = -- A -> AP
|
||||
{
|
||||
s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
|
||||
};
|
||||
|
||||
{-
|
||||
-- ComparA : A -> NP -> AP ; -- warmer than I
|
||||
ComparA a np = {
|
||||
s = \\_ => a.s ! AAdj Compar ++ "than" ++ np.s ! Nom ;
|
||||
isPre = False
|
||||
s = \\ag => a.s ! Compar ! ag ++ "quam" ++ np.s ! Nom ;
|
||||
} ;
|
||||
|
||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||
|
||||
-- ComplA2 : A2 -> NP -> AP ; -- married to her
|
||||
ComplA2 a np = {
|
||||
s = \\_ => a.s ! AAdj Posit ++ a.c2 ++ np.s ! Acc ;
|
||||
isPre = False
|
||||
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++ np.s ! a.c.c ;
|
||||
} ;
|
||||
|
||||
-- ReflA2 : A2 -> AP -- married to myself
|
||||
ReflA2 a = {
|
||||
s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ;
|
||||
isPre = False
|
||||
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++
|
||||
table { Acc => "memet" ; _ => "egomet" } ! a.c.c;
|
||||
} ;
|
||||
|
||||
SentAP ap sc = {
|
||||
s = \\a => ap.s ! a ++ sc.s ;
|
||||
isPre = False
|
||||
} ;
|
||||
-}
|
||||
-- UseA2 : A2 -> AP ; -- married
|
||||
UseA2 = PositA ;
|
||||
|
||||
-- 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 = {
|
||||
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 } ;
|
||||
} ;
|
||||
AdAP ada ap =
|
||||
{ s = \\agr => ada.s ++ ap.s ! agr } ;
|
||||
|
||||
-- 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
|
||||
-- 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
|
||||
-- } ;
|
||||
|
||||
-- PositAdvAdj : A -> Adv ; -- warmly
|
||||
PositAdvAdj a = a.adv ;
|
||||
|
||||
-- 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.
|
||||
|
||||
-- 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 = {s = cadv.s ++ "than"} ;
|
||||
-- AdnCAdv : CAdv -> AdN ; -- less (than five)
|
||||
AdnCAdv cadv = {s = cadv.s ++ cadv.p} ;
|
||||
--
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -6,7 +6,7 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
||||
|
||||
---- Tensed/Untensed
|
||||
--
|
||||
S = {s : Str} ;
|
||||
S = Sentence ;
|
||||
QS = {s : QForm => Str} ;
|
||||
-- RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
|
||||
-- SSlash = {s : Str ; c2 : Str} ;
|
||||
@@ -15,11 +15,12 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
||||
--
|
||||
Cl = Clause ;
|
||||
ClSlash = Clause ;
|
||||
Imp = {s : Polarity => ImpForm => Str} ;
|
||||
Imp = {s : Polarity => VImpForm => Str} ;
|
||||
--
|
||||
---- 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} ;
|
||||
IComp = {s : Str} ;
|
||||
IDet = Determiner ; --{s : Str ; n : Number} ;
|
||||
@@ -36,37 +37,35 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
||||
---- Verb
|
||||
--
|
||||
VP = ResLat.VerbPhrase ;
|
||||
VPSlash = VP ** {c2 : Preposition} ;
|
||||
VPSlash = ResLat.ObjectVerbPhrase ; -- VP ** {c2 : Preposition} ;
|
||||
Comp = {s : Agr => Str} ;
|
||||
--
|
||||
---- Adjective
|
||||
--
|
||||
-- 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
|
||||
} ;
|
||||
AP = AdjectivePhrase ;
|
||||
|
||||
--
|
||||
---- Noun
|
||||
--
|
||||
CN = ResLat.ComplexNoun ;
|
||||
CN = ResLat.CommonNoun ;
|
||||
NP = ResLat.NounPhrase ;
|
||||
Pron = ResLat.Pronoun ;
|
||||
Det = Determiner ;
|
||||
Predet, Ord = {s : Str} ;
|
||||
Predet = {s : Str} ;
|
||||
Ord = Ordinal ;
|
||||
Num = {s : Gender => Case => Str ; n : Number} ;
|
||||
-- Card = {s : Str ; n : Number} ;
|
||||
Card = {s : Gender => Case => Str ; n : Number} ;
|
||||
Quant = Quantifier ;
|
||||
--
|
||||
---- Numeral
|
||||
--
|
||||
-- Numeral = {s : CardOrd => Str ; n : Number} ;
|
||||
Numeral = ResLat.Numeral ;
|
||||
Digits = {s : Str ; unit : Unit} ;
|
||||
--
|
||||
---- Structural
|
||||
--
|
||||
Conj = {s1,s2 : Str ; n : Number} ;
|
||||
Conj = ResLat.Conjunction; --{s1,s2 : Str ; n : Number} ;
|
||||
Subj = {s : Str} ;
|
||||
Prep = ResLat.Preposition ;
|
||||
--
|
||||
@@ -79,10 +78,15 @@ concrete CatLat of Cat = CommonX ** open ResLat, ParamX, Prelude in {
|
||||
V2V = Verb ** {c2 : Str ; isAux : Bool} ;
|
||||
|
||||
A = Adjective ;
|
||||
|
||||
Adv = Adverb ;
|
||||
|
||||
N = Noun ;
|
||||
N2 = Noun ** { c : Prep } ;
|
||||
N3 = Noun ** { c : Prep ; c2 : Prep } ;
|
||||
PN = Noun ;
|
||||
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 =
|
||||
CatLat ** open ResLat, StructuralLat, Coordination, Prelude in {
|
||||
CatLat ** open ResLat, StructuralLat, Coordination, Prelude, ParadigmsLat in {
|
||||
--
|
||||
-- flags optimize=all_subs ;
|
||||
--
|
||||
--
|
||||
|
||||
lin
|
||||
--
|
||||
ConjS = conjunctDistrSS ;
|
||||
--
|
||||
ConjAdv = conjunctDistrSS ;
|
||||
--
|
||||
-- ConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||
-- } ;
|
||||
--
|
||||
ConjAP conj ss = conjunctDistrTable Agr conj ss ;
|
||||
--
|
||||
--{---b
|
||||
--
|
||||
-- ConjS = conjunctSS ;
|
||||
-- ConjS : Conj -> ListS -> S ; -- he walks and she runs
|
||||
-- TO FIX
|
||||
-- ConjS conj ss = { s = \\_ => conjunctDistrX conj (ss.l ! conj.c) ; sadv = lin Adv { s = []} ; neg = ss.neg } ;
|
||||
|
||||
-- ConjAdv : Conj -> ListAdv -> Adv ; -- here or there
|
||||
ConjAdv conj ss = mkAdv (conjunctDistrSS conj (ss.l ! conj.c) ).s ;
|
||||
|
||||
-- ConjNP : Conj -> ListNP -> NP ; -- she or we
|
||||
ConjNP conj nps =
|
||||
{
|
||||
s = case conj.c of {
|
||||
And => case nps.isBase of {
|
||||
False => (conjunctDistrTable Case conj (nps.l ! And)).s ;
|
||||
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 ;
|
||||
--
|
||||
-- ConjAdv = conjunctSS ;
|
||||
-- DConjAdv = conjunctDistrSS ;
|
||||
--
|
||||
-- ConjNP conj ss = conjunctTable Case conj ss ** {
|
||||
@@ -29,29 +44,77 @@ concrete ConjunctionLat of Conjunction =
|
||||
-- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||
-- a = conjAgr (agrP3 conj.n) ss.a
|
||||
-- } ;
|
||||
--
|
||||
-- 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 "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 = lin A ( twoTable Agr x y ) ;
|
||||
ConsAP xs x = lin A ( consrTable Agr and_Conj.s2 xs x );
|
||||
--
|
||||
|
||||
-- BaseS : S -> S -> ListS
|
||||
-- TO FIX
|
||||
-- BaseS x y = { l = \\c => twoStr (x.s ! PreS) (y.s ! PreS) } ;
|
||||
|
||||
-- ConsS : S -> ListS -> ListS
|
||||
-- TO FIX
|
||||
-- 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
|
||||
[S] = {s1,s2 : Str} ;
|
||||
[Adv] = {s1,s2 : Str} ;
|
||||
-- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
|
||||
[AP] = {s1,s2 : Agr => Str } ;
|
||||
-- [S] = { l : Coordinator => {s1,s2 : Str} } ; -- TO FIX
|
||||
[Adv] = { l: Coordinator => {s1,s2 : Str}} ;
|
||||
[NP] = {l : Coordinator => {s1,s2 : Case => Str} ; g : Gender ; n : Number ; p : Person ; adv : Str ; preap : AP ; postap : AP ; isBase : Bool } ;
|
||||
[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 =
|
||||
CatLat,
|
||||
ExtraLexiconLat **
|
||||
open ResLat, Coordination, Prelude in {
|
||||
CatLat, ExtraLexiconLat, ConjunctionLat **
|
||||
open ResLat, ParadigmsLat, Coordination, Prelude in {
|
||||
lincat CS = Str ;
|
||||
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
|
||||
{
|
||||
g = p.g ;
|
||||
n = p.n ;
|
||||
g = p.pers.g ;
|
||||
n = p.pers.n ;
|
||||
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 =
|
||||
Extra,
|
||||
ExtraLexiconLatAbs **
|
||||
{
|
||||
Extra, ExtraLexiconLatAbs, Conjunction
|
||||
** {
|
||||
cat CS ;
|
||||
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,
|
||||
ConjunctionLat,
|
||||
PhraseLat,
|
||||
TextX,
|
||||
TenseX,
|
||||
TextX-[Adv],
|
||||
TenseX-[Adv],
|
||||
StructuralLat
|
||||
-- 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 ;
|
||||
--
|
||||
@@ -26,5 +26,4 @@
|
||||
--
|
||||
-- ImpPl1 vp = {s = "let's" ++ infVP True vp (AgP1 Pl)} ;
|
||||
--
|
||||
--}
|
||||
--
|
||||
}
|
||||
@@ -6,171 +6,16 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
||||
--
|
||||
|
||||
lin
|
||||
-- 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 =
|
||||
\\_ => 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
|
||||
}
|
||||
} ;
|
||||
be_V = esseAux ;
|
||||
|
||||
-- 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 =
|
||||
\\_ => 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
|
||||
};
|
||||
can_V =
|
||||
posseAux ;
|
||||
|
||||
|
||||
-- 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 ;
|
||||
};
|
||||
ferreAux ;
|
||||
|
||||
-- Bayer-Lindauer 95
|
||||
want_V =
|
||||
@@ -204,9 +49,9 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
||||
pass =
|
||||
\\_ => nonExist ;
|
||||
ger =
|
||||
verb.ger ;
|
||||
\\_ => nonExist ;
|
||||
geriv =
|
||||
verb.geriv ;
|
||||
\\_ => nonExist ;
|
||||
imp =
|
||||
\\_ => nonExist ;
|
||||
inf =
|
||||
@@ -220,7 +65,7 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
||||
\\_ => nonExist
|
||||
} ;
|
||||
sup =
|
||||
verb.sup ;
|
||||
\\_ => nonExist ;
|
||||
} ;
|
||||
|
||||
-- Bayer-Lindauer 96 1
|
||||
@@ -453,4 +298,155 @@ concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat
|
||||
} ;
|
||||
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 ** {
|
||||
fun
|
||||
be_V : V ;
|
||||
can_VV : VV ;
|
||||
can_V : V ;
|
||||
bring_V : V ;
|
||||
want_V : V ;
|
||||
go_V : V;
|
||||
become_V : V;
|
||||
rain_V : V;
|
||||
hate_V : V;
|
||||
not8want_V : V ;
|
||||
make_V : V ;
|
||||
give_V : V ;
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
concrete LangLat of Lang =
|
||||
GrammarLat,
|
||||
ParadigmsLat,
|
||||
-- ConjunctionLat,
|
||||
LexiconLat
|
||||
-- ConstructionLat
|
||||
** {
|
||||
|
||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||
|
||||
@@ -19,19 +19,21 @@ concrete LexiconLat of Lexicon = CatLat ** open
|
||||
NounLat,
|
||||
AdjectiveLat,
|
||||
VerbLat,
|
||||
Prelude in {
|
||||
Prelude,
|
||||
ExtraLat
|
||||
in {
|
||||
|
||||
flags
|
||||
optimize=values ;
|
||||
coding = utf8;
|
||||
lin
|
||||
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)
|
||||
apple_N = mkN "malum" ; -- -i n. (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)
|
||||
baby_N = mkN "infans" "infantis" ( variants { feminine ; masculine } ); -- Ranta; -antis m./f. (Langenscheidts)
|
||||
ask_V2Q = mkV2Q ( mkV "rogare" ) Acc_Prep ; -- rogo 1 (Langenscheidts) aliquem aliquid (Stowasser)
|
||||
baby_N = mkN "infans" "infantis" 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)
|
||||
@@ -42,16 +44,16 @@ lin
|
||||
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)
|
||||
blue_A = mkA "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)
|
||||
boss_N = mkN "dux" "ducis" 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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
@@ -60,7 +62,7 @@ lin
|
||||
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)
|
||||
cat_N = mkN "feles" "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)
|
||||
@@ -75,29 +77,29 @@ lin
|
||||
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)
|
||||
cousin_N = mkN "consobrinus" ; -- -i/-ae 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)
|
||||
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)
|
||||
dog_N = mkN "canis" "canis" masculine ; -- -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)
|
||||
enemy_N = mkN "hostis" "hostis" masculine ; -- -is m./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)
|
||||
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)
|
||||
friend_N = mkN "amicus" ; -- -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)
|
||||
@@ -108,7 +110,7 @@ lin
|
||||
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 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)
|
||||
hear_V2 = mkV2 (mkV "audire") ; -- 4 (Langenscheidts)
|
||||
hill_N = mkN "collis" "collis" masculine ; -- -is m. (Langenscheidts)
|
||||
@@ -141,7 +143,7 @@ lin
|
||||
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 ) 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)
|
||||
music_N = mkN "musica" ; -- -ae f. L..
|
||||
narrow_A = mkA "angustus" ; -- 3 (Langenscheidts)
|
||||
@@ -150,7 +152,7 @@ lin
|
||||
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" ) 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)
|
||||
paris_PN = mkPN (mkN "Lutetia") ; -- -ae f. (http://la.wikipedia.org/wiki/Lutetia)
|
||||
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)
|
||||
plastic_N = mkN "plastica" "plasticae" feminine ; -- -ae f. (http://la.wikipedia.org/wiki/Plasticum)
|
||||
play_V2 = mkV2 (mkV "ludere") ; -- 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)
|
||||
policeman_N = mkN "custos" "custodis" masculine ; -- -odis m./f. (Langenscheidts)
|
||||
priest_N = mkN "sacerdos" "sacerdotis" masculine ; -- -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)
|
||||
@@ -180,8 +182,8 @@ lin
|
||||
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" ) R.Acc_Prep R.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)
|
||||
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)
|
||||
@@ -193,20 +195,20 @@ lin
|
||||
-- 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)
|
||||
snake_N = mkN "serpens" "serpentis" masculine ; -- -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)
|
||||
student_N = mkN "discipulus"; -- -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 (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)
|
||||
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)
|
||||
teach_V2 = mkV2 (mkV "docere") ; -- doceo, docui, doctum 2 (Langenscheidts)
|
||||
television_N = mkN "televisio" "televisionis" feminine ; -- -onis f. (Pons)
|
||||
@@ -230,7 +232,7 @@ lin
|
||||
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)
|
||||
win_V2 = mkV2 (mkV "vincere" "vinco" "vinxi" "victum") ; -- 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)
|
||||
@@ -242,14 +244,14 @@ lin
|
||||
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" ) 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.
|
||||
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)
|
||||
left_Ord = lin Ord { s = \\g,n,c => (mkA "sinister").s ! R.Posit ! R.Ag g n c } ; -- -tra, -trum (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)
|
||||
correct_A = mkA "rectus" ; -- 3 (Langenscheidts)
|
||||
dry_A = mkA "aridus" ; -- 3 (Langenscheidts)
|
||||
@@ -267,13 +269,13 @@ lin
|
||||
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)
|
||||
bark_N = mkN "cortex" "corticis" masculine ; -- -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)
|
||||
blood_N = mkN "sanguis" "sanguinis" 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)
|
||||
day_N = mkN "dies" "diei" masculine ; -- -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)
|
||||
@@ -293,32 +295,32 @@ lin
|
||||
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)
|
||||
horn_N = mkN "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)
|
||||
liver_N = mkN "iecur" "iecoris" neuter ; -- iecoris/iocineris n. (Langenscheidts)
|
||||
louse_N = mkN "pedis" "pedis" masculine ; -- -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)
|
||||
nose_N = mkN "nasus" ; -- -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)
|
||||
rope_N = mkN "funis" "funis" masculine ; -- -is m.(/f.) (Langenscheidts)
|
||||
salt_N = mkN "sal" "salis" masculine ; -- 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.
|
||||
stick_N = mkN "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)
|
||||
|
||||
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
|
||||
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
|
||||
-- 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 ;
|
||||
--
|
||||
@@ -149,18 +149,18 @@ oper
|
||||
|
||||
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 ;
|
||||
<_ + "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 ;
|
||||
<semi + "bos" , _ > => prefixNoun semi (noun3 "bos" "bovis" Masc) ;
|
||||
_ => noun3 verbum verbi g
|
||||
}
|
||||
in
|
||||
nounWithGen g s ;
|
||||
nounWithGender g s ;
|
||||
|
||||
noun : Str -> Noun = \verbum ->
|
||||
case verbum of {
|
||||
@@ -170,6 +170,7 @@ oper
|
||||
_ + ( "er" | "ir" ) => noun2er verbum ( (Predef.tk 2 verbum) + "ri" ) ;
|
||||
_ + "u" => noun4u 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)
|
||||
} ;
|
||||
|
||||
@@ -179,7 +180,7 @@ oper
|
||||
_ + "a" => noun1 verbum ;
|
||||
_ + "us" => noun2us verbum ;
|
||||
_ + "um" => noun2um verbum ;
|
||||
_ + ( "er" | "ir" ) =>
|
||||
_ + ( "er" | "ir" | "ur" | "tr") =>
|
||||
let
|
||||
puer = verbum ;
|
||||
pue = Predef.tk 1 puer ;
|
||||
@@ -189,6 +190,7 @@ oper
|
||||
-- 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
|
||||
_ + "tr" => "t";
|
||||
_ => ""
|
||||
} ;
|
||||
pu = Predef.tk 1 pue ;
|
||||
@@ -310,6 +312,8 @@ oper
|
||||
-- Usual cases
|
||||
pulch + "er" => pulch + "r" ;
|
||||
bon + "us" => bon ;
|
||||
cam + "ur" => cam ;
|
||||
dime + "tr" => bonus ;
|
||||
_ => Predef.error ("adj12 does not apply to" ++ bonus)
|
||||
} ;
|
||||
nbonus = (noun12 bonus) ;
|
||||
@@ -334,9 +338,10 @@ oper
|
||||
(noun1 (bon + "a"))
|
||||
(noun2um (bon + "um"))
|
||||
< 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
|
||||
ac = Predef.tk 2 acer ;
|
||||
acrise : Str * Str = case acer of {
|
||||
@@ -353,16 +358,104 @@ oper
|
||||
(noun3adj acrise.p2 acris Neutr)
|
||||
< compsuper.p1 , "" >
|
||||
< 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
|
||||
|
||||
adj123 : Str -> Str -> Adjective = \bonus,boni ->
|
||||
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 ;
|
||||
<_ + "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)
|
||||
} ;
|
||||
|
||||
@@ -372,8 +465,18 @@ oper
|
||||
facil + "is" => adj3x bonus bonus ;
|
||||
feli + "x" => adj3x bonus (feli + "cis") ;
|
||||
_ => 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
|
||||
|
||||
@@ -605,6 +708,8 @@ oper
|
||||
_ + ( "i" | "u" ) + "o" => verb3i iacere ieci iactus ; -- Bayer-Linduaer 74 1
|
||||
_ => verb3c iacere ieci iactus
|
||||
} ;
|
||||
ab + "esse" => prefixVerb ab esseAux ;
|
||||
circum + "ferre" => prefixVerb circum ferreAux ;
|
||||
_ => Predef.error ("verb_ippp: illegal infinitive form" ++ iacere)
|
||||
} ;
|
||||
|
||||
@@ -618,6 +723,9 @@ oper
|
||||
_ + "ire" => let iaci = Predef.tk 2 iacere
|
||||
in verb4 iacere ; -- (iaci + "vi") (iaci + "tus") ;
|
||||
_ + "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)
|
||||
} ;
|
||||
}
|
||||
@@ -3,43 +3,85 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
||||
flags optimize=all_subs ;
|
||||
|
||||
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 ;
|
||||
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 } ;
|
||||
UsePron p = -- Pron -> Np
|
||||
-- UsePN : PN -> NP ; -- John
|
||||
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 ;
|
||||
n = p.n ;
|
||||
g = p.pers.g ;
|
||||
n = p.pers.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
|
||||
Nom => p.pers.s ! PronDrop ! PronNonRefl ; -- Drop pronoun in nominative case
|
||||
_ => p.pers.s ! PronNonDrop ! PronNonRefl -- but don't drop it otherwise
|
||||
} ! c ;
|
||||
adv = "" ;
|
||||
preap, postap = { s = \\_ => "" } ;
|
||||
det = { s,sp = \\_,_ => "" ; n = p.pers.n } ;
|
||||
} ;
|
||||
-- PredetNP pred np = {
|
||||
-- s = \\c => pred.s ++ np.s ! c ;
|
||||
-- a = np.a
|
||||
-- } ;
|
||||
--
|
||||
|
||||
-- PredetNP : Predet -> NP -> NP ; -- only the man
|
||||
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 = {
|
||||
-- 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 -> NP ; -- Paris today
|
||||
AdvNP np adv = {
|
||||
s = \\c => np.s ! c ++ adv.s ;
|
||||
g = np.g ; n = np.n; p = np.p
|
||||
} ;
|
||||
-- AdvNP : NP -> Adv -> NP ; -- Paris today
|
||||
AdvNP np adv = np ** { adv = np.adv ++ (adv.s ! Posit) } ;
|
||||
-- {
|
||||
-- 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 = {
|
||||
-- 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
|
||||
} ;
|
||||
|
||||
-- DetNP det = {
|
||||
-- s = det.sp ! Neutr ;
|
||||
-- g = Neutr ; n = det.n ; p = P3
|
||||
-- } ;
|
||||
|
||||
|
||||
-- PossPron p = {
|
||||
-- s = \\_,_ => p.s ! Gen ;
|
||||
@@ -66,13 +105,14 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
||||
NumSg = {s = \\_,_ => [] ; n = Sg} ;
|
||||
NumPl = {s = \\_,_ => [] ; n = Pl} ;
|
||||
|
||||
-- NumCard n = n ** {hasCard = True} ;
|
||||
NumCard n = n ;
|
||||
--
|
||||
-- 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} ;
|
||||
-- OrdDigits n = {s = n.s ! NOrd} ;
|
||||
--
|
||||
lin
|
||||
NumNumeral numeral = numeral.card ;
|
||||
OrdNumeral numeral = numeral.ord ;
|
||||
--
|
||||
-- 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 = \\_ => [] ;
|
||||
} ;
|
||||
|
||||
-- MassNP cn = {
|
||||
-- s = cn.s ! Sg ;
|
||||
-- a = Ag cn.g Sg
|
||||
-- } ;
|
||||
MassNP cn =
|
||||
{
|
||||
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
|
||||
lin CN ( n ** {preap, postap = {s = \\_ => "" } } ) ;
|
||||
lin CN ( n ** {preap, postap = {s = \\_ => "" } ; adv = "" }) ; -- massable = n.massable } ) ;
|
||||
|
||||
UseN2 n2 = -- N2 -> CN
|
||||
lin CN ( n2 ** {preap, postap = {s = \\_ => "" } } ) ;
|
||||
lin CN ( n2 ** {preap, postap = {s = \\_ => "" } ; adv = "" }) ; -- massable = n2.massable } ) ;
|
||||
-----b UseN3 n = n ;
|
||||
--
|
||||
-- Use2N3 f = {
|
||||
@@ -119,21 +167,10 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude, ConjunctionLat in {
|
||||
-- c2 = f.c3
|
||||
-- } ;
|
||||
|
||||
param
|
||||
AdjPos = Pre | Post ;
|
||||
lin
|
||||
-- by default add adjective after the noun, otherwise use AdjCNPre
|
||||
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
|
||||
} ;
|
||||
addAdjToCN (lin AP ap) (lin CN cn) Post ;
|
||||
|
||||
-- RelCN cn rs = {
|
||||
-- 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} ;
|
||||
|
||||
-- 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 {
|
||||
--
|
||||
--lincat
|
||||
-- Digit = {s : DForm => CardOrd => Str} ;
|
||||
-- Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
||||
-- Sub100 = {s : CardOrd => Str ; n : Number} ;
|
||||
-- Sub1000 = {s : CardOrd => Str ; n : Number} ;
|
||||
-- Sub1000000 = {s : CardOrd => Str ; n : Number} ;
|
||||
--
|
||||
--lin num x = x ;
|
||||
--lin n2 = let two = mkNum "two" "twelve" "twenty" "second" in
|
||||
-- {s = \\f,c => case <f,c> of {
|
||||
-- <teen,NOrd> => "twelfth" ;
|
||||
-- _ => two.s ! f ! c
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
--lin n3 = mkNum "three" "thirteen" "thirty" "third" ;
|
||||
--lin n4 = mkNum "four" "fourteen" "forty" "fourth" ;
|
||||
--lin n5 = mkNum "five" "fifteen" "fifty" "fifth" ;
|
||||
--lin n6 = regNum "six" ;
|
||||
--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} ;
|
||||
concrete NumeralLat of Numeral = CatLat ** open ResLat,ParadigmsLat in {
|
||||
lincat
|
||||
Digit = Numeral ;
|
||||
Sub10 = Numeral ;
|
||||
Sub100 = Numeral ;
|
||||
Sub1000 = Numeral ;
|
||||
Sub1000000 = Numeral ;
|
||||
|
||||
lin
|
||||
num x = x ;
|
||||
n2 = lin Numeral ( mkNum "duo" "secundus" ) ;
|
||||
n3 = lin Numeral ( mkNum "tres" "tertius" ) ;
|
||||
n4 = lin Numeral ( mkNum "quattuor" "quartus" ) ;
|
||||
n5 = lin Numeral ( mkNum "quinque" "quintus" ) ;
|
||||
n6 = lin Numeral ( mkNum "sex" "sextus" ) ;
|
||||
n7 = lin Numeral ( mkNum "septem" "septimus" ) ;
|
||||
n8 = lin Numeral ( mkNum "octo" "ocatvus" ) ;
|
||||
n9 = lin Numeral ( mkNum "novem" "nonus" ) ;
|
||||
|
||||
lin pot01 = lin Numeral ( mkNum "unus" "primus" ) ;
|
||||
lin pot0 d = d ;
|
||||
--lin pot110 = regCardOrd "ten" ** {n = Pl} ;
|
||||
--lin pot111 = regCardOrd "eleven" ** {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 pot1plus d e = {
|
||||
-- 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 pot2plus d e = {
|
||||
-- s = \\c => d.s ! unit ! NCard ++ "hundred" ++ "and" ++ e.s ! c ; n = Pl} ;
|
||||
--lin pot2as3 n = n ;
|
||||
pot2as3 n = n ;
|
||||
--lin pot3 n = {
|
||||
-- s = \\c => n.s ! NCard ++ mkCard c "thousand" ; n = Pl} ;
|
||||
--lin pot3plus n m = {
|
||||
|
||||
@@ -24,9 +24,15 @@ resource ParadigmsLat = open
|
||||
-- To abstract over gender names, we define the following identifiers.
|
||||
|
||||
oper
|
||||
masculine : Gender ;
|
||||
feminine : Gender ;
|
||||
neuter : Gender ;
|
||||
masculine : Gender = Masc ;
|
||||
feminine : Gender = Fem ;
|
||||
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 : (verbum : Str) -> N
|
||||
@@ -36,21 +42,28 @@ oper
|
||||
} ;
|
||||
|
||||
mkA = overload {
|
||||
mkA : (verbum : Str) -> A
|
||||
mkA : (verbum : Str) -> A -- Nominative masculine
|
||||
= \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 } ) ;
|
||||
mkA : (bonus,bona,bonum : N) -> 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 } ) ;
|
||||
-- mkA : (bonus,bona,bonum : N) -> 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 } ) ;
|
||||
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 ) ;
|
||||
} ;
|
||||
|
||||
V0 : Type = V ;
|
||||
mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working
|
||||
|
||||
V0 : Type = V;
|
||||
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 : (amare : Str) -> V2
|
||||
= \v -> lin V2 ( verb v ** { c = lin Prep ( mkPrep "" Acc ) } ) ;
|
||||
@@ -75,13 +91,26 @@ oper
|
||||
= \v,p -> lin V2 ( v ** { c = p } ) ;
|
||||
} ;
|
||||
|
||||
masculine = Masc ;
|
||||
feminine = Fem ;
|
||||
neuter = Neutr ;
|
||||
|
||||
mkAdv : Str -> Adv
|
||||
= \s -> lin Adv {s = s} ;
|
||||
mkAdv = overload {
|
||||
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
|
||||
mkPN : N -> PN = \n -> lin PN n ;
|
||||
mkN2 : N -> Prep -> N2 = \n,p -> lin N2 ( n ** { c = p } );
|
||||
|
||||
@@ -1,24 +1,37 @@
|
||||
concrete PhraseLat of Phrase = CatLat ** open Prelude, ResLat in {
|
||||
|
||||
lin
|
||||
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
||||
--
|
||||
-- UttS : S -> Utt
|
||||
UttS s = { s = s.s };
|
||||
UttS s = { s = combineSentence s ! SPreS ! PreS ! SOV };
|
||||
|
||||
-- UttQS : QS -> Utt
|
||||
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} ;
|
||||
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Pl False} ;
|
||||
-- UttImpPol pol imp = {s = pol.s ++ imp.s ! contrNeg True pol.p ! ImpF Sg True} ;
|
||||
--
|
||||
-- UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
||||
-- UttIAdv iadv = iadv ;
|
||||
-- UttNP np = {s = np.s ! Nom} ;
|
||||
-- UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
|
||||
-- UttAdv adv = adv ;
|
||||
--
|
||||
-- UttAdv : Adv -> Utt
|
||||
UttAdv adv = ss (adv.s ! Posit) ;
|
||||
-- UttAP : AP -> Utt
|
||||
UttAP ap = ss (ap.s ! Ag Masc Sg Nom );
|
||||
-- UttCard : Card -> Utt
|
||||
UttCard card = ss (card.s ! Masc ! Nom);
|
||||
-- UttCN : CN -> Utt
|
||||
UttCN cn = ss (cn.s ! Sg ! Nom) ;
|
||||
-- UttInterj : Interj -> Utt
|
||||
UttInterj interj = interj ;
|
||||
NoPConj = {s = []} ;
|
||||
PConjConj conj = {s = conj.s2} ; ---
|
||||
--
|
||||
|
||||
@@ -3,29 +3,35 @@ concrete QuestionLat of Question = CatLat ** open ResLat, IrregLat, Prelude in {
|
||||
-- flags optimize=all_subs ;
|
||||
--`
|
||||
lin
|
||||
-- QuestCl : Cl -> QCl ; -- does John walk
|
||||
QuestCl cl = {
|
||||
s = \\t,a,p =>
|
||||
let cls = cl.s ! t ! a ! p
|
||||
in table {
|
||||
QDir => cls ! VQTrue ! VSO ; -- cls ! OQuest ;
|
||||
QIndir => "" -- "if" ++ cls ! ODir -- TODO
|
||||
}
|
||||
} ;
|
||||
-- QuestCl : Cl -> QCl ; -- does John walk
|
||||
-- TO FIX
|
||||
-- QuestCl cl = {
|
||||
-- s = \\t,a,p =>
|
||||
-- let cls = (combineClause cl PreS).s ! t ! a ! p
|
||||
-- in table {
|
||||
-- QDir => cls ! VQTrue ! VSO ! PreV ; -- cls ! OQuest ;
|
||||
-- QIndir => "" -- "if" ++ cls ! ODir -- TODO
|
||||
-- }
|
||||
-- } ;
|
||||
|
||||
-- QuestVP : IP -> VP -> QCl ; -- who walks
|
||||
QuestVP ip vp =
|
||||
let qcl = mkQuestion { s = ip.s ! Nom } ( mkClause emptyNP vp )
|
||||
in {s = \\t,a,b,qd => qcl.s ! t ! a ! b ! qd} ;
|
||||
-- QuestVP : IP -> VP -> QCl ; -- who walks
|
||||
-- TO FIX
|
||||
-- QuestVP ip vp =
|
||||
-- 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 slash =
|
||||
mkQuestion (ss ( ip.s ! Acc) ) slash ;
|
||||
-- QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love
|
||||
-- TO FIX
|
||||
|
||||
-- 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 =
|
||||
mkQuestion icomp (mkClause np (predV be_V) ) ;
|
||||
-- TO FIX
|
||||
-- QuestIComp icomp np =
|
||||
-- mkQuestion icomp (mkClause np (predV be_V) ) ;
|
||||
--
|
||||
--
|
||||
-- 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 ;
|
||||
--
|
||||
@@ -51,4 +51,4 @@
|
||||
-- a = RNoAg
|
||||
-- } ;
|
||||
--
|
||||
--}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
--1 Latin auxiliary operations.
|
||||
|
||||
resource ResLat = ParamX ** open Prelude,TenseX in {
|
||||
resource ResLat = ParamX ** open Prelude, Predef, (C=CommonX) in {
|
||||
|
||||
param
|
||||
Case = Nom | Acc | Gen | Dat | Abl | Voc ;
|
||||
@@ -12,36 +12,47 @@ param
|
||||
oper
|
||||
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 =
|
||||
{
|
||||
s : Case => Str ;
|
||||
g : Gender ;
|
||||
n : Number ;
|
||||
p : Person ;
|
||||
adv : Str ;
|
||||
preap : {s : Agr => Str } ;
|
||||
postap : {s : Agr => Str } ;
|
||||
det : Determiner
|
||||
} ;
|
||||
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
|
||||
Agr = Ag Gender Number Case ; -- Agreement for NP et al.
|
||||
oper
|
||||
Adjective : Type = {
|
||||
s : Degree => Agr => Str ;
|
||||
-- comp_adv : Str ;
|
||||
-- super_adv : Str
|
||||
-- super_adv : Str
|
||||
adv : Adverb ;
|
||||
} ;
|
||||
ComplexNoun : Type =
|
||||
CommonNoun : Type =
|
||||
{
|
||||
s : Number => Case => Str ;
|
||||
g : Gender ;
|
||||
adv : Str ;
|
||||
preap : {s : Agr => Str } ;
|
||||
postap : {s : Agr => Str } ;
|
||||
} ;
|
||||
postap : {s : Agr => Str }
|
||||
-- massable : Bool
|
||||
} ;
|
||||
|
||||
-- nouns
|
||||
useCNasN : ComplexNoun -> Noun = \cn ->
|
||||
useCNasN : CommonNoun -> Noun = \cn ->
|
||||
{
|
||||
s = cn.s ;
|
||||
g = cn.g ;
|
||||
g = cn.g
|
||||
-- massable = cn.massable;
|
||||
} ;
|
||||
|
||||
pluralN : Noun -> Noun = \n ->
|
||||
@@ -52,11 +63,39 @@ param
|
||||
};
|
||||
g = n.g ;
|
||||
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 -> {
|
||||
-- mkNoun : (n1,_,_,_,_,_,_,_,_,n10 : Str) -> Gender -> Bool -> Noun =
|
||||
--\sn,sa,sg,sd,sab,sv,pn,pa,pg,pd,g,m -> {
|
||||
s = table {
|
||||
Sg => table {
|
||||
Nom => sn ;
|
||||
@@ -74,31 +113,51 @@ param
|
||||
}
|
||||
} ;
|
||||
g = g
|
||||
-- massable = m
|
||||
} ;
|
||||
|
||||
-- to change the default gender
|
||||
|
||||
nounWithGen : Gender -> Noun -> Noun = \g,n ->
|
||||
{s = n.s ; g = g} ;
|
||||
nounWithGender : Gender -> Noun -> Noun = \g,n ->
|
||||
{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 =
|
||||
\nom,acc,gen,dat,abl,voc,g,n ->
|
||||
{
|
||||
s = table Case [ nom ; acc ; gen ; dat ; abl ; voc ] ;
|
||||
g = g ;
|
||||
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
|
||||
|
||||
-- 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 ) -> Adjective =
|
||||
\bonus,bona,bonum,melior,optimus ->
|
||||
( (Agr => Str) * Str ) ->
|
||||
(bono,bonius,bonissimo : Str) ->
|
||||
Adjective =
|
||||
\bonus,bona,bonum,melior,optimus,bono,bonius,bonissimo ->
|
||||
{
|
||||
s = table {
|
||||
Posit => table {
|
||||
@@ -110,7 +169,8 @@ param
|
||||
Superl => optimus.p1
|
||||
} ;
|
||||
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 =
|
||||
{ s = \\_,_ => "" ; comp_adv = "" ; super_adv = "" } ;
|
||||
{ s = \\_,_ => "" ; comp_adv = "" ; super_adv = "" ; adv = { s = \\_ => "" } } ;
|
||||
|
||||
-- verbs
|
||||
|
||||
@@ -149,11 +209,16 @@ param
|
||||
|
||||
oper
|
||||
VerbPhrase : Type = {
|
||||
fin : VActForm => VQForm => Str ;
|
||||
s : VActForm => VQForm => Str ;
|
||||
part : VPartForm =>Agr => Str ;
|
||||
inf : VInfForm => Str ;
|
||||
imp : VImpForm => 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 = {
|
||||
act : VActForm => Str ;
|
||||
@@ -203,10 +268,11 @@ param
|
||||
|
||||
useVPasV : VerbPhrase -> Verb = \vp ->
|
||||
{
|
||||
act = \\a => vp.obj ++ vp.fin ! a ! VQFalse;
|
||||
act = \\a => vp.obj ++ vp.s ! a ! VQFalse;
|
||||
pass = \\_ => nonExist ;
|
||||
inf = \\a => vp.obj ++ vp.inf ! a ;
|
||||
imp = \\_ => nonExist ;
|
||||
-- inf = \\a => vp.obj ++ vp.inf ! a ;
|
||||
inf = vp.inf ;
|
||||
imp = vp.imp ;
|
||||
ger = \\_ => nonExist ;
|
||||
geriv = \\_ => nonExist ;
|
||||
sup = \\_ => nonExist ;
|
||||
@@ -378,25 +444,26 @@ param
|
||||
pres_stem + fill.p1 + "ndo"
|
||||
} ;
|
||||
geriv =
|
||||
( mkAdjective
|
||||
( 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 + "ndi" ) ( pres_stem + fill.p1 + "ndos" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Masc )
|
||||
( 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 + "ndas" ) (pres_stem + fill.p1 +"ndarum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Fem )
|
||||
( 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 + "nda" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
).s!Posit ;
|
||||
( mkAdjective
|
||||
( 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 + "ndi" ) ( pres_stem + fill.p1 + "ndos" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Masc )
|
||||
( 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 + "ndas" ) (pres_stem + fill.p1 +"ndarum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Fem )
|
||||
( 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 + "nda" ) ( pres_stem + fill.p1 + "nda" ) ( pres_stem + fill.p1 + "ndorum" )
|
||||
( pres_stem + fill.p1 + "ndis" )
|
||||
Neutr )
|
||||
< \\_ => "" , "" > -- Comparative
|
||||
< \\_ => "" , "" > -- Superlative
|
||||
"" "" "" -- Adverb part
|
||||
).s!Posit ;
|
||||
sup =
|
||||
table {
|
||||
VSupAcc => -- Supin
|
||||
@@ -436,6 +503,7 @@ param
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
"" "" ""
|
||||
).s!Posit ;
|
||||
VPassPerf =>
|
||||
( mkAdjective
|
||||
@@ -453,6 +521,7 @@ param
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
"" "" ""
|
||||
).s!Posit
|
||||
}
|
||||
} ;
|
||||
@@ -607,6 +676,7 @@ param
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
"" "" ""
|
||||
).s!Posit ;
|
||||
sup =
|
||||
table {
|
||||
@@ -648,6 +718,7 @@ param
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
"" "" ""
|
||||
).s!Posit ;
|
||||
VPassPerf =>
|
||||
( mkAdjective
|
||||
@@ -668,10 +739,27 @@ param
|
||||
Neutr )
|
||||
< \\_ => "" , "" >
|
||||
< \\_ => "" , "" >
|
||||
"" "" ""
|
||||
).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 =
|
||||
useEndingTable <"m", "s", "t", "mus", "tis", "nt"> ;
|
||||
|
||||
@@ -690,7 +778,7 @@ param
|
||||
}
|
||||
in
|
||||
(useEndingTable endings n p) + passPresEnding n p ;
|
||||
|
||||
|
||||
useEndingTable : (Str*Str*Str*Str*Str*Str) -> Number -> Person -> Str =
|
||||
\es,n,p -> case n 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
|
||||
|
||||
param
|
||||
@@ -717,15 +1009,31 @@ param
|
||||
-- PronIndef PronIndefUsage PronIndefPol PronIndefMeaning ;
|
||||
|
||||
oper
|
||||
|
||||
Pronoun : Type = {
|
||||
pers : PronDropForm => PronReflForm => Case => Str ;
|
||||
poss : PronReflForm => Agr => Str ;
|
||||
|
||||
PersonalPronoun = {
|
||||
s : PronDropForm => PronReflForm => Case => Str ;
|
||||
g : Gender ;
|
||||
n : Number ;
|
||||
p : Person ;
|
||||
n : Number
|
||||
} ;
|
||||
|
||||
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 : (_,_,_,_,_ : Str) -> Case => Str =
|
||||
\ego,me,mei,mihi,mee -> table Case [ego ; me ; mei ; mihi ; mee ; ego] ;
|
||||
@@ -839,90 +1147,170 @@ oper
|
||||
createPronouns g n p ;
|
||||
in
|
||||
{
|
||||
pers = prons.p1 ;
|
||||
poss = prons.p2 ;
|
||||
g = g ;
|
||||
n = n ;
|
||||
pers = { s = prons.p1 ; g = g ; n = n } ;
|
||||
poss = { s = prons.p2 } ;
|
||||
p = p
|
||||
} ;
|
||||
|
||||
-- prepositions
|
||||
|
||||
Preposition : Type = {s : Str ; c : Case} ;
|
||||
Preposition : Type = {s : Str ; c : Case ; isPost : Bool } ;
|
||||
|
||||
-- Bayer-Lindauer $149ff.
|
||||
about_P = lin Prep (mkPrep "de" Gen ) ; -- L...
|
||||
at_P = lin Prep (mkPrep "ad" Acc ) ; -- L...
|
||||
on_P = lin Prep ( mkPrep "ad" Gen ) ; -- L...
|
||||
to_P = lin Prep ( mkPrep "ad" Acc ) ; -- L...
|
||||
Gen_Prep = lin Prep ( mkPrep "" Gen ) ;
|
||||
Acc_Prep = lin Prep ( mkPrep "" Acc ) ;
|
||||
Dat_Prep = lin Prep ( mkPrep "" Dat ) ;
|
||||
Abl_Prep = lin Prep ( mkPrep "" Abl ) ;
|
||||
|
||||
VPSlash = VerbPhrase ** {c2 : Preposition} ;
|
||||
-- conjunctions
|
||||
param Coordinator = And | Or | If | Neither | Because | Comma | Colon | Empty ;
|
||||
oper
|
||||
Conjunction : Type = { s1 : Str ; s2 : Str ; n : Number ; c : Coordinator };
|
||||
mkConjunction : Str -> Str -> Number -> Coordinator -> Conjunction = \s1,s2,num,coord -> { s1 = s1; s2 = s2 ; n = num ; c = coord } ;
|
||||
|
||||
VPSlash = VerbPhrase ** {c : Preposition} ;
|
||||
|
||||
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 ;
|
||||
obj = [] ;
|
||||
adj = \\a => []
|
||||
compl = \\a => [] ;
|
||||
adv = ""
|
||||
} ;
|
||||
|
||||
predV2 : Verb2 -> VPSlash = \v ->
|
||||
predV v ** {c2 = v.c} ;
|
||||
predV v ** {c = v.c} ;
|
||||
|
||||
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 ;
|
||||
|
||||
insertObj : Str -> VerbPhrase -> VerbPhrase = \obj,vp -> {
|
||||
fin = vp.fin ;
|
||||
insertObj : NounPhrase -> Preposition -> VerbPhrase -> VerbPhrase = \np,prep,vp -> {
|
||||
s = vp.s ;
|
||||
part = vp.part ;
|
||||
imp = vp.imp ;
|
||||
inf = vp.inf ;
|
||||
obj = obj ++ vp.obj ;
|
||||
adj = vp.adj
|
||||
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 ;
|
||||
compl = vp.compl ;
|
||||
adv = vp.adv ++ np.adv
|
||||
} ;
|
||||
|
||||
insertObjc: Str -> VPSlash -> VPSlash = \obj,vp -> {
|
||||
fin = vp.fin ;
|
||||
insertObjc: NounPhrase -> VPSlash -> VPSlash = \np,vp -> {
|
||||
s = vp.s ;
|
||||
part = vp.part ;
|
||||
imp = vp.imp ;
|
||||
inf = vp.inf ;
|
||||
obj = obj ++ vp.obj ;
|
||||
adj = vp.adj ;
|
||||
c2 = vp.c2
|
||||
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 ;
|
||||
compl = vp.compl ;
|
||||
c = vp.c ;
|
||||
adv = vp.adv ++ np.adv
|
||||
} ;
|
||||
|
||||
insertAdj : (Agr => Str) -> VerbPhrase -> VerbPhrase = \adj,vp -> {
|
||||
fin = vp.fin ;
|
||||
s = vp.s ;
|
||||
part = vp.part ;
|
||||
imp = vp.imp ;
|
||||
inf = vp.inf ;
|
||||
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
|
||||
Clause = {s : Tense => Anteriority => Polarity => VQForm => Order => Str} ;
|
||||
QClause = {s : Tense => Anteriority => Polarity => QForm => Str} ;
|
||||
Sentence =
|
||||
{
|
||||
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 -> {
|
||||
s = \\tense,anter,pol,vqf,order => case order of {
|
||||
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 ;
|
||||
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 ;
|
||||
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 ;
|
||||
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 ;
|
||||
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 ;
|
||||
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
|
||||
}
|
||||
-- np.s ! Nom ++ vp.obj ++ vp.adj ! np.g ! np.n ++ negation p ++ vp.fin ! VAct a t np.n np.p
|
||||
mkClause : NounPhrase -> VerbPhrase -> Clause = \np,vp ->
|
||||
let
|
||||
-- combines adverbs from noun phrase and verb phrase
|
||||
adv = np.adv ++ vp.adv ;
|
||||
-- helper functions to either place the adverb in the designated position
|
||||
-- or an empty string instead
|
||||
pres : AdvPos -> Str = \ap -> case ap of { PreS => adv ; _ => [] } ;
|
||||
prev : AdvPos -> Str = \ap -> case ap of { PreV => adv ; _ => [] } ;
|
||||
preo : AdvPos -> Str = \ap -> case ap of { PreO => adv ; _ => [] } ;
|
||||
preneg : AdvPos -> Str = \ap -> case ap of { PreNeg => adv ; _ => [] } ;
|
||||
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
|
||||
mkQuestion : SS -> Clause -> QClause = \ss,cl -> {
|
||||
s = \\tense,anter,pol,form => case form of {
|
||||
QDir => ss.s ++ cl.s ! tense ! anter ! pol ! VQFalse ! OVS;
|
||||
QIndir => ss.s ++ cl.s ! tense ! anter ! pol ! VQFalse ! OSV
|
||||
}
|
||||
} ;
|
||||
s = \\tense,anter,pol,form => case form of {
|
||||
QDir => ss.s ++ (combineSentence (combineClause cl tense anter pol VQFalse)) ! SPreS ! PreS ! OVS ;
|
||||
QIndir => ss.s ++ (combineSentence (combineClause cl tense anter pol VQFalse)) ! SPreO ! PreO ! OSV
|
||||
}
|
||||
};
|
||||
|
||||
negation : Polarity -> Str = \p -> case p of {
|
||||
Pos => [] ;
|
||||
@@ -932,7 +1320,7 @@ oper
|
||||
-- determiners
|
||||
|
||||
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
|
||||
} ;
|
||||
|
||||
@@ -940,6 +1328,7 @@ oper
|
||||
{
|
||||
n = n ;
|
||||
s = \\g,c => a.s ! Posit ! Ag g n c ;
|
||||
sp = \\_,_ => ""
|
||||
} ;
|
||||
|
||||
Quantifier : Type = {
|
||||
@@ -985,11 +1374,62 @@ oper
|
||||
"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
|
||||
Unit = one | ten | hundred | thousand | ten_thousand | hundred_thousand ;
|
||||
-- adverbs
|
||||
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
|
||||
--
|
||||
UseCl t p cl = -- Temp -> Pol-> Cl -> S
|
||||
{
|
||||
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! VQFalse ! SOV
|
||||
} ;
|
||||
UseQCl t p cl = {
|
||||
s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
|
||||
} ;
|
||||
(combineClause cl (lin Tense t) t.a (lin Pol p) VQFalse) ;
|
||||
|
||||
-- TO FIX
|
||||
--UseQCl t p cl =
|
||||
-- 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 = {
|
||||
-- s = \\r => t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! r ;
|
||||
-- c = cl.c
|
||||
@@ -60,11 +61,13 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in {
|
||||
-- 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.
|
||||
-- SSubjS : S -> Subj -> S -> S ; -- I go home if she comes
|
||||
SSubjS s1 subj s2 = ss ( subj.s ++ s2.s ++ s1.s );
|
||||
-- SSubjS : S -> Subj -> S -> S ; -- I go home if she comes
|
||||
-- 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} ;
|
||||
--
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete StructuralLat of Structural = CatLat **
|
||||
open ResLat, ParadigmsLat, Prelude, IrregLat, ConstructX in
|
||||
concrete StructuralLat of Structural = CatLat **
|
||||
open ResLat, ParadigmsLat, Prelude, IrregLat, (C=ConstructX) in
|
||||
{
|
||||
|
||||
flags optimize=all ;
|
||||
@@ -11,68 +11,68 @@ concrete StructuralLat of Structural = CatLat **
|
||||
almost_AdA, almost_AdN = ss "quasi" ; -- L...
|
||||
although_Subj = ss "quamquam" ; -- 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} ;
|
||||
because_Subj = ss "cum" ; -- L...
|
||||
before_Prep = mkPrep "ante" Acc ; -- acc. L...
|
||||
behind_Prep = mkPrep "a tergo" 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...
|
||||
by8agent_Prep = mkPrep "per" Abl ; -- L...
|
||||
by8means_Prep = Abl_Prep ; -- L...
|
||||
can8know_VV, can_VV = IrregLat.can_VV ; --L...
|
||||
by8means_Prep = mkPrep "" Abl ; -- L...
|
||||
can8know_VV, can_VV = mkVV IrregLat.can_V True ; --L...
|
||||
during_Prep = mkPrep "inter" Acc ; -- L...
|
||||
either7or_DConj = sd2 "aut" "aut" ** {n = Sg} ; -- L...
|
||||
everybody_NP = regNP "quisque" "quemque" "cuiusque" "cuique" "quoque" "quisque" ( Masc | Fem ) Sg ;-- regNP "quisquae" Sg ; -- L...
|
||||
either7or_DConj = mkConj "aut" "aut" Sg Or ; -- L...
|
||||
everybody_NP = regNP "quisque" "quemque" "cuiusque" "cuique" "quoque" "quisque" Masc Sg ;-- regNP "quisquae" Sg ; -- L...
|
||||
every_Det = mkDeterminer ( mkA "omnis" ) Pl ; -- Pons
|
||||
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...
|
||||
----- first_Ord = ss "first" ; DEPRECATED
|
||||
for_Prep = mkPrep "pro" Abl ; -- abl. L...
|
||||
from_Prep = mkPrep "de" Abl ; -- abl. L...
|
||||
he_Pron = mkPronoun Masc Sg P3 ;
|
||||
here_Adv = ss "hic" ; -- L...
|
||||
here7to_Adv = ss "huc" ; -- L...
|
||||
here7from_Adv = ss "hinc" ; -- L...
|
||||
here_Adv = mkAdv "hic" ; -- L...
|
||||
here7to_Adv = mkAdv "huc" ; -- L...
|
||||
here7from_Adv = mkAdv "hinc" ; -- L...
|
||||
how_IAdv = ss "qui" ; -- L...
|
||||
how8many_IDet = mkDeterminer (mkA "quantus" ) Pl ; -- Pons
|
||||
how8much_IAdv = ss "quantum" ; -- L...
|
||||
if_Subj = ss "si" ; -- L...
|
||||
in8front_Prep = mkPrep "ante" Acc ; -- acc. L...
|
||||
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 ;
|
||||
less_CAdv = mkCAdv "minus" "quam" ; -- L...
|
||||
less_CAdv = C.mkCAdv "minus" "quam" ; -- 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...
|
||||
much_Det = mkDeterminer ( mkA "multus" ) Sg ; -- L...
|
||||
must_VV = mkVV ( mkV "debere" ) True ; -- L...
|
||||
-----b no_Phr = ss "immo" ;
|
||||
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
|
||||
only_Predet = ss "solum" ; -- L...
|
||||
or_Conj = sd2 [] "aut" ** {n = Sg} ; -- L...
|
||||
or_Conj = mkConj [] "aut" Sg Or ; -- L...
|
||||
otherwise_PConj = ss "praeterea" ; -- Pons
|
||||
part_Prep = mkPrep [] Gen ; -- Bayer-Lindauer 127
|
||||
please_Voc = ss "queso" ; -- L...
|
||||
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 ;
|
||||
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...
|
||||
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
|
||||
somewhere_Adv = ss "usquam" ; -- L...
|
||||
somewhere_Adv = mkAdv "usquam" ; -- L...
|
||||
that_Quant = ille_Quantifier ;
|
||||
that_Subj = ss "ut" ; -- L...
|
||||
there_Adv = ss "ibi" ; -- loc. L...
|
||||
there7to_Adv = ss "eo" ; -- Pons
|
||||
there7from_Adv = ss "inde" ; -- Pons
|
||||
there_Adv = mkAdv "ibi" ; -- loc. L...
|
||||
there7to_Adv = mkAdv "eo" ; -- Pons
|
||||
there7from_Adv = mkAdv "inde" ; -- Pons
|
||||
therefore_PConj = ss "ergo" ; -- L...
|
||||
they_Pron = mkPronoun Masc Pl P3 ;
|
||||
this_Quant = hic_Quantifier ;
|
||||
@@ -109,18 +109,18 @@ concrete StructuralLat of Structural = CatLat **
|
||||
yes_Utt = ss "sane" ; -- L...
|
||||
youSg_Pron = mkPronoun Masc Sg 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...
|
||||
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_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
|
||||
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)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
--# -path=.:../abstract:../common
|
||||
|
||||
concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat in {
|
||||
--
|
||||
--lin
|
||||
-- SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
-- IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
-- FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
-- NumPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat, ParadigmsLat, TenseX in {
|
||||
|
||||
lin
|
||||
SymbPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||
IntPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||
FloatPN i = {s = \\n,c => i.s ; g = Neutr} ; --- c
|
||||
NumPN i = {s = \\n,c => i.s ! Neutr ! c; g = Neutr} ; --- c
|
||||
-- CNIntNP cn i = {
|
||||
-- s = \\c => (cn.s ! Sg ! Nom ++ i.s) ;
|
||||
-- a = agrgP3 Sg cn.g
|
||||
@@ -20,20 +20,17 @@ concrete SymbolLat of Symbol = CatLat ** open Prelude, ResLat in {
|
||||
-- a = agrgP3 Sg cn.g
|
||||
-- } ;
|
||||
--
|
||||
-- SymbS sy = sy ;
|
||||
--
|
||||
-- SymbNum sy = {s = sy.s ; n = Pl ; hasCard = True} ;
|
||||
-- SymbOrd sy = {s = sy.s ++ "th"} ;
|
||||
--
|
||||
--lincat
|
||||
--
|
||||
-- Symb, [Symb] = SS ;
|
||||
--
|
||||
--lin
|
||||
--
|
||||
-- MkSymb s = s ;
|
||||
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 = \\g,n,c => sy.s } ; -- does not inflect properly
|
||||
|
||||
lincat
|
||||
Symb, [Symb] = SS ;
|
||||
|
||||
lin
|
||||
MkSymb s = s ;
|
||||
|
||||
-- BaseSymb = infixSS "and" ;
|
||||
-- ConsSymb = infixSS "," ;
|
||||
--
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--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 ;
|
||||
|
||||
@@ -11,88 +11,107 @@ concrete VerbLat of Verb = CatLat ** open (S=StructuralLat),ResLat,IrregLat in {
|
||||
|
||||
-- ComplVV : VV -> VP -> VP ; -- want to run
|
||||
ComplVV v vp =
|
||||
{
|
||||
fin = vp.fin ;
|
||||
inf = v.inf ;
|
||||
obj = vp.obj ;
|
||||
adj = vp.adj
|
||||
};
|
||||
vp ** {
|
||||
s = \\af,qf => v.act ! af ;
|
||||
compl = \\ag => vp.compl ! ag ++ vp.inf ! VInfActPres
|
||||
} ;
|
||||
|
||||
-- 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 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 v ap = (predV v) ** { adj = ap.s } ;
|
||||
ComplVA v ap = (predV v) ** { compl = ap.s } ;
|
||||
|
||||
-- SlashV2a : V2 -> VPSlash ; -- love (it)
|
||||
SlashV2a v = lin VP (predV2 v) ;
|
||||
|
||||
-- Slash2V3 v np =
|
||||
-- insertObjc (\\_ => v.c2 ++ np.s ! Acc) (predV v ** {c2 = v.c3}) ;
|
||||
-- Slash2V3 : V3 -> NP -> VPSlash ; -- give it (to her)
|
||||
Slash2V3 v np = lin VP (insertObjc np (predV3 v ** { c = v.c2 } ) );
|
||||
|
||||
-- Slash3V3 : V3 -> NP -> VPSlash ; -- give (it) to her
|
||||
Slash3V3 v np =
|
||||
lin VP ( insertObjc ( v.c2.s ++ np.s ! v.c2.c ) ( predV3 v ) ) ;
|
||||
Slash3V3 v np = lin VP ( insertObjc np ( predV3 v ** { c = v.c} ) ) ;
|
||||
|
||||
-- SlashV2V : V2V -> VP -> VPSlash ; -- beg (her) to go
|
||||
-- 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) ;
|
||||
|
||||
-- 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 v ap = lin VP ( (predV2 v) ** { adj = ap.s } ) ;
|
||||
|
||||
-- ComplSlash : VPSlash -> NP -> VP ; -- love it
|
||||
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 =
|
||||
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
|
||||
-- {c2 = vp.c2} ;
|
||||
|
||||
-- SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
|
||||
-- SlashV2VNP vv np vp =
|
||||
-- insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
|
||||
-- (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
|
||||
-- {c2 = vp.c2} ;
|
||||
|
||||
--2 Other ways of forming verb phrases
|
||||
|
||||
|
||||
-- ReflVP : VPSlash -> VP ; -- love himself
|
||||
-- ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
|
||||
|
||||
-- UseComp : Comp -> VP
|
||||
-- UseComp : Comp -> VP ; -- be warm
|
||||
UseComp comp =
|
||||
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 = insertObj adv.s vp ;
|
||||
AdvVP vp adv = insertAdv 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 : AdV -> VPSlash -> VPSlash ; -- always use (it)
|
||||
|
||||
-- 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 vp = vp ** { adv = vp.adv ++ adv.s } ;
|
||||
|
||||
-- VPSlashPrep : VP -> Prep -> VPSlash ; -- live in (it)
|
||||
|
||||
--2 Complements to copula
|
||||
|
||||
-- CompAP : AP -> Comp
|
||||
-- CompAP : AP -> Comp ; -- (be) small
|
||||
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