Merge private git for latim grammar into official darcs.

See https://github.com/daherb/GF orhttps://gitlab.cip.ifi.lmu.de/langeh/gf 
for full git commit history
This commit is contained in:
Herbert Lange
2013-09-03 17:13:58 +00:00
parent d2ea52e0ec
commit 1f91d2287b
55 changed files with 52150 additions and 1606 deletions

View File

@@ -3,7 +3,10 @@ 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 = {
@@ -29,11 +32,14 @@ concrete AdjectiveLat of Adjective = CatLat ** open ResLat, Prelude in {
} ;
-}
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 = -- A2 -> AP
{
s = table { Ag g n c => a.s ! Posit ! Ag g n c } ;
} ;
-- UseA2 a = a ;
}

View File

@@ -1,6 +1,6 @@
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
@@ -9,7 +9,7 @@ concrete AdverbLat of Adverb = CatLat ** open ResLat, Prelude in {
-- 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 ;
--

View File

@@ -1,9 +0,0 @@
--# -path=.:../abstract:../common:prelude
abstract AllEngAbs =
Lang,
IrregEngAbs-[
blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V,
sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V],
ExtraEngAbs
** {} ;

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:prelude
concrete AllLat of AllLatAbs =
LangLat
-- ExtraLat
LangLat,
ExtraLat
** {} ;

View File

@@ -1 +1,9 @@
abstract AllLatAbs = Lang ;
--# -path=.:../abstract:../common:prelude
abstract AllLatAbs =
Lang,
IrregLatAbs-[
blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V,
sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V],
ExtraLatAbs
** {} ;

View File

@@ -6,27 +6,27 @@ concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
---- 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
--
@@ -38,20 +38,26 @@ concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
--
---- 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.ComplexNoun ;
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 ;
@@ -64,25 +70,22 @@ concrete CatLat of Cat = CommonX ** open ResLat, Prelude in {
---- 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} ;
}

View File

@@ -1,21 +1,19 @@
--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
--
@@ -32,9 +30,8 @@
-- 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
-- } ;
@@ -44,17 +41,17 @@
--
-- 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 } ;
--
--}
}

View File

@@ -1,16 +0,0 @@
abstract ExtraEngAbs = Extra ** {
-- uncontracted negations; contracted are the default
fun
UncNegCl : Tense -> Ant -> Cl -> S ;
UncNegQCl : Tense -> Ant -> QCl -> QS ;
UncNegRCl : Tense -> Ant -> RCl -> RS ;
UncNegImpSg : Imp -> Utt; -- do not help yourself
UncNegImpPl : Imp -> Utt; -- do not help yourselves
-- freely compounded nouns
CompoundCN : CN -> CN -> CN ; -- rock album
}

View File

@@ -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 ;
} ;
}

View File

@@ -0,0 +1,5 @@
abstract ExtraLatAbs = Extra ** {
fun
UsePronNonDrop : Pron -> NP ;
}

View File

@@ -10,10 +10,9 @@ concrete GrammarLat of Grammar =
-- QuestionLat,
-- RelativeLat,
-- ConjunctionLat,
-- PhraseLat,
PhraseLat,
TextX,
StructuralLat,
StructuralLat
-- IdiomLat
TenseX
** {
} ;

View File

@@ -1,176 +0,0 @@
abstract IrregEngAbs = Cat ** {
fun
awake_V : V ;
bear_V : V ;
beat_V : V ;
become_V : V ;
begin_V : V ;
bend_V : V ;
beset_V : V ;
bet_V : V ;
bid_V : V ;
bind_V : V ;
bite_V : V ;
bleed_V : V ;
blow_V : V ;
break_V : V ;
breed_V : V ;
bring_V : V ;
broadcast_V : V ;
build_V : V ;
burn_V : V ;
burst_V : V ;
buy_V : V ;
cast_V : V ;
catch_V : V ;
choose_V : V ;
cling_V : V ;
come_V : V ;
cost_V : V ;
creep_V : V ;
cut_V : V ;
deal_V : V ;
dig_V : V ;
dive_V : V ;
do_V : V ;
draw_V : V ;
dream_V : V ;
drive_V : V ;
drink_V : V ;
eat_V : V ;
fall_V : V ;
feed_V : V ;
feel_V : V ;
fight_V : V ;
find_V : V ;
fit_V : V ;
flee_V : V ;
fling_V : V ;
fly_V : V ;
forbid_V : V ;
forget_V : V ;
forgive_V : V ;
forsake_V : V ;
freeze_V : V ;
get_V : V ;
give_V : V ;
go_V : V ;
grind_V : V ;
grow_V : V ;
hang_V : V ;
have_V : V ;
hear_V : V ;
hide_V : V ;
hit_V : V ;
hold_V : V ;
hurt_V : V ;
keep_V : V ;
kneel_V : V ;
knit_V : V ;
know_V : V ;
lay_V : V ;
lead_V : V ;
leap_V : V ;
learn_V : V ;
leave_V : V ;
lend_V : V ;
let_V : V ;
lie_V : V ;
light_V : V ;
lose_V : V ;
make_V : V ;
mean_V : V ;
meet_V : V ;
misspell_V : V ;
mistake_V : V ;
mow_V : V ;
overcome_V : V ;
overdo_V : V ;
overtake_V : V ;
overthrow_V : V ;
pay_V : V ;
plead_V : V ;
prove_V : V ;
put_V : V ;
quit_V : V ;
read_V : V ;
rid_V : V ;
ride_V : V ;
ring_V : V ;
rise_V : V ;
run_V : V ;
saw_V : V ;
say_V : V ;
see_V : V ;
seek_V : V ;
sell_V : V ;
send_V : V ;
set_V : V ;
sew_V : V ;
shake_V : V ;
shave_V : V ;
shear_V : V ;
shed_V : V ;
shine_V : V ;
shoe_V : V ;
shoot_V : V ;
show_V : V ;
shrink_V : V ;
shut_V : V ;
sing_V : V ;
sink_V : V ;
sit_V : V ;
sleep_V : V ;
slay_V : V ;
slide_V : V ;
sling_V : V ;
slit_V : V ;
smite_V : V ;
sow_V : V ;
speak_V : V ;
speed_V : V ;
spend_V : V ;
spill_V : V ;
spin_V : V ;
spit_V : V ;
split_V : V ;
spread_V : V ;
spring_V : V ;
stand_V : V ;
steal_V : V ;
stick_V : V ;
sting_V : V ;
stink_V : V ;
stride_V : V ;
strike_V : V ;
string_V : V ;
strive_V : V ;
swear_V : V ;
sweep_V : V ;
swell_V : V ;
swim_V : V ;
swing_V : V ;
take_V : V ;
teach_V : V ;
tear_V : V ;
tell_V : V ;
think_V : V ;
thrive_V : V ;
throw_V : V ;
thrust_V : V ;
tread_V : V ;
understand_V : V ;
uphold_V : V ;
upset_V : V ;
wake_V : V ;
wear_V : V ;
weave_V : V ;
wed_V : V ;
weep_V : V ;
wind_V : V ;
win_V : V ;
withhold_V : V ;
withstand_V : V ;
wring_V : V ;
write_V : V ;
}

View File

@@ -1,181 +1,456 @@
----# -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
-- 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
} ;
}

View File

@@ -0,0 +1,11 @@
abstract IrregLatAbs = Cat ** {
fun
be_V : V ;
can_VV : VV ;
bring_V : V ;
want_V : V ;
go_V : V;
become_V : V;
rain_V : V;
hate_V : V;
}

View File

@@ -2,6 +2,8 @@
concrete LangLat of Lang =
GrammarLat,
ParadigmsLat,
ConjunctionLat,
LexiconLat
** {

View File

@@ -1,377 +1,393 @@
--# -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 or
-- a link to an online source. The two used printed dictionaries are
-- Langescheidts Schulwörterbuch Lateinisch 17. Edition 1984 (shorter:
-- Langenscheidts) and Der kleine Stowasser 3. Edition 1991 (shorter:
-- Stowasser)
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, 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 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 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 = pluralN (mkN "litera" ) ; -- only pl. (Langenscheidts)
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 (mkV ( variants { "exstinguere" ; "extinguere" } ) ); -- -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 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" ;
}

View File

@@ -1,197 +1,621 @@
----# -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 ( reg + "is" ) ( 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 ( art + "is" ) ( 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; -- L...
< ( "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" > => 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 + "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)
} ;
}

View File

@@ -1,16 +1,25 @@
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
@@ -38,15 +47,15 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
-- } ;
--
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 ;
@@ -69,30 +78,26 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
-- 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
-- } ;
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 ;
@@ -113,9 +118,20 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
-- 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 = {
@@ -123,7 +139,7 @@ concrete NounLat of Noun = CatLat ** open ResLat, Prelude in {
-- 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} ;
--

View File

@@ -1,8 +1,8 @@
--# -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
@@ -15,6 +15,7 @@ resource ParadigmsLat = open
(Predef=Predef),
Prelude,
ResLat,
MorphoLat,
CatLat
in {
@@ -29,37 +30,73 @@ oper
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 ;
}

View File

@@ -1,10 +1,10 @@
--concrete PhraseLat of Phrase = CatLat ** open Prelude, ResLat in {
--
-- lin
-- PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
--
-- UttS s = s ;
-- UttQS qs = {s = qs.s ! QDir} ;
concrete PhraseLat of Phrase = CatLat ** open Prelude, ResLat in {
lin
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
--
UttS s = lin Utt s ; -- S -> Utt
UttQS qs = {s = qs.s ! QDir} ;
-- 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} ;
@@ -15,10 +15,10 @@
-- UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
-- UttAdv adv = adv ;
--
-- NoPConj = {s = []} ;
-- PConjConj conj = {s = conj.s2} ; ---
NoPConj = {s = []} ;
PConjConj conj = {s = conj.s2} ; ---
--
-- NoVoc = {s = []} ;
-- VocNP np = {s = "," ++ np.s ! Nom} ;
NoVoc = {s = []} ;
VocNP np = {s = "," ++ np.s ! Voc} ;
--
--}
}

54
lib/src/latin/README.hl Normal file
View File

@@ -0,0 +1,54 @@
Woher bekommt man svn? (svn = Subversion) http://www.tigris.org
Wie benutzt man svn?
svn --help
Aufruf: svn <Unterbefehl> [Optionen] [Parameter]
Subversion-Kommandozeilenclient, Version 1.6.17.
Geben Sie »svn help <Unterbefehl>« ein, um Hilfe zu einem Unterbefehl
zu erhalten.
Geben Sie »svn --version« ein, um die Programmversion und die Zugriffsmodule
oder »svn --version --quiet«, um nur die Versionsnummer zu sehen.
Die meisten Unterbefehle akzeptieren Datei- und/oder Verzeichnisparameter,
wobei die Verzeichnisse rekursiv durchlaufen werden. Wenn keine Parameter
angegeben werden, durchläuft der Befehl das aktuelle Verzeichnis rekursiv.
Verfügbare Unterbefehle:
add
blame (praise, annotate, ann)
cat
changelist (cl)
checkout (co)
cleanup
commit (ci)
copy (cp)
delete (del, remove, rm)
diff (di)
export
help (?, h)
import
info
list (ls)
lock
log
merge
mergeinfo
mkdir
move (mv, rename, ren)
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
resolve
resolved
revert
status (stat, st)
switch (sw)
unlock
update (up)
Subversion ist ein Programm zur Versionskontrolle.
Für weitere Informationen, siehe: http://subversion.tigris.org/
leiss@braunkappe:~/kochrezepte (0) [9:44:06] %

4
lib/src/latin/README.md Normal file
View File

@@ -0,0 +1,4 @@
GF-latin
========
The latin part of the GF Ressource library

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,21 @@
concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in {
concrete SentenceLat of Sentence = CatLat,TenseX ** open Prelude, ResLat in {
flags optimize=all_subs ;
lin
PredVP = mkClause ;
PredVP np vp = -- NP -> VP -> Cl
{
s = \\tense,anter,pol,order =>
case order of {
SVO => np.s ! Nom ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ++ vp.obj ;
VSO => negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ++ 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 ++ 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 ;
OVS => vp.obj ++ negation pol ++ vp.adj ! Ag np.g Sg Nom ++ vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ++ 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
}
} ;
--
-- PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
--
@@ -41,9 +52,10 @@ concrete SentenceLat of Sentence = CatLat ** open Prelude, ResLat in {
-- EmbedQS qs = {s = qs.s ! QIndir} ;
-- EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
--
-- UseCl t p cl = {
-- s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! ODir
-- } ;
UseCl t p cl = -- Temp -> Pol-> Cl -> S
{
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! SOV
} ;
-- UseQCl t p cl = {
-- s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! q
-- } ;

View File

@@ -1,128 +1,130 @@
concrete StructuralLat of Structural = CatLat **
open ResLat, (P = ParadigmsLat), Prelude in
open ResLat, ParadigmsLat, Prelude, IrregLat, ConstructX in
{
flags optimize=all ;
lin
above_Prep = mkPrep "super" Acc ;
after_Prep = mkPrep "post" Acc ;
-- all_Predet = ss "all" ;
almost_AdA, almost_AdN = ss "quasi" ;
-- although_Subj = ss "although" ;
always_AdV = ss "semper" ;
-- and_Conj = sd2 [] "and" ** {n = Pl} ;
above_Prep = mkPrep "super" Abl ; -- abl. L...
after_Prep = mkPrep "post" Acc ; -- acc. L...
all_Predet = ss "cuncti" ; -- L...
almost_AdA, almost_AdN = ss "quasi" ; -- L...
although_Subj = ss "quamquam" ; -- L...
always_AdV = ss "semper" ; -- L...
and_Conj = sd2 [] "et" ** {n = Pl} ; -- L...
-----b and_Conj = ss "and" ** {n = Pl} ;
-- because_Subj = ss "because" ;
before_Prep = mkPrep "ante" Acc ;
-- behind_Prep = ss "behind" ;
between_Prep = mkPrep "inter" Acc ;
-- both7and_DConj = sd2 "both" "and" ** {n = Pl} ;
but_PConj = ss "sed" ;
by8agent_Prep = mkPrep "a" Abl ;
by8means_Prep = mkPrep "per" Acc ;
-- can8know_VV, can_VV = {
-- s = table {
-- VVF VInf => ["be able to"] ;
-- VVF VPres => "can" ;
-- VVF VPPart => ["been able to"] ;
-- VVF VPresPart => ["being able to"] ;
-- VVF VPast => "could" ; --# notpresent
-- VVPastNeg => "couldn't" ; --# notpresent
-- VVPresNeg => "can't"
-- } ;
-- isAux = True
-- } ;
-- during_Prep = ss "during" ;
-- either7or_DConj = sd2 "either" "or" ** {n = Sg} ;
-- everybody_NP = regNP "everybody" Sg ;
-- every_Det = mkDeterminer Sg "every" ;
-- everything_NP = regNP "everything" Sg ;
-- everywhere_Adv = ss "everywhere" ;
-- few_Det = mkDeterminer Pl "few" ;
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...
but_PConj = ss "sed" ; -- L...
by8agent_Prep = mkPrep "per" Abl ; -- L...
by8means_Prep = Abl_Prep ; -- L...
can8know_VV, can_VV = IrregLat.can_VV ; --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...
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...
few_Det = mkDeterminer ( mkA "paulus" ) Pl ; -- L...
----- first_Ord = ss "first" ; DEPRECATED
for_Prep = mkPrep "pro" Abl ;
from_Prep = mkPrep "de" Abl ;
he_Pron = personalPronoun Masc Sg P3 ;
here_Adv = ss "hic" ;
-- here7to_Adv = ss ["to here"] ;
-- here7from_Adv = ss ["from here"] ;
-- how_IAdv = ss "how" ;
-- how8many_IDet = mkDeterminer Pl ["how many"] ;
-- if_Subj = ss "if" ;
in8front_Prep = mkPrep "coram" Abl ;
i_Pron = personalPronoun Masc Sg P1 ;
in_Prep = mkPrep "in" Abl ;
it_Pron = personalPronoun Neutr Sg P3 ;
-- less_CAdv = ss "less" ;
-- many_Det = mkDeterminer Pl "many" ;
-- more_CAdv = ss "more" ;
-- most_Predet = ss "most" ;
-- much_Det = mkDeterminer Sg "much" ;
-- must_VV = {
-- s = table {
-- VVF VInf => ["have to"] ;
-- VVF VPres => "must" ;
-- VVF VPPart => ["had to"] ;
-- VVF VPresPart => ["having to"] ;
-- VVF VPast => ["had to"] ; --# notpresent
-- VVPastNeg => ["hadn't to"] ; --# notpresent
-- VVPresNeg => "mustn't"
-- } ;
-- isAux = True
-- } ;
-----b no_Phr = ss "no" ;
no_Utt = ss "non" ;
-- on_Prep = ss "on" ;
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...
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...
it_Pron = mkPronoun Neutr Sg P3 ;
less_CAdv = mkCAdv "minus" "quam" ; -- L...
many_Det = mkDeterminer ( mkA "multus" ) Pl ; -- L...
more_CAdv = 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...
------ one_Quant = mkDeterminer Sg "one" ; -- DEPRECATED
only_Predet = ss "tantum" ;
-- or_Conj = sd2 [] "or" ** {n = Sg} ;
-- otherwise_PConj = ss "otherwise" ;
part_Prep = mkPrep [] Gen ;
-- please_Voc = ss "please" ;
possess_Prep = mkPrep [] Gen ;
-- quite_Adv = ss "quite" ;
she_Pron = personalPronoun Fem Sg P3 ;
so_AdA = ss "sic" ;
-- somebody_NP = regNP "somebody" Sg ;
-- someSg_Det = mkDeterminer Sg "some" ;
-- somePl_Det = mkDeterminer Pl "some" ;
-- something_NP = regNP "something" Sg ;
-- somewhere_Adv = ss "somewhere" ;
only_Predet = ss "solum" ; -- L...
or_Conj = sd2 [] "aut" ** {n = Sg} ; -- 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...
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
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...
that_Quant = ille_Quantifier ;
-- there_Adv = ss "there" ;
-- there7to_Adv = ss "there" ;
-- there7from_Adv = ss ["from there"] ;
-- therefore_PConj = ss "therefore" ;
they_Pron = personalPronoun Masc Pl P3 ;
that_Subj = ss "ut" ; -- L...
there_Adv = ss "ibi" ; -- loc. L...
there7to_Adv = ss "eo" ; -- Pons
there7from_Adv = ss "inde" ; -- Pons
therefore_PConj = ss "ergo" ; -- L...
they_Pron = mkPronoun Masc Pl P3 ;
this_Quant = hic_Quantifier ;
-- through_Prep = ss "through" ;
-- too_AdA = ss "too" ;
-- to_Prep = ss "to" ;
under_Prep = mkPrep "sub" Acc ;
very_AdA = ss "valde" ;
-- want_VV = P.mkVV (P.regV "want") ;
we_Pron = personalPronoun Masc Pl P1 ;
-- whatPl_IP = mkIP "what" "what" "what's" Pl ;
-- whatSg_IP = mkIP "what" "what" "what's" Sg ;
-- when_IAdv = ss "when" ;
-- when_Subj = ss "when" ;
-- where_IAdv = ss "where" ;
-- which_IQuant = {s = \\_ => "which"} ;
through_Prep = mkPrep "per" Acc ; -- L...
too_AdA = ss "quoque" ; -- L...
to_Prep = mkPrep "ad" Acc; -- L...
under_Prep = mkPrep "sub" Acc ; -- L...
very_AdA = ss "valde" ; -- L...
want_VV = mkVV IrregLat.want_V True ; -- L...
we_Pron = mkPronoun Masc Pl P1 ;
whatSg_IP = { s =pronForms "quid" "quid" "cuius" "cui" "quo" ; n = Sg } ; -- only feminine or masculine Bayer-Lindauer 59.1
whatPl_IP = { s = \\_ => "" ; n = Pl } ; -- no plural forms Bayer-Lindauer 59.1
when_IAdv = ss "quando" ; -- L...
when_Subj = ss "si" ; -- L...
where_IAdv = ss "ubi" ; -- L...
which_IQuant = -- Bayer-Lindauer 59.1.2 and 58.1
{ s = table {
Ag Masc Sg c => ( pronForms "qui" "quem" "cuius" "cui" "quo" ) ! c ;
Ag Masc Pl c => ( pronForms "qui" "quos" "quorum" "quibus" "quibus" ) ! c ;
Ag Fem Sg c => ( pronForms "quae" "quam" "cuius" "cui" "qua" ) ! c ;
Ag Fem Pl c => ( pronForms "quae" "quas" "quarum" "quibus" "quibus" ) ! c ;
Ag Neutr Sg c => ( pronForms "quod" "quod" "cuius" "cui" "quo" ) ! c ;
Ag Neutr Pl c => ( pronForms "quae" "quae" "quorum" "quibus" "quibus" ) ! c
}
} ;
-----b whichPl_IDet = mkDeterminer Pl ["which"] ;
-----b whichSg_IDet = mkDeterminer Sg ["which"] ;
-- whoPl_IP = mkIP "who" "whom" "whose" Pl ;
-- whoSg_IP = mkIP "who" "whom" "whose" Sg ;
-- why_IAdv = ss "why" ;
without_Prep = mkPrep "sine" Abl ;
with_Prep = mkPrep "cum" Abl ;
yes_Utt = ss "sic" ;
youSg_Pron = personalPronoun Masc Sg P2 ;
youPl_Pron = personalPronoun Masc Pl P2 ;
youPol_Pron = personalPronoun Masc Sg P2 ;
whoSg_IP = { s =pronForms "quis" "quem" "cuius" "cui" "quo" ; n = Sg } ; -- only feminine or masculine Bayer-Lindauer 59.1
whoPl_IP = { s = \\_ => "" ; n = Pl } ; -- no plural forms Bayer-Lindauer 59.1
lin language_title_Utt = ss "latina" ;
why_IAdv = ss "cur" ; -- L...
without_Prep = mkPrep "sine" Abl ; -- abl. L..
with_Prep = mkPrep "cum" Abl ; -- abl. L..
yes_Utt = ss "sane" ; -- L...
youSg_Pron = mkPronoun Masc Sg P2 ;
youPl_Pron = mkPronoun Masc Pl P2 ;
youPol_Pron = youSg_Pron | youPl_Pron ;
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...
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
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 ...
have_V2 = mkV2 (mkV "habere") ; -- habeo, -ui, -itum 2 (Langenscheidts)
lin language_title_Utt = ss "lingua latina" ;
}

View File

@@ -1,4 +1,4 @@
concrete VerbLat of Verb = CatLat ** open ResLat in {
concrete VerbLat of Verb = CatLat ** open ResLat,IrregLat in {
flags optimize=all_subs ;
@@ -21,7 +21,8 @@ concrete VerbLat of Verb = CatLat ** open ResLat in {
-- SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
-- SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
--
ComplSlash vp np = insertObj (appPrep vp.c2 np.s) vp ;
ComplSlash vp np = -- VPSlash -> NP -> VP
insertObj (appPrep vp.c2 np.s) vp ;
--
-- SlashVV vv vp =
-- insertObj (\\a => infVP vv.isAux vp a) (predVV vv) **
@@ -31,11 +32,12 @@ concrete VerbLat of Verb = CatLat ** open ResLat in {
-- (insertObjc (\\a => infVP vv.isAux vp a) (predVc vv)) **
-- {c2 = vp.c2} ;
--
UseComp comp = insertAdj comp.s (predV esse_V) ;
UseComp comp = -- Comp -> VP
insertAdj comp.s (predV be_V) ;
AdvVP vp adv = insertObj adv.s vp ;
-- AdvVP vp adv = insertObj adv.s vp ;
AdVVP adv vp = insertObj adv.s vp ;
-- AdVVP adv vp = insertObj adv.s vp ;
-- ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ;
--

View File

@@ -0,0 +1,33 @@
Herbert Lange, Matr. 8063320
Thema: Implementierung einer Grammatik des Lateinischen im "Grammatical Framework"
Anmeldung zur Magisterprüfung: 12.3.-13.3. bzw. 19.3.-21.3.2013
Abgabetermin: ?? September 2013 (6 Monate)
Fr. 10.5.2013, 15.15 - 17.10
----------------------------
Morphologie und Lexicon: vorhanden 3-4 Woerter von Ranta
Lateinlexikon: aus lateinischem Wikipedia la.wikipedia.org (Ebbe
Viborg, svensk-latinska ordbook, 2009)
Plan: Archiv anlegen (Lange): git clone https://github.com/daherb/GF.git
Problem:
Nomen, die im Latein NPs sind: camera_N = machina photographica
grob:
lin camera_N = let n = machina_N
a = photographica_A (: ResLat.NP)
in mkN {s : \\form => n.form ++ a.form } ;
lin antiquus_A = let anitiq_simpl = ...
in { s : AF gen Sg Nom => antiq_simpl.<Sg Nom> ; ..}
Bisher sind die Lexikoneintraege laut Lexika geschrieben, aber die
darunteliegenden Paradigmenfunktionen fehlen noch! Auch die Kasus und
Präpositionen der Objekte sind bei den V2,V3-Einträgen noch Defaults.
Tip: erst Nomen-, dann Adjektivdeklinationen machen; regelmäßige Fälle

View File

@@ -0,0 +1,39 @@
@grammar{BAYER-LINDAUER1994,
title = {Lateinische Grammatik},
editor = {Karl Bayer, Josef Lindauer},
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}
}
@dictionary{LANGENSCHEIDT1981,
title = {Langenscheidts Schulw"orterbuch Lateinisch},
subtitle = {Lateinisch-Deutsch Deutsch-Latein},
edition = {14. Auflage},
editor = {Dr. Erich Pertsch, Dr. Ernst Erwin Lange-Kowal},
publisher = {Langenscheidt},
year = {1981},
city = {Berlin, M"uenchen, Wien, Z"urich}
}
@dictionary{PONS2012,
title = {Sch"ulerw"orterbuch Latein},
editor = {Anette Dralle, Walther Federking, Gregor Vetter},
publisher = {PONS GmbH},
year = {2012},
city = {Stuttgart},
subtitle = {Latein-Deutsch und Deutsch-Latein},
edition = {1. Auflage}
}
@book{RANTA2011,
author = {Aaarne Ranta},
title = {Grammatical Framework},
publisher = {CSLL Studies in Computational Linguistics},
year = {2011},
subtitle = {Programming with Multilingual Grammars},
city = {Stanford, California}
}

Binary file not shown.

View 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}

Binary file not shown.

View File

@@ -0,0 +1,152 @@
\documentclass[draft,11pt]{scrartcl}
%\usepackage[utf8]{inputenc}
\usepackage[onehalfspacing]{setspace}
\usepackage[ngerman]{babel}
\usepackage{fontspec}
\usepackage[a4paper, left=3cm, right=3cm, top=3cm]{geometry}
\usepackage{amsmath}
\usepackage{qtree}
\usepackage{listings}
\usepackage{floatrow}
\usepackage{capt-of}
\floatstyle{plain}
\newfloat{program}{thp}{lop}
\floatname{program}{Beispiel}
\lstdefinelanguage{gf}
{
morekeywords={abstract, flags, cat, fun, concrete, of, lincat, lin},
sensitive=false,
morecomment=[l]{--},
morestring=[b]"
}
\lstset{language=gf}
\begin{document}
\setcounter{tocdepth}{3}
\date{30.9.2013}
\makeatletter
\begin{titlepage}
\begin{center}
\vspace{4cm}
\begin{huge}
Hausarbeit \\
zur Erlangung des Magistergrades \\
an der Ludwig-Maximilians-Universität München
\end{huge} \\[3cm]
{\Huge Erstellen einer Lateingrammatik im Grammatical Framework} \\[6cm]
{\LARGE vorgelegt von Herbert Lange} \\[5cm]
\end{center}
\parindent0mm
\begin{huge}
Fach: Computerlinguistik \\[0.3cm]
Referent: Prof. Dr. Klaus U. Schulz \\[0.3cm]
München, den \@date
\end{huge}
\end{titlepage}
\makeatother
\tableofcontents
\pagebreak
\section{Einleitung}
\subsection{Motivation}
So mancher, der den Titel dieser Arbeit liest, wird sich wundern, warum man in der heutigen Zeit eine computergestützte Grammatik gerade für eine tote Sprache wie Latein entwickeln will. Doch die konkrete Sprache, die umgesetzt werden sollte, war bei der Wahl des Themas zunächst zweitrangig. Die Intention hinter dieser Arbeit war es eher, einmal in einem konkreten Falle die im Studium behandelten Theorien der Morphologie und der Syntax, aber auch die Prinzipien der Lexikonerstellung, in einem einheitlichen Projekt zusammenzuführen. \\
Das fuer dieses Unterfangen am ehesten geeignete Softwaresystem schien schon sehr bald das Grammatical Framework\footnote{http://www.grammaticalframework.org/} zu sein. Es stellt alle benötigten Hilfsmittel zur Verfügung, die jeweils für die einzelnen Komponenten benötigt werden, sorgt aber auch durch einen einheitlichen Beschreibungsformalismus für die nötige Konsistenz zwischen allen Bestandteilen. Weitere Vorteile des Grammatical Frameworks sind der mächtige Beschreibungsformalismus für Grammatiken, Unterstützung für Multilingualität und aktive Entwicklung als Open Source-Software. \\
Nachdem sich das Grammatical Framework als geeignet heraus gestellt hatte, fiel die Wahl der zu bearbeitenden Sprache auf Latein, da diese Sprache, die trotz ihres Alters in der Linguistik weiterhin nicht unbedeutend ist, in der Ressource Grammar Library\footnote{http://www.grammaticalframework.org/lib/doc/synopsis.html} bisher nur sehr rudimentär umgesetzt war. \\
\subsection{Inhalt}
Im Folgenden sollen zunächst die Grundlagen der Arbeit genauer geschildert werden, es folgt also eine genauere Betrachtung des Grammatical Framework so wie der lateinischen Sprache. Anschließend wird das Vorgehen bei der Implementierung der Grammatik als zukünftiger Bestandteil der Ressource Grammar Library geschildert werden. Und zum Schluss soll noch eine Betrachtung der Erweiterungs- und Anwendungsmöglichkeiten folgen.
\subsection{Das Grammatical Framework}
Das Grammatical Framework ist ein Softwaresystem mit einer spezialisierten Programmiersprache um Grammatiken zu entwickeln. Es bietet die nötigen Möglichkeiten um natürliche Sprachen zu verarbeiten. Dabei benutzt es Formalismen, wie sie auch in modernen funktionalen Programmiersprachen wie Haskell zu finden sind.\footnote{RANTA S. vii} \\
Die große Stärke dabei ist die Multilingualität. Grundkonzept dabei ist die Trennung in eine konkrete und eine abstrakte Repräsentation der Grammatik. Dabei ist die konkrete repräsentation jeder Sprache eigen während die abstrakte Repräsentation von mehreren Sprachen geteilt werden kann. Über diesen Schritt der abstrakten Repräsentation kann man eine Übersetzung zwischen allen Sprachen umsetzen, die diese abstrakte Syntax teilen.\footnote{RANTA S. 10ff.} Im folgenden soll darauf noch genauer eingegangen werden.
\subsubsection{Der Grammatikformalismus}
Meist werden im Bereich der Computerlinguistik und Informatik kontextfreie Grammatiken, also Grammatiken von Typ 2 der Chomsky-Hierarchie verwendet.\footnote{quelle} Dies hat meist den Grund, dass die Ausdrucksmächtigkeit größtenteils ausreicht, jedoch der Verarbeitungsaufwand vergleichsweise gering ist.\footnote{quelle}
\begin{program}[h]
\begin{flushleft}
$S\ \longrightarrow\ NP\ \ VP$ \\
$NP\ \longrightarrow\ Det\ N$ \\
$N\ \longrightarrow\ \text{Mann}$ \\
$Det\ \longrightarrow\ \text{der}$ \\
$VP\ \longrightarrow\ V$ \\
$V\ \longrightarrow\ \text{schläft} $ \\
\end{flushleft}
\caption{Kontextfreie Grammatikfragment}
\label{CFG-Beispiel}
\end{program}
Die in Beispiel \ref{CFG-Beispiel} gegebene Grammatik ist ein sehr minimalistisches Beispiel für eine kontextfreie Grammatik. Mit ihrer Hilfe kann nur der eine deutsche Satz \textit{Der Mann schläft} hergeleitet werden. Dabei hat die Ableitung die in Beispiel \ref{CFG-Ableitung} gezeigte Form.
\begin{figure}
\begin{floatrow}[2]
\ffigbox{
\begin{flushleft}
S \\ $\Rightarrow$ NP VP \\ $\Rightarrow$ Det N VP \\ $\Rightarrow$ ``der'' N VP \\ $\Rightarrow$ ``der Mann'' VP \\ $\Rightarrow$ ``der Mann'' V \\ $\Rightarrow$ ``der Mann schläft''
\end{flushleft}
}{\caption{Ableitung eines Satzes}\label{CFG-Ableitung}}
\ffigbox{\Tree [.S [.NP [.Det ``der'' ] [.N ``Mann'' ] ] [.VP [.V ``schläft'' ] ] ]}{\caption{Entsprechender Syntaxbaum}\label{CFG-Syntaxbaum}}
\end{floatrow}
\end{figure}
Im Formalismus des Grammatical Framework wird die oben gegebene Grammatik in die abstrakte und die konkrete Syntax zerlegt.
Dabei entspricht die abstrakte Syntax dem Syntaxbaum ohne die terminalen Blätter.
\begin{minipage}{0.5\textwidth}
\begin{verbatim}
abstract Satz = {
flags startcat = S ;
cat S ; NP ; VP ; Det ; N ; V ;
lin
mkNP : Det -> N -> NP ;
mkVP : V -> VP ;
mkS : NP -> VP -> S ;
der_Det : Det ;
Mann_N : N ;
schlafen_V : V ;
}
\end{verbatim}
\captionof{program}{Abstrakte Syntax}
\end{minipage}
\begin{minipage}{0.45\textwidth}
\begin{verbatim}
concrete Satz of SatzAbs = {
lincat S,NP,VP,Det,N,V = Str;
lin
mkNP det n = det ++ n ;
mkVP v = v ;
mkS np vp = np ++ vp ;
der_Det = "der" ;
Mann_N = "Mann" ;
schlafen_V = "schlaeft" ;
}
\end{verbatim}
\captionof{program}{Konkrete Syntax}
\end{minipage}
\subsubsection{Die Ressource Grammar Library}
Was für allgemeine Programmiersprachen eine Standardbibliothek ist, ist im Grammatical Framework für die Multilingualität die Ressource Grammar Library. Sie ist definiert als gemeinsame abstrakte Syntax, die für verschiedenen Sprachen implementiert ist. Auf diese Möglichkeit ist eine grundlegende Übersetzung zwischen den unterstützten Sprachen direkt nach der Installation möglich. Meist muss jedoch mindestens das nötige Vokabular angegeben werden, da das Lexikon auf eine kleine Anzahl von Wörtern beschränkt ist, die benötigt wird um die grammatischen Konstrukte zu testen. \\
\subsection{Die Lateinische Sprache}
\subsubsection{Sprachwissenschaftliche Einordnung}
Die lateinische Sprache gehört zur indogermanische Sprachfamilie und dort zur Unterfamilie der italischen Sprachen. Entstanden ist es als ein in der Stadt Rom üblicher Dialekt parallel zu weiteren ländlichen Dialekten im Latium, im laufe der Zeit verdrängte es jedoch die weiteren italischen Sprachen im Zuge der Ausdehnung des römischen Reichs.\footnote{METZLER2004 S. 5359} Die Sprachgeschichte kann in mehrere Epochen unterteilt werden, nämlich das Altlatein, das klassische Latei, das Mittellatein (ca. 650 n. Chr. bis ca. 1400 n. Chr.) und das Neulatein (ca. 1400 n. Chr. bis heute).\footnote{MÜLLER-LANCE2006 S. 27ff.} Auch heute noch am bedeutendsten ist wohl das klassische Latein, das weiterhin in Schulen unterrichtet wird und vor allem mit seinem großen überlieferten Textkorpus hervorsticht. \\
Latein gehört zu den stark flektierenden Sprachen. Es gibt fünf zum teil genusbasierte Flektionsklassen für Nomen, sechs Verschiedene Kasus (Nominativ, Genitiv, Dativ, Akkusativ, Ablativ und Vokativ), drei Genera (Maskulin, Feminin, Neutrum), ein voll flektierendes Pronomensystem und vier relativ stark synthetische Deklinationsklassen für Verben.\footnote{METZLER2004 S. 5359} Zu den Kasus sei anzumerken, dass der Ablativ ein eigenständiger Kasus ist, jedoch der Vokativ oft mit dem Nominativ zusammenfällt.\footnote{???} \\
Die Wortstellung des Lateinischen wird oft als sehr frei beschrieben, allerdings gibt es eine klare Präferenz der SOV-Wortstellung im Satz, also dass das Objekt des Satzes direkt auf das Subjekt folgt, und das Verb den Satz abschließt. Die position des Adjektivs im Bezug auf das Nomen ist allerdings wirklich recht frei.\footnote{METZLER2004 s. 5359}
\subsubsection{Bedeutung in der heutigen Zeit}
Man kann sich natürlich über die Notwendigkeit streiten, sich in der heutigen Zeit noch mit der lateinischen Sprache zu beschäftigen. Es gibt aber auch ziemlich gute Gründe dafür Latein nicht einfach nur als tote Sprache abzustempeln und nicht weiter zu betrachten. \\
So gibt es verschiedenste Personengruppen, für die Lateinkenntnis von Vorteil ist.
\section{Grammatikerstellung}
\subsection{Lexikon}
Den Beginn dieser Grammatikimplementierung bildete die Erstellung des minimal nötigen Lexikons. Durch die abstrakte Syntax der RGL\footnote{vgl. lib/src/abstract/Lexicon.gf} eine Liste von ca. 400 englischen Bezeichnern für Worte vorgegeben, die in jeder Sprache umgesetzt werden sollten. \\
Um für das vorgegebene Vokabular die passenden lateinischen Entsprechungen zu finden, wurde verschiedene Vorgehensweisen angewandt. \\
Für die meisten englischen Begriffe war es zunächst problemlos möglich, deutsche Entsprechungen zu finden. Bei problematischeren Begriffen wurde ein verbreitetes Onlinewörterbuch\footnote{http://dict.leo.org} zu Rate gezogen. Somit war es für fast alle vorgegebenen Begriffe möglich, eine adequate deutsche Übersetzung zu finden. Die einzige Art von Wörtern, die weiterhin zu Problemen führten, waren Wörter mit ambiger Bedeutung, wie das häufig gezeigte Wort \textit{bank}, das in vielen Sprachen mehrer verschiedene Bedeutungen haben kann, z.B. im Deutschen als Sitzgelegenheit und als Geldinstitut oder im Englischen ebenfalls als Geldinstitut oder als Flussufer.\footnote{} Für diesen und ähnliche Begriffe wurde willkürlich eine plausible Bedeutung gewählt, da keine Hinweise zur gewünschten Bedeutung in der Grammar Library gefunden werden konnte. Die Entscheidung eine einzige Bedeutung zu wählen, und nicht verschiedene Bedeutungen als Varianten des Wortes zu implementieren, wurde getroffen um die Anzahl der möglichen Übersetzungen möglichst gering zu halten. \\
Nachdem für alle Bezeichner im abstrakten Lexikon eine zwischenzeitliche deutsche Entsprechung, nach dem obigen Schema, gefunden wurde, wurde versucht, diese deutschen Begriffe in die lateinische Sprache zu übersetzen. Dies geschah zum größten Teil mit Hilfe des deutsch-lateinischen Teils des Standardwörterbuchs\footnote{Langenscheidt}, soweit ein entsprechender Eintrag im diesem Wörterbuch zu finden war. Zusätzlich zu den recht kurzen Einträgen in diesem Teil des Wörterbuch, wurden auch alle weiteren vefügbaren Informationen zu den gefundenen lateinischen Begriffen berücksichtigt. \\
Bei vielen, meist moderneren Begriffen, konnte nicht immer ein entsprechender Wörterbucheintrag gefunden werden. Wenn auch in anderen verfügbaren Wörterbüchern\footnote{PONS} kein Eintrag zu finden war, gab es noch die Möglichkeit, auf Internetquellen zurückzugreifen, die meist auf dem Prinzip der freiwilligen Kollaboration basieren. Eine der interessantes Quelle für moderne Begriffe aus dem Breich der Substantive ist wohl die lateinische Wikipedia\footnote{http://la.wikipedia.org/wiki/Pagina\_prima}. Obwohl Latein als tote Sprache gilt, existieren dort über 90000 lateinische Artikel\footnote{http://la.wikipedia.org/wiki/Specialis:Census; Stand: 30.7.2013}. Natürlich muss man immer bedenken, dass es keine Garantie für die Qualität von kollaborativen Onlinequellen gibt.
\subsubsection{Geschlossene Kategorien}
\subsubsection{Offene Kategorien}
\subsubsection{Ausnahmen}
\subsection{Morphologie}
\subsubsection{Nomenflektion}
\subsubsection{Verbdeklination}
\subsubsection{Pronomen}
\subsubsection{Ausnahmen}
\subsection{Syntax}
\subsubsection{Nominalphrasen}
\subsubsection{Verbalphrasen}
\subsubsection{Einfache Sätze}
\subsection{Anwendungen und Ausblick}
\section{Ausblick}
\end{document}

View File

@@ -0,0 +1,6 @@
Lateinisch
(lingua latina. Engl. Latin, frz. latin) Als Erstsprache ausgestorbene idg. Spr., Vorläufer der roman. Spr.n. Mit der lat. Sprache und Literatur beschäftigt sich die Latinistik. Das L. gehört zur Gruppe der italischen Sprachen. Es war ursprüngl. der Stadtdialekt des antiken Rom, umgeben von weiteren eng verwandten, stärker ländl. Dialekten des heutigen Latium. Mit dem Aufstieg Roms gewann das L. gegenüber den anderen ital. Spr. an Bedeutung und verdrängte diese schließlich vollkommen. Seit dem 6. Jh. v.u.Z. schriftl. belegt (Fibel von Praeneste). Das L. stand bis ins 2. Jh. v.u.Z. stark unter griech. Einfluß; erst mit der polit. Festigung Roms entstand auch die kulturelle Eigenständigkeit. Unter Altlatein (archaisches Lat.) versteht man die Zeit von den ältesten Inschriften bis zum Beginn der klass. Periode im 1. Jh. v.u.Z. Dazu zählen Schriftsteller wie Livius Andronicus (v.a. dessen Übersetzungen aus dem Griech.), Plautus (Theater), Naevius (ep. Dichtung), Ennius (Gedichte). Der sozioling. Status des klass. L. ist umstritten; es ist wesentlich durch die Schriftsteller der klass. Periode (1. Jh. v.u.Z. bis ins 2. Jh.u.Z.) belegt (Cicero, Caesar, Vergil, Horaz). Seine tatsächliche mündl. Verwendung war jedenfalls diastrat. sehr beschränkt; das klass. Lat. galt aber bis ins 5. Jh. als schriftl. Norm. Es wird heute allgemein angenommen, daß das sog. Vulgärlatein nicht nur postklass., sondern als Sprechlatein bereits während der klass. Periode die Volkssprache darstellte und somit nicht eine Degeneration der Klassik, sondern vielmehr deren parallele Weiterentwicklung ist. Die zahlreichen vorröm. Spr. (z.B. Etruskisch, Venet., Lepont.) des röm. Reiches haben den lat. Wortschatz beeinflußt [»Reliktwörter«, z.B. persona, taberna). Das Vulgärlat. war ein sehr inhomogenes sprachl. Gebilde, beeinflußt je nach Ort und Zeit seiner Verwendung. Es umfaßt alle Varianten von der Umgangssprache Roms bis zum Regionallatein der Provinzen. In postklass. Epoche setzt sich stärker das Vulgärlat. durch und bildet weitgehend die Grundlage der roman. Spr.n. Die mittelalterl. Varietäten wie Mönchslat. oder Kirchenlat. stehen in nur einem sektoriellen Gebrauchszusammenhang mit der antiken Spr., ebenso das Gelehrtenlat. des Mittelalters bis ins 16./17. Jh. (Humanistenlat.). Eine einigermaßen homogene Sprachgemeinschaft dürfte nur für die frühen Phasen (bis zum Beginn der Expansion durch den 1. Pun. Krieg) anzunehmen sein, wiewohl zu dieser Zeit die Vormachtstellung gegenüber den anderen ital. Spr. noch nicht endgültig gefestigt ist. - Phonologie: Fünfvokalsystem /i, e, u, o, a/ mit Quantitätsunterschied [± lang]; quantitätssensitives Akzentsystem ( Dreimorengesetz); silben- bzw. morenzählend, von antiken Grammatikern (nach griech. Vorbild) als tonal beschrieben (unwahrscheinlich); schon früh Verlust der Vokalquantität und der Morenphonologie, häufige Vokalelisionen, Diphthongierungen, Ausfall von /h-/, /-m/, /-s/ (z.T. restituiert). Morphologie: in den meisten Bereichen stark flektierend; 5 Flexionsklassen (z.T. genusbasiert), 6 Kasus (Nom., Vok., Gen., Dat., Akk., Abl.), 3 Genera (m., f., n.); voll dekliniertes Pronominalsystem; 4 Konjugationsklassen mit stark synthet. Charakter. Morpholog. Veränderungen in der postklass. Epoche vor allem durch neue periphrast. (analyt.) Bildungen ( coniugatio periphrastica), Neutralisierung und Abbau von Kategorien (z.B. Kasus- und Genussystem), analogischer und paradigmat. Ausgleich (z.B. volo - vis - vult - volumus - vultis - volunt statt *voleo - *voles - *volet - *volemus - *voletis - *voleunt). Syntax: Nullsubjektssprache; entgegen der häufig geäußerten Annahme von freier Wortstellung gibt es eindeutige Präferenz von SOV-Stellung, Adjektivposition zum Nomen relativ frei; nicht konfigurational. Auch in der Syntax im Übergang zum postklass. Latein wesentl. Änderungen: SOV > SVO; Herausbildung des Artikels aus Demonstrativa (6. Jh.), Konfigurationalität; Entstehung des periphrast. Konditionals, Festlegung der Adjektivposition als NA, Grammatikalisierung des Präpositionalsystems u.a. Viele Änderungen beginnen allerdings bereits in klass. Zeit (z.B. der sog. Quantitätenkollaps mit seinen weitreichenden Folgen). Die späteren purist. Tendenzen - vgl. die Antibarbari wie den Appendix des Probus -scheinen, wie die Entwicklung der roman. Spr. zeigt, relativ erfolglos geblieben zu sein. Die exakte Chronologie der einzelnen Wandelerscheinungen ist jedoch nicht immer unumstritten.
Lit. L.R. Palmer, The Latin Language. London 1961. - A. Meillet, Esquisse d'une histoire de la langue latine. Paris 1948. - F. Stolz & A. Debrunner, Geschichte der lat. Spr. Bln. 1953. - C.H. Grandgent, An Introduction to Vulgar Latin. Boston 1907. - F. Stolz & J.H. Schmalz, Lat. Grammatik. Mchn. 1928. - F. Sommer, Hdb. der latein. Laut- und Formenlehre (hg. von R. Pfister). Heidelberg 1977.HU
[Lexikon Sprache: Lateinisch. Metzler Lexikon Sprache, S. 5359 (vgl. MLSpr, S. 397 ff.) (c) J.B. Metzler Verlag]

1010
lib/src/latin/doc/qtree.sty Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,711 @@
%\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}
\usepackage{url}
\usepackage{fancyvrb}
\setbeamertemplate{footline}[frame number]
\setbeamerfont{example script}{size=\scriptsize}
\setbeamerfont{example tiny}{size=\tiny}
\parindent0pt
\parskip1.2ex
\def\nat{{\mathbb N}}
\def\bool{{\mathbb B}}
\def\real{{\mathbb R}}
\title[The Latin Language Ressource Grammar]{The Latin Language Ressource Grammar\\\quad \\ \small{ GF Summer School, Frauenchiemsee 2013 }}
\author{Herbert Lange\\Centrum für Informations- und Sprachverarbeitung\\München}
\date{\today}
\begin{document}
\frame{\titlepage}
\section{The Latin RG}
\begin{frame}
\tableofcontents
\end{frame}
\subsection{Current Status}
\begin{frame}[fragile]{Current Status}
%\begin{example}[fontsize=\small]{Changes in the files}
\begin{Verbatim}[fontsize=\tiny,commandchars=\\\{\}]
lib/src/latin/AdjectiveLat.gf | 14 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/AdverbLat.gf | 4 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/AllLat.gf | 4 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/AllLatAbs.gf | 10 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/CatLat.gf | 69 \textcolor{green}{++}\textcolor{red}{---}
lib/src/latin/ConjunctionLat.gf | 37 \textcolor{green}{++}\textcolor{red}{-}
lib/src/latin/ExtraLat.gf | 8 \textcolor{green}{+}
lib/src/latin/ExtraLatAbs.gf | 5 \textcolor{green}{+}
lib/src/latin/GrammarLat.gf | 5 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/IrregLat.gf | 631 \textcolor{green}{+++++++++++++++++++++++++++++++}\textcolor{red}{-------------}
lib/src/latin/IrregLatAbs.gf | 11 \textcolor{green}{+}
lib/src/latin/LangLat.gf | 2 \textcolor{green}{+}
lib/src/latin/LexiconLat.gf | 752 \textcolor{green}{++++++++++++++++++++++++++}\textcolor{red}{--------------------------}
lib/src/latin/MorphoLat.gf | 800 \textcolor{green}{++++++++++++++++++++++++++++++++++++++++++}\textcolor{red}{-------------}
lib/src/latin/NounLat.gf | 92 \textcolor{green}{++++}\textcolor{red}{---}
lib/src/latin/ParadigmsLat.gf | 63 \textcolor{green}{++++}\textcolor{red}{-}
lib/src/latin/PhraseLat.gf | 24 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/ResLat.gf | 1223 \textcolor{green}{++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
\textcolor{red}{-----------------------------}
lib/src/latin/SentenceLat.gf | 22 \textcolor{green}{+}\textcolor{red}{-}
lib/src/latin/StructuralLat.gf | 226 \textcolor{green}{++++++++}\textcolor{red}{--------}
lib/src/latin/VerbLat.gf | 13 \textcolor{green}{+}\textcolor{red}{-}
21 files changed, 2610 insertions(+), 1405 deletions(-)
\end{Verbatim}
%\end{example}
\end{frame}
\subsection{Lexicon}
\begin{frame}[fragile]{Lexicon}
\begin{itemize}
\item All strings replaced by (more or less) appropriate Latin translations
\item Some words only translatable by phrases (e.g. camera\_N, travel\_V) $\Rightarrow$ Create phrases and wrap them up as a noun or verb $\Rightarrow$ Works fine for CN but not so well for VPs
\item Discovered all kinds of irregular word forms in the lexicon (e.g. deponent verbs, defective verbs, plural only nouns) $\Rightarrow$ Motivation to implement as much of the morphology as possible
\item Challenge to implement modern words (airplane\_N, train\_N, ...) $\Rightarrow$ Wikipedia as a useful source for translations
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Examples from the Lexicon}
\begin{example}{Excerpt from the Lexicon\footnote{LexiconLat.gf}}
\begin{Verbatim}[fontsize=\tiny,commandchars=\\\{\}]
lin
[...]
camera_N =
ResLat.useCNasN (AdjCN (PositA (mkA "photographicus") )
(UseN (mkN "machina" ) )
) ; -- (http://la.wikipedia.org/wiki/Machina_photographica / Pons)
[...]
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
[...]
science_N = pluralN (mkN "litera" ) ; -- only pl. (Langenscheidts)
\end{Verbatim}
\end{example}
\end{frame}
\subsection{Morphology}
\begin{frame}{Morphology}
\begin{itemize}
\item Trying not to use sound laws
\item Morphology for Nouns, Adjectives, Verbs and Personal/Possesive Pronouns
\item Smart Paradigms as smart as possible
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Noun Morphology}
\begin{itemize}
\item Six Cases (but mostly Nominative and Vocative have the same form)
\item Two Number categories \\
$\Rightarrow 6x2 = $ 12 Forms
\item Five Declension classes
\end{itemize}
\begin{example}{Noun type and parameters\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
param
Case = Nom | Acc | Gen | Dat | Abl | Voc ;
Gender = Masc | Fem | Neutr ;
oper
Noun : Type = {s : Number => Case => Str ; g : Gender} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Smart paradigm}
\begin{example}{Smart paradigm\footnote{MorphoLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}[label=Smart paradigm,fontsize=\scriptsize]
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)
} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Smart paradigm}
\begin{example}{Smart paradigm\footnote{MorphoLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}[label=Smart paradigm,fontsize=\scriptsize]
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 ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]
\begin{example}{Paradigm of friend\_N}
\usebeamerfont{example script}
\begin{multicols}{2}
\begin{Verbatim}
Lang> l -table friend_N
s Sg Nom : amicus
s Sg Acc : amicum
s Sg Gen : amici
s Sg Dat : amico
s Sg Abl : amico
s Sg Voc : amice
s Pl Nom : amici
s Pl Acc : amicos
s Pl Gen : amicorum
s Pl Dat : amicis
s Pl Abl : amicis
s Pl Voc : amici
\end{Verbatim}
\begin{Verbatim}
s Sg Nom : amica
s Sg Acc : amicam
s Sg Gen : amicae
s Sg Dat : amicae
s Sg Abl : amica
s Sg Voc : amica
s Pl Nom : amicae
s Pl Acc : amicas
s Pl Gen : amicarum
s Pl Dat : amicis
s Pl Abl : amicis
s Pl Voc : amicae
\end{Verbatim}
\end{multicols}
\end{example}
\end{frame}
\begin{frame}[fragile]{Adjective Morphology}
\begin{itemize}
\item Three Gender categories
\item Two Number categories
\item Six Cases
\item Three degrees of comparation \\
$\Rightarrow 3 x 2 x 6 x 3 = $ 108 Forms
\item Three Declination Classes
\end{itemize}
\begin{example}{Adjective type\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
param
Agr = Ag Gender Number Case ; -- Agreement for NP et al.
oper
Adjective : Type = { s : Degree => Agr => Str } ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]
\begin{itemize}
\item More complex than noun declension
\item Some hard-coded exception handling (Maybe find a better solution later)
\end{itemize}
\begin{example}{Exceptions in adjective declension\footnote{MorphoLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
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)
} ;
[...]
in [...]
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Verb conjugation}
\begin{itemize}
\item Lots of Forms: Active 60 forms, passive 30 forms, participle 108, gerund 4 forms, gerundive 36 forms, infinitive 12 forms, imperative 8 forms, supine 2 forms $\Rightarrow$ Total 260 Forms
\end{itemize}
\begin{example}{Verb parameters\footnote{ResLat.gf}}
\usebeamerfont{example tiny}
\begin{Verbatim}
param
VActForm = VAct VAnter VTense Number Person ;
VPassForm = -- No anteriority because perfect forms are built using participle
VPass VTense Number Person ;
VInfForm = VInfActPres | VInfActPerf Gender | VInfActFut Gender |
VInfPassPres | VInfPassPerf Gender | VinfPassFut ;
VImpForm = VImp1 Number | VImp2 Number Person ;
VGerund = VGenAcc | VGenGen |VGenDat | VGenAbl ;
VSupine = VSupAcc | VSupAbl ;
VPartForm = VActPres | VActFut | VPassPerf ;
VAnter = VAnt | VSim ;
VTense = VPres VMood | VImpf VMood | VFut ;
VMood = VInd | VConj ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]
\begin{example}{Verb type\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
oper
Verb : Type = {
act : VActForm => Str ;
pass : VPassForm => Str ;
inf : VInfForm => Str ;
imp : VImpForm => Str ;
ger : VGerund => Str ;
geriv : Agr => Str ;
sup : VSupine => Str ;
part : VPartForm =>Agr => Str ;
} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{A (nearly) complete verb lemma}
\begin{example}%{A (nearly)complete verb lemma}
\begin{multicols}{5}
{\fontsize{2pt}{0.15em}\selectfont
\begin{Verbatim}
act (VAct VAnt (VPres VInd) Sg P1) : legi
act (VAct VAnt (VPres VInd) Sg P2) : legisti
act (VAct VAnt (VPres VInd) Sg P3) : legit
act (VAct VAnt (VPres VInd) Pl P1) : legimus
act (VAct VAnt (VPres VInd) Pl P2) : legistis
act (VAct VAnt (VPres VInd) Pl P3) : legerunt
act (VAct VAnt (VPres VConj) Sg P1) : legerim
act (VAct VAnt (VPres VConj) Sg P2) : legeris
act (VAct VAnt (VPres VConj) Sg P3) : legerit
act (VAct VAnt (VPres VConj) Pl P1) : legerimus
act (VAct VAnt (VPres VConj) Pl P2) : legeritis
act (VAct VAnt (VPres VConj) Pl P3) : legerint
act (VAct VAnt (VImpf VInd) Sg P1) : legeram
act (VAct VAnt (VImpf VInd) Sg P2) : legeras
act (VAct VAnt (VImpf VInd) Sg P3) : legerat
act (VAct VAnt (VImpf VInd) Pl P1) : legeramus
act (VAct VAnt (VImpf VInd) Pl P2) : legeratis
act (VAct VAnt (VImpf VInd) Pl P3) : legerant
act (VAct VAnt (VImpf VConj) Sg P1) : legissem
act (VAct VAnt (VImpf VConj) Sg P2) : legisses
act (VAct VAnt (VImpf VConj) Sg P3) : legisset
act (VAct VAnt (VImpf VConj) Pl P1) : legissemus
act (VAct VAnt (VImpf VConj) Pl P2) : legissetis
act (VAct VAnt (VImpf VConj) Pl P3) : legissent
act (VAct VAnt VFut Sg P1) : legero
act (VAct VAnt VFut Sg P2) : legeris
act (VAct VAnt VFut Sg P3) : legerit
act (VAct VAnt VFut Pl P1) : legerimus
act (VAct VAnt VFut Pl P2) : legeritis
act (VAct VAnt VFut Pl P3) : legerint
act (VAct VSim (VPres VInd) Sg P1) : lego
act (VAct VSim (VPres VInd) Sg P2) : legis
act (VAct VSim (VPres VInd) Sg P3) : legit
act (VAct VSim (VPres VInd) Pl P1) : legimus
act (VAct VSim (VPres VInd) Pl P2) : legitis
act (VAct VSim (VPres VInd) Pl P3) : legunt
act (VAct VSim (VPres VConj) Sg P1) : legam
act (VAct VSim (VPres VConj) Sg P2) : legas
act (VAct VSim (VPres VConj) Sg P3) : legat
act (VAct VSim (VPres VConj) Pl P1) : legamus
act (VAct VSim (VPres VConj) Pl P2) : legatis
act (VAct VSim (VPres VConj) Pl P3) : legant
act (VAct VSim (VImpf VInd) Sg P1) : legebam
act (VAct VSim (VImpf VInd) Sg P2) : legebas
act (VAct VSim (VImpf VInd) Sg P3) : legebat
act (VAct VSim (VImpf VInd) Pl P1) : legebamus
act (VAct VSim (VImpf VInd) Pl P2) : legebatis
act (VAct VSim (VImpf VInd) Pl P3) : legebant
act (VAct VSim (VImpf VConj) Sg P1) : legerem
act (VAct VSim (VImpf VConj) Sg P2) : legeres
act (VAct VSim (VImpf VConj) Sg P3) : legeret
act (VAct VSim (VImpf VConj) Pl P1) : legeremus
act (VAct VSim (VImpf VConj) Pl P2) : legeretis
act (VAct VSim (VImpf VConj) Pl P3) : legerent
act (VAct VSim VFut Sg P1) : legam
act (VAct VSim VFut Sg P2) : leges
act (VAct VSim VFut Sg P3) : leget
act (VAct VSim VFut Pl P1) : legemus
act (VAct VSim VFut Pl P2) : legetis
act (VAct VSim VFut Pl P3) : legent
ger VGenAcc : legendum
ger VGenGen : legendi
ger VGenDat : legendo
ger VGenAbl : legendo
geriv (Ag Masc Sg Nom) : legendus
geriv (Ag Masc Sg Acc) : legendum
geriv (Ag Masc Sg Gen) : legendi
geriv (Ag Masc Sg Dat) : legendo
geriv (Ag Masc Sg Abl) : legendo
geriv (Ag Masc Sg Voc) : legende
geriv (Ag Masc Pl Nom) : legendi
geriv (Ag Masc Pl Acc) : legendos
geriv (Ag Masc Pl Gen) : legendorum
geriv (Ag Masc Pl Dat) : legendis
geriv (Ag Masc Pl Abl) : legendis
geriv (Ag Masc Pl Voc) : legendi
geriv (Ag Fem Sg Nom) : legenda
geriv (Ag Fem Sg Acc) : legendam
geriv (Ag Fem Sg Gen) : legendae
geriv (Ag Fem Sg Dat) : legendae
geriv (Ag Fem Sg Abl) : legenda
geriv (Ag Fem Sg Voc) : legenda
geriv (Ag Fem Pl Nom) : legendae
geriv (Ag Fem Pl Acc) : legendas
geriv (Ag Fem Pl Gen) : legendarum
geriv (Ag Fem Pl Dat) : legendis
geriv (Ag Fem Pl Abl) : legendis
geriv (Ag Fem Pl Voc) : legendae
geriv (Ag Neutr Sg Nom) : legendum
geriv (Ag Neutr Sg Acc) : legendum
geriv (Ag Neutr Sg Gen) : legendi
geriv (Ag Neutr Sg Dat) : legendo
geriv (Ag Neutr Sg Abl) : legendo
geriv (Ag Neutr Sg Voc) : legendum
geriv (Ag Neutr Pl Nom) : legenda
geriv (Ag Neutr Pl Acc) : legenda
geriv (Ag Neutr Pl Gen) : legendorum
geriv (Ag Neutr Pl Dat) : legendis
geriv (Ag Neutr Pl Abl) : legendis
geriv (Ag Neutr Pl Voc) : legenda
imp (VImp1 Sg) : lege
imp (VImp1 Pl) : legite
imp (VImp2 Sg P1) : ######
imp (VImp2 Sg P2) : legito
imp (VImp2 Sg P3) : legito
imp (VImp2 Pl P1) : ######
imp (VImp2 Pl P2) : legitote
imp (VImp2 Pl P3) : legunto
inf VInfActPres : legere
inf (VInfActPerf Masc) : legisse
inf (VInfActPerf Fem) : legisse
inf (VInfActPerf Neutr) : legisse
inf (VInfActFut Masc) : lecturum
inf (VInfActFut Fem) : lecturam
inf (VInfActFut Neutr) : lecturum
inf VInfPassPres : legeri
inf (VInfPassPerf Masc) : lectum
inf (VInfPassPerf Fem) : lectam
inf (VInfPassPerf Neutr) : lectum
inf VinfPassFut : lectum
part VActPres (Ag Masc Sg Nom) : legens
part VActPres (Ag Masc Sg Acc) : legentem
part VActPres (Ag Masc Sg Gen) : legentis
part VActPres (Ag Masc Sg Dat) : legenti
part VActPres (Ag Masc Sg Abl) : legente
part VActPres (Ag Masc Sg Voc) : legens
part VActPres (Ag Masc Pl Nom) : legentes
part VActPres (Ag Masc Pl Acc) : legentes
part VActPres (Ag Masc Pl Gen) : legentium
part VActPres (Ag Masc Pl Dat) : legentibus
part VActPres (Ag Masc Pl Abl) : legentibus
part VActPres (Ag Masc Pl Voc) : legentes
part VActPres (Ag Fem Sg Nom) : legens
part VActPres (Ag Fem Sg Acc) : legentem
part VActPres (Ag Fem Sg Gen) : legentis
part VActPres (Ag Fem Sg Dat) : legenti
part VActPres (Ag Fem Sg Abl) : legente
part VActPres (Ag Fem Sg Voc) : legens
part VActPres (Ag Fem Pl Nom) : legentes
part VActPres (Ag Fem Pl Acc) : legentes
part VActPres (Ag Fem Pl Gen) : legentium
part VActPres (Ag Fem Pl Dat) : legentibus
part VActPres (Ag Fem Pl Abl) : legentibus
part VActPres (Ag Fem Pl Voc) : legentes
part VActPres (Ag Neutr Sg Nom) : legens
part VActPres (Ag Neutr Sg Acc) : legens
part VActPres (Ag Neutr Sg Gen) : legentis
part VActPres (Ag Neutr Sg Dat) : legenti
part VActPres (Ag Neutr Sg Abl) : legente
part VActPres (Ag Neutr Sg Voc) : legens
part VActPres (Ag Neutr Pl Nom) : legentia
part VActPres (Ag Neutr Pl Acc) : legentia
part VActPres (Ag Neutr Pl Gen) : legentium
part VActPres (Ag Neutr Pl Dat) : legentibus
part VActPres (Ag Neutr Pl Abl) : legentibus
part VActPres (Ag Neutr Pl Voc) : legentia
part VActFut (Ag Masc Sg Nom) : lecturus
part VActFut (Ag Masc Sg Acc) : lecturum
part VActFut (Ag Masc Sg Gen) : lecturi
part VActFut (Ag Masc Sg Dat) : lecturo
part VActFut (Ag Masc Sg Abl) : lecturo
part VActFut (Ag Masc Sg Voc) : lecture
part VActFut (Ag Masc Pl Nom) : lecturi
part VActFut (Ag Masc Pl Acc) : lecturos
part VActFut (Ag Masc Pl Gen) : lecturorum
part VActFut (Ag Masc Pl Dat) : lecturis
part VActFut (Ag Masc Pl Abl) : lecturis
part VActFut (Ag Masc Pl Voc) : lecturi
part VActFut (Ag Fem Sg Nom) : lectura
part VActFut (Ag Fem Sg Acc) : lecturam
part VActFut (Ag Fem Sg Gen) : lecturae
part VActFut (Ag Fem Sg Dat) : lecturae
part VActFut (Ag Fem Sg Abl) : lectura
part VActFut (Ag Fem Sg Voc) : lectura
part VActFut (Ag Fem Pl Nom) : lecturae
part VActFut (Ag Fem Pl Acc) : lecturas
part VActFut (Ag Fem Pl Gen) : lecturarum
part VActFut (Ag Fem Pl Dat) : lecturis
part VActFut (Ag Fem Pl Abl) : lecturis
part VActFut (Ag Fem Pl Voc) : lecturae
part VActFut (Ag Neutr Sg Nom) : lecturum
part VActFut (Ag Neutr Sg Acc) : lecturum
part VActFut (Ag Neutr Sg Gen) : lecturi
part VActFut (Ag Neutr Sg Dat) : lecturo
part VActFut (Ag Neutr Sg Abl) : lecturo
part VActFut (Ag Neutr Sg Voc) : lecturum
part VActFut (Ag Neutr Pl Nom) : lectura
part VActFut (Ag Neutr Pl Acc) : lectura
part VActFut (Ag Neutr Pl Gen) : lecturorum
part VActFut (Ag Neutr Pl Dat) : lecturis
part VActFut (Ag Neutr Pl Abl) : lecturis
part VActFut (Ag Neutr Pl Voc) : lectura
part VPassPerf (Ag Masc Sg Nom) : lectus
part VPassPerf (Ag Masc Sg Acc) : lectum
part VPassPerf (Ag Masc Sg Gen) : lecti
part VPassPerf (Ag Masc Sg Dat) : lecto
part VPassPerf (Ag Masc Sg Abl) : lecto
part VPassPerf (Ag Masc Sg Voc) : lecte
part VPassPerf (Ag Masc Pl Nom) : lecti
part VPassPerf (Ag Masc Pl Acc) : lectos
part VPassPerf (Ag Masc Pl Gen) : lectorum
part VPassPerf (Ag Masc Pl Dat) : lectis
part VPassPerf (Ag Masc Pl Abl) : lectis
part VPassPerf (Ag Masc Pl Voc) : lecti
part VPassPerf (Ag Fem Sg Nom) : lecta
part VPassPerf (Ag Fem Sg Acc) : lectam
part VPassPerf (Ag Fem Sg Gen) : lectae
part VPassPerf (Ag Fem Sg Dat) : lectae
part VPassPerf (Ag Fem Sg Abl) : lecta
part VPassPerf (Ag Fem Sg Voc) : lecta
part VPassPerf (Ag Fem Pl Nom) : lectae
part VPassPerf (Ag Fem Pl Acc) : lectas
part VPassPerf (Ag Fem Pl Gen) : lectarum
part VPassPerf (Ag Fem Pl Dat) : lectis
part VPassPerf (Ag Fem Pl Abl) : lectis
part VPassPerf (Ag Fem Pl Voc) : lectae
part VPassPerf (Ag Neutr Sg Nom) : lectum
part VPassPerf (Ag Neutr Sg Acc) : lectum
part VPassPerf (Ag Neutr Sg Gen) : lecti
part VPassPerf (Ag Neutr Sg Dat) : lecto
part VPassPerf (Ag Neutr Sg Abl) : lecto
part VPassPerf (Ag Neutr Sg Voc) : lectum
part VPassPerf (Ag Neutr Pl Nom) : lecta
part VPassPerf (Ag Neutr Pl Acc) : lecta
part VPassPerf (Ag Neutr Pl Gen) : lectorum
part VPassPerf (Ag Neutr Pl Dat) : lectis
part VPassPerf (Ag Neutr Pl Abl) : lectis
part VPassPerf (Ag Neutr Pl Voc) : lecta
pass (VPass (VPres VInd) Sg P1) : legor
pass (VPass (VPres VInd) Sg P2) : legeris
pass (VPass (VPres VInd) Sg P3) : legitur
pass (VPass (VPres VInd) Pl P1) : legimur
pass (VPass (VPres VInd) Pl P2) : legimini
pass (VPass (VPres VInd) Pl P3) : leguntur
pass (VPass (VPres VConj) Sg P1) : legar
pass (VPass (VPres VConj) Sg P2) : legaris
pass (VPass (VPres VConj) Sg P3) : legatur
pass (VPass (VPres VConj) Pl P1) : legamur
pass (VPass (VPres VConj) Pl P2) : legamini
pass (VPass (VPres VConj) Pl P3) : legantur
pass (VPass (VImpf VInd) Sg P1) : legebar
pass (VPass (VImpf VInd) Sg P2) : legebaris
pass (VPass (VImpf VInd) Sg P3) : legebatur
pass (VPass (VImpf VInd) Pl P1) : legebamur
pass (VPass (VImpf VInd) Pl P2) : legebamini
pass (VPass (VImpf VInd) Pl P3) : legebantur
pass (VPass (VImpf VConj) Sg P1) : legerer
pass (VPass (VImpf VConj) Sg P2) : legereris
pass (VPass (VImpf VConj) Sg P3) : legeretur
pass (VPass (VImpf VConj) Pl P1) : legeremur
pass (VPass (VImpf VConj) Pl P2) : legeremini
pass (VPass (VImpf VConj) Pl P3) : legerentur
pass (VPass VFut Sg P1) : legar
pass (VPass VFut Sg P2) : legeris
pass (VPass VFut Sg P3) : legetur
pass (VPass VFut Pl P1) : legemur
pass (VPass VFut Pl P2) : legemini
pass (VPass VFut Pl P3) : legentur
sup VSupAcc : lectum
sup VSupAbl : lectu
\end{Verbatim}
}
\end{multicols}
\end{example}
\end{frame}
\begin{frame}{Problems with verb morphology}
Problems:
\begin{itemize}
\item Hard to overlook
\item Rarely all fields filled in (Deponent verbs $\Rightarrow$ Passive forms with active usage, defective Verbs $\Rightarrow$ Perfect forms with preset usage, ...)
\item Right place for derivative morphology?
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Pronouns}
Only handling
\begin{example}{Pronoun type and parameters\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
param
PronReflForm = -- refelxive usage of pronoun like 'I see myself'
PronRefl | PronNonRefl ;
PronDropForm = PronDrop | PronNonDrop;
oper
Pronoun : Type = {
pers : PronDropForm => PronReflForm => Case => Str ;
poss : PronReflForm => Agr => Str ;
g : Gender ;
n : Number ;
p : Person ;
} ;
\end{Verbatim}
\end{example}
\end{frame}
\subsection{Syntax}
\begin{frame}[fragile]{Syntax}
At the moment: just the basic syntax constructions to create VPs and NPs and to form sentences from them \\
Different word orders on sentence level possible
\begin{example}{Possible word orders\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
param
Order = SVO | VSO | VOS | OSV | OVS | SOV ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Syntax}
Attributes can appear in front of or after nouns (only implemented for APs)
\begin{example}{Handling APs in different possitions\footnote{ResLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
CompoundNoun : Type =
{
s : Number => Case => Str ;
g : Gender ;
preap : {s : Agr => Str } ;
postap : {s : Agr => Str } ;
} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Syntax}
Trying to handle Pro-Drop
\begin{example}{Default UsePron\footnote{NounLat.gf}}
\usebeamerfont{example script}
\begin{Verbatim}
UsePron p = -- Pron -> Np
{
g = p.g ;
n = p.n ;
p = p.p ;
s = p.pers ! PronDrop ! PronRefl ;
} ;
\end{Verbatim}
\end{example}
Only works correctly in the subject possition
\end{frame}
\section{Project for the Summer School}
\subsection{Beginning of Summer school: Plans}
\begin{frame}{Beginning of Summer school: Plans}
\begin{itemize}
\item Handling of modifiers for NPs (Adjectives, APs, ...)
\item Rules to create S and Utt from Cl
\item Evaluation of the Lexicon
\item Further testing of the morphology
\end{itemize}
\end{frame}
\subsection{End of Summer school: Results}
\begin{frame}[fragile]{Handling of modifiers for NPs (Adjectives, APs, ...)}
\begin{example}{Better handling of APs and adjectives (Variable order before or after noun)}
\usebeamerfont{example tiny}
\begin{Verbatim}
param
AdjPos = Pre | Post ;
lin
AdjCN ap cn = -- AP -> CN -> CN
let pos = variants { Post ; Pre }
in
{
s = cn.s ;
postap =
case pos of {
Pre => cn.postap ;
Post => { s = \\a => ap.s ! a ++ cn.postap.s ! a }
} ;
preap =
case pos of {
Post => cn.preap ;
Pre => { s = \\a => ap.s ! a ++ cn.preap.s ! a }
} ;
g = cn.g
} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}[fragile]{Rules to create S and Utt from Cl}
\begin{example}{Sentence rules\footnote{SentenceLat.gf}}
\usebeamerfont{example tiny}
\begin{Verbatim}
PredVP np vp = -- NP -> VP -> Cl
{
s = \\tense,anter,pol,order =>
case order of {
[...]
OSV -- Object - Subject - Verb
=> vp.obj ++ np.s ! Nom ++ negation pol ++
vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p ;
[...]
SOV -- Subject - Objecy - Verb
=> np.s ! Nom ++ vp.obj ++ negation pol ++
vp.fin ! VAct ( anteriorityToVAnter anter ) ( tenseToVTense tense ) np.n np.p
}
} ;
[...]
UseCl t p cl = -- Temp -> Pol-> Cl -> S
{
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! SOV
} ;
\end{Verbatim}
\end{example}
\end{frame}
\begin{frame}{Testing and evaluation}
Still to be done \\
$\Rightarrow$ Different ressources (Latin treebank, compilation of a test corpus, ...)
\end{frame}
\begin{frame}
{\huge Any Questions?}
\end{frame}
\end{document}

Binary file not shown.

View File

@@ -0,0 +1,68 @@
%\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}
\usepackage{url}
\setbeamertemplate{footline}[frame number]
\parindent0pt
\parskip1.2ex
\def\nat{{\mathbb N}}
\def\bool{{\mathbb B}}
\def\real{{\mathbb R}}
\title[Implementation of the Latin Language for the RGL]{Implementation of the Latin Language for the RGL\\\quad \\ \small{ GF Summer School, Frauenchiemsee 2013 }}
\author{Herbert Lange\\Centrum für Informations- und Sprachverarbeitung\\München}
\date{\today}
\begin{document}
\frame{\titlepage}
\section{The Latin RG}
\subsection{Current Status}
\begin{frame}[fragile]{Current Status}
\begin{itemize}
\item Translated nearly all strings in LexiconLat and StructuralLat
\item Morphology for all common word types (with smart paradigms)
\item Basic syntax rules to create simple Clauses
\item Basic handling of pronoun drop (ExtraLat)
\item On Github \url{https://www.github.com/daherb/GF}
\end{itemize}
\end{frame}
\subsection{Project for the Summer School}
\begin{frame}{Project for the Summer School}
\begin{itemize}
\item Handling of modifiers for NPs (Adjectives, APs, ...)
\item Rules to create S and Utt from Cl
\item Evaluation of the Lexicon
\item Further testing of the morphology
\end{itemize}
\end{frame}
\subsection{The more Distant Future}
\begin{frame}{The more Distant Future}
\begin{itemize}
\item Subordinate Clauses, relative clauses
\item Different word orders
\item Change handling incomplete paradigms
\item Much more
\end{itemize}
\end{frame}
\end{document}

View File

@@ -0,0 +1,614 @@
* * *
* *
* *
*
*
* * * * * * *
* * *
* * * * * *
* * *
* * *
This is GF version 3.4.
No detailed version info available
Built on linux/x86_64 with ghc-7.0, flags: interrupt
License: see help -license.
Bug reports: http://code.google.com/p/grammatical-framework/issues/list
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Common.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Common.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Cat.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Cat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Noun.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Noun.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Verb.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Verb.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Adjective.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Adjective.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Adverb.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Adverb.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Numeral.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Numeral.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Sentence.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Sentence.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Question.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Question.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Relative.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Relative.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Conjunction.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Conjunction.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Phrase.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Phrase.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Text.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Text.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Structural.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Structural.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Idiom.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Idiom.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Tense.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Tense.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/NumeralTransfer.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/NumeralTransfer.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Transfer.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Transfer.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Grammar.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Grammar.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Lexicon.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Lexicon.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Lang.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Lang.gfo
- compiling /home/herb/src/GF-daherb/lib/src/prelude/Predef.gf... write file /home/herb/src/GF-daherb/lib/src/prelude/Predef.gfo
- compiling /home/herb/src/GF-daherb/lib/src/prelude/Prelude.gf... write file /home/herb/src/GF-daherb/lib/src/prelude/Prelude.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/ParamX.gf... write file /home/herb/src/GF-daherb/lib/src/common/ParamX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/CommonX.gf... write file /home/herb/src/GF-daherb/lib/src/common/CommonX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/ResLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/ResLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/CatLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/CatLat.gf:
Warning: no linearization type for A2, inserting default {s : Str}
Warning: no linearization type for Card, inserting default {s : Str}
Warning: no linearization type for ClSlash, inserting default {s : Str}
Warning: no linearization type for IComp, inserting default {s : Str}
Warning: no linearization type for IDet, inserting default {s : Str}
Warning: no linearization type for IP, inserting default {s : Str}
Warning: no linearization type for IQuant, inserting default {s : Str}
Warning: no linearization type for Imp, inserting default {s : Str}
Warning: no linearization type for N2, inserting default {s : Str}
Warning: no linearization type for N3, inserting default {s : Str}
Warning: no linearization type for Numeral, inserting default {s : Str}
Warning: no linearization type for Ord, inserting default {s : Str}
Warning: no linearization type for Predet, inserting default {s : Str}
Warning: no linearization type for QCl, inserting default {s : Str}
Warning: no linearization type for QS, inserting default {s : Str}
Warning: no linearization type for RCl, inserting default {s : Str}
Warning: no linearization type for RP, inserting default {s : Str}
Warning: no linearization type for RS, inserting default {s : Str}
Warning: no linearization type for S, inserting default {s : Str}
Warning: no linearization type for SSlash, inserting default {s : Str}
Warning: no linearization type for Subj, inserting default {s : Str}
Warning: no linearization type for V2A, inserting default {s : Str}
Warning: no linearization type for V2Q, inserting default {s : Str}
Warning: no linearization type for V2S, inserting default {s : Str}
Warning: no linearization type for V2V, inserting default {s : Str}
Warning: no linearization type for V3, inserting default {s : Str}
Warning: no linearization type for VA, inserting default {s : Str}
Warning: no linearization type for VQ, inserting default {s : Str}
Warning: no linearization type for VS, inserting default {s : Str}
Warning: no linearization type for VV, inserting default {s : Str}
write file /home/herb/src/GF-daherb/lib/src/latin/CatLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/NounLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/NounLat.gf:
Warning: no linearization of AdNum
Warning: no linearization of AdvNP
Warning: no linearization of ApposCN
Warning: no linearization of ComplN2
Warning: no linearization of ComplN3
Warning: no linearization of CountNP
Warning: no linearization of DetQuantOrd
Warning: no linearization of IndefArt
Warning: no linearization of MassNP
Warning: no linearization of NumCard
Warning: no linearization of NumDigits
Warning: no linearization of NumNumeral
Warning: no linearization of OrdDigits
Warning: no linearization of OrdNumeral
Warning: no linearization of OrdSuperl
Warning: no linearization of PPartNP
Warning: no linearization of PartNP
Warning: no linearization of PossNP
Warning: no linearization of PossPron
Warning: no linearization of PredetNP
Warning: no linearization of RelCN
Warning: no linearization of RelNP
Warning: no linearization of SentCN
Warning: no linearization of Use2N3
Warning: no linearization of Use3N3
Warning: no linearization of UseN2
Warning: no linearization of UsePN
write file /home/herb/src/GF-daherb/lib/src/latin/NounLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/VerbLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/VerbLat.gf:
Warning: no linearization of AdVVPSlash
Warning: no linearization of AdvVPSlash
Warning: no linearization of CompAdv
Warning: no linearization of CompCN
Warning: no linearization of CompNP
Warning: no linearization of ComplVA
Warning: no linearization of ComplVQ
Warning: no linearization of ComplVS
Warning: no linearization of ComplVV
Warning: no linearization of PassV2
Warning: no linearization of ReflVP
Warning: no linearization of Slash2V3
Warning: no linearization of Slash3V3
Warning: no linearization of SlashV2A
Warning: no linearization of SlashV2Q
Warning: no linearization of SlashV2S
Warning: no linearization of SlashV2V
Warning: no linearization of SlashV2VNP
Warning: no linearization of SlashVV
Warning: no linearization of UseCopula
Warning: no linearization of VPSlashPrep
write file /home/herb/src/GF-daherb/lib/src/latin/VerbLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gf:
Warning: no linearization of AdjOrd
Warning: no linearization of AdvAP
Warning: no linearization of CAdvAP
Warning: no linearization of ComparA
Warning: no linearization of ComplA2
Warning: no linearization of ReflA2
Warning: no linearization of SentAP
Warning: no linearization of UseA2
Warning: no linearization of UseComparA
write file /home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gf:
Warning: no linearization of AdAdv
Warning: no linearization of AdnCAdv
Warning: no linearization of ComparAdvAdj
Warning: no linearization of ComparAdvAdjS
Warning: no linearization of PositAdAAdj
Warning: no linearization of PositAdvAdj
Warning: no linearization of SubjS
write file /home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gf:
Warning: no linearization type for Digit, inserting default {s : Str}
Warning: no linearization type for Sub10, inserting default {s : Str}
Warning: no linearization type for Sub100, inserting default {s : Str}
Warning: no linearization type for Sub1000, inserting default {s : Str}
Warning: no linearization type for Sub1000000, inserting default {s : Str}
Warning: no linearization of n2
Warning: no linearization of n3
Warning: no linearization of n4
Warning: no linearization of n5
Warning: no linearization of n6
Warning: no linearization of n7
Warning: no linearization of n8
Warning: no linearization of n9
Warning: no linearization of num
Warning: no linearization of pot0
Warning: no linearization of pot01
Warning: no linearization of pot0as1
Warning: no linearization of pot1
Warning: no linearization of pot110
Warning: no linearization of pot111
Warning: no linearization of pot1as2
Warning: no linearization of pot1plus
Warning: no linearization of pot1to19
Warning: no linearization of pot2
Warning: no linearization of pot2as3
Warning: no linearization of pot2plus
Warning: no linearization of pot3
Warning: no linearization of pot3plus
write file /home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gf:
Warning: no linearization of AdvS
Warning: no linearization of AdvSlash
Warning: no linearization of EmbedQS
Warning: no linearization of EmbedS
Warning: no linearization of EmbedVP
Warning: no linearization of ExtAdvS
Warning: no linearization of ImpVP
Warning: no linearization of PredSCVP
Warning: no linearization of RelS
Warning: no linearization of SSubjS
Warning: no linearization of SlashPrep
Warning: no linearization of SlashVP
Warning: no linearization of SlashVS
Warning: no linearization of UseCl
Warning: no linearization of UseQCl
Warning: no linearization of UseRCl
Warning: no linearization of UseSlash
write file /home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/TextX.gf... write file /home/herb/src/GF-daherb/lib/src/common/TextX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/ParadigmsLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/ParadigmsLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gf:
Warning: no linearization of all_Predet
Warning: no linearization of although_Subj
Warning: no linearization of and_Conj
Warning: no linearization of as_CAdv
Warning: no linearization of at_least_AdN
Warning: no linearization of at_most_AdN
Warning: no linearization of because_Subj
Warning: no linearization of behind_Prep
Warning: no linearization of both7and_DConj
Warning: no linearization of can8know_VV
Warning: no linearization of can_VV
Warning: no linearization of during_Prep
Warning: no linearization of either7or_DConj
Warning: no linearization of every_Det
Warning: no linearization of everybody_NP
Warning: no linearization of everything_NP
Warning: no linearization of everywhere_Adv
Warning: no linearization of except_Prep
Warning: no linearization of few_Det
Warning: no linearization of have_V2
Warning: no linearization of here7from_Adv
Warning: no linearization of here7to_Adv
Warning: no linearization of how8many_IDet
Warning: no linearization of how8much_IAdv
Warning: no linearization of how_IAdv
Warning: no linearization of if_Subj
Warning: no linearization of if_then_Conj
Warning: no linearization of less_CAdv
Warning: no linearization of many_Det
Warning: no linearization of more_CAdv
Warning: no linearization of most_Predet
Warning: no linearization of much_Det
Warning: no linearization of must_VV
Warning: no linearization of no_Quant
Warning: no linearization of nobody_NP
Warning: no linearization of not_Predet
Warning: no linearization of nothing_NP
Warning: no linearization of on_Prep
Warning: no linearization of or_Conj
Warning: no linearization of otherwise_PConj
Warning: no linearization of please_Voc
Warning: no linearization of quite_Adv
Warning: no linearization of somePl_Det
Warning: no linearization of someSg_Det
Warning: no linearization of somebody_NP
Warning: no linearization of something_NP
Warning: no linearization of somewhere_Adv
Warning: no linearization of that_Subj
Warning: no linearization of there7from_Adv
Warning: no linearization of there7to_Adv
Warning: no linearization of there_Adv
Warning: no linearization of therefore_PConj
Warning: no linearization of through_Prep
Warning: no linearization of to_Prep
Warning: no linearization of too_AdA
Warning: no linearization of want_VV
Warning: no linearization of whatPl_IP
Warning: no linearization of whatSg_IP
Warning: no linearization of when_IAdv
Warning: no linearization of when_Subj
Warning: no linearization of where_IAdv
Warning: no linearization of which_IQuant
Warning: no linearization of whoPl_IP
Warning: no linearization of whoSg_IP
Warning: no linearization of why_IAdv
write file /home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/TenseX.gf... write file /home/herb/src/GF-daherb/lib/src/common/TenseX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/GrammarLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/GrammarLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gf:
Warning: no linearization of add_V3
Warning: no linearization of airplane_N
Warning: no linearization of alas_Interj
Warning: no linearization of already_Adv
Warning: no linearization of animal_N
Warning: no linearization of answer_V2S
Warning: no linearization of apartment_N
Warning: no linearization of apple_N
Warning: no linearization of ashes_N
Warning: no linearization of ask_V2Q
Warning: no linearization of back_N
Warning: no linearization of bank_N
Warning: no linearization of bark_N
Warning: no linearization of become_VA
Warning: no linearization of beg_V2V
Warning: no linearization of belly_N
Warning: no linearization of bike_N
Warning: no linearization of bite_V2
Warning: no linearization of blood_N
Warning: no linearization of blow_V
Warning: no linearization of blue_A
Warning: no linearization of boat_N
Warning: no linearization of bone_N
Warning: no linearization of boot_N
Warning: no linearization of boss_N
Warning: no linearization of breast_N
Warning: no linearization of breathe_V
Warning: no linearization of broad_A
Warning: no linearization of brother_N2
Warning: no linearization of brown_A
Warning: no linearization of burn_V
Warning: no linearization of butter_N
Warning: no linearization of buy_V2
Warning: no linearization of camera_N
Warning: no linearization of cap_N
Warning: no linearization of car_N
Warning: no linearization of carpet_N
Warning: no linearization of ceiling_N
Warning: no linearization of chair_N
Warning: no linearization of cheese_N
Warning: no linearization of child_N
Warning: no linearization of church_N
Warning: no linearization of clean_A
Warning: no linearization of clever_A
Warning: no linearization of close_V2
Warning: no linearization of cloud_N
Warning: no linearization of coat_N
Warning: no linearization of cold_A
Warning: no linearization of come_V
Warning: no linearization of computer_N
Warning: no linearization of correct_A
Warning: no linearization of count_V2
Warning: no linearization of country_N
Warning: no linearization of cousin_N
Warning: no linearization of cow_N
Warning: no linearization of cut_V2
Warning: no linearization of day_N
Warning: no linearization of die_V
Warning: no linearization of dig_V
Warning: no linearization of dirty_A
Warning: no linearization of distance_N3
Warning: no linearization of do_V2
Warning: no linearization of doctor_N
Warning: no linearization of dog_N
Warning: no linearization of door_N
Warning: no linearization of drink_V2
Warning: no linearization of dry_A
Warning: no linearization of dull_A
Warning: no linearization of dust_N
Warning: no linearization of ear_N
Warning: no linearization of earth_N
Warning: no linearization of easy_A2V
Warning: no linearization of eat_V2
Warning: no linearization of egg_N
Warning: no linearization of empty_A
Warning: no linearization of enemy_N
Warning: no linearization of eye_N
Warning: no linearization of factory_N
Warning: no linearization of fall_V
Warning: no linearization of far_Adv
Warning: no linearization of fat_N
Warning: no linearization of father_N2
Warning: no linearization of fear_V2
Warning: no linearization of fear_VS
Warning: no linearization of feather_N
Warning: no linearization of fight_V2
Warning: no linearization of find_V2
Warning: no linearization of fingernail_N
Warning: no linearization of fire_N
Warning: no linearization of fish_N
Warning: no linearization of float_V
Warning: no linearization of floor_N
Warning: no linearization of flow_V
Warning: no linearization of flower_N
Warning: no linearization of fly_V
Warning: no linearization of fog_N
Warning: no linearization of foot_N
Warning: no linearization of forest_N
Warning: no linearization of forget_V2
Warning: no linearization of freeze_V
Warning: no linearization of fridge_N
Warning: no linearization of friend_N
Warning: no linearization of fruit_N
Warning: no linearization of full_A
Warning: no linearization of fun_AV
Warning: no linearization of garden_N
Warning: no linearization of girl_N
Warning: no linearization of give_V3
Warning: no linearization of glove_N
Warning: no linearization of go_V
Warning: no linearization of grammar_N
Warning: no linearization of grass_N
Warning: no linearization of green_A
Warning: no linearization of guts_N
Warning: no linearization of hair_N
Warning: no linearization of hand_N
Warning: no linearization of harbour_N
Warning: no linearization of hat_N
Warning: no linearization of hate_V2
Warning: no linearization of head_N
Warning: no linearization of hear_V2
Warning: no linearization of heart_N
Warning: no linearization of heavy_A
Warning: no linearization of hill_N
Warning: no linearization of hit_V2
Warning: no linearization of hold_V2
Warning: no linearization of hope_VS
Warning: no linearization of horn_N
Warning: no linearization of horse_N
Warning: no linearization of hot_A
Warning: no linearization of house_N
Warning: no linearization of hunt_V2
Warning: no linearization of husband_N
Warning: no linearization of ice_N
Warning: no linearization of important_A
Warning: no linearization of industry_N
Warning: no linearization of iron_N
Warning: no linearization of john_PN
Warning: no linearization of jump_V
Warning: no linearization of kill_V2
Warning: no linearization of king_N
Warning: no linearization of knee_N
Warning: no linearization of know_V2
Warning: no linearization of know_VQ
Warning: no linearization of know_VS
Warning: no linearization of lake_N
Warning: no linearization of lamp_N
Warning: no linearization of language_N
Warning: no linearization of laugh_V
Warning: no linearization of leaf_N
Warning: no linearization of learn_V2
Warning: no linearization of leather_N
Warning: no linearization of leave_V2
Warning: no linearization of left_Ord
Warning: no linearization of leg_N
Warning: no linearization of lie_V
Warning: no linearization of like_V2
Warning: no linearization of listen_V2
Warning: no linearization of live_V
Warning: no linearization of liver_N
Warning: no linearization of long_A
Warning: no linearization of lose_V2
Warning: no linearization of louse_N
Warning: no linearization of man_N
Warning: no linearization of married_A2
Warning: no linearization of meat_N
Warning: no linearization of milk_N
Warning: no linearization of moon_N
Warning: no linearization of mother_N2
Warning: no linearization of mountain_N
Warning: no linearization of mouth_N
Warning: no linearization of music_N
Warning: no linearization of name_N
Warning: no linearization of narrow_A
Warning: no linearization of near_A
Warning: no linearization of neck_N
Warning: no linearization of new_A
Warning: no linearization of newspaper_N
Warning: no linearization of night_N
Warning: no linearization of nose_N
Warning: no linearization of now_Adv
Warning: no linearization of number_N
Warning: no linearization of oil_N
Warning: no linearization of old_A
Warning: no linearization of open_V2
Warning: no linearization of paint_V2A
Warning: no linearization of paper_N
Warning: no linearization of paris_PN
Warning: no linearization of peace_N
Warning: no linearization of pen_N
Warning: no linearization of person_N
Warning: no linearization of planet_N
Warning: no linearization of plastic_N
Warning: no linearization of play_V
Warning: no linearization of play_V2
Warning: no linearization of policeman_N
Warning: no linearization of priest_N
Warning: no linearization of probable_AS
Warning: no linearization of pull_V2
Warning: no linearization of push_V2
Warning: no linearization of put_V2
Warning: no linearization of queen_N
Warning: no linearization of question_N
Warning: no linearization of radio_N
Warning: no linearization of rain_N
Warning: no linearization of rain_V0
Warning: no linearization of read_V2
Warning: no linearization of ready_A
Warning: no linearization of reason_N
Warning: no linearization of red_A
Warning: no linearization of religion_N
Warning: no linearization of restaurant_N
Warning: no linearization of right_Ord
Warning: no linearization of river_N
Warning: no linearization of road_N
Warning: no linearization of rock_N
Warning: no linearization of roof_N
Warning: no linearization of root_N
Warning: no linearization of rope_N
Warning: no linearization of rotten_A
Warning: no linearization of round_A
Warning: no linearization of rub_V2
Warning: no linearization of rubber_N
Warning: no linearization of rule_N
Warning: no linearization of run_V
Warning: no linearization of salt_N
Warning: no linearization of sand_N
Warning: no linearization of say_VS
Warning: no linearization of school_N
Warning: no linearization of science_N
Warning: no linearization of scratch_V2
Warning: no linearization of sea_N
Warning: no linearization of see_V2
Warning: no linearization of seed_N
Warning: no linearization of seek_V2
Warning: no linearization of sell_V3
Warning: no linearization of send_V3
Warning: no linearization of sew_V
Warning: no linearization of sharp_A
Warning: no linearization of sheep_N
Warning: no linearization of ship_N
Warning: no linearization of shirt_N
Warning: no linearization of shoe_N
Warning: no linearization of shop_N
Warning: no linearization of short_A
Warning: no linearization of silver_N
Warning: no linearization of sing_V
Warning: no linearization of sister_N
Warning: no linearization of sit_V
Warning: no linearization of skin_N
Warning: no linearization of sky_N
Warning: no linearization of small_A
Warning: no linearization of smell_V
Warning: no linearization of smoke_N
Warning: no linearization of smooth_A
Warning: no linearization of snake_N
Warning: no linearization of snow_N
Warning: no linearization of sock_N
Warning: no linearization of song_N
Warning: no linearization of speak_V2
Warning: no linearization of spit_V
Warning: no linearization of split_V2
Warning: no linearization of squeeze_V2
Warning: no linearization of stab_V2
Warning: no linearization of stand_V
Warning: no linearization of star_N
Warning: no linearization of steel_N
Warning: no linearization of stick_N
Warning: no linearization of stone_N
Warning: no linearization of stop_V
Warning: no linearization of stove_N
Warning: no linearization of straight_A
Warning: no linearization of student_N
Warning: no linearization of stupid_A
Warning: no linearization of suck_V2
Warning: no linearization of sun_N
Warning: no linearization of swell_V
Warning: no linearization of swim_V
Warning: no linearization of switch8off_V2
Warning: no linearization of switch8on_V2
Warning: no linearization of table_N
Warning: no linearization of tail_N
Warning: no linearization of talk_V3
Warning: no linearization of teach_V2
Warning: no linearization of teacher_N
Warning: no linearization of television_N
Warning: no linearization of thick_A
Warning: no linearization of thin_A
Warning: no linearization of think_V
Warning: no linearization of throw_V2
Warning: no linearization of tie_V2
Warning: no linearization of today_Adv
Warning: no linearization of tongue_N
Warning: no linearization of tooth_N
Warning: no linearization of train_N
Warning: no linearization of travel_V
Warning: no linearization of tree_N
Warning: no linearization of turn_V
Warning: no linearization of ugly_A
Warning: no linearization of uncertain_A
Warning: no linearization of understand_V2
Warning: no linearization of university_N
Warning: no linearization of village_N
Warning: no linearization of vomit_V
Warning: no linearization of wait_V2
Warning: no linearization of walk_V
Warning: no linearization of war_N
Warning: no linearization of warm_A
Warning: no linearization of wash_V2
Warning: no linearization of watch_V2
Warning: no linearization of water_N
Warning: no linearization of wet_A
Warning: no linearization of white_A
Warning: no linearization of wide_A
Warning: no linearization of wife_N
Warning: no linearization of win_V2
Warning: no linearization of wind_N
Warning: no linearization of window_N
Warning: no linearization of wine_N
Warning: no linearization of wing_N
Warning: no linearization of wipe_V2
Warning: no linearization of woman_N
Warning: no linearization of wonder_VQ
Warning: no linearization of wood_N
Warning: no linearization of worm_N
Warning: no linearization of write_V2
Warning: no linearization of year_N
Warning: no linearization of yellow_A
Warning: no linearization of young_A
write file /home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/LangLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/LangLat.gfo
linking ... OK
Languages: LangLat
See you.
0 msec

View File

@@ -0,0 +1,614 @@
* * *
* *
* *
*
*
* * * * * * *
* * *
* * * * * *
* * *
* * *
This is GF version 3.4.
No detailed version info available
Built on linux/x86_64 with ghc-7.0, flags: interrupt
License: see help -license.
Bug reports: http://code.google.com/p/grammatical-framework/issues/list
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Common.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Common.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Cat.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Cat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Noun.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Noun.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Verb.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Verb.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Adjective.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Adjective.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Adverb.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Adverb.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Numeral.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Numeral.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Sentence.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Sentence.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Question.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Question.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Relative.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Relative.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Conjunction.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Conjunction.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Phrase.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Phrase.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Text.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Text.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Structural.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Structural.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Idiom.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Idiom.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Tense.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Tense.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/NumeralTransfer.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/NumeralTransfer.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Transfer.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Transfer.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Grammar.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Grammar.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Lexicon.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Lexicon.gfo
- compiling /home/herb/src/GF-daherb/lib/src/abstract/Lang.gf... write file /home/herb/src/GF-daherb/lib/src/abstract/Lang.gfo
- compiling /home/herb/src/GF-daherb/lib/src/prelude/Predef.gf... write file /home/herb/src/GF-daherb/lib/src/prelude/Predef.gfo
- compiling /home/herb/src/GF-daherb/lib/src/prelude/Prelude.gf... write file /home/herb/src/GF-daherb/lib/src/prelude/Prelude.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/ParamX.gf... write file /home/herb/src/GF-daherb/lib/src/common/ParamX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/CommonX.gf... write file /home/herb/src/GF-daherb/lib/src/common/CommonX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/ResLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/ResLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/CatLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/CatLat.gf:
Warning: no linearization type for A2, inserting default {s : Str}
Warning: no linearization type for Card, inserting default {s : Str}
Warning: no linearization type for ClSlash, inserting default {s : Str}
Warning: no linearization type for IComp, inserting default {s : Str}
Warning: no linearization type for IDet, inserting default {s : Str}
Warning: no linearization type for IP, inserting default {s : Str}
Warning: no linearization type for IQuant, inserting default {s : Str}
Warning: no linearization type for Imp, inserting default {s : Str}
Warning: no linearization type for N2, inserting default {s : Str}
Warning: no linearization type for N3, inserting default {s : Str}
Warning: no linearization type for Numeral, inserting default {s : Str}
Warning: no linearization type for Ord, inserting default {s : Str}
Warning: no linearization type for Predet, inserting default {s : Str}
Warning: no linearization type for QCl, inserting default {s : Str}
Warning: no linearization type for QS, inserting default {s : Str}
Warning: no linearization type for RCl, inserting default {s : Str}
Warning: no linearization type for RP, inserting default {s : Str}
Warning: no linearization type for RS, inserting default {s : Str}
Warning: no linearization type for S, inserting default {s : Str}
Warning: no linearization type for SSlash, inserting default {s : Str}
Warning: no linearization type for Subj, inserting default {s : Str}
Warning: no linearization type for V2A, inserting default {s : Str}
Warning: no linearization type for V2Q, inserting default {s : Str}
Warning: no linearization type for V2S, inserting default {s : Str}
Warning: no linearization type for V2V, inserting default {s : Str}
Warning: no linearization type for V3, inserting default {s : Str}
Warning: no linearization type for VA, inserting default {s : Str}
Warning: no linearization type for VQ, inserting default {s : Str}
Warning: no linearization type for VS, inserting default {s : Str}
Warning: no linearization type for VV, inserting default {s : Str}
write file /home/herb/src/GF-daherb/lib/src/latin/CatLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/NounLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/NounLat.gf:
Warning: no linearization of AdNum
Warning: no linearization of AdvNP
Warning: no linearization of ApposCN
Warning: no linearization of ComplN2
Warning: no linearization of ComplN3
Warning: no linearization of CountNP
Warning: no linearization of DetQuantOrd
Warning: no linearization of IndefArt
Warning: no linearization of MassNP
Warning: no linearization of NumCard
Warning: no linearization of NumDigits
Warning: no linearization of NumNumeral
Warning: no linearization of OrdDigits
Warning: no linearization of OrdNumeral
Warning: no linearization of OrdSuperl
Warning: no linearization of PPartNP
Warning: no linearization of PartNP
Warning: no linearization of PossNP
Warning: no linearization of PossPron
Warning: no linearization of PredetNP
Warning: no linearization of RelCN
Warning: no linearization of RelNP
Warning: no linearization of SentCN
Warning: no linearization of Use2N3
Warning: no linearization of Use3N3
Warning: no linearization of UseN2
Warning: no linearization of UsePN
write file /home/herb/src/GF-daherb/lib/src/latin/NounLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/VerbLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/VerbLat.gf:
Warning: no linearization of AdVVPSlash
Warning: no linearization of AdvVPSlash
Warning: no linearization of CompAdv
Warning: no linearization of CompCN
Warning: no linearization of CompNP
Warning: no linearization of ComplVA
Warning: no linearization of ComplVQ
Warning: no linearization of ComplVS
Warning: no linearization of ComplVV
Warning: no linearization of PassV2
Warning: no linearization of ReflVP
Warning: no linearization of Slash2V3
Warning: no linearization of Slash3V3
Warning: no linearization of SlashV2A
Warning: no linearization of SlashV2Q
Warning: no linearization of SlashV2S
Warning: no linearization of SlashV2V
Warning: no linearization of SlashV2VNP
Warning: no linearization of SlashVV
Warning: no linearization of UseCopula
Warning: no linearization of VPSlashPrep
write file /home/herb/src/GF-daherb/lib/src/latin/VerbLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gf:
Warning: no linearization of AdjOrd
Warning: no linearization of AdvAP
Warning: no linearization of CAdvAP
Warning: no linearization of ComparA
Warning: no linearization of ComplA2
Warning: no linearization of ReflA2
Warning: no linearization of SentAP
Warning: no linearization of UseA2
Warning: no linearization of UseComparA
write file /home/herb/src/GF-daherb/lib/src/latin/AdjectiveLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gf:
Warning: no linearization of AdAdv
Warning: no linearization of AdnCAdv
Warning: no linearization of ComparAdvAdj
Warning: no linearization of ComparAdvAdjS
Warning: no linearization of PositAdAAdj
Warning: no linearization of PositAdvAdj
Warning: no linearization of SubjS
write file /home/herb/src/GF-daherb/lib/src/latin/AdverbLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gf:
Warning: no linearization type for Digit, inserting default {s : Str}
Warning: no linearization type for Sub10, inserting default {s : Str}
Warning: no linearization type for Sub100, inserting default {s : Str}
Warning: no linearization type for Sub1000, inserting default {s : Str}
Warning: no linearization type for Sub1000000, inserting default {s : Str}
Warning: no linearization of n2
Warning: no linearization of n3
Warning: no linearization of n4
Warning: no linearization of n5
Warning: no linearization of n6
Warning: no linearization of n7
Warning: no linearization of n8
Warning: no linearization of n9
Warning: no linearization of num
Warning: no linearization of pot0
Warning: no linearization of pot01
Warning: no linearization of pot0as1
Warning: no linearization of pot1
Warning: no linearization of pot110
Warning: no linearization of pot111
Warning: no linearization of pot1as2
Warning: no linearization of pot1plus
Warning: no linearization of pot1to19
Warning: no linearization of pot2
Warning: no linearization of pot2as3
Warning: no linearization of pot2plus
Warning: no linearization of pot3
Warning: no linearization of pot3plus
write file /home/herb/src/GF-daherb/lib/src/latin/NumeralLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gf:
Warning: no linearization of AdvS
Warning: no linearization of AdvSlash
Warning: no linearization of EmbedQS
Warning: no linearization of EmbedS
Warning: no linearization of EmbedVP
Warning: no linearization of ExtAdvS
Warning: no linearization of ImpVP
Warning: no linearization of PredSCVP
Warning: no linearization of RelS
Warning: no linearization of SSubjS
Warning: no linearization of SlashPrep
Warning: no linearization of SlashVP
Warning: no linearization of SlashVS
Warning: no linearization of UseCl
Warning: no linearization of UseQCl
Warning: no linearization of UseRCl
Warning: no linearization of UseSlash
write file /home/herb/src/GF-daherb/lib/src/latin/SentenceLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/TextX.gf... write file /home/herb/src/GF-daherb/lib/src/common/TextX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/ParadigmsLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/ParadigmsLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gf:
Warning: no linearization of all_Predet
Warning: no linearization of although_Subj
Warning: no linearization of and_Conj
Warning: no linearization of as_CAdv
Warning: no linearization of at_least_AdN
Warning: no linearization of at_most_AdN
Warning: no linearization of because_Subj
Warning: no linearization of behind_Prep
Warning: no linearization of both7and_DConj
Warning: no linearization of can8know_VV
Warning: no linearization of can_VV
Warning: no linearization of during_Prep
Warning: no linearization of either7or_DConj
Warning: no linearization of every_Det
Warning: no linearization of everybody_NP
Warning: no linearization of everything_NP
Warning: no linearization of everywhere_Adv
Warning: no linearization of except_Prep
Warning: no linearization of few_Det
Warning: no linearization of have_V2
Warning: no linearization of here7from_Adv
Warning: no linearization of here7to_Adv
Warning: no linearization of how8many_IDet
Warning: no linearization of how8much_IAdv
Warning: no linearization of how_IAdv
Warning: no linearization of if_Subj
Warning: no linearization of if_then_Conj
Warning: no linearization of less_CAdv
Warning: no linearization of many_Det
Warning: no linearization of more_CAdv
Warning: no linearization of most_Predet
Warning: no linearization of much_Det
Warning: no linearization of must_VV
Warning: no linearization of no_Quant
Warning: no linearization of nobody_NP
Warning: no linearization of not_Predet
Warning: no linearization of nothing_NP
Warning: no linearization of on_Prep
Warning: no linearization of or_Conj
Warning: no linearization of otherwise_PConj
Warning: no linearization of please_Voc
Warning: no linearization of quite_Adv
Warning: no linearization of somePl_Det
Warning: no linearization of someSg_Det
Warning: no linearization of somebody_NP
Warning: no linearization of something_NP
Warning: no linearization of somewhere_Adv
Warning: no linearization of that_Subj
Warning: no linearization of there7from_Adv
Warning: no linearization of there7to_Adv
Warning: no linearization of there_Adv
Warning: no linearization of therefore_PConj
Warning: no linearization of through_Prep
Warning: no linearization of to_Prep
Warning: no linearization of too_AdA
Warning: no linearization of want_VV
Warning: no linearization of whatPl_IP
Warning: no linearization of whatSg_IP
Warning: no linearization of when_IAdv
Warning: no linearization of when_Subj
Warning: no linearization of where_IAdv
Warning: no linearization of which_IQuant
Warning: no linearization of whoPl_IP
Warning: no linearization of whoSg_IP
Warning: no linearization of why_IAdv
write file /home/herb/src/GF-daherb/lib/src/latin/StructuralLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/common/TenseX.gf... write file /home/herb/src/GF-daherb/lib/src/common/TenseX.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/GrammarLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/GrammarLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gf...
/home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gf:
Warning: no linearization of add_V3
Warning: no linearization of airplane_N
Warning: no linearization of alas_Interj
Warning: no linearization of already_Adv
Warning: no linearization of animal_N
Warning: no linearization of answer_V2S
Warning: no linearization of apartment_N
Warning: no linearization of apple_N
Warning: no linearization of ashes_N
Warning: no linearization of ask_V2Q
Warning: no linearization of back_N
Warning: no linearization of bank_N
Warning: no linearization of bark_N
Warning: no linearization of become_VA
Warning: no linearization of beg_V2V
Warning: no linearization of belly_N
Warning: no linearization of bike_N
Warning: no linearization of bite_V2
Warning: no linearization of blood_N
Warning: no linearization of blow_V
Warning: no linearization of blue_A
Warning: no linearization of boat_N
Warning: no linearization of bone_N
Warning: no linearization of boot_N
Warning: no linearization of boss_N
Warning: no linearization of breast_N
Warning: no linearization of breathe_V
Warning: no linearization of broad_A
Warning: no linearization of brother_N2
Warning: no linearization of brown_A
Warning: no linearization of burn_V
Warning: no linearization of butter_N
Warning: no linearization of buy_V2
Warning: no linearization of camera_N
Warning: no linearization of cap_N
Warning: no linearization of car_N
Warning: no linearization of carpet_N
Warning: no linearization of ceiling_N
Warning: no linearization of chair_N
Warning: no linearization of cheese_N
Warning: no linearization of child_N
Warning: no linearization of church_N
Warning: no linearization of clean_A
Warning: no linearization of clever_A
Warning: no linearization of close_V2
Warning: no linearization of cloud_N
Warning: no linearization of coat_N
Warning: no linearization of cold_A
Warning: no linearization of come_V
Warning: no linearization of computer_N
Warning: no linearization of correct_A
Warning: no linearization of count_V2
Warning: no linearization of country_N
Warning: no linearization of cousin_N
Warning: no linearization of cow_N
Warning: no linearization of cut_V2
Warning: no linearization of day_N
Warning: no linearization of die_V
Warning: no linearization of dig_V
Warning: no linearization of dirty_A
Warning: no linearization of distance_N3
Warning: no linearization of do_V2
Warning: no linearization of doctor_N
Warning: no linearization of dog_N
Warning: no linearization of door_N
Warning: no linearization of drink_V2
Warning: no linearization of dry_A
Warning: no linearization of dull_A
Warning: no linearization of dust_N
Warning: no linearization of ear_N
Warning: no linearization of earth_N
Warning: no linearization of easy_A2V
Warning: no linearization of eat_V2
Warning: no linearization of egg_N
Warning: no linearization of empty_A
Warning: no linearization of enemy_N
Warning: no linearization of eye_N
Warning: no linearization of factory_N
Warning: no linearization of fall_V
Warning: no linearization of far_Adv
Warning: no linearization of fat_N
Warning: no linearization of father_N2
Warning: no linearization of fear_V2
Warning: no linearization of fear_VS
Warning: no linearization of feather_N
Warning: no linearization of fight_V2
Warning: no linearization of find_V2
Warning: no linearization of fingernail_N
Warning: no linearization of fire_N
Warning: no linearization of fish_N
Warning: no linearization of float_V
Warning: no linearization of floor_N
Warning: no linearization of flow_V
Warning: no linearization of flower_N
Warning: no linearization of fly_V
Warning: no linearization of fog_N
Warning: no linearization of foot_N
Warning: no linearization of forest_N
Warning: no linearization of forget_V2
Warning: no linearization of freeze_V
Warning: no linearization of fridge_N
Warning: no linearization of friend_N
Warning: no linearization of fruit_N
Warning: no linearization of full_A
Warning: no linearization of fun_AV
Warning: no linearization of garden_N
Warning: no linearization of girl_N
Warning: no linearization of give_V3
Warning: no linearization of glove_N
Warning: no linearization of go_V
Warning: no linearization of grammar_N
Warning: no linearization of grass_N
Warning: no linearization of green_A
Warning: no linearization of guts_N
Warning: no linearization of hair_N
Warning: no linearization of hand_N
Warning: no linearization of harbour_N
Warning: no linearization of hat_N
Warning: no linearization of hate_V2
Warning: no linearization of head_N
Warning: no linearization of hear_V2
Warning: no linearization of heart_N
Warning: no linearization of heavy_A
Warning: no linearization of hill_N
Warning: no linearization of hit_V2
Warning: no linearization of hold_V2
Warning: no linearization of hope_VS
Warning: no linearization of horn_N
Warning: no linearization of horse_N
Warning: no linearization of hot_A
Warning: no linearization of house_N
Warning: no linearization of hunt_V2
Warning: no linearization of husband_N
Warning: no linearization of ice_N
Warning: no linearization of important_A
Warning: no linearization of industry_N
Warning: no linearization of iron_N
Warning: no linearization of john_PN
Warning: no linearization of jump_V
Warning: no linearization of kill_V2
Warning: no linearization of king_N
Warning: no linearization of knee_N
Warning: no linearization of know_V2
Warning: no linearization of know_VQ
Warning: no linearization of know_VS
Warning: no linearization of lake_N
Warning: no linearization of lamp_N
Warning: no linearization of language_N
Warning: no linearization of laugh_V
Warning: no linearization of leaf_N
Warning: no linearization of learn_V2
Warning: no linearization of leather_N
Warning: no linearization of leave_V2
Warning: no linearization of left_Ord
Warning: no linearization of leg_N
Warning: no linearization of lie_V
Warning: no linearization of like_V2
Warning: no linearization of listen_V2
Warning: no linearization of live_V
Warning: no linearization of liver_N
Warning: no linearization of long_A
Warning: no linearization of lose_V2
Warning: no linearization of louse_N
Warning: no linearization of man_N
Warning: no linearization of married_A2
Warning: no linearization of meat_N
Warning: no linearization of milk_N
Warning: no linearization of moon_N
Warning: no linearization of mother_N2
Warning: no linearization of mountain_N
Warning: no linearization of mouth_N
Warning: no linearization of music_N
Warning: no linearization of name_N
Warning: no linearization of narrow_A
Warning: no linearization of near_A
Warning: no linearization of neck_N
Warning: no linearization of new_A
Warning: no linearization of newspaper_N
Warning: no linearization of night_N
Warning: no linearization of nose_N
Warning: no linearization of now_Adv
Warning: no linearization of number_N
Warning: no linearization of oil_N
Warning: no linearization of old_A
Warning: no linearization of open_V2
Warning: no linearization of paint_V2A
Warning: no linearization of paper_N
Warning: no linearization of paris_PN
Warning: no linearization of peace_N
Warning: no linearization of pen_N
Warning: no linearization of person_N
Warning: no linearization of planet_N
Warning: no linearization of plastic_N
Warning: no linearization of play_V
Warning: no linearization of play_V2
Warning: no linearization of policeman_N
Warning: no linearization of priest_N
Warning: no linearization of probable_AS
Warning: no linearization of pull_V2
Warning: no linearization of push_V2
Warning: no linearization of put_V2
Warning: no linearization of queen_N
Warning: no linearization of question_N
Warning: no linearization of radio_N
Warning: no linearization of rain_N
Warning: no linearization of rain_V0
Warning: no linearization of read_V2
Warning: no linearization of ready_A
Warning: no linearization of reason_N
Warning: no linearization of red_A
Warning: no linearization of religion_N
Warning: no linearization of restaurant_N
Warning: no linearization of right_Ord
Warning: no linearization of river_N
Warning: no linearization of road_N
Warning: no linearization of rock_N
Warning: no linearization of roof_N
Warning: no linearization of root_N
Warning: no linearization of rope_N
Warning: no linearization of rotten_A
Warning: no linearization of round_A
Warning: no linearization of rub_V2
Warning: no linearization of rubber_N
Warning: no linearization of rule_N
Warning: no linearization of run_V
Warning: no linearization of salt_N
Warning: no linearization of sand_N
Warning: no linearization of say_VS
Warning: no linearization of school_N
Warning: no linearization of science_N
Warning: no linearization of scratch_V2
Warning: no linearization of sea_N
Warning: no linearization of see_V2
Warning: no linearization of seed_N
Warning: no linearization of seek_V2
Warning: no linearization of sell_V3
Warning: no linearization of send_V3
Warning: no linearization of sew_V
Warning: no linearization of sharp_A
Warning: no linearization of sheep_N
Warning: no linearization of ship_N
Warning: no linearization of shirt_N
Warning: no linearization of shoe_N
Warning: no linearization of shop_N
Warning: no linearization of short_A
Warning: no linearization of silver_N
Warning: no linearization of sing_V
Warning: no linearization of sister_N
Warning: no linearization of sit_V
Warning: no linearization of skin_N
Warning: no linearization of sky_N
Warning: no linearization of small_A
Warning: no linearization of smell_V
Warning: no linearization of smoke_N
Warning: no linearization of smooth_A
Warning: no linearization of snake_N
Warning: no linearization of snow_N
Warning: no linearization of sock_N
Warning: no linearization of song_N
Warning: no linearization of speak_V2
Warning: no linearization of spit_V
Warning: no linearization of split_V2
Warning: no linearization of squeeze_V2
Warning: no linearization of stab_V2
Warning: no linearization of stand_V
Warning: no linearization of star_N
Warning: no linearization of steel_N
Warning: no linearization of stick_N
Warning: no linearization of stone_N
Warning: no linearization of stop_V
Warning: no linearization of stove_N
Warning: no linearization of straight_A
Warning: no linearization of student_N
Warning: no linearization of stupid_A
Warning: no linearization of suck_V2
Warning: no linearization of sun_N
Warning: no linearization of swell_V
Warning: no linearization of swim_V
Warning: no linearization of switch8off_V2
Warning: no linearization of switch8on_V2
Warning: no linearization of table_N
Warning: no linearization of tail_N
Warning: no linearization of talk_V3
Warning: no linearization of teach_V2
Warning: no linearization of teacher_N
Warning: no linearization of television_N
Warning: no linearization of thick_A
Warning: no linearization of thin_A
Warning: no linearization of think_V
Warning: no linearization of throw_V2
Warning: no linearization of tie_V2
Warning: no linearization of today_Adv
Warning: no linearization of tongue_N
Warning: no linearization of tooth_N
Warning: no linearization of train_N
Warning: no linearization of travel_V
Warning: no linearization of tree_N
Warning: no linearization of turn_V
Warning: no linearization of ugly_A
Warning: no linearization of uncertain_A
Warning: no linearization of understand_V2
Warning: no linearization of university_N
Warning: no linearization of village_N
Warning: no linearization of vomit_V
Warning: no linearization of wait_V2
Warning: no linearization of walk_V
Warning: no linearization of war_N
Warning: no linearization of warm_A
Warning: no linearization of wash_V2
Warning: no linearization of watch_V2
Warning: no linearization of water_N
Warning: no linearization of wet_A
Warning: no linearization of white_A
Warning: no linearization of wide_A
Warning: no linearization of wife_N
Warning: no linearization of win_V2
Warning: no linearization of wind_N
Warning: no linearization of window_N
Warning: no linearization of wine_N
Warning: no linearization of wing_N
Warning: no linearization of wipe_V2
Warning: no linearization of woman_N
Warning: no linearization of wonder_VQ
Warning: no linearization of wood_N
Warning: no linearization of worm_N
Warning: no linearization of write_V2
Warning: no linearization of year_N
Warning: no linearization of yellow_A
Warning: no linearization of young_A
write file /home/herb/src/GF-daherb/lib/src/latin/LexiconLat.gfo
- compiling /home/herb/src/GF-daherb/lib/src/latin/LangLat.gf... write file /home/herb/src/GF-daherb/lib/src/latin/LangLat.gfo
linking ... OK
Languages: LangLat
See you.
0 msec

View File

@@ -0,0 +1,28 @@
1./a-Declension (f.) 2./o-Declension (m.) (n.) (m.) 3./Consonant Declension (m.) (f.) (n.)
s Sg Nom : -a s Sg Nom : -us -um -er s Sg Nom : -or -as -ur
s Sg Acc : -am s Sg Acc : -um -um -r-um s Sg Acc : -or-em -at-em -ur
s Sg Gen : -ae s Sg Gen : -i -i -r-i s Sg Gen : -or-is -at-is -or-is
s Sg Dat : -ae s Sg Dat : -o -o -o s Sg Dat : -or-i -at-i -or-i
s Sg Abl : in -a s Sg Abl : in -o -o in/a -o s Sg Abl : -or-e -at-e -or-e
s Sg Voc : -a s Sg Voc : -e -um -er s Sg Voc : -or -as -ur
s Pl Nom : -ae s Pl Nom : -i -a -r-i s Pl Nom : -or-es -at-es -or-a
s Pl Acc : -as s Pl Acc : -os -a -r-os s Pl Acc : -or-es -at-es -or-a
s Pl Gen : -arum s Pl Gen : -orum -orum -r-orum s Pl Gen : -or-um -at-um -or-um
s Pl Dat : -is s Pl Dat : -is -is -r-is s Pl Dat : -or-ibus -at-ibus -or-ibus
s Pl Abl : in -is s Pl Abl : in -is -is in/a -r-is s Pl Abl : -or-ibus -at-ibus -or-ibus
s Pl Voc : -ae s Pl Voc : -i -a -r-i s Pl Voc : -or-es -at-es -or-a
3./i-Declension (f.) (f.) (f.) (n.) 4./u-Declension (m.) (n.) 5./e-Declension (f.)
s Sg Nom : -is -rs -is -e s Sg Nom : -us -u s Sg Nom : -es
s Sg Acc : -em -rt-em -im -e s Sg Acc : -um -u s Sg Acc : -em
s Sg Gen : -is -rt-is -is -is s Sg Gen : -us -us s Sg Gen : -ei
s Sg Dat : -i -rt-i -i -i s Sg Dat : -ui -u s Sg Dat : -ei
s Sg Abl : -e -rt-e -i -i s Sg Abl : -u -u s Sg Abl : -e
s Sg Voc : -is -rs -is -e s Sg Voc : -us -u s Sg Voc : -es
s Pl Nom : -es -rt-es -es -ia s Pl Nom : -us -ua s Pl Nom : -es
s Pl Acc : -es -rt-es -is -ia s Pl Acc : -us -ua s Pl Acc : -es
s Pl Gen : -ium -rt-ium -ium -ium s Pl Gen : -uum -uum s Pl Gen : -erum
s Pl Dat : -ibus -rt-ibus -ibus -ibus s Pl Dat : -ibus -ibus s Pl Dat : -ebus
s Pl Abl : -ibus -rt-ibus -ibus -ibus s Pl Abl : -ibus -ibus s Pl Abl : -ebus
s Pl Voc : -es -rt-es -es -ia s Pl Voc : -us -ua s Pl Voc : -es

View File

@@ -0,0 +1,44 @@
abstract ExtraLexicon = Cat ** {
fun
-- Navigatio sancti Brendani abbatis
abbot_N : N ;
Brendan_PN : PN ;
bring_V : V ;
but_Conj : Conj ;
confessor_N : N ;
Christus_PN : PN ;
day_N : N ;
eight_Num : Numeral ;
holy_A : A ;
life_N : N ;
saint_N : N ;
see_V : V ;
texture_N : N ;
through_Prep : Prep ;
thus_Adv : Adv ;
voyage_N : N ;
yet_Adv : Adv ;
-- In L. Catilinam oratio I
Catilina_PN : PN ; -- Catilina
L_PN : PN ; -- L.
as_Adv : Adv ; -- qua
continuously_Adv : Adv ; -- usque
elude_V : V ; -- eludere
emit_V : V ; -- emittere
even_Adv : Adv ; -- etiam
finally_Adv : Adv ; -- tandem
have_V : V ; -- habere
how_Adv: Adv ; -- quam
in_Prep : Prep ; -- in
long8while_Adv : Adv ; -- diu
our_Pron : Pron ; -- noster
patience_N : N -- patientia
rage_N : N ; -- furor
senate_N : N ; -- senatus
speech_N : N ; -- oratio
that8near_Pron : Pron ; -- iste
waste_V : V ; -- abuti
we_Pron : Pron ; -- nos
what_Adv : Adv ; -- quo
your_Pron : Pron ; -- tuus
}

View File

@@ -0,0 +1,33 @@
concrete ExtraLexiconLat of ExtraLexicon = CatLat ** open
ParadigmsLat,
IrregLat,
ResLat,
Structural,
Prelude in {
flags
optimize=values ;
coding = utf8;
lincat
Numeral = { s : Str } ;
lin
-- Navigatio sancti Brendani abbatis
abbot_N = mkN "abbas" "abbatis" Masc ;
Brendan_PN = mkPN ( mkN "Brendanus" ) ;
bring_V = IrregLat.bring_V ;
but_Conj = sd2 [] "autem" ** { n = Sg } ;
Christus_PN = mkPN ( mkN "Christus" ) ;
confessor_N = mkN "confessor" "confessoris" Masc ;
day_N = mkN "dies" "diei" ( Masc | Fem ) ;
eight_Num = ss "octo" ;
holy_A = mkA "sanctus" ;
life_N = mkN "vita" ;
saint_N = mkN "sanctus" ;
see_V = mkV "videre" "video" "visi" "visum" ;
texture_N = mkN "textus" "textus" Masc ;
through_Prep = mkPrep "per" Acc ;
thus_Adv = ss "sic" ;
voyage_N = mkN "navigatio" "navigationis" Fem ;
yet_Adv = ss ( "iam" | "jam" ) ;
-- In L. Catilinam oratio I
speech_N =
}

View File

@@ -0,0 +1,7 @@
i -src LexiconLat.gf
gt -cat=N | l -table | wf -file=paradigms_N.txt
gt -cat=A | l -table | wf -file=paradigms_A.txt
gt -cat=V | l -table | wf -file=paradigms_V.txt
gt -cat=V2 | l -table | wf -append -file=paradigms_V.txt
gt -cat=Adv | l -table | wf -file=paradigms_Adv.txt
gt -cat=Prep | l -table | wf -file=paradigms_Prep.txt

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
s : iam
s : longe
s : nunc
s : hodie

View File

@@ -0,0 +1,8 @@
s : iam
s : longe
s : nunc
s : hodie

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,5 @@
Before
-------------------------------------------------
Renaming on Mac:
for each in *Eng.gf ;
@@ -26,4 +28,155 @@ concrete GrammarLat of Grammar =
StructuralLat,
-- IdiomLat
16.4.2012
-------------------------------------------------
Output of gf -src LangLat.gf &> 1st_run.txt to have a list what is missing
17.4.2012
-------------------------------------------------
Trying to get a gold standard for the lexicon
Step 1: Start finishing the lexicon using Langenscheidts Schulwoerterbuch Latein
and the Latin Wikipedia
Some Problems:
- no excat translation for ceiling
- same word for child and boy/girl
- different words for find either by accident or after searching
- no exact translation for glove
- no exact translation for hat and cap
- no translation for married in Langescheidt,
- no exact translation for pen in Langenscheidt, assume similarity to stylus
- is planet really masculine?
- same word for boot and shoe?
- make/extinguish fire as words for switch on/off
- same word for bone and leg
- i hate ambigous words
Todo:
- Need to check prepositions
Step 2: Define linearization for the first categories and generate the paradigms
- Change CatLat.gf a little bit
- Comment all lexicon entries with categories without linearization or generating
errors in ResLat.gf
- Create gf script generate_paradigms.gfs to generate all yet implemented word forms
Step 3: Check the forms in paradigms.txt
Lots and lots of work. Starting to use incremented checking and changing
6.6.2013:
---------------------
Changing morphology:
splitting 3rd declension into consonant and i-declension
defining rules for each of this classes
Recheck liber, puer, iocur, iecur, vir -> done
Check why the -i- is missing by os, lac, etc.
14.6.2013:
----------------------
Nouns and adjectives seem to be correct
19.6.2013:
----------------------
Fixed some issues in adjective declension.
Going on to verbs
Todo: Replace ... ** { lock_N =<> } with lin ...
=> Done 9.7.2013
26.6.2013
----------------------
Added Adjective comparation: just to be completely tested. But how?
29.6.2013
----------------------
Added Infinitive Active Future
Next step passive
30.6.2013
-----------------------
Need to change implementation of esse_V to prevent circular definition
=> done
9.7.2013
-----------------------
Checked adjective forms for bonus, niger, asper, acer/acris , fortis, felix and longus.
Superlative with maxime missing
13.7.2013
-----------------------
Introduced ###### as a ign for an invalid string
Values in mkV
for laudare
"cela" ++ "lauda" ++ "cele" ++ "laude" ++ "celab" ++ "lauda" ++ "celo" ++ "laudo" ++ "celant" ++ "laudant" ++ "celare" ++ "laudare" ++ "celavi" ++ "laudavi" ++ "celatus" ++ "laudatus" ++ "celabo" ++ "laudabo" ++ "celabunt" ++ "laudabunt" ++ "celabi" ++ "laudabi"
for monere
"cela" ++ "mone" ++ "cele" ++ "monea" ++ "celab" ++ "mone" ++ "celo" ++ "moneo" ++ "celant" ++ "monent" ++ "celare" ++ "monere" ++ "celavi" ++ "monui" ++ "celatus" ++ "monitus" ++ "celabo" ++ "monebo" ++ "celabunt" ++ "monebunt" ++ "celabi" ++ "monebi"
for audire
"cela" ++ "audi" ++ "cele" ++ "audia" ++ "celab" ++ "audie" ++ "celo" ++ "audio" ++ "celant" ++ "audiunt" ++ "celare" ++ "audire" ++ "celavi" ++ "audivi" ++ "celatus" ++ "auditus" ++ "celabo" ++ "audiam" ++ "celabunt" ++ "audient" ++ "celabi" ++ "audie"
for regere
"cela" ++ "regi" ++ "cele" ++ "rega" ++ "celab" ++ "rege" ++ "celo" ++ "rego" ++ "celant" ++ "regunt" ++ "celare" ++ "regere" ++ "celavi" ++ "rexi" ++ "celatus" ++ "rectum" ++ "celabo" ++ "regam" ++ "celabunt" ++ "regent" ++ "celabi" ++ "rege"
for capere
"cela" ++ "capi" ++ "cele" ++ "capia" ++ "celab" ++ "capie" ++ "celo" ++ "capio" ++ "celant" ++ "capiunt" ++ "celare" ++ "capere" ++ "celavi" ++ "cepii" ++ "celatus" ++ "captum" ++ "celabo" ++ "capiam" ++ "celabunt" ++ "capient" ++ "celabi" ++ "capie"
laudare monere audire regere capere
cela lauda mone audi regi capi pres_ind
cele laude monea audia rega capia pres_conj_stem
celab lauda mone audie rege capie impf_ind_stem
celo laudo moneo audio rego capio pres_ind_sg_p1
celant laudant monent audiunt regunt capiunt pres_ind_pl_p3
celare laudare monere audire regere capere inf_pres_act
celavi laudavi monui audivi rexi cepii perf_ind_sg_p1
celatus laudatus monitus auditus rectum captum inf_perf_pass
celabo laudabo monebo audiam regam capiam fut_I_sg_p1
celabunt laudabunt monebunt audient regent capient fut_I_pl_p3
celabi laudabi monebi audie rege capie fut_I_stem
14.7.2013
---------------
Starting with deponent verbs
15.7.2013
---------------
Retry to find minimum number of parameters for verb creation
inf_act_pres laudare monere audire regere capere
pres_stem lauda mone audi reg capi
pres_ind_base lauda mone audi regi capi
pres_conj_base laude monea audia rega capia
impf_ind_base laudaba moneba audieba regeba capieba
impf_conj_base laudare monere audire regere capere (=imf_act_pres)
fut_I_base laudabi monebi audie rege capie
imp_base lauda mone audi regi capi
perf_stem laudav monu audiv rex cep
perf_ind_base laudav monu audiv rex cep (=perf_stem)
perf_conj_base laudaveri monueri audiveri rexeri ceperi
pqperf_ind_base laudavera monuera audivera rexera cepera
pqperf_conj_base laudavisse monuisse audivisse rexisse cepisse
fut_II_base laudaveri monueri audiveri rexeri ceperi (=perf_conj_base)
part_stem laudat(u) monit(u) audit(u) rect(u) capt(u)
18.7.2013
----------------------
Project Goalss:
possibly ommited:
Numerals
Embedded Clauses
neccessary:
Simple NPs, simple VPs, basic declarative clauses, basic interrogative clauses
PredVP
UseCl/UseQCL
29.7.2013
-----------------------
Ommited for the moment:
Indefinite pronouns, interrogative pronouns, numerals
22.8.2013
-----------------------
Check suck_V2