diff --git a/lib/resource-1.0/doc/index.html b/lib/resource-1.0/doc/index.html
index ed656140f..ff64df4c8 100644
--- a/lib/resource-1.0/doc/index.html
+++ b/lib/resource-1.0/doc/index.html
@@ -7,7 +7,7 @@
GF Resource Grammar Library v. 1.0
Author: Aarne Ranta <aarne (at) cs.chalmers.se>
-Last update: Tue Mar 21 14:58:26 2006
+Last update: Tue Mar 21 16:36:57 2006
@@ -68,6 +68,7 @@ Bjorn Bringert (many Swadesh lexica),
Carlos Gonzalia (Spanish cardinals),
Harald Hammarstrom (German morphology),
Partik Jansson (Swedish cardinals),
+Andreas Priesnitz (German lexicon),
Aarne Ranta.
@@ -384,7 +385,6 @@ French
German
-- the Swadesh part of lexicon missing
- no list of irregular verbs
diff --git a/lib/resource-1.0/doc/index.txt b/lib/resource-1.0/doc/index.txt
index 2d6231c39..16fa546c3 100644
--- a/lib/resource-1.0/doc/index.txt
+++ b/lib/resource-1.0/doc/index.txt
@@ -32,6 +32,7 @@ Bjorn Bringert (many Swadesh lexica),
Carlos Gonzalia (Spanish cardinals),
Harald Hammarstrom (German morphology),
Partik Jansson (Swedish cardinals),
+Andreas Priesnitz (German lexicon),
Aarne Ranta.
We are grateful for contributions and
@@ -303,7 +304,6 @@ French
German
-- the Swadesh part of lexicon missing
- no list of irregular verbs
diff --git a/lib/resource-1.0/german/LexiconGer.gf b/lib/resource-1.0/german/LexiconGer.gf
index d6051e699..e2ccacc4e 100644
--- a/lib/resource-1.0/german/LexiconGer.gf
+++ b/lib/resource-1.0/german/LexiconGer.gf
@@ -1,6 +1,7 @@
--# -path=.:../common:../abstract:../../prelude
-concrete LexiconGer of Lexicon = CatGer ** open Prelude, ParadigmsGer, IrregGer in {
+concrete LexiconGer of Lexicon = CatGer **
+ open Prelude, ParadigmsGer, (Mo = MorphoGer), IrregGer in {
flags
optimize=all_subs ;
@@ -14,14 +15,14 @@ lin
apple_N = reg2N "Apfel" "Äpfel" masculine ;
art_N = reg2N "Kunst" "Künste" feminine ;
ask_V2Q = mkV2Q (regV "fragen") accPrep ;
- baby_N = reg2N "Baby" "babies" neuter ; ----
+ baby_N = reg2N "Baby" "Babies" neuter ; ----
bad_A = regA "schlecht" ;
bank_N = reg2N "Bank" "Banken" feminine ;
beautiful_A = regA "schön" ;
become_VA = mkVA (mkV "werde" "wird" "werd" "wurde" "würde" "geworden") ;
beer_N = reg2N "Bier" "Biere" neuter ;
beg_V2V = mkV2V (mkV "bitten" "bittet" "bitte" "bat" "bäte" "gebeten") accPrep ;
- big_A = mkA "groß" "größer""größte" ;
+ big_A = mkA "groß" "größer" "größte" ;
bike_N = reg2N "Fahrrad" "Fahrräder" neuter ;
bird_N = reg2N "Vogel" "Vögel" masculine ;
black_A = regA "schwarz" ;
@@ -29,7 +30,7 @@ lin
boat_N = reg2N "Boot" "Boote" neuter ;
book_N = reg2N "Buch" "Bücher" neuter ;
boot_N = reg2N "Stiefel" "Stiefel" masculine ;
- boss_N = reg2N "Chef" "Chefe" masculine ; ----
+ boss_N = reg2N "Chef" "Chefs" masculine ; ----
boy_N = reg2N "Junge" "Jungen" masculine ;
bread_N = reg2N "Brot" "Brote" neuter ;
break_V2 = dirV2
@@ -52,33 +53,33 @@ lin
city_N = reg2N "Stadt" "Städte" feminine ;
clean_A = regA "rein" ;
clever_A = mkA "klug" "klüger" "klügste" ;
- close_V2 = dirV2 (irregV "schliessen" "schließt" "schloß" "schlöße" "geschlossen") ;
+ close_V2 = dirV2 (irregV "schließen" "schließt" "schloß" "schlösse" "geschlossen") ;
coat_N = regN "Jacke" ;
- cold_A = regA "Kalt" ;
+ cold_A = regA "kalt" ;
come_V = seinV (mkV "kommen" "kommt" "komm" "kam" "käme" "gekommen") ;
computer_N = reg2N "Rechner" "Rechner" masculine ;
country_N = reg2N "Land" "Länder" neuter ;
cousin_N = reg2N "Vetter" "Vetter" masculine ; --- Kusine
cow_N = reg2N "Kuh" "Kühe" feminine ;
- die_V = seinV (irregV "sterben" "stirbt" "starb" "stärbe" "gestorben") ;
+ die_V = seinV (irregV "sterben" "stirbt" "starb" "stürbe" "gestorben") ;
distance_N3 = mkN3 (regN "Entfernung") von_Prep zu_Prep ;
dirty_A = regA "schmutzig" ;
do_V2 = dirV2 (irregV "tun" "tut" "tat" "täte" "getan") ;
doctor_N = reg2N "Arzt" "Ärzte" masculine ;
dog_N = regN "Hund" ;
- door_N = reg2N "Tür" "Türe" feminine ;
+ door_N = reg2N "Tür" "Türen" feminine ;
drink_V2 = dirV2 (irregV "trinken" "trinkt" "trank" "tränke" "getrunken") ;
easy_A2V = mkA2V (regA "leicht") (mkPrep "für" accusative) ;
eat_V2 = dirV2 (irregV "essen" "ißt" "aß" "äße" "gegessen") ;
empty_A = regA "leer" ; ---- check infl
enemy_N = regN "Feind" ;
- factory_N = regN "Fabrike" ;
+ factory_N = regN "Fabrik" ;
father_N2 = mkN2 (reg2N "Vater" "Väter" masculine) von_Prep ;
fear_VS = mkVS (regV "fürchten") ;
find_V2 = dirV2 (irregV "finden" "findet" "fand" "fände" "gefunden") ;
fish_N = regN "Fisch" ;
floor_N = reg2N "Fußboden" "Fußböden" masculine ;
- forget_V2 = dirV2 (irregV "vergessen" "vergißt" "vergaß" "vergässe" "vergessen") ;
+ forget_V2 = dirV2 (irregV "vergessen" "vergißt" "vergaß" "vergäße" "vergessen") ;
fridge_N = reg2N "Kühlschrank" "Kühlschränke" masculine ;
friend_N = regN "Freund" ;
fruit_N = reg2N "Frucht" "Früchte" feminine ;
@@ -91,7 +92,7 @@ lin
go_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ;
green_A = regA "grün" ;
harbour_N = reg2N "Hafen" "Häfen" masculine ;
- hate_V2 = dirV2 (regV "Hassen") ;
+ hate_V2 = dirV2 (regV "hassen") ;
hat_N = reg2N "Hut" "Hüte" masculine ;
have_V2 = dirV2 haben_V ;
hear_V2 = dirV2 (regV "hören") ;
@@ -110,8 +111,8 @@ lin
lamp_N = regN "Lampe";
learn_V2 = dirV2 (regV "lernen") ;
leather_N = reg2N "Leder" "Leder" neuter ;
- leave_V2 = dirV2 (irregV "verlassen" "verläßt" "verließ" "verliesse" "verlassen") ;
- like_V2 = dirV2 (irregV "magen" "mag" "mochte" "möchte" "gemocht") ;
+ leave_V2 = dirV2 (irregV "verlassen" "verläßt" "verließ" "verließe" "verlassen") ;
+ like_V2 = dirV2 (irregV "mögen" "mag" "mochte" "möchte" "gemocht") ;
listen_V2 = mkV2 (prefixV "zu" (regV "hören")) datPrep ; ---- dat
live_V = regV "leben" ;
long_A = mkA "lang" "länger" "längste" ;
@@ -121,7 +122,7 @@ lin
man_N = reg2N "Mann" "Männer" masculine ;
married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ;
meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- infl
- milk_N = reg2N "Milch" "Milchen" feminine ; ---- infl
+ milk_N = reg2N "Milch" "Milche" feminine ; ---- infl
moon_N = regN "Mond" ;
mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ;
mountain_N = regN "Berg" ;
@@ -146,14 +147,14 @@ lin
priest_N = regN "Priester" ;
probable_AS = mkAS (regA "wahrscheinlich") ;
put_V2 = dirV2 (regV "setzen") ;
- queen_N = reg2N "Königin" "königinnen" feminine ;
+ queen_N = reg2N "Königin" "Königinnen" feminine ;
radio_N = reg2N "Radio" "Radios" neuter ; ----
rain_V0 = mkV0 (regV "regnen") ;
read_V2 = dirV2 (irregV "lesen" "liest" "las" "läse" "gelesen") ;
red_A = regA "rot" ;
religion_N = regN "Religion" ;
restaurant_N = reg2N "Restaurant" "Restaurants" neuter ;
- river_N = reg2N "Fluß" "Flüße" masculine ;
+ river_N = reg2N "Fluß" "Flüsse" masculine ;
rock_N = regN "Stein" ;
roof_N = reg2N "Dach" "Dächer" neuter ;
rubber_N = reg2N "Gummi" "Gummis" neuter ;
@@ -173,9 +174,9 @@ lin
shop_N = reg2N "Laden" "Läden" masculine ;
short_A = regA "kurz" ;
silver_N = reg2N "Silber" "Silber" neuter ; ---- infl
- sister_N = reg2N "Schwester" "Schwester" feminine ;
+ sister_N = reg2N "Schwester" "Schwestern" feminine ;
sleep_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ;
- small_A = regA "Klein" ;
+ small_A = regA "klein" ;
snake_N = regN "Schlange" ;
sock_N = reg2N "Strumpf" "Strümpfe" masculine ;
song_N = reg2N "Lied" "Lieder" neuter ;
@@ -204,7 +205,7 @@ lin
ugly_A = regA "häßlich" ;
understand_V2 =
dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ;
- university_N = reg2N "Universitet" "Universiteten" feminine ;
+ university_N = reg2N "Universität" "Universitäten" feminine ;
village_N = reg2N "Dorf" "Dörfer" neuter ;
wait_V2 = mkV2 (regV "warten") (mkPrep "auf" accusative) ;
walk_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ;
@@ -222,137 +223,129 @@ lin
write_V2 = dirV2 (irregV "schreiben" "schreibt" "schrieb" "schriebe" "geschrieben") ;
yellow_A = regA "gelb" ;
young_A = mkA "jung" "jünger" "jüngste" ;
-
-
--- rest of Swadesh words: to be completed!
-
-{-
- left_Ord = ss "link" ; -- should be the adjective!
- right_Ord = ss "recht" ; -- adjective!
+ left_Ord = Mo.mkOrd (regA "link") ;
+ right_Ord = Mo.mkOrd (regA "recht") ;
far_Adv = mkAdv "weit" ;
- correct_A = (regA "recht") ;
+ correct_A = regA "richtig" ;
dry_A = regA "trocken" ;
- dull_A = regA "dull" ;
+ dull_A = regA "stumpf" ;
full_A = regA "voll" ;
heavy_A = regA "schwer" ;
- near_A = regA "nahe" ;
- rotten_A = (regA "rotten") ;
+ near_A = mkA "nahe" "näher" "nächste" ;
+ rotten_A = regA "verdorben" ;
round_A = regA "rund" ;
- sharp_A = regA "scharf" ;
- smooth_A = regA "eben" ;
+ sharp_A = mkA "scharf" "schärfer" "schärfste" ;
+ smooth_A = regA "glatt" ;
straight_A = regA "gerade" ;
- wet_A = regA "nass" ; ----
- wide_A = regA "weit" ;
- animal_N = regN "Tier" ;
- ashes_N = regN "Asch" ; -- FIXME: plural only?
- back_N = regN "Ruecke" ;
- bark_N = regN "bark" ;
- belly_N = regN "Mage" ;
+ wet_A = regA "naß" ;
+ wide_A = regA "breit" ;
+ animal_N = reg2N "Tier" "Tiere" neuter ;
+ ashes_N = regN "Asche" ;
+ back_N = reg2N "Rücken" "Rücken" masculine ;
+ bark_N = regN "Rinde" ;
+ belly_N = reg2N "Bauch" "Bäuche" masculine ;
blood_N = regN "Blut" ;
- bone_N = regN "Bein" ;
- breast_N = regN "Brust" ;
- cloud_N = regN "Wolk" ;
+ bone_N = reg2N "Knochen" "Knochen" masculine ;
+ breast_N = reg2N "Brust" "Brüste" feminine ;
+ cloud_N = regN "Wolke" ;
day_N = regN "Tag" ;
- dust_N = regN "dust" ;
- ear_N = regN "Ohre" ;
+ dust_N = reg2N "Staub" "Stäube" masculine ;
+ ear_N = regN "Ohr" ;
earth_N = regN "Erde" ;
egg_N = regN "Ei" ;
eye_N = regN "Auge" ;
- fat_N = regN "dick" ;
+ fat_N = regN "Fett" ;
feather_N = regN "feather" ;
- fingernail_N = regN "Nagel" ;
+ fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ;
fire_N = regN "Feuer" ;
- flower_N = regN "Blum" ;
- fog_N = regN "fog" ;
- foot_N = mk2N "foot" "feet" ;
- forest_N = regN "forest" ;
- grass_N = regN "grass" ;
- guts_N = regN "gut" ; -- FIXME: no singular
- hair_N = regN "hair" ;
- hand_N = regN "hand" ;
- head_N = regN "head" ;
- heart_N = regN "heart" ;
- horn_N = regN "horn" ;
+ flower_N = regN "Blume" ;
+ fog_N = regN "Nebel" ;
+ foot_N = reg2N "Fuß" "Füße" masculine ;
+ forest_N = reg2N "Wald" "Wälder" masculine ;
+ grass_N = regN "Gras" ;
+ guts_N = regN "Eingeweide" ;
+ hair_N = regN "Haar" ;
+ hand_N = regN "Hand" ;
+ head_N = regN "Kopf" ;
+ heart_N = regN "Herz" ;
+ horn_N = regN "Horn" ;
husband_N = regN "Ehemann" ;
- ice_N = regN "ice" ;
- knee_N = regN "knee" ;
- leaf_N = mk2N "leaf" "leaves" ;
- leg_N = regN "leg" ;
- liver_N = regN "liver" ;
- louse_N = mk2N "louse" "lice" ;
- mouth_N = regN "mouth" ;
- name_N = regN "name" ;
- neck_N = regN "neck" ;
- night_N = regN "night" ;
- nose_N = regN "nose" ;
- person_N = regN "Persone" ;
- rain_N = regN "regnen" ;
- road_N = regN "Strasse" ;
- root_N = regN "root" ;
- rope_N = regN "rope" ;
- salt_N = regN "salt" ;
- sand_N = regN "sand" ;
- seed_N = regN "seed" ;
- skin_N = regN "skin" ;
- sky_N = regN "sky" ;
- smoke_N = regN "smoke" ;
- snow_N = regN "snow" ;
- stick_N = regN "stick" ;
- tail_N = regN "tail" ;
- tongue_N = regN "tongue" ;
+ ice_N = regN "Eis" ;
+ knee_N = regN "Knie" ;
+ leaf_N = reg2N "Blatt" "Blätter" neuter ;
+ leg_N = regN "Bein" ;
+ liver_N = regN "Leber" ;
+ louse_N = reg2N "Laus" "Läuse" feminine ;
+ mouth_N = regN "Mund" ;
+ name_N = regN "Name" ;
+ neck_N = regN "Nacken" ;
+ night_N = reg2N "Nacht" "Nächte" feminine ;
+ nose_N = regN "Nase" ;
+ person_N = regN "Person" ;
+ rain_N = regN "Regen" ;
+ road_N = regN "Straße" ;
+ root_N = regN "Wurzel" ;
+ rope_N = regN "Seil" ;
+ salt_N = regN "Salz" ;
+ sand_N = regN "Sand" ;
+ seed_N = regN "Same" ;
+ skin_N = regN "Haut" ;
+ sky_N = regN "Himmel" ;
+ smoke_N = regN "Rauch" ;
+ snow_N = regN "Schnee" ;
+ stick_N = regN "Stock" ;
+ tail_N = regN "Schwanz" ;
+ tongue_N = regN "Zunge" ;
tooth_N = regN "Zahn" ;
- wife_N = regN "Frau" ;
- wind_N = regN "wind" ;
- wing_N = regN "wing" ;
- worm_N = regN "worm" ;
- year_N = regN "year" ;
- blow_V = blow_V ;
- breathe_V = dirV2 (regV "breathe") ;
- burn_V = burn_V ;
- dig_V = dig_V ;
- fall_V = fall_V ;
- float_V = regV "float" ;
- flow_V = regV "flow" ;
- fly_V = fly_V ;
- freeze_V = freeze_V ;
- give_V3 = dirV3 give_V "to" ;
- laugh_V = regV "laugh" ;
- lie_V = lie_V ;
- play_V = regV "play" ;
- sew_V = sew_V ;
- sing_V = sing_V ;
- sit_V = sit_V ;
- smell_V = regV "smell" ;
- spit_V = spit_V ;
- stand_V = stand_V ;
- swell_V = swell_V ;
- swim_V = swim_V ;
- think_V = think_V ;
- turn_V = regV "turn" ;
- vomit_V = regV "vomit" ;
-
- bite_V2 = dirV2 bite_V ;
- count_V2 = dirV2 (regV "count") ;
- cut_V2 = dirV2 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") ;
-
--}
+ wife_N = regN "Ehefrau" ;
+ wind_N = regN "Wind" ;
+ wing_N = reg2N "Flügel" "Flügel" masculine ;
+ worm_N = regN "Wurm" ;
+ year_N = regN "Jahr" ;
+ blow_V = regV "blasen" ;
+ breathe_V = regV "atmen" ;
+ burn_V = regV "brennen" ;
+ dig_V = regV "graben" ;
+ fall_V = regV "fallen" ;
+ float_V = regV "treiben" ;
+ flow_V = regV "fließen" ;
+ fly_V = regV "fliegen" ;
+ freeze_V = regV "frieren" ;
+ give_V3 = accdatV3 (irregV "geben" "gibt" "gab" "gäbe" "gegeben") ;
+ laugh_V = regV "lachen" ;
+ lie_V = regV "lügen" ;
+ play_V = regV "spielen" ;
+ sew_V = regV "nähen" ;
+ sing_V = regV "singen" ;
+ sit_V = irregV "sitzen" "sitzt" "saß" "säße" "gesessen" ;
+ smell_V = regV "riechen" ;
+ spit_V = regV "spucken" ;
+ stand_V = regV "stehen" ;
+ swell_V = prefixV "an" (regV "schwellen") ;
+ swim_V = regV "schwimmen" ;
+ think_V = regV "denken" ;
+ turn_V = regV "drehen" ;
+ vomit_V = regV "kotzen" ;
+ bite_V2 = dirV2 (regV "beissen") ;
+ count_V2 = dirV2 (regV "zählen") ;
+ cut_V2 = dirV2 (regV "schneiden") ;
+ fear_V2 = dirV2 (regV "fürchten") ;
+ fight_V2 = dirV2 (regV "bekämpfen") ;
+ hit_V2 = dirV2 (regV "schlagen") ;
+ hold_V2 = dirV2 (regV "halten") ;
+ hunt_V2 = dirV2 (regV "jagen") ;
+ kill_V2 = dirV2 (regV "töten") ;
+ pull_V2 = dirV2 (regV "ziehen") ;
+ push_V2 = dirV2 (regV "schieben") ;
+ rub_V2 = dirV2 (regV "reiben") ;
+ scratch_V2 = dirV2 (regV "kratzen") ;
+ split_V2 = dirV2 (prefixV "auf" (regV "teilen")) ;
+ squeeze_V2 = dirV2 (regV "pressen") ;
+ stab_V2 = dirV2 (regV "stechen") ;
+ suck_V2 = dirV2 (regV "saugen") ;
+ throw_V2 = dirV2 (regV "werfen") ;
+ tie_V2 = dirV2 (regV "binden") ;
+ wash_V2 = dirV2 (regV "waschen") ;
+ wipe_V2 = dirV2 (regV "wischen") ;
} ;
diff --git a/lib/resource-1.0/german/MorphoGer.gf b/lib/resource-1.0/german/MorphoGer.gf
index 11dfc5d87..2dad7f35b 100644
--- a/lib/resource-1.0/german/MorphoGer.gf
+++ b/lib/resource-1.0/german/MorphoGer.gf
@@ -26,6 +26,9 @@ oper
{s : Gender => Case => Str ; n : Number ; a : Adjf} = \n,dies ->
{s = appAdj (regA dies) ! n ; n = n ; a = Weak} ;
+ mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
+ {s = a.s ! Posit} ;
+
-- For $ParadigmsGer$.
genitS : Str -> Str = \hund -> case hund of {