mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
dictionary experiment with Finnish verbs
This commit is contained in:
@@ -466,7 +466,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
"mm" + e => "mp" + e ;
|
"mm" + e => "mp" + e ;
|
||||||
"rr" + e => "rt" + e ;
|
"rr" + e => "rt" + e ;
|
||||||
"ll" + a => "lt" + a ;
|
"ll" + a => "lt" + a ;
|
||||||
h@("h" | "l") + "j" + e => h + "k" + e ; -- pohje/lahje impossible
|
h@("h" | "l") + "je" + e => h + "ke" ; -- pohje/lahje impossible
|
||||||
("tk" | "hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske
|
("tk" | "hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske
|
||||||
a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + k + k + e ;
|
a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + k + k + e ;
|
||||||
a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ;
|
a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ;
|
||||||
|
|||||||
@@ -4,8 +4,9 @@ CAT=N
|
|||||||
all: nouns
|
all: nouns
|
||||||
|
|
||||||
verbs:
|
verbs:
|
||||||
export CAT=V ; export LEX=VNSSK ; make -e tests
|
# export CAT=V ; export LEX=VNSSK ; make -e tests
|
||||||
export CAT=V ; export LEX=VOmat ; make -e tests
|
# export CAT=V ; export LEX=VOmat ; make -e tests
|
||||||
|
export CAT=V ; export LEX=VDictionary ; make -e tests
|
||||||
cat all-diff-V* >all-differences-V
|
cat all-diff-V* >all-differences-V
|
||||||
cat all-differences-V
|
cat all-differences-V
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ mkLex "V" _ line = case words line of
|
|||||||
num:sana:_:_:_:_:_:_:sanan:_ -> do
|
num:sana:_:_:_:_:_:_:sanan:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "lin " ++ nimi ++
|
putStrLn $ "lin " ++ nimi ++
|
||||||
"_V = mk2V <\"" ++ sana ++ "\", \"" ++ sanan ++ "\"> ;"
|
"_V = mkV \"" ++ sana ++ "\" \"" ++ sanan ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex "N" 2 line = case words line of
|
mkLex "N" 2 line = case words line of
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ resource Verbal = ResFin **
|
|||||||
|
|
||||||
mkV = overload {
|
mkV = overload {
|
||||||
mkV : (huutaa : Str) -> V = mk1V ;
|
mkV : (huutaa : Str) -> V = mk1V ;
|
||||||
mkV : (huutaa,huusi : Str) -> V = \s,t -> mk2V <s,t> ;
|
mkV : (huutaa,huusi : Str) -> V = mk2V ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
showV : V -> Utt = \v -> ss (
|
showV : V -> Utt = \v -> ss (
|
||||||
@@ -27,8 +27,7 @@ resource Verbal = ResFin **
|
|||||||
) ** {lock_Utt = <>} ;
|
) ** {lock_Utt = <>} ;
|
||||||
|
|
||||||
mk1V : Str -> V = \s -> vforms2V (vForms1 s) ;
|
mk1V : Str -> V = \s -> vforms2V (vForms1 s) ;
|
||||||
mk2V : (_ : Str * Str) -> V = \st ->
|
mk2V : (_,_ : Str) -> V = \s,t -> vforms2V (vForms2 s t) ;
|
||||||
vforms2V (vForms2 st.p1 st.p2) ;
|
|
||||||
|
|
||||||
vForms1 : Str -> VForms = \ottaa ->
|
vForms1 : Str -> VForms = \ottaa ->
|
||||||
let
|
let
|
||||||
@@ -45,6 +44,9 @@ resource Verbal = ResFin **
|
|||||||
cHukkua ottaa (ota + "n") ;
|
cHukkua ottaa (ota + "n") ;
|
||||||
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
||||||
cOttaa ottaa (ota + "n") (ots + "in") (ots + "i") ;
|
cOttaa ottaa (ota + "n") (ots + "in") (ots + "i") ;
|
||||||
|
("" | C_) + ("a" | "e" | "i" | "o" | "u") + C_ + _ +
|
||||||
|
("a" | "e" | "i" | "o" | "u") + _ + "aa" =>
|
||||||
|
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||||
("" | C_) + ("a" | "e" | "i") + _ + "aa" =>
|
("" | C_) + ("a" | "e" | "i") + _ + "aa" =>
|
||||||
cOttaa ottaa (ota + "n") (ot + "oin") (ott + "oi") ;
|
cOttaa ottaa (ota + "n") (ot + "oin") (ott + "oi") ;
|
||||||
_ + ("aa" | "ää") =>
|
_ + ("aa" | "ää") =>
|
||||||
|
|||||||
100
examples/uusisuomi/correct-VDictionary.txt
Normal file
100
examples/uusisuomi/correct-VDictionary.txt
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
aikoa aion aikoo aikovat aikokaa aiotaan aioin aikoi aikoisi aikonut aiottu
|
||||||
|
|
||||||
|
alentaa alennan alentaa alentavat alentakaa alennetaan alensin alensi alentaisi alentanut alennettu
|
||||||
|
|
||||||
|
ansioitua ansioidun ansioituu ansioituvat ansioitukaa ansioidutaan ansioiduin ansioitui ansioituisi ansioitunut ansioiduttu
|
||||||
|
|
||||||
|
arvostaa arvostan arvostaa arvostavat arvostakaa arvostetaan arvostin arvosti arvostaisi arvostanut arvostettu
|
||||||
|
|
||||||
|
avustaa avustan avustaa avustavat avustakaa avustetaan avustin avusti avustaisi avustanut avustettu
|
||||||
|
|
||||||
|
dominoida dominoin dominoi dominoivat dominoikaa dominoidaan dominoin dominoi dominoisi dominoinut dominoitu
|
||||||
|
|
||||||
|
elämöidä elämöin elämöi elämöivät elämöikää elämöidään elämöin elämöi elämöisi elämöinyt elämöity
|
||||||
|
|
||||||
|
epäilyttää epäilytän epäilyttää epäilyttävät epäilyttäkää epäilytetään epäilytin epäilytti epäilyttäisi epäilyttänyt epäilytetty
|
||||||
|
|
||||||
|
esitellä esittelen esittelee esittelevät esitelkää esitellään esittelin esitteli esittelisi esitellyt esitelty
|
||||||
|
|
||||||
|
fakturoida fakturoin fakturoi fakturoivat fakturoikaa fakturoidaan fakturoin fakturoi fakturoisi fakturoinut fakturoitu
|
||||||
|
|
||||||
|
halata halaan halaa halaavat halatkaa halataan halasin halasi halaisi halannut halattu
|
||||||
|
|
||||||
|
harjata harjaan harjaa harjaavat harjatkaa harjataan harjasin harjasi harjaisi harjannut harjattu
|
||||||
|
|
||||||
|
hengittää hengitän hengittää hengittävät hengittäkää hengitetään hengitin hengitti hengittäisi hengittänyt hengitetty
|
||||||
|
|
||||||
|
hihittää hihitän hihittää hihittävät hihittäkää hihitetään hihitin hihitti hihittäisi hihittänyt hihitetty
|
||||||
|
|
||||||
|
hullutella hulluttelen hulluttelee hulluttelevat hullutelkaa hullutellaan hulluttelin hullutteli hulluttelisi hullutellut hulluteltu
|
||||||
|
|
||||||
|
huuhtoutua huuhtoudun huuhtoutuu huuhtoutuvat huuhtoutukaa huuhtoudutaan huuhtouduin huuhtoutui huuhtoutuisi huuhtoutunut huuhtouduttu
|
||||||
|
|
||||||
|
häpäistä häpäisen häpäisee häpäisevät häpäiskää häpäistään häpäisin häpäisi häpäisisi häpäissyt häpäisty
|
||||||
|
|
||||||
|
ikävystyttää ikävystytän ikävystyttää ikävystyttävät ikävystyttäkää ikävystytetään ikävystytin ikävystytti ikävystyttäisi ikävystyttänyt ikävystytetty
|
||||||
|
|
||||||
|
isännöidä isännöin isännöi isännöivät isännöikää isännöidään isännöin isännöi isännöisi isännöinyt isännöity
|
||||||
|
|
||||||
|
jatkua jatkun jatkuu jatkuvat jatkukaa jatkutaan jatkuin jatkui jatkuisi jatkunut jatkuttu
|
||||||
|
|
||||||
|
jupista jupisen jupisee jupisevat jupiskaa jupistaan jupisin jupisi jupisisi jupissut jupistu
|
||||||
|
|
||||||
|
jätättää jätätän jätättää jätättävät jätättäkää jätätetään jätätin jätätti jätättäisi jätättänyt jätätetty
|
||||||
|
|
||||||
|
kalastaa kalastan kalastaa kalastavat kalastakaa kalastetaan kalastin kalasti kalastaisi kalastanut kalastettu
|
||||||
|
|
||||||
|
kansoittaa kansoitan kansoittaa kansoittavat kansoittakaa kansoitetaan kansoitin kansoitti kansoittaisi kansoittanut kansoitettu
|
||||||
|
|
||||||
|
kaulia kaulin kaulii kaulivat kaulikaa kaulitaan kaulin kauli kaulisi kaulinut kaulittu
|
||||||
|
|
||||||
|
kellua kellun kelluu kelluvat kellukaa kellutaan kelluin kellui kelluisi kellunut kelluttu
|
||||||
|
|
||||||
|
kierittää kieritän kierittää kierittävät kierittäkää kieritetään kieritin kieritti kierittäisi kierittänyt kieritetty
|
||||||
|
|
||||||
|
kipinöidä kipinöin kipinöi kipinöivät kipinöikää kipinöidään kipinöin kipinöi kipinöisi kipinöinyt kipinöity
|
||||||
|
|
||||||
|
kokkaroitua kokkaroidun kokkaroituu kokkaroituvat kokkaroitukaa kokkaroidutaan kokkaroiduin kokkaroitui kokkaroituisi kokkaroitunut kokkaroiduttu
|
||||||
|
|
||||||
|
korjauttaa korjautan korjauttaa korjauttavat korjauttakaa korjautetaan korjautin korjautti korjauttaisi korjauttanut korjautettu
|
||||||
|
|
||||||
|
kukistaa kukistan kukistaa kukistavat kukistakaa kukistetaan kukistin kukisti kukistaisi kukistanut kukistettu
|
||||||
|
|
||||||
|
kuntouttaa kuntoutan kuntouttaa kuntouttavat kuntouttakaa kuntoutetaan kuntoutin kuntoutti kuntouttaisi kuntouttanut kuntoutettu
|
||||||
|
|
||||||
|
kyllästyttää kyllästytän kyllästyttää kyllästyttävät kyllästyttäkää kyllästytetään kyllästytin kyllästytti kyllästyttäisi kyllästyttänyt kyllästytetty
|
||||||
|
|
||||||
|
käskeä käsken käskee käskevät käskekää käsketään käskin käski käskisi käskenyt käsketty
|
||||||
|
|
||||||
|
lainata lainaan lainaa lainaavat lainatkaa lainataan lainasin lainasi lainaisi lainannut lainattu
|
||||||
|
|
||||||
|
laskostaa laskostan laskostaa laskostavat laskostakaa laskostetaan laskostin laskosti laskostaisi laskostanut laskostettu
|
||||||
|
|
||||||
|
lihoa lihon lihoo lihovat lihokaa lihotaan lihoin lihoi lihoisi lihonut lihottu
|
||||||
|
|
||||||
|
liuottaa liuotan liuottaa liuottavat liuottakaa liuotetaan liuotin liuotti liuottaisi liuottanut liuotettu
|
||||||
|
|
||||||
|
luotsata luotsaan luotsaa luotsaavat luotsatkaa luotsataan luotsasin luotsasi luotsaisi luotsannut luotsattu
|
||||||
|
|
||||||
|
läpäistä läpäisen läpäisee läpäisevät läpäiskää läpäistään läpäisin läpäisi läpäisisi läpäissyt läpäisty
|
||||||
|
|
||||||
|
maksoittaa maksoitan maksoittaa maksoittavat maksoittakaa maksoitetaan maksoitin maksoitti maksoittaisi maksoittanut maksoitettu
|
||||||
|
|
||||||
|
menestyä menestyn menestyy menestyvät menestykää menestytään menestyin menestyi menestyisi menestynyt menestytty
|
||||||
|
|
||||||
|
mitätöidä mitätöin mitätöi mitätöivät mitätöikää mitätöidään mitätöin mitätöi mitätöisi mitätöinyt mitätöity
|
||||||
|
|
||||||
|
muokata muokkaan muokkaa muokkaavat muokatkaa muokataan muokkasin muokkasi muokkaisi muokannut muokattu
|
||||||
|
|
||||||
|
naamioida naamioin naamioi naamioivat naamioikaa naamioidaan naamioin naamioi naamioisi naamioinut naamioitu
|
||||||
|
|
||||||
|
niiskuttaa niiskutan niiskuttaa niiskuttavat niiskuttakaa niiskutetaan niiskutin niiskutti niiskuttaisi niiskuttanut niiskutettu
|
||||||
|
|
||||||
|
nähdä näen näkee näkevät nähkää nähdään näin näki näkisi nähnyt nähty
|
||||||
|
|
||||||
|
ohjata ohjaan ohjaa ohjaavat ohjatkaa ohjataan ohjasin ohjasi ohjaisi ohjannut ohjattu
|
||||||
|
|
||||||
|
opiskella opiskelen opiskelee opiskelevat opiskelkaa opiskellaan opiskelin opiskeli opiskelisi opiskellut opiskeltu
|
||||||
|
|
||||||
|
paaduttaa paadutan paaduttaa paaduttavat paaduttakaa paadutetaan paadutin paadutti paaduttaisi paaduttanut paadutettu
|
||||||
|
|
||||||
@@ -76,26 +76,27 @@ computeTermOpt rec gr = comp where
|
|||||||
return $ Prod x a' b'
|
return $ Prod x a' b'
|
||||||
|
|
||||||
-- beta-convert
|
-- beta-convert
|
||||||
App f a -> do
|
App f a -> case appForm t of
|
||||||
f' <- comp g f
|
(h,as) | length as > 1 -> do
|
||||||
a' <- comp g a
|
h' <- comp g h
|
||||||
case (f',a') of
|
as' <- mapM (comp g) as
|
||||||
(Abs x b, FV as) ->
|
case h' of
|
||||||
mapM (\c -> comp (ext x c g) b) as >>= return . variants
|
|
||||||
(_, FV as) -> mapM (\c -> comp g (App f' c)) as >>= return . variants
|
|
||||||
(FV fs, _) -> mapM (\c -> comp g (App c a')) fs >>= return . variants
|
|
||||||
(Abs x b,_) -> comp (ext x a' g) b
|
|
||||||
|
|
||||||
(QC _ _,_) -> returnC $ App f' a'
|
c@(QC _ _) -> do
|
||||||
|
return $ mkApp c as'
|
||||||
|
Q (IC "Predef") f -> do
|
||||||
|
(t',b) <- appPredefined (mkApp h' as')
|
||||||
|
if b then return t' else comp g t'
|
||||||
|
|
||||||
(Alias _ _ d, _) -> comp g (App d a')
|
Abs _ _ -> do
|
||||||
|
let (xs,b) = termFormCnc h'
|
||||||
|
let g' = (zip xs as') ++ g
|
||||||
|
let as2 = drop (length xs) as'
|
||||||
|
b' <- comp g' b
|
||||||
|
if null as2 then return b' else comp g (mkApp b' as2)
|
||||||
|
|
||||||
(S (T i cs) e,_) -> prawitz g i (flip App a') cs e
|
_ -> compApp g (mkApp h' as')
|
||||||
(S (V i cs) e,_) -> prawitzV g i (flip App a') cs e
|
_ -> compApp g t
|
||||||
|
|
||||||
_ -> do
|
|
||||||
(t',b) <- appPredefined (App f' a')
|
|
||||||
if b then return t' else comp g t'
|
|
||||||
|
|
||||||
P t l | isLockLabel l -> return $ R []
|
P t l | isLockLabel l -> return $ R []
|
||||||
---- a workaround 18/2/2005: take this away and find the reason
|
---- a workaround 18/2/2005: take this away and find the reason
|
||||||
@@ -319,6 +320,27 @@ computeTermOpt rec gr = comp where
|
|||||||
|
|
||||||
where
|
where
|
||||||
|
|
||||||
|
compApp g (App f a) = do
|
||||||
|
f' <- comp g f
|
||||||
|
a' <- comp g a
|
||||||
|
case (f',a') of
|
||||||
|
(Abs x b, FV as) ->
|
||||||
|
mapM (\c -> comp (ext x c g) b) as >>= return . variants
|
||||||
|
(_, FV as) -> mapM (\c -> comp g (App f' c)) as >>= return . variants
|
||||||
|
(FV fs, _) -> mapM (\c -> comp g (App c a')) fs >>= return . variants
|
||||||
|
(Abs x b,_) -> comp (ext x a' g) b
|
||||||
|
|
||||||
|
(QC _ _,_) -> returnC $ App f' a'
|
||||||
|
|
||||||
|
(Alias _ _ d, _) -> comp g (App d a')
|
||||||
|
|
||||||
|
(S (T i cs) e,_) -> prawitz g i (flip App a') cs e
|
||||||
|
(S (V i cs) e,_) -> prawitzV g i (flip App a') cs e
|
||||||
|
|
||||||
|
_ -> do
|
||||||
|
(t',b) <- appPredefined (App f' a')
|
||||||
|
if b then return t' else comp g t'
|
||||||
|
|
||||||
look p c
|
look p c
|
||||||
| rec = lookupResDef gr p c >>= comp []
|
| rec = lookupResDef gr p c >>= comp []
|
||||||
| otherwise = lookupResDef gr p c
|
| otherwise = lookupResDef gr p c
|
||||||
|
|||||||
Reference in New Issue
Block a user