diff --git a/examples/bronzeage/Swadesh.gf b/examples/bronzeage/Swadesh.gf index bd96fdd9f..8e7e488c3 100644 --- a/examples/bronzeage/Swadesh.gf +++ b/examples/bronzeage/Swadesh.gf @@ -22,11 +22,9 @@ abstract Swadesh = Cat ** { that_Det : Det ; this_Det : Det ; - all_Det : Det ; +---- all_Predet : Predet ; many_Det : Det ; some_Det : Det ; - few_Det : Det ; - other_Det : Det ; left_Ord : Ord ; right_Ord : Ord ; @@ -81,6 +79,7 @@ abstract Swadesh = Cat ** { near_A : A ; new_A : A ; old_A : A ; + other_A : A ; red_A : A ; rotten_A : A ; round_A : A ; @@ -118,7 +117,7 @@ abstract Swadesh = Cat ** { egg_N : N ; eye_N : N ; fat_N : MassN ; - father_N : N ; +---- father_N : N ; feather_N : N ; fingernail_N : N ; fire_N : N ; @@ -146,7 +145,7 @@ abstract Swadesh = Cat ** { man_N : N ; meat_N : MassN ; moon_N : N ; - mother_N : N ; +---- mother_N : N ; mountain_N : N ; mouth_N : N ; name_N : N ; @@ -186,61 +185,61 @@ abstract Swadesh = Cat ** { -- Verbs - bite_V : V2 ; + bite_V2 : V2 ; blow_V : V ; breathe_V : V ; burn_V : V ; come_V : V ; - count_V : V2 ; - cut_V : V2 ; + count_V2 : V2 ; + cut_V2 : V2 ; die_V : V ; dig_V : V ; - drink_V : V2 ; - eat_V : V2 ; + drink_V2 : V2 ; + eat_V2 : V2 ; fall_V : V ; - fear_V : V2 ; - fight_V : V2 ; + fear_V2 : V2 ; + fight_V2 : V2 ; float_V : V ; flow_V : V ; fly_V : V ; freeze_V : V ; - give_V : V3 ; - hear_V : V2 ; - hit_V : V2 ; - hold_V : V2 ; - hunt_V : V2 ; - kill_V : V2 ; - know_V : V2 ; + give_V3 : V3 ; + hear_V2 : V2 ; + hit_V2 : V2 ; + hold_V2 : V2 ; + hunt_V2 : V2 ; + kill_V2 : V2 ; + know_V2 : V2 ; laugh_V : V ; lie_V : V ; live_V : V ; play_V : V ; - pull_V : V2 ; - push_V : V2 ; - rub_V : V2 ; + pull_V2 : V2 ; + push_V2 : V2 ; + rub_V2 : V2 ; say_V : V ; - scratch_V : V2 ; - see_V : V2 ; + scratch_V2 : V2 ; + see_V2 : V2 ; sew_V : V ; sing_V : V ; sit_V : V ; sleep_V : V ; smell_V : V ; spit_V : V ; - split_V : V2 ; - squeeze_V : V2 ; - stab_V : V2 ; + split_V2 : V2 ; + squeeze_V2 : V2 ; + stab_V2 : V2 ; stand_V : V ; - suck_V : V2 ; + suck_V2 : V2 ; swell_V : V ; swim_V : V ; think_V : V ; - throw_V : V2 ; - tie_V : V2 ; + throw_V2 : V2 ; + tie_V2 : V2 ; turn_V : V ; vomit_V : V ; walk_V : V ; - wash_V : V2 ; - wipe_V : V2 ; + wash_V2 : V2 ; + wipe_V2 : V2 ; } diff --git a/examples/bronzeage/SwadeshEng.gf b/examples/bronzeage/SwadeshEng.gf index 1f7ef9108..5b10141c5 100644 --- a/examples/bronzeage/SwadeshEng.gf +++ b/examples/bronzeage/SwadeshEng.gf @@ -1,247 +1,5 @@ ---# -path=.:../abstract:../common:../english:../../prelude +--# -path=.:present:prelude -concrete SwadeshEng of Swadesh = CatEng - ** open MorphoEng, LangEng, ParadigmsEng, IrregEng, Prelude in { +concrete SwadeshEng of Swadesh = CatEng ** SwadeshI with + (Lang = LangEng) ; - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = mkDeterminer Pl "all" ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = mkDeterminer Pl "few" ; - other_Det = mkDeterminer Pl "other" ; - - left_Ord = ss "left" ; - right_Ord = ss "right" ; - - -- Adverbs - - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - how_IAdv = how_IAdv; - far_Adv = mkAdv "far" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = ss "at" ; - in_Prep = ss "in" ; - with_Prep = ss "with" ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = (regA "correct") ; - dirty_A = dirty_A ; - dry_A = regA "dry" ; - dull_A = regA "dull" ; - full_A = regA "full" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = regA "heavy" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = regA "near" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = (regA "rotten") ; - round_A = regA "round" ; - sharp_A = regA "sharp" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "smooth" ; - straight_A = regA "straight" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "wet" ; ---- - white_A = white_A ; - wide_A = regA "wide" ; - yellow_A = yellow_A ; - - -- Nouns - - animal_N = regN "animal" ; - ashes_N = regN "ash" ; -- FIXME: plural only? - back_N = regN "back" ; - bark_N = regN "bark" ; - belly_N = regN "belly" ; - bird_N = bird_N; - blood_N = regN "blood" ; - bone_N = regN "bone" ; - breast_N = regN "breast" ; - child_N = child_N ; - cloud_N = regN "cloud" ; - day_N = regN "day" ; - dog_N = dog_N ; - dust_N = regN "dust" ; - ear_N = regN "ear" ; - earth_N = regN "earth" ; - egg_N = regN "egg" ; - eye_N = regN "eye" ; - fat_N = regN "fat" ; - father_N = UseN2 father_N2 ; - feather_N = regN "feather" ; - fingernail_N = regN "fingernail" ; - fire_N = regN "fire" ; - fish_N = fish_N ; - flower_N = regN "flower" ; - fog_N = regN "fog" ; - foot_N = mk2N "foot" "feet" ; - forest_N = regN "forest" ; - fruit_N = fruit_N ; - 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" ; - husband_N = genderN masculine (regN "husband") ; - ice_N = regN "ice" ; - knee_N = regN "knee" ; - lake_N = lake_N ; - leaf_N = mk2N "leaf" "leaves" ; - leg_N = regN "leg" ; - liver_N = regN "liver" ; - louse_N = mk2N "louse" "lice" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = regN "mouth" ; - name_N = regN "name" ; - neck_N = regN "neck" ; - night_N = regN "night" ; - nose_N = regN "nose" ; - person_N = genderN human (regN "person") ; - rain_N = regN "rain" ; - river_N = river_N ; - road_N = regN "road" ; - root_N = regN "root" ; - rope_N = regN "rope" ; - salt_N = regN "salt" ; - sand_N = regN "sand" ; - sea_N = sea_N ; - seed_N = regN "seed" ; - skin_N = regN "skin" ; - sky_N = regN "sky" ; - smoke_N = regN "smoke" ; - snake_N = snake_N ; - snow_N = regN "snow" ; - star_N = star_N ; - stick_N = regN "stick" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = regN "tail" ; - tongue_N = regN "tongue" ; - tooth_N = mk2N "tooth" "teeth" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = genderN feminine (mk2N "wife" "wives") ; - wind_N = regN "wind" ; - wing_N = regN "wing" ; - woman_N = woman_N ; - worm_N = regN "worm" ; - year_N = regN "year" ; - - -- Verbs - - bite_V = dirV2 bite_V ; - blow_V = blow_V ; - breathe_V = dirV2 (regV "breathe") ; - burn_V = burn_V ; - come_V = come_V ; - count_V = dirV2 (regV "count") ; - cut_V = dirV2 cut_V ; - die_V = die_V ; - dig_V = dig_V ; - drink_V = dirV2 drink_V ; - eat_V = dirV2 eat_V ; - fall_V = fall_V ; - fear_V = dirV2 (regV "fear") ; - fight_V = dirV2 fight_V ; - float_V = regV "float" ; - flow_V = regV "flow" ; - fly_V = fly_V ; - freeze_V = freeze_V ; - give_V = dirV3 give_V "to" ; - hear_V = dirV2 hear_V ; - hit_V = dirV2 hit_V ; - hold_V = dirV2 hold_V ; - hunt_V = dirV2 (regV "hunt") ; - kill_V = dirV2 (regV "kill") ; - know_V = dirV2 know_V ; - laugh_V = regV "laugh" ; - lie_V = lie_V ; - live_V = live_V ; - play_V = regV "play" ; - pull_V = dirV2 (regV "pull") ; - push_V = dirV2 (regV "push") ; - rub_V = dirV2 (regDuplV "rub") ; - say_V = say_V ; - scratch_V = dirV2 (regV "scratch") ; - see_V = dirV2 see_V ; - sew_V = sew_V ; - sing_V = sing_V ; - sit_V = sit_V ; - sleep_V = sleep_V ; - smell_V = regV "smell" ; - spit_V = spit_V ; - split_V = dirV2 split_V ; - squeeze_V = dirV2 (regV "squeeze") ; - stab_V = dirV2 (regDuplV "stab") ; - stand_V = stand_V ; - suck_V = dirV2 (regV "suck") ; - swell_V = swell_V ; - swim_V = swim_V ; - think_V = think_V ; - throw_V = dirV2 throw_V ; - tie_V = dirV2 (regV "tie") ; - turn_V = regV "turn" ; - vomit_V = regV "vomit" ; - walk_V = walk_V ; - wash_V = dirV2 (regV "wash") ; - wipe_V = dirV2 (regV "wipe") ; - -} diff --git a/examples/bronzeage/SwadeshFin.gf b/examples/bronzeage/SwadeshFin.gf index cde914ee0..191874c05 100644 --- a/examples/bronzeage/SwadeshFin.gf +++ b/examples/bronzeage/SwadeshFin.gf @@ -1,269 +1,5 @@ ---# -path=.:../present:../finnish:../common:../abstract:../../prelude +--# -path=.:present:prelude -concrete SwadeshFin of Swadesh = CatFin - ** open MorphoFin, LangFin, ParadigmsFin, Prelude in { +concrete SwadeshFin of Swadesh = CatFin ** SwadeshI with + (Lang = LangFin) ; - flags optimize=values ; - - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = mkDet Pl {s = \\nf => - let - kaiket = (nhn (sKorpi "kaikki" "kaiken" "kaikkena")).s - in - case nf of { - NCase Pl Nom => "kaikki" ; - _ => kaiket ! nf - } - } ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = mkDet Sg (regN "harva") ; - other_Det = mkDet Sg (regN "muu") ; - - left_Ord = mkOrd (regN "vasen") ; - right_Ord = mkOrd (regN "oikea") ; - - oper - mkOrd : N -> Ord ; - mkOrd x = {s = \\n,c => x.s ! NCase n c; lock_Ord = <> } ; - - lin - - -- Adverbs - - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - how_IAdv = how_IAdv; - far_Adv = mkAdv "kaukana" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = casePrep adessive ; - in_Prep = casePrep inessive ; - with_Prep = postGenPrep "kanssa" ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "oikea" ; - dirty_A = dirty_A ; - dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ; - dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ; - full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = regA "raskas" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = regA "läheinen" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = regA "mätä" ; - round_A = regA "pyöreä" ; - sharp_A = regA "terävä" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "sileä" ; - straight_A = mkADeg (regN "suora") "suorempi" "suorin" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = mkADeg (regN "märkä") "märempi" "märin" ; - white_A = white_A ; - wide_A = regA "leveä" ; - yellow_A = yellow_A ; - - -- Nouns - - animal_N = reg3N "eläin" "eläimen" "eläimiä" ; - ashes_N = regN "tuhka" ; - back_N = regN "selkä" ; - bark_N = regN "kaarna" ; - belly_N = regN "vatsa" ; - bird_N = bird_N; - blood_N = nMeri "veri" ; - bone_N = regN "luu" ; - breast_N = regN "rinta" ; - child_N = child_N ; - cloud_N = reg2N "pilvi" "pilviä" ; - day_N = regN "päivä" ; - dog_N = dog_N ; - dust_N = regN "pöly" ; - ear_N = regN "korva" ; - earth_N = regN "maa" ; - egg_N = regN "muna" ; - eye_N = regN "silmä" ; - fat_N = regN "rasva" ; - father_N = regN "isä" ; - feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; - fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ; - fire_N = reg2N "tuli" "tulia" ; - fish_N = fish_N ; - flower_N = regN "kukka" ; - fog_N = regN "sumu" ; - foot_N = regN "jalka" ; - forest_N = regN "metsä" ; - fruit_N = fruit_N ; - grass_N = regN "ruoho" ; - guts_N = regN "sisälmys" ; --- suoli - hair_N = regN "hius" ; - hand_N = reg3N "käsi" "käden" "käsiä" ; - head_N = regN "pää" ; - heart_N = reg3N "sydän" "sydämen" "sydämiä" ; - horn_N = reg2N "sarvi" "sarvia" ; - husband_N = man_N ; --- aviomies - ice_N = regN "jää" ; - knee_N = reg2N "polvi" "polvia" ; - lake_N = lake_N ; - leaf_N = reg2N "lehti" "lehtiä" ; - leg_N = regN "jalka" ; --- sääri - liver_N = regN "maksa" ; - louse_N = regN "lude" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = regN "äiti" ; - mountain_N = mountain_N ; - mouth_N = regN "suu" ; - name_N = reg2N "nimi" "nimiä" ; - neck_N = regN "niska" ; - night_N = regN "yö" ; - nose_N = regN "nenä" ; - person_N = regN "henkilö" ; - rain_N = regN "sade" ; - river_N = river_N ; - road_N = regN "tie" ; - root_N = reg2N "juuri" "juuria" ; - rope_N = reg3N "köysi" "köyden" "köysiä" ; - salt_N = regN "suola" ; - sand_N = regN "hiekka" ; - sea_N = sea_N ; - seed_N = regN "siemen" ; - skin_N = regN "nahka" ; - sky_N = reg3N "taivas" "taivaan" "taivaita" ; - smoke_N = regN "savu" ; - snake_N = snake_N ; - snow_N = sgpartN (nMeri "lumi") "lunta" ; - star_N = star_N ; - stick_N = regN "keppi" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = regN "häntä" ; - tongue_N = reg2N "kieli" "kieliä" ; - tooth_N = regN "hammas" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = regN "vaimo" ; - wind_N = reg2N "tuuli" "tuulia" ; - wing_N = reg2N "siipi" "siipiä" ; - woman_N = woman_N ; - worm_N = regN "mato" ; - year_N = reg3N "vuosi" "vuoden" "vuosia" ; - - -- Verbs - - bite_V = dirV2 (regV "purra") ; - blow_V = regV "puhaltaa" ; - breathe_V = dirV2 (regV "hengittää") ; - burn_V = regV "palaa" ; - come_V = come_V ; - count_V = dirV2 (regV "laskea") ; - cut_V = dirV2 (reg2V "leikata" "leikkasi") ; - die_V = regV "kuolla"; - dig_V = regV "kaivaa" ; - drink_V = dirV2 ( drink_V2) ; - eat_V = dirV2 ( eat_V2) ; - fall_V = reg3V "pudota" "putoan" "putosi" ; - fear_V = dirV2 (reg3V "pelätä" "pelkään" "pelkäsi") ; - fight_V = dirV2 (regV "taistella") ; - float_V = regV "kellua" ; - flow_V = reg3V "virrata" "virtaan" "virtasi" ; - fly_V = regV "lentää" ; - freeze_V = regV "jäätyä" ; - give_V = dirdirV3 (regV "antaa") ; - hear_V = dirV2 ( hear_V2) ; - hit_V = dirV2 (regV "lyödä") ; - hold_V = dirV2 (regV "pitää") ; - hunt_V = dirV2 (regV "metsästää") ; - kill_V = dirV2 (regV "tappaa") ; - know_V = dirV2 (reg2V "tuntea" "tunsin") ; - laugh_V = reg3V "nauraa" "nauran" "nauroi" ; - lie_V = reg3V "maata" "makaan" "makasi" ; - live_V = live_V ; - play_V = play_V2 ; - pull_V = dirV2 (regV "vetää") ; - push_V = dirV2 (regV "työntää") ; - rub_V = dirV2 (regV "hieroa") ; - say_V = regV "sanoa" ; - scratch_V = dirV2 (regV "raapia") ; - see_V = ( see_V2) ; - sew_V = regV "kylvää" ; - sing_V = regV "laulaa" ; - sit_V = regV "istua" ; - sleep_V = sleep_V ; - smell_V = reg2V "haistaa" "haistoi" ; - spit_V = regV "sylkeä" ; - split_V = dirV2 (reg2V "halkaista" "halkaisi") ; - squeeze_V = dirV2 (regV "puristaa") ; - stab_V = dirV2 (regV "pistää") ; - stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään" - "seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät - suck_V = dirV2 (regV "imeä") ; - swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan" - "turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ; - swim_V = reg3V "uida" "uin" "ui" ; - think_V = reg3V "ajatella" "ajattelen" "ajatteli" ; - throw_V = dirV2 (regV "heittää") ; - tie_V = dirV2 (regV "sitoa") ; - turn_V = regV "kääntyä" ; - vomit_V = regV "oksentaa" ; - walk_V = walk_V ; - wash_V = dirV2 (regV "pestä") ; - wipe_V = dirV2 (regV "pyyhkiä") ; - -oper - regA = regADeg ; ---- - - -} diff --git a/examples/bronzeage/SwadeshFre.gf b/examples/bronzeage/SwadeshFre.gf index 63a418830..bffe9e36e 100644 --- a/examples/bronzeage/SwadeshFre.gf +++ b/examples/bronzeage/SwadeshFre.gf @@ -1,259 +1,5 @@ ---# -path=.:../french:../common:../abstract:../../prelude:../romance +--# -path=.:present:prelude -concrete SwadeshFre of Swadesh = CatFre - ** open PhonoFre, MorphoFre, LangFre, ParadigmsFre, IrregFre, Prelude in { +concrete SwadeshFre of Swadesh = CatFre ** SwadeshI with + (Lang = LangFre) ; - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = { - s = \\g,c => prepCase c ++ genForms "tous" "toutes" ! g ++ "les" ; - n = Pl - } ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = {s = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl} ; - other_Det = { - s = \\g,c => prepCase c ++ "d'autres" ; -- de d'autres - n = Pl - } ; - - left_Ord = mkOrd (regA "gauche") ; - right_Ord = mkOrd (regA "droite") ; - - oper - mkOrd : A -> Ord ; - mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; - - lin - - -- Adverbs - - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - how_IAdv = how_IAdv; - far_Adv = mkAdv "loin" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = dative ; - in_Prep = in_Prep ; - with_Prep = with_Prep ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "correct" ; - dirty_A = dirty_A ; - dry_A = (mkA "sec" "sèche" "secs" "sèches") ; - dull_A = regA "émoussé" ; - full_A = regA "plein" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = regA "lourd" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = regA "proche" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = regA "pourri" ; - round_A = regA "rond" ; - sharp_A = regA "tranchant" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "lisse" ; - straight_A = regA "droite" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "mouillé" ; - white_A = white_A ; - wide_A = regA "large" ; - yellow_A = yellow_A ; - - -- Nouns - - animal_N = regN "animal" ; - ashes_N = regGenN "cendre" masculine ; - back_N = regN "dos" ; - bark_N = regN "écorce" ; - belly_N = regGenN "ventre" masculine ; - bird_N = bird_N; - blood_N = regN "sang" ; - bone_N = regN "os" ; - breast_N = regN "sein" ; --- poitrine - child_N = child_N ; - cloud_N = regGenN "nuage" masculine ; - day_N = regN "jour" ; - dog_N = dog_N ; - dust_N = regN "poussière" ; - ear_N = regN "oreille" ; - earth_N = regN "terre" ; - egg_N = regN "oeuf" ; - eye_N = mkN "oeil" "yeux" masculine ; - fat_N = regN "graisse" ; - father_N = UseN2 father_N2 ; - feather_N = regN "plume" ; - fingernail_N = regGenN "ongle" masculine ; - fire_N = regN "feu" ; - fish_N = fish_N ; - flower_N = regGenN "fleur" feminine ; - fog_N = regN "brouillard" ; - foot_N = regN "pied" ; - forest_N = regGenN "forêt" feminine ; - fruit_N = fruit_N ; - grass_N = regN "herbe" ; - guts_N = regN "entraille" ; - hair_N = regN "cheveu" ; - hand_N = regGenN "main" feminine ; - head_N = regN "tête" ; - heart_N = regN "coeur" ; - horn_N = regGenN "corne" masculine ; - husband_N = regN "mari" ; - ice_N = regN "glace" ; - knee_N = regN "genou" ; - lake_N = lake_N ; - leaf_N = regN "feuille" ; - leg_N = regN "jambe" ; - liver_N = regGenN "foie" masculine ; - louse_N = regN "pou" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = regN "bouche" ; - name_N = regN "nom" ; - neck_N = mkN "cou" "cous" masculine ; - night_N = regGenN "nuit" feminine ; - nose_N = regN "nez" ; - person_N = regN "personne" ; - rain_N = regN "pluie" ; - river_N = river_N ; - road_N = regN "route" ; - root_N = regN "racine" ; - rope_N = regN "corde" ; - salt_N = regN "sel" ; - sand_N = regGenN "sable" masculine ; - sea_N = sea_N ; - seed_N = regN "graine" ; - skin_N = regN "peau" ; - sky_N = mkN "ciel" "cieux" masculine ; - smoke_N = regN "fumée" ; - snake_N = snake_N ; - snow_N = regN "neige" ; - star_N = star_N ; - stick_N = regN "bâton" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = regN "queue" ; - tongue_N = regN "langue" ; - tooth_N = regGenN "dent" feminine ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = regN "femme" ; - wind_N = regN "vent" ; - wing_N = regN "aile" ; - woman_N = woman_N ; - worm_N = regN "ver" ; - year_N = regN "an" ; --- année - - -- Verbs - - bite_V = ( mordre_V2) ; - blow_V = regV "souffler" ; - breathe_V = dirV2 (regV "respirer") ; - burn_V = regV "brûler" ; - come_V = venir_V ; - count_V = dirV2 (regV "conter") ; - cut_V = dirV2 (regV "tailler") ; - die_V = mourir_V ; - dig_V = regV "creuser" ; - drink_V = ( boire_V2) ; - eat_V = dirV2 (regV "manger") ; - fall_V = regV "tomber" ; - fear_V = ( craindre_V2) ; - fight_V = dirV2 (regV "lutter") ; - float_V = regV "flotter" ; - flow_V = regV "couler" ; - fly_V = regV "voler" ; - freeze_V = reg3V "geler" "gèle" "gèlera" ; - give_V = dirdirV3 (regV "donner") ; - hear_V = ( entendre_V2) ; - hit_V = dirV2 (regV "frapper") ; - hold_V = ( tenir_V2) ; - hunt_V = dirV2 (regV "chasser") ; - kill_V = dirV2 (regV "tuer") ; - know_V = ( connaître_V2) ; - laugh_V = rire_V2 ; - lie_V = reflV étendre_V2 ; - live_V = vivre_V2 ; - play_V = regV "jouer" ; - pull_V = dirV2 (regV "tirer") ; - push_V = dirV2 (regV "pousser") ; - rub_V = dirV2 (regV "frotter") ; - say_V = dire_V2 ; - scratch_V = dirV2 (regV "gratter") ; - see_V = ( voir_V2) ; - sew_V = coudre_V2 ; - sing_V = regV "chanter" ; - sit_V = reflV asseoir_V2 ; - sleep_V = dormir_V2 ; - smell_V = v2V ( sentir_V2) ; - spit_V = regV "cracher" ; - split_V = ( fendre_V2) ; - squeeze_V = dirV2 (regV "serrer") ; - stab_V = dirV2 (regV "poignarder") ; - stand_V = reflV (reg3V "lever" "lève" "lèvera") ; - suck_V = dirV2 (regV "sucer") ; - swell_V = regV "gonfler" ; - swim_V = regV "nager" ; - think_V = regV "penser" ; - throw_V = dirV2 (regV "jeter") ; - tie_V = dirV2 (regV "lier") ; - turn_V = regV "tourner" ; - vomit_V = regV "vomir" ; - walk_V = regV "marcher" ; - wash_V = dirV2 (regV "laver") ; - wipe_V = dirV2 (regV "essuyer") ; - -} diff --git a/examples/bronzeage/SwadeshI.gf b/examples/bronzeage/SwadeshI.gf new file mode 100644 index 000000000..01f1a43c2 --- /dev/null +++ b/examples/bronzeage/SwadeshI.gf @@ -0,0 +1,228 @@ +incomplete concrete SwadeshI of Swadesh = open Lang in { + + lincat + MassN = Lang.N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + many_Det = many_Det ; + some_Det = someSg_Det ; +---- few_Det = few_Det ; + + left_Ord = left_Ord ; + right_Ord = right_Ord ; + -- Adverbs + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = far_Adv ; + -- not : Adv ; -- ? + -- Conjunctions + and_Conj = and_Conj ; + -- Prepositions + in_Prep = in_Prep ; + with_Prep = with_Prep ; + -- Numerals + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + -- Adjectives + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = correct_A ; + dirty_A = dirty_A ; + dry_A = dry_A ; + dull_A = dull_A ; + full_A = full_A ; + good_A = good_A ; + green_A = green_A ; + heavy_A = heavy_A ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = near_A ; + new_A = new_A ; + old_A = old_A ; +---- other_A = other_A ; + red_A = red_A ; + rotten_A = rotten_A ; + round_A = round_A ; + sharp_A = sharp_A ; + short_A = short_A ; + small_A = small_A ; + smooth_A = smooth_A ; + straight_A = straight_A ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = wet_A ; + white_A = white_A ; + wide_A = wide_A ; + yellow_A = yellow_A ; + -- Nouns + animal_N = animal_N ; + ashes_N = ashes_N ; + back_N = back_N ; + bark_N = bark_N ; + belly_N = belly_N ; + bird_N = bird_N; + blood_N = blood_N ; + bone_N = bone_N ; + breast_N = breast_N ; + child_N = child_N ; + cloud_N = cloud_N ; + day_N = day_N ; + dog_N = dog_N ; + dust_N = dust_N ; + ear_N = ear_N ; + earth_N = earth_N ; + egg_N = egg_N ; + eye_N = eye_N ; + fat_N = fat_N ; + feather_N = feather_N ; + fingernail_N = fingernail_N ; + fire_N = fire_N ; + fish_N = fish_N ; + flower_N = flower_N ; + fog_N = fog_N ; + foot_N = foot_N ; + forest_N = forest_N ; + fruit_N = fruit_N ; + grass_N = grass_N ; + guts_N = guts_N ; + hair_N = hair_N ; + hand_N = hand_N ; + head_N = head_N ; + heart_N = heart_N ; + horn_N = horn_N ; + husband_N = man_N ; --- aviomies + ice_N = ice_N ; + knee_N = knee_N ; + lake_N = lake_N ; + leaf_N = leaf_N ; + leg_N = leg_N ; + liver_N = liver_N ; + louse_N = louse_N ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; +---- mother_N = mother_N ; + mountain_N = mountain_N ; + mouth_N = mouth_N ; + name_N = name_N ; + neck_N = neck_N ; + night_N = night_N ; + nose_N = nose_N ; + person_N = person_N ; + rain_N = rain_N ; + river_N = river_N ; + road_N = road_N ; + root_N = root_N ; + rope_N = rope_N ; + salt_N = salt_N ; + sand_N = sand_N ; + sea_N = sea_N ; + seed_N = seed_N ; + skin_N = skin_N ; + sky_N = sky_N ; + smoke_N = smoke_N ; + snake_N = snake_N ; + snow_N = snow_N ; + star_N = star_N ; + stick_N = stick_N ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = tail_N ; + tongue_N = tongue_N ; + tooth_N = tooth_N ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = wife_N ; + wind_N = wind_N ; + wing_N = wing_N ; + woman_N = woman_N ; + worm_N = worm_N ; + year_N = year_N ; + -- Verbs + bite_V2 = bite_V2 ; + blow_V = blow_V ; + breathe_V = breathe_V ; + burn_V = burn_V ; + come_V = come_V ; + count_V2 = count_V2 ; + cut_V2 = cut_V2 ; + die_V = die_V ; + dig_V = dig_V ; + drink_V2 = ( drink_V2) ; + eat_V2 = ( eat_V2) ; + fall_V = fall_V ; + fear_V2 = fear_V2 ; + fight_V2 = fight_V2 ; + float_V = float_V ; + flow_V = flow_V ; + fly_V = fly_V ; + freeze_V = freeze_V ; + give_V3 = give_V3 ; + hear_V2 = hear_V2 ; + hit_V2 = hit_V2 ; + hold_V2 = hold_V2 ; + hunt_V2 = hunt_V2 ; + kill_V2 = kill_V2 ; + know_V2 = know_V2 ; + laugh_V = laugh_V ; + lie_V = lie_V ; + live_V = live_V ; + play_V = play_V2 ; + pull_V2 = pull_V2 ; + push_V2 = push_V2 ; + rub_V2 = rub_V2 ; + say_V = say_VS ; + scratch_V2 = scratch_V2 ; + see_V2 = ( see_V2) ; + sew_V = sew_V ; + sing_V = sing_V ; + sit_V = sit_V ; + sleep_V = sleep_V ; + smell_V = smell_V ; + spit_V = spit_V ; + split_V2 = split_V2 ; + squeeze_V2 = squeeze_V2 ; + stab_V2 = stab_V2 ; + stand_V = stand_V ; + suck_V2 = suck_V2 ; + swell_V = swell_V ; + swim_V = swim_V ; + think_V = think_V ; + throw_V2 = throw_V2 ; + tie_V2 = tie_V2 ; + turn_V = turn_V ; + vomit_V = vomit_V ; + walk_V = walk_V ; + wash_V2 = wash_V2 ; + wipe_V2 = wipe_V2 ; + + + +} diff --git a/examples/bronzeage/SwadeshIta.gf b/examples/bronzeage/SwadeshIta.gf index e04eec40b..b84295867 100644 --- a/examples/bronzeage/SwadeshIta.gf +++ b/examples/bronzeage/SwadeshIta.gf @@ -1,258 +1,5 @@ ---# -path=.:../italian:../common:../abstract:../../prelude:../romance +--# -path=.:present:prelude -concrete SwadeshIta of Swadesh = CatIta - ** open PhonoIta, MorphoIta, LangIta, ParadigmsIta, BeschIta, Prelude in { +concrete SwadeshIta of Swadesh = CatIta ** SwadeshI with + (Lang = LangIta) ; - lincat - MassN = N ; - - lin - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = { - s = \\g,c => prepCase c ++ genForms ["tutti i"] ["tutte le"] ! g ; - n = Pl - } ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = {s = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl} ; - other_Det = { - s = \\g,c => prepCase c ++ genForms "altri" "altre" ! g ; - n = Pl - } ; - - left_Ord = mkOrd (regA "sinistro") ; - right_Ord = mkOrd (regA "destro") ; - - oper - mkOrd : A -> Ord ; - mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; - - lin - - -- Adverbs - - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - how_IAdv = how_IAdv; - far_Adv = mkAdv "lontano" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = dative ; - in_Prep = in_Prep ; - with_Prep = with_Prep ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "corretto" ; - dirty_A = dirty_A ; - dry_A = regA "secco" ; - dull_A = regA "noioso" ; - full_A = regA "pieno" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = regA "pesante" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = regA "vicino" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = regA "marcio" ; - round_A = regA "rotondo" ; - sharp_A = regA "aguzzo" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "liscio" ; - straight_A = regA "diretto" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "bagnato" ; - white_A = white_A ; - wide_A = regA "largo" ; - yellow_A = yellow_A ; - - -- Nouns - - animal_N = regN "animale" ; - ashes_N = regN "cenere" ; - back_N = regN "schiena" ; - bark_N = regN "corteccia" ; - belly_N = regN "pancia" ; - bird_N = bird_N; - blood_N = regN "sangue" ; - bone_N = regN "osso" ; - breast_N = regN "seno" ; - child_N = child_N ; - cloud_N = regN "nuvola" ; - day_N = regN "giorno" ; - dog_N = dog_N ; - dust_N = regN "polvere" ; - ear_N = regN "orecchio" ; - earth_N = regN "terra" ; - egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl - eye_N = regN "occhio" ; - fat_N = regN "grasso" ; - father_N = UseN2 father_N2 ; - feather_N = regN "piuma" ; - fingernail_N = regN "unghia" ; - fire_N = regN "fuoco" ; - fish_N = fish_N ; - flower_N = regN "fiore" ; - fog_N = regN "nebbia" ; - foot_N = regN "piede" ; - forest_N = regN "bosco" ; - fruit_N = fruit_N ; - grass_N = regN "erba" ; - guts_N = regN "intestino" ; - hair_N = regN "capello" ; - hand_N = femN (regN "mano") ; - head_N = regN "testa" ; - heart_N = regN "cuore" ; - horn_N = regN "corno" ; - husband_N = regN "marito" ; - ice_N = regN "ghiaccio" ; - knee_N = regN "ginocchio" ; - lake_N = lake_N ; - leaf_N = regN "foglia" ; - leg_N = regN "gamba" ; - liver_N = regN "fegato" ; - louse_N = regN "pidocchio" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = regN "bocca" ; - name_N = regN "nome" ; - neck_N = regN "collo" ; - night_N = femN (regN "notte") ; - nose_N = regN "naso" ; - person_N = regN "persona" ; - rain_N = regN "pioggia" ; - river_N = river_N ; - road_N = regN "strada" ; - root_N = femN (regN "radice") ; - rope_N = regN "corda" ; - salt_N = regN "sale" ; - sand_N = regN "sabbia" ; - sea_N = sea_N ; - seed_N = regN "seme" ; - skin_N = femN (regN "pelle") ; - sky_N = regN "cielo" ; - smoke_N = regN "fumo" ; - snake_N = snake_N ; - snow_N = femN (regN "neve") ; - star_N = star_N ; - stick_N = regN "bastone" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = regN "coda" ; - tongue_N = regN "lingua" ; - tooth_N = regN "dente" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = regN "donna" ; - wind_N = regN "vento" ; - wing_N = regN "ala" ; - woman_N = woman_N ; - worm_N = regN "verme" ; - year_N = regN "anno" ; - - -- Verbs - - bite_V = dirV2 (verboV (esplodere_51 "mordere")) ; - blow_V = regV "soffiare" ; - breathe_V = dirV2 (regV "respirare") ; - burn_V = regV "bruciare" ; - come_V = come_V ; - count_V = dirV2 (regV "contare") ; - cut_V = dirV2 (regV "tagliare") ; - die_V = die_V ; - dig_V = regV "scavare" ; - drink_V = dirV2 (drink_V2) ; - eat_V = dirV2 (regV "mangiare") ; - fall_V = essereV (verboV (cadere_28 "cadere")) ; - fear_V = dirV2 (fear_VS) ; - fight_V = dirV2 (regV "lottare") ; - float_V = regV "galleggiare" ; - flow_V = verboV (finire_100 "fluire") ; - fly_V = regV "volare" ; - freeze_V = regV "gelare" ; - give_V = dirdirV3 (verboV (dare_15 "dare")) ; - hear_V = dirV2 (hear_V2) ; - hit_V = dirV2 (regV "colpire") ; - hold_V = dirV2 (verboV (venire_110 "tenire")) ; - hunt_V = dirV2 (regV "cacciare") ; - kill_V = dirV2 (verboV (ridere_74 "uccidere")) ; - know_V = dirV2 (know_V2) ; - laugh_V = verboV (ridere_74 "ridere") ; - lie_V = verboV (piacere_64 "giacere") ; - live_V = live_V ; - play_V = regV "giocare" ; - pull_V = dirV2 (regV "tirare") ; - push_V = dirV2 (verboV (cingere_31 "spingere")) ; - rub_V = dirV2 (regV "strofinare") ; - say_V = say_VS ; - scratch_V = dirV2 (regV "graffiare") ; - see_V = dirV2 (see_V2) ; - sew_V = verboV (cucire_103 "cucire") ; - sing_V = regV "cantare" ; - sit_V = reflV (verboV (sedere_84 "sedere")) ; - sleep_V = sleep_V ; - smell_V = verboV (sentire_99 "sentire") ; - spit_V = regV "sputare" ; - split_V = dirV2 (verboV (ridere_74 "dividere")) ; - squeeze_V = dirV2 (verboV (temere_20 "spremere")) ; - stab_V = dirV2 (regV "pugnalare") ; - stand_V = verboV (stare_16 "stare") ; ---- in piedi - suck_V = dirV2 (regV "succhiare") ; - swell_V = regV "gonfiare" ; - swim_V = regV "nuotare" ; - think_V = regV "pensare" ; - throw_V = dirV2 (regV "gettare") ; - tie_V = dirV2 (regV "legare") ; - turn_V = regV "tornare" ; - vomit_V = regV "vomitare" ; - walk_V = regV "camminare" ; - wash_V = dirV2 (regV "lavare") ; - wipe_V = dirV2 (regV "asciugare") ; - -} diff --git a/examples/bronzeage/SwadeshNor.gf b/examples/bronzeage/SwadeshNor.gf index 6b160146c..5d392462d 100644 --- a/examples/bronzeage/SwadeshNor.gf +++ b/examples/bronzeage/SwadeshNor.gf @@ -1,252 +1,5 @@ ---# -path=.:../norwegian:../common:../abstract:../scandinavian:../../prelude +--# -path=.:present:prelude -concrete SwadeshNor of Swadesh = CatNor - ** open MorphoNor, LangNor, ParadigmsNor, IrregNor, Prelude in { +concrete SwadeshNor of Swadesh = CatNor ** SwadeshI with + (Lang = LangNor) ; - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = {s = \\_,_ => "alle" ; n = Pl ; det = DDef Indef} ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; - other_Det = {s = \\_,_ => "andre" ; n = Pl ; det = DDef Indef} ; - - left_Ord = {s = "venstre" ; isDet = True} ; - right_Ord = {s = "høyre" ; isDet = True} ; - - -- Adverbs - - here_Adv = here_Adv ; - there_Adv = there_Adv ; - where_IAdv = where_IAdv ; - when_IAdv = when_IAdv ; - how_IAdv = how_IAdv ; - - far_Adv = mkAdv "fjern" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = ss "ved" ; - in_Prep = ss "i" ; - with_Prep = ss "med" ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "riktig" ; - dirty_A = dirty_A ; - dry_A = mk2A "tørr" "tørt" ; - dull_A = regA "sløv" ; - full_A = regA "full" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = irregADeg "tung" "tyngre" "tyngst" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = mkADeg "nære" "nære" "nære" "nærmere" "nærmest" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = mk3ADeg "råtten" "råttent" "råtne" ; - round_A = regA "rund" ; - sharp_A = mk2A "kvass" "kvast" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = mk2A "slett" "slett" ; - straight_A = regA "rak" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "våt" ; - white_A = white_A ; - wide_A = regA "bred" ; - yellow_A = yellow_A ; - - - -- Nouns - - animal_N = mk2N "dyr" "dyret" ; - ashes_N = mk2N "aske" "aska" ; - back_N = mk2N "rygg" "ryggen" ; - bark_N = mk2N "bark" "barken" ; - belly_N = mk2N "mage" "magen" ; - bird_N = bird_N ; - blood_N = mk2N "blod" "blodet" ; - bone_N = mk2N "bein" "beinet" ; - breast_N = mk2N "bryst" "brystet" ; - child_N = child_N ; - cloud_N = mk2N "sky" "skya" ; - day_N = mk2N "dag" "dagen" ; - dog_N = dog_N ; - dust_N = mk2N "støv" "støvet" ; - ear_N = mk2N "øre" "øret" ; - earth_N = mk2N "jord" "jorda" ; - egg_N = mk2N "egg" "egget" ; - eye_N = mkN "øye" "øyet" "øyne" "øynene" ; - fat_N = mk2N "fett" "fettet" ; - father_N = mkN "far" "faren" "fedre" "fedrene" ; --- father_N = UseN2 father_N2 ; - feather_N = mk2N "fjør" "fjøra" ; - fingernail_N = mk2N "negl" "neglen" ; - fire_N = mk2N "ild" "ilden" ; - fish_N = fish_N ; - flower_N = mk2N "blomst" "blomsten" ; - fog_N = mk2N "tåke" "tåka" ; - foot_N = mk2N "fot" "føtter" ; - forest_N = mk2N "skog" "skogen" ; - fruit_N = fruit_N ; - grass_N = mk2N "gras" "graset" ; - guts_N = mk2N "tarm" "tarmen" ; ---- involler - hair_N = mk2N "hår" "håret" ; - hand_N = mk2N "hånd" "hånden" ; - - head_N = mk2N "hode" "hodet" ; - heart_N = mk2N "hjerte" "hjertet" ; - horn_N = mk2N "horn" "hornet" ; - husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ; - ice_N = mk2N "is" "isen" ; - knee_N = mkN "kne" "kneet" "knær" "knæne" ; - lake_N = lake_N ; - leaf_N = mk2N "løv" "løvet" ; - leg_N = mk2N "bein" "beinet" ; - liver_N = mkN "lever" "leveren" "levrer" "levrene" ; - louse_N = mk2N "lus" "lusa" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = mkN "mor" "moren" "mødre" "mødrene" ; --- mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = mk2N "munn" "munnen" ; - name_N = mk2N "navn" "navnet" ; - neck_N = mk2N "nakke" "nakken" ; - night_N = mkN "natt" "natta" "netter" "nettene" ; - nose_N = mk2N "nese" "nesen" ; - person_N = mk2N "person" "personen" ; - rain_N = mk2N "regn" "regnet" ; - river_N = river_N ; - road_N = mk2N "vei" "veien" ; - root_N = mkN "rot" "rota" "røtter" "røttene" ; - rope_N = mk2N "tau" "tauet" ; - salt_N = mk2N "salt" "saltet" ; - sand_N = mk2N "sand" "sanden" ; - sea_N = sea_N ; - seed_N = mk2N "frø" "frøet" ; - skin_N = mk2N "skinn" "skinnet" ; - sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; - smoke_N = mk2N "røyk" "røyken" ; - snake_N = snake_N ; - snow_N = mk2N "snø" "snøen" ; - star_N = star_N ; - stick_N = mk2N "pinne" "pinnen" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = mk2N "hale" "halen" ; - tongue_N = mk2N "tunge" "tunga" ; - tooth_N = mkN "tann" "tanna" "tenner" "tennene" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = mk2N "kone" "kona" ; - wind_N = mk2N "vind" "vinden" ; - wing_N = mk2N "vinge" "vingen" ; - woman_N = woman_N ; - worm_N = mk2N "mark" "marken" ; - year_N = mk2N "år" "året" ; - - -- Verbs - - bite_V = dirV2 (IrregNor.bite_V) ; - blow_V = mk2V "blåse" "blåste" ; - breathe_V = dirV2 (regV "puste") ; - burn_V = brenne_V ; - come_V = komme_V ; - count_V = dirV2 (regV "regne") ; - cut_V = dirV2 (skjære_V) ; - die_V = dø_V ; - dig_V = mk2V "grave" "gravde" ; - drink_V = dirV2 (drikke_V) ; - eat_V = dirV2 (mk2V "spise" "spiste") ; - fall_V = falle_V ; - fear_V = dirV2 (regV "frykte") ; - fight_V = dirV2 (slåss_V) ; - float_V = flyte_V ; - flow_V = renne_V ; - fly_V = fly_V ; - freeze_V = fryse_V ; - give_V = dirdirV3 gi_V ; - hear_V = dirV2 (mk2V "høre" "hørde") ; - hit_V = dirV2 (slå_V) ; - hold_V = dirV2 (holde_V) ; - hunt_V = dirV2 (regV "jakte") ; - kill_V = dirV2 (mk2V "drepe" "drepte") ; - know_V = dirV2 (vite_V) ; - laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ; - lie_V = ligge_V ; - live_V = mk2V "leve" "levde" ; - play_V = mk2V "leke" "lekte" ; - pull_V = dirV2 (dra_V) ; - push_V = dirV2 (irregV "skyve" "skjøv" "skjøvet") ; - rub_V = dirV2 (gni_V) ; - say_V = si_V ; - scratch_V = dirV2 (regV "klø") ; - see_V = dirV2 (se_V) ; - sew_V = mk2V "sy" "sydde" ; - sing_V = synge_V ; - sit_V = sitte_V ; - sleep_V = sove_V ; - smell_V = regV "lukte" ; - spit_V = regV "spytte" ; - split_V = dirV2 (mk2V "kløyve" "kløyvde") ; - squeeze_V = dirV2 (mk2V "klemme" "klemte") ; - stab_V = dirV2 (stikke_V) ; - stand_V = stå_V ; - suck_V = dirV2 (suge_V) ; - swell_V = partV (regV "hovne") "opp" ; - swim_V = regV "simme" ; - think_V = mk2V "tenke" "tenkte" ; - throw_V = dirV2 (regV "kaste") ; - tie_V = dirV2 (regV "knytte") ; - turn_V = mk2V "vende" "vendte" ; - vomit_V = partV (regV "kaste") "opp" ; - walk_V = gå_V ; - wash_V = dirV2 (regV "vaske") ; - wipe_V = dirV2 (regV "tørke") ; - -} diff --git a/examples/bronzeage/SwadeshSpa.gf b/examples/bronzeage/SwadeshSpa.gf index 9ada657f7..48de83341 100644 --- a/examples/bronzeage/SwadeshSpa.gf +++ b/examples/bronzeage/SwadeshSpa.gf @@ -1,262 +1,5 @@ ---# -path=.:../spanish:../common:../abstract:../../prelude:../romance +--# -path=.:present:prelude -concrete SwadeshSpa of Swadesh = CatSpa - ** open PhonoSpa, MorphoSpa, LangSpa, ParadigmsSpa, BeschSpa, Prelude in { +concrete SwadeshSpa of Swadesh = CatSpa ** SwadeshI with + (Lang = LangSpa) ; --- words contributed by Ana Bove, May 2005 - - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = { - s = \\g,c => prepCase c ++ genForms ["todos los"] ["todas las"] ! g ; - n = Pl - } ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = {s = \\g,c => prepCase c ++ genForms "pocos" "pocas" ! g ; n = Pl} ; - other_Det = { - s = \\g,c => prepCase c ++ genForms "otros" "otras" ! g ; - n = Pl - } ; - - left_Ord = mkOrd (regA "izquierda") ; - right_Ord = mkOrd (regA "derecha") ; - - oper - mkOrd : A -> Ord ; - mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; - - lin - - -- Adverbs - - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - how_IAdv = how_IAdv; - far_Adv = mkAdv "lejos" ; ----? - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = dative ; - in_Prep = in_Prep ; - with_Prep = with_Prep ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "correcto" ; - dirty_A = dirty_A ; - dry_A = regA "seco" ; - dull_A = regA "desafilado" ; - full_A = regA "lleno" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = regA "pesado" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = regA "cerca" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = regA "podrido" ; - round_A = regA "redondo" ; - sharp_A = regA "filoso" ; -- afilado, puntiagudo - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "liso" ; -- suave - straight_A = regA "directo" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "mojado" ; - white_A = white_A ; - wide_A = regA "ancho" ; -- extenso - yellow_A = yellow_A ; - - -- Nouns - - animal_N = regN "animal" ; -- masc (sometimes fem when adj) - ashes_N = regN "ceniza" ; - back_N = regN "espalda" ; - bark_N = regN "corteza" ; - belly_N = regN "panza" ; -- barriga - bird_N = bird_N; - blood_N = femN (regN "sangre") ; - bone_N = regN "hueso" ; - breast_N = regN "seno" ; -- pecho - child_N = child_N ; - cloud_N = femN (regN "nube") ; - day_N = mascN (regN "día") ; - dog_N = dog_N ; - dust_N = regN "polvo" ; - ear_N = regN "oreja" ; - earth_N = regN "tierra" ; - egg_N = regN "huevo" ; - eye_N = regN "ojo" ; - fat_N = regN "grasa" ; - father_N = UseN2 father_N2 ; - feather_N = regN "pluma" ; - fingernail_N = regN "uña" ; - fire_N = regN "fuego" ; - fish_N = fish_N ; - flower_N = femN (regN "flor") ; - fog_N = regN "niebla" ; - foot_N = regN "pie" ; - forest_N = regN "bosque" ; - fruit_N = fruit_N ; - grass_N = regN "pasto" ; -- hierba, césped (masc) - guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas - hair_N = regN "cabello" ; -- pelo - hand_N = femN (regN "mano") ; - head_N = regN "cabeza" ; - heart_N = mkN "corazón" "corazones" masculine ; - horn_N = regN "cuerno" ; - husband_N = regN "marido" ; -- esposo - ice_N = regN "hielo" ; - knee_N = regN "rodilla" ; - lake_N = lake_N ; - leaf_N = regN "hoja" ; - leg_N = regN "pierna" ; - liver_N = regN "hígado" ; - louse_N = regN "piojo" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = regN "boca" ; - name_N = regN "nombre" ; - neck_N = regN "cuello" ; - night_N = femN (regN "noche") ; - nose_N = femN (regN "nariz") ; - person_N = regN "persona" ; - rain_N = regN "lluvia" ; - river_N = river_N ; - road_N = femN (regN "calle") ; -- camino - root_N = femN (regN "raíz") ; - rope_N = regN "cuerda" ; - salt_N = femN (regN "sal") ; - sand_N = regN "arena" ; - sea_N = sea_N ; - seed_N = regN "semilla" ; - skin_N = femN (regN "piel") ; -- fem - sky_N = regN "cielo" ; - smoke_N = regN "humo" ; - snake_N = snake_N ; - snow_N = femN (regN "nieve") ; -- fem - star_N = star_N ; - stick_N = mkN "bastón" "bastones" masculine ; -- palo - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = regN "cola" ; - tongue_N = regN "lengua" ; - tooth_N = regN "diente" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = regN "esposa" ; - wind_N = regN "viento" ; - wing_N = regN "ala" ; - woman_N = woman_N ; - worm_N = regN "gusano" ; -- lombriz (fem) - year_N = regN "año" ; - - -- Verbs - - bite_V = dirV2 (verboV (morder_50b "morder")) ; - blow_V = regV "soplar" ; - breathe_V = dirV2 (regV "respirar") ; - burn_V = regV "quemar" ; - come_V = come_V ; - count_V = dirV2 (verboV (contar_38b "contar")) ; - cut_V = dirV2 (regV "cortar") ; - die_V = die_V ; - dig_V = regV "escarbar" ; - drink_V = dirV2 (regV "tomar") ; - eat_V = dirV2 (regV "comer") ; - fall_V = verboV (caer_20 "caer") ; - fear_V = dirV2 (fear_VS) ; - fight_V = dirV2 (regV "pelear") ; - float_V = regV "flotar" ; - flow_V = verboV (influir_45 "fluir") ; -- circular - fly_V = regV "volar" ; - freeze_V = regV "congelar" ; - give_V = dirdirV3 (verboV (dar_27 "dar")) ; - hear_V = dirV2 (hear_V2) ; - hit_V = dirV2 (regV "golpear") ; - hold_V = dirV2 (verboV (tener_4 "tener")) ; - hunt_V = dirV2 (regV "cazar") ; - kill_V = dirV2 (regV "matar") ; - know_V = dirV2 (know_V2) ; - laugh_V = regV "reir" ; ----V reír_67 - lie_V = reflV (regV "acostar") ; -- "acostarse" - live_V = live_V ; - play_V = regV "jugar" ; - pull_V = dirV2 (regV "tirar") ; - push_V = dirV2 (regV "empujar") ; - rub_V = dirV2 (regV "resfregar") ; - say_V = say_VS ; - scratch_V = dirV2 (regV "rascar") ; - see_V = dirV2 (see_V2) ; - sew_V = regV "coser" ; - sing_V = regV "cantar" ; - sit_V = reflV (regV "sentar") ; - sleep_V = sleep_V ; - smell_V = verboV (oler_52 "oler") ; - spit_V = regV "escupir" ; - split_V = dirV2 (regV "separar") ; -- dividir,) ; - squeeze_V = dirV2 (regV "exprimir") ; - stab_V = dirV2 (regV "apuñalar") ; - stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ; - suck_V = dirV2 (regV "chupar") ; - swell_V = regV "tragar" ; - swim_V = regV "nadar" ; - think_V = regV "pensar" ; - throw_V = dirV2 (regV "tirar") ; - tie_V = dirV2 (regV "atar") ; - turn_V = regV "doblar" ; - vomit_V = regV "vomitar" ; - walk_V = regV "caminar" ; - wash_V = dirV2 (regV "lavar") ; - wipe_V = dirV2 (regV "secar") ; - -} diff --git a/examples/bronzeage/SwadeshSwe.gf b/examples/bronzeage/SwadeshSwe.gf index 0bcaa9879..2a82b2bc4 100644 --- a/examples/bronzeage/SwadeshSwe.gf +++ b/examples/bronzeage/SwadeshSwe.gf @@ -1,252 +1,5 @@ --# -path=.:present:prelude -concrete SwadeshSwe of Swadesh = CatSwe - ** open MorphoSwe, LangSwe, ParadigmsSwe, IrregSwe, Prelude in { +concrete SwadeshSwe of Swadesh = CatSwe ** SwadeshI with + (Lang = LangSwe) ; - lincat - MassN = N ; - - lin - - -- Pronouns - - i_NP = i_Pron ; - youSg_NP = youSg_Pron ; - he_NP = he_Pron ; - we_NP = we_Pron ; - youPl_NP = youPl_Pron ; - they_NP = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - all_Det = {s = \\_,_ => "alla" ; n = Pl ; det = DDef Indef} ; - many_Det = many_Det ; - some_Det = someSg_Det ; - few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; - other_Det = {s = \\_,_ => "andra" ; n = Pl ; det = DDef Indef} ; - - left_Ord = {s = "vänstra" ; isDet = True} ; - right_Ord = {s = "högra" ; isDet = True} ; - - -- Adverbs - - here_Adv = here_Adv ; - there_Adv = there_Adv ; - where_IAdv = where_IAdv ; - when_IAdv = when_IAdv ; - how_IAdv = how_IAdv ; - far_Adv = mkAdv "långt" ; - - -- not : Adv ; -- ? - - -- Conjunctions - - and_Conj = and_Conj ; - - -- Prepositions - - at_Prep = ss "vid" ; - in_Prep = ss "i" ; - with_Prep = ss "med" ; - - -- Numerals - - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - - bad_A = bad_A ; - big_A = big_A ; - black_A = black_A ; - cold_A = cold_A ; - correct_A = regA "riktig" ; - dirty_A = dirty_A ; - dry_A = regA "torr" ; - dull_A = mk2A "slö" "slött"; - full_A = regA "full" ; - good_A = good_A ; - green_A = green_A ; - heavy_A = irregA "tung" "tyngre" "tyngst" ; - long_A = long_A ; - narrow_A = narrow_A ; - near_A = mkA "nära" "nära" "nära" "nära" - "närmare" "närmast" "närmaste" ; - new_A = new_A ; - old_A = old_A ; - red_A = red_A ; - rotten_A = mk3A "rutten" "ruttet" "ruttna" ; - round_A = regA "rund" ; - sharp_A = regA "vass" ; - short_A = short_A ; - small_A = small_A ; - smooth_A = regA "slät" ; - straight_A = regA "rak" ; - thick_A = thick_A ; - thin_A = thin_A ; - warm_A = warm_A ; - wet_A = regA "våt" ; - white_A = white_A ; - wide_A = mk2A "bred" "brett" ; - yellow_A = yellow_A ; - - - -- Nouns - - animal_N = mk2N "djur" "djur" ; - ashes_N = mk2N "aska" "askor" ; - back_N = mk2N "rygg" "ryggar" ; - bark_N = mk2N "bark" "barkar" ; - belly_N = mk2N "mage" "magar" ; - bird_N = bird_N ; - blood_N = mk2N "blod" "blod" ; - bone_N = mk2N "ben" "ben" ; - breast_N = mk2N "bröst" "bröst" ; - child_N = child_N ; - cloud_N = mk2N "moln" "moln" ; - day_N = mk2N "dag" "dagar" ; - dog_N = dog_N ; - dust_N = mk2N "damm" "damm" ; - ear_N = mkN "öra" "örat" "öron" "öronen" ; - earth_N = mk2N "jord" "jordar" ; - egg_N = mk2N "ägg" "ägg" ; - eye_N = mkN "öga" "ögat" "ögon" "ögonen" ; - fat_N = mk2N "fett" "fett" ; - father_N = (mkN "far" "fadern" "fäder" "fäderna") ; --- father_N = UseN2 father_N2 ; - feather_N = mk2N "fjäder" "fjädrar" ; - fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna"; - fire_N = mk2N "eld" "eldar" ; - fish_N = fish_N ; - flower_N = mk2N "blomma" "blommor" ; - fog_N = mk2N "dimma" "dimmor" ; - foot_N = mk2N "fot" "fötter" ; - forest_N = mk2N "skog" "skogar" ; - fruit_N = fruit_N ; - grass_N = mk2N "gräs" "gräs" ; - guts_N = mk2N "inälva" "inälvor" ; - hair_N = mk2N "hår" "hår" ; - hand_N = mk2N "hand" "händer" ; - head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ; - heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ; - horn_N = mk2N "horn" "horn" ; - husband_N = (mk2N "make" "makar") ; - ice_N = mk2N "is" "isar" ; - knee_N = mkN "knä" "knäet" "knän" "knäna" ; - lake_N = lake_N ; - leaf_N = mk2N "löv" "löv" ; - leg_N = mk2N "ben" "ben" ; - liver_N = mkN "lever" "levern" "levrar" "levrarna"; - louse_N = mkN "lus" "lusen" "löss" "lössen" ; - man_N = man_N ; - meat_N = meat_N ; - moon_N = moon_N ; - mother_N = mkN "mor" "modern" "mödrar" "mödrarna" ; --- mother_N = UseN2 mother_N2 ; - mountain_N = mountain_N ; - mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ; - name_N = mk2N "namn" "namn" ; - neck_N = mk2N "nacke" "nackar" ; - night_N = mk2N "natt" "nätter" ; - nose_N = mk2N "näsa" "näsor" ; - person_N = mk2N "person" "personer" ; - rain_N = mk2N "regn" "regn" ; - river_N = river_N ; - road_N = mk2N "väg" "vägar" ; - root_N = mk2N "rot" "rötter" ; - rope_N = mk2N "rep" "rep" ; - salt_N = mkN "salt" "saltet" "salter" "salterna"; - sand_N = mk2N "sand" "sander" ; - sea_N = sea_N ; - seed_N = mkN "frö" "fröet" "frön" "fröna" ; - skin_N = mk2N "skinn" "skinn" ; - sky_N = mk2N "himmel" "himlar" ; - smoke_N = mk2N "rök" "rökar" ; - snake_N = snake_N ; - snow_N = mkN "snö" "snön" "snöer" "snöerna" ; - star_N = star_N ; - stick_N = mk2N "pinne" "pinnar" ; - stone_N = stone_N ; - sun_N = sun_N ; - tail_N = mk2N "svans" "svansar" ; - tongue_N = mk2N "tunga" "tungor" ; - tooth_N = mk2N "tand" "tänder" ; - tree_N = tree_N ; - water_N = water_N ; - wife_N = mk2N "fru" "fruar" ; - wind_N = mk2N "vind" "vindar" ; - wing_N = mk2N "vinge" "vingar" ; - woman_N = woman_N ; - worm_N = mk2N "mask" "maskar" ; - year_N = mk2N "år" "år" ; - - -- Verbs - - bite_V = dirV2 (bita_V) ; - blow_V = mk2V "blåsa" "blåste" ; - breathe_V = dirV2 (depV (regV "anda")) ; - burn_V = brinna_V ; -- FIXME: bränna? - come_V = komma_V ; - count_V = dirV2 (regV "räkna") ; - cut_V = dirV2 (skära_V) ; - die_V = dö_V ; - dig_V = mk2V "gräva" "grävde" ; - drink_V = dirV2 (dricka_V) ; - eat_V = dirV2 (äta_V) ; - fall_V = falla_V ; - fear_V = dirV2 (regV "frukta") ; - -- FIXME: passive forms are very strange - fight_V = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ; - float_V = flyta_V ; - flow_V = rinna_V ; - fly_V = flyga_V ; - freeze_V = frysa_V ; - give_V = dirV3 giva_V "till"; - hear_V = dirV2 (mk2V "höra" "hörde") ; - hit_V = dirV2 (slå_V) ; - hold_V = dirV2 (hålla_V) ; - hunt_V = dirV2 (regV "jaga") ; - kill_V = dirV2 (regV "döda") ; - know_V = dirV2 (känna_V) ; - laugh_V = regV "skratta" ; - lie_V = ligga_V ; - live_V = leva_V ; - play_V = mk2V "leka" "lekte" ; - pull_V = dirV2 (draga_V) ; - push_V = dirV2 (mk2V "trycka" "tryckte") ; - rub_V = dirV2 (gnida_V) ; - say_V = säga_V ; - scratch_V = dirV2 (regV "klia") ; - see_V = dirV2 (se_V) ; - sew_V = sy_V ; - sing_V = sjunga_V ; - sit_V = sitta_V ; - sleep_V = sova_V ; - smell_V = regV "lukta" ; - spit_V = regV "spotta" ; - split_V = dirV2 (klyva_V) ; - squeeze_V = dirV2 (klämma_V) ; - stab_V = dirV2 (sticka_V) ; - stand_V = stå_V ; - suck_V = dirV2 (suga_V) ; - swell_V = svälla_V ; - swim_V = regV "simma" ; - think_V = mk2V "tänka" "tänkte" ; - throw_V = dirV2 (regV "kasta") ; - tie_V = dirV2 (knyta_V) ; - turn_V = vända_V ; - vomit_V = mk2V "spy" "spydde" ; - walk_V = gå_V ; - wash_V = dirV2 (regV "tvätta") ; - wipe_V = dirV2 (regV "torka") ; - -} diff --git a/examples/bronzeage/old/SwadeshEng.gf b/examples/bronzeage/old/SwadeshEng.gf new file mode 100644 index 000000000..b79111b11 --- /dev/null +++ b/examples/bronzeage/old/SwadeshEng.gf @@ -0,0 +1,243 @@ +concrete SwadeshEng of Swadesh = CatEng + ** open MorphoEng, LangEng, ParadigmsEng, IrregEng, Prelude in { + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Predet = all_Predet ; + many_Det = many_Det ; + some_Det = someSg_Det ; + +-- left_Ord = left_Ord ; +-- right_Ord = right_Ord ; + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; +-- far_Adv = far_Adv ; + + -- "not" treated in Verb + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + +--- at_Prep = ss "at" ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = (regA "correct") ; + dirty_A = dirty_A ; + dry_A = regA "dry" ; + dull_A = regA "dull" ; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "heavy" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "near" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = (regA "rotten") ; + round_A = regA "round" ; + sharp_A = regA "sharp" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "smooth" ; + straight_A = regA "straight" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "wet" ; ---- + white_A = white_A ; + wide_A = regA "wide" ; + yellow_A = yellow_A ; + + -- Nouns + + animal_N = regN "animal" ; + ashes_N = regN "ash" ; -- FIXME: plural only? + back_N = regN "back" ; + bark_N = regN "bark" ; + belly_N = regN "belly" ; + bird_N = bird_N; + blood_N = regN "blood" ; + bone_N = regN "bone" ; + breast_N = regN "breast" ; + child_N = child_N ; + cloud_N = regN "cloud" ; + day_N = regN "day" ; + dog_N = dog_N ; + dust_N = regN "dust" ; + ear_N = regN "ear" ; + earth_N = regN "earth" ; + egg_N = regN "egg" ; + eye_N = regN "eye" ; + fat_N = regN "fat" ; + father_N = UseN2 father_N2 ; + feather_N = regN "feather" ; + fingernail_N = regN "fingernail" ; + fire_N = regN "fire" ; + fish_N = fish_N ; + flower_N = regN "flower" ; + fog_N = regN "fog" ; + foot_N = mk2N "foot" "feet" ; + forest_N = regN "forest" ; + fruit_N = fruit_N ; + 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" ; + husband_N = genderN masculine (regN "husband") ; + ice_N = regN "ice" ; + knee_N = regN "knee" ; + lake_N = lake_N ; + leaf_N = mk2N "leaf" "leaves" ; + leg_N = regN "leg" ; + liver_N = regN "liver" ; + louse_N = mk2N "louse" "lice" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "mouth" ; + name_N = regN "name" ; + neck_N = regN "neck" ; + night_N = regN "night" ; + nose_N = regN "nose" ; + person_N = genderN human (regN "person") ; + rain_N = regN "rain" ; + river_N = river_N ; + road_N = regN "road" ; + root_N = regN "root" ; + rope_N = regN "rope" ; + salt_N = regN "salt" ; + sand_N = regN "sand" ; + sea_N = sea_N ; + seed_N = regN "seed" ; + skin_N = regN "skin" ; + sky_N = regN "sky" ; + smoke_N = regN "smoke" ; + snake_N = snake_N ; + snow_N = regN "snow" ; + star_N = star_N ; + stick_N = regN "stick" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "tail" ; + tongue_N = regN "tongue" ; + tooth_N = mk2N "tooth" "teeth" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = genderN feminine (mk2N "wife" "wives") ; + wind_N = regN "wind" ; + wing_N = regN "wing" ; + woman_N = woman_N ; + worm_N = regN "worm" ; + year_N = regN "year" ; + + -- Verbs + + bite_V2 = dirV2 bite_V ; + blow_V = blow_V ; + breathe_V = dirV2 (regV "breathe") ; + burn_V = burn_V ; + come_V = come_V ; + count_V2 = dirV2 (regV "count") ; + cut_V2 = dirV2 cut_V ; + die_V = die_V ; + dig_V = dig_V ; + drink_V2 = dirV2 drink_V ; + eat_V2 = dirV2 eat_V ; + fall_V = fall_V ; + fear_V2 = dirV2 (regV "fear") ; + fight_V2 = dirV2 fight_V ; + float_V = regV "float" ; + flow_V = regV "flow" ; + fly_V = fly_V ; + freeze_V = freeze_V ; + give_V3 = dirV3 give_V "to" ; + hear_V2 = dirV2 hear_V ; + hit_V2 = dirV2 hit_V ; + hold_V2 = dirV2 hold_V ; + hunt_V2 = dirV2 (regV "hunt") ; + kill_V2 = dirV2 (regV "kill") ; + know_V2 = dirV2 know_V ; + laugh_V = regV "laugh" ; + lie_V = lie_V ; + live_V = live_V ; + play_V = regV "play" ; + pull_V2 = dirV2 (regV "pull") ; + push_V2 = dirV2 (regV "push") ; + rub_V2 = dirV2 (regDuplV "rub") ; + say_V = say_V ; + scratch_V2 = dirV2 (regV "scratch") ; + see_V2 = dirV2 see_V ; + sew_V = sew_V ; + sing_V = sing_V ; + sit_V = sit_V ; + sleep_V = sleep_V ; + smell_V = regV "smell" ; + spit_V = spit_V ; + split_V2 = dirV2 split_V ; + squeeze_V2 = dirV2 (regV "squeeze") ; + stab_V2 = dirV2 (regDuplV "stab") ; + stand_V = stand_V ; + suck_V2 = dirV2 (regV "suck") ; + swell_V = swell_V ; + swim_V = swim_V ; + think_V = think_V ; + throw_V2 = dirV2 throw_V ; + tie_V2 = dirV2 (regV "tie") ; + turn_V = regV "turn" ; + vomit_V = regV "vomit" ; + walk_V = walk_V ; + wash_V2 = dirV2 (regV "wash") ; + wipe_V2 = dirV2 (regV "wipe") ; + +} diff --git a/examples/bronzeage/old/SwadeshFin.gf b/examples/bronzeage/old/SwadeshFin.gf new file mode 100644 index 000000000..4f73c5a09 --- /dev/null +++ b/examples/bronzeage/old/SwadeshFin.gf @@ -0,0 +1,269 @@ +--# -path=.:../present:../finnish:../common:../abstract:../../prelude + +concrete SwadeshFin of Swadesh = CatFin + ** open MorphoFin, LangFin, ParadigmsFin, Prelude in { + + flags optimize=values ; + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = mkDet Pl {s = \\nf => + let + kaiket = (nhn (sKorpi "kaikki" "kaiken" "kaikkena")).s + in + case nf of { + NCase Pl Nom => "kaikki" ; + _ => kaiket ! nf + } + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = mkDet Sg (regN "harva") ; + other_Det = mkDet Sg (regN "muu") ; + + left_Ord = mkOrd (regN "vasen") ; + right_Ord = mkOrd (regN "oikea") ; + + oper + mkOrd : N -> Ord ; + mkOrd x = {s = \\n,c => x.s ! NCase n c; lock_Ord = <> } ; + + lin + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "kaukana" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = casePrep adessive ; + in_Prep = casePrep inessive ; + with_Prep = postGenPrep "kanssa" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "oikea" ; + dirty_A = dirty_A ; + dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ; + dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ; + full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "raskas" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "läheinen" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "mätä" ; + round_A = regA "pyöreä" ; + sharp_A = regA "terävä" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "sileä" ; + straight_A = mkADeg (regN "suora") "suorempi" "suorin" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = mkADeg (regN "märkä") "märempi" "märin" ; + white_A = white_A ; + wide_A = regA "leveä" ; + yellow_A = yellow_A ; + + -- Nouns + + animal_N = reg3N "eläin" "eläimen" "eläimiä" ; + ashes_N = regN "tuhka" ; + back_N = regN "selkä" ; + bark_N = regN "kaarna" ; + belly_N = regN "vatsa" ; + bird_N = bird_N; + blood_N = nMeri "veri" ; + bone_N = regN "luu" ; + breast_N = regN "rinta" ; + child_N = child_N ; + cloud_N = reg2N "pilvi" "pilviä" ; + day_N = regN "päivä" ; + dog_N = dog_N ; + dust_N = regN "pöly" ; + ear_N = regN "korva" ; + earth_N = regN "maa" ; + egg_N = regN "muna" ; + eye_N = regN "silmä" ; + fat_N = regN "rasva" ; + father_N = regN "isä" ; + feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; + fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ; + fire_N = reg2N "tuli" "tulia" ; + fish_N = fish_N ; + flower_N = regN "kukka" ; + fog_N = regN "sumu" ; + foot_N = regN "jalka" ; + forest_N = regN "metsä" ; + fruit_N = fruit_N ; + grass_N = regN "ruoho" ; + guts_N = regN "sisälmys" ; --- suoli + hair_N = regN "hius" ; + hand_N = reg3N "käsi" "käden" "käsiä" ; + head_N = regN "pää" ; + heart_N = reg3N "sydän" "sydämen" "sydämiä" ; + horn_N = reg2N "sarvi" "sarvia" ; + husband_N = man_N ; --- aviomies + ice_N = regN "jää" ; + knee_N = reg2N "polvi" "polvia" ; + lake_N = lake_N ; + leaf_N = reg2N "lehti" "lehtiä" ; + leg_N = regN "jalka" ; --- sääri + liver_N = regN "maksa" ; + louse_N = regN "lude" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = regN "äiti" ; + mountain_N = mountain_N ; + mouth_N = regN "suu" ; + name_N = reg2N "nimi" "nimiä" ; + neck_N = regN "niska" ; + night_N = regN "yö" ; + nose_N = regN "nenä" ; + person_N = regN "henkilö" ; + rain_N = regN "sade" ; + river_N = river_N ; + road_N = regN "tie" ; + root_N = reg2N "juuri" "juuria" ; + rope_N = reg3N "köysi" "köyden" "köysiä" ; + salt_N = regN "suola" ; + sand_N = regN "hiekka" ; + sea_N = sea_N ; + seed_N = regN "siemen" ; + skin_N = regN "nahka" ; + sky_N = reg3N "taivas" "taivaan" "taivaita" ; + smoke_N = regN "savu" ; + snake_N = snake_N ; + snow_N = sgpartN (nMeri "lumi") "lunta" ; + star_N = star_N ; + stick_N = regN "keppi" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "häntä" ; + tongue_N = reg2N "kieli" "kieliä" ; + tooth_N = regN "hammas" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "vaimo" ; + wind_N = reg2N "tuuli" "tuulia" ; + wing_N = reg2N "siipi" "siipiä" ; + woman_N = woman_N ; + worm_N = regN "mato" ; + year_N = reg3N "vuosi" "vuoden" "vuosia" ; + + -- Verbs + + bite_V2 = dirV2 (regV "purra") ; + blow_V = regV "puhaltaa" ; + breathe_V2 = dirV2 (regV "hengittää") ; + burn_V = regV "palaa" ; + come_V = come_V ; + count_V2 = dirV2 (regV "laskea") ; + cut_V2 = dirV2 (reg2V "leikata" "leikkasi") ; + die_V = regV "kuolla"; + dig_V = regV "kaivaa" ; + drink_V2 = dirV2 ( drink_V2) ; + eat_V2 = dirV2 ( eat_V2) ; + fall_V = reg3V "pudota" "putoan" "putosi" ; + fear_V2 = dirV2 (reg3V "pelätä" "pelkään" "pelkäsi") ; + fight_V2 = dirV2 (regV "taistella") ; + float_V = regV "kellua" ; + flow_V = reg3V "virrata" "virtaan" "virtasi" ; + fly_V = regV "lentää" ; + freeze_V = regV "jäätyä" ; + give_V = dirdirV3 (regV "antaa") ; + hear_V2 = dirV2 ( hear_V2) ; + hit_V2 = dirV2 (regV "lyödä") ; + hold_V2 = dirV2 (regV "pitää") ; + hunt_V2 = dirV2 (regV "metsästää") ; + kill_V2 = dirV2 (regV "tappaa") ; + know_V2 = dirV2 (reg2V "tuntea" "tunsin") ; + laugh_V = reg3V "nauraa" "nauran" "nauroi" ; + lie_V = reg3V "maata" "makaan" "makasi" ; + live_V = live_V ; + play_V = play_V2 ; + pull_V2 = dirV2 (regV "vetää") ; + push_V2 = dirV2 (regV "työntää") ; + rub_V2 = dirV2 (regV "hieroa") ; + say_V = regV "sanoa" ; + scratch_V2 = dirV2 (regV "raapia") ; + see_V = ( see_V2) ; + sew_V = regV "kylvää" ; + sing_V = regV "laulaa" ; + sit_V = regV "istua" ; + sleep_V = sleep_V ; + smell_V = reg2V "haistaa" "haistoi" ; + spit_V = regV "sylkeä" ; + split_V2 = dirV2 (reg2V "halkaista" "halkaisi") ; + squeeze_V2 = dirV2 (regV "puristaa") ; + stab_V2 = dirV2 (regV "pistää") ; + stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään" + "seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät + suck_V2 = dirV2 (regV "imeä") ; + swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan" + "turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ; + swim_V = reg3V "uida" "uin" "ui" ; + think_V = reg3V "ajatella" "ajattelen" "ajatteli" ; + throw_V2 = dirV2 (regV "heittää") ; + tie_V2 = dirV2 (regV "sitoa") ; + turn_V = regV "kääntyä" ; + vomit_V = regV "oksentaa" ; + walk_V = walk_V ; + wash_V2 = dirV2 (regV "pestä") ; + wipe_V2 = dirV2 (regV "pyyhkiä") ; + +oper + regA = regADeg ; ---- + + +} diff --git a/examples/bronzeage/old/SwadeshFre.gf b/examples/bronzeage/old/SwadeshFre.gf new file mode 100644 index 000000000..a7c326ca4 --- /dev/null +++ b/examples/bronzeage/old/SwadeshFre.gf @@ -0,0 +1,259 @@ +--# -path=.:../french:../common:../abstract:../../prelude:../romance + +concrete SwadeshFre of Swadesh = CatFre + ** open PhonoFre, MorphoFre, LangFre, ParadigmsFre, IrregFre, Prelude in { + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms "tous" "toutes" ! g ++ "les" ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ "d'autres" ; -- de d'autres + n = Pl + } ; + + left_Ord = mkOrd (regA "gauche") ; + right_Ord = mkOrd (regA "droite") ; + + oper + mkOrd : A -> Ord ; + mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; + + lin + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "loin" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "correct" ; + dirty_A = dirty_A ; + dry_A = (mkA "sec" "sèche" "secs" "sèches") ; + dull_A = regA "émoussé" ; + full_A = regA "plein" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "lourd" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "proche" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "pourri" ; + round_A = regA "rond" ; + sharp_A = regA "tranchant" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "lisse" ; + straight_A = regA "droite" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "mouillé" ; + white_A = white_A ; + wide_A = regA "large" ; + yellow_A = yellow_A ; + + -- Nouns + + animal_N = regN "animal" ; + ashes_N = regGenN "cendre" masculine ; + back_N = regN "dos" ; + bark_N = regN "écorce" ; + belly_N = regGenN "ventre" masculine ; + bird_N = bird_N; + blood_N = regN "sang" ; + bone_N = regN "os" ; + breast_N = regN "sein" ; --- poitrine + child_N = child_N ; + cloud_N = regGenN "nuage" masculine ; + day_N = regN "jour" ; + dog_N = dog_N ; + dust_N = regN "poussière" ; + ear_N = regN "oreille" ; + earth_N = regN "terre" ; + egg_N = regN "oeuf" ; + eye_N = mkN "oeil" "yeux" masculine ; + fat_N = regN "graisse" ; + father_N = UseN2 father_N2 ; + feather_N = regN "plume" ; + fingernail_N = regGenN "ongle" masculine ; + fire_N = regN "feu" ; + fish_N = fish_N ; + flower_N = regGenN "fleur" feminine ; + fog_N = regN "brouillard" ; + foot_N = regN "pied" ; + forest_N = regGenN "forêt" feminine ; + fruit_N = fruit_N ; + grass_N = regN "herbe" ; + guts_N = regN "entraille" ; + hair_N = regN "cheveu" ; + hand_N = regGenN "main" feminine ; + head_N = regN "tête" ; + heart_N = regN "coeur" ; + horn_N = regGenN "corne" masculine ; + husband_N = regN "mari" ; + ice_N = regN "glace" ; + knee_N = regN "genou" ; + lake_N = lake_N ; + leaf_N = regN "feuille" ; + leg_N = regN "jambe" ; + liver_N = regGenN "foie" masculine ; + louse_N = regN "pou" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "bouche" ; + name_N = regN "nom" ; + neck_N = mkN "cou" "cous" masculine ; + night_N = regGenN "nuit" feminine ; + nose_N = regN "nez" ; + person_N = regN "personne" ; + rain_N = regN "pluie" ; + river_N = river_N ; + road_N = regN "route" ; + root_N = regN "racine" ; + rope_N = regN "corde" ; + salt_N = regN "sel" ; + sand_N = regGenN "sable" masculine ; + sea_N = sea_N ; + seed_N = regN "graine" ; + skin_N = regN "peau" ; + sky_N = mkN "ciel" "cieux" masculine ; + smoke_N = regN "fumée" ; + snake_N = snake_N ; + snow_N = regN "neige" ; + star_N = star_N ; + stick_N = regN "bâton" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "queue" ; + tongue_N = regN "langue" ; + tooth_N = regGenN "dent" feminine ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "femme" ; + wind_N = regN "vent" ; + wing_N = regN "aile" ; + woman_N = woman_N ; + worm_N = regN "ver" ; + year_N = regN "an" ; --- année + + -- Verbs + + bite_V = ( mordre_V2) ; + blow_V = regV "souffler" ; + breathe_V2 = dirV2 (regV "respirer") ; + burn_V = regV "brûler" ; + come_V = venir_V ; + count_V2 = dirV2 (regV "conter") ; + cut_V2 = dirV2 (regV "tailler") ; + die_V = mourir_V ; + dig_V = regV "creuser" ; + drink_V = ( boire_V2) ; + eat_V2 = dirV2 (regV "manger") ; + fall_V = regV "tomber" ; + fear_V = ( craindre_V2) ; + fight_V2 = dirV2 (regV "lutter") ; + float_V = regV "flotter" ; + flow_V = regV "couler" ; + fly_V = regV "voler" ; + freeze_V = reg3V "geler" "gèle" "gèlera" ; + give_V = dirdirV3 (regV "donner") ; + hear_V = ( entendre_V2) ; + hit_V2 = dirV2 (regV "frapper") ; + hold_V = ( tenir_V2) ; + hunt_V2 = dirV2 (regV "chasser") ; + kill_V2 = dirV2 (regV "tuer") ; + know_V = ( connaître_V2) ; + laugh_V = rire_V2 ; + lie_V = reflV étendre_V2 ; + live_V = vivre_V2 ; + play_V = regV "jouer" ; + pull_V2 = dirV2 (regV "tirer") ; + push_V2 = dirV2 (regV "pousser") ; + rub_V2 = dirV2 (regV "frotter") ; + say_V = dire_V2 ; + scratch_V2 = dirV2 (regV "gratter") ; + see_V = ( voir_V2) ; + sew_V = coudre_V2 ; + sing_V = regV "chanter" ; + sit_V = reflV asseoir_V2 ; + sleep_V = dormir_V2 ; + smell_V = v2V ( sentir_V2) ; + spit_V = regV "cracher" ; + split_V = ( fendre_V2) ; + squeeze_V2 = dirV2 (regV "serrer") ; + stab_V2 = dirV2 (regV "poignarder") ; + stand_V = reflV (reg3V "lever" "lève" "lèvera") ; + suck_V2 = dirV2 (regV "sucer") ; + swell_V = regV "gonfler" ; + swim_V = regV "nager" ; + think_V = regV "penser" ; + throw_V2 = dirV2 (regV "jeter") ; + tie_V2 = dirV2 (regV "lier") ; + turn_V = regV "tourner" ; + vomit_V = regV "vomir" ; + walk_V = regV "marcher" ; + wash_V2 = dirV2 (regV "laver") ; + wipe_V2 = dirV2 (regV "essuyer") ; + +} diff --git a/examples/bronzeage/SwadeshGer.gf b/examples/bronzeage/old/SwadeshGer.gf similarity index 87% rename from examples/bronzeage/SwadeshGer.gf rename to examples/bronzeage/old/SwadeshGer.gf index 3b29da219..85c057bb0 100644 --- a/examples/bronzeage/SwadeshGer.gf +++ b/examples/bronzeage/old/SwadeshGer.gf @@ -190,59 +190,59 @@ concrete SwadeshGer of Swadesh = CatGer -- bite_V = bite_V ; -- blow_V = blow_V ; --- breathe_V = dirV2 (regV "breathe") ; +-- breathe_V2 = dirV2 (regV "breathe") ; -- burn_V = burn_V ; come_V = come_V ; --- count_V = dirV2 (regV "count") ; --- cut_V = dirV2 cut_V ; +-- count_V2 = dirV2 (regV "count") ; +-- cut_V2 = dirV2 cut_V ; die_V = die_V ; -- dig_V = dig_V ; drink_V = drink_V2 ; eat_V = eat_V2 ; -- fall_V = fall_V ; --- fear_V = dirV2 (regV "fear") ; --- fight_V = dirV2 fight_V ; +-- fear_V2 = dirV2 (regV "fear") ; +-- fight_V2 = dirV2 fight_V ; -- float_V = regV "float" ; -- flow_V = regV "flow" ; -- fly_V = fly_V ; -- freeze_V = freeze_V ; -- give_V = dirdirV3 give_V ; hear_V = hear_V2 ; --- hit_V = dirV2 hit_V ; --- hold_V = dirV2 hold_V ; --- hunt_V = dirV2 (regV "hunt") ; --- kill_V = dirV2 (regV "kill") ; --- know_V = dirV2 know_V ; +-- hit_V2 = dirV2 hit_V ; +-- hold_V2 = dirV2 hold_V ; +-- hunt_V2 = dirV2 (regV "hunt") ; +-- kill_V2 = dirV2 (regV "kill") ; +-- know_V2 = dirV2 know_V ; -- laugh_V = regV "laugh" ; -- lie_V = lie_V ; live_V = live_V ; -- play_V = regV "play" ; --- pull_V = dirV2 (regV "pull") ; --- push_V = dirV2 (regV "push") ; --- rub_V = dirV2 (regDuplV "rub") ; +-- pull_V2 = dirV2 (regV "pull") ; +-- push_V2 = dirV2 (regV "push") ; +-- rub_V2 = dirV2 (regDuplV "rub") ; -- say_V = say_V ; --- scratch_V = dirV2 (regV "scratch") ; +-- scratch_V2 = dirV2 (regV "scratch") ; -- see_V = see_V2 ; -- sew_V = sew_V ; -- sing_V = sing_V ; -- sit_V = sit_V ; sleep_V = sleep_V ; --- smell_V = dirV2 (regV "smell") ; +-- smell_V2 = dirV2 (regV "smell") ; -- spit_V = spit_V ; --- split_V = dirV2 split_V ; --- squeeze_V = dirV2 (regV "squeeze") ; --- stab_V = dirV2 (regDuplV "stab") ; +-- split_V2 = dirV2 split_V ; +-- squeeze_V2 = dirV2 (regV "squeeze") ; +-- stab_V2 = dirV2 (regDuplV "stab") ; -- stand_V = stand_V ; --- suck_V = dirV2 (regV "suck") ; +-- suck_V2 = dirV2 (regV "suck") ; -- swell_V = swell_V ; -- swim_V = swim_V ; -- think_V = think_V ; --- throw_V = dirV2 throw_V ; --- tie_V = dirV2 (regV "tie") ; +-- throw_V2 = dirV2 throw_V ; +-- tie_V2 = dirV2 (regV "tie") ; -- turn_V = regV "turn" ; -- vomit_V = regV "vomit" ; walk_V = walk_V ; --- wash_V = dirV2 (regV "wash") ; --- wipe_V = dirV2 (regV "wipe") ; +-- wash_V2 = dirV2 (regV "wash") ; +-- wipe_V2 = dirV2 (regV "wipe") ; } diff --git a/examples/bronzeage/old/SwadeshIta.gf b/examples/bronzeage/old/SwadeshIta.gf new file mode 100644 index 000000000..7d55f2a99 --- /dev/null +++ b/examples/bronzeage/old/SwadeshIta.gf @@ -0,0 +1,258 @@ +--# -path=.:../italian:../common:../abstract:../../prelude:../romance + +concrete SwadeshIta of Swadesh = CatIta + ** open PhonoIta, MorphoIta, LangIta, ParadigmsIta, BeschIta, Prelude in { + + lincat + MassN = N ; + + lin + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms ["tutti i"] ["tutte le"] ! g ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ genForms "altri" "altre" ! g ; + n = Pl + } ; + + left_Ord = mkOrd (regA "sinistro") ; + right_Ord = mkOrd (regA "destro") ; + + oper + mkOrd : A -> Ord ; + mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; + + lin + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "lontano" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "corretto" ; + dirty_A = dirty_A ; + dry_A = regA "secco" ; + dull_A = regA "noioso" ; + full_A = regA "pieno" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "pesante" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "vicino" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "marcio" ; + round_A = regA "rotondo" ; + sharp_A = regA "aguzzo" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "liscio" ; + straight_A = regA "diretto" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "bagnato" ; + white_A = white_A ; + wide_A = regA "largo" ; + yellow_A = yellow_A ; + + -- Nouns + + animal_N = regN "animale" ; + ashes_N = regN "cenere" ; + back_N = regN "schiena" ; + bark_N = regN "corteccia" ; + belly_N = regN "pancia" ; + bird_N = bird_N; + blood_N = regN "sangue" ; + bone_N = regN "osso" ; + breast_N = regN "seno" ; + child_N = child_N ; + cloud_N = regN "nuvola" ; + day_N = regN "giorno" ; + dog_N = dog_N ; + dust_N = regN "polvere" ; + ear_N = regN "orecchio" ; + earth_N = regN "terra" ; + egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl + eye_N = regN "occhio" ; + fat_N = regN "grasso" ; + father_N = UseN2 father_N2 ; + feather_N = regN "piuma" ; + fingernail_N = regN "unghia" ; + fire_N = regN "fuoco" ; + fish_N = fish_N ; + flower_N = regN "fiore" ; + fog_N = regN "nebbia" ; + foot_N = regN "piede" ; + forest_N = regN "bosco" ; + fruit_N = fruit_N ; + grass_N = regN "erba" ; + guts_N = regN "intestino" ; + hair_N = regN "capello" ; + hand_N = femN (regN "mano") ; + head_N = regN "testa" ; + heart_N = regN "cuore" ; + horn_N = regN "corno" ; + husband_N = regN "marito" ; + ice_N = regN "ghiaccio" ; + knee_N = regN "ginocchio" ; + lake_N = lake_N ; + leaf_N = regN "foglia" ; + leg_N = regN "gamba" ; + liver_N = regN "fegato" ; + louse_N = regN "pidocchio" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "bocca" ; + name_N = regN "nome" ; + neck_N = regN "collo" ; + night_N = femN (regN "notte") ; + nose_N = regN "naso" ; + person_N = regN "persona" ; + rain_N = regN "pioggia" ; + river_N = river_N ; + road_N = regN "strada" ; + root_N = femN (regN "radice") ; + rope_N = regN "corda" ; + salt_N = regN "sale" ; + sand_N = regN "sabbia" ; + sea_N = sea_N ; + seed_N = regN "seme" ; + skin_N = femN (regN "pelle") ; + sky_N = regN "cielo" ; + smoke_N = regN "fumo" ; + snake_N = snake_N ; + snow_N = femN (regN "neve") ; + star_N = star_N ; + stick_N = regN "bastone" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "coda" ; + tongue_N = regN "lingua" ; + tooth_N = regN "dente" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "donna" ; + wind_N = regN "vento" ; + wing_N = regN "ala" ; + woman_N = woman_N ; + worm_N = regN "verme" ; + year_N = regN "anno" ; + + -- Verbs + + bite_V2 = dirV2 (verboV (esplodere_51 "mordere")) ; + blow_V = regV "soffiare" ; + breathe_V2 = dirV2 (regV "respirare") ; + burn_V = regV "bruciare" ; + come_V = come_V ; + count_V2 = dirV2 (regV "contare") ; + cut_V2 = dirV2 (regV "tagliare") ; + die_V = die_V ; + dig_V = regV "scavare" ; + drink_V2 = dirV2 (drink_V2) ; + eat_V2 = dirV2 (regV "mangiare") ; + fall_V = essereV (verboV (cadere_28 "cadere")) ; + fear_V2 = dirV2 (fear_VS) ; + fight_V2 = dirV2 (regV "lottare") ; + float_V = regV "galleggiare" ; + flow_V = verboV (finire_100 "fluire") ; + fly_V = regV "volare" ; + freeze_V = regV "gelare" ; + give_V = dirdirV3 (verboV (dare_15 "dare")) ; + hear_V2 = dirV2 (hear_V2) ; + hit_V2 = dirV2 (regV "colpire") ; + hold_V2 = dirV2 (verboV (venire_110 "tenire")) ; + hunt_V2 = dirV2 (regV "cacciare") ; + kill_V2 = dirV2 (verboV (ridere_74 "uccidere")) ; + know_V2 = dirV2 (know_V2) ; + laugh_V = verboV (ridere_74 "ridere") ; + lie_V = verboV (piacere_64 "giacere") ; + live_V = live_V ; + play_V = regV "giocare" ; + pull_V2 = dirV2 (regV "tirare") ; + push_V2 = dirV2 (verboV (cingere_31 "spingere")) ; + rub_V2 = dirV2 (regV "strofinare") ; + say_V = say_VS ; + scratch_V2 = dirV2 (regV "graffiare") ; + see_V2 = dirV2 (see_V2) ; + sew_V = verboV (cucire_103 "cucire") ; + sing_V = regV "cantare" ; + sit_V = reflV (verboV (sedere_84 "sedere")) ; + sleep_V = sleep_V ; + smell_V = verboV (sentire_99 "sentire") ; + spit_V = regV "sputare" ; + split_V2 = dirV2 (verboV (ridere_74 "dividere")) ; + squeeze_V2 = dirV2 (verboV (temere_20 "spremere")) ; + stab_V2 = dirV2 (regV "pugnalare") ; + stand_V = verboV (stare_16 "stare") ; ---- in piedi + suck_V2 = dirV2 (regV "succhiare") ; + swell_V = regV "gonfiare" ; + swim_V = regV "nuotare" ; + think_V = regV "pensare" ; + throw_V2 = dirV2 (regV "gettare") ; + tie_V2 = dirV2 (regV "legare") ; + turn_V = regV "tornare" ; + vomit_V = regV "vomitare" ; + walk_V = regV "camminare" ; + wash_V2 = dirV2 (regV "lavare") ; + wipe_V2 = dirV2 (regV "asciugare") ; + +} diff --git a/examples/bronzeage/old/SwadeshNor.gf b/examples/bronzeage/old/SwadeshNor.gf new file mode 100644 index 000000000..48d8a4db8 --- /dev/null +++ b/examples/bronzeage/old/SwadeshNor.gf @@ -0,0 +1,252 @@ +--# -path=.:../norwegian:../common:../abstract:../scandinavian:../../prelude + +concrete SwadeshNor of Swadesh = CatNor + ** open MorphoNor, LangNor, ParadigmsNor, IrregNor, Prelude in { + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = {s = \\_,_ => "alle" ; n = Pl ; det = DDef Indef} ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; + other_Det = {s = \\_,_ => "andre" ; n = Pl ; det = DDef Indef} ; + + left_Ord = {s = "venstre" ; isDet = True} ; + right_Ord = {s = "høyre" ; isDet = True} ; + + -- Adverbs + + here_Adv = here_Adv ; + there_Adv = there_Adv ; + where_IAdv = where_IAdv ; + when_IAdv = when_IAdv ; + how_IAdv = how_IAdv ; + + far_Adv = mkAdv "fjern" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = ss "ved" ; + in_Prep = ss "i" ; + with_Prep = ss "med" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "riktig" ; + dirty_A = dirty_A ; + dry_A = mk2A "tørr" "tørt" ; + dull_A = regA "sløv" ; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = irregADeg "tung" "tyngre" "tyngst" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = mkADeg "nære" "nære" "nære" "nærmere" "nærmest" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = mk3ADeg "råtten" "råttent" "råtne" ; + round_A = regA "rund" ; + sharp_A = mk2A "kvass" "kvast" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = mk2A "slett" "slett" ; + straight_A = regA "rak" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "våt" ; + white_A = white_A ; + wide_A = regA "bred" ; + yellow_A = yellow_A ; + + + -- Nouns + + animal_N = mk2N "dyr" "dyret" ; + ashes_N = mk2N "aske" "aska" ; + back_N = mk2N "rygg" "ryggen" ; + bark_N = mk2N "bark" "barken" ; + belly_N = mk2N "mage" "magen" ; + bird_N = bird_N ; + blood_N = mk2N "blod" "blodet" ; + bone_N = mk2N "bein" "beinet" ; + breast_N = mk2N "bryst" "brystet" ; + child_N = child_N ; + cloud_N = mk2N "sky" "skya" ; + day_N = mk2N "dag" "dagen" ; + dog_N = dog_N ; + dust_N = mk2N "støv" "støvet" ; + ear_N = mk2N "øre" "øret" ; + earth_N = mk2N "jord" "jorda" ; + egg_N = mk2N "egg" "egget" ; + eye_N = mkN "øye" "øyet" "øyne" "øynene" ; + fat_N = mk2N "fett" "fettet" ; + father_N = mkN "far" "faren" "fedre" "fedrene" ; +-- father_N = UseN2 father_N2 ; + feather_N = mk2N "fjør" "fjøra" ; + fingernail_N = mk2N "negl" "neglen" ; + fire_N = mk2N "ild" "ilden" ; + fish_N = fish_N ; + flower_N = mk2N "blomst" "blomsten" ; + fog_N = mk2N "tåke" "tåka" ; + foot_N = mk2N "fot" "føtter" ; + forest_N = mk2N "skog" "skogen" ; + fruit_N = fruit_N ; + grass_N = mk2N "gras" "graset" ; + guts_N = mk2N "tarm" "tarmen" ; ---- involler + hair_N = mk2N "hår" "håret" ; + hand_N = mk2N "hånd" "hånden" ; + + head_N = mk2N "hode" "hodet" ; + heart_N = mk2N "hjerte" "hjertet" ; + horn_N = mk2N "horn" "hornet" ; + husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ; + ice_N = mk2N "is" "isen" ; + knee_N = mkN "kne" "kneet" "knær" "knæne" ; + lake_N = lake_N ; + leaf_N = mk2N "løv" "løvet" ; + leg_N = mk2N "bein" "beinet" ; + liver_N = mkN "lever" "leveren" "levrer" "levrene" ; + louse_N = mk2N "lus" "lusa" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = mkN "mor" "moren" "mødre" "mødrene" ; +-- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = mk2N "munn" "munnen" ; + name_N = mk2N "navn" "navnet" ; + neck_N = mk2N "nakke" "nakken" ; + night_N = mkN "natt" "natta" "netter" "nettene" ; + nose_N = mk2N "nese" "nesen" ; + person_N = mk2N "person" "personen" ; + rain_N = mk2N "regn" "regnet" ; + river_N = river_N ; + road_N = mk2N "vei" "veien" ; + root_N = mkN "rot" "rota" "røtter" "røttene" ; + rope_N = mk2N "tau" "tauet" ; + salt_N = mk2N "salt" "saltet" ; + sand_N = mk2N "sand" "sanden" ; + sea_N = sea_N ; + seed_N = mk2N "frø" "frøet" ; + skin_N = mk2N "skinn" "skinnet" ; + sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; + smoke_N = mk2N "røyk" "røyken" ; + snake_N = snake_N ; + snow_N = mk2N "snø" "snøen" ; + star_N = star_N ; + stick_N = mk2N "pinne" "pinnen" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = mk2N "hale" "halen" ; + tongue_N = mk2N "tunge" "tunga" ; + tooth_N = mkN "tann" "tanna" "tenner" "tennene" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = mk2N "kone" "kona" ; + wind_N = mk2N "vind" "vinden" ; + wing_N = mk2N "vinge" "vingen" ; + woman_N = woman_N ; + worm_N = mk2N "mark" "marken" ; + year_N = mk2N "år" "året" ; + + -- Verbs + + bite_V2 = dirV2 (IrregNor.bite_V) ; + blow_V = mk2V "blåse" "blåste" ; + breathe_V2 = dirV2 (regV "puste") ; + burn_V = brenne_V ; + come_V = komme_V ; + count_V2 = dirV2 (regV "regne") ; + cut_V2 = dirV2 (skjære_V) ; + die_V = dø_V ; + dig_V = mk2V "grave" "gravde" ; + drink_V2 = dirV2 (drikke_V) ; + eat_V2 = dirV2 (mk2V "spise" "spiste") ; + fall_V = falle_V ; + fear_V2 = dirV2 (regV "frykte") ; + fight_V2 = dirV2 (slåss_V) ; + float_V = flyte_V ; + flow_V = renne_V ; + fly_V = fly_V ; + freeze_V = fryse_V ; + give_V = dirdirV3 gi_V ; + hear_V2 = dirV2 (mk2V "høre" "hørde") ; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (holde_V) ; + hunt_V2 = dirV2 (regV "jakte") ; + kill_V2 = dirV2 (mk2V "drepe" "drepte") ; + know_V2 = dirV2 (vite_V) ; + laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ; + lie_V = ligge_V ; + live_V = mk2V "leve" "levde" ; + play_V = mk2V "leke" "lekte" ; + pull_V2 = dirV2 (dra_V) ; + push_V2 = dirV2 (irregV "skyve" "skjøv" "skjøvet") ; + rub_V2 = dirV2 (gni_V) ; + say_V = si_V ; + scratch_V2 = dirV2 (regV "klø") ; + see_V2 = dirV2 (se_V) ; + sew_V = mk2V "sy" "sydde" ; + sing_V = synge_V ; + sit_V = sitte_V ; + sleep_V = sove_V ; + smell_V = regV "lukte" ; + spit_V = regV "spytte" ; + split_V2 = dirV2 (mk2V "kløyve" "kløyvde") ; + squeeze_V2 = dirV2 (mk2V "klemme" "klemte") ; + stab_V2 = dirV2 (stikke_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suge_V) ; + swell_V = partV (regV "hovne") "opp" ; + swim_V = regV "simme" ; + think_V = mk2V "tenke" "tenkte" ; + throw_V2 = dirV2 (regV "kaste") ; + tie_V2 = dirV2 (regV "knytte") ; + turn_V = mk2V "vende" "vendte" ; + vomit_V = partV (regV "kaste") "opp" ; + walk_V = gå_V ; + wash_V2 = dirV2 (regV "vaske") ; + wipe_V2 = dirV2 (regV "tørke") ; + +} diff --git a/examples/bronzeage/SwadeshRus.gf b/examples/bronzeage/old/SwadeshRus.gf similarity index 100% rename from examples/bronzeage/SwadeshRus.gf rename to examples/bronzeage/old/SwadeshRus.gf diff --git a/examples/bronzeage/old/SwadeshSpa.gf b/examples/bronzeage/old/SwadeshSpa.gf new file mode 100644 index 000000000..c7ef810df --- /dev/null +++ b/examples/bronzeage/old/SwadeshSpa.gf @@ -0,0 +1,262 @@ +--# -path=.:../spanish:../common:../abstract:../../prelude:../romance + +concrete SwadeshSpa of Swadesh = CatSpa + ** open PhonoSpa, MorphoSpa, LangSpa, ParadigmsSpa, BeschSpa, Prelude in { + +-- words contributed by Ana Bove, May 2005 + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = { + s = \\g,c => prepCase c ++ genForms ["todos los"] ["todas las"] ! g ; + n = Pl + } ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\g,c => prepCase c ++ genForms "pocos" "pocas" ! g ; n = Pl} ; + other_Det = { + s = \\g,c => prepCase c ++ genForms "otros" "otras" ! g ; + n = Pl + } ; + + left_Ord = mkOrd (regA "izquierda") ; + right_Ord = mkOrd (regA "derecha") ; + + oper + mkOrd : A -> Ord ; + mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n; lock_Ord = <> } ; + + lin + + -- Adverbs + + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + how_IAdv = how_IAdv; + far_Adv = mkAdv "lejos" ; ----? + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = dative ; + in_Prep = in_Prep ; + with_Prep = with_Prep ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "correcto" ; + dirty_A = dirty_A ; + dry_A = regA "seco" ; + dull_A = regA "desafilado" ; + full_A = regA "lleno" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = regA "pesado" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = regA "cerca" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = regA "podrido" ; + round_A = regA "redondo" ; + sharp_A = regA "filoso" ; -- afilado, puntiagudo + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "liso" ; -- suave + straight_A = regA "directo" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "mojado" ; + white_A = white_A ; + wide_A = regA "ancho" ; -- extenso + yellow_A = yellow_A ; + + -- Nouns + + animal_N = regN "animal" ; -- masc (sometimes fem when adj) + ashes_N = regN "ceniza" ; + back_N = regN "espalda" ; + bark_N = regN "corteza" ; + belly_N = regN "panza" ; -- barriga + bird_N = bird_N; + blood_N = femN (regN "sangre") ; + bone_N = regN "hueso" ; + breast_N = regN "seno" ; -- pecho + child_N = child_N ; + cloud_N = femN (regN "nube") ; + day_N = mascN (regN "día") ; + dog_N = dog_N ; + dust_N = regN "polvo" ; + ear_N = regN "oreja" ; + earth_N = regN "tierra" ; + egg_N = regN "huevo" ; + eye_N = regN "ojo" ; + fat_N = regN "grasa" ; + father_N = UseN2 father_N2 ; + feather_N = regN "pluma" ; + fingernail_N = regN "uña" ; + fire_N = regN "fuego" ; + fish_N = fish_N ; + flower_N = femN (regN "flor") ; + fog_N = regN "niebla" ; + foot_N = regN "pie" ; + forest_N = regN "bosque" ; + fruit_N = fruit_N ; + grass_N = regN "pasto" ; -- hierba, césped (masc) + guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas + hair_N = regN "cabello" ; -- pelo + hand_N = femN (regN "mano") ; + head_N = regN "cabeza" ; + heart_N = mkN "corazón" "corazones" masculine ; + horn_N = regN "cuerno" ; + husband_N = regN "marido" ; -- esposo + ice_N = regN "hielo" ; + knee_N = regN "rodilla" ; + lake_N = lake_N ; + leaf_N = regN "hoja" ; + leg_N = regN "pierna" ; + liver_N = regN "hígado" ; + louse_N = regN "piojo" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = regN "boca" ; + name_N = regN "nombre" ; + neck_N = regN "cuello" ; + night_N = femN (regN "noche") ; + nose_N = femN (regN "nariz") ; + person_N = regN "persona" ; + rain_N = regN "lluvia" ; + river_N = river_N ; + road_N = femN (regN "calle") ; -- camino + root_N = femN (regN "raíz") ; + rope_N = regN "cuerda" ; + salt_N = femN (regN "sal") ; + sand_N = regN "arena" ; + sea_N = sea_N ; + seed_N = regN "semilla" ; + skin_N = femN (regN "piel") ; -- fem + sky_N = regN "cielo" ; + smoke_N = regN "humo" ; + snake_N = snake_N ; + snow_N = femN (regN "nieve") ; -- fem + star_N = star_N ; + stick_N = mkN "bastón" "bastones" masculine ; -- palo + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = regN "cola" ; + tongue_N = regN "lengua" ; + tooth_N = regN "diente" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = regN "esposa" ; + wind_N = regN "viento" ; + wing_N = regN "ala" ; + woman_N = woman_N ; + worm_N = regN "gusano" ; -- lombriz (fem) + year_N = regN "año" ; + + -- Verbs + + bite_V2 = dirV2 (verboV (morder_50b "morder")) ; + blow_V = regV "soplar" ; + breathe_V2 = dirV2 (regV "respirar") ; + burn_V = regV "quemar" ; + come_V = come_V ; + count_V2 = dirV2 (verboV (contar_38b "contar")) ; + cut_V2 = dirV2 (regV "cortar") ; + die_V = die_V ; + dig_V = regV "escarbar" ; + drink_V2 = dirV2 (regV "tomar") ; + eat_V2 = dirV2 (regV "comer") ; + fall_V = verboV (caer_20 "caer") ; + fear_V2 = dirV2 (fear_VS) ; + fight_V2 = dirV2 (regV "pelear") ; + float_V = regV "flotar" ; + flow_V = verboV (influir_45 "fluir") ; -- circular + fly_V = regV "volar" ; + freeze_V = regV "congelar" ; + give_V = dirdirV3 (verboV (dar_27 "dar")) ; + hear_V2 = dirV2 (hear_V2) ; + hit_V2 = dirV2 (regV "golpear") ; + hold_V2 = dirV2 (verboV (tener_4 "tener")) ; + hunt_V2 = dirV2 (regV "cazar") ; + kill_V2 = dirV2 (regV "matar") ; + know_V2 = dirV2 (know_V2) ; + laugh_V = regV "reir" ; ----V reír_67 + lie_V = reflV (regV "acostar") ; -- "acostarse" + live_V = live_V ; + play_V = regV "jugar" ; + pull_V2 = dirV2 (regV "tirar") ; + push_V2 = dirV2 (regV "empujar") ; + rub_V2 = dirV2 (regV "resfregar") ; + say_V = say_VS ; + scratch_V2 = dirV2 (regV "rascar") ; + see_V2 = dirV2 (see_V2) ; + sew_V = regV "coser" ; + sing_V = regV "cantar" ; + sit_V = reflV (regV "sentar") ; + sleep_V = sleep_V ; + smell_V = verboV (oler_52 "oler") ; + spit_V = regV "escupir" ; + split_V2 = dirV2 (regV "separar") ; -- dividir,) ; + squeeze_V2 = dirV2 (regV "exprimir") ; + stab_V2 = dirV2 (regV "apuñalar") ; + stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ; + suck_V2 = dirV2 (regV "chupar") ; + swell_V = regV "tragar" ; + swim_V = regV "nadar" ; + think_V = regV "pensar" ; + throw_V2 = dirV2 (regV "tirar") ; + tie_V2 = dirV2 (regV "atar") ; + turn_V = regV "doblar" ; + vomit_V = regV "vomitar" ; + walk_V = regV "caminar" ; + wash_V2 = dirV2 (regV "lavar") ; + wipe_V2 = dirV2 (regV "secar") ; + +} diff --git a/examples/bronzeage/old/SwadeshSwe.gf b/examples/bronzeage/old/SwadeshSwe.gf new file mode 100644 index 000000000..be548b07f --- /dev/null +++ b/examples/bronzeage/old/SwadeshSwe.gf @@ -0,0 +1,252 @@ +--# -path=.:present:prelude + +concrete SwadeshSwe of Swadesh = CatSwe + ** open MorphoSwe, LangSwe, ParadigmsSwe, IrregSwe, Prelude in { + + lincat + MassN = N ; + + lin + + -- Pronouns + + i_NP = i_Pron ; + youSg_NP = youSg_Pron ; + he_NP = he_Pron ; + we_NP = we_Pron ; + youPl_NP = youPl_Pron ; + they_NP = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + all_Det = {s = \\_,_ => "alla" ; n = Pl ; det = DDef Indef} ; + many_Det = many_Det ; + some_Det = someSg_Det ; + few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ; + other_Det = {s = \\_,_ => "andra" ; n = Pl ; det = DDef Indef} ; + + left_Ord = {s = "vänstra" ; isDet = True} ; + right_Ord = {s = "högra" ; isDet = True} ; + + -- Adverbs + + here_Adv = here_Adv ; + there_Adv = there_Adv ; + where_IAdv = where_IAdv ; + when_IAdv = when_IAdv ; + how_IAdv = how_IAdv ; + far_Adv = mkAdv "långt" ; + + -- not : Adv ; -- ? + + -- Conjunctions + + and_Conj = and_Conj ; + + -- Prepositions + + at_Prep = ss "vid" ; + in_Prep = ss "i" ; + with_Prep = ss "med" ; + + -- Numerals + + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + + bad_A = bad_A ; + big_A = big_A ; + black_A = black_A ; + cold_A = cold_A ; + correct_A = regA "riktig" ; + dirty_A = dirty_A ; + dry_A = regA "torr" ; + dull_A = mk2A "slö" "slött"; + full_A = regA "full" ; + good_A = good_A ; + green_A = green_A ; + heavy_A = irregA "tung" "tyngre" "tyngst" ; + long_A = long_A ; + narrow_A = narrow_A ; + near_A = mkA "nära" "nära" "nära" "nära" + "närmare" "närmast" "närmaste" ; + new_A = new_A ; + old_A = old_A ; + red_A = red_A ; + rotten_A = mk3A "rutten" "ruttet" "ruttna" ; + round_A = regA "rund" ; + sharp_A = regA "vass" ; + short_A = short_A ; + small_A = small_A ; + smooth_A = regA "slät" ; + straight_A = regA "rak" ; + thick_A = thick_A ; + thin_A = thin_A ; + warm_A = warm_A ; + wet_A = regA "våt" ; + white_A = white_A ; + wide_A = mk2A "bred" "brett" ; + yellow_A = yellow_A ; + + + -- Nouns + + animal_N = mk2N "djur" "djur" ; + ashes_N = mk2N "aska" "askor" ; + back_N = mk2N "rygg" "ryggar" ; + bark_N = mk2N "bark" "barkar" ; + belly_N = mk2N "mage" "magar" ; + bird_N = bird_N ; + blood_N = mk2N "blod" "blod" ; + bone_N = mk2N "ben" "ben" ; + breast_N = mk2N "bröst" "bröst" ; + child_N = child_N ; + cloud_N = mk2N "moln" "moln" ; + day_N = mk2N "dag" "dagar" ; + dog_N = dog_N ; + dust_N = mk2N "damm" "damm" ; + ear_N = mkN "öra" "örat" "öron" "öronen" ; + earth_N = mk2N "jord" "jordar" ; + egg_N = mk2N "ägg" "ägg" ; + eye_N = mkN "öga" "ögat" "ögon" "ögonen" ; + fat_N = mk2N "fett" "fett" ; + father_N = (mkN "far" "fadern" "fäder" "fäderna") ; +-- father_N = UseN2 father_N2 ; + feather_N = mk2N "fjäder" "fjädrar" ; + fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna"; + fire_N = mk2N "eld" "eldar" ; + fish_N = fish_N ; + flower_N = mk2N "blomma" "blommor" ; + fog_N = mk2N "dimma" "dimmor" ; + foot_N = mk2N "fot" "fötter" ; + forest_N = mk2N "skog" "skogar" ; + fruit_N = fruit_N ; + grass_N = mk2N "gräs" "gräs" ; + guts_N = mk2N "inälva" "inälvor" ; + hair_N = mk2N "hår" "hår" ; + hand_N = mk2N "hand" "händer" ; + head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ; + heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ; + horn_N = mk2N "horn" "horn" ; + husband_N = (mk2N "make" "makar") ; + ice_N = mk2N "is" "isar" ; + knee_N = mkN "knä" "knäet" "knän" "knäna" ; + lake_N = lake_N ; + leaf_N = mk2N "löv" "löv" ; + leg_N = mk2N "ben" "ben" ; + liver_N = mkN "lever" "levern" "levrar" "levrarna"; + louse_N = mkN "lus" "lusen" "löss" "lössen" ; + man_N = man_N ; + meat_N = meat_N ; + moon_N = moon_N ; + mother_N = mkN "mor" "modern" "mödrar" "mödrarna" ; +-- mother_N = UseN2 mother_N2 ; + mountain_N = mountain_N ; + mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ; + name_N = mk2N "namn" "namn" ; + neck_N = mk2N "nacke" "nackar" ; + night_N = mk2N "natt" "nätter" ; + nose_N = mk2N "näsa" "näsor" ; + person_N = mk2N "person" "personer" ; + rain_N = mk2N "regn" "regn" ; + river_N = river_N ; + road_N = mk2N "väg" "vägar" ; + root_N = mk2N "rot" "rötter" ; + rope_N = mk2N "rep" "rep" ; + salt_N = mkN "salt" "saltet" "salter" "salterna"; + sand_N = mk2N "sand" "sander" ; + sea_N = sea_N ; + seed_N = mkN "frö" "fröet" "frön" "fröna" ; + skin_N = mk2N "skinn" "skinn" ; + sky_N = mk2N "himmel" "himlar" ; + smoke_N = mk2N "rök" "rökar" ; + snake_N = snake_N ; + snow_N = mkN "snö" "snön" "snöer" "snöerna" ; + star_N = star_N ; + stick_N = mk2N "pinne" "pinnar" ; + stone_N = stone_N ; + sun_N = sun_N ; + tail_N = mk2N "svans" "svansar" ; + tongue_N = mk2N "tunga" "tungor" ; + tooth_N = mk2N "tand" "tänder" ; + tree_N = tree_N ; + water_N = water_N ; + wife_N = mk2N "fru" "fruar" ; + wind_N = mk2N "vind" "vindar" ; + wing_N = mk2N "vinge" "vingar" ; + woman_N = woman_N ; + worm_N = mk2N "mask" "maskar" ; + year_N = mk2N "år" "år" ; + + -- Verbs + + bite_V2 = dirV2 (bita_V) ; + blow_V = mk2V "blåsa" "blåste" ; + breathe_V2 = dirV2 (depV (regV "anda")) ; + burn_V = brinna_V ; -- FIXME: bränna? + come_V = komma_V ; + count_V2 = dirV2 (regV "räkna") ; + cut_V2 = dirV2 (skära_V) ; + die_V = dö_V ; + dig_V = mk2V "gräva" "grävde" ; + drink_V2 = dirV2 (dricka_V) ; + eat_V2 = dirV2 (äta_V) ; + fall_V = falla_V ; + fear_V2 = dirV2 (regV "frukta") ; + -- FIXME: passive forms are very strange + fight_V = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ; + float_V = flyta_V ; + flow_V = rinna_V ; + fly_V = flyga_V ; + freeze_V = frysa_V ; + give_V = dirV3 giva_V "till"; + hear_V2 = dirV2 (mk2V "höra" "hörde") ; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (hålla_V) ; + hunt_V2 = dirV2 (regV "jaga") ; + kill_V2 = dirV2 (regV "döda") ; + know_V2 = dirV2 (känna_V) ; + laugh_V = regV "skratta" ; + lie_V = ligga_V ; + live_V = leva_V ; + play_V = mk2V "leka" "lekte" ; + pull_V2 = dirV2 (draga_V) ; + push_V2 = dirV2 (mk2V "trycka" "tryckte") ; + rub_V2 = dirV2 (gnida_V) ; + say_V = säga_V ; + scratch_V2 = dirV2 (regV "klia") ; + see_V2 = dirV2 (se_V) ; + sew_V = sy_V ; + sing_V = sjunga_V ; + sit_V = sitta_V ; + sleep_V = sova_V ; + smell_V = regV "lukta" ; + spit_V = regV "spotta" ; + split_V2 = dirV2 (klyva_V) ; + squeeze_V2 = dirV2 (klämma_V) ; + stab_V2 = dirV2 (sticka_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suga_V) ; + swell_V = svälla_V ; + swim_V = regV "simma" ; + think_V = mk2V "tänka" "tänkte" ; + throw_V2 = dirV2 (regV "kasta") ; + tie_V2 = dirV2 (knyta_V) ; + turn_V = vända_V ; + vomit_V = mk2V "spy" "spydde" ; + walk_V = gå_V ; + wash_V2 = dirV2 (regV "tvätta") ; + wipe_V2 = dirV2 (regV "torka") ; + +} diff --git a/lib/resource-1.0/abstract/Lexicon.gf b/lib/resource-1.0/abstract/Lexicon.gf index 837fac26f..3d82e1eec 100644 --- a/lib/resource-1.0/abstract/Lexicon.gf +++ b/lib/resource-1.0/abstract/Lexicon.gf @@ -1,47 +1,47 @@ ---1 A Lexicon Lexicon - --- This files gives a list of words whose purpose is to test the GF --- resource grammar. It covers all lexical categories of [Cat Cat.html]. --- By containing some of the most common words, --- it is aimed to cover, with high probability, all morphological --- patterns in the different languages. - --- Using this lexicon for translation is not recommended. The linearizations --- of the words in different languages are not guaranteed to be translation --- equivalents. - abstract Lexicon = Cat ** { - fun +fun add_V3 : V3 ; airplane_N : N ; already_Adv : Adv ; + animal_N : N ; answer_V2S : V2 ; apartment_N : N ; apple_N : N ; art_N : N ; + ashes_N : N ; ask_V2Q : V2 ; baby_N : N ; + back_N : N ; bad_A : A ; bank_N : N ; + bark_N : N ; beautiful_A : A ; become_VA : VA ; beer_N : N ; beg_V2V : V2 ; + belly_N : N ; big_A : A ; bike_N : N ; bird_N : N ; + bite_V2 : V2 ; black_A : A ; + blood_N : N ; + blow_V : V ; blue_A : A ; boat_N : N ; + bone_N : N ; book_N : N ; boot_N : N ; boss_N : N ; boy_N : N ; bread_N : N ; break_V2 : V2 ; + breast_N : N ; + breathe_V : V ; broad_A : A ; brother_N2 : N2 ; brown_A : A ; + burn_V : V ; butter_N : N ; buy_V2 : V2 ; camera_N : N ; @@ -58,82 +58,147 @@ abstract Lexicon = Cat ** { clean_A : A ; clever_A : A ; close_V2 : V2 ; + cloud_N : N ; coat_N : N ; cold_A : A ; come_V : V ; computer_N : N ; + correct_A : A ; country_N : N ; + count_V2 : V2 ; cousin_N : N ; cow_N : N ; + cut_V2 : V2 ; + day_N : N ; die_V : V ; + dig_V : V ; dirty_A : A ; distance_N3 : N3 ; - do_V2 : V2 ; doctor_N : N ; dog_N : N ; door_N : N ; + do_V2 : V2 ; drink_V2 : V2 ; + drink_V2 : V2 ; + dry_A : A ; + dull_A : A ; + dust_N : N ; + ear_N : N ; + earth_N : N ; easy_A2V : A2 ; eat_V2 : V2 ; - enemy_N : N ; + eat_V2 : V2 ; + egg_N : N ; empty_A : A ; + enemy_N : N ; + eye_N : N ; factory_N : N ; + fall_V : V ; + far_Adv : Adv ; father_N2 : N2 ; + fat_N : N ; fear_VS : VS ; + fear_V2 : V2 ; + feather_N : N ; + fight_V2 : V2 ; find_V2 : V2 ; + fingernail_N : N ; + fire_N : N ; fish_N : N ; + float_V : V ; floor_N : N ; + flower_N : N ; + flow_V : V ; + fly_V : V ; + fog_N : N ; + foot_N : N ; + forest_N : N ; forget_V2 : V2 ; + freeze_V : V ; fridge_N : N ; friend_N : N ; fruit_N : N ; + full_A : A ; + fun fun_AV : A ; garden_N : N ; girl_N : N ; + give_V3 : V3 ; glove_N : N ; gold_N : N ; good_A : A ; go_V : V ; + grass_N : N ; green_A : A ; + guts_N : N ; + hair_N : N ; + hand_N : N ; harbour_N : N ; hate_V2 : V2 ; hat_N : N ; have_V2 : V2 ; + head_N : N ; + heart_N : N ; hear_V2 : V2 ; + hear_V2 : V2 ; + heavy_A : A ; hill_N : N ; + hit_V2 : V2 ; + hold_V2 : V2 ; hope_VS : VS ; + horn_N : N ; horse_N : N ; hot_A : A ; house_N : N ; + hunt_V2 : V2 ; + husband_N : N ; + ice_N : N ; important_A : A ; industry_N : N ; iron_N : N ; jump_V : V ; + kill_V2 : V2 ; king_N : N ; + knee_N : N ; + know_V2 : V2 ; know_V2 : V2 ; lake_N : N ; lamp_N : N ; + laugh_V : V ; + leaf_N : N ; learn_V2 : V2 ; leather_N : N ; leave_V2 : V2 ; + left_Ord : Ord ; + leg_N : N ; + lie_V : V ; like_V2 : V2 ; listen_V2 : V2 ; + liver_N : N ; live_V : V ; long_A : A ; lose_V2 : V2 ; + louse_N : N ; love_N : N ; love_V2 : V2 ; man_N : N ; married_A2 : A2 ; meat_N : N ; + meat_N : N ; milk_N : N ; moon_N : N ; mother_N2 : N2 ; mountain_N : N ; + mouth_N : N ; music_N : N ; + name_N : N ; narrow_A : A ; + near_A : A ; + neck_N : N ; new_A : A ; newspaper_N : N ; + night_N : N ; + nose_N : N ; now_Adv : Adv ; number_N : N ; oil_N : N ; @@ -144,33 +209,52 @@ abstract Lexicon = Cat ** { paris_PN : PN ; peace_N : N ; pen_N : N ; + person_N : N ; planet_N : N ; plastic_N : N ; play_V2 : V2 ; + play_V : V ; policeman_N : N ; priest_N : N ; probable_AS : A ; + pull_V2 : V2 ; + push_V2 : V2 ; put_V2 : V2 ; queen_N : N ; radio_N : N ; + rain_N : N ; rain_V0 : V ; read_V2 : V2 ; red_A : A ; religion_N : N ; restaurant_N : N ; + right_Ord : Ord ; river_N : N ; + road_N : N ; rock_N : N ; roof_N : N ; + root_N : N ; + rope_N : N ; + rotten_A : A ; + round_A : A ; rubber_N : N ; + rub_V2 : V2 ; run_V : V ; + salt_N : N ; + sand_N : N ; say_VS : VS ; school_N : N ; science_N : N ; + scratch_V2 : V2 ; sea_N : N ; + seed_N : N ; seek_V2 : V2 ; see_V2 : V2 ; + see_V2 : V2 ; sell_V3 : V3 ; send_V3 : V3 ; + sew_V : V ; + sharp_A : A ; sheep_N : N ; ship_N : N ; shirt_N : N ; @@ -178,52 +262,87 @@ abstract Lexicon = Cat ** { shop_N : N ; short_A : A ; silver_N : N ; + sing_V : V ; sister_N : N ; + sit_V : V ; + skin_N : N ; + sky_N : N ; sleep_V : V ; small_A : A ; + smell_V : V ; + smoke_N : N ; + smooth_A : A ; snake_N : N ; + snow_N : N ; sock_N : N ; song_N : N ; speak_V2 : V2 ; + spit_V : V ; + split_V2 : V2 ; + squeeze_V2 : V2 ; + stab_V2 : V2 ; + stand_V : V ; star_N : N ; steel_N : N ; + stick_N : N ; stone_N : N ; stop_V : V ; stove_N : N ; + straight_A : A ; student_N : N ; stupid_A : A ; + suck_V2 : V2 ; sun_N : N ; + swell_V : V ; + swim_V : V ; switch8off_V2 : V2 ; switch8on_V2 : V2 ; table_N : N ; + tail_N : N ; talk_V3 : V3 ; teacher_N : N ; teach_V2 : V2 ; television_N : N ; thick_A : A ; thin_A : A ; + think_V : V ; + throw_V2 : V2 ; + tie_V2 : V2 ; + tongue_N : N ; + tooth_N : N ; train_N : N ; travel_V : V ; tree_N : N ; - ---- trousers_N : N ; + turn_V : V ; ugly_A : A ; understand_V2 : V2 ; university_N : N ; village_N : N ; + vomit_V : V ; wait_V2 : V2 ; walk_V : V ; warm_A : A ; war_N : N ; + wash_V2 : V2 ; watch_V2 : V2 ; water_N : N ; + water_N : N ; + wet_A : A ; white_A : A ; + wide_A : A ; + wife_N : N ; + wind_N : N ; window_N : N ; wine_N : N ; + wing_N : N ; win_V2 : V2 ; + wipe_V2 : V2 ; woman_N : N ; wonder_VQ : VQ ; wood_N : N ; + worm_N : N ; write_V2 : V2 ; + year_N : N ; yellow_A : A ; young_A : A ; diff --git a/lib/resource-1.0/abstract/Structural.gf b/lib/resource-1.0/abstract/Structural.gf index 477f969f7..ea3fe0301 100644 --- a/lib/resource-1.0/abstract/Structural.gf +++ b/lib/resource-1.0/abstract/Structural.gf @@ -38,6 +38,7 @@ abstract Structural = Cat ** { everything_NP : NP ; everywhere_Adv : Adv ; first_Ord : Ord ; + few_Det : Det ; from_Prep : Prep ; he_Pron : Pron ; here_Adv : Adv ; diff --git a/lib/resource-1.0/doc/clt2006.html b/lib/resource-1.0/doc/clt2006.html index 4ee440495..b7e180545 100644 --- a/lib/resource-1.0/doc/clt2006.html +++ b/lib/resource-1.0/doc/clt2006.html @@ -7,7 +7,7 @@

The GF Resource Grammar Library Version 1.0

Author: Aarne Ranta <aarne (at) cs.chalmers.se>
-Last update: Sat Mar 4 14:20:07 2006 +Last update: Tue Mar 7 16:01:46 2006

@@ -274,9 +274,7 @@ Rosetta Machine Translation (B

Coverage

-

-===Languages==== -

+

Languages

The current GF Resource Project covers ten languages:

@@ -302,9 +300,7 @@ API 1.0 not yet implemented for Danish and Russian

-

-===Morphology==== -

+

Morphology and lexicon

Complete inflection engine

@@ -315,24 +311,20 @@ Complete inflection engine

-High-level access via ParadigmsX; e.g. Swedish: +Basic lexicon

+ +

+It is more important to enable lexicon extensions than to +provide a huge lexicon. +

+

@@ -340,7 +332,32 @@ High-level access via ParadigmsX; e.g. Swedish:

Syntactic structures

- +Texts: +sequences of phrases with punctuation +

+

+Phrases: +declaratives, questions, imperatives, vocatives +

+

+Tense, mood, and polarity: +present, past, future, conditional ; similtaneous, anterior ; positive, negative +

+

+Questions: +yes-no, "wh" ; direct, indirect +

+

+Clauses: +main, relative, embedded (subject, object, adverbial) +

+

+Verb phrases: +intransitive, transitive, ditransitive, prepositional +

+

+Noun phrases: +proper names, pronouns, determiners, possessives, cardinals and ordinals

@@ -378,15 +395,125 @@ Lines of source code (4/3/2006):

-

Structure

+

Structure of the API

+

Language-independent ground API

+

+ +

-

Language-independent ground API

+

The structure of a text sentence

+
+  John walks.
+  
+  TFullStop              : Phr -> Text -> Text
+    (PhrUtt              : PConj -> Utt -> Voc -> Phr
+      NoPConj
+      (UttS              : S -> Utt
+        (UseCl           : Tense -> Anter -> Pol -> Cl -> S
+          TPres              
+          ASimul 
+          PPos 
+          (PredVP        : NP -> VP -> Cl
+            (UsePN       : PN -> NP 
+              john_PN) 
+            (UseV        : V  -> VP
+              walk_V)))) 
+      NoVoc) 
+    TEmpty
+
+

+

+ +

+

Structure in syntax editor

+

+ +

Language-dependent paradigm modules

+

Regular paradigms

+

+Every language implements these regular patterns that take +"dictionary forms" as arguments. +

+
+    regN : Str -> N
+    regA : Str -> A 
+    regV : Str -> V
+
+

+Their usefulness varies. For instance, they +all are quite good in Finnish and English. +In Swedish, less so: +

+
+    regN "val" ---> val, valen, valar, valarna
+
+

+Initializing a lexicon with regXs is +usually a good starting point in grammar development. +

+

+ +

+

Regular paradigms

+

+In Swedish, giving the gender of N improves a lot +

+
+    regGenN "val" neutrum ---> val, valet, val, valen
+
+

+

+There are also special constructs taking other forms: +

+
+    mk2N : (nyckel,nycklar : Str) -> N
+    mk1N : (bilarna : Str) -> N
+  
+    irregV : (dricka, drack, druckit : Str) -> V
+
+

+

+Regular verbs are actually implemented the +Lexin way +

+
+    regV : (talar : Str) -> N
+
+

+

+ +

+

Worst-case paradigms

+

+To cover all situations, worst-case paradigms are given. E.g. Swedish +

+
+    mkN : (apa,apan,apor,aporna : Str) -> N
+    mkA : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> A
+    mkV : (supa,super,sup,söp,supit,supen : Str) -> V
+
+

+

+ +

+

Irregular words

+

+Iregular words in IrregX, e.g. Swedish: +

+
+      draga_V : V = 
+        mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) 
+            (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ;
+
+

+Goal: eliminate the user's need of worst-case functions. +

@@ -395,6 +522,20 @@ Lines of source code (4/3/2006):

Special-purpose APIs

+

+Syntactic structures that are not shared by all languages. +

+

+Not implemented yet. +

+

+Candidates: +

+ +

@@ -402,20 +543,127 @@ Lines of source code (4/3/2006):

+

Compiling

+

+It is a good idea to compile the library, so that it can be opened faster +

+
+    GF/lib/resource-1.0% make
+  
+    writes GF/lib/alltenses
+           GF/lib/present
+           GF/lib/resource-1.0/langs.gfcm
+
+

+If you don't intend to change the library, you never need to process the source +files again. Just do some of +

+
+    gf -nocf langs.gfcm                                    -- all 8 languages
+   
+    gf -nocf -path=alltenses:prelude alltenses/LangSwe.gfc -- Swedish only
+  
+    gf -nocf -path=alltenses:prelude present/LangSwe.gfc   -- Swedish only, present tense only
+
+

+

+ +

Parsing

+The default parser does not work! +

+

+The MCFG parser works in some languages, after waiting appr. 20 seconds +

+
+    p -mcfg -lang=LangEng -cat=S "I would see her"
+  
+    p -mcfg -lang=LangSwe -cat=S "jag skulle se henne"
+  
+    p -mcfg -lang=LangNor -cat=S "jeg ville se henne"
+  
+
+

+Parsing in present/ versions is quicker. +

+

Treebank generation

+Multilingual treebank entry = tree + linearizations +

+

+Some examples on treebank generation, assuming langs.gfcm +

+
+    gr -cat=S   -number=10 -cf | tb                  -- 10 random S
+  
+    gt -cat=Phr -depth=4       | tb -xml | wf ex.xml -- all Phr to depth 4, into file ex.xml
+
+

+Regression testing +

+
+    rf ex.xml | tb -c      -- read treebank from file and compare to present grammars 
+
+

+Updating a treebank +

+
+    rf old.xml | tb -trees | tb -xml | wf new.xml    -- read old from file, write new to file
+
+

+

Treebank-based parsing

+Brute-force method that helps if real parsing is more expensive. +

+
+    make treebank                     -- make treebank with all languages
+  
+    gf -treebank langs.xml            -- start GF by reading the treebank
+  
+    > ut -strings -treebank=LangIta   -- show all Ita strings
+  
+    > ut -treebank=LangIta -raw "Quello non si romperebbe" -- look up a string
+  
+    > i -nocf langs.gfcm              -- read grammar to be able to linearize
+  
+    > ut -treebank=LangIta "Quello non si romperebbe" | l -multi  -- translate to all
+
+

+

Morphology

+Use morphological analyser +

+
+    gf -nocf -retain -path=alltenses:prelude alltenses/LangSwe.gf
+    > ma "jag kan inte höra vad du säger"
+
+

+

+Try out a morphology quiz +

+
+    > mq -cat=V
+
+

+

+Try out inflection patterns +

+
+    gf -retain -path=alltenses:prelude alltenses/ParadigmsSwe.gfr
+    > cc regV "lyser"
+
+

+

@@ -423,6 +671,16 @@ Lines of source code (4/3/2006):

Syntax editing

+We start a demo by +

+
+  gfeditor langs.gfcm
+
+

+

+ +

+

Efficient parsing via application grammar

@@ -469,6 +727,6 @@ Lines of source code (4/3/2006):

Extend old modules or add a new one?

- + diff --git a/lib/resource-1.0/doc/clt2006.txt b/lib/resource-1.0/doc/clt2006.txt index 5b215297a..dd348b2da 100644 --- a/lib/resource-1.0/doc/clt2006.txt +++ b/lib/resource-1.0/doc/clt2006.txt @@ -217,7 +217,7 @@ Rosetta Machine Translation ([Book 1994 http://citeseer.ist.psu.edu/181924.html] ==Coverage== -===Languages==== +===Languages=== The current GF Resource Project covers ten languages: - ``Dan``ish @@ -240,7 +240,7 @@ API 1.0 not yet implemented for Danish and Russian #NEW -===Morphology==== +===Morphology and lexicon=== Complete inflection engine - all word classes @@ -248,24 +248,16 @@ Complete inflection engine - all inflectional paradigms -High-level access via ``ParadigmsX``; e.g. Swedish: -- worst-case functions -``` - mkV : (supa,super,sup,söp,supit,supen : Str) -> V ; -``` -- common patterns -``` - regV : (talar : Str) -> V ; - irregV : (dricka, drack, druckit : Str) -> V ; -``` -- irregular words in ``IrregX``: -``` - draga_V : V = - mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) - (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ; -``` +Basic lexicon +- 100 structural words +- 350 content words, mainly for testing +- these include the 207 [Swadesh words http://en.wiktionary.org/wiki/Swadesh_List] +It is more important to enable lexicon extensions than to +provide a huge lexicon. +- technical lexica can have very special words, which tend to be regular + @@ -274,7 +266,28 @@ High-level access via ``ParadigmsX``; e.g. Swedish: ===Syntactic structures=== -[Lang.png] +Texts: +sequences of phrases with punctuation + +Phrases: +declaratives, questions, imperatives, vocatives + +Tense, mood, and polarity: +present, past, future, conditional ; similtaneous, anterior ; positive, negative + +Questions: +yes-no, "wh" ; direct, indirect + +Clauses: +main, relative, embedded (subject, object, adverbial) + +Verb phrases: +intransitive, transitive, ditransitive, prepositional + +Noun phrases: +proper names, pronouns, determiners, possessives, cardinals and ordinals + + #NEW @@ -307,16 +320,117 @@ Lines of source code (4/3/2006): #NEW -==Structure== +==Structure of the API== + +===Language-independent ground API=== + +[Lang.png] + #NEW -===Language-independent ground API=== +===The structure of a text sentence=== + +``` +John walks. + +TFullStop : Phr -> Text -> Text + (PhrUtt : PConj -> Utt -> Voc -> Phr + NoPConj + (UttS : S -> Utt + (UseCl : Tense -> Anter -> Pol -> Cl -> S + TPres + ASimul + PPos + (PredVP : NP -> VP -> Cl + (UsePN : PN -> NP + john_PN) + (UseV : V -> VP + walk_V)))) + NoVoc) + TEmpty +``` + +#NEW + +===Structure in syntax editor=== + +[editor.png] + #NEW ===Language-dependent paradigm modules=== +====Regular paradigms==== + +Every language implements these regular patterns that take +"dictionary forms" as arguments. +``` + regN : Str -> N + regA : Str -> A + regV : Str -> V +``` +Their usefulness varies. For instance, they +all are quite good in Finnish and English. +In Swedish, less so: +``` + regN "val" ---> val, valen, valar, valarna +``` +Initializing a lexicon with ``regX``s is +usually a good starting point in grammar development. + + +#NEW + +====Regular paradigms==== + +In Swedish, giving the gender of ``N`` improves a lot +``` + regGenN "val" neutrum ---> val, valet, val, valen +``` + +There are also special constructs taking other forms: +``` + mk2N : (nyckel,nycklar : Str) -> N + mk1N : (bilarna : Str) -> N + + irregV : (dricka, drack, druckit : Str) -> V +``` + +Regular verbs are actually implemented the +[Lexin http://lexin.nada.kth.se/sve-sve.shtml] way +``` + regV : (talar : Str) -> N +``` + + +#NEW + +====Worst-case paradigms==== + +To cover all situations, worst-case paradigms are given. E.g. Swedish +``` + mkN : (apa,apan,apor,aporna : Str) -> N + mkA : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> A + mkV : (supa,super,sup,söp,supit,supen : Str) -> V +``` + + +#NEW + +====Irregular words==== + +Iregular words in ``IrregX``, e.g. Swedish: +``` + draga_V : V = + mkV (variants { "dra"; "draga"}) (variants { "drar" ; "drager"}) + (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ; +``` +Goal: eliminate the user's need of worst-case functions. + + + #NEW ===Language-dependent syntax extensions=== @@ -325,34 +439,139 @@ Lines of source code (4/3/2006): ===Special-purpose APIs=== +Syntactic structures that are not shared by all languages. + +Not implemented yet. + +Candidates: +- ``Nor`` post-possessives: ``bilen min`` +- ``Fre`` question forms: ``est-ce que tu dors ?`` + #NEW ===How to use as top-level grammar=== +#NEW + +===Compiling=== + +It is a good idea to compile the library, so that it can be opened faster +``` + GF/lib/resource-1.0% make + + writes GF/lib/alltenses + GF/lib/present + GF/lib/resource-1.0/langs.gfcm +``` +If you don't intend to change the library, you never need to process the source +files again. Just do some of +``` + gf -nocf langs.gfcm -- all 8 languages + + gf -nocf -path=alltenses:prelude alltenses/LangSwe.gfc -- Swedish only + + gf -nocf -path=alltenses:prelude present/LangSwe.gfc -- Swedish only, present tense only +``` + + #NEW ===Parsing=== +The default parser does not work! + +The MCFG parser works in some languages, after waiting appr. 20 seconds +``` + p -mcfg -lang=LangEng -cat=S "I would see her" + + p -mcfg -lang=LangSwe -cat=S "jag skulle se henne" + + p -mcfg -lang=LangNor -cat=S "jeg ville se henne" + +``` +Parsing in ``present/`` versions is quicker. + + #NEW ===Treebank generation=== +Multilingual treebank entry = tree + linearizations + +Some examples on treebank generation, assuming ``langs.gfcm`` +``` + gr -cat=S -number=10 -cf | tb -- 10 random S + + gt -cat=Phr -depth=4 | tb -xml | wf ex.xml -- all Phr to depth 4, into file ex.xml +``` +Regression testing +``` + rf ex.xml | tb -c -- read treebank from file and compare to present grammars +``` +Updating a treebank +``` + rf old.xml | tb -trees | tb -xml | wf new.xml -- read old from file, write new to file +``` + + + #NEW ===Treebank-based parsing=== +Brute-force method that helps if real parsing is more expensive. +``` + make treebank -- make treebank with all languages + + gf -treebank langs.xml -- start GF by reading the treebank + + > ut -strings -treebank=LangIta -- show all Ita strings + + > ut -treebank=LangIta -raw "Quello non si romperebbe" -- look up a string + + > i -nocf langs.gfcm -- read grammar to be able to linearize + + > ut -treebank=LangIta "Quello non si romperebbe" | l -multi -- translate to all +``` + + #NEW ===Morphology=== +Use morphological analyser +``` + gf -nocf -retain -path=alltenses:prelude alltenses/LangSwe.gf + > ma "jag kan inte höra vad du säger" +``` + +Try out a morphology quiz +``` + > mq -cat=V +``` + +Try out inflection patterns +``` + gf -retain -path=alltenses:prelude alltenses/ParadigmsSwe.gfr + > cc regV "lyser" +``` + + #NEW + #NEW ===Syntax editing=== +We start a demo by +``` gfeditor langs.gfcm + +[editor.png] + + #NEW ===Efficient parsing via application grammar=== diff --git a/lib/resource-1.0/doc/editor.png b/lib/resource-1.0/doc/editor.png new file mode 100644 index 000000000..63a3161bf Binary files /dev/null and b/lib/resource-1.0/doc/editor.png differ diff --git a/lib/resource-1.0/english/LexiconEng.gf b/lib/resource-1.0/english/LexiconEng.gf index 0415381e5..fb4b4c35e 100644 --- a/lib/resource-1.0/english/LexiconEng.gf +++ b/lib/resource-1.0/english/LexiconEng.gf @@ -1,6 +1,7 @@ --# -path=.:prelude -concrete LexiconEng of Lexicon = CatEng ** open ParadigmsEng, IrregEng in { +concrete LexiconEng of Lexicon = CatEng ** + open ParadigmsEng, IrregEng, Prelude in { flags optimize=values ; @@ -222,4 +223,132 @@ lin stop_V = regDuplV "stop" ; jump_V = regV "jump" ; + left_Ord = ss "left" ; + right_Ord = ss "right" ; + far_Adv = mkAdv "far" ; + correct_A = (regA "correct") ; + dry_A = regA "dry" ; + dull_A = regA "dull" ; + full_A = regA "full" ; + heavy_A = regA "heavy" ; + near_A = regA "near" ; + rotten_A = (regA "rotten") ; + round_A = regA "round" ; + sharp_A = regA "sharp" ; + smooth_A = regA "smooth" ; + straight_A = regA "straight" ; + wet_A = regA "wet" ; ---- + wide_A = regA "wide" ; + animal_N = regN "animal" ; + ashes_N = regN "ash" ; -- FIXME: plural only? + back_N = regN "back" ; + bark_N = regN "bark" ; + belly_N = regN "belly" ; + blood_N = regN "blood" ; + bone_N = regN "bone" ; + breast_N = regN "breast" ; + cloud_N = regN "cloud" ; + day_N = regN "day" ; + dust_N = regN "dust" ; + ear_N = regN "ear" ; + earth_N = regN "earth" ; + egg_N = regN "egg" ; + eye_N = regN "eye" ; + fat_N = regN "fat" ; + feather_N = regN "feather" ; + fingernail_N = regN "fingernail" ; + fire_N = regN "fire" ; + flower_N = regN "flower" ; + 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" ; + husband_N = genderN masculine (regN "husband") ; + 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 = genderN human (regN "person") ; + rain_N = regN "rain" ; + road_N = regN "road" ; + 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" ; + tooth_N = mk2N "tooth" "teeth" ; + wife_N = genderN feminine (mk2N "wife" "wives") ; + 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") ; + +-- other_A = regA "other" ; + } ; diff --git a/lib/resource-1.0/english/StructuralEng.gf b/lib/resource-1.0/english/StructuralEng.gf index fb4979ae3..bfd2ca287 100644 --- a/lib/resource-1.0/english/StructuralEng.gf +++ b/lib/resource-1.0/english/StructuralEng.gf @@ -30,6 +30,7 @@ concrete StructuralEng of Structural = CatEng ** every_Det = mkDeterminer Sg "every" ; everything_NP = regNP "everything" Sg ; everywhere_Adv = ss "everywhere" ; + few_Det = mkDeterminer Pl "few" ; first_Ord = ss "first" ; from_Prep = ss "from" ; he_Pron = mkNP "he" "him" "his" Sg P3 ; @@ -105,6 +106,7 @@ concrete StructuralEng of Structural = CatEng ** youPl_Pron = mkNP "you" "you" "your" Pl P2 ; youPol_Pron = mkNP "you" "you" "your" Sg P2 ; + oper mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> { s = table Number [x ; y] diff --git a/lib/resource-1.0/finnish/LexiconFin.gf b/lib/resource-1.0/finnish/LexiconFin.gf index 0bbe9d8b8..1d3cd997d 100644 --- a/lib/resource-1.0/finnish/LexiconFin.gf +++ b/lib/resource-1.0/finnish/LexiconFin.gf @@ -1,6 +1,6 @@ --# -path=.:prelude -concrete LexiconFin of Lexicon = CatFin ** open ParadigmsFin in { +concrete LexiconFin of Lexicon = CatFin ** open MorphoFin, ParadigmsFin in { flags optimize=values ; @@ -51,8 +51,8 @@ lin "lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" ; church_N = nLukko "kirkko" ; city_N = regN "kaupunki" ; - clean_A = regADeg "puhdas" ; - clever_A = regADeg "viisas" ; + clean_A = regA "puhdas" ; + clever_A = regA "viisas" ; close_V2 = dirV2 (regV "sulkea") ; coat_N = regN "takki" ; cold_A = mkADeg (nLukko "kylmä") "kylmempi" "kylmin" ; @@ -121,7 +121,8 @@ lin love_V2 = caseV2 (regV "rakastaa") partitive ; man_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen" "miehinä" "miehissä" "miesten" "miehiä" "miehiin" ; - married_A2 = mkA2 (mkA (nRae "avioitunut" "avioituneena")) (postPrep genitive "kanssa") ; + married_A2 = + mkA2 (mkA (nRae "avioitunut" "avioituneena")) (postPrep genitive "kanssa") ; meat_N = nLukko "liha" ; milk_N = nLukko "maito" ; moon_N = regN "kuu" ; @@ -149,7 +150,7 @@ lin radio_N = reg2N "radio" "radioita" ; rain_V0 = mkV0 (reg2V "sataa" "satoi") ; read_V2 = dirV2 (regV "lukea") ; - red_A = regADeg "punainen" ; + red_A = regA "punainen" ; religion_N = nLukko "uskonto" ; restaurant_N = nLukko "ravintola" ; river_N = nArpi "joki" ; @@ -172,7 +173,7 @@ lin shirt_N = nLukko "paita" ; shoe_N = nLukko "kenkä" ; shop_N = nLukko "kauppa" ; - short_A = regADeg "lyhyt" ; + short_A = regA "lyhyt" ; silver_N = regN "hopea" ; sister_N = nLukko "sisko" ; sleep_V = regV "nukkua" ; @@ -185,7 +186,7 @@ lin stone_N = nSylki "kivi" ; stove_N = reg3N "liesi" "lieden" "liesiä" ; student_N = reg2N "opiskelija" "opiskelijoita" ; - stupid_A = regADeg "tyhmä" ; + stupid_A = regA "tyhmä" ; sun_N = nLukko "aurinko" ; switch8off_V2 = dirV2 (regV "sammuttaa") ; --- switch8on_V2 = dirV2 (regV "sytyttää") ; --- @@ -194,8 +195,8 @@ lin teacher_N = nLukko "opettaja" ; teach_V2 = dirV2 (regV "opettaa") ; television_N = reg2N "televisio" "televisioita" ; - thick_A = regADeg "paksu" ; - thin_A = regADeg "ohut" ; + thick_A = regA "paksu" ; + thin_A = regA "ohut" ; train_N = nLukko "juna" ; travel_V = regV "matkustaa" ; tree_N = regN "puu" ; @@ -214,7 +215,7 @@ lin war_N = nLukko "sota" ; watch_V2 = dirV2 (regV "katsella") ; water_N = reg3N "vesi" "veden" "vesiä" ; - white_A = regADeg "valkoinen" ; + white_A = regA "valkoinen" ; window_N = reg2N "ikkuna" "ikkunoita" ; wine_N = regN "viini" ; win_V2 = dirV2 (regV "voittaa") ; @@ -222,7 +223,7 @@ lin wonder_VQ = mkVQ (regV "ihmetellä") ; wood_N = regN "puu" ; write_V2 = dirV2 (regV "kirjoittaa") ; - yellow_A = regADeg "keltainen" ; + yellow_A = regA "keltainen" ; young_A = mkADeg (nArpi "nuori") "nuorempi" "nuorin" ; do_V2 = dirV2 ( @@ -237,13 +238,137 @@ lin put_V2 = dirV2 (regV "panna") ; stop_V = regV "pysähtyä" ; jump_V = regV "hypätä" ; -{- - here_Adv = mkAdv "täällä" ; - here7to_Adv = mkAdv "tänne" ; - here7from_Adv = mkAdv "täältä" ; - there_Adv = mkAdv "siellä" ; --- tuolla - there7to_Adv = mkAdv "sinne" ; - there7from_Adv = mkAdv "sieltä" ; --} + left_Ord = mkOrd (regN "vasen") ; + right_Ord = mkOrd (regN "oikea") ; + far_Adv = mkAdv "kaukana" ; + correct_A = regA "oikea" ; + dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ; + dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ; + full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ; + heavy_A = regA "raskas" ; + near_A = regA "läheinen" ; + rotten_A = regA "mätä" ; + round_A = regA "pyöreä" ; + sharp_A = regA "terävä" ; + smooth_A = regA "sileä" ; + straight_A = mkADeg (regN "suora") "suorempi" "suorin" ; + wet_A = mkADeg (regN "märkä") "märempi" "märin" ; + wide_A = regA "leveä" ; + animal_N = reg3N "eläin" "eläimen" "eläimiä" ; + ashes_N = regN "tuhka" ; + back_N = regN "selkä" ; + bark_N = regN "kaarna" ; + belly_N = regN "vatsa" ; + blood_N = nMeri "veri" ; + bone_N = regN "luu" ; + breast_N = regN "rinta" ; + cloud_N = reg2N "pilvi" "pilviä" ; + day_N = regN "päivä" ; + dust_N = regN "pöly" ; + ear_N = regN "korva" ; + earth_N = regN "maa" ; + egg_N = regN "muna" ; + eye_N = regN "silmä" ; + fat_N = regN "rasva" ; + feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; + fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ; + fire_N = reg2N "tuli" "tulia" ; + flower_N = regN "kukka" ; + fog_N = regN "sumu" ; + foot_N = regN "jalka" ; + forest_N = regN "metsä" ; + grass_N = regN "ruoho" ; + guts_N = regN "sisälmys" ; --- suoli + hair_N = regN "hius" ; + hand_N = reg3N "käsi" "käden" "käsiä" ; + head_N = regN "pää" ; + heart_N = reg3N "sydän" "sydämen" "sydämiä" ; + horn_N = reg2N "sarvi" "sarvia" ; + husband_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen" + "miehinä" "miehissä" "miesten" "miehiä" "miehiin" ; + ice_N = regN "jää" ; + knee_N = reg2N "polvi" "polvia" ; + leaf_N = reg2N "lehti" "lehtiä" ; + leg_N = regN "jalka" ; --- sääri + liver_N = regN "maksa" ; + louse_N = regN "lude" ; + mouth_N = regN "suu" ; + name_N = reg2N "nimi" "nimiä" ; + neck_N = regN "niska" ; + night_N = regN "yö" ; + nose_N = regN "nenä" ; + person_N = regN "henkilö" ; + rain_N = regN "sade" ; + road_N = regN "tie" ; + root_N = reg2N "juuri" "juuria" ; + rope_N = reg3N "köysi" "köyden" "köysiä" ; + salt_N = regN "suola" ; + sand_N = regN "hiekka" ; + seed_N = regN "siemen" ; + skin_N = regN "nahka" ; + sky_N = reg3N "taivas" "taivaan" "taivaita" ; + smoke_N = regN "savu" ; + snow_N = sgpartN (nMeri "lumi") "lunta" ; + stick_N = regN "keppi" ; + tail_N = regN "häntä" ; + tongue_N = reg2N "kieli" "kieliä" ; + tooth_N = regN "hammas" ; + wife_N = regN "vaimo" ; + wind_N = reg2N "tuuli" "tuulia" ; + wing_N = reg2N "siipi" "siipiä" ; + worm_N = regN "mato" ; + year_N = reg3N "vuosi" "vuoden" "vuosia" ; + bite_V2 = dirV2 (regV "purra") ; + blow_V = regV "puhaltaa" ; + burn_V = regV "palaa" ; + count_V2 = dirV2 (regV "laskea") ; + cut_V2 = dirV2 (reg2V "leikata" "leikkasi") ; + dig_V = regV "kaivaa" ; + fall_V = reg3V "pudota" "putoan" "putosi" ; + fear_V2 = dirV2 (reg3V "pelätä" "pelkään" "pelkäsi") ; + fight_V2 = dirV2 (regV "taistella") ; + float_V = regV "kellua" ; + flow_V = reg3V "virrata" "virtaan" "virtasi" ; + fly_V = regV "lentää" ; + freeze_V = regV "jäätyä" ; + give_V3 = dirdirV3 (regV "antaa") ; + hit_V2 = dirV2 (regV "lyödä") ; + hold_V2 = dirV2 (regV "pitää") ; + hunt_V2 = dirV2 (regV "metsästää") ; + kill_V2 = dirV2 (regV "tappaa") ; + laugh_V = reg3V "nauraa" "nauran" "nauroi" ; + lie_V = reg3V "maata" "makaan" "makasi" ; + play_V = regV "pelata" ; + pull_V2 = dirV2 (regV "vetää") ; + push_V2 = dirV2 (regV "työntää") ; + rub_V2 = dirV2 (regV "hieroa") ; + scratch_V2 = dirV2 (regV "raapia") ; + sew_V = regV "kylvää" ; + sing_V = regV "laulaa" ; + sit_V = regV "istua" ; + smell_V = reg2V "haistaa" "haistoi" ; + spit_V = regV "sylkeä" ; + split_V2 = dirV2 (reg2V "halkaista" "halkaisi") ; + squeeze_V2 = dirV2 (regV "puristaa") ; + stab_V2 = dirV2 (regV "pistää") ; + stand_V = mkV "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään" + "seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät + suck_V2 = dirV2 (regV "imeä") ; + swell_V = mkV "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan" + "turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ; + swim_V = reg3V "uida" "uin" "ui" ; + think_V = reg3V "ajatella" "ajattelen" "ajatteli" ; + throw_V2 = dirV2 (regV "heittää") ; + tie_V2 = dirV2 (regV "sitoa") ; + turn_V = regV "kääntyä" ; + vomit_V = regV "oksentaa" ; + wash_V2 = dirV2 (regV "pestä") ; + wipe_V2 = dirV2 (regV "pyyhkiä") ; + + breathe_V = regV "hengittää" ; + + oper + mkOrd : N -> Ord ; + mkOrd x = {s = \\n,c => x.s ! NCase n c; lock_Ord = <> } ; } ; diff --git a/lib/resource-1.0/finnish/ParadigmsFin.gf b/lib/resource-1.0/finnish/ParadigmsFin.gf index 1f7d8bfa9..0120d62e8 100644 --- a/lib/resource-1.0/finnish/ParadigmsFin.gf +++ b/lib/resource-1.0/finnish/ParadigmsFin.gf @@ -224,7 +224,7 @@ oper -- The regular adjectives are based on $regN$ in the positive. - regADeg : (punainen : Str) -> A ; + regA : (punainen : Str) -> A ; --2 Verbs @@ -490,13 +490,15 @@ reg3N = \vesi,veden,vesi in regAdjective x kivempaa kivinta ** {lock_A = <>} ; - regADeg suuri = + regA suuri = let suur = regN suuri in mkADeg suur (init (suur.s ! NCase Sg Gen) + "mpi") (init (suur.s ! NCase Pl Ess)) ; + regADeg = regA ; -- for bw compat + mkV a b c d e f g h i j k l = mkVerb a b c d e f g h i j k l ** {sc = NPCase Nom ; lock_V = <>} ; diff --git a/lib/resource-1.0/french/LexiconFre.gf b/lib/resource-1.0/french/LexiconFre.gf index 04d57e91d..0467041f3 100644 --- a/lib/resource-1.0/french/LexiconFre.gf +++ b/lib/resource-1.0/french/LexiconFre.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconFre of Lexicon = CatFre ** open ParadigmsFre, IrregFre in { +concrete LexiconFre of Lexicon = CatFre ** + open MorphoFre, ParadigmsFre, IrregFre in { flags optimize=values ; @@ -71,6 +72,7 @@ lin factory_N = regGenN "usine" feminine ; father_N2 = deN2 (regGenN "père" masculine) ; fear_VS = mkVS (v2V craindre_V2) ; + fear_V2 = dirV2 (v2V craindre_V2) ; find_V2 = dirV2 (regV "trouver") ; fish_N = regGenN "poisson" masculine ; floor_N = regGenN "plancher" masculine ; @@ -224,4 +226,127 @@ lin stop_V = reflV (regV "arrêter") ; jump_V = regV "sauter" ; + left_Ord = mkOrd (regA "gauche") ; + right_Ord = mkOrd (regA "droite") ; + far_Adv = mkAdv "loin" ; + correct_A = regA "correct" ; + dry_A = (mkA "sec" "sèche" "secs" "sèches") ; + dull_A = regA "émoussé" ; + full_A = regA "plein" ; + heavy_A = regA "lourd" ; + near_A = regA "proche" ; + rotten_A = regA "pourri" ; + round_A = regA "rond" ; + sharp_A = regA "tranchant" ; + smooth_A = regA "lisse" ; + straight_A = regA "droite" ; + wet_A = regA "mouillé" ; + wide_A = regA "large" ; + animal_N = regN "animal" ; + ashes_N = regGenN "cendre" masculine ; + back_N = regN "dos" ; + bark_N = regN "écorce" ; + belly_N = regGenN "ventre" masculine ; + blood_N = regN "sang" ; + bone_N = regN "os" ; + breast_N = regN "sein" ; --- poitrine + cloud_N = regGenN "nuage" masculine ; + day_N = regN "jour" ; + dust_N = regN "poussière" ; + ear_N = regN "oreille" ; + earth_N = regN "terre" ; + egg_N = regN "oeuf" ; + eye_N = mkN "oeil" "yeux" masculine ; + fat_N = regN "graisse" ; + feather_N = regN "plume" ; + fingernail_N = regGenN "ongle" masculine ; + fire_N = regN "feu" ; + flower_N = regGenN "fleur" feminine ; + fog_N = regN "brouillard" ; + foot_N = regN "pied" ; + forest_N = regGenN "forêt" feminine ; + grass_N = regN "herbe" ; + guts_N = regN "entraille" ; + hair_N = regN "cheveu" ; + hand_N = regGenN "main" feminine ; + head_N = regN "tête" ; + heart_N = regN "coeur" ; + horn_N = regGenN "corne" masculine ; + husband_N = regN "mari" ; + ice_N = regN "glace" ; + knee_N = regN "genou" ; + leaf_N = regN "feuille" ; + leg_N = regN "jambe" ; + liver_N = regGenN "foie" masculine ; + louse_N = regN "pou" ; + mouth_N = regN "bouche" ; + name_N = regN "nom" ; + neck_N = mkN "cou" "cous" masculine ; + night_N = regGenN "nuit" feminine ; + nose_N = regN "nez" ; + person_N = regN "personne" ; + rain_N = regN "pluie" ; + road_N = regN "route" ; + root_N = regN "racine" ; + rope_N = regN "corde" ; + salt_N = regN "sel" ; + sand_N = regGenN "sable" masculine ; + seed_N = regN "graine" ; + skin_N = regN "peau" ; + sky_N = mkN "ciel" "cieux" masculine ; + smoke_N = regN "fumée" ; + snow_N = regN "neige" ; + stick_N = regN "bâton" ; + tail_N = regN "queue" ; + tongue_N = regN "langue" ; + tooth_N = regGenN "dent" feminine ; + wife_N = regN "femme" ; + wind_N = regN "vent" ; + wing_N = regN "aile" ; + worm_N = regN "ver" ; + year_N = regN "an" ; --- année + bite_V2 = mordre_V2 ; + blow_V = regV "souffler" ; + breathe_V = regV "respirer" ; + burn_V = regV "brûler" ; + count_V2 = dirV2 (regV "conter") ; + cut_V2 = dirV2 (regV "tailler") ; + dig_V = regV "creuser" ; + fall_V = regV "tomber" ; + fight_V2 = dirV2 (regV "lutter") ; + float_V = regV "flotter" ; + flow_V = regV "couler" ; + fly_V = regV "voler" ; + freeze_V = reg3V "geler" "gèle" "gèlera" ; + give_V3 = dirdirV3 (regV "donner") ; + hit_V2 = dirV2 (regV "frapper") ; + hunt_V2 = dirV2 (regV "chasser") ; + kill_V2 = dirV2 (regV "tuer") ; + laugh_V = rire_V2 ; + lie_V = reflV étendre_V2 ; + play_V = regV "jouer" ; + pull_V2 = dirV2 (regV "tirer") ; + push_V2 = dirV2 (regV "pousser") ; + rub_V2 = dirV2 (regV "frotter") ; + scratch_V2 = dirV2 (regV "gratter") ; + sew_V = coudre_V2 ; + sing_V = regV "chanter" ; + sit_V = reflV asseoir_V2 ; + smell_V = v2V ( sentir_V2) ; + spit_V = regV "cracher" ; + squeeze_V2 = dirV2 (regV "serrer") ; + stab_V2 = dirV2 (regV "poignarder") ; + stand_V = reflV (reg3V "lever" "lève" "lèvera") ; + suck_V2 = dirV2 (regV "sucer") ; + swell_V = regV "gonfler" ; + swim_V = regV "nager" ; + think_V = regV "penser" ; + throw_V2 = dirV2 (regV "jeter") ; + tie_V2 = dirV2 (regV "lier") ; + turn_V = regV "tourner" ; + vomit_V = regV "vomir" ; + wash_V2 = dirV2 (regV "laver") ; + wipe_V2 = dirV2 (regV "essuyer") ; + + } ; diff --git a/lib/resource-1.0/german/LexiconGer.gf b/lib/resource-1.0/german/LexiconGer.gf index 1193b00a2..d6051e699 100644 --- a/lib/resource-1.0/german/LexiconGer.gf +++ b/lib/resource-1.0/german/LexiconGer.gf @@ -202,7 +202,8 @@ lin tree_N = reg2N "Baum" "Bäume" masculine ; ---- trousers_N = regN "trousers" ; ---- pl t ! ugly_A = regA "häßlich" ; - understand_V2 = dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; + understand_V2 = + dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; university_N = reg2N "Universitet" "Universiteten" feminine ; village_N = reg2N "Dorf" "Dörfer" neuter ; wait_V2 = mkV2 (regV "warten") (mkPrep "auf" accusative) ; @@ -222,4 +223,136 @@ lin 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! + far_Adv = mkAdv "weit" ; + correct_A = (regA "recht") ; + dry_A = regA "trocken" ; + dull_A = regA "dull" ; + full_A = regA "voll" ; + heavy_A = regA "schwer" ; + near_A = regA "nahe" ; + rotten_A = (regA "rotten") ; + round_A = regA "rund" ; + sharp_A = regA "scharf" ; + smooth_A = regA "eben" ; + 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" ; + blood_N = regN "Blut" ; + bone_N = regN "Bein" ; + breast_N = regN "Brust" ; + cloud_N = regN "Wolk" ; + day_N = regN "Tag" ; + dust_N = regN "dust" ; + ear_N = regN "Ohre" ; + earth_N = regN "Erde" ; + egg_N = regN "Ei" ; + eye_N = regN "Auge" ; + fat_N = regN "dick" ; + feather_N = regN "feather" ; + fingernail_N = regN "Nagel" ; + 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" ; + 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" ; + 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") ; + +-} + } ; diff --git a/lib/resource-1.0/italian/LexiconIta.gf b/lib/resource-1.0/italian/LexiconIta.gf index 0676cd975..785771824 100644 --- a/lib/resource-1.0/italian/LexiconIta.gf +++ b/lib/resource-1.0/italian/LexiconIta.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconIta of Lexicon = CatIta ** open ParadigmsIta, BeschIta in { +concrete LexiconIta of Lexicon = CatIta ** open + MorphoIta, ParadigmsIta, BeschIta in { flags optimize=values ; @@ -223,12 +224,130 @@ lin put_V2 = dirV2 (verboV (mettere_57 "mettere")) ; stop_V = reflV (regV "fermare") ; jump_V = regV "saltare" ; -{- - here_Adv = mkAdv "quì" ; - here7to_Adv = mkAdv "quì" ; - here7from_Adv = mkAdv ["da quì"] ; - there_Adv = mkAdv "lì" ; - there7to_Adv = mkAdv "lì" ; - there7from_Adv = mkAdv ["da lì"] ; --} + + left_Ord = mkOrd (regA "sinistro") ; + right_Ord = mkOrd (regA "destro") ; + far_Adv = mkAdv "lontano" ; + correct_A = regA "corretto" ; + dry_A = regA "secco" ; + dull_A = regA "noioso" ; + full_A = regA "pieno" ; + heavy_A = regA "pesante" ; + near_A = regA "vicino" ; + rotten_A = regA "marcio" ; + round_A = regA "rotondo" ; + sharp_A = regA "aguzzo" ; + smooth_A = regA "liscio" ; + straight_A = regA "diretto" ; + wet_A = regA "bagnato" ; + wide_A = regA "largo" ; + animal_N = regN "animale" ; + ashes_N = regN "cenere" ; + back_N = regN "schiena" ; + bark_N = regN "corteccia" ; + belly_N = regN "pancia" ; + blood_N = regN "sangue" ; + bone_N = regN "osso" ; + breast_N = regN "seno" ; + cloud_N = regN "nuvola" ; + day_N = regN "giorno" ; + dust_N = regN "polvere" ; + ear_N = regN "orecchio" ; + earth_N = regN "terra" ; + egg_N = mkN "uovo" "uova" masculine ; -- fem in Pl + eye_N = regN "occhio" ; + fat_N = regN "grasso" ; + feather_N = regN "piuma" ; + fingernail_N = regN "unghia" ; + fire_N = regN "fuoco" ; + flower_N = regN "fiore" ; + fog_N = regN "nebbia" ; + foot_N = regN "piede" ; + forest_N = regN "bosco" ; + grass_N = regN "erba" ; + guts_N = regN "intestino" ; + hair_N = regN "capello" ; + hand_N = femN (regN "mano") ; + head_N = regN "testa" ; + heart_N = regN "cuore" ; + horn_N = regN "corno" ; + husband_N = regN "marito" ; + ice_N = regN "ghiaccio" ; + knee_N = regN "ginocchio" ; + leaf_N = regN "foglia" ; + leg_N = regN "gamba" ; + liver_N = regN "fegato" ; + louse_N = regN "pidocchio" ; + mouth_N = regN "bocca" ; + name_N = regN "nome" ; + neck_N = regN "collo" ; + night_N = femN (regN "notte") ; + nose_N = regN "naso" ; + person_N = regN "persona" ; + rain_N = regN "pioggia" ; + road_N = regN "strada" ; + root_N = femN (regN "radice") ; + rope_N = regN "corda" ; + salt_N = regN "sale" ; + sand_N = regN "sabbia" ; + seed_N = regN "seme" ; + skin_N = femN (regN "pelle") ; + sky_N = regN "cielo" ; + smoke_N = regN "fumo" ; + snow_N = femN (regN "neve") ; + stick_N = regN "bastone" ; + tail_N = regN "coda" ; + tongue_N = regN "lingua" ; + tooth_N = regN "dente" ; + wife_N = regN "donna" ; + wind_N = regN "vento" ; + wing_N = regN "ala" ; + worm_N = regN "verme" ; + year_N = regN "anno" ; + bite_V2 = dirV2 (verboV (esplodere_51 "mordere")) ; + blow_V = regV "soffiare" ; + burn_V = regV "bruciare" ; + count_V2 = dirV2 (regV "contare") ; + cut_V2 = dirV2 (regV "tagliare") ; + dig_V = regV "scavare" ; + fall_V = essereV (verboV (cadere_28 "cadere")) ; + fear_V2 = dirV2 (verboV (temere_20 "temere")) ; + fight_V2 = dirV2 (regV "lottare") ; + float_V = regV "galleggiare" ; + flow_V = verboV (finire_100 "fluire") ; + fly_V = regV "volare" ; + freeze_V = regV "gelare" ; + give_V3 = dirdirV3 (verboV (dare_15 "dare")) ; + hit_V2 = dirV2 (regV "colpire") ; + hold_V2 = dirV2 (verboV (venire_110 "tenire")) ; + hunt_V2 = dirV2 (regV "cacciare") ; + kill_V2 = dirV2 (verboV (ridere_74 "uccidere")) ; + laugh_V = verboV (ridere_74 "ridere") ; + lie_V = verboV (piacere_64 "giacere") ; + play_V = regV "giocare" ; + pull_V2 = dirV2 (regV "tirare") ; + push_V2 = dirV2 (verboV (cingere_31 "spingere")) ; + rub_V2 = dirV2 (regV "strofinare") ; + scratch_V2 = dirV2 (regV "graffiare") ; + sew_V = verboV (cucire_103 "cucire") ; + sing_V = regV "cantare" ; + sit_V = reflV (verboV (sedere_84 "sedere")) ; + smell_V = verboV (sentire_99 "sentire") ; + spit_V = regV "sputare" ; + split_V2 = dirV2 (verboV (ridere_74 "dividere")) ; + squeeze_V2 = dirV2 (verboV (temere_20 "spremere")) ; + stab_V2 = dirV2 (regV "pugnalare") ; + stand_V = verboV (stare_16 "stare") ; ---- in piedi + suck_V2 = dirV2 (regV "succhiare") ; + swell_V = regV "gonfiare" ; + swim_V = regV "nuotare" ; + think_V = regV "pensare" ; + throw_V2 = dirV2 (regV "gettare") ; + tie_V2 = dirV2 (regV "legare") ; + turn_V = regV "tornare" ; + vomit_V = regV "vomitare" ; + wash_V2 = dirV2 (regV "lavare") ; + wipe_V2 = dirV2 (regV "asciugare") ; + breathe_V = (regV "respirare") ; + } ; diff --git a/lib/resource-1.0/minimal/MkLex.hs b/lib/resource-1.0/minimal/MkLex.hs index 3260843d5..94525126f 100644 --- a/lib/resource-1.0/minimal/MkLex.hs +++ b/lib/resource-1.0/minimal/MkLex.hs @@ -1,12 +1,26 @@ module MkLexicon where import Char +import qualified Data.Set as S + +-- apply function o to each line in file f allLines o f = do s <- readFile f mapM_ (putStrLn . o) (filter noComm (lines s)) +-- take each line in file k as a key, and choose those lines in file f +-- that match any of the keys (i.e. whose first word matches it) +chooseKeys k f = do + keys <- readFile k >>= return . (S.fromList . lines) + let choose line = case words line of + w:_ -> S.member w keys + _ -> False + old <- readFile f >>= return . lines + mapM_ (putStrLn . drop 2) $ filter choose old -- to remove extra indent + + -- discard comments and empty lines noComm s = case s of @@ -141,3 +155,10 @@ getAllThose sought given = do gi <- readFile given let so = [w | l <- lines s, w:_ <- [words l]] mapM_ putStrLn $ allThose so $ lines gi + + +-- Swadesh 7/3/2006: replace string defs with f = f ; + +reuseLex line = case words line of + w : "=" : _ | elem '"' line -> " " ++ w ++ " = " ++ w ++ " ;" + _ -> line diff --git a/lib/resource-1.0/norwegian/LexiconNor.gf b/lib/resource-1.0/norwegian/LexiconNor.gf index 9dd4dd0b8..ed9d351c1 100644 --- a/lib/resource-1.0/norwegian/LexiconNor.gf +++ b/lib/resource-1.0/norwegian/LexiconNor.gf @@ -1,6 +1,7 @@ --# -path=.:../scandinavian:../common:../abstract:../../prelude -concrete LexiconNor of Lexicon = CatNor ** open ParadigmsNor, IrregNor in { +concrete LexiconNor of Lexicon = CatNor ** + open Prelude, ParadigmsNor, IrregNor in { flags startcat=Phr ; lexer=textlit ; unlexer=text ; optimize=values ; @@ -221,14 +222,133 @@ lin put_V2 = mkV2 (irregV "sette" "satte" "satt") [] ; stop_V = regV "stanse" ; jump_V = regV "hoppe" ; -{- - here_Adv = mkAdv "her" ; - here7to_Adv = mkAdv "hit" ; - here7from_Adv = mkAdv ["herfra"] ; - there_Adv = mkAdv "der" ; - there7to_Adv = mkAdv "dit" ; - there7from_Adv = mkAdv ["derfra"] ; --} + + left_Ord = {s = "venstre" ; isDet = True} ; + right_Ord = {s = "høyre" ; isDet = True} ; + far_Adv = mkAdv "fjern" ; + correct_A = regA "riktig" ; + dry_A = mk2A "tørr" "tørt" ; + dull_A = regA "sløv" ; + full_A = regA "full" ; + heavy_A = irregADeg "tung" "tyngre" "tyngst" ; + near_A = mkADeg "nære" "nære" "nære" "nærmere" "nærmest" ; + rotten_A = mk3ADeg "råtten" "råttent" "råtne" ; + round_A = regA "rund" ; + sharp_A = mk2A "kvass" "kvast" ; + smooth_A = mk2A "slett" "slett" ; + straight_A = regA "rak" ; + wet_A = regA "våt" ; + wide_A = regA "bred" ; + animal_N = mk2N "dyr" "dyret" ; + ashes_N = mk2N "aske" "aska" ; + back_N = mk2N "rygg" "ryggen" ; + bark_N = mk2N "bark" "barken" ; + belly_N = mk2N "mage" "magen" ; + blood_N = mk2N "blod" "blodet" ; + bone_N = mk2N "bein" "beinet" ; + breast_N = mk2N "bryst" "brystet" ; + cloud_N = mk2N "sky" "skya" ; + day_N = mk2N "dag" "dagen" ; + dust_N = mk2N "støv" "støvet" ; + ear_N = mk2N "øre" "øret" ; + earth_N = mk2N "jord" "jorda" ; + egg_N = mk2N "egg" "egget" ; + eye_N = mkN "øye" "øyet" "øyne" "øynene" ; + fat_N = mk2N "fett" "fettet" ; + feather_N = mk2N "fjør" "fjøra" ; + fingernail_N = mk2N "negl" "neglen" ; + fire_N = mk2N "ild" "ilden" ; + flower_N = mk2N "blomst" "blomsten" ; + fog_N = mk2N "tåke" "tåka" ; + foot_N = mk2N "fot" "føtter" ; + forest_N = mk2N "skog" "skogen" ; + grass_N = mk2N "gras" "graset" ; + guts_N = mk2N "tarm" "tarmen" ; ---- involler + hair_N = mk2N "hår" "håret" ; + hand_N = mk2N "hånd" "hånden" ; + head_N = mk2N "hode" "hodet" ; + heart_N = mk2N "hjerte" "hjertet" ; + horn_N = mk2N "horn" "hornet" ; + husband_N = mkN "ektemann" "ektemannen" "ektemenn" "ektemennen" ; + ice_N = mk2N "is" "isen" ; + knee_N = mkN "kne" "kneet" "knær" "knæne" ; + leaf_N = mk2N "løv" "løvet" ; + leg_N = mk2N "bein" "beinet" ; + liver_N = mkN "lever" "leveren" "levrer" "levrene" ; + louse_N = mk2N "lus" "lusa" ; + mouth_N = mk2N "munn" "munnen" ; + name_N = mk2N "navn" "navnet" ; + neck_N = mk2N "nakke" "nakken" ; + night_N = mkN "natt" "natta" "netter" "nettene" ; + nose_N = mk2N "nese" "nesen" ; + person_N = mk2N "person" "personen" ; + rain_N = mk2N "regn" "regnet" ; + road_N = mk2N "vei" "veien" ; + root_N = mkN "rot" "rota" "røtter" "røttene" ; + rope_N = mk2N "tau" "tauet" ; + salt_N = mk2N "salt" "saltet" ; + sand_N = mk2N "sand" "sanden" ; + seed_N = mk2N "frø" "frøet" ; + skin_N = mk2N "skinn" "skinnet" ; + sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; + smoke_N = mk2N "røyk" "røyken" ; + snow_N = mk2N "snø" "snøen" ; + stick_N = mk2N "pinne" "pinnen" ; + tail_N = mk2N "hale" "halen" ; + tongue_N = mk2N "tunge" "tunga" ; + tooth_N = mkN "tann" "tanna" "tenner" "tennene" ; + wife_N = mk2N "kone" "kona" ; + wind_N = mk2N "vind" "vinden" ; + wing_N = mk2N "vinge" "vingen" ; + worm_N = mk2N "mark" "marken" ; + year_N = mk2N "år" "året" ; + bite_V2 = dirV2 (IrregNor.bite_V) ; + blow_V = mk2V "blåse" "blåste" ; + burn_V = brenne_V ; + count_V2 = dirV2 (regV "regne") ; + cut_V2 = dirV2 (skjære_V) ; + dig_V = mk2V "grave" "gravde" ; + fall_V = falle_V ; + fear_V2 = dirV2 (regV "frykte") ; + fight_V2 = dirV2 (slåss_V) ; + float_V = flyte_V ; + flow_V = renne_V ; + fly_V = fly_V ; + freeze_V = fryse_V ; + give_V3 = dirdirV3 gi_V ; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (holde_V) ; + hunt_V2 = dirV2 (regV "jakte") ; + kill_V2 = dirV2 (mk2V "drepe" "drepte") ; + laugh_V = mkV "le" "ler" "les" "lo" "ledd" "le" ; + lie_V = ligge_V ; + play_V = mk2V "leke" "lekte" ; + pull_V2 = dirV2 (dra_V) ; + push_V2 = dirV2 (irregV "skyve" "skjøv" "skjøvet") ; + rub_V2 = dirV2 (gni_V) ; + scratch_V2 = dirV2 (regV "klø") ; + sew_V = mk2V "sy" "sydde" ; + sing_V = synge_V ; + sit_V = sitte_V ; + smell_V = regV "lukte" ; + spit_V = regV "spytte" ; + split_V2 = dirV2 (mk2V "kløyve" "kløyvde") ; + squeeze_V2 = dirV2 (mk2V "klemme" "klemte") ; + stab_V2 = dirV2 (stikke_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suge_V) ; + swell_V = partV (regV "hovne") "opp" ; + swim_V = regV "simme" ; + think_V = mk2V "tenke" "tenkte" ; + throw_V2 = dirV2 (regV "kaste") ; + tie_V2 = dirV2 (regV "knytte") ; + turn_V = mk2V "vende" "vendte" ; + vomit_V = partV (regV "kaste") "opp" ; + wash_V2 = dirV2 (regV "vaske") ; + wipe_V2 = dirV2 (regV "tørke") ; + breathe_V = regV "puste" ; + + } ; -- a" -> e" 86 diff --git a/lib/resource-1.0/romance/CommonRomance.gf b/lib/resource-1.0/romance/CommonRomance.gf index 8ae45774e..1b5769be2 100644 --- a/lib/resource-1.0/romance/CommonRomance.gf +++ b/lib/resource-1.0/romance/CommonRomance.gf @@ -168,6 +168,10 @@ oper vpAgrNone : VPAgr = VPAgrClit (aagr Masc Sg) ; + oper + mkOrd : {s : Degree => AForm => Str} -> {s : AAgr => Str} ; + mkOrd x = {s = \\ag => x.s ! Posit ! AF ag.g ag.n} ; + param VPAgr = VPAgrSubj -- elle est partie, elle s'est vue @@ -189,5 +193,6 @@ oper ext : Polarity => Str ; -- que je dors / que je dorme } ; + } diff --git a/lib/resource-1.0/spanish/LexiconSpa.gf b/lib/resource-1.0/spanish/LexiconSpa.gf index bb01b102a..659fd8237 100644 --- a/lib/resource-1.0/spanish/LexiconSpa.gf +++ b/lib/resource-1.0/spanish/LexiconSpa.gf @@ -1,6 +1,7 @@ --# -path=.:../romance:../common:../abstract:../../prelude -concrete LexiconSpa of Lexicon = CatSpa ** open ParadigmsSpa, BeschSpa in { +concrete LexiconSpa of Lexicon = CatSpa ** open + MorphoSpa, ParadigmsSpa, BeschSpa in { flags optimize=values ; @@ -222,4 +223,130 @@ lin stop_V = regV "parar" ; jump_V = regV "saltar" ; + left_Ord = mkOrd (regA "izquierda") ; + right_Ord = mkOrd (regA "derecha") ; + far_Adv = mkAdv "lejos" ; ----? + correct_A = regA "correcto" ; + dry_A = regA "seco" ; + dull_A = regA "desafilado" ; + full_A = regA "lleno" ; + heavy_A = regA "pesado" ; + near_A = regA "cerca" ; + rotten_A = regA "podrido" ; + round_A = regA "redondo" ; + sharp_A = regA "filoso" ; -- afilado, puntiagudo + smooth_A = regA "liso" ; -- suave + straight_A = regA "directo" ; + wet_A = regA "mojado" ; + wide_A = regA "ancho" ; -- extenso + animal_N = regN "animal" ; -- masc (sometimes fem when adj) + ashes_N = regN "ceniza" ; + back_N = regN "espalda" ; + bark_N = regN "corteza" ; + belly_N = regN "panza" ; -- barriga + blood_N = femN (regN "sangre") ; + bone_N = regN "hueso" ; + breast_N = regN "seno" ; -- pecho + cloud_N = femN (regN "nube") ; + day_N = mascN (regN "día") ; + dust_N = regN "polvo" ; + ear_N = regN "oreja" ; + earth_N = regN "tierra" ; + egg_N = regN "huevo" ; + eye_N = regN "ojo" ; + fat_N = regN "grasa" ; + feather_N = regN "pluma" ; + fingernail_N = regN "uña" ; + fire_N = regN "fuego" ; + flower_N = femN (regN "flor") ; + fog_N = regN "niebla" ; + foot_N = regN "pie" ; + forest_N = regN "bosque" ; + grass_N = regN "pasto" ; -- hierba, césped (masc) + guts_N = regN "tripa" ; -- gut=intestino ---- pl.t. tripas + hair_N = regN "cabello" ; -- pelo + hand_N = femN (regN "mano") ; + head_N = regN "cabeza" ; + heart_N = mkN "corazón" "corazones" masculine ; + horn_N = regN "cuerno" ; + husband_N = regN "marido" ; -- esposo + ice_N = regN "hielo" ; + knee_N = regN "rodilla" ; + leaf_N = regN "hoja" ; + leg_N = regN "pierna" ; + liver_N = regN "hígado" ; + louse_N = regN "piojo" ; + mouth_N = regN "boca" ; + name_N = regN "nombre" ; + neck_N = regN "cuello" ; + night_N = femN (regN "noche") ; + nose_N = femN (regN "nariz") ; + person_N = regN "persona" ; + rain_N = regN "lluvia" ; + road_N = femN (regN "calle") ; -- camino + root_N = femN (regN "raíz") ; + rope_N = regN "cuerda" ; + salt_N = femN (regN "sal") ; + sand_N = regN "arena" ; + seed_N = regN "semilla" ; + skin_N = femN (regN "piel") ; -- fem + sky_N = regN "cielo" ; + smoke_N = regN "humo" ; + snow_N = femN (regN "nieve") ; -- fem + stick_N = mkN "bastón" "bastones" masculine ; -- palo + tail_N = regN "cola" ; + tongue_N = regN "lengua" ; + tooth_N = regN "diente" ; + wife_N = regN "esposa" ; + wind_N = regN "viento" ; + wing_N = regN "ala" ; + worm_N = regN "gusano" ; -- lombriz (fem) + year_N = regN "año" ; + bite_V2 = dirV2 (verboV (morder_50b "morder")) ; + blow_V = regV "soplar" ; + burn_V = regV "quemar" ; + count_V2 = dirV2 (verboV (contar_38b "contar")) ; + cut_V2 = dirV2 (regV "cortar") ; + dig_V = regV "escarbar" ; + fall_V = verboV (caer_20 "caer") ; + fear_V2 = dirV2 (regV "temer") ; + fight_V2 = dirV2 (regV "pelear") ; + float_V = regV "flotar" ; + flow_V = verboV (influir_45 "fluir") ; -- circular + fly_V = regV "volar" ; + freeze_V = regV "congelar" ; + give_V3 = dirdirV3 (verboV (dar_27 "dar")) ; + hit_V2 = dirV2 (regV "golpear") ; + hold_V2 = dirV2 (verboV (tener_4 "tener")) ; + hunt_V2 = dirV2 (regV "cazar") ; + kill_V2 = dirV2 (regV "matar") ; + laugh_V = regV "reir" ; ----V reír_67 + lie_V = reflV (regV "acostar") ; -- "acostarse" + play_V = regV "jugar" ; + pull_V2 = dirV2 (regV "tirar") ; + push_V2 = dirV2 (regV "empujar") ; + rub_V2 = dirV2 (regV "resfregar") ; + scratch_V2 = dirV2 (regV "rascar") ; + sew_V = regV "coser" ; + sing_V = regV "cantar" ; + sit_V = reflV (regV "sentar") ; + smell_V = verboV (oler_52 "oler") ; + spit_V = regV "escupir" ; + split_V2 = dirV2 (regV "separar") ; -- dividir,) ; + squeeze_V2 = dirV2 (regV "exprimir") ; + stab_V2 = dirV2 (regV "apuñalar") ; + stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ; + suck_V2 = dirV2 (regV "chupar") ; + swell_V = regV "tragar" ; + swim_V = regV "nadar" ; + think_V = regV "pensar" ; + throw_V2 = dirV2 (regV "tirar") ; + tie_V2 = dirV2 (regV "atar") ; + turn_V = regV "doblar" ; + vomit_V = regV "vomitar" ; + wash_V2 = dirV2 (regV "lavar") ; + wipe_V2 = dirV2 (regV "secar") ; + breathe_V = (regV "respirar") ; + + } ; diff --git a/lib/resource-1.0/swedish/LexiconSwe.gf b/lib/resource-1.0/swedish/LexiconSwe.gf index 2b8087c7f..d0cbe996c 100644 --- a/lib/resource-1.0/swedish/LexiconSwe.gf +++ b/lib/resource-1.0/swedish/LexiconSwe.gf @@ -1,6 +1,7 @@ --# -path=.:../scandinavian:../common:../abstract:../../prelude -concrete LexiconSwe of Lexicon = CatSwe ** open ParadigmsSwe, IrregSwe in { +concrete LexiconSwe of Lexicon = CatSwe ** + open Prelude, ParadigmsSwe, IrregSwe in { flags optimize=values ; @@ -223,4 +224,130 @@ lin stop_V = regV "stanna" ; jump_V = regV "hoppa" ; + left_Ord = {s = "vänstra" ; isDet = True} ; + right_Ord = {s = "högra" ; isDet = True} ; + far_Adv = mkAdv "långt" ; + correct_A = regA "riktig" ; + dry_A = regA "torr" ; + dull_A = mk2A "slö" "slött"; + full_A = regA "full" ; + heavy_A = irregA "tung" "tyngre" "tyngst" ; + near_A = mkA "nära" "nära" "nära" "nära" "närmare" "närmast" "närmaste" ; + rotten_A = mk3A "rutten" "ruttet" "ruttna" ; + round_A = regA "rund" ; + sharp_A = regA "vass" ; + smooth_A = regA "slät" ; + straight_A = regA "rak" ; + wet_A = regA "våt" ; + wide_A = mk2A "bred" "brett" ; + animal_N = mk2N "djur" "djur" ; + ashes_N = mk2N "aska" "askor" ; + back_N = mk2N "rygg" "ryggar" ; + bark_N = mk2N "bark" "barkar" ; + belly_N = mk2N "mage" "magar" ; + blood_N = mk2N "blod" "blod" ; + bone_N = mk2N "ben" "ben" ; + breast_N = mk2N "bröst" "bröst" ; + cloud_N = mk2N "moln" "moln" ; + day_N = mk2N "dag" "dagar" ; + dust_N = mk2N "damm" "damm" ; + ear_N = mkN "öra" "örat" "öron" "öronen" ; + earth_N = mk2N "jord" "jordar" ; + egg_N = mk2N "ägg" "ägg" ; + eye_N = mkN "öga" "ögat" "ögon" "ögonen" ; + fat_N = mk2N "fett" "fett" ; + feather_N = mk2N "fjäder" "fjädrar" ; + fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna"; + fire_N = mk2N "eld" "eldar" ; + flower_N = mk2N "blomma" "blommor" ; + fog_N = mk2N "dimma" "dimmor" ; + foot_N = mk2N "fot" "fötter" ; + forest_N = mk2N "skog" "skogar" ; + grass_N = mk2N "gräs" "gräs" ; + guts_N = mk2N "inälva" "inälvor" ; + hair_N = mk2N "hår" "hår" ; + hand_N = mk2N "hand" "händer" ; + head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ; + heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ; + horn_N = mk2N "horn" "horn" ; + husband_N = (mk2N "make" "makar") ; + ice_N = mk2N "is" "isar" ; + knee_N = mkN "knä" "knäet" "knän" "knäna" ; + leaf_N = mk2N "löv" "löv" ; + leg_N = mk2N "ben" "ben" ; + liver_N = mkN "lever" "levern" "levrar" "levrarna"; + louse_N = mkN "lus" "lusen" "löss" "lössen" ; + mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ; + name_N = mk2N "namn" "namn" ; + neck_N = mk2N "nacke" "nackar" ; + night_N = mk2N "natt" "nätter" ; + nose_N = mk2N "näsa" "näsor" ; + person_N = mk2N "person" "personer" ; + rain_N = mk2N "regn" "regn" ; + road_N = mk2N "väg" "vägar" ; + root_N = mk2N "rot" "rötter" ; + rope_N = mk2N "rep" "rep" ; + salt_N = mkN "salt" "saltet" "salter" "salterna"; + sand_N = mk2N "sand" "sander" ; + seed_N = mkN "frö" "fröet" "frön" "fröna" ; + skin_N = mk2N "skinn" "skinn" ; + sky_N = mk2N "himmel" "himlar" ; + smoke_N = mk2N "rök" "rökar" ; + snow_N = mkN "snö" "snön" "snöer" "snöerna" ; + stick_N = mk2N "pinne" "pinnar" ; + tail_N = mk2N "svans" "svansar" ; + tongue_N = mk2N "tunga" "tungor" ; + tooth_N = mk2N "tand" "tänder" ; + wife_N = mk2N "fru" "fruar" ; + wind_N = mk2N "vind" "vindar" ; + wing_N = mk2N "vinge" "vingar" ; + worm_N = mk2N "mask" "maskar" ; + year_N = mk2N "år" "år" ; + bite_V2 = dirV2 (bita_V) ; + blow_V = mk2V "blåsa" "blåste" ; + burn_V = brinna_V ; -- FIXME: bränna? + count_V2 = dirV2 (regV "räkna") ; + cut_V2 = dirV2 (skära_V) ; + dig_V = mk2V "gräva" "grävde" ; + fall_V = falla_V ; + fear_V2 = dirV2 (regV "frukta") ; + float_V = flyta_V ; + flow_V = rinna_V ; + fly_V = flyga_V ; + freeze_V = frysa_V ; + give_V3 = dirV3 giva_V "till"; + hit_V2 = dirV2 (slå_V) ; + hold_V2 = dirV2 (hålla_V) ; + hunt_V2 = dirV2 (regV "jaga") ; + kill_V2 = dirV2 (regV "döda") ; + laugh_V = regV "skratta" ; + lie_V = ligga_V ; + play_V = mk2V "leka" "lekte" ; + pull_V2 = dirV2 (draga_V) ; + push_V2 = dirV2 (mk2V "trycka" "tryckte") ; + rub_V2 = dirV2 (gnida_V) ; + scratch_V2 = dirV2 (regV "klia") ; + sew_V = sy_V ; + sing_V = sjunga_V ; + sit_V = sitta_V ; + smell_V = regV "lukta" ; + spit_V = regV "spotta" ; + split_V2 = dirV2 (klyva_V) ; + squeeze_V2 = dirV2 (klämma_V) ; + stab_V2 = dirV2 (sticka_V) ; + stand_V = stå_V ; + suck_V2 = dirV2 (suga_V) ; + swell_V = svälla_V ; + swim_V = regV "simma" ; + think_V = mk2V "tänka" "tänkte" ; + throw_V2 = dirV2 (regV "kasta") ; + tie_V2 = dirV2 (knyta_V) ; + turn_V = vända_V ; + vomit_V = mk2V "spy" "spydde" ; + wash_V2 = dirV2 (regV "tvätta") ; + wipe_V2 = dirV2 (regV "torka") ; + + breathe_V = depV (regV "anda") ; + fight_V2 = mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") "med" ; + } ;