mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
swedish mk2V and regV improved
This commit is contained in:
@@ -35,7 +35,7 @@ lin
|
|||||||
brother_N2 = mkN2 (mascN (mkN "bror" "brodern" "bröder" "bröderna")) "till" ;
|
brother_N2 = mkN2 (mascN (mkN "bror" "brodern" "bröder" "bröderna")) "till" ;
|
||||||
brown_ADeg = regADeg "brun" ;
|
brown_ADeg = regADeg "brun" ;
|
||||||
butter_N = regN "smör" neutrum ;
|
butter_N = regN "smör" neutrum ;
|
||||||
buy_V2 = dirV2 (mk2V "köpa" "köper") ;
|
buy_V2 = dirV2 (mk2V "köpa" "köpte") ;
|
||||||
camera_N = regN "kamera" utrum ;
|
camera_N = regN "kamera" utrum ;
|
||||||
cap_N = regN "mössa" utrum ;
|
cap_N = regN "mössa" utrum ;
|
||||||
car_N = regN "bil" utrum ;
|
car_N = regN "bil" utrum ;
|
||||||
@@ -49,7 +49,7 @@ lin
|
|||||||
city_N = mk2N "stad" "städer" ;
|
city_N = mk2N "stad" "städer" ;
|
||||||
clean_ADeg = regADeg "ren" ;
|
clean_ADeg = regADeg "ren" ;
|
||||||
clever_ADeg = regADeg "klok" ;
|
clever_ADeg = regADeg "klok" ;
|
||||||
close_V2 = dirV2 (mk2V "stänga" "stänger") ;
|
close_V2 = dirV2 (mk2V "stänga" "stängde") ;
|
||||||
coat_N = regN "rock" utrum ;
|
coat_N = regN "rock" utrum ;
|
||||||
cold_ADeg = regADeg "kall" ;
|
cold_ADeg = regADeg "kall" ;
|
||||||
come_V = (mkV "komma" "kommer" "kom" "kom" "kommit" "kommen") ;
|
come_V = (mkV "komma" "kommer" "kom" "kom" "kommit" "kommen") ;
|
||||||
@@ -104,7 +104,7 @@ lin
|
|||||||
learn_V2 = dirV2 (mkV "lära" "lär" "lär" "lärde" "lärt" "lärd") ; ---- refl!
|
learn_V2 = dirV2 (mkV "lära" "lär" "lär" "lärde" "lärt" "lärd") ; ---- refl!
|
||||||
leather_N = mkN "läder" "lädret" "läder" "lädren" ;
|
leather_N = mkN "läder" "lädret" "läder" "lädren" ;
|
||||||
leave_V2 = dirV2 (regV "lämna") ;
|
leave_V2 = dirV2 (regV "lämna") ;
|
||||||
like_V2 = mkV2 (mk2V "tycka" "tycker") "om" ;
|
like_V2 = mkV2 (mk2V "tycka" "tyckte") "om" ;
|
||||||
listen_V2 = mkV2 (regV "lyssna") "på" ;
|
listen_V2 = mkV2 (regV "lyssna") "på" ;
|
||||||
live_V = (irregV "leva" "levde" "levt") ; ---- ?
|
live_V = (irregV "leva" "levde" "levt") ; ---- ?
|
||||||
long_ADeg = irregADeg "lång" "längre" "längst" ;
|
long_ADeg = irregADeg "lång" "längre" "längst" ;
|
||||||
@@ -139,7 +139,7 @@ lin
|
|||||||
queen_N = regN "drottning" utrum ;
|
queen_N = regN "drottning" utrum ;
|
||||||
radio_N = regN "radio" utrum ; ----
|
radio_N = regN "radio" utrum ; ----
|
||||||
rain_V0 = mkV0 (regV "regna") ;
|
rain_V0 = mkV0 (regV "regna") ;
|
||||||
read_V2 = dirV2 (mk2V "läsa" "läser") ;
|
read_V2 = dirV2 (mk2V "läsa" "läste") ;
|
||||||
red_ADeg = mk2ADeg "röd" "rött" ;
|
red_ADeg = mk2ADeg "röd" "rött" ;
|
||||||
religion_N = mk2N "religion" "religioner" ;
|
religion_N = mk2N "religion" "religioner" ;
|
||||||
restaurant_N = mk2N "restaurang" "restauranger" ;
|
restaurant_N = mk2N "restaurang" "restauranger" ;
|
||||||
@@ -152,7 +152,7 @@ lin
|
|||||||
school_N = regN "skola" utrum;
|
school_N = regN "skola" utrum;
|
||||||
science_N = mk2N "vetenskap" "vetenskaper" ;
|
science_N = mk2N "vetenskap" "vetenskaper" ;
|
||||||
sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
|
sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
|
||||||
seek_V2 = dirV2 (mk2V "söka" "söker") ;
|
seek_V2 = dirV2 (mk2V "söka" "sökte") ;
|
||||||
see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
|
see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
|
||||||
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") "till" ;
|
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") "till" ;
|
||||||
send_V3 = dirV3 (regV "skicka") "till" ;
|
send_V3 = dirV3 (regV "skicka") "till" ;
|
||||||
@@ -186,7 +186,7 @@ lin
|
|||||||
thick_ADeg = regADeg "tjock" ;
|
thick_ADeg = regADeg "tjock" ;
|
||||||
thin_ADeg = mk2ADeg "tunn" "tunt" ;
|
thin_ADeg = mk2ADeg "tunn" "tunt" ;
|
||||||
train_N = regN "tåg" neutrum ;
|
train_N = regN "tåg" neutrum ;
|
||||||
travel_V = mk2V "resa" "reser" ;
|
travel_V = mk2V "resa" "reste" ;
|
||||||
tree_N = regN "träd" neutrum ;
|
tree_N = regN "träd" neutrum ;
|
||||||
---- trousers_N = regN "trousers" ; ---- pl t !
|
---- trousers_N = regN "trousers" ; ---- pl t !
|
||||||
ugly_ADeg = regADeg "ful" ;
|
ugly_ADeg = regADeg "ful" ;
|
||||||
|
|||||||
@@ -202,16 +202,23 @@ adj2Reg : Str -> Str -> Adj = \vid,vitt -> adjAlmostReg vid vitt (vid + "a") ;
|
|||||||
in
|
in
|
||||||
mkVerb sälja (sälj + er) sälj sålde sålt såld ;
|
mkVerb sälja (sälj + er) sälj sålde sålt såld ;
|
||||||
|
|
||||||
regVerb : (_,_ : Str) -> Verb = \tala,talar ->
|
regVerb : (_,_ : Str) -> Verb = \tala,talade ->
|
||||||
let
|
let
|
||||||
ar = Predef.dp 2 talar ;
|
ade = Predef.dp 3 talade ;
|
||||||
tal = Predef.tk 2 talar ;
|
de = Predef.dp 2 ade ;
|
||||||
forms = case ar of {
|
tal = Predef.tk 1 tala ;
|
||||||
"ar" => vTala tal ;
|
forms = case ade of {
|
||||||
"er" => vLeka tal ;
|
"ade" => vTala tal ;
|
||||||
_ => case last tala of {
|
"dde" => case last tala of {
|
||||||
"a" => mkVerb tala talar tal (tal + "de") (tala + "t") (tala + "d") ;
|
"a" => vTyda (init tal) ;
|
||||||
_ => mkVerb tala talar tala (tala + "dde") (tala + "tt") (tala + "dd")
|
_ => mkVerb tala (tala + "r") tala (tala + "dde") (tala + "tt") (tala + "dd")
|
||||||
|
} ;
|
||||||
|
"tte" => vByta (init tal) ;
|
||||||
|
"nde" => vVända (init tal) ;
|
||||||
|
"rde" => vHyra tal ;
|
||||||
|
_ => case de of {
|
||||||
|
"te" => vLeka tal ;
|
||||||
|
_ => vGräva tal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
in forms ** {s1 = []} ;
|
in forms ** {s1 = []} ;
|
||||||
@@ -784,6 +791,32 @@ oper vLeka : Str -> Verbum = \lek ->
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
oper vGräva : Str -> Verbum = \gräv ->
|
||||||
|
{s = table {
|
||||||
|
VF (Pres Act) => gräv + "er" ;
|
||||||
|
VF (Pres Pass) => mkVoice Pass gräv ;
|
||||||
|
VF (Pret Act) => gräv + "de" ;
|
||||||
|
VF (Pret Pass) => gräv + "des" ;
|
||||||
|
VF (Imper v) => mkVoice v gräv ;
|
||||||
|
VI (Inf Act) => gräv + "a" ;
|
||||||
|
VI (Inf Pass) => gräv + "as" ;
|
||||||
|
VI (Supin Act) => gräv + "t" ;
|
||||||
|
VI (Supin Pass) => gräv + "ts" ;
|
||||||
|
VI (PtPret (Strong (ASg Utr)) Nom) => gräv + "d" ;
|
||||||
|
VI (PtPret (Strong (ASg Utr)) Gen) => gräv + "ds" ;
|
||||||
|
VI (PtPret (Strong (ASg Neutr)) Nom) => gräv + "t" ;
|
||||||
|
VI (PtPret (Strong (ASg Neutr)) Gen) => gräv + "ts" ;
|
||||||
|
VI (PtPret (Strong APl) Nom) => gräv + "da" ;
|
||||||
|
VI (PtPret (Strong APl) Gen) => gräv + "das" ;
|
||||||
|
VI (PtPret (Weak (AxSg NoMasc)) Nom) => gräv + "da" ;
|
||||||
|
VI (PtPret (Weak (AxSg NoMasc)) Gen) => gräv + "das" ;
|
||||||
|
VI (PtPret (Weak (AxSg Masc)) Nom) => gräv + "de" ;
|
||||||
|
VI (PtPret (Weak (AxSg Masc)) Gen) => gräv + "des" ;
|
||||||
|
VI (PtPret (Weak AxPl) Nom) => gräv + "da" ;
|
||||||
|
VI (PtPret (Weak AxPl) Gen) => gräv + "das"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
oper vTyda : Str -> Verbum = \ty ->
|
oper vTyda : Str -> Verbum = \ty ->
|
||||||
{s = table {
|
{s = table {
|
||||||
VF (Pres Act) => ty + "der" ;
|
VF (Pres Act) => ty + "der" ;
|
||||||
|
|||||||
@@ -200,18 +200,24 @@ oper
|
|||||||
|
|
||||||
mkV : (supa,super,sup,söp,supit,supen : Str) -> V ;
|
mkV : (supa,super,sup,söp,supit,supen : Str) -> V ;
|
||||||
|
|
||||||
-- The 'regular verb' function is the first conjugation.
|
-- The 'regular verb' function is the first conjugation if the
|
||||||
|
-- infinitive ends with "a" ("tala" - "talar" - "talade" - "talat"),
|
||||||
|
-- the third in other cases ("bo" - "bor" - "bodde" - "bott").
|
||||||
|
|
||||||
regV : (tala : Str) -> V ;
|
regV : (tala : Str) -> V ;
|
||||||
|
|
||||||
-- The almost regular verb function needs the infinitive and the present.
|
-- The almost regular verb function needs the infinitive and the preteritum.
|
||||||
|
-- It can deal with almost all cases in the first, second, and third
|
||||||
|
-- conjugation: "tala" - "talade", "leka" - "lekte",
|
||||||
|
-- "gräva" - "grävde", "byta" - "bytte", "vända" - "vände",
|
||||||
|
-- "tyda" - "tydde", "bo" - "bodde".
|
||||||
|
|
||||||
mk2V : (leka,leker : Str) -> V ;
|
mk2V : (leka,lekte : Str) -> V ;
|
||||||
|
|
||||||
-- There is an extensive list of irregular verbs in the module $IrregularSwe$.
|
-- There is an extensive list of irregular verbs in the module $IrregularSwe$.
|
||||||
-- In practice, it is enough to give three forms, as in school books.
|
-- In practice, it is enough to give three forms, as in school books.
|
||||||
|
|
||||||
irregV : (dricka, drack, druckit : Str) -> V ;
|
irregV : (dricka, drack, druckit : Str) -> V ;
|
||||||
|
|
||||||
|
|
||||||
--3 Verbs with a particle.
|
--3 Verbs with a particle.
|
||||||
@@ -316,7 +322,7 @@ oper
|
|||||||
|
|
||||||
mkV a b c d e f = mkVerb a b c d e f ** {s1 = [] ; lock_V = <>} ;
|
mkV a b c d e f = mkVerb a b c d e f ** {s1 = [] ; lock_V = <>} ;
|
||||||
|
|
||||||
regV a = mk2V a (a + "r") ;
|
regV a = mk2V a (a + de) where {de = case last a of {"a" => "de" ; _ => "dde"}} ;
|
||||||
mk2V a b = regVerb a b ** {s1 = [] ; lock_V = <>} ;
|
mk2V a b = regVerb a b ** {s1 = [] ; lock_V = <>} ;
|
||||||
|
|
||||||
irregV x y z = vSälja x y z
|
irregV x y z = vSälja x y z
|
||||||
|
|||||||
@@ -190,14 +190,14 @@ concrete SwadeshLexSwe of SwadeshLex = CategoriesSwe
|
|||||||
-- Verbs
|
-- Verbs
|
||||||
|
|
||||||
bite_V = bita_V ;
|
bite_V = bita_V ;
|
||||||
blow_V = mk2V "blåsa" "blåser" ;
|
blow_V = mk2V "blåsa" "blåste" ;
|
||||||
breathe_V = depV (regV "anda") ;
|
breathe_V = depV (regV "anda") ;
|
||||||
burn_V = brinna_V ; -- FIXME: bränna?
|
burn_V = brinna_V ; -- FIXME: bränna?
|
||||||
come_V = komma_V ;
|
come_V = komma_V ;
|
||||||
count_V = regV "räkna" ;
|
count_V = regV "räkna" ;
|
||||||
cut_V = skära_V ;
|
cut_V = skära_V ;
|
||||||
die_V = dö_V ;
|
die_V = dö_V ;
|
||||||
dig_V = mk2V "gräva" "gräver" ;
|
dig_V = mk2V "gräva" "grävde" ;
|
||||||
drink_V = dricka_V ;
|
drink_V = dricka_V ;
|
||||||
eat_V = äta_V ;
|
eat_V = äta_V ;
|
||||||
fall_V = falla_V ;
|
fall_V = falla_V ;
|
||||||
@@ -209,7 +209,7 @@ concrete SwadeshLexSwe of SwadeshLex = CategoriesSwe
|
|||||||
fly_V = flyga_V ;
|
fly_V = flyga_V ;
|
||||||
freeze_V = frysa_V ;
|
freeze_V = frysa_V ;
|
||||||
give_V = giva_V ;
|
give_V = giva_V ;
|
||||||
hear_V = mk2V "höra" "hör" ;
|
hear_V = mk2V "höra" "hörde" ;
|
||||||
hit_V = slå_V;
|
hit_V = slå_V;
|
||||||
hold_V = hålla_V ;
|
hold_V = hålla_V ;
|
||||||
hunt_V = regV "jaga" ;
|
hunt_V = regV "jaga" ;
|
||||||
@@ -218,9 +218,9 @@ concrete SwadeshLexSwe of SwadeshLex = CategoriesSwe
|
|||||||
laugh_V = regV "skratta" ;
|
laugh_V = regV "skratta" ;
|
||||||
lie_V = ligga_V ;
|
lie_V = ligga_V ;
|
||||||
live_V = leva_V ;
|
live_V = leva_V ;
|
||||||
play_V = mk2V "leka" "leker" ;
|
play_V = mk2V "leka" "lekte" ;
|
||||||
pull_V = draga_V ;
|
pull_V = draga_V ;
|
||||||
push_V = mk2V "trycka" "trycker" ;
|
push_V = mk2V "trycka" "tryckte" ;
|
||||||
rub_V = gnida_V ;
|
rub_V = gnida_V ;
|
||||||
say_V = säga_V ;
|
say_V = säga_V ;
|
||||||
scratch_V = regV "klia" ;
|
scratch_V = regV "klia" ;
|
||||||
@@ -238,11 +238,11 @@ concrete SwadeshLexSwe of SwadeshLex = CategoriesSwe
|
|||||||
suck_V = suga_V ;
|
suck_V = suga_V ;
|
||||||
swell_V = svälla_V ;
|
swell_V = svälla_V ;
|
||||||
swim_V = regV "simma" ;
|
swim_V = regV "simma" ;
|
||||||
think_V = mk2V "tänka" "tänker" ;
|
think_V = mk2V "tänka" "tänkte" ;
|
||||||
throw_V = regV "kasta" ;
|
throw_V = regV "kasta" ;
|
||||||
tie_V = knyta_V ;
|
tie_V = knyta_V ;
|
||||||
turn_V = vända_V ;
|
turn_V = vända_V ;
|
||||||
vomit_V = mk2V "spy" "spyr" ;
|
vomit_V = mk2V "spy" "spydde" ;
|
||||||
walk_V = gå_V ;
|
walk_V = gå_V ;
|
||||||
wash_V = regV "tvätta" ;
|
wash_V = regV "tvätta" ;
|
||||||
wipe_V = regV "torka" ;
|
wipe_V = regV "torka" ;
|
||||||
|
|||||||
Reference in New Issue
Block a user