mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 17:42:51 -06:00
adjustments in Paradigms ; lang-specific modules for all except Rus, Ara
This commit is contained in:
7
lib/resource-1.0/danish/Danish.gf
Normal file
7
lib/resource-1.0/danish/Danish.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
--# -path=.:../scandinavian:../abstract:../common:prelude
|
||||
|
||||
concrete Danish of DanishAbs =
|
||||
LangDan,
|
||||
IrregDan - [fly_V],
|
||||
ExtraDan
|
||||
** {} ;
|
||||
5
lib/resource-1.0/danish/DanishAbs.gf
Normal file
5
lib/resource-1.0/danish/DanishAbs.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
abstract DanishAbs =
|
||||
Lang,
|
||||
IrregDanAbs - [fly_V],
|
||||
ExtraDanAbs
|
||||
** {} ;
|
||||
3
lib/resource-1.0/danish/ExtraDan.gf
Normal file
3
lib/resource-1.0/danish/ExtraDan.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
concrete ExtraDan of ExtraDanAbs = ExtraScandDan ** open CommonScand, ResDan in {
|
||||
|
||||
}
|
||||
7
lib/resource-1.0/danish/ExtraDanAbs.gf
Normal file
7
lib/resource-1.0/danish/ExtraDanAbs.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Structures special for Danish. These are not implemented in other
|
||||
-- Scandinavian languages.
|
||||
|
||||
abstract ExtraDanAbs = ExtraScandAbs ** {
|
||||
|
||||
|
||||
}
|
||||
2
lib/resource-1.0/danish/ExtraScandDan.gf
Normal file
2
lib/resource-1.0/danish/ExtraScandDan.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete ExtraScandDan of ExtraScandAbs = CatDan ** ExtraScand with
|
||||
(ResScand = ResDan) ;
|
||||
@@ -10,18 +10,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 "værelse" "værelsen" ;
|
||||
apple_N = mk3N "æble" "æblet" "æbler" ;
|
||||
art_N = mk2N "kunst" "kunsten" ;
|
||||
ask_V2Q = mkV2Q spørge_V [] ;
|
||||
ask_V2Q = mkV2Q spørge_V noPrep ;
|
||||
baby_N = mk2N "baby" "babyen" ; ---- babyen
|
||||
bad_A = regADeg "dårlig" ; ----
|
||||
bank_N = mk2N "bank" "banken" ;
|
||||
beautiful_A = mk3ADeg "smuk" "smukt" "smukke" ; ----
|
||||
become_VA = mkVA blive_V ;
|
||||
beer_N = mk2N "øl" "ølet" ;
|
||||
beg_V2V = mkV2V bede_V [] "at" ;
|
||||
beg_V2V = mkV2V bede_V noPrep (mkPrep "at") ;
|
||||
big_A = irregADeg "stor" "større" "størst";
|
||||
bike_N = mkN "cykel" "cykeln" "cykler" "cyklerne" ; ----
|
||||
bird_N = mk2N "fugl" "fuglen" ;
|
||||
@@ -35,7 +35,7 @@ lin
|
||||
bread_N = mk2N "brød" "brødet" ;
|
||||
break_V2 = dirV2 (mk2V "knuse" "knuste") ;
|
||||
broad_A = regADeg "bred" ;
|
||||
brother_N2 = mkN2 (mk3N "broder" "brodren" "brødre") "til" ; ----
|
||||
brother_N2 = mkN2 (mk3N "broder" "brodren" "brødre") (mkPrep "til") ; ----
|
||||
brown_A = regADeg "brun" ;
|
||||
butter_N = mk2N "smør" "smøret" ;
|
||||
buy_V2 = dirV2 (mk2V "købe" "købte") ; ----
|
||||
@@ -62,17 +62,17 @@ lin
|
||||
cow_N = mk2N "ku" "kuen" ; ----
|
||||
die_V = vaereV dø_V ;
|
||||
dirty_A = regADeg "smudsig" ; ----
|
||||
distance_N3 = mkN3 (regGenN "afstand" utrum) "fra" "til" ;
|
||||
distance_N3 = mkN3 (regGenN "afstand" utrum) (mkPrep "fra") (mkPrep "til") ;
|
||||
doctor_N = mk2N "læge" "lægen" ;
|
||||
dog_N = mk2N "hund" "hunden" ;
|
||||
door_N = mk2N "dør" "døren" ;
|
||||
drink_V2 = dirV2 drikke_V ;
|
||||
easy_A2V = mkA2V (regA "nem") "for" ; ----
|
||||
easy_A2V = mkA2V (regA "nem") (mkPrep "for") ; ----
|
||||
eat_V2 = dirV2 (mk2V "spise" "spiste") ;
|
||||
empty_A = mkADeg "tøm" "tømt" "tømme" "tømmere" "tømmest" ; ----
|
||||
enemy_N = mk2N "fjende" "fjenden" ;
|
||||
factory_N = mk2N "fabrik" "fabriken" ;
|
||||
father_N2 = mkN2 ( (mk3N "far" "fadren" "fædre")) "til" ; ----
|
||||
father_N2 = mkN2 ( (mk3N "far" "fadren" "fædre")) (mkPrep "til") ; ----
|
||||
fear_VS = mkVS (regV "frygte") ;
|
||||
find_V2 = dirV2 (irregV "finde" "fand" "fundet") ; ----
|
||||
fish_N = mk2N "fisk" "fisken" ;
|
||||
@@ -109,19 +109,19 @@ lin
|
||||
learn_V2 = dirV2 (mk2V "lære" "lærte") ;
|
||||
leather_N = mk2N "læder" "lædret" ;
|
||||
leave_V2 = dirV2 forlade_V ;
|
||||
like_V2 = mkV2 holde_V "af" ;
|
||||
like_V2 = mkV2 holde_V (mkPrep "af") ;
|
||||
listen_V2 = dirV2 (regV "lytte") ;
|
||||
live_V = mk2V "leve" "levde" ;
|
||||
long_A = irregADeg "lang" "længere" "længst" ; ----
|
||||
lose_V2 = dirV2 (regV "tabe") ;
|
||||
love_N = mk2N "kærlighed" "kærligheden" ;
|
||||
love_V2 = dirV2 (regV "elske") ;
|
||||
man_N = mk3N "mand" "manden" "mænd" ; ----
|
||||
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
|
||||
man_N = mkN "mand" "manden" "mænd" "mændene" ;
|
||||
married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ;
|
||||
meat_N = mk2N "kød" "kødet" ;
|
||||
milk_N = mk2N "mælk" "mælken" ;
|
||||
moon_N = mk2N "måne" "månen" ;
|
||||
mother_N2 = mkN2 (mkN "moder" "moderen" "mødre" "mødrene") "til" ; ----
|
||||
mother_N2 = mkN2 (mkN "moder" "moderen" "mødre" "mødrene") (mkPrep "til") ; ----
|
||||
mountain_N = mk2N "bjerg" "bjerget" ;
|
||||
music_N = mk2N "musik" "musiken" ;
|
||||
narrow_A = regADeg "smal" ;
|
||||
@@ -130,9 +130,9 @@ lin
|
||||
oil_N = mk2N "olie" "olien" ;
|
||||
old_A = mkADeg "gammel" "gammelt" "gamle" "ældre" "ældst" ; ----
|
||||
open_V2 = dirV2 (regV "åbne") ;
|
||||
paint_V2A = mkV2A (regV "male") [] ;
|
||||
paint_V2A = mkV2A (regV "male") noPrep ;
|
||||
paper_N = mk2N "papir" "papiret" ;
|
||||
paris_PN = regPN "Paris" neutrum ;
|
||||
paris_PN = mkPN "Paris" neutrum ;
|
||||
peace_N = mk2N "fred" "freden" ;
|
||||
pen_N = mk2N "pen" "penen" ;
|
||||
planet_N = mk2N "planet" "planeten" ;
|
||||
@@ -158,9 +158,9 @@ lin
|
||||
science_N = mk2N "videnskab" "videnskaben" ;
|
||||
sea_N = mk2N "hav" "havet" ;
|
||||
see_V2 = dirV2 se_V ;
|
||||
seek_V2 = mkV2 (mk2V "søge" "søgte") "efter" ;
|
||||
sell_V3 = dirV3 sælge_V "til" ;
|
||||
send_V3 = dirV3 (mk2V "sende" "sendte") "til" ;
|
||||
seek_V2 = mkV2 (mk2V "søge" "søgte") (mkPrep "efter") ;
|
||||
sell_V3 = dirV3 sælge_V (mkPrep "til") ;
|
||||
send_V3 = dirV3 (mk2V "sende" "sendte") (mkPrep "til") ;
|
||||
sheep_N = mk2N "får" "fåret" ;
|
||||
ship_N = mk2N "skib" "skibet" ;
|
||||
shirt_N = mk2N "skjorte" "skjorten" ;
|
||||
@@ -184,7 +184,7 @@ lin
|
||||
switch8off_V2 = dirV2 (partV (regV "lukke") "for") ;
|
||||
switch8on_V2 = dirV2 (partV (regV "lukke") "op") ;
|
||||
table_N = mk2N "bord" "bordet" ;
|
||||
talk_V3 = mkV3 (regV "tale") "til" "om" ;
|
||||
talk_V3 = mkV3 (regV "tale") (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" ;
|
||||
@@ -198,11 +198,11 @@ lin
|
||||
understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ;
|
||||
university_N = mk2N "universitet" "universitetet" ;
|
||||
village_N = mk2N "landsby" "landsbyen" ;
|
||||
wait_V2 = mkV2 (regV "vente") "på" ;
|
||||
wait_V2 = mkV2 (regV "vente") (mkPrep "på") ;
|
||||
walk_V = vaereV gå_V ;
|
||||
warm_A = regADeg "varm" ;
|
||||
war_N = mk2N "krig" "krigen" ;
|
||||
watch_V2 = mkV2 se_V "på" ;
|
||||
watch_V2 = mkV2 se_V (mkPrep "på") ;
|
||||
water_N = mk2N "vand" "vandet" ;
|
||||
white_A = regADeg "hvid" ;
|
||||
window_N = mkN "vindue" "vinduet" "vinduer" "vinduene" ; ---- er?
|
||||
@@ -219,7 +219,7 @@ lin
|
||||
now_Adv = mkAdv "nu" ;
|
||||
already_Adv = mkAdv "allerede" ;
|
||||
song_N = mk2N "sang" "sangen" ;
|
||||
add_V3 = mkV3 (regV "tilføje") [] "til" ; ----
|
||||
add_V3 = mkV3 (regV "tilføje") noPrep (mkPrep "til") ; ----
|
||||
number_N = mk2N "nummer" "numret" ; ----
|
||||
put_V2 = dirV2 sætte_V ;
|
||||
stop_V = vaereV (regV "standse") ;
|
||||
|
||||
@@ -59,7 +59,8 @@ oper
|
||||
|
||||
-- Prepositions used in many-argument functions are just strings.
|
||||
|
||||
Preposition : Type = Str ;
|
||||
mkPrep : Str -> Prep ;
|
||||
noPrep : Prep ; -- empty string
|
||||
|
||||
--2 Nouns
|
||||
|
||||
@@ -100,19 +101,20 @@ 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.
|
||||
-- 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
|
||||
@@ -127,7 +129,8 @@ oper
|
||||
--
|
||||
-- Proper names, with a regular genitive, are formed as follows
|
||||
|
||||
regPN : Str -> Gender -> PN ; -- John, John's
|
||||
mkPN : Str -> Gender -> PN ; -- Paris neutrum
|
||||
regPN : Str -> PN ; -- utrum gender
|
||||
|
||||
-- Sometimes you can reuse a common noun as a proper name, e.g. "Bank".
|
||||
|
||||
@@ -156,7 +159,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.
|
||||
|
||||
@@ -194,11 +197,6 @@ oper
|
||||
|
||||
mkAdA : Str -> AdA ;
|
||||
|
||||
--2 Prepositions
|
||||
--
|
||||
-- A preposition is just a string.
|
||||
|
||||
mkPreposition : Str -> Preposition ;
|
||||
|
||||
--2 Verbs
|
||||
--
|
||||
@@ -249,7 +247,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 ;
|
||||
|
||||
@@ -258,8 +256,8 @@ 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
|
||||
mkV3 : V -> Prep -> Prep -> V3 ; -- speak, with, about
|
||||
dirV3 : V -> Prep -> V3 ; -- give,_,to
|
||||
dirdirV3 : V -> V3 ; -- give,_,_
|
||||
|
||||
--3 Other complement patterns
|
||||
@@ -269,18 +267,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
|
||||
@@ -290,12 +288,13 @@ oper
|
||||
V0, V2S, V2V, V2A, V2Q : Type ;
|
||||
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 = MorphoDan.Gender ;
|
||||
Number = MorphoDan.Number ;
|
||||
@@ -307,6 +306,14 @@ oper
|
||||
nominative = Nom ;
|
||||
genitive = Gen ;
|
||||
|
||||
Preposition : Type = Str ; -- obsolete
|
||||
|
||||
mkPreposition : Str -> Prep ; -- obsolete
|
||||
mkPreposition = mkPrep ;
|
||||
|
||||
mkPrep p = {s = p ; lock_Prep = <>} ;
|
||||
noPrep = mkPrep [] ;
|
||||
|
||||
mkN x y z u = mkSubstantive x y z u ** {g = extNGen y ; lock_N = <>} ;
|
||||
|
||||
regN x = regGenN x Utr ;
|
||||
@@ -330,11 +337,12 @@ oper
|
||||
|
||||
mk3N x y z = let u = ifTok Str x z "ene" "ne" in mkN x y z (z + u) ;
|
||||
|
||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
|
||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
||||
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
|
||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
||||
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 = <>} ;
|
||||
mkPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
||||
regPN n = mkPN 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 ;
|
||||
@@ -344,7 +352,7 @@ oper
|
||||
mk2A a b = mkA a b (a + "e") ;
|
||||
regA a = (regADeg a) ** {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 = <>} ;
|
||||
|
||||
@@ -368,8 +376,6 @@ oper
|
||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||
mkAdA x = ss x ** {lock_AdA = <>} ;
|
||||
|
||||
mkPreposition p = p ;
|
||||
|
||||
mkV a b c d e f = mkVerb6 a b c d e f **
|
||||
{part = [] ; vtype = VAct ; lock_V = <> ; isVaere = False} ;
|
||||
|
||||
@@ -418,12 +424,12 @@ oper
|
||||
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 (mkPrep []) ;
|
||||
|
||||
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 = <>} ;
|
||||
|
||||
Reference in New Issue
Block a user