adjustments in Paradigms ; lang-specific modules for all except Rus, Ara

This commit is contained in:
aarne
2006-06-15 16:24:09 +00:00
parent 6bd400091c
commit 3d243e2596
84 changed files with 1219 additions and 6611 deletions

View File

@@ -8,18 +8,18 @@ flags startcat=Phr ; lexer=textlit ; unlexer=text ;
lin
airplane_N = mk2N "fly" "flyet" ;
answer_V2S = mkV2S (regV "svare") "til" ;
answer_V2S = mkV2S (regV "svare") (mkPrep "til") ;
apartment_N = mk2N "leilighet" "leiligheten" ;
apple_N = mk2N "eple" "eplet" ;
art_N = mk2N "kunst" "kunsten" ;
ask_V2Q = mkV2Q spørre_V [] ;
ask_V2Q = mkV2Q spørre_V noPrep ;
baby_N = mk2N "baby" "babyen" ;
bad_A = regADeg "dårlig" ; ----
bank_N = mk2N "bank" "banken" ;
beautiful_A = mk3ADeg "vakker" "vakkert" "vakra" ;
become_VA = mkVA (vaereV bli_V) ;
beer_N = regGenN "øl" neutrum ;
beg_V2V = mkV2V be_V [] "at" ;
beg_V2V = mkV2V be_V noPrep (mkPrep "at") ;
big_A = irregADeg "stor" "større" "størst";
bike_N = mkN "sykkel" "sykkelen" "sykler" "syklene" ;
bird_N = mk2N "fugl" "fuglen" ;
@@ -33,7 +33,7 @@ lin
bread_N = regGenN "brød" neutrum ;
break_V2 = dirV2 (mk2V "knuse" "knuste") ;
broad_A = regADeg "bred" ;
brother_N2 = mkN2 ( (mkN "bror" "broren" "brødre" "brødrene")) "til" ;
brother_N2 = mkN2 ( (mkN "bror" "broren" "brødre" "brødrene")) (mkPrep "til") ;
brown_A = regADeg "brun" ;
butter_N = regGenN "smør" neutrum ;
buy_V2 = dirV2 (mk2V "kjøpe" "kjøpte") ;
@@ -60,17 +60,17 @@ lin
cow_N = mkN "ku" "kua" "kyr" "kyrne" ; ----
die_V = vaereV dø_V ;
dirty_A = mk3ADeg "skitten" "skittent" "skitne" ; ----
distance_N3 = mkN3 (regGenN "avstand" masculine) "fra" "til" ;
distance_N3 = mkN3 (regGenN "avstand" masculine) (mkPrep "fra") (mkPrep "til") ;
doctor_N = mk2N "lege" "legen" ;
dog_N = regGenN "hund" masculine ;
door_N = regGenN "dør" feminine ;
drink_V2 = dirV2 drikke_V ;
easy_A2V = mkA2V (regA "grei") "for" ;
easy_A2V = mkA2V (regA "grei") (mkPrep "for") ;
eat_V2 = dirV2 (mk2V "spise" "spiste") ;
empty_A = mkADeg "tom" "tomt" "tomme" "tommere" "tommest" ;
enemy_N = regGenN "fiende" masculine ;
factory_N = mk2N "fabrikk" "fabrikken" ;
father_N2 = mkN2 ( (mkN "far" "faren" "fedre" "fedrene")) "til" ;
father_N2 = mkN2 ( (mkN "far" "faren" "fedre" "fedrene")) (mkPrep "til") ;
fear_VS = mkVS (regV "frykte") ;
find_V2 = dirV2 (irregV "finne" "fann" "funnet") ;
fish_N = mk2N "fisk" "fisken" ;
@@ -115,11 +115,11 @@ lin
love_N = regGenN "kjærlighet" masculine ;
love_V2 = dirV2 (regV "elske") ;
man_N = (mkN "mann" "mannen" "menn" "mennen") ;
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ;
meat_N = regGenN "kjøtt" neutrum ;
milk_N = regGenN "melk" masculine ;
moon_N = regGenN "måne" masculine ;
mother_N2 = mkN2 (mkN "mor" "moren" "mødre" "mødrene") "til" ; ---- fem
mother_N2 = mkN2 (mkN "mor" "moren" "mødre" "mødrene") (mkPrep "til") ; ---- fem
mountain_N = regGenN "berg" neutrum ;
music_N = mk2N "musikk" "musikken" ;
narrow_A = regADeg "smal" ;
@@ -128,9 +128,9 @@ lin
oil_N = regGenN "olje" masculine ;
old_A = mkADeg "gammel" "gammelt" "gamle" "eldre" "eldst" ;
open_V2 = dirV2 (regV "åpne") ;
paint_V2A = mkV2A (regV "male") [] ;
paint_V2A = mkV2A (regV "male") noPrep ;
paper_N = regGenN "papir" neutrum ; ----
paris_PN = regPN "Paris" neutrum ;
paris_PN = regGenPN "Paris" neutrum ;
peace_N = regGenN "fred" masculine ;
pen_N = regGenN "penn" masculine ;
planet_N = mk2N "planet" "planeten" ;
@@ -155,10 +155,10 @@ lin
school_N = regGenN "skole" feminine;
science_N = mk2N "vitenskap" "vitenskapen" ;
sea_N = mk2N "sjø" "sjøen" ;
seek_V2 = mkV2 (mk2V "lete" "lette") "etter" ;
seek_V2 = mkV2 (mk2V "lete" "lette") (mkPrep "etter") ;
see_V2 = dirV2 se_V ;
sell_V3 = dirV3 selge_V "til" ;
send_V3 = dirV3 (mk2V "sende" "sendte") "til" ;
sell_V3 = dirV3 selge_V (mkPrep "til") ;
send_V3 = dirV3 (mk2V "sende" "sendte") (mkPrep "til") ;
sheep_N = mk2N "får" "fåret" ;
ship_N = regGenN "skip" neutrum ;
shirt_N = regGenN "skjorte" feminine ;
@@ -182,7 +182,7 @@ lin
switch8off_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "av") ;
switch8on_V2 = dirV2 (partV (irregV "slå" "slo" "slått") "på") ;
table_N = regGenN "bord" neutrum ;
talk_V3 = mkV3 (regV "snakke") "til" "om" ;
talk_V3 = mkV3 (regV "snakke") (mkPrep "til") (mkPrep "om") ;
teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ;
teach_V2 = dirV2 (mk2V "undervise" "underviste") ;
television_N = mk2N "fjernsyn" "fjernsynet" ;
@@ -196,11 +196,11 @@ lin
understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ;
university_N = regGenN "universitet" neutrum ;
village_N = mk2N "grend" "grenda" ;
wait_V2 = mkV2 (regV "vente") "på" ;
wait_V2 = mkV2 (regV "vente") (mkPrep "på") ;
walk_V = vaereV gå_V ;
warm_A = regADeg "varm" ;
war_N = regGenN "krig" masculine ;
watch_V2 = mkV2 se_V "på" ;
watch_V2 = mkV2 se_V (mkPrep "på") ;
water_N = mk2N "vatn" "vatnet" ;
white_A = regADeg "hvit" ;
window_N = mkN "vindu" "vinduet" "vinduer" "vinduene" ; ---- er?
@@ -217,9 +217,9 @@ lin
now_Adv = mkAdv "nå" ;
already_Adv = mkAdv "allerede" ;
song_N = mk2N "sang" "sangen" ;
add_V3 = mkV3 (partV (irregV "legge" "la" "lagt") "til") [] "til" ;
add_V3 = mkV3 (partV (irregV "legge" "la" "lagt") "til") noPrep (mkPrep "til") ;
number_N = mk2N "nummer" "nummeret" ;
put_V2 = mkV2 (irregV "sette" "satte" "satt") [] ;
put_V2 = mkV2 (irregV "sette" "satte" "satt") noPrep ;
stop_V = vaereV (regV "stanse") ;
jump_V = regV "hoppe" ;

View File

@@ -60,7 +60,8 @@ oper
-- Prepositions used in many-argument functions are just strings.
Preposition : Type = Str ;
mkPrep : Str -> Prep ;
noPrep : Prep ; -- empty string
--2 Nouns
@@ -97,19 +98,19 @@ oper
--
-- Relational nouns ("daughter of x") need a preposition.
mkN2 : N -> Preposition -> N2 ;
mkN2 : N -> Prep -> N2 ;
-- The most common preposition is "av", and the following is a
-- shortcut for regular, $nonhuman$ relational nouns with "av".
regN2 : Str -> Gender -> N2 ;
-- Use the function $mkPreposition$ or see the section on prepositions below to
-- Use the function $mkPrep$ or see the section on prepositions below to
-- form other prepositions.
--
-- Three-place relational nouns ("the connection from x to y") need two prepositions.
mkN3 : N -> Preposition -> Preposition -> N3 ;
mkN3 : N -> Prep -> Prep -> N3 ;
--3 Relational common noun phrases
@@ -124,7 +125,8 @@ oper
--
-- Proper names, with a regular genitive, are formed as follows
regPN : Str -> Gender -> PN ; -- John, John's
regPN : Str -> PN ; -- utrum
regGenPN : Str -> Gender -> PN ;
-- Sometimes you can reuse a common noun as a proper name, e.g. "Bank".
@@ -153,7 +155,7 @@ oper
--
-- Two-place adjectives need a preposition for their second argument.
mkA2 : A -> Preposition -> A2 ;
mkA2 : A -> Prep -> A2 ;
-- Comparison adjectives may need as many as five forms.
@@ -191,11 +193,6 @@ oper
mkAdA : Str -> AdA ;
--2 Prepositions
--
-- A preposition is just a string.
mkPreposition : Str -> Preposition ;
--2 Verbs
--
@@ -243,7 +240,7 @@ oper
-- Two-place verbs need a preposition, except the special case with direct object.
-- (transitive verbs). Notice that a particle comes from the $V$.
mkV2 : V -> Preposition -> V2 ;
mkV2 : V -> Prep -> V2 ;
dirV2 : V -> V2 ;
@@ -252,9 +249,9 @@ oper
-- Three-place (ditransitive) verbs need two prepositions, of which
-- the first one or both can be absent.
mkV3 : V -> Str -> Str -> V3 ; -- speak, with, about
dirV3 : V -> Str -> V3 ; -- give,_,to
dirdirV3 : V -> V3 ; -- give,_,_
mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about
dirV3 : V -> Prep -> V3 ; -- give,_,to
dirdirV3 : V -> V3 ; -- give,_,_
--3 Other complement patterns
--
@@ -263,18 +260,18 @@ oper
mkV0 : V -> V0 ;
mkVS : V -> VS ;
mkV2S : V -> Str -> V2S ;
mkV2S : V -> Prep -> V2S ;
mkVV : V -> VV ;
mkV2V : V -> Str -> Str -> V2V ;
mkV2V : V -> Prep -> Prep -> V2V ;
mkVA : V -> VA ;
mkV2A : V -> Str -> V2A ;
mkV2A : V -> Prep -> V2A ;
mkVQ : V -> VQ ;
mkV2Q : V -> Str -> V2Q ;
mkV2Q : V -> Prep -> V2Q ;
mkAS : A -> AS ;
mkA2S : A -> Str -> A2S ;
mkA2S : A -> Prep -> A2S ;
mkAV : A -> AV ;
mkA2V : A -> Str -> A2V ;
mkA2V : A -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated
-- just as synonyms of $V2$, and the second argument is given
@@ -285,11 +282,11 @@ oper
AS, A2S, AV, A2V : Type ;
--.
--2 Definitions of the paradigms
--
-- The definitions should not bother the user of the API. So they are
-- hidden from the document.
--.
Gender = MorphoNor.Gender ;
Number = MorphoNor.Number ;
@@ -331,11 +328,12 @@ oper
} ;
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
regN2 n g = mkN2 (regGenN n g) (mkPrep "av") ;
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
regPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
regPN n = regGenPN n utrum ;
nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;
mkNP x y n g =
{s = table {NPPoss _ => x ; _ => y} ; a = agrP3 g n ;
@@ -345,7 +343,7 @@ oper
mk2A a b = mkA a b (a + "e") ;
regA a = (regADeg a) ** {isComp = False ; lock_A = <>} ;
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ;
mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ;
regADeg a = case Predef.dp 2 a of {
@@ -366,7 +364,8 @@ oper
mkAdV x = ss x ** {lock_AdV = <>} ;
mkAdA x = ss x ** {lock_AdA = <>} ;
mkPreposition p = p ;
mkPrep p = {s = p ; lock_Prep = <>} ;
noPrep = mkPrep [] ;
mkV a b c d e f = mkVerb6 a b c d e f **
{part = [] ; vtype = VAct ; isVaere = False ; lock_V = <>} ;
@@ -404,12 +403,12 @@ oper
depV v = {s = v.s ; part = v.part ; vtype = VPass ; isVaere = False ; lock_V = <>} ;
reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>} ;
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
dirV2 v = mkV2 v [] ;
mkV2 v p = v ** {c2 = p.s ; lock_V2 = <>} ;
dirV2 v = mkV2 v noPrep ;
mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
dirV3 v p = mkV3 v [] p ;
dirdirV3 v = dirV3 v [] ;
mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ;
dirV3 v p = mkV3 v noPrep p ;
dirdirV3 v = dirV3 v noPrep ;
mkV0 v = v ** {lock_V0 = <>} ;
mkVS v = v ** {lock_VS = <>} ;